{"_id":"@afps-spec/platform-tools","name":"@afps-spec/platform-tools","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@afps-spec/platform-tools","version":"1.0.0","description":"Reference TypeScript implementations of the five AFPS 1.3 reserved platform tools: log, memory, output, report, state.","license":"Apache-2.0","type":"module","main":"./src/index.ts","exports":{".":"./src/index.ts","./log":"./src/log.ts","./memory":"./src/memory.ts","./output":"./src/output.ts","./report":"./src/report.ts","./state":"./src/state.ts","./manifests/*.json":"./manifests/*.json"},"keywords":["afps","agent","tool","platform"],"repository":{"type":"git","url":"git+https://github.com/appstrate/afps-spec.git","directory":"packages/platform-tools"},"dependencies":{"@afps-spec/types":"1.0.0"},"devDependencies":{"bun-types":"^1.3.10","typescript":"^5"},"scripts":{"typecheck":"tsc --noEmit","test":"bun test"},"_id":"@afps-spec/platform-tools@1.0.0","bugs":{"url":"https://github.com/appstrate/afps-spec/issues"},"homepage":"https://github.com/appstrate/afps-spec#readme","_integrity":"sha512-1cdTKYrss0W4eI9ERsNToSbBXgijI0oF4idqfWdBV66JcYGOWjz7lvvHC43kcMX/ecLADFJDp9G5j6wveffCSw==","_resolved":"/home/runner/work/afps-spec/afps-spec/packages/platform-tools/afps-spec-platform-tools-1.0.0.tgz","_from":"file:afps-spec-platform-tools-1.0.0.tgz","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-1cdTKYrss0W4eI9ERsNToSbBXgijI0oF4idqfWdBV66JcYGOWjz7lvvHC43kcMX/ecLADFJDp9G5j6wveffCSw==","shasum":"ac2979a13dd0df3739953ba54d97cb359958874e","tarball":"https://registry.npmjs.org/@afps-spec/platform-tools/-/platform-tools-1.0.0.tgz","fileCount":13,"unpackedSize":14026,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afps-spec%2fplatform-tools@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCVpICQHq27U7Rlg2V/aktwLjhEYsEDyOheJMeYdA+IfwIhAOSJoHb2/3BwFaSFSz/kMcudlujJHUYUdveLnDvKiIyw"}]},"_npmUser":{"name":"pierrecabriere","email":"hello@pierrecabriere.fr"},"directories":{},"maintainers":[{"name":"pierrecabriere","email":"hello@pierrecabriere.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/platform-tools_1.0.0_1777001663762_0.41714159773883086"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T03:34:23.660Z","1.0.0":"2026-04-24T03:34:23.886Z","modified":"2026-04-24T03:34:24.530Z"},"maintainers":[{"name":"pierrecabriere","email":"hello@pierrecabriere.fr"}],"description":"Reference TypeScript implementations of the five AFPS 1.3 reserved platform tools: log, memory, output, report, state.","homepage":"https://github.com/appstrate/afps-spec#readme","keywords":["afps","agent","tool","platform"],"repository":{"type":"git","url":"git+https://github.com/appstrate/afps-spec.git","directory":"packages/platform-tools"},"bugs":{"url":"https://github.com/appstrate/afps-spec/issues"},"license":"Apache-2.0","readme":"# @afps-spec/platform-tools\n\nReference TypeScript implementations of the five reserved platform\ntools defined by [AFPS 1.3](https://github.com/appstrate/afps-spec)\n§8.1:\n\n| Tool name (wire) | Export           | Emits event       |\n| ---------------- | ---------------- | ----------------- |\n| `log`            | `logTool`        | `log.written`     |\n| `add_memory`     | `memoryTool`     | `memory.added`    |\n| `output`         | `outputTool`     | `output.emitted`  |\n| `report`         | `reportTool`     | `report.appended` |\n| `set_state`      | `stateTool`      | `state.set`       |\n\nEvery tool is framework-agnostic: it depends only on the\n`Tool`/`ToolContext`/`ToolResult` contract from\n[`@afps-spec/types`](../types) and emits canonical AFPS 1.3 events via\n`ctx.emit`. Persistence, transport, and observability live in the\nruntime's `EventSink`, not here.\n\n## Install\n\n```sh\nbun add @afps-spec/platform-tools\n```\n\n## Usage\n\n### Individual tools\n\n```ts\nimport { outputTool, reportTool } from \"@afps-spec/platform-tools\";\n\n// …wire into your runner's tool registry\nconst tools = [outputTool, reportTool];\n```\n\n### Full platform set\n\n```ts\nimport { PLATFORM_TOOLS } from \"@afps-spec/platform-tools\";\n\n// Register every reserved platform tool at once — e.g. to support\n// pre-1.3 agents that expect the runtime to inject them implicitly.\nfor (const [name, tool] of Object.entries(PLATFORM_TOOLS)) {\n  registry.register(name, tool);\n}\n```\n\n### Per-tool subpath imports\n\n```ts\nimport outputTool from \"@afps-spec/platform-tools/output\";\nimport outputManifest from \"@afps-spec/platform-tools/manifests/output.json\";\n```\n\n## Manifests\n\nThe canonical AFPS manifest for each tool is shipped alongside the\nsource under `manifests/`. Bundle builders can embed them verbatim, or\nruntimes can load them at resolution time via the\n`@afps-spec/platform-tools/manifests/<tool>.json` subpath export.\n\n## Versioning\n\n`@afps-spec/platform-tools@1.x` implements the tools mandated by AFPS 1.3.\nA MAJOR bump tracks a breaking change in the tool contract (parameters\nor event envelope); MINOR adds a new reserved tool or a non-breaking\nfield.\n\n## License\n\n[Apache-2.0](../../LICENSE)\n","readmeFilename":"README.md","_rev":"1-33ba6f09fd8d6bb60330c525c6a0b348"}