{"_id":"@aiosbrain/aios-devtools","_rev":"4-b5b9a67f3bfd8e8ee287ebd6cd82d8b4","name":"@aiosbrain/aios-devtools","dist-tags":{"latest":"0.3.1"},"versions":{"0.2.0":{"name":"@aiosbrain/aios-devtools","version":"0.2.0","license":"MIT","_id":"@aiosbrain/aios-devtools@0.2.0","maintainers":[{"name":"cn_fuser","email":"chetan.nandakumar@gmail.com"},{"name":"iamjohndass","email":"john@john-ellison.com"}],"bin":{"aios-devtools":"scripts/cli.mjs"},"dist":{"shasum":"6f803d3844175235f22989036a1a77191bd3a257","tarball":"https://registry.npmjs.org/@aiosbrain/aios-devtools/-/aios-devtools-0.2.0.tgz","fileCount":42,"integrity":"sha512-7bN4cQSa4kCrK1BUY59NCGQWvCldK5AyQyFR3Gk4KWvmvinCEVbZvZY7gXWssfpLM9IeGPCJQARJT4129hrL0g==","signatures":[{"sig":"MEQCIGMAddTgp6Ae/a1vaZxO++6+S1V1ehT3FFwF7OM39hFHAiAX8GZP55//bA2COdKV3k5I/eDfX3y5P3KTcTcU1AzzBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":534305},"type":"module","engines":{"node":">=22 <23"},"exports":{".":"./scripts/index.mjs","./cli":"./scripts/cli.mjs","./ship":"./scripts/ship.mjs","./build":"./scripts/build.mjs","./spec-eval":"./scripts/spec-eval.mjs","./roadmap-run":"./scripts/roadmap-run.mjs","./package.json":"./package.json","./consolidate-findings":"./scripts/consolidate-findings.mjs"},"gitHead":"ff837ba1dffdb85f0168ab8af10ee0353ba70120","scripts":{"lint":"find scripts test -name '*.mjs' -print0 | xargs -0 -n1 node --check","test":"node --test --test-force-exit test/*.test.mjs"},"_npmUser":{"name":"iamjohndass","email":"john@john-ellison.com"},"_npmVersion":"10.9.4","description":"AIOS devtools — the ship/build/roadmap-run/spec-eval/spec-publish/consolidate-findings command set, cut from aiosbrain/aios-workspace (AIO-594). Toolkit-seam functionality requires an AIOS toolkit checkout via AIOS_TOOLKIT_DIR or --toolkit-dir (docs/devto","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@anthropic-ai/sdk":"^0.115.0","@aiosbrain/foundation":"^0.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aios-devtools_0.2.0_1785571770567_0.08777520801310201","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aiosbrain/aios-devtools","version":"0.2.1","license":"MIT","_id":"@aiosbrain/aios-devtools@0.2.1","maintainers":[{"name":"cn_fuser","email":"chetan.nandakumar@gmail.com"},{"name":"iamjohndass","email":"john@john-ellison.com"}],"homepage":"https://github.com/aiosbrain/aios-devtools#readme","bugs":{"url":"https://github.com/aiosbrain/aios-devtools/issues"},"bin":{"aios-devtools":"scripts/cli.mjs"},"dist":{"shasum":"3ac5c95a40f193435603d4d9b9378687bf2a1073","tarball":"https://registry.npmjs.org/@aiosbrain/aios-devtools/-/aios-devtools-0.2.1.tgz","fileCount":42,"integrity":"sha512-DlCSF0tP178Os6aA7KbvV0f4EUi4hg2mQZgLemhE7mS6FsuM42I7FvjJC9HW/qMPjNoFe70FgKNMIlTE7L2Wag==","signatures":[{"sig":"MEUCIDrSSUGeF6HdXICTlg+ZsPN4siVBW03V8HJTV1LwGtkrAiEA5c3cgBaOBl1w0uLRHU6Akncv3Asx1EOxaSQehGXREUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiosbrain%2faios-devtools@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":546283},"type":"module","engines":{"node":">=22 <23"},"exports":{".":"./scripts/index.mjs","./cli":"./scripts/cli.mjs","./ship":"./scripts/ship.mjs","./build":"./scripts/build.mjs","./spec-eval":"./scripts/spec-eval.mjs","./loop-models":"./scripts/loop-models.mjs","./roadmap-run":"./scripts/roadmap-run.mjs","./package.json":"./package.json","./model-providers":"./scripts/model-providers.mjs","./consolidate-findings":"./scripts/consolidate-findings.mjs"},"gitHead":"11ccc43f6a4806b5512670e09a0ebefa909fd8de","scripts":{"lint":"find scripts test -name '*.mjs' -print0 | xargs -0 -n1 node --check","test":"node --test --test-force-exit test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd1f7d61-bc01-4503-8153-f26ff74c12e3"}},"repository":{"url":"git+https://github.com/aiosbrain/aios-devtools.git","type":"git"},"_npmVersion":"12.0.2","description":"AIOS devtools — the ship/build/roadmap-run/spec-eval/spec-publish/consolidate-findings command set, cut from aiosbrain/aios-workspace (AIO-594). Toolkit-seam functionality requires an AIOS toolkit checkout via AIOS_TOOLKIT_DIR or --toolkit-dir (docs/devto","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@anthropic-ai/sdk":"^0.115.0","@aiosbrain/foundation":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aios-devtools_0.2.1_1786347785516_0.30411780729688664","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aiosbrain/aios-devtools","version":"0.3.0","license":"AGPL-3.0-only","_id":"@aiosbrain/aios-devtools@0.3.0","maintainers":[{"name":"cn_fuser","email":"chetan.nandakumar@gmail.com"},{"name":"iamjohndass","email":"john@john-ellison.com"}],"homepage":"https://github.com/aiosbrain/aios-devtools#readme","bugs":{"url":"https://github.com/aiosbrain/aios-devtools/issues"},"bin":{"aios-devtools":"scripts/cli.mjs"},"dist":{"shasum":"26570d00a495cb897abbd6ce5552e779a4c83993","tarball":"https://registry.npmjs.org/@aiosbrain/aios-devtools/-/aios-devtools-0.3.0.tgz","fileCount":45,"integrity":"sha512-RKCphn00wbWIqUytSrQuiBQodXNcNO5RqBjmSRKbB/BlWRdCwAlHM7VtRzM1wMmKBuo9eywUqYiUrvOW1ivpkA==","signatures":[{"sig":"MEUCIEYOaZ8fKvtURQL8wGI4ISrLlq0mgcmmxEoJRShJfb/MAiEAzc+vx274EfdhaFED1ksww/lXGWNMfT+VptK5piWj8o8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiosbrain%2faios-devtools@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":603589},"type":"module","engines":{"node":">=22 <23"},"exports":{".":"./scripts/index.mjs","./cli":"./scripts/cli.mjs","./ship":"./scripts/ship.mjs","./build":"./scripts/build.mjs","./spec-eval":"./scripts/spec-eval.mjs","./loop-models":"./scripts/loop-models.mjs","./roadmap-run":"./scripts/roadmap-run.mjs","./package.json":"./package.json","./model-providers":"./scripts/model-providers.mjs","./consolidate-findings":"./scripts/consolidate-findings.mjs"},"gitHead":"b59a41017f199b63e9fca73d3047a1af8ceac580","scripts":{"lint":"find scripts test -name '*.mjs' -print0 | xargs -0 -n1 node --check","test":"node --test --test-force-exit test/*.test.mjs","test:coverage":"c8 node --test --test-force-exit test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd1f7d61-bc01-4503-8153-f26ff74c12e3"}},"repository":{"url":"git+https://github.com/aiosbrain/aios-devtools.git","type":"git"},"_npmVersion":"12.0.2","description":"AIOS devtools — the ship/build/roadmap-run/spec-eval/spec-publish/consolidate-findings command set, cut from aiosbrain/aios-workspace (AIO-594). Toolkit-seam functionality requires an AIOS toolkit checkout via AIOS_TOOLKIT_DIR or --toolkit-dir (docs/devto","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@anthropic-ai/sdk":"^0.115.0","@aiosbrain/foundation":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/aios-devtools_0.3.0_1787228720473_0.6871449433026973","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aiosbrain/aios-devtools","version":"0.3.1","description":"AIOS devtools — the ship/build/roadmap-run/spec-eval/spec-publish/consolidate-findings command set, cut from aiosbrain/aios-workspace (AIO-594). Toolkit-seam functionality requires an AIOS toolkit checkout via AIOS_TOOLKIT_DIR or --toolkit-dir (docs/devto","type":"module","license":"AGPL-3.0-only","repository":{"type":"git","url":"git+https://github.com/aiosbrain/aios-devtools.git"},"homepage":"https://github.com/aiosbrain/aios-devtools#readme","bugs":{"url":"https://github.com/aiosbrain/aios-devtools/issues"},"publishConfig":{"access":"public"},"bin":{"aios-devtools":"scripts/cli.mjs"},"exports":{".":"./scripts/index.mjs","./cli":"./scripts/cli.mjs","./build":"./scripts/build.mjs","./spec-eval":"./scripts/spec-eval.mjs","./consolidate-findings":"./scripts/consolidate-findings.mjs","./ship":"./scripts/ship.mjs","./roadmap-run":"./scripts/roadmap-run.mjs","./loop-models":"./scripts/loop-models.mjs","./model-providers":"./scripts/model-providers.mjs","./package.json":"./package.json"},"engines":{"node":"22.x || 24.x || 26.x"},"scripts":{"test":"node --test --test-force-exit test/*.test.mjs","lint":"find scripts test -name '*.mjs' -print0 | xargs -0 -n1 node --check","test:coverage":"c8 node --test --test-force-exit test/*.test.mjs"},"dependencies":{"@aiosbrain/foundation":"^0.1.2","@anthropic-ai/sdk":"^0.115.0"},"devDependencies":{"c8":"^12.0.0"},"gitHead":"4a9ddb41fc4370338ad271301e6babd3d05a3f69","_id":"@aiosbrain/aios-devtools@0.3.1","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-KVBWJ5G+e/9CLuXK4yksPgFvZv9XdOz1ccT4D7lLmBVHT2iFu8jECvZj5GKrZ7NU3YRlwqpgffaGVvWkHnsb6g==","shasum":"0350d0254cca6fba26d1c0291ac664022798d0c0","tarball":"https://registry.npmjs.org/@aiosbrain/aios-devtools/-/aios-devtools-0.3.1.tgz","fileCount":45,"unpackedSize":605876,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiosbrain%2faios-devtools@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmS5pq79K3dquzqFpo2aWxp7aU4uJtr+3ZOpV9KSHXlgIhAO9XCV5xcqrRG/R5HwSsaBOpFPrq5xSdr17TJxVXYhJj"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd1f7d61-bc01-4503-8153-f26ff74c12e3"}},"directories":{},"maintainers":[{"name":"cn_fuser","email":"chetan.nandakumar@gmail.com"},{"name":"iamjohndass","email":"john@john-ellison.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aios-devtools_0.3.1_1787974230458_0.5531162483509826"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-01T08:09:30.443Z","modified":"2026-08-29T03:30:30.934Z","0.2.0":"2026-08-01T08:09:30.736Z","0.2.1":"2026-08-10T07:43:05.691Z","0.3.0":"2026-08-20T12:25:20.642Z","0.3.1":"2026-08-29T03:30:30.604Z"},"bugs":{"url":"https://github.com/aiosbrain/aios-devtools/issues"},"license":"AGPL-3.0-only","homepage":"https://github.com/aiosbrain/aios-devtools#readme","repository":{"type":"git","url":"git+https://github.com/aiosbrain/aios-devtools.git"},"description":"AIOS devtools — the ship/build/roadmap-run/spec-eval/spec-publish/consolidate-findings command set, cut from aiosbrain/aios-workspace (AIO-594). Toolkit-seam functionality requires an AIOS toolkit checkout via AIOS_TOOLKIT_DIR or --toolkit-dir (docs/devto","maintainers":[{"name":"cn_fuser","email":"chetan.nandakumar@gmail.com"},{"name":"iamjohndass","email":"john@john-ellison.com"}],"readme":"# aios-devtools\n\nThe AIOS devtools command set — `ship`, `build`, `roadmap-run`, `spec-eval`,\n`spec-publish`, `consolidate-findings` — split out of the AIOS workspace toolkit.\n\n## Installation\n\nPublished as **`@aiosbrain/aios-devtools`** (not yet on the npm registry — until the\nfirst publish, install from a local pack):\n\n```bash\n# once published:\nnpm install @aiosbrain/aios-devtools\n\n# meanwhile, from a checkout of this repo:\nnpm ci && npm pack\nnpm install ./aiosbrain-aios-devtools-<version>.tgz   # in the consuming project\n```\n\nNode `>=22 <23` is required (see `engines`).\n\n### The `aios-devtools` bin\n\nThe install exposes one stable binary, `aios-devtools`, which dispatches the five\npublic commands to their implementation modules in-process — argv, cwd, environment,\nstdio, exit codes, and signals are the command's own; the bin never reparses\ncommand-specific flags:\n\n```bash\naios-devtools --help                  # lists the five commands\naios-devtools build <plan-file|task> [branch] [options]\naios-devtools spec <spec-file> [options]\naios-devtools consolidate-findings [options]\naios-devtools ship <AIO-issue> [options]\naios-devtools roadmap-run [--label|--epic|--project ...] [options]\n```\n\nProgrammatic consumers get the same surface via the package exports: the root\n(`@aiosbrain/aios-devtools`) re-exports the five `cmdX(repo, args)` entry points plus\nthe relay-support functions (`runBuild`, `parseBuildArgs`, `evaluateSpec`, `loadRubric`,\n`loadRecentDecisions`, `formatFindings`, `specEvalHints`); each command module is also\na subpath export (`@aiosbrain/aios-devtools/build`, `/spec-eval`,\n`/consolidate-findings`, `/ship`, `/roadmap-run`) for lazy loading — this is the seam a\nWorkspace dispatch adapter delegates through.\n\n**Toolkit seam requirement:** toolkit-dependent functionality needs an AIOS toolkit\ncheckout, located via `--toolkit-dir <path>` (per command) or `AIOS_TOOLKIT_DIR` in the\nenvironment — see \"The toolkit contract\" below and\n`docs/devtools-toolkit-contract.md`. Without one, seam-dependent paths fail with an\nactionable locator error.\n\n### Contributor flow (adjacent checkout)\n\nFor development, keep this repo and an `aios-workspace` checkout side by side and point\nthe seam at the workspace checkout:\n\n```bash\ngit clone https://github.com/aiosbrain/aios-devtools\ngit clone https://github.com/aiosbrain/aios-workspace\ncd aios-workspace && npm ci && cd ../aios-devtools\nexport AIOS_TOOLKIT_DIR=\"$(pwd)/../aios-workspace\"\nnpm ci && npm test    # toolkit-dependent suites run instead of skipping\n```\n\nThe adjacent checkout is a contributor convenience only — the normal release path uses\nan installed, version-pinned distribution of this package (spec: Dispatch Contract).\n\n## Provenance\n\nCut from **`aiosbrain/aios-workspace` @ `10099cd8b01bade40fd16f296fa523ef20b228c3`**\n(AIO-594) via `git filter-repo` over the declared extraction + copy path manifests.\nHistory for every travelling file is preserved (`git log --follow` depth matches core).\nCopied-infrastructure files are temporary duplicates tracked as ongoing backlog under\n**Linear AIO-663** — there is no convergence deadline (the repo owner dropped the\noriginal 7-day deadline on 2026-08-03). See `docs/copy-ledger.md` for the tracked\nconvergence ledger (required terminal dispositions + status) and `NOTES.md` for the\ncut-time notes.\n\n## The toolkit contract\n\nThis repo is standalone for its own logic, but the stays-core engines (review-bugbot,\nsimplify, relay, spec-author) and core-owned content are reached **only** through the\ntoolkit-location seam (`scripts/toolkit-locate.mjs`). Toolkit-seam functionality\nrequires an AIOS toolkit checkout, located via (in precedence order):\n\n1. `--toolkit-dir <path>` (CLI flag)\n2. `AIOS_TOOLKIT_DIR=<path>` (environment)\n3. the containing repo root, when this code runs inside an `aios-workspace` checkout\n\nWithout a toolkit, seam-dependent paths fail with an actionable locator error (never\nan import crash), and toolkit-dependent tests **skip with a named reason**. The full\ncontract: `docs/devtools-toolkit-contract.md`.\n\n```bash\nexport AIOS_TOOLKIT_DIR=/path/to/aios-workspace   # npm ci'd checkout\nnpm ci\nnpm test        # node --test over test/ — green with the toolkit; toolkit-dependent files skip without it\nnpm run lint    # node --check sweep over scripts/ + test/\n```\n\n## Entrypoint semantics\n\nAll six command modules load and run standalone (their full static import graph\nresolves without a toolkit checkout):\n\n| Entry | `--help` behavior |\n|-------|-------------------|\n| `scripts/ship.mjs` (`cmdShip`) | usage printed, exit 0 |\n| `scripts/build.mjs` (`cmdBuild`) | usage printed, exit 0 |\n| `scripts/roadmap-run.mjs` (`cmdRoadmapRun`) | usage printed, exit 0 |\n| `scripts/spec-eval.mjs` (`cmdSpec`) | usage printed, exit 0 |\n| `scripts/consolidate-findings.mjs` (`cmdConsolidateFindings`) | usage printed, exit 0 |\n| `scripts/spec-publish.mjs` (`cmdSpecPublish`) | throws its own usage error (`SpecPublishError`) **by design** — there is no `--help` path in the function; behavior is byte-identical to the in-monorepo dispatch. Not an import crash. |\n\nSo: **5 entries exit 0 with usage; `cmdSpecPublish` exits with its designed usage\nerror** — parity with core, not six clean exits.\n\n## Governance\n\nStamped by `aios repo-bootstrap` (worktree guard pack, file-size gate,\nboundary gate, leak gate, CI skeleton) — see `ENGINEERING-CONSTITUTION.md`.\n\n## License\n\n**AGPL-3.0-only.** Running this inside your company is unrestricted — the AGPL places no\nobligation on internal use, at any scale, however much you modify it.\n\nPrior releases remain MIT, preserved in [`LICENSE-MIT`](LICENSE-MIT); the change is\ngoing-forward only. If your organization's policy bans AGPL, there is a\n[free commercial license](COMMERCIAL-LICENSE.md) for internal use — email cn@fluora.ai.\n\nWhy AGPL and not Apache-2.0 for a published package, given the SDKs elsewhere in AIOS are\npermissive: see [`LICENSING.md`](LICENSING.md). Short version — the `AIO-` issue prefix is\nhardcoded in six modules, so this is internal tooling today, and it depends on\n`@aiosbrain/foundation`, which is AGPL.\n\nLonger answers: [licensing FAQ](docs/LICENSING-FAQ.md).\n","readmeFilename":"README.md"}