{"_id":"@asyra/feature-system","_rev":"4-bbf1f50e87666cc482574b3a2089a013","name":"@asyra/feature-system","dist-tags":{"latest":"0.5.3"},"versions":{"0.5.0":{"name":"@asyra/feature-system","version":"0.5.0","keywords":[],"author":{"name":"Asa Tsai"},"license":"MIT","_id":"@asyra/feature-system@0.5.0","maintainers":[{"name":"karoteglathe","email":"karoteglathe@gmail.com"}],"dist":{"shasum":"6751b08dc086a9ef2130e10254d81eee1d359179","tarball":"https://registry.npmjs.org/@asyra/feature-system/-/feature-system-0.5.0.tgz","fileCount":67,"integrity":"sha512-OB5vRrlC1PW/pMrGkjyBZx1SZXJro2AuOKdklps1tdUu6lo2kKE7AcavkdklXbxGY7HL1t33GG9PWfwEnZmpiQ==","signatures":[{"sig":"MEYCIQDdCp2+yMK+vOOGd2BBPQso3Yg6ymQN6LEHiIjZ6zlaRgIhAINs0PIxJYu0OcyUOsraNFBRU8WpDlH9KgefVr8B1KKg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108766},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":"24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"5ee728f3c26d52147314f2bf6d8de0f603146913","scripts":{"dev":"tsc --watch --preserveWatchOutput","test":"yarn has:test && vitest || echo 'No test files found. Skipping test.'","clean":"rm -rf dist","test:ci":"yarn has:test && vitest run --coverage --reporter=default --reporter=junit || echo 'No test files found. Skipping test:ci.'","has:test":"find . -type f \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" \\) | grep -q .","test:local":"vitest run","build:feature-system":"tsc"},"_npmUser":{"name":"karoteglathe","email":"karoteglathe@gmail.com"},"_npmVersion":"10.8.2","description":"Feature System framework for modular, composable design tool capabilities","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@asyra/utils":"0.5.0","@asyra/reactive-events":"0.5.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"vitest":"^2.1.8","typescript":"^5.7.2","@vitest/coverage-v8":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/feature-system_0.5.0_1786102653360_0.7921741919597627","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@asyra/feature-system","version":"0.5.1","keywords":[],"author":{"name":"Asa Tsai"},"license":"MIT","_id":"@asyra/feature-system@0.5.1","maintainers":[{"name":"karoteglathe","email":"karoteglathe@gmail.com"}],"dist":{"shasum":"0d1673b947575f1f1b2116e50966d259a3e22dfb","tarball":"https://registry.npmjs.org/@asyra/feature-system/-/feature-system-0.5.1.tgz","fileCount":67,"integrity":"sha512-9KfF8JmC7hVzxXU7fugqgn6YBt/eCYBnWJdWqRL5+/Ao3ildZVzc5KRCnmZjW3oU0j87tmajsJ4syTAQXtsWLQ==","signatures":[{"sig":"MEUCIFFW6TwfFuF0Cj8jIW9FM5RzaXegcfjgxUVmQqCMsYxSAiEAr1meB0TWBlQmSTUjt38phuElmOQwNlQ/QtzQ6h945Bw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108766},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":"24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"5b0140f4ff4a3eed759a374ec984e9b9ceef1fed","scripts":{"dev":"tsc --watch --preserveWatchOutput","test":"yarn has:test && vitest || echo 'No test files found. Skipping test.'","clean":"rm -rf dist","test:ci":"yarn has:test && vitest run --coverage --reporter=default --reporter=junit || echo 'No test files found. Skipping test:ci.'","has:test":"find . -type f \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" \\) | grep -q .","test:local":"vitest run","build:feature-system":"tsc"},"_npmUser":{"name":"karoteglathe","email":"karoteglathe@gmail.com"},"_npmVersion":"10.8.2","description":"Feature System framework for modular, composable design tool capabilities","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@asyra/utils":"0.5.0","@asyra/reactive-events":"0.5.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"vitest":"^2.1.8","typescript":"^5.7.2","@vitest/coverage-v8":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/feature-system_0.5.1_1786276515046_0.3605275979100486","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@asyra/feature-system","version":"0.5.2","keywords":[],"author":{"name":"Asa Tsai"},"license":"MIT","_id":"@asyra/feature-system@0.5.2","maintainers":[{"name":"karoteglathe","email":"karoteglathe@gmail.com"}],"homepage":"https://asyra-framework.vercel.app","bugs":{"url":"https://github.com/karote00/asyra/issues"},"dist":{"shasum":"ceb8826a66d2755be765c04df642ffb38981e203","tarball":"https://registry.npmjs.org/@asyra/feature-system/-/feature-system-0.5.2.tgz","fileCount":67,"integrity":"sha512-GQmV9lLFRsVQm2Mup7YXh5xg/NW28lermxZQp0MOPaCx4YKPkH99ezeAS+EVRBZfdx+1mgoX4RjhOZL3syKpJw==","signatures":[{"sig":"MEQCIGpaBNkE57uUeNU0TCxChaEmAHh1H+4RvfHbLApKrx3kAiAcUuZPCaNmpEDRwbW7NS8dkUb0ufgkGDBUi1wLBbR8Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110370},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":"24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"80265cc1fd1895a0f30c79a6127c00342a6f85fd","scripts":{"dev":"tsc --watch --preserveWatchOutput","test":"yarn has:test && vitest || echo 'No test files found. Skipping test.'","clean":"rm -rf dist","test:ci":"yarn has:test && vitest run --coverage --reporter=default --reporter=junit || echo 'No test files found. Skipping test:ci.'","has:test":"find . -type f \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" \\) | grep -q .","test:local":"vitest run","build:feature-system":"tsc"},"_npmUser":{"name":"karoteglathe","email":"karoteglathe@gmail.com"},"repository":{"url":"git+https://github.com/karote00/asyra.git","type":"git","directory":"packages/feature-system"},"_npmVersion":"10.8.2","description":"Feature System framework for modular, composable design tool capabilities","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@asyra/utils":"workspace:*","@asyra/reactive-events":"workspace:*"},"_hasShrinkwrap":false,"packageManager":"yarn@4.3.1","devDependencies":{"vitest":"^3.2.6","typescript":"^5.7.2","@vitest/coverage-v8":"^3.2.6"},"_npmOperationalInternal":{"tmp":"tmp/feature-system_0.5.2_1787911994695_0.8875529133871278","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@asyra/feature-system","version":"0.5.3","description":"Feature System framework for modular, composable design tool capabilities","author":{"name":"Asa Tsai"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/karote00/asyra.git","directory":"packages/feature-system"},"homepage":"https://asyra-framework.vercel.app","type":"module","engines":{"node":"24.x"},"packageManager":"yarn@4.3.1","keywords":[],"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch --preserveWatchOutput","build:feature-system":"tsc","clean":"rm -rf dist","has:test":"find . -type f \\( -name \"*.test.ts\" -o -name \"*.test.tsx\" \\) | grep -q .","test":"yarn has:test && vitest || echo 'No test files found. Skipping test.'","test:local":"vitest run","test:ci":"yarn has:test && vitest run --coverage --reporter=default --reporter=junit || echo 'No test files found. Skipping test:ci.'"},"devDependencies":{"@vitest/coverage-v8":"^3.2.6","typescript":"^5.7.2","vitest":"^3.2.6"},"dependencies":{"@asyra/reactive-events":"0.5.3","@asyra/utils":"0.5.1"},"_id":"@asyra/feature-system@0.5.3","gitHead":"5c7433cfe12ee0f8b266ca43b22441b048407bbf","bugs":{"url":"https://github.com/karote00/asyra/issues"},"_nodeVersion":"24.13.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-qEiL9+61OyZFzNgSK2zqIb+sdfRZyOORWHyZH2MEBbz1UjSqGu6RwwE2ZSxjiT24dVQoa/tNIGlF6k7/64JHGg==","shasum":"e2abcbecb8bc3fafeb23718ec04530766142d3b2","tarball":"https://registry.npmjs.org/@asyra/feature-system/-/feature-system-0.5.3.tgz","fileCount":67,"unpackedSize":110358,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIChky92VgiN1eye+dS1Jtsbh85/LYQLkK5kmo5LNCLoEAiEAtSbU4m+2nOBSXkunsw7qXjs0b1rWSMvRzGFhpTZXdfk="}]},"_npmUser":{"name":"karoteglathe","email":"karoteglathe@gmail.com"},"directories":{},"maintainers":[{"name":"karoteglathe","email":"karoteglathe@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/feature-system_0.5.3_1787915193670_0.896190503785286"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T11:37:33.213Z","modified":"2026-08-28T11:06:34.009Z","0.5.0":"2026-08-07T11:37:33.507Z","0.5.1":"2026-08-09T11:55:15.198Z","0.5.2":"2026-08-28T10:13:14.831Z","0.5.3":"2026-08-28T11:06:33.830Z"},"bugs":{"url":"https://github.com/karote00/asyra/issues"},"author":{"name":"Asa Tsai"},"license":"MIT","homepage":"https://asyra-framework.vercel.app","keywords":[],"repository":{"type":"git","url":"git+https://github.com/karote00/asyra.git","directory":"packages/feature-system"},"description":"Feature System framework for modular, composable design tool capabilities","maintainers":[{"name":"karoteglathe","email":"karoteglathe@gmail.com"}],"readme":"# `@asyra/feature-system`\n\nDeterministic Feature registration, priority, exclusivity, interaction sessions, cancellation, and non-mutating programmatic tasks.\n\n## Requirements\n\n- Node.js 24.x\n- Yarn 4.3.1 for this repository's maintained workflows\n\n## Install\n\n```bash\nnpm install @asyra/feature-system\n```\n\n```ts\nimport { defineFeature, getFeature } from '@asyra/feature-system'\n```\n\nUse only the package root and the explicitly documented public subpaths.\n\n## Owns\n\n- Feature definitions, trigger arbitration, one serialized interaction queue, sessions, cancellation policy, and task abort ownership\n\n## Does not own\n\n- raw environment listeners, App command meaning, canonical package mutation, transaction history, or model-provider policy\n\n## Start here\n\nCompose it when inputs or commands require deterministic arbitration, a continuous session, or cancellable planning work.\n\n## Lifecycle and composition\n\nA session starts, updates, and then ends or cancels before conflicting work. Cancellation is explicit; handler errors and timeouts enter forced cleanup. Programmatic tasks are non-mutating and never replace canonical Feature/API execution.\n\n## Learn more\n\n- [Complete package guide](https://github.com/karote00/asyra/blob/main/docs/public/reference/packages/feature-system.md)\n- [Framework release support](https://github.com/karote00/asyra/blob/main/docs/ai/framework/RELEASE_SUPPORT.md)\n\n## Support and policy\n\nThis repository does not accept external issues or contributions. You may use,\ninspect, and fork the package under the [MIT License](https://github.com/karote00/asyra/blob/main/LICENSE).\nFollow the [security policy](https://github.com/karote00/asyra/blob/main/SECURITY.md) for\nsecurity-sensitive reports and the [root policy](https://github.com/karote00/asyra) for the\ncurrent support boundary.\n","readmeFilename":"README.md"}