{"_id":"@atsumell/trace-weave","_rev":"2-d2bfcd28648d11077e462d0220687b50","name":"@atsumell/trace-weave","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@atsumell/trace-weave","version":"0.1.0","license":"MIT","_id":"@atsumell/trace-weave@0.1.0","maintainers":[{"name":"rizumita","email":"r.izumita@caph.jp"},{"name":"matsukorin","email":"matsu@atsumell.com"}],"homepage":"https://github.com/Atsumell/trace-weave#readme","bugs":{"url":"https://github.com/Atsumell/trace-weave/issues"},"dist":{"shasum":"208915f1a9ee62da4f9167cfd02b082ba6de4ab9","tarball":"https://registry.npmjs.org/@atsumell/trace-weave/-/trace-weave-0.1.0.tgz","fileCount":45,"integrity":"sha512-vXBqr0uOb1aEA5SYb7I3MD4G5KPRUT69BoSwSRWTq2qDkVppwztunUNYRQELXtzFQ/BD0smCQrlOPuAn1qQGRA==","signatures":[{"sig":"MEYCIQDGfCoBMZ5ajFw2rWaWUi+/QHvVqz1TIyMVfDD8p1fGDwIhANSGgBc0EdDh0i6ans7yHrlIkQH8CnsfIUeTLU6zHA0s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186244},"type":"module","_from":"file:atsumell-trace-weave-0.1.0.tgz","engines":{"node":">=20"},"exports":{"./ai":{"types":"./dist/ai/index.d.ts","import":"./dist/ai/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vitest":{"types":"./dist/vitest/index.d.ts","import":"./dist/vitest/index.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./monitor":{"types":"./dist/monitor/index.d.ts","import":"./dist/monitor/index.js"},"./compiler":{"types":"./dist/compiler/index.d.ts","import":"./dist/compiler/index.js"},"./patterns":{"types":"./dist/patterns/index.d.ts","import":"./dist/patterns/index.js"},"./fast-check":{"types":"./dist/fast-check/index.d.ts","import":"./dist/fast-check/index.js"}},"scripts":{"lint":"biome check .","test":"vitest run","audit":"npm audit","build":"tsup","format":"biome format --write .","lint:fix":"biome check --write .","typecheck":"tsc --noEmit","pack:smoke":"node ./scripts/pack-smoke.mjs","test:watch":"vitest","skills:validate":"node ./scripts/validate-skills.mjs"},"_npmUser":{"name":"rizumita","email":"r.izumita@caph.jp"},"_resolved":"/private/var/folders/2c/qtwpt9yj4fs9k20l__sg_zd40000gn/T/518972c0074463cdc59d56759a3d1d1f/atsumell-trace-weave-0.1.0.tgz","overrides":{"vite":"^6.4.2","picomatch":"^4.0.4"},"_integrity":"sha512-vXBqr0uOb1aEA5SYb7I3MD4G5KPRUT69BoSwSRWTq2qDkVppwztunUNYRQELXtzFQ/BD0smCQrlOPuAn1qQGRA==","repository":{"url":"git+https://github.com/Atsumell/trace-weave.git","type":"git"},"_npmVersion":"11.6.2","description":"Finite-trace temporal test oracle framework based on LTLf","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vite":"^6.4.2","vitest":"^4.1.2","fast-check":"^3.23.0","typescript":"^5.7.0","@biomejs/biome":"^1.9.0","@vitest/coverage-v8":"^4.1.3"},"peerDependencies":{"vitest":">=2.0.0","fast-check":">=3.0.0"},"peerDependenciesMeta":{"vitest":{"optional":true},"fast-check":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/trace-weave_0.1.0_1775683176139_0.2570140763118576","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atsumell/trace-weave","version":"0.1.1","description":"Finite-trace temporal test oracle framework based on LTLf","repository":{"type":"git","url":"git+https://github.com/Atsumell/trace-weave.git"},"bugs":{"url":"https://github.com/Atsumell/trace-weave/issues"},"homepage":"https://github.com/Atsumell/trace-weave#readme","publishConfig":{"access":"public"},"type":"module","exports":{"./core":{"import":"./dist/core/index.js","types":"./dist/core/index.d.ts"},"./builder":{"import":"./dist/builder/index.js","types":"./dist/builder/index.d.ts"},"./compiler":{"import":"./dist/compiler/index.js","types":"./dist/compiler/index.d.ts"},"./monitor":{"import":"./dist/monitor/index.js","types":"./dist/monitor/index.d.ts"},"./patterns":{"import":"./dist/patterns/index.js","types":"./dist/patterns/index.d.ts"},"./fast-check":{"import":"./dist/fast-check/index.js","types":"./dist/fast-check/index.d.ts"},"./vitest":{"import":"./dist/vitest/index.js","types":"./dist/vitest/index.d.ts"},"./ai":{"import":"./dist/ai/index.js","types":"./dist/ai/index.d.ts"}},"peerDependencies":{"fast-check":">=3.0.0","vitest":">=2.0.0"},"peerDependenciesMeta":{"fast-check":{"optional":true},"vitest":{"optional":true}},"devDependencies":{"@biomejs/biome":"^1.9.0","@vitest/coverage-v8":"^4.1.3","fast-check":"^3.23.0","tsup":"^8.3.0","typescript":"^5.7.0","vite":"^6.4.2","vitest":"^4.1.2"},"overrides":{"picomatch":"^4.0.4","vite":"^6.4.2"},"engines":{"node":">=20"},"license":"MIT","scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","lint":"biome check .","lint:fix":"biome check --write .","format":"biome format --write .","audit":"npm audit","skills:validate":"node ./scripts/validate-skills.mjs","pack:smoke":"node ./scripts/pack-smoke.mjs"},"_id":"@atsumell/trace-weave@0.1.1","_integrity":"sha512-zwHWKNWvfzh1D0Wf+hq/KXEaKmEAxMZ2JqQHcUeFUwx3MjzrYirwK4gNCiK3chveqLxrns1Uadfqf2h0eKuxrQ==","_resolved":"/private/var/folders/2c/qtwpt9yj4fs9k20l__sg_zd40000gn/T/e709b13f832e22d7d8c03e91458422e1/atsumell-trace-weave-0.1.1.tgz","_from":"file:atsumell-trace-weave-0.1.1.tgz","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-zwHWKNWvfzh1D0Wf+hq/KXEaKmEAxMZ2JqQHcUeFUwx3MjzrYirwK4gNCiK3chveqLxrns1Uadfqf2h0eKuxrQ==","shasum":"2e18cb60a4e695cf1970d9034d4f57f3aeec76a6","tarball":"https://registry.npmjs.org/@atsumell/trace-weave/-/trace-weave-0.1.1.tgz","fileCount":49,"unpackedSize":196506,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8wTVSHMrxeOoosBH9nKkDxNZzZoSyKG3b82olCmVq2gIhAJ/ew2kU/Ehtr0JbkEgOQSd1uBiff1iC3OECIotuUGbI"}]},"_npmUser":{"name":"rizumita","email":"r.izumita@caph.jp"},"directories":{},"maintainers":[{"name":"rizumita","email":"r.izumita@caph.jp"},{"name":"matsukorin","email":"matsu@atsumell.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/trace-weave_0.1.1_1775712711243_0.225360513095183"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-08T21:19:36.064Z","modified":"2026-04-09T05:31:51.578Z","0.1.0":"2026-04-08T21:19:36.321Z","0.1.1":"2026-04-09T05:31:51.401Z"},"bugs":{"url":"https://github.com/Atsumell/trace-weave/issues"},"license":"MIT","homepage":"https://github.com/Atsumell/trace-weave#readme","repository":{"type":"git","url":"git+https://github.com/Atsumell/trace-weave.git"},"description":"Finite-trace temporal test oracle framework based on LTLf","maintainers":[{"name":"rizumita","email":"r.izumita@caph.jp"},{"name":"matsukorin","email":"matsu@atsumell.com"}],"readme":"# trace-weave\n\nJapanese version: [README.ja.md](./README.ja.md)\n\nFinite-trace temporal test oracle framework based on LTLf for TypeScript.\n\n`trace-weave` lets you describe temporal properties over event traces and verify them against finite executions. It is designed for cases where single-step assertions are too weak, such as request/response ordering, bounded eventuality, and value correlation across events.\n\nRunnable repository examples live in [examples/README.md](./examples/README.md). The full guide map is in [docs/README.md](./docs/README.md).\nThe AI-agent install guide is in [docs/skills.md](./docs/skills.md).\n\n## Requirements\n\n- Node.js 20 or later\n- ESM-only package\n\n## Node Support Policy\n\n- `trace-weave` `0.x` supports Node.js 20 or later.\n- Node.js 20 support remains in place through the upstream Node.js 20 end-of-life date, April 30, 2026.\n- After April 30, 2026, a later release may raise the minimum supported version to Node.js 22 or later. Any such change will be called out in the release notes.\n\n## Installation\n\n```bash\nnpm install @atsumell/trace-weave\n```\n\nOptional peer dependencies:\n\n```bash\nnpm install fast-check vitest\n```\n\n## Quick Example\n\n```ts\nimport { predicate, always, implies, eventually } from \"@atsumell/trace-weave/builder\";\nimport { predicateId } from \"@atsumell/trace-weave/core\";\nimport { runOracle } from \"@atsumell/trace-weave/monitor\";\n\ntype AppEvent = { type: string };\n\nconst isRequest = predicateId(\"isRequest\");\nconst isResponse = predicateId(\"isResponse\");\n\nconst formula = always(\n  implies(predicate(isRequest), eventually(predicate(isResponse))),\n);\n\nconst result = runOracle(\n  formula,\n  {\n    predicates: {\n      [isRequest]: (event) => event.type === \"request\",\n      [isResponse]: (event) => event.type === \"response\",\n    },\n    selectors: {},\n  },\n  [{ type: \"request\" }, { type: \"response\" }],\n);\n\nconsole.log(result.verdict); // \"satisfied\"\n```\n\n## Modules\n\n- `@atsumell/trace-weave/core`: IDs, types, verdict algebra, runtime interfaces\n- `@atsumell/trace-weave/builder`: temporal formula builders\n- `@atsumell/trace-weave/compiler`: compile, validate, and print formula documents\n- `@atsumell/trace-weave/monitor`: batch and online evaluation\n- `@atsumell/trace-weave/patterns`: higher-level temporal patterns\n- `@atsumell/trace-weave/fast-check`: property-based testing helpers\n- `@atsumell/trace-weave/vitest`: custom matchers\n- `@atsumell/trace-weave/ai`: report formatting and AI-oriented helpers\n\n## Development\n\n```bash\nnpm run lint\nnpm run skills:validate\nnpm run typecheck\nnpm test\nnpm run build\nnpm run pack:smoke\n```\n\n## Documentation\n\n- [Docs Index](./docs/README.md)\n- [Getting Started](./docs/getting-started.md)\n- [Examples](./examples/README.md)\n- [AI Skill](./docs/skills.md)\n- [Formulas](./docs/formulas.md)\n- [Monitor](./docs/monitor.md)\n- [Patterns](./docs/patterns.md)\n- [Capture](./docs/capture.md)\n- [fast-check Integration](./docs/fast-check.md)\n- [Vitest Integration](./docs/vitest.md)\n- [AI Integration](./docs/ai-integration.md)\n- [API Reference](./docs/api-reference.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}