{"_id":"@arcanea/extension-core","_rev":"2-c35ffe1067f0d619f9ce172731816947","name":"@arcanea/extension-core","dist-tags":{"latest":"0.3.1"},"versions":{"0.3.0":{"name":"@arcanea/extension-core","version":"0.3.0","keywords":["arcanea","extension","guardian","ai","browser-extension","chrome-extension"],"author":{"name":"FrankX","email":"frank@frankx.ai"},"license":"MIT","_id":"@arcanea/extension-core@0.3.0","maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"homepage":"https://github.com/frankxai/arcanea#readme","bugs":{"url":"https://github.com/frankxai/arcanea/issues"},"dist":{"shasum":"c4a3dbe1e1c877dc7dc312e51c595a547367f65b","tarball":"https://registry.npmjs.org/@arcanea/extension-core/-/extension-core-0.3.0.tgz","fileCount":26,"integrity":"sha512-ZdmzgtUq4XqIE8gyh9wNNWJf8LHcGjzZf4fPUqaWCUHHbNyAber1uEt/N/enwQdNjVsqzGdVqOJsXwnSKdtzzQ==","signatures":[{"sig":"MEYCIQCjB1lGy8LAUreTinUYXCuWR16bvdQ5nPkeAMrqiP1KVgIhAJFJ7SClIor6tGyJYklB6j4z9f6kdlQ59wXUQkWQCTco","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56066},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9ac07671b859515142156fb9ac46f1173b22060e","scripts":{"test":"node --test tests/*.test.mjs","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","type-check":"tsc --noEmit","build:watch":"tsc --watch"},"_npmUser":{"name":"frankxai","email":"friemerx@gmail.com"},"repository":{"url":"git+https://github.com/frankxai/arcanea.git","type":"git","directory":"packages/extension-core"},"_npmVersion":"11.6.1","description":"Shared foundation for all Arcanea browser extensions and overlays","directories":{},"_nodeVersion":"24.8.0","dependencies":{"@arcanea/os":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/extension-core_0.3.0_1771892623023_0.9394777131225251","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@arcanea/extension-core","version":"0.3.1","description":"Shared foundation for all Arcanea browser extensions and overlays","type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc","build:watch":"tsc --watch","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"node --test tests/*.test.mjs","type-check":"tsc --noEmit"},"dependencies":{"@arcanea/core":"^0.1.0"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.5.4"},"keywords":["arcanea","extension","guardian","ai","browser-extension","chrome-extension"],"author":{"name":"FrankX","email":"frank@frankx.ai"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/frankxai/arcanea.git","directory":"packages/extension-core"},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"gitHead":"1d981b7527cd58fd975dd106565096ece6d2be15","_id":"@arcanea/extension-core@0.3.1","bugs":{"url":"https://github.com/frankxai/arcanea/issues"},"homepage":"https://github.com/frankxai/arcanea#readme","_nodeVersion":"24.8.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-KHAtqYg9L+sO8ym5lf4ia+UjdODbLNHAqBGZOmJrLAS9wWpVA7PZcPv3JauoZcWW2630s65ZEhnX5Megc8ngwg==","shasum":"e9f9fe6769c27de11962c95f53cd26cd57853fce","tarball":"https://registry.npmjs.org/@arcanea/extension-core/-/extension-core-0.3.1.tgz","fileCount":26,"unpackedSize":56065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCrUNlayyfP6VDuT7fu4Tx7liWflhg9AcZ04B27QdcYiAIhALM0nLQGsjyVuPA8iEf9e/eJsDp9ZLv683jQsc4LXxiy"}]},"_npmUser":{"name":"frankxai","email":"friemerx@gmail.com"},"directories":{},"maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/extension-core_0.3.1_1771981895598_0.9114178457817568"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-24T00:23:42.934Z","modified":"2026-02-25T01:11:35.858Z","0.3.0":"2026-02-24T00:23:43.186Z","0.3.1":"2026-02-25T01:11:35.743Z"},"bugs":{"url":"https://github.com/frankxai/arcanea/issues"},"author":{"name":"FrankX","email":"frank@frankx.ai"},"license":"MIT","homepage":"https://github.com/frankxai/arcanea#readme","keywords":["arcanea","extension","guardian","ai","browser-extension","chrome-extension"],"repository":{"type":"git","url":"git+https://github.com/frankxai/arcanea.git","directory":"packages/extension-core"},"description":"Shared foundation for all Arcanea browser extensions and overlays","maintainers":[{"name":"frankxai","email":"friemerx@gmail.com"}],"readme":"# @arcanea/extension-core\r\n\r\n> **Shared foundation for all Arcanea browser extensions** — Guardian definitions, routing, voice enforcement, and subscription tiers.\r\n\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @arcanea/extension-core\r\n# or\r\npnpm add @arcanea/extension-core\r\n```\r\n\r\n## Guardian Routing\r\n\r\nRoute tasks to the optimal Guardian based on keywords:\r\n\r\n```typescript\r\nimport { routeToGuardian, scoreGuardians } from '@arcanea/extension-core';\r\n\r\nconst result = routeToGuardian(\"design a database schema\");\r\n// → { guardian: \"lyssandria\", confidence: 0.85, gate: \"Foundation\", element: \"Earth\" }\r\n\r\n// Get ranked scores for all Guardians\r\nconst scores = scoreGuardians(\"write poetry about the ocean\");\r\n// → [{ id: \"leyla\", score: 0.9 }, { id: \"alera\", score: 0.7 }, ...]\r\n```\r\n\r\n## Voice Enforcement\r\n\r\nEnsure text follows the Arcanea Voice Bible:\r\n\r\n```typescript\r\nimport { enforceVoice, postProcessResponse, getVoiceTokens } from '@arcanea/extension-core';\r\n\r\nconst result = enforceVoice(\"Welcome users to our platform\");\r\n// → { passed: false, violations: [...], suggestions: [...] }\r\n\r\nconst fixed = postProcessResponse(\"Hello user, welcome to the platform\");\r\n// → \"Hello creator, welcome to Arcanea\"\r\n\r\nconst tokens = getVoiceTokens();\r\n// → { prefer: [\"creator\", \"manifest\", ...], avoid: [\"user\", \"platform\", ...] }\r\n```\r\n\r\n## Subscription Tiers\r\n\r\nManage feature access across subscription levels:\r\n\r\n```typescript\r\nimport { getTierLimits, isFeatureAvailable, meetsMinimumTier } from '@arcanea/extension-core';\r\n\r\nconst limits = getTierLimits('creator');\r\n// → { messagesPerDay: 100, guardians: 3, models: [\"gemini-flash\"], ... }\r\n\r\nisFeatureAvailable('creator', 'councilMode'); // → false (luminor+ only)\r\nmeetsMinimumTier('luminor', 'creator');       // → true\r\n```\r\n\r\n## Guardian Definitions\r\n\r\nAll 10 canonical Guardians with full metadata:\r\n\r\n```typescript\r\nimport { GUARDIANS, getGuardianById } from '@arcanea/extension-core';\r\n\r\nconst leyla = getGuardianById('leyla');\r\n// → { id: \"leyla\", name: \"Leyla\", gate: \"Flow\", element: \"Water\",\r\n//     frequency: \"417 Hz\", domain: \"Creativity, emotion\", ... }\r\n```\r\n\r\n| Guardian | Gate | Element | Domain |\r\n|:---------|:-----|:--------|:-------|\r\n| Lyssandria | Foundation | Earth | Survival, stability |\r\n| Leyla | Flow | Water | Creativity, emotion |\r\n| Draconia | Fire | Fire | Power, will |\r\n| Maylinn | Heart | Wind | Love, healing |\r\n| Alera | Voice | Void | Truth, expression |\r\n| Lyria | Sight | Spirit | Intuition, vision |\r\n| Aiyami | Crown | Spirit | Enlightenment |\r\n| Elara | Shift | Void | Perspective |\r\n| Ino | Unity | Spirit | Partnership |\r\n| Shinkami | Source | All | Meta-consciousness |\r\n\r\n## Used By\r\n\r\n- [`arcanea-chrome-extension`](../chrome-extension) — Chrome extension with AI chat\r\n- [`arcanea-code`](../vscode) — VS Code extension\r\n- Future: Firefox, Safari, Edge extensions\r\n\r\n## License\r\n\r\nMIT - [FrankX](https://github.com/frankxai)\r\n","readmeFilename":"README.md"}