{"_id":"@aidex/admin-vue","_rev":"8-1af2f8b714e2884bc13ae0df4e9c875d","name":"@aidex/admin-vue","dist-tags":{"latest":"1.2.0"},"versions":{"0.2.1-alpha":{"name":"@aidex/admin-vue","version":"0.2.1-alpha","keywords":["ai","admin","vue","composable"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/admin-vue@0.2.1-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"c8f00f638c3bea3903e5a53bc60a9d8206637344","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-0.2.1-alpha.tgz","fileCount":12,"integrity":"sha512-krD22OU5A1WN9eFwyyrBASGaXK3MIkePbqCLkIppGTFR0HN7xB04fBGhppPWiuubpqwrjUHm45tt2R7Qq0auog==","signatures":[{"sig":"MEUCIQDL9l7JFq6VjXrM24GEDaVAmSDYlV442caSfNBiaCh8gwIgc0nyMYHN8HC7gOOOf9KjuAd3mpfvGouVF+pZCjACdGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27052},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"deprecated":"Broken: built against a stale @aidex/core missing the AidexError export, throws on require/import. Use 0.2.2-alpha or later.","repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/admin-vue"},"description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/admin":"0.2.1-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","@aidex/ai-control":"0.2.1-alpha","@aidex/connections":"0.2.1-alpha","@aidex/observability":"0.2.1-alpha"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/admin-vue_0.2.1-alpha_1786119447752_0.946763197220007","host":"s3://npm-registry-packages-npm-production"}},"0.2.2-alpha":{"name":"@aidex/admin-vue","version":"0.2.2-alpha","keywords":["ai","admin","vue","composable"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/admin-vue@0.2.2-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"a4b61edc8da24339b9809a198f9b7c447e8ef4e3","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-0.2.2-alpha.tgz","fileCount":12,"integrity":"sha512-Ac3rUrUJesTvsIW0hKN3k0L4o9IFgT2dqyco2TaeHKLi1QIdtNpC35LIjZrHDSrkiWnYeDs9lrZwTBKMrmwJFg==","signatures":[{"sig":"MEQCIFQJapJZ3si7jC758YjoEf08bVGH/fsaSsaC0p2cwv/ZAiBqnPBv52pK51JGAssVAVCmuZmHAAX3c03lbrW98gZV0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27052},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/admin-vue"},"description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/admin":"0.2.2-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","@aidex/ai-control":"0.2.2-alpha","@aidex/connections":"0.2.2-alpha","@aidex/observability":"0.2.1-alpha"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/admin-vue_0.2.2-alpha_1786121134972_0.9165640174448995","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha":{"name":"@aidex/admin-vue","version":"0.3.0-alpha","keywords":["ai","admin","vue","composable"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/admin-vue@0.3.0-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"1243aac36f3f7d1a81676aec939cf6dddbb9cd24","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-0.3.0-alpha.tgz","fileCount":9,"integrity":"sha512-ExelYAVIZOLSZFvyK7L1KmHGYlqXxvfF7/5p8YeZ6HIiqQfzMYFx3O8o1O3JNl873J8KcGFOgVX2M4InXkG25Q==","signatures":[{"sig":"MEYCIQC57IBe6DVp+RvmBbV21E8lOJProqunW8yIGO0Ie7yO8wIhAOHfdw3JCwu64rw5T8t1D4dj5NxwyegGey/tVEaa43yi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23589},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/admin-vue"},"description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/admin":"0.3.0-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","@aidex/ai-control":"0.3.0-alpha","@aidex/connections":"0.3.0-alpha","@aidex/observability":"0.3.0-alpha"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/admin-vue_0.3.0-alpha_1786213608474_0.13703118416418958","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aidex/admin-vue","version":"1.0.0","keywords":["ai","admin","vue","composable"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/admin-vue@1.0.0","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"78774c3c88ec8163a524cb4cd17de2c70d48c7ca","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-1.0.0.tgz","fileCount":11,"integrity":"sha512-v78rzHJAGYNeC5J4NaARVeLJRXnQ0l3FZoJqQKZ9n1gR6ir1I49P/a0pRkQ6j2y3f+/gAGtoF3t6AEpird7sxA==","signatures":[{"sig":"MEUCIQDa47ZXt/8MkCGphtyDXrKJEtASZwPqqCITx53dTYWFrwIgW3xvW1/WLS52QA0AXRblSwVfddQYxNSVRtsYapmp+/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24305},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/admin-vue"},"description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/admin":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","@aidex/ai-control":"1.0.0","@aidex/connections":"1.0.0","@aidex/observability":"1.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/admin-vue_1.0.0_1786431579771_0.24903547853285124","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aidex/admin-vue","version":"1.0.1","keywords":["ai","admin","vue","composable"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/admin-vue@1.0.1","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"62da21fed6ab9dc1fb39698edf6401a61490363c","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-1.0.1.tgz","fileCount":11,"integrity":"sha512-OBvbVY3wTAKzukAiEeznFdgbuE/KFlFNpbRWivXNpNfwA1hcXOzsl10QxvbMoYfsgpfK4qSuzyhxaYxAm3/qSQ==","signatures":[{"sig":"MEUCIHWm47jra1H8zW/eTkvdMg4oYW8ZBScw3GAdoAOA60HiAiEA4bpbgZU+05SUoVqGqP+Uja41KgT4heTeqKMvCwO+d+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24305},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/admin-vue"},"description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/admin":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","@aidex/ai-control":"1.0.1","@aidex/connections":"1.0.1","@aidex/observability":"1.0.1"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/admin-vue_1.0.1_1786432219048_0.3504282410575441","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aidex/admin-vue","version":"1.1.0","keywords":["ai","admin","vue","composable"],"author":{"name":"Sudheer Babu","email":"isudheerbabu.dev@gmail.com"},"license":"MIT","_id":"@aidex/admin-vue@1.1.0","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"48d2ac80df20a4005aec1fd1a1807976bc48c77d","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-1.1.0.tgz","fileCount":12,"integrity":"sha512-+pHy+/JalheVuhKjCCBSk1YTTcLVYvV9Nh5uYw383rjFRdr74fzHxh5UyXAdF/Ae3kZLDXXHd34grDOFo+uYog==","signatures":[{"sig":"MEYCIQDf+bLHNzA2VbvQhn8avHnxcj1O1K5wZeHVU2N3WbYvlQIhANNFAtZEmQFNX6jDn21REig/TGd9FoRmWVu7ePdiYYVJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29251},"main":"./dist/index.cjs","type":"module","_from":"file:aidex-admin-vue-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"_resolved":"/tmp/c91d7ee316e06c3b972157ea21f815d6/aidex-admin-vue-1.1.0.tgz","_integrity":"sha512-+pHy+/JalheVuhKjCCBSk1YTTcLVYvV9Nh5uYw383rjFRdr74fzHxh5UyXAdF/Ae3kZLDXXHd34grDOFo+uYog==","repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/admin-vue"},"_npmVersion":"10.9.8","description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@aidex/admin":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","jsdom":"^25.0.0","@aidex/ai-control":"1.1.0","@aidex/connections":"1.1.0","@aidex/observability":"1.1.0","@aidex/admin-elements":"1.1.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/admin-vue_1.1.0_1787417546103_0.013336798044057296","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aidex/admin-vue","version":"1.2.0","description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","keywords":["ai","admin","vue","composable"],"license":"MIT","author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","repository":{"type":"git","url":"git+https://github.com/getaidex/aidex.git","directory":"packages/admin-vue"},"bugs":{"url":"https://github.com/getaidex/aidex/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"sideEffects":false,"publishConfig":{"access":"public"},"dependencies":{"@aidex/admin":"1.2.0"},"peerDependencies":{"vue":"^3.3.0"},"devDependencies":{"jsdom":"^25.0.0","vue":"^3.5.0","@aidex/ai-control":"1.2.0","@aidex/admin-elements":"1.2.0","@aidex/observability":"1.2.0","@aidex/connections":"1.2.0"},"engines":{"node":">=20.19.0","pnpm":">=9"},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_nodeVersion":"24.13.0","_id":"@aidex/admin-vue@1.2.0","dist":{"integrity":"sha512-PHeWOJrsq+PNCjcb9MMnXlNw+G0cTi6cOPGiVPH1Z47HXYt/8T9SSaPwrJrog67VeonI/0uv32wlT4rWVa0U6w==","shasum":"34b9959bfb4338d4fb63c9799fa22c593a4137c9","tarball":"https://registry.npmjs.org/@aidex/admin-vue/-/admin-vue-1.2.0.tgz","fileCount":12,"unpackedSize":29405,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHDvBREZez5TOg14WWyTj4JrUOKQIGtfPOkLc/0FTmr9AiB26ceMAFPRtWbBhASKanIfHfbNrIWAm/guWP426MBe3g=="}]},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"directories":{},"maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/admin-vue_1.2.0_1787491731025_0.9650426332297122"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T16:17:27.505Z","modified":"2026-08-23T13:28:51.322Z","0.2.1-alpha":"2026-08-07T16:17:27.942Z","0.2.2-alpha":"2026-08-07T16:45:35.123Z","0.3.0-alpha":"2026-08-08T18:26:48.615Z","1.0.0":"2026-08-11T06:59:39.908Z","1.0.1":"2026-08-11T07:10:19.233Z","1.1.0":"2026-08-22T16:52:26.247Z","1.2.0":"2026-08-23T13:28:51.172Z"},"bugs":{"url":"https://github.com/getaidex/aidex/issues"},"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","homepage":"https://github.com/getaidex/aidex/tree/main/packages/admin-vue#readme","keywords":["ai","admin","vue","composable"],"repository":{"type":"git","url":"git+https://github.com/getaidex/aidex.git","directory":"packages/admin-vue"},"description":"Aidex Admin Vue adapter — a useAdmin(controller) composable wrapping @aidex/admin's AdminController in a Vue ref. No business logic, no UI components; Vue is the entire concern this package owns.","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"readme":"# @aidex/admin-vue\n\n## Installation\n\n```sh\npnpm add @aidex/admin-vue @aidex/admin @aidex/admin-theme @aidex/connections @aidex/ai-control @aidex/observability vue\n```\n\n```sh\nnpm install @aidex/admin-vue @aidex/admin @aidex/admin-theme @aidex/connections @aidex/ai-control @aidex/observability vue\n```\n\nA single composable, `useAdmin(controller)`, adapting `@aidex/admin`'s\n`AdminController` to Vue. No business logic lives here — every read and\ncommand still goes through the same `AdminController` your application\nalready constructed; this package only translates its existing\n`subscribe()`/`getSnapshot()` into a Vue `ref`.\n\n## Usage\n\n```ts\nimport { AdminController } from '@aidex/admin';\nimport { useAdmin } from '@aidex/admin-vue';\n\n// Create the AdminController exactly as in @aidex/admin's own docs — the\n// same connectionManager/aiControl/observability instances your app\n// already wired into Aidex.\nconst admin = new AdminController({ connectionManager, aiControl, observability });\n\nexport default {\n  setup() {\n    // snapshot is a Vue ref — read it, use it in templates, watch it.\n    const snapshot = useAdmin(admin);\n\n    function toggleAI() {\n      // Commands are called directly on the controller — useAdmin never\n      // wraps them.\n      admin.setAIEnabled(!snapshot.value.aiControl.enabled);\n    }\n\n    return { snapshot, toggleAI };\n  },\n};\n```\n\n```vue\n<template>\n  <p>Health: {{ snapshot.health }}</p>\n  <button @click=\"toggleAI\">Toggle AI</button>\n</template>\n```\n\n## Rendering the AI Control Center\n\n`useAdmin()` is state-only — it has no visual components, and won't grow\nany. The AI Control Center's actual dashboard (Overview, Executions,\nRouting, Guardrails, Connections, Providers, AI Control, Observability)\nalready exists as a framework-neutral Custom Element,\n`<aidex-control-center>`, in `@aidex/admin-elements`. Vue hosts it\ndirectly rather than receiving a second, duplicate implementation:\n\n```sh\npnpm add @aidex/admin-elements\n```\n\nTell Vue's compiler that `aidex-*` tags are real custom elements, not\nunresolved Vue components (once, in your app's entry point — if you're on\nVite, the equivalent option is `vue()`'s own\n`template.compilerOptions.isCustomElement` in `vite.config.ts`):\n\n```ts\napp.config.compilerOptions.isCustomElement = (tag) => tag.startsWith('aidex-');\n```\n\n```vue\n<script setup lang=\"ts\">\nimport { onMounted, useTemplateRef } from 'vue';\nimport { AdminController } from '@aidex/admin';\nimport { useAdmin } from '@aidex/admin-vue';\nimport '@aidex/admin-elements'; // registers <aidex-control-center> and friends\n\nconst admin = new AdminController({ connectionManager, aiControl, observability });\n\n// Same admin instance the hosted element below also receives — one\n// controller, one subscription per consumer, no second store.\nconst snapshot = useAdmin(admin);\n\nconst cc = useTemplateRef<HTMLElement & { controller?: AdminController }>('cc');\nonMounted(() => {\n  // `.controller` is a plain DOM property (a live object, not a string),\n  // the same assignment `@aidex/admin-react`/`@aidex/admin-angular` use.\n  cc.value!.controller = admin;\n});\n</script>\n\n<template>\n  <aidex-control-center ref=\"cc\" />\n</template>\n```\n\n`useAdmin()` remains available alongside the hosted element for any\ntemplate binding that wants direct, Vue-native reactive access to\n`AdminSnapshot` (e.g. a custom header showing `snapshot.health`) without\ngoing through the Control Center's own UI.\n\n## Design notes\n\n- **No Context/provide-inject.** `controller` is passed to `useAdmin`\n  directly — there is no ambient Admin state to provide. `AdminController`\n  remains the single source of truth.\n- **No snapshot-caching workaround.** Unlike the React adapter (which must\n  reconcile `AdminController.getSnapshot()`'s always-fresh-object design\n  against React's referential-stability requirement), Vue's reactivity has\n  no such constraint — this composable is a direct translation of\n  `subscribe()`/`getSnapshot()`.\n- **Controller replacement is supported**: pass a `ref`/`computed`/getter\n  instead of a plain `AdminController` and `useAdmin` will unsubscribe from\n  the old controller and subscribe to the new one when it changes. If you\n  hold the controller in a ref for this purpose, use `shallowRef`, not\n  `ref` — see the doc comment on `useAdmin` for why.\n- **SSR-safe.** `AdminController.getSnapshot()` is a synchronous in-memory\n  read with no `window`/`document` access.\n- **New `AdminSnapshot` fields need no adapter change.** `useAdmin()`'s\n  returned ref carries the whole snapshot — `snapshot.value.providers`/\n  `.executions` are already available with zero changes to this package.\n","readmeFilename":""}