Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ No entries.
- The local RPC documentation now makes non-loopback exposure an explicit
human-owned architecture and security gate.

### Fixed

- Normalized the npm `bin` path so the published manifest retains the
`agent-runtime-services` CLI entrypoint.

### Validation Evidence

- The release-candidate gate passed 117 tests across 15 test files under Node 20
Expand All @@ -43,6 +48,8 @@ No entries.
- An isolated runtime home reported `readiness: ok`; real language, embedding,
and vision calls succeeded, smoke output contained no configured secret, and
an unconfigured runtime returned `missing_resource` for all model modules.
- The packed manifest preserved the CLI mapping and the packed CLI executed
`--version` and `--help` successfully.

### Residual Risks

Expand Down
2 changes: 2 additions & 0 deletions architecture/project-traceability.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ direct post-publication or product-acceptance evidence exists.

- `pnpm release:check`: 15 test files and 117 tests passed under Node 20 and
Node 22; typecheck, build, and the 21-file package dry-run passed.
- The packed package manifest retained the `agent-runtime-services` CLI bin
mapping, and the packed CLI executed `--version` and `--help` successfully.
- `pnpm security:audit`: no known production dependency vulnerabilities at the
time of the check.
- A dedicated isolated runtime home reported `readiness: ok`; real language,
Expand Down
4 changes: 3 additions & 1 deletion architecture/project-traceability.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ validation_baseline:
observed_at: 2026-07-22
release_candidate:
command: pnpm release:check
result: 15 test files and 117 tests passed on Node 20 and Node 22; typecheck, build, and 21-file package dry-run passed
result: 15 test files and 117 tests passed on Node 20 and Node 22; typecheck, build, 21-file package dry-run, packed CLI manifest, and packed CLI execution passed
dependency_security:
command: pnpm security:audit
result: no known production dependency vulnerabilities
Expand Down Expand Up @@ -98,6 +98,8 @@ requirements:
- .github/workflows/ci.yml
validation:
- pnpm release:check
- packed package manifest retains the agent-runtime-services bin mapping
- packed CLI executes --version and --help
residual_risk:
- Consumer acceptance, npm publication, and production operation require separate evidence.
- Node 22 with the experimental NODE_USE_ENV_PROXY flag emits runtime warnings on stderr; the CI-like matrix without that experimental flag passes.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
},
"type": "module",
"bin": {
"agent-runtime-services": "./bin/agent-runtime-services.mjs"
"agent-runtime-services": "bin/agent-runtime-services.mjs"
},
"exports": {
".": {
Expand Down
7 changes: 7 additions & 0 deletions test/cli-rpc-smoke.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,13 @@ describe('CLI RPC smoke', () => {
runtimeHome,
]);
await installPackedRuntimePackage(consumerHome);
const packedPackage = JSON.parse(await readFile(
join(consumerHome, 'node_modules', 'agent-runtime-services', 'package.json'),
'utf8',
)) as { bin?: Record<string, string> };
expect(packedPackage.bin).toEqual({
'agent-runtime-services': 'bin/agent-runtime-services.mjs',
});
const packedBin = join(consumerHome, 'node_modules', 'agent-runtime-services', 'bin', 'agent-runtime-services.mjs');
await expect(execFileAsync(process.execPath, [packedBin, '--version'], {
cwd: consumerHome,
Expand Down
4 changes: 4 additions & 0 deletions test/publication-identity.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ describe('publication identity', () => {
readFile(join(repoRoot, 'architecture', 'release-readiness-contract.md'), 'utf8').catch(() => ''),
]);
const pkg = JSON.parse(pkgRaw) as {
bin?: Record<string, string>;
files?: string[];
publishConfig?: { access?: string; registry?: string };
scripts?: Record<string, string>;
Expand All @@ -57,6 +58,9 @@ describe('publication identity', () => {
);
expect(pkg.scripts?.prepublishOnly).toBe('pnpm test:acceptance && pnpm release:check');
expect(pkg.version).toBe('0.1.0');
expect(pkg.bin).toEqual({
'agent-runtime-services': 'bin/agent-runtime-services.mjs',
});
expect(pkg.publishConfig).toEqual({
access: 'public',
registry: 'https://registry.npmjs.org/',
Expand Down