{"_id":"@agent-ix/ix-cli-core","_rev":"6-02cf2a3d9ddd96120ceeecbacfb57435","name":"@agent-ix/ix-cli-core","dist-tags":{"latest":"0.12.0"},"versions":{"0.10.2":{"name":"@agent-ix/ix-cli-core","version":"0.10.2","license":"MIT","_id":"@agent-ix/ix-cli-core@0.10.2","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-cli-core#readme","bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"dist":{"shasum":"15b640beda1ae8c988a982fdcf47111eaa61972c","tarball":"https://registry.npmjs.org/@agent-ix/ix-cli-core/-/ix-cli-core-0.10.2.tgz","fileCount":68,"integrity":"sha512-2xSm7yejSNSI9eb+QLjftb+ty+Cyd/+NSTIezS+vtVvnBgCslwa66j/VwqpfS1K4h5aMSghqxq0SzsfMxZXM7Q==","signatures":[{"sig":"MEQCIGsPdvRv7EU1SEB7msAV1UxooAtnqLb5LVZJLSipvo9uAiALxCSB7pTaWg9dAB5lQmGudPWa9EZ6b98FF21x+1KtOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180573},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b04fe41eea8cd266a8650db4364e6821e93b79e1","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern \"tests/**/*.ts\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-cli-core --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm dlx @agent-ix/js-deps update-latest"},"_npmUser":{"name":"agent-ix","email":"peter@agent-ix.ai"},"repository":{"url":"git+https://github.com/agent-ix/ix-cli-core.git","type":"git"},"_npmVersion":"10.9.2","description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":">=4.4.3","yaml":">=2.9.0","react":">=19.2.7","@clack/prompts":">=1.5.1","age-encryption":">=0.3.0","@napi-rs/keyring":">=1.3.0","@agent-ix/ix-ui-cli":">=0.4.7","@agent-ix/ts-plugin-kit":">=0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vite":">=8.0.16","eslint":">=10.4.1","vitest":">=4.1.8","prettier":">=3.8.3","typescript":">=6.0.3","@oclif/core":">=4.11.4","@types/node":">=25.9.2","@types/react":">=19.2.17","vite-plugin-dts":">=5.0.2","@vitest/coverage-v8":">=4.1.8","eslint-plugin-prettier":">=5.5.6","@typescript-eslint/parser":">=8.60.1","@typescript-eslint/eslint-plugin":">=8.60.1"},"peerDependencies":{"@oclif/core":">=4.11.4"},"_npmOperationalInternal":{"tmp":"tmp/ix-cli-core_0.10.2_1781880960604_0.464712257800012","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"@agent-ix/ix-cli-core","version":"0.10.4","license":"MIT","_id":"@agent-ix/ix-cli-core@0.10.4","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-cli-core#readme","bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"dist":{"shasum":"0f1af0bac50038d89669589bd0cafe0103070e00","tarball":"https://registry.npmjs.org/@agent-ix/ix-cli-core/-/ix-cli-core-0.10.4.tgz","fileCount":68,"integrity":"sha512-sjZ1aYaa6msyjVFEBUCQyHgIjvkjUTlbgD8jEE8UVGHgu2AIcdgiEvUh6MfnUmbw8nj3xlyxX+heMFrn0OFzBA==","signatures":[{"sig":"MEQCIGusnv1Ja020tfZqdMp5DLOceEsi6okQyqPCSFXBwigEAiBPbfLBT9t+aY0F47nvlTxyaG3yfgAnTP90xBM49onlXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180574},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"82d39abf0f06f01ed157cf0cd7a36f1342f3dbf7","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern \"tests/**/*.ts\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-cli-core --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm dlx @agent-ix/js-deps update-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:82660926-cf23-47b4-8f5a-4450b9351377"}},"repository":{"url":"git+https://github.com/agent-ix/ix-cli-core.git","type":"git"},"_npmVersion":"11.17.0","description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":">=4.4.3","yaml":">=2.9.0","react":">=19.2.7","@clack/prompts":">=1.5.1","age-encryption":">=0.3.0","@napi-rs/keyring":">=1.3.0","@agent-ix/ix-ui-cli":">=0.4.10","@agent-ix/ts-plugin-kit":">=0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vite":">=8.0.16","eslint":">=10.4.1","vitest":">=4.1.8","prettier":">=3.8.3","typescript":">=6.0.3","@oclif/core":">=4.11.4","@types/node":">=25.9.2","@types/react":">=19.2.17","vite-plugin-dts":">=5.0.2","@vitest/coverage-v8":">=4.1.8","eslint-plugin-prettier":">=5.5.6","@typescript-eslint/parser":">=8.60.1","@typescript-eslint/eslint-plugin":">=8.60.1"},"peerDependencies":{"@oclif/core":">=4.11.4"},"_npmOperationalInternal":{"tmp":"tmp/ix-cli-core_0.10.4_1781912675440_0.7258854413446041","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"@agent-ix/ix-cli-core","version":"0.10.5","license":"MIT","_id":"@agent-ix/ix-cli-core@0.10.5","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-cli-core#readme","bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"dist":{"shasum":"2863d69144eb10dc0ac24706fd6d7e8a0f1fc5e4","tarball":"https://registry.npmjs.org/@agent-ix/ix-cli-core/-/ix-cli-core-0.10.5.tgz","fileCount":70,"integrity":"sha512-Twe+we1yy7rcXAaZQd3mOVi/gfPc34BTmw8dLLjsUqiNdGp0tPYASi5kKcqkN4q6OEw0CPbPBpw9SVFaNXyS+A==","signatures":[{"sig":"MEQCIE9f0J7DdzeZX20PyGUXEpW2LY2NvKbIAqtszLwMm3cGAiBCZ4Cbur0sxNeuRg4k3dEcIfKxW3BDS5Ef8IEgChMhEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185870},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d2c8321adbd57df993f04abb956a4aa010552e23","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern \"tests/**/*.ts\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-cli-core --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm dlx @agent-ix/js-deps update-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:82660926-cf23-47b4-8f5a-4450b9351377"}},"repository":{"url":"git+https://github.com/agent-ix/ix-cli-core.git","type":"git"},"_npmVersion":"11.17.0","description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":">=4.4.3","yaml":">=2.9.0","react":">=19.2.7","@clack/prompts":">=1.5.1","age-encryption":">=0.3.0","@napi-rs/keyring":">=1.3.0","@agent-ix/ix-ui-cli":">=0.4.10","@agent-ix/ts-plugin-kit":">=0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vite":">=8.0.16","eslint":">=10.4.1","vitest":">=4.1.8","prettier":">=3.8.3","typescript":">=6.0.3","@oclif/core":">=4.11.4","@types/node":">=25.9.2","@types/react":">=19.2.17","vite-plugin-dts":">=5.0.2","@vitest/coverage-v8":">=4.1.8","eslint-plugin-prettier":">=5.5.6","@typescript-eslint/parser":">=8.60.1","@typescript-eslint/eslint-plugin":">=8.60.1"},"peerDependencies":{"@oclif/core":">=4.11.4"},"_npmOperationalInternal":{"tmp":"tmp/ix-cli-core_0.10.5_1781988743232_0.33312567287520634","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"@agent-ix/ix-cli-core","version":"0.10.6","license":"MIT","_id":"@agent-ix/ix-cli-core@0.10.6","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-cli-core#readme","bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"dist":{"shasum":"f1a106b30e99ca450ee7c119cfb85bde4f180b49","tarball":"https://registry.npmjs.org/@agent-ix/ix-cli-core/-/ix-cli-core-0.10.6.tgz","fileCount":70,"integrity":"sha512-X+7tCUXIMAV5sa9BaXzhRrB6JcfCsNTuKPXfTzB4+Q2yOxh+HM29ouhqhRE76rc8kkubLGpQ/VL/9bf6CKWKSw==","signatures":[{"sig":"MEQCIHOIxw0GyYuIVvwciXKm8b0x5HqkipN9yV1ueTj8CyF/AiBtQKMrVJ3m8nxMOIv0sU1x0QCkyY4K0F7iM16ChdAv4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185870},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"7c026311cf7bbaed602a6a787872f00cc1475d40","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern \"tests/**/*.ts\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-cli-core --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm dlx @agent-ix/js-deps update-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:82660926-cf23-47b4-8f5a-4450b9351377"}},"repository":{"url":"git+https://github.com/agent-ix/ix-cli-core.git","type":"git"},"_npmVersion":"11.17.0","description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":">=4.4.3","yaml":">=2.9.0","react":">=19.2.7","@clack/prompts":">=1.5.1","age-encryption":">=0.3.0","@napi-rs/keyring":">=1.3.0","@agent-ix/ix-ui-cli":">=0.4.10","@agent-ix/ts-plugin-kit":">=0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vite":">=8.0.16","eslint":">=10.4.1","vitest":">=4.1.8","prettier":">=3.8.3","typescript":">=6.0.3","@oclif/core":">=4.11.4","@types/node":">=25.9.2","@types/react":">=19.2.17","vite-plugin-dts":">=5.0.2","@vitest/coverage-v8":">=4.1.8","eslint-plugin-prettier":">=5.5.6","@typescript-eslint/parser":">=8.60.1","@typescript-eslint/eslint-plugin":">=8.60.1"},"peerDependencies":{"@oclif/core":">=4.11.4"},"_npmOperationalInternal":{"tmp":"tmp/ix-cli-core_0.10.6_1782304014518_0.7992896800625633","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@agent-ix/ix-cli-core","version":"0.11.0","license":"MIT","_id":"@agent-ix/ix-cli-core@0.11.0","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-cli-core#readme","bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"dist":{"shasum":"354bedec6f4dce7bbf6a3b1aaf4d732c88d71764","tarball":"https://registry.npmjs.org/@agent-ix/ix-cli-core/-/ix-cli-core-0.11.0.tgz","fileCount":70,"integrity":"sha512-/QKQIxIroscYIzEEf8HO4xX+WtDIKjyWTarWwiCZOH252K3VFqWrPmTbric9cjZyoAWZUSZ43Dj1As/TmsDqbA==","signatures":[{"sig":"MEQCIB09BuqyiUYf4zI8L1dvhgxKKDyDR7bzC/Gv2ilVbc5vAiAarA6SaG1SN5m25OSJPCxWLSwWo1Urh8BQvauxMvP6Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191196},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"29ee8a05674ef043855c11d255a89f95a9ba8008","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern \"tests/**/*.ts\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-cli-core --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm dlx @agent-ix/js-deps update-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:82660926-cf23-47b4-8f5a-4450b9351377"}},"repository":{"url":"git+https://github.com/agent-ix/ix-cli-core.git","type":"git"},"_npmVersion":"11.17.0","description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":">=4.4.3","yaml":">=2.9.0","react":">=19.2.7","@clack/prompts":">=1.5.1","age-encryption":">=0.3.0","@napi-rs/keyring":">=1.3.0","@agent-ix/ix-ui-cli":">=0.4.10","@agent-ix/ts-plugin-kit":">=0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vite":">=8.0.16","eslint":">=10.4.1","vitest":">=4.1.8","prettier":">=3.8.3","typescript":">=6.0.3","@oclif/core":">=4.11.4","@types/node":">=25.9.2","@types/react":">=19.2.17","vite-plugin-dts":">=5.0.2","@vitest/coverage-v8":">=4.1.8","eslint-plugin-prettier":">=5.5.6","@typescript-eslint/parser":">=8.60.1","@typescript-eslint/eslint-plugin":">=8.60.1"},"peerDependencies":{"@oclif/core":">=4.11.4"},"_npmOperationalInternal":{"tmp":"tmp/ix-cli-core_0.11.0_1782571350906_0.4931841230064671","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@agent-ix/ix-cli-core","description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","version":"0.12.0","license":"MIT","type":"module","main":"dist/index.js","types":"dist/index.d.ts","packageManager":"pnpm@10.33.4","scripts":{"help":"node scripts/help.js","test":"vitest run","test:coverage":"vitest run --coverage","test:json":"vitest run --reporter=json --outputFile=report.json || true","lint":"eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern \"tests/**/*.ts\" && pnpm run format:check","format":"prettier --write .","format:check":"prettier --check .","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","install:frozen":"pnpm install --frozen-lockfile","update-lock":"pnpm install --lockfile-only","version":"node scripts/build-tools.js version","info":"node scripts/build-tools.js info","publish:dry-run":"pnpm publish --dry-run","prepublishOnly":"pnpm run build","tags":"npm dist-tag ls @agent-ix/ix-cli-core --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","pkg:add":"pnpm add","pkg:add-dev":"pnpm add -D","pkg:update":"pnpm update","pkg:update-latest":"pnpm dlx @agent-ix/js-deps update-latest","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local"},"dependencies":{"@agent-ix/ix-ui-cli":">=0.4.10","@agent-ix/ts-plugin-kit":">=0.1.3","@clack/prompts":">=1.5.1","@napi-rs/keyring":">=1.3.0","@oclif/core":">=4.11.14","age-encryption":">=0.3.0","react":">=19.2.7","yaml":">=2.9.0","zod":">=4.4.3"},"devDependencies":{"@types/node":">=25.9.2","@types/react":">=19.2.17","@typescript-eslint/eslint-plugin":">=8.60.1","@typescript-eslint/parser":">=8.60.1","@vitest/coverage-v8":">=4.1.8","eslint":">=10.4.1","eslint-plugin-prettier":">=5.5.6","prettier":">=3.8.3","typescript":">=6.0.3","vite":">=8.0.16","vite-plugin-dts":">=5.0.2","vitest":">=4.1.8"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"repository":{"type":"git","url":"git+https://github.com/agent-ix/ix-cli-core.git"},"pnpm":{"overrides":{"brace-expansion":">=5.0.8"}},"gitHead":"189b05b429c1a73f0c6adb63de3d7325e38acfd5","_id":"@agent-ix/ix-cli-core@0.12.0","bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"homepage":"https://github.com/agent-ix/ix-cli-core#readme","_nodeVersion":"22.23.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-6nu7twhNUIT6u+/Q8bhQ2doArdGxIsNK5r2pkV6jjcMMUpSKu+BNhnRd23QF1u6KUEbDEjQcffoYHDalijUWfA==","shasum":"f9dfc34bdaf1882e955b670dfde9319b67f9784c","tarball":"https://registry.npmjs.org/@agent-ix/ix-cli-core/-/ix-cli-core-0.12.0.tgz","fileCount":72,"unpackedSize":196709,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/4mr4yvRmbA8O/yOf/6GQj9zRLBCg3/0fqJdmRMFHFgIhALVy7o+5Ga04NX0VSptVH1swUNFaHK8oxGPO5teppnyg"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:82660926-cf23-47b4-8f5a-4450b9351377"}},"directories":{},"maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ix-cli-core_0.12.0_1785451548512_0.36756405198717235"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T14:56:00.464Z","modified":"2026-07-30T22:45:48.827Z","0.10.2":"2026-06-19T14:56:00.755Z","0.10.4":"2026-06-19T23:44:35.579Z","0.10.5":"2026-06-20T20:52:23.405Z","0.10.6":"2026-06-24T12:26:54.710Z","0.11.0":"2026-06-27T14:42:31.038Z","0.12.0":"2026-07-30T22:45:48.701Z"},"bugs":{"url":"https://github.com/agent-ix/ix-cli-core/issues"},"license":"MIT","homepage":"https://github.com/agent-ix/ix-cli-core#readme","repository":{"type":"git","url":"git+https://github.com/agent-ix/ix-cli-core.git"},"description":"Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"readme":"# @agent-ix/ix-cli-core\n\n> Generic framework foundation for building Agent IX CLIs — config service, secrets service, plugin contract, runtime.\n\n`ix-cli-core` is the shared substrate every Agent IX command-line tool is built on. It takes the parts of a CLI that are tedious and easy to get wrong — typed configuration, secret storage, login, plugin loading, command wiring — and provides them as a single, batteries-included library on top of [oclif](https://oclif.io/). Your CLI declares _what_ it needs; the framework handles _how_ it is stored, validated, resolved, and secured.\n\n```bash\npnpm add @agent-ix/ix-cli-core\n```\n\n> Requires `@oclif/core` (peer dependency) `>= 4.11.4`.\n\n---\n\n## Features\n\n### 🗂 Typed configuration\n\nPlugin-scoped configuration files backed by [Zod](https://zod.dev/) schemas. Each plugin owns its own YAML file under the user's config directory, and every read is validated and type-safe.\n\n- **Schema-validated** — values are parsed against a strict Zod schema; unknown keys are rejected.\n- **Layered resolution** — environment variables override file values, which override schema defaults.\n- **Project-local overrides** — an in-repo `.ix/` directory can layer per-project settings over the user config.\n- **Crash-proof reads** — a corrupt or invalid file never throws into your command; defaults are returned and the problem is recorded for diagnostics.\n- **Safe writes** — every write is atomic, permission-locked (`0o600`), and serialized against concurrent writers.\n- **Built-in diagnostics** — a `doctor` report surfaces parse, schema, and I/O incidents across all plugins.\n\n### 🔐 Multi-backend secrets\n\nSecret storage that does the right thing on every platform without the caller caring where bytes actually live.\n\n- **OS-native keyring first** — uses the macOS Keychain, Windows Credential Manager, or Linux Secret Service when available.\n- **Encrypted file fallback** — transparently falls back to an [age](https://age-encryption.org/)-encrypted on-disk store when no keyring is present.\n- **Environment overrides** — a declared env var always wins, so CI and containers can inject secrets without touching disk.\n- **Leak-resistant** — secret values are kept out of logs and error messages; only ids and descriptions are ever rendered.\n\n### 🔑 Auth engine (device flow)\n\nA drop-in OAuth 2.0 Device Authorization Grant ([RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628)) login, fully service-agnostic.\n\n- **Service discovery** — reads a `/.well-known/agentix-service.json` document so endpoints, audience, and scopes are never hard-coded.\n- **Browser-based approval** — walks the user through verification with a best-effort, non-fatal browser open.\n- **Host-isolated tokens** — tokens are keyed per host and stored through the secrets backend; logging into one service never disturbs another.\n- **Automatic refresh** — access tokens are refreshed before expiry and rotated transparently.\n\n### 🧩 Plugin contract\n\nA lightweight convention that lets a plugin declare everything the framework needs in one object.\n\n- A plugin exports an `ixSchema` describing its **config schema**, **secrets**, and **env bindings**.\n- The host registers it once at startup, and the plugin's config and secrets immediately become visible to `ix config` and `ix secrets`.\n- Plugin namespaces are derived safely from the npm package name when not given explicitly.\n\n### ⚙️ Base command + capabilities\n\nAn oclif base command that every command in your CLI extends to inherit framework wiring for free.\n\n- **Standard flags** — `--config-root` and `--no-project-config` are parsed natively, no argv hacks.\n- **Ready-to-use services** — config and secrets are available without per-command boilerplate.\n- **Declarative capability checks** — a command states the capabilities it requires (e.g. \"needs auth\"), and the framework short-circuits with a structured, user-friendly error when they are unavailable.\n\n### 📦 Plugin marketplace\n\nA thin adapter over [`@agent-ix/ts-plugin-kit`](https://github.com/agent-ix/ts-plugin-kit) for installing and reconciling plugins from typed git sources, with a cache layout under the standard cache directory.\n\n### 🛡 Safe filesystem & XDG paths\n\nThe primitives the rest of the framework is built on: XDG-compliant config and cache locations, and atomic writes that enforce `0o600` permissions and refuse to follow symlinks.\n\n---\n\n## Usage Guide\n\nThis walkthrough builds up a CLI on the framework, one subsystem at a time. Everything is imported from the package root:\n\n```ts\nimport {\n  ConfigService,\n  registerPluginSchema,\n  registerSecret,\n  SecretsService,\n  defaultSecretsService,\n  fetchServiceDiscovery,\n  runDeviceFlow,\n  TokenStore,\n  BaseCommand,\n} from \"@agent-ix/ix-cli-core\";\nimport { z } from \"zod\";\n```\n\n### 1. Declare your plugin schema\n\nA plugin describes its config, secrets, and env bindings in a single `ixSchema` object and registers it at startup. Config schemas must be **strict** Zod objects.\n\n```ts\nconst ixSchema = {\n  id: \"deploy\", // config/secrets namespace; derived from the package name if omitted\n  config: z\n    .object({\n      region: z.string().default(\"us-east-1\"),\n      replicas: z.coerce.number().default(1),\n    })\n    .strict(),\n  secrets: [\n    {\n      name: \"api-token\",\n      description: \"Deploy API token\",\n      envVar: \"DEPLOY_API_TOKEN\",\n    },\n  ],\n  env: { region: \"DEPLOY_REGION\" }, // config key → env var\n};\n\nconst result = registerPluginSchema(\"@acme/ix-cli-deploy\", ixSchema);\nif (!result.ok) {\n  // first-wins, non-throwing: inspect result.kind / result.detail\n  console.warn(`plugin schema not registered: ${result.detail}`);\n}\n```\n\nRegistering the schema also wires its config and secrets into the global registries, so `ix config` and `ix secrets` see the plugin immediately.\n\n### 2. Read and write typed config\n\nGet a typed accessor scoped to one plugin id. `get()` resolves env → file → defaults; `set()` deep-merges and atomically rewrites.\n\n```ts\nconst config = ConfigService.forPlugin(\"deploy\", ixSchema.config, {\n  envBindings: { region: \"DEPLOY_REGION\" },\n});\n\nconst current = config.get(); // { region: string; replicas: number } — fully typed\nconfig.set({ replicas: 3 }); // validated, atomic, lock-serialized write\nconfig.replace({ region: \"eu-west-1\", replicas: 2 }); // overwrite (can remove keys)\nconfig.reset(); // delete the file; get() then returns defaults\n```\n\nDiagnose problems across all registered plugins:\n\n```ts\nimport { doctor } from \"@agent-ix/ix-cli-core\";\n\nconst report = doctor(); // parse / schema / io incidents, per plugin\n```\n\n### 3. Store and read secrets\n\nSecrets are declared (so they appear in `ix secrets list`) and then read or written through a `SecretsService`. The framework picks the backend; in most commands you use the process-global default.\n\n```ts\nregisterSecret(\"deploy\", {\n  name: \"api-token\",\n  description: \"Deploy API token\",\n  envVar: \"DEPLOY_API_TOKEN\",\n});\n\nconst secrets = defaultSecretsService();\n\nawait secrets.set(\"deploy.api-token\", \"s3cr3t\"); // refuses if env var is shadowing\nconst token = await secrets.get(\"deploy.api-token\"); // env var > backend > null\nconst source = await secrets.which(\"deploy.api-token\"); // \"env\" | \"keyring\" | \"age-file\" | \"unset\"\n```\n\n`get()` returns the env-var value first when the secret's `envVar` is set, then falls back to the active backend, then `null`.\n\n### 4. Wire up login\n\nDiscover the service, run the device flow, and persist the resulting tokens in a host-keyed `TokenStore` (backed by the secrets service).\n\n```ts\nconst discovery = await fetchServiceDiscovery(\"https://api.example.com\");\n\nconst bundle = await runDeviceFlow(discovery, {\n  clientId: \"my-cli\",\n  prompter: {\n    showVerification({ approvalUri, userCode }) {\n      console.log(`Visit ${approvalUri} and enter code ${userCode}`);\n    },\n  },\n});\n\nconst tokens = new TokenStore({ secrets: defaultSecretsService() });\nawait tokens.save(\"https://api.example.com\", bundle);\n\n// Later, in any command — refreshed automatically when near expiry:\nconst accessToken = await tokens.getAccessToken(\"https://api.example.com\");\n```\n\nBy default `runDeviceFlow` opens the verification URI in a browser (non-fatal) and presents the prompt through the `prompter` you supply, so your CLI owns all rendering.\n\n### 5. Author a command\n\nExtend `BaseCommand` to inherit the global flags and runtime context, and declare any capabilities the command requires. A missing required capability short-circuits the command with a structured error before `run()` executes.\n\n```ts\nexport default class Deploy extends BaseCommand {\n  static override description = \"Deploy the current project\";\n\n  static override capabilities = {\n    required: [\"ix-api\"], // resolved in prerun(); fails fast if unavailable\n    optional: [\"github\"],\n  } as const;\n\n  async run(): Promise<void> {\n    const config = ConfigService.forPlugin(\"deploy\", ixSchema.config);\n    const { region, replicas } = config.get();\n    this.log(`Deploying ${replicas} replica(s) to ${region}…`);\n\n    if (this.hasCapability(\"github\")) {\n      // optional capability is available — do the extra thing\n    }\n  }\n}\n```\n\n### 6. Install marketplace plugins (optional)\n\nFor CLIs that load plugins from typed git sources, the marketplace adapter provides install options and a reconcile pass over a default set:\n\n```ts\nimport {\n  marketplaceInstallOptions,\n  reconcileDefaultSet,\n} from \"@agent-ix/ix-cli-core\";\n\nconst opts = marketplaceInstallOptions();\nawait reconcileDefaultSet(/* targets */);\n```\n\n---\n\n## Related projects\n\n- **[ix-cli](https://github.com/agent-ix/ix-cli)** — the canonical Agent IX CLI (`ix`), built on this framework. _(Currently private; will be made public soon.)_\n- **[quoin](https://github.com/agent-ix/quoin)** — the spec authoring and validation toolchain for the Agent IX ecosystem.\n- **[ix-flow](https://github.com/agent-ix/ix-flow)** — the agent-driven workflow lifecycle runner.\n\n---\n\n## Development\n\nThis project uses **pnpm** with **Corepack**.\n\n### Prerequisites\n\n- Node.js 20+\n- Corepack enabled (`corepack enable`)\n\n### Setup\n\n```bash\npnpm install      # install dependencies\npnpm run build    # build the library (vite)\npnpm run test     # run the test suite (vitest)\n```\n\n### Scripts\n\n| Command           | Description                             |\n| ----------------- | --------------------------------------- |\n| `pnpm run build`  | Compile the library                     |\n| `pnpm test`       | Run tests                               |\n| `pnpm run lint`   | Run ESLint + Prettier check             |\n| `pnpm run format` | Run Prettier                            |\n| `pnpm run clean`  | Remove build artifacts and node_modules |\n\nA `Makefile` is provided for convenience and delegates to the equivalent `pnpm run` scripts (`make build`, `make test`, `make lint`, …).\n\n---\n\n## License\n\n[MIT](./LICENSE) © Agent IX\n","readmeFilename":"README.md"}