{"_id":"@axiastudio/aioc-regression-cli","name":"@axiastudio/aioc-regression-cli","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@axiastudio/aioc-regression-cli","version":"0.1.1","description":"Experimental CLI for running AIOC regression suites from filesystem artifacts.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"aioc-regression":"dist/bin.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && tsc -p tsconfig.build.json","test":"node -e \"require('fs').rmSync('dist-tests',{recursive:true,force:true})\" && tsc -p tsconfig.test.json && node dist-tests/tests/index.js","prepack":"npm run build"},"keywords":["aioc","regression","cli","run-records","evaluation"],"author":{"name":"Tiziano Lattisi - AXIA Studio S.r.l."},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/axiastudio/aioc.git","directory":"packages/aioc-regression-cli"},"bugs":{"url":"https://github.com/axiastudio/aioc/issues"},"homepage":"https://axiastudio.github.io/aioc","publishConfig":{"access":"public"},"dependencies":{"js-yaml":"^4.1.1"},"peerDependencies":{"@axiastudio/aioc":"^0.2.9"},"devDependencies":{"@axiastudio/aioc":"^0.2.9","@types/js-yaml":"^4.0.9","@types/node":"^22.15.3","typescript":"^5.9.2"},"_id":"@axiastudio/aioc-regression-cli@0.1.1","gitHead":"56e37c574d8d3bcbffa1ff95db9c9ada702bd15c","_nodeVersion":"20.11.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-L97qsiBRccGkz12KSCH6CMx2Py1pZNmKju3fOvFpC5jCU1sElM/cZuH2iKZQtU8g6U7OWJji2Of0aqa+WyOngQ==","shasum":"0f87df55e19dbcdff749477d8f90298941b18eee","tarball":"https://registry.npmjs.org/@axiastudio/aioc-regression-cli/-/aioc-regression-cli-0.1.1.tgz","fileCount":10,"unpackedSize":37398,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDQdAnEE9MJcoq7AjxbYe1wjxm3V/G9CKVkDdT1Jh2GxAIhAN9xIHQlbje7WsExF54DCHgK6aCiYnCse+SiRbSMCvpX"}]},"_npmUser":{"name":"tizianolattisi","email":"info@axia.studio"},"directories":{},"maintainers":[{"name":"tizianolattisi","email":"info@axia.studio"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aioc-regression-cli_0.1.1_1783524263950_0.6876371247428059"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T15:24:23.795Z","0.1.1":"2026-07-08T15:24:24.115Z","modified":"2026-07-08T15:24:24.326Z"},"maintainers":[{"name":"tizianolattisi","email":"info@axia.studio"}],"description":"Experimental CLI for running AIOC regression suites from filesystem artifacts.","homepage":"https://axiastudio.github.io/aioc","keywords":["aioc","regression","cli","run-records","evaluation"],"repository":{"type":"git","url":"git+https://github.com/axiastudio/aioc.git","directory":"packages/aioc-regression-cli"},"author":{"name":"Tiziano Lattisi - AXIA Studio S.r.l."},"bugs":{"url":"https://github.com/axiastudio/aioc/issues"},"license":"MIT","readme":"# @axiastudio/aioc-regression-cli\n\nExperimental CLI for running AIOC regression suites from filesystem artifacts.\n\nThe CLI is intentionally thin: it loads baseline `RunRecord` files, builds a\ncandidate harness from a descriptor, delegates executable behavior to an\napplication adapter, then writes candidate records, comparisons, judge results,\nand a CI-friendly summary.\n\n## Usage\n\n```bash\naioc-regression run \\\n  --records ./baseline/runrecords \\\n  --baseline ./baseline/harness.yaml \\\n  --candidate ./candidate/harness.yaml \\\n  --expectation ./expectation.yaml \\\n  --adapter ./adapter.mjs \\\n  --out ./out\n```\n\nDefaults:\n\n- `--mode live`\n- `--input-mode recorded`\n- `--fail-on fail`\n\nUse `--dry-run` to validate artifacts and build the candidate harness without\nrunning replay.\n\nThe `--expectation` file must contain a `RunRegressionExpectation` directly.\n\n## Adapter\n\nThe adapter must be a `.js` or `.mjs` ESM module with a default object export.\nTypeScript adapters are intentionally not loaded by v1.\n\n```js\nimport { allow, setupOpenAI, tool } from \"@axiastudio/aioc\";\n\nexport default {\n  setup() {\n    setupOpenAI();\n  },\n\n  createTools() {\n    return {\n      \"example://tool/get_age_range\": tool({\n        name: \"get_age_range\",\n        description: \"Return the learner age range.\",\n        execute: async () => ({ ageRange: \"8-10\" }),\n      }),\n    };\n  },\n\n  createRunOptions() {\n    return {\n      policies: {\n        toolPolicy: () => allow(\"allow_example_tool\"),\n      },\n    };\n  },\n};\n```\n\nOptional adapter hooks:\n\n- `createJudge(context)` returns a `RunJudge`.\n- `createComparisonOptions(context)` returns `compareRunRecords(...)` options.\n- `onMissingToolCall(input)` handles strict or hybrid replay misses.\n\n## Output\n\n```text\nout/\n  summary.json\n  candidates/\n    case-name.runrecord.json\n  comparisons/\n    case-name.comparison.json\n  judges/\n    case-name.judge.json\n  results/\n    case-name.result.json\n```\n\n`summary.json` is the compact artifact intended for CI. Full records and\ncomparisons remain available for inspection and offline analysis.\n","readmeFilename":"README.md","_rev":"1-3929e19dc1c4d3ed2cc85a6d144fce1d"}