{"_id":"fascicle","_rev":"41-7f5b2cea9288f2d9a4a8cdcd7d2d4042","name":"fascicle","dist-tags":{"latest":"0.12.13"},"versions":{"0.1.13":{"name":"fascicle","version":"0.1.13","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.1.13","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"dist":{"shasum":"499c0c7d4f5c071b6a3ec4c1b36ce27c182ea572","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.1.13.tgz","fileCount":7,"integrity":"sha512-iSG3A8bC/7Kh5N0EB3LiB3cdXPNFITQ2/TjPqrBS0jsvnFUZZ2XPOq85M8mFDUWHMP73nfmm614IgbW+wqCpDA==","signatures":[{"sig":"MEYCIQCmiO6OThJfeWXTqzZ5OmNaUpy2VCmzSH0amoVtFTsDZQIhAOGgrggUt2vR2L4L5fVIwEnAImFk3C4D+tgEL0RGuSEY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585359},"main":"./dist/index.js","pnpm":{"overrides":{"tunnel":"npm:@noble/secp256k1@2.1.0","smol-toml":">=1.6.1"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e01d2cf39007cbfacefc2ffb4ca3e91364abe8c6","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/stores":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.1.13_1777164400512_0.5873391480730261","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"fascicle","version":"0.3.3","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.3.3","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"dist":{"shasum":"db0a198958cdaddea2901d4a93d8f81e01c63f87","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.3.3.tgz","fileCount":7,"integrity":"sha512-l9MnwCBoEIxasHYIr+AGNZ3dhFTAZADVX+khx9wQ7ybYB1/fTNZ0bJs0YYp4BYNtfeXGiFPVol3I0KuTto7O1w==","signatures":[{"sig":"MEUCIQD7PczMJdY2DD1yAygYyfmd9NuzdRyLgtyE09Gabc7k3AIgdE+eM3uNe9bn0DZFiWSwtWAytrOEPaWY9KQzSLXYnDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":652365},"main":"./dist/index.js","pnpm":{"overrides":{"tunnel":"npm:@noble/secp256k1@2.1.0","smol-toml":">=1.6.1"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"835b6dab3004e075d73db2c2812be274d7f6c20f","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.3.3_1777560260544_0.023345660994735562","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"fascicle","version":"0.3.8","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.3.8","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"0056561e21e866da0e5c398ffc0e71d38642dfd7","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.3.8.tgz","fileCount":9,"integrity":"sha512-MgjBR5g2ZEIGnB4rKwnbr6YM3U4zJditJ3Wdeer5P156maXV/645Pb0SJFCyp+5BIyIHdiNMXpe80BxbAW97FQ==","signatures":[{"sig":"MEQCIGtaDLkz5Eve42Jd2vjs+Y97tNfBfkHlPk4DB6trp9DpAiArAxdQOY3FNtzX+rdbh5LmC8I5HrJtCaSXuSEiOt9NHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787830},"main":"./dist/index.js","pnpm":{"overrides":{"tunnel":"npm:@noble/secp256k1@2.1.0","smol-toml":">=1.6.1"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"184973d17c40305548c1639d08926ea500c8c03b","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx packages/viewer/src/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@repo/viewer":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.3.8_1778028257519_0.7107922331563334","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"fascicle","version":"0.4.0","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.4.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"66006622e63803d72a4fbf562357e95537c2f12b","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.4.0.tgz","fileCount":9,"integrity":"sha512-dsoXO7kM8B/pIbEZ/Ptdlusnago0Nb+ovcsD/LfLMOTBxF/k92aauuusqVMf4fp/bUjSaYB0SOB3Mlnl1j3M+w==","signatures":[{"sig":"MEUCIA2Itm+nSvStzXcAMu1XNvPW7Tf8XTgeOgGPto5KemMTAiEAjKGQQXWrUkZ8h8J3HD/wLQbEY0Tt3RNvOcN2fuam964=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":794122},"main":"./dist/index.js","pnpm":{"overrides":{"tunnel":"npm:@noble/secp256k1@2.1.0","smol-toml":">=1.6.1"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"eda5eaaf44b665ffc6fed4a4292e4d80e3575031","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx packages/viewer/src/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@repo/viewer":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.4.0_1778210814084_0.06793310260407859","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"fascicle","version":"0.4.1","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.4.1","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"534573dd98ed581de4e5db8125a6ff310b6a969c","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.4.1.tgz","fileCount":9,"integrity":"sha512-GqYAcJo70YGRAwEg8fAOlOZN9odP4daYYCkPGRk/3Jhk4RzIXu2N4O/h6Di9T3COvOMTWKsHMXVI7hpo847MLQ==","signatures":[{"sig":"MEUCIETMYoKcgeQYai8lYKD+Cshi8xSJhtgA6xZwzNIO5AmLAiEAnoLbVbs385A7jG+e1eG2i1VVKB5uzfRqNAXAdXQLKdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":807003},"main":"./dist/index.js","pnpm":{"overrides":{"tunnel":"npm:@noble/secp256k1@2.1.0","smol-toml":">=1.6.1"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"cf4dd418e431151a56644863b4346a471345a849","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx packages/viewer/src/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@repo/viewer":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.4.1_1778394210935_0.19650838514365665","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"fascicle","version":"0.5.0","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.5.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"3f12068d52d62e49dc66344ab78bcf997931b0d5","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.5.0.tgz","fileCount":9,"integrity":"sha512-CUASuhK35fv18vkzqVIFoJzE+Qq1XYLnCtUF76iOZL0FHIHYIRib2m1yvYmigEiMwLn5mNLtZoQ2MwngSWE9/A==","signatures":[{"sig":"MEUCIQDPHvSHLx2OfrenKWjqFJccx9bkXAw0lAWpMrc/got0BgIgH4COkC7R9lUPDPQChU6hXKszB7Kbx2cHGzJn2/MNYPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":819309},"main":"./dist/index.js","pnpm":{"overrides":{"tunnel":"npm:@noble/secp256k1@2.1.0","smol-toml":">=1.6.1"}},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0675b5a591cff0ad486b2ee0607acb970333629a","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx packages/viewer/src/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@repo/viewer":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.5.0_1780518114496_0.2982360977544922","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"fascicle","version":"0.6.0","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.6.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"ac74fe36364cfd3b6a2b3a5ba09ade62016cdbcc","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.6.0.tgz","fileCount":15,"integrity":"sha512-IRExxEBwpVpjHEo37aMP2Vzg3zQdeyrbXx9IdAbfH7cavA3dVyY1axRnq0Y29BrcA12DkIQKZc1SOZlovSTqcw==","signatures":[{"sig":"MEQCIDrknkF6Sp+NnN9sINeoODwUj18WaG5No/BnIM1QHnqRAiAghtcBODkfiyOn/F1chjaQ5gjoUDFltrzPDiECUHA2AA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":833430},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"85654c2af16c83db63c45b57ed10e99b03ad2a54","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx packages/viewer/src/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@repo/viewer":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.6.0_1781140346371_0.5854988278446236","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"fascicle","version":"0.6.3","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.6.3","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"9cbac598e1d3121c61a0884cde604ba5076a3d74","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.6.3.tgz","fileCount":15,"integrity":"sha512-q6fRqU5u0IsSmgkE6tZ2we9DLcO9MZHKqEaiUSQAvVfAHO6eGq4GrE1qkQIo7wfnsHTrcT8vOessSO0Dgx5h1A==","signatures":[{"sig":"MEUCIQCegAZPWM5MvmaVD4L9WUNp2qmSp1mhIiPKDfSF9CcrqAIgTOjhz9gFrAnwI3tDWnn4y+f/av33oIHsU2YTfFtg73I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":838228},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"99a8a0dbfdab1426e09c6b717d6b382d96419e05","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx packages/viewer/src/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@repo/agents":"workspace:*","@repo/stores":"workspace:*","@repo/viewer":"workspace:*","@ast-grep/cli":"0.42.1","@repo/fascicle":"workspace:*","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@repo/observability":"workspace:*","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.6.3_1781243512634_0.7735100980477796","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"fascicle","version":"0.8.1","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.8.1","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://github.com/robmclarty/fascicle#readme","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"16206d289d4a1526590935d2a2687ed40b973035","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.8.1.tgz","fileCount":15,"integrity":"sha512-itDS128vyFXiSWmpGEoyDZf/KcX9SRdk5s7RvhBkABAeE/U0js2RKkce6lKIbr2fC4eq4aapqDLmOgfCinR19Q==","signatures":[{"sig":"MEQCIF4YNJR+kZ6VKV3VWHWrhpIp5lEksHfGbJnikXeLqvAkAiB5NMjilz8Tf3p4Odua83zBzIK953lMJn29q+lz59PRRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":835837},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"67beeb39c1b86b39965d05f08d1e78c2ff6c76bb","imports":{"#core":"./src/core/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#stores":"./src/stores/index.ts","#viewer":"./src/viewer/index.ts","#composites":"./src/composites/index.ts","#observability":"./src/observability/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.12.1","description":"Composable TypeScript toolkit for agentic workflows. Plain values, no framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@ast-grep/cli":"0.42.1","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/amazon-bedrock":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.8.1_1781682139694_0.1762086165579133","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"fascicle","version":"0.8.10","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.8.10","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"./dist/bin/fascicle-viewer.js"},"dist":{"shasum":"4b7b2207893be43c51410ebbb2923f072c0af5e0","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.8.10.tgz","fileCount":20,"integrity":"sha512-enSnKX7nIWmxZPBxHT8bS+G5Mzck7gvqC26MHK26bCNVMsdEw/tAIfuYDTiMym7uXhRy/4+cxHVjpnw9EctA8w==","signatures":[{"sig":"MEUCIQCzmbmM9yKfkuLuvrIKeCbgO4s2D6uMu48GH+M9sS1drgIgDl6g2Rbxl/2sHQ6RZcgAitK4xm56ybOEKZcTnZup7Bg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":898649},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"imports":{"#core":"./src/core/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@ast-grep/cli":"0.42.1","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/amazon-bedrock":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.8.10_1783132006097_0.8678073356738731","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"fascicle","version":"0.8.11","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.8.11","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"./dist/bin/fascicle-viewer.js"},"dist":{"shasum":"db05e2e36ae529931bff685fb3de6c0ebfbf6da4","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.8.11.tgz","fileCount":23,"integrity":"sha512-7IrwlSut8kXah8AHXYN8ZqLWPRWZIKgX65znaHiH0yi3wJqa6Am5HzgllZCGF3LcGMfOpVe0xVC8GQabyU6KXw==","signatures":[{"sig":"MEUCICXU0BBa68AiGbU9LG1p8zH5Gtgw/NoV1j2ihZ/furo4AiEAz0NRD25lS20jDWEvo5IIehw02l+VA67j80derdmBs6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":920354},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"imports":{"#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@ast-grep/cli":"0.42.1","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/amazon-bedrock":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.8.11_1783135146831_0.145583804449674","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"fascicle","version":"0.8.12","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.8.12","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"./dist/bin/fascicle-viewer.js"},"dist":{"shasum":"8b1f8fd18e2bdc68b80589ce2dd8b7617854441f","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.8.12.tgz","fileCount":23,"integrity":"sha512-bH1pB5pzl29xEr4FuJrfa8221/GGgyoNe3vPS0TAZDeBMvN3gGYN2My6QtJM7jWNyJd8xCdCjORCxI54fxNw2w==","signatures":[{"sig":"MEUCIC6oHwk+L5QfUyP7aIVdwrGozhspE8AsVUeN9nVCmGnRAiEAiirKlWbo0ONDtVSlj5SLATgOYDZVxLKUGYHzGVflQBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":924239},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"imports":{"#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@ast-grep/cli":"0.42.1","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/amazon-bedrock":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.8.12_1783180277392_0.2524552562374829","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"fascicle","version":"0.8.13","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.8.13","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"./dist/bin/fascicle-viewer.js"},"dist":{"shasum":"22ceb2680fb533c74c65f628cd22425dc877a9e0","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.8.13.tgz","fileCount":23,"integrity":"sha512-QHFjuYLdVo730KnFo9iS7U8NwL8YZlmPk4pk5dI4iAvlpYmN0G53LRneERgpKM9XDAKr6BADrubaVJStamJAdQ==","signatures":[{"sig":"MEUCIQDw2+dq2qysIN/cuwgAMi5vHbmP/d4tZj18/tuz3uJ1lAIgUFrGpRycsHTd21ZooWggnkzr8DUp8Y4zOdXqZN5ADlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":968558},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"imports":{"#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@ast-grep/cli":"0.42.1","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/amazon-bedrock":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.8.13_1783481506717_0.2780412920929378","host":"s3://npm-registry-packages-npm-production"}},"0.8.16":{"name":"fascicle","version":"0.8.16","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.8.16","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"./dist/bin/fascicle-viewer.js"},"dist":{"shasum":"2648ff05f78b15a24a7fbbb9a98e6678ad164568","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.8.16.tgz","fileCount":26,"integrity":"sha512-g18i62FiUA/P3OVvkK7YhpOAh8MJtahiFGLa7+8Tm6zYBnh4w9kSzpNp3V8BJ2OsP5Fuz2ks5p2T4oWMRgiWXg==","signatures":[{"sig":"MEYCIQCogn9Zz4YJ6mwFqLWjKeN2YWUv1a1nPU8sN8CEiZGklQIhALBGVoVl9XJd6na0tD2RWeuIpFU4i17jTh6ExYw3rYPG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":991435},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"robmclarty","email":"r@robmclarty.com"},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","zod":"4.3.6","cspell":"10.0.0","fallow":"2.40.3","oxlint":"1.60.0","tsdown":"0.21.9","vitest":"4.1.4","typescript":"6.0.3","@types/node":"24.12.2","@ast-grep/cli":"0.42.1","oxlint-tsgolint":"0.21.1","markdownlint-cli2":"0.22.0","@vitest/coverage-v8":"4.1.4","@arethetypeswrong/cli":"0.18.2","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^6.0.0","zod":"^4.0.0","ai-sdk-ollama":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@ai-sdk/amazon-bedrock":"^3.0.0","@ai-sdk/openai-compatible":"^2.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.8.16_1783521730245_0.7781565829472035","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"fascicle","version":"0.9.0","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"054f9f20208408e957f4e304b9ad0d2cbf97d0c1","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.0.tgz","fileCount":26,"integrity":"sha512-jc60oNUHLdxdlL0jTqppwYNY8oHE5cr8LSCOGGu3k1m4N1TAE3OI637mAEsZoMXTBYU/0JzRR8MEX5mfKWSDeg==","signatures":[{"sig":"MEUCIGg77sqEXyE+ZsSMmEAmnP4jOnpSu98YQsMH8+d10TvtAiEAi1eMYqJWCUzVYeUTAvrodnlUbcOtOts5pcZj5v22tAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1000287},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"29053d7ddfbd0a0fcd40bb804ef6f7be06fe877b","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.0_1783715904060_0.19043635074422127","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"fascicle","version":"0.9.1","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.1","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"c1074e83e6e209350cd574d4e67f94e112fab523","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.1.tgz","fileCount":26,"integrity":"sha512-cNNJ8+ThFxx1xuYHWGdGue7Vxu216gME1Qy/XpFFk1GxinHSOGUU15u1JM+tCy1ONG9T3Tw16G437HkSrAkOxg==","signatures":[{"sig":"MEUCIQC72mEeJYlu4rxlmQHI4wj3nDIlZlLldSuyNOFPXXl7bgIgX9Zi1tHuExiAHCbUtr8FG5TyAgX5nQUfa9mSa6MlnCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1000690},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"c4d9f2a5049b7e54004a02cd83b9714925bb6d7c","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.1_1783718184449_0.6745000770010032","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"fascicle","version":"0.9.2","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.2","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"30f234bed4b6f48bb432af36b004c13268a741da","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.2.tgz","fileCount":29,"integrity":"sha512-cSxm+7bCVf5abVVM9xR11TH7Jg0cvrGuLeeIw1ZQxG0BzV57cmCWJpZLDX4p5/+kBAQGEhVCl/jXv1zNMMC1zQ==","signatures":[{"sig":"MEUCIQC15MSXwx418rMxgzj0xAWOqACH+siAnIcKzUfHWZeOmQIgQcQkWmOurkLfs1U5x6JzHwQam+ORMXJleOds1uuj5uE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1246315},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"910aa4aa588a40706056ff9623ddedca1842dc40","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.2_1783815863217_0.22630326253254496","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"fascicle","version":"0.9.4","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.4","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"8037e598043b49bab385207ab40b7f1599da92a5","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.4.tgz","fileCount":29,"integrity":"sha512-6lBzz1OHp6EH4gVD7qzYfKLe5vCUBjuEpwT+x8jcdruRJPJqSsb42ViQPi9UFZXZ6rvgLOfXnyOUl5vaaXBDgg==","signatures":[{"sig":"MEYCIQCynoP7uP29Q8q8HUXC6dlRtrPMZiEakZ/b2rMxuHg5fgIhANIHhqcqledHbVkDLstT/STq/ugVzqutJGfeZcTRJ9+/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1252289},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"bf0e6ccd3b7ea2bc76c5dafa6f90494a450bd2f9","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.4_1783866480844_0.034361860757061935","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"fascicle","version":"0.9.5","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.5","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"48ef262aa648c86c3f23f36ed3f277f364ad2c1b","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.5.tgz","fileCount":29,"integrity":"sha512-p8z3iDJzHlYxfuNNCJV72V+ghkByzzdhR5J7Z6hQ/4apMSFdZ12mG/tXQJid7DeSJZgNoDqbjZ++YIZ0QwSVpw==","signatures":[{"sig":"MEQCIH4PsxkTHNeofScKJ8IP+ymRy+hMDcuPQsLzuwfz/MwZAiBwJ6HwzHWFcwEXx0SOUkce/3sTO+fnLEdmdIRCA3CYMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1252963},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"50555a5314b90a6b8c095b753294976d8e5d6b93","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.5_1783910977149_0.5439948912477617","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"fascicle","version":"0.9.6","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.6","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"ba8825bda69ace3462d924e73cd4e24b8fe22c31","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.6.tgz","fileCount":29,"integrity":"sha512-AMej3LtkPVnR0i/bLxrJxS7G74JcHIzbHdF6EbA5/8Hka8rx0kdh/bCqSjUJotESDZj720qAwwq60Mc2o9Kkyg==","signatures":[{"sig":"MEUCIFwWKd8XZV2o+1wpHL18bgFiJno7bZPJeVTvz+l84RztAiEAstBBk8sciXeKCJ+tqNJV3nuBrWv+dMvmeynIwror+vE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1253692},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"1277f7a86865b11bece8193f03eb4e756395d52c","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.6_1784393472802_0.6638204266214927","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"fascicle","version":"0.9.8","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.8","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"2c4b4071dbe19e34fe6c88c22a16fd765a183ec2","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.8.tgz","fileCount":32,"integrity":"sha512-v7Dmo8L26I+nxfmhn1RnZ/nx/zVC3gL2dIqqJczgb/7wHmrVN4omRG7lJMOEyV5Ajp9xF7mktrsRse5xPSheAA==","signatures":[{"sig":"MEUCIFwQgyOdYpb8xQCqn5Kqb2fVE/y6/fZUn9AozS/eE//qAiEA7ytmi/lGdGd2agvJl8S+Mw/fgZJg3HsZGVXqViwodlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1276477},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"9e5f47ac8709f168257737d7950a19f0449d2319","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"node scripts/check.mjs","types":"tsc --noEmit","check:all":"node scripts/check.mjs --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"node scripts/check.mjs --bail","check:json":"node scripts/check.mjs --json","test:watch":"vitest","check:publish":"node scripts/check-publish.mjs","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.2.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.8_1784485260323_0.721169858038835","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"fascicle","version":"0.9.9","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.9","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"5c3192752ae4a678f11d5db90a64dacbc451bf0d","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.9.tgz","fileCount":32,"integrity":"sha512-xyWHZiP5bTbf2iBtgTTlM/chfGEgJeRFW86UZn+cprDpOPPPGrwwpH9QHCw+iwi+NyimSluF08kuXQw6Bs4H6w==","signatures":[{"sig":"MEUCIFELv9M8CNRtc+LatPsyQYDwRW6jMxzd3qOSQZ3eeJWMAiEAwhJp/C2V1t99itWnzezw3/zEYoXG8z/AO+jjts2KisY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1428269},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"929a128dedce58b36e9e29de602f5cc9dc2ddc22","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.18.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","publint":"0.3.21","checkride":"0.6.0","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.9_1784952289401_0.5650833007271843","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"fascicle","version":"0.9.10","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.10","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"62d859e6b8892aceb0e26fb92622ea0aaa312a24","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.10.tgz","fileCount":32,"integrity":"sha512-FCDdY2WR1+/FkcRKQk7Tye+EQ9wTd/6+tyhah5CzhRQtxkBAOCKdA2WyBMwxvKdzfZyTXJjel/0RXwsYsI1xfg==","signatures":[{"sig":"MEYCIQCDH+c81hHHnd8DIvZMFkCKrK9pT6Tqlhprk6KGfMWklQIhANuj4jatn6HRwlqvcZ2MWsfP2ZJYwIJqTVMurLXVDihX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1429052},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"eee244d852effbfe1183e638bcf43441cc8b48b0","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","publint":"0.3.21","checkride":"0.6.0","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.10_1785428667239_0.12533638590692298","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"fascicle","version":"0.9.11","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.9.11","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"203372901ee86931a43d89a9ea192be4dbee6455","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.9.11.tgz","fileCount":32,"integrity":"sha512-Pgy4W3z0+yT6lPjoMTjmfFWzCt4eZm3BQO6GrJtKL4iqx2KzlL4dxclA1a3owzV1Is0rjzb9alDvIOELwNMA0g==","signatures":[{"sig":"MEUCIQD5B53ecXZA45EGkX10z3lwfXmlLINmJnrZkeAJyvLRzwIgYE+12rZHl+Ot71cmhCrvhyFMwLkRJuHVWdh4CHNMftk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.9.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1440149},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"e957f23044ae5b64f9c7b5c554441e3e99daecc0","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","publint":"0.3.21","checkride":"0.6.0","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.9.11_1785956400021_0.9032644608436158","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"fascicle","version":"0.10.0","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.10.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"21a0ec6ac49ed7a3ff8bfbdd755a6d3c367a23de","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.10.0.tgz","fileCount":32,"integrity":"sha512-y7OK1PKfrwidBeU3Tm4vY70kwrDCymoEheXgAK9pWCRb3rC5K2tzTFtpHrawXnH1cjIFkzsQwdJRTBZnbDZwwQ==","signatures":[{"sig":"MEYCIQD049xF58DPVuqOzbTxiFh0Lje7tYv81C/L0ZpTNOig6AIhAOmbDcIsnRxw/CI270Ai8QhYsnGxv+1UInaBUQq/CX8e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1451626},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"29b1178589ced671ab23c21de8c2176dd864d9f3","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","publint":"0.3.21","checkride":"0.6.0","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.10.0_1785969043559_0.7340615672298321","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"fascicle","version":"0.10.1","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.10.1","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"56d3e666398fecba9faa3b8ae6b7e39743490bea","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.10.1.tgz","fileCount":32,"integrity":"sha512-BjPxQSD4DcBs1gwvNxm2YyMBQ7YOdkb02L45JTcyYuEgTI8PFpzgLWo8b1opC0q7e+AINFvnLB6vjv4O9haJeg==","signatures":[{"sig":"MEUCIQCPEBaMpOrnm/qAiafFrUKjfSTJ50ngmJ/vfRrJ1Mu1lQIgebmB2YFeld106iEKtPPhYNDPZgG2+F6kpa/VHO1fRC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1459616},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"ac4a999a195a7a272f05f3b17444ad2f35e6ce06","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","publint":"0.3.21","checkride":"0.6.0","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.10.1_1786122616029_0.5366948195618193","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"fascicle","version":"0.10.2","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.10.2","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"a26d89d44c2bf757cab18efc5190c311f42476d2","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.10.2.tgz","fileCount":32,"integrity":"sha512-uXGZJ4os76I6ILD//OPdJ/ODCrCBAa5T4zDkIYjEUjtlF4jU0LHcV/V1kyiR/dIA+111NEb0QXPMyYscyV6aZQ==","signatures":[{"sig":"MEQCIBqA3Q8zhe/4PZjlCiw7zg8ZfSb33HRmu06h0j23XMhRAiBtVVOC8dhSohBxjIOOgWEGCGn3sfuEFgsQArlufUUQNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1462998},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"2ab8f81dadc58a89e1c1bdbbbb97008386f44784","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"^4.0.0","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.10.2_1786503218685_0.5998884827648103","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"fascicle","version":"0.10.3","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.10.3","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"394238cd73390f3a80371f211a48b8f1685f4921","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.10.3.tgz","fileCount":37,"integrity":"sha512-dKaqw8fbN/8vmmmSD73UyubQIyVfqIaJYqVREPzzeB4+loEaDlCNfbg535zmXSmKBiHAQYaSQLPPN/gkKp8SSA==","signatures":[{"sig":"MEUCIGCdzNUKz5bV4Bcunb9rol25LpT7xhsO+AuJrFv6jHXkAiEA/LPL23kL5mWQnuXDTsoDs1yK1O/Mgcb2UEJdDGRMGek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1538763},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"616fb59c4b8bd3ad3125c23d10067962fc818221","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.10.3_1786575684739_0.005839415463724462","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"fascicle","version":"0.11.0","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.11.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"7f9a9816c1a06197ae67515db870a98704df0398","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.11.0.tgz","fileCount":37,"integrity":"sha512-4oeaUUOoGnlGHZpnqF8Vwp4gxdwbxXtj2mVpB5AL+dNtiMu2jVyGFNEn61q1cL69Lz+ftyJvpIUKctN6TWBN8w==","signatures":[{"sig":"MEYCIQDi5bF/KGfRhIrx/K5O58/aXCTxROzi54jKIwVNIcml/AIhAJ91y/3nIv3ZbfX5/p23Va5HTXu64zCphqQ6LUCvfQYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1556577},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"7a10b7a2e37c0927b53467425a89da4f4d47f693","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.11.0_1786581857755_0.38882409102439497","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"fascicle","version":"0.11.1","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.11.1","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"33cd178cafd9075d6586c601189f2392892604e9","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.11.1.tgz","fileCount":37,"integrity":"sha512-AunPUTa4ZbMS9ZuaeY87+e9HOc2nU0fnm6VRHRMxvBvy9p32Fzzx1fUsaTpmk0kmVDw3ESAQab6Ny91PR1djIg==","signatures":[{"sig":"MEYCIQCiqyZoE+HGCTRzg+Rn6ltOiPShuQDYHN/ETKmuTdFN9wIhAIaaPWI6SywAP/1Kw3UAJe47km1o9g8qh9WyIjd3vNUj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1625163},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"a22f521c9711250a3852b9c41aee1a16a5489120","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.11.1_1786690072832_0.16662718886264383","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"fascicle","version":"0.12.0","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.0","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"ac8191510d7aaa7376bd9960d40eca853ea72752","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.0.tgz","fileCount":40,"integrity":"sha512-XxIrCdIYdNRcirB4FuFHJZGXlYT2LJqhNdNe2NtzA2rHjJ52en94PIpCkI2kyhdafvfw2V3rkjbo6EuaCF1hnw==","signatures":[{"sig":"MEYCIQCaRlfenwf73bm4Qiy+QKVqxQWKrLDgSh1yHIbk3aLK7AIhAO+E7Z9wMorxvuYzrhXx8cEC/BklCNSaEm5qiBnhIE4L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1686367},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js"}},"gitHead":"941dfb1659a50e8669f261ccdd0c4ab048fffb56","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.0_1787039995997_0.6277810284502083","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"fascicle","version":"0.12.1","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.1","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"9bf767198f3eac668a6d75fb4d362fc316166914","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.1.tgz","fileCount":44,"integrity":"sha512-u27+VB7PiTf3N8FA56Du00k1MA/DTndGC4nfHAzEJd7iVxNUhXY2p+DPziwHz5L6VFZ5no+L9bagP4ZVhGfITQ==","signatures":[{"sig":"MEUCIQCNUFRzWNNDny0mAe4uzncrQVOjee8aZkZGwREv1tcFKwIgNuAYydb0/g7C4Z6HMOG/IwwaYlGzMdeYtk8IsNirw8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1793883},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"8ec08840c160e0e0b9f63b261b5909dc9e7052a5","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"pnpm audit --audit-level=high","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.0","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.1_1787112745634_0.6717315379247093","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"fascicle","version":"0.12.3","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.3","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"70ea95d8724d4694852ae41e9126a45911f7b1b2","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.3.tgz","fileCount":48,"integrity":"sha512-wSG0uj14OHoMW8T3aOjHRBR6qTi47JMWZqoA2k1+d0uNaIzNigZAAIGx2dRPe261HZPU6+Evzk0hnC1TovikxA==","signatures":[{"sig":"MEUCIHYVJPd9396KyfWSEJRbDA4jhkxSSao8QiO1RQXga8PbAiEAo1Qmybp8NnimOCK/pyPxjmvakWeItSQrdO+9gKAX96Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1823065},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"6429191fdb7031100866a4e18b08f5b009746987","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.2","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-trace-base":"2.9.0","@stryker-mutator/vitest-runner":"9.6.1"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.3_1787177917157_0.7234473815595679","host":"s3://npm-registry-packages-npm-production"}},"0.12.5":{"name":"fascicle","version":"0.12.5","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.5","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"daaac1f75dc319d35d49fd0a608905a4cfb73bbf","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.5.tgz","fileCount":48,"integrity":"sha512-9wBlYvLtQG1eVlqhfG+S9G4n1XXgN2s01E05hVbz60o3Iio5k+kZpmnmYradPgz3lOx8l5mcx3pkyqfAsdjRSQ==","signatures":[{"sig":"MEUCIGltPxfkFeLiEBFaQytljCSWQOf3aY01SNwX9JEzU4JUAiEAm4YfoNc+brmcPMYQClM6wttJhyBW5jg9WUWeDbdmsnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1872975},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"312de3b87b2e0780dcfae699e67d5ea44af30fa7","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","markdownlint-cli2":"0.23.2","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.5_1787369865748_0.19806576246206697","host":"s3://npm-registry-packages-npm-production"}},"0.12.7":{"name":"fascicle","version":"0.12.7","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.7","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"f3d13bf95d042ba5baa6ef884c812aa25e0fdaa9","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.7.tgz","fileCount":54,"integrity":"sha512-2MuSf+7bqF2nUKNydbQKQx6iZsIVFYXTgMSd9JQN1sGwDw+vr0C77WwFtN7TWJlTuXMVnoVkcNFbbsFBTp+vRg==","signatures":[{"sig":"MEUCIBvMQXIvnL9WMMAITDwpQNEAwIb8yNCbua79ACQWsjAjAiEApzctNh8DqmecN8uLV8QZr3KZbXHjJqGujMhV2KnE1/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2021429},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"92eed6a5fc658c74ede6398fa4f5201e29bbbb67","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.1","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.7_1788321824374_0.8193329738569548","host":"s3://npm-registry-packages-npm-production"}},"0.12.8":{"name":"fascicle","version":"0.12.8","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.8","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"b5a46d1dbf2617ea7466c1624c35ca4c50e64b9e","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.8.tgz","fileCount":54,"integrity":"sha512-eyspnD6qMeaWzsoqsiRzXMaBIndenqoDDHG/zin6tGuF0TE80H+bXqAI26Dndeje5v2Vu5D334j9ULRPD1jNVw==","signatures":[{"sig":"MEYCIQCOidhPMQdSSB3VenrOTfcaJsJ+qmD15i8NMJ8eE3WR5QIhAIuIGnltrXs3d+qp1m/dnlFqxv0SJxNu29VdyqA6KG/G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2025561},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"6ca4bef580a132158e5b1499714dc4fffea3ac70","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.19.1","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.8_1788538952648_0.7185634012091733","host":"s3://npm-registry-packages-npm-production"}},"0.12.9":{"name":"fascicle","version":"0.12.9","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.9","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"a2fa688867d5705e320367dcb119b44741194b6a","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.9.tgz","fileCount":54,"integrity":"sha512-BSWfRTRSgUrIwuhU8l1oJAKtUm/x3o4lRqb0WKSEAqqeGxJG8IswXhRckBXJg8W49gYj49ki5+iiF4Ofjr/CLg==","signatures":[{"sig":"MEUCIQC0Iys0+RuRI5+P2XbeOwqL700BpT+Ofux6bZIwWE7+VAIgGO43SDFq0uajJGktMZTyMKiS6avwTXVx9MXdFSAnF/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDmHKhmiVbu+gWx263xNeDcM/tMrliOFlyp1MugZ1u4iAIhAOVKK7KcbQGlPMXplrWOJkKqZI1Yo+ttM6ETTq9qPIwx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2053718},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"a827e8c5f7dd78f563f2112ae00089100ed14f59","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.20.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.9_1790298169792_0.8128829669934179","host":"s3://npm-registry-packages-npm-production"}},"0.12.10":{"name":"fascicle","version":"0.12.10","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.10","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"25f252f4231d611f9ac2b3480827da8da0b15de9","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.10.tgz","fileCount":54,"integrity":"sha512-y3sO4TU0uRbx2v6QzujxLUuARnFXn1TffLgsepKhg6OTXYpGOywR6TeJYyeKkJYKS/MsJWnIn/LCBtce44a32A==","signatures":[{"sig":"MEYCIQCNBd2bmQVxJ23yv1Y0HnUQG6Vg1yizrYsDo+hKtV0gsAIhANsW0ufcvBXRgJmEuYxopfGeq7GkkzHt7qF2DRa/r+Vv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE7JqwIhN+LOX+idJJpWTKLXuw2g2uVOXuoogoW/C+B9AiAHkzgC7v1yaEO+EJbFSYEDJvnqLjToG+iPdogjVbvGJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2055533},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"3998a114aaa2e78776d3bdfed88737caadae56d5","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.20.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.10_1790312819765_0.10196987153902892","host":"s3://npm-registry-packages-npm-production"}},"0.12.11":{"name":"fascicle","version":"0.12.11","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.11","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js"},"dist":{"shasum":"aad34ca2bf34b2ac6f69988576360bda02196231","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.11.tgz","fileCount":54,"integrity":"sha512-3vbk/mNJar5Cq2zfnTQ5qZnlCjmf2Mr02f0LRRFP0myCGXsiOMyz9v6p+CeZ9zseCMM5OEHbjPBGPdBjcYXNCA==","signatures":[{"sig":"MEQCIGXOxT58vQAEgbbuKAWeBtynjJ0/Pvk4cjLMuuep+t5YAiBct1Jp5vP3k3l8bNKrkfKMQNUDCZoErBNoaxgh4pNgww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID4/JbVVfai4zRVGmIPXoqxpFLKLELe8EjZoHjrVy7YIAiAH4JDd7vszV5SDtCemAyJYCuRad/SFUSk7Exm6B8Ba2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2057640},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"e68c5095121b49d8b7756337bfa1d38a7bc4cbc7","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.20.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.11_1790365745164_0.5222485911309831","host":"s3://npm-registry-packages-npm-production"}},"0.12.12":{"name":"fascicle","version":"0.12.12","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","_id":"fascicle@0.12.12","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"homepage":"https://robmclarty.github.io/fascicle/","bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js","fascicle-diagram":"dist/bin/fascicle-diagram.js"},"dist":{"shasum":"a74a3e3b65e9d277c3c6a32dea4cff06fafd6b4c","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.12.tgz","fileCount":58,"integrity":"sha512-FGHYr7qt4blGmxDY0rxhdBr+EDqv7lGwGt9G6liyImIkHaLchVdZN6JGYtCCoicqZb5pR8QBptJcn/zKxxxLXA==","signatures":[{"sig":"MEUCIQD4beaMBIU46Uy5cLZ0sw2shwYA1zBaCL97ZZy5hKhAwAIgRpWZSDQ+K+we3CivbJJkKSnOmCPMRtfTS92tc98Kj6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG0y6XFzAUznX9cQSOf6U3gchbXKIGdsAHtSUgfGkAJ8AiEAjA6YwIYiwIiiVbkuomrG+Ko9/rXoqMK14Yid7TamNUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2115519},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"dc3005a6426a21f4ea3e8fa3af080853c3929751","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","fascicle-diagram":"tsx src/diagram_bin.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.20.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fascicle_0.12.12_1790371847136_0.6258381171850784","host":"s3://npm-registry-packages-npm-production"}},"0.12.13":{"_id":"fascicle@0.12.13","bin":{"fascicle-viewer":"dist/bin/fascicle-viewer.js","fascicle-diagram":"dist/bin/fascicle-diagram.js"},"bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"dist":{"shasum":"9a7418cc7bed169abb73ec142f0ebda9251a73c5","tarball":"https://registry.npmjs.org/fascicle/-/fascicle-0.12.13.tgz","fileCount":58,"integrity":"sha512-Hfdws0KgMYJ210YSYnZmUkcw/WGjPWpeyCkJAdMl/bul98eDEOXam6g0CNUN45HGm8zhYA3dEVw+BSNvScrlhA==","signatures":[{"sig":"MEUCIByAvb1vy/SO6804kLuse90w6JGIywNonB+FwkHQT7BKAiEA/6q6DZLEZT0+KeFVLJ9rGsWTaLfJT3vVBlc5OIN1cKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCEp1qZ3ck8gv3KF6MrSVoLJvb6Hu0L1gQvBTeKA5nJ2AIgJlKcf7DP4IjGhpoNoc4GnldhTlZ3L5JhQImACEvZe7A="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fascicle@0.12.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2116586},"main":"./dist/index.js","name":"fascicle","type":"module","types":"./dist/index.d.ts","author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"module":"./dist/index.js","engines":{"node":">=24.0.0","pnpm":">=10.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js","default":"./dist/mcp.js"},"./otel":{"types":"./dist/otel.d.ts","import":"./dist/otel.js","default":"./dist/otel.js"},"./stdio":{"types":"./dist/stdio.d.ts","import":"./dist/stdio.js","default":"./dist/stdio.js"},"./agents":{"types":"./dist/agents.d.ts","import":"./dist/agents.js","default":"./dist/agents.js"},"./viewer":{"types":"./dist/viewer.d.ts","import":"./dist/viewer.js","default":"./dist/viewer.js"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.js","default":"./dist/testing.js"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","default":"./dist/adapters.js"}},"gitHead":"5f7fd1913744a32ee889c2fd788687ec919e5a08","imports":{"#ui":"./src/ui/index.ts","#core":"./src/core/index.ts","#stdio":"./src/stdio/index.ts","#agents":"./src/agents/index.ts","#engine":"./src/engine/index.ts","#policy":"./src/policy/index.ts","#schema":"./src/schema/index.ts","#viewer":"./src/viewer/index.ts","#testing":"./src/testing/index.ts","#adapters":"./src/adapters/index.ts","#composites":"./src/composites/index.ts"},"license":"Apache-2.0","scripts":{"test":"vitest run","build":"node scripts/build.mjs","check":"checkride","types":"tsc --noEmit","check:all":"checkride --all","check:e2e":"playwright test","check:fix":"pnpm exec oxlint --type-aware --fix && node scripts/strip-semicolons.mjs && pnpm exec fallow fix","check:bail":"checkride --bail","check:json":"checkride --json","test:watch":"vitest","viewer:app":"vite build --config vite.viewer.config.ts","check:changed":"checkride --changed","check:publish":"checkride --only publint,attw,pack,smoke,snippets","check:mutation":"stryker run","check:security":"checkride --only security","prepublishOnly":"pnpm check && pnpm build && pnpm check:publish","fascicle-viewer":"tsx src/viewer/cli.ts","fascicle-diagram":"tsx src/diagram_bin.ts","viewer:app:watch":"vite build --watch --config vite.viewer.config.ts"},"version":"0.12.13","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81d767f5-e4ef-4a7d-810f-08409c42f29b"}},"homepage":"https://robmclarty.github.io/fascicle/","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"_npmVersion":"11.20.0","description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","directories":{},"maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ai":"7.0.17","tsx":"4.23.0","zod":"4.4.3","vite":"8.2.2","cspell":"10.0.1","fallow":"3.6.0","oxlint":"1.73.0","tsdown":"0.22.3","vitest":"4.1.10","arktype":"2.2.3","publint":"0.3.21","solid-js":"1.9.15","checkride":"0.12.1","typescript":"6.0.3","@types/node":"26.1.0","@vvago/vale":"3.17.0","@ast-grep/cli":"0.44.1","oxlint-tsgolint":"0.24.0","@playwright/test":"1.62.1","markdownlint-cli2":"0.23.2","vite-plugin-solid":"2.11.14","@vitest/coverage-v8":"4.1.10","@arethetypeswrong/cli":"0.18.4","@standard-schema/spec":"1.1.0","@stryker-mutator/core":"9.6.1","@opentelemetry/resources":"^2.10.0","@modelcontextprotocol/sdk":"1.30.0","@opentelemetry/sdk-metrics":"2.10.0","@opentelemetry/sdk-trace-base":"2.10.0","@stryker-mutator/vitest-runner":"9.6.1","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"peerDependencies":{"ai":"^7.0.0","zod":"4.4.3","@ai-sdk/otel":"^1.0.0","ai-sdk-ollama":"^4.0.0","@ai-sdk/google":"^4.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/anthropic":"^4.0.0","@opentelemetry/api":"^1.9.0","@ai-sdk/amazon-bedrock":"^5.0.0","@ai-sdk/openai-compatible":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^3.0.0","@aws-sdk/credential-providers":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"zod":{"optional":true},"@ai-sdk/otel":{"optional":true},"ai-sdk-ollama":{"optional":true},"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@opentelemetry/api":{"optional":true},"@ai-sdk/amazon-bedrock":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true},"@aws-sdk/credential-providers":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fascicle_0.12.13_1790373545893_0.35024532552215826"}}},"time":{"created":"2026-04-26T00:46:40.308Z","modified":"2026-09-25T21:59:06.264Z","0.1.13":"2026-04-26T00:46:40.695Z","0.3.3":"2026-04-30T14:44:20.686Z","0.3.8":"2026-05-06T00:44:17.686Z","0.4.0":"2026-05-08T03:26:54.324Z","0.4.1":"2026-05-10T06:23:31.118Z","0.5.0":"2026-06-03T20:21:54.715Z","0.6.0":"2026-06-11T01:12:26.539Z","0.6.3":"2026-06-12T05:51:52.867Z","0.8.1":"2026-06-17T07:42:19.942Z","0.8.10":"2026-07-04T02:26:46.257Z","0.8.11":"2026-07-04T03:19:06.993Z","0.8.12":"2026-07-04T15:51:17.585Z","0.8.13":"2026-07-08T03:31:46.924Z","0.8.16":"2026-07-08T14:42:10.409Z","0.9.0":"2026-07-10T20:38:24.267Z","0.9.1":"2026-07-10T21:16:24.597Z","0.9.2":"2026-07-12T00:24:23.439Z","0.9.4":"2026-07-12T14:28:01.002Z","0.9.5":"2026-07-13T02:49:37.364Z","0.9.6":"2026-07-18T16:51:12.943Z","0.9.8":"2026-07-19T18:21:00.504Z","0.9.9":"2026-07-25T04:04:49.633Z","0.9.10":"2026-07-30T16:24:27.400Z","0.9.11":"2026-08-05T19:00:00.264Z","0.10.0":"2026-08-05T22:30:43.743Z","0.10.1":"2026-08-07T17:10:16.214Z","0.10.2":"2026-08-12T02:53:38.920Z","0.10.3":"2026-08-12T23:01:24.902Z","0.11.0":"2026-08-13T00:44:17.895Z","0.11.1":"2026-08-14T06:47:53.059Z","0.12.0":"2026-08-18T07:59:56.138Z","0.12.1":"2026-08-19T04:12:25.795Z","0.12.3":"2026-08-19T22:18:37.320Z","0.12.5":"2026-08-22T03:37:45.908Z","0.12.7":"2026-09-02T04:03:44.566Z","0.12.8":"2026-09-04T16:22:32.787Z","0.12.9":"2026-09-25T01:02:49.949Z","0.12.10":"2026-09-25T05:06:59.864Z","0.12.11":"2026-09-25T19:49:05.257Z","0.12.12":"2026-09-25T21:30:47.262Z","0.12.13":"2026-09-25T21:59:05.985Z"},"bugs":{"url":"https://github.com/robmclarty/fascicle/issues"},"author":{"url":"https://robmclarty.com","name":"Rob McLarty","email":"hello@robmclarty.com"},"license":"Apache-2.0","homepage":"https://robmclarty.github.io/fascicle/","keywords":["agents","agentic","multi-agent","ai","llm","workflow","pipeline","orchestration","tool-calling","harness","streaming","observability","typescript","composable","ai-sdk","vercel-ai-sdk","anthropic","openai","gemini","bedrock","openrouter","ollama","lmstudio"],"repository":{"url":"git+https://github.com/robmclarty/fascicle.git","type":"git"},"description":"Compose agents like plain values. A TypeScript toolkit that wires LLM calls, tools, and functions into typed steps over eight providers. No framework, no ambient state.","maintainers":[{"name":"robmclarty","email":"r@robmclarty.com"}],"readme":"# Fascicle\n\n![A substrate for agents — three mushrooms (model_call, step, tool) fruit from a shared mycelium network; every mushroom is a Step<i, o>, every thread is a composition](./mycelium.svg)\n\nCompose agents out of LLM calls, tool calls, and plain functions. Everything is a `Step<i, o>`. Wire steps together with 22 primitives (`sequence`, `parallel`, `chain`, `branch`, `retry`, `loop`, `ensemble_step`, `checkpoint`, …) and run them as plain values. One `generate` surface fronts eight provider adapters: Anthropic, OpenAI, Google, OpenRouter, AWS Bedrock, Ollama, LM Studio, and a `claude_cli` subprocess that drives the Claude Code CLI.\n\nNo framework lifecycle. No ambient state. No decorators. Adapters are passed in per run.\n\n## Install\n\n```bash\npnpm add fascicle\n```\n\nFascicle is ESM-only and requires Node >= 24. `ai`, `zod`, and every provider SDK are optional peers — install only the ones you use. `pnpm add fascicle` alone builds and runs a flow against `transport: 'native'` or `claude_cli`, with no AI SDK package and no schema library installed at all; schemas accept any [Standard Schema](https://standardschema.dev) — zod, ArkType, Valibot, whichever you already use. See [docs/providers.md](./docs/providers.md).\n\nNo API key on hand? Several runnable examples need zero keys: [examples/hello/main.ts](./examples/hello/main.ts), [examples/suspend-resume/main.ts](./examples/suspend-resume/main.ts), and [examples/viewer-demo/main.ts](./examples/viewer-demo/main.ts) use no engine at all, and [examples/newsroom/main.ts](./examples/newsroom/main.ts) runs the full vocabulary against the bundled stub engine from `fascicle/testing`.\n\n## A 60-second tour\n\n<!-- snippet: check -->\n```typescript\nimport { run, sequence, step } from 'fascicle';\n\nconst flow = sequence([\n  step('add', (n: number) => n + 1),\n  step('double', (n: number) => n * 2),\n]);\n\nawait run(flow, 1); // 4\n```\n\nAdd a model call:\n\n<!-- snippet: check -->\n```typescript\nimport { create_engine, model_step, run, sequence, step } from 'fascicle';\n\nconst engine = create_engine({\n  providers: {\n    anthropic: { api_key: process.env.ANTHROPIC_API_KEY!, transport: 'native' },\n  },\n});\n\nconst flow = sequence([\n  step('brief', (topic: string) => `Write a 2-sentence brief on: ${topic}`),\n  model_step({ engine, model: 'claude-sonnet-4-6', system: 'No preamble.' }),\n]);\n\ntry {\n  console.log(await run(flow, 'Rust ownership'));\n} finally {\n  await engine.dispose();\n}\n```\n\n`transport: 'native'` keeps the zero-peer promise above: raw HTTP against the Messages API, nothing to install beyond `fascicle`. Drop it to use the default `ai_sdk` transport, which needs `pnpm add ai @ai-sdk/anthropic`.\n\n`model_step` returns the model's answer (a `string`, or the schema-validated value when `schema` is set), keeping flows at the `step, step, model_step, step` cadence. Underneath sits `model_call`, the only sanctioned bridge between composition and the engine: same config, but it returns the full `GenerateResult` envelope (usage, cost, tool calls, finish reason), with an optional `project` to map a slice of it at the source. Both thread `ctx.abort`, `ctx.trajectory`, and streaming chunks for you.\n\n## What's in the box\n\n**Composition primitives.** Every composer takes `Step<i, o>` and returns `Step<i, o>`. Anything that fits a step fits any composition of steps. The everyday surface is small; most flows are built entirely from these nine:\n\n| Primitive | Shape |\n| --- | --- |\n| `step` | lift a plain function into `Step<i, o>` |\n| `sequence` | run A then B then C, threading the value |\n| `parallel` | run a named map of steps concurrently |\n| `branch` | route on a predicate of the input |\n| `map` | run a step per array element, optional concurrency cap |\n| `pipe` | post-process an inner step's output with a plain function |\n| `retry` | re-run on failure with exponential backoff |\n| `model_step` | the model's answer as a step (`model_call` projected to its content) |\n| `chain` | named steps over a typed record: `.step` binds, `.stage` concludes a phase, `.output` projects |\n\nThe remaining primitives are specialized composers with the same contract, so they drop into any flow when the task calls for them: control flow (`loop`, `fallback`, `timeout`, `compose`), multi-model orchestration (`adversarial`, `ensemble_step`, `consensus`), and durability (`checkpoint`, `suspend`). Behind those sits an advanced tier — the pick-best variants `ensemble` and `tournament`, the raw named-state primitives `scope` / `stash` / `use` underlying `chain`, and the self-improvement pair `improve` / `learn` — covered in [docs/advanced-composition.md](./docs/advanced-composition.md), each entry paired with the primary primitive to try first. One-liners for all of them live in [docs/composition.md](./docs/composition.md), full shapes in [docs/api-reference.md](./docs/api-reference.md), and [docs/leaf-arm-spine.md](./docs/leaf-arm-spine.md) is the decision guide for which layer each belongs to.\n\nPlus `run`, `run.stream`, and `describe`. And inside any step body, `ctx.call(step, input)` runs another Step with spans, abort, and error paths intact: the direct-style counterpart to composing, for control flow too dynamic to declare.\n\n**AI engine.** `create_engine(config)` returns one `generate` surface across eight providers. Two axes: `model` is an opaque id sent to the provider verbatim (`claude-opus-4-8`, `gpt-4o`, `us.anthropic.claude-sonnet-4-20250514-v1:0`), and `provider` names the transport (`anthropic`, `bedrock`, `openrouter`, `claude_cli`, …) — swap `provider` to move a call between transports. Reasoning effort (`'none'` through `'max'`) is translated per provider. Cost estimation uses a pricing table with per-engine overrides.\n\nThe engine core is SDK-agnostic: providers plug in behind a neutral single-turn seam, as one of three kinds. Most built-ins wrap Vercel's AI SDK (`ai_sdk`). Five providers can instead run `transport: 'native'` (raw HTTP, no AI SDK in the path, no peer to install) — `anthropic` on the Messages API, `openai`/`openrouter`/`lmstudio` on a shared OpenAI Chat Completions core, and `ollama` on its own `/api/chat` endpoint. The third kind is `claude_cli`, which delegates to an external agent. All inherit the same tool loop, retry, cost, and trajectory, and `custom_providers` registers your own adapter of any kind without touching Fascicle. See [docs/providers.md](./docs/providers.md).\n\n**Adapters injected per run.** Trajectory loggers and checkpoint stores ship under the `fascicle/adapters` subpath:\n\n```typescript\nimport { filesystem_logger, filesystem_store } from 'fascicle/adapters';\n\nawait run(flow, input, {\n  trajectory: filesystem_logger({ output_path: '.trajectory.jsonl' }),\n  checkpoint_store: filesystem_store({ root_dir: '.checkpoints' }),\n});\n```\n\n`filesystem_logger` writes synchronously (each event blocks the event loop briefly), which is fine for dev tools and short-lived runs; see [docs/concepts.md](./docs/concepts.md#adapter-limits) before wiring it into a long-running server. Span parentage is threaded through the runner, so span trees stay correct under `parallel`/`map` concurrency. The `TrajectoryLogger` and `CheckpointStore` contracts (exported from `fascicle`) are tiny — roll your own to push events to Honeycomb, S3, and so on.\n\n`run.stream(flow, input)` returns `{ events, result }` for incremental observation, and `run.until_suspended(flow, input)` drives human-in-the-loop flows: a `suspend` gate resolves to a typed outcome with a `resume` closure instead of throwing.\n\n**Stub engines for tests.** The `fascicle/testing` subpath ships the two doubles an app needs — `make_stub_engine` routes canned responses by the system prompt's stable first line and validates them through the call's own schema, `make_capture_engine` records every `GenerateOptions` for assertions — so tests run the real flow through the real `run()` with zero network and no mocking framework:\n\n```typescript\nimport { make_stub_engine } from 'fascicle/testing';\n\nconst engine = make_stub_engine([\n  { prefix: 'myapp/reviewer', content: { findings: [], summary: 'clean' } },\n]);\n```\n\n**Markdown-defined agents.** When an agent is just a prompt plus an output schema, `define_agent` (the `fascicle/agents` subpath) folds a markdown file (frontmatter `name` / `model` / `temperature`, with the body as the prompt) and a zod schema into a `Step<i, o>`:\n\n<!-- snippet: check -->\n```typescript\nimport { z } from 'zod';\nimport { create_engine } from 'fascicle';\nimport { define_agent } from 'fascicle/agents';\n\nconst engine = create_engine({ providers: { claude_cli: { auth_mode: 'oauth' } } });\n\nconst reviewer = define_agent({\n  md_path: new URL('./prompts/reviewer.md', import.meta.url),\n  schema: z.object({ findings: z.array(z.string()), summary: z.string() }),\n  engine,\n});\n```\n\nThis is the [blueprint's](./docs/blueprint.md) recommended shape for simple one-prompt agents; reference agents built on it (reviewer, documenter, researcher) live in [examples/agents/](./examples/agents/).\n\n**MCP bridge.** The `fascicle/mcp` subpath connects flows to the Model Context Protocol both ways. `mcp_client` turns an external MCP server's tools into plain `Tool[]`; `serve_flow` exposes a composed flow as an MCP tool to hosts like Claude Desktop or Cursor. It is pure adapter glue over the existing `Tool` and `run` contracts, and `@modelcontextprotocol/sdk` is an optional peer you only install when you use it.\n\n<!-- snippet: check -->\n```typescript\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport { step } from 'fascicle';\nimport { mcp_client, serve_flow } from 'fascicle/mcp';\n\n// Consume an external MCP server's tools inside a flow.\nconst remote = await mcp_client({ transport: 'stdio', command: 'my-mcp-server' });\nconsole.log(remote.tools.map((t) => t.name));\nawait remote.close();\n\n// Expose a composed flow as an MCP tool on your own server.\nconst server = new McpServer({ name: 'my-app', version: '1.0.0' });\nserve_flow({\n  server,\n  flow: step('greet', (input: { name: string }) => `Hello, ${input.name}!`),\n  name: 'greet',\n  description: 'Greet a person by name.',\n  input_schema: z.object({ name: z.string() }),\n});\n```\n\n## Provider matrix\n\n| Provider     | Peer dep                      | Auth                |\n| ------------ | ----------------------------- | ------------------- |\n| `anthropic`  | `ai` + `@ai-sdk/anthropic`, or none with `transport: 'native'` | API key |\n| `openai`     | `ai` + `@ai-sdk/openai`, or none with `transport: 'native'` | API key |\n| `google`     | `ai` + `@ai-sdk/google`       | API key             |\n| `openrouter` | `ai` + `@openrouter/ai-sdk-provider`, or none with `transport: 'native'` | API key |\n| `bedrock`    | `ai` + `@ai-sdk/amazon-bedrock` | `region` + AWS credentials |\n| `ollama`     | `ai` + `ai-sdk-ollama`, or none with `transport: 'native'` | local `base_url` |\n| `lmstudio`   | `ai` + `@ai-sdk/openai-compatible`, or none with `transport: 'native'` | local `base_url` |\n| `claude_cli` | none (spawns `claude`)        | OAuth or API key    |\n\nFull details: [docs/providers.md](./docs/providers.md). The `claude_cli` adapter has its own guide: [docs/cli.md](./docs/cli.md).\n\n## Live dev dashboard\n\n![fascicle-viewer running against an amplify trajectory: span tree on the left, event log on the right, $2.55 cost rolled up in the header](./screenshot.png)\n\nThe `fascicle-viewer` bin ships with the umbrella package (there is no separate `fascicle-viewer` package). Point it at a trajectory file and it opens a browser tree of spans, errors, and emits as the run executes:\n\n```bash\n# installed locally:\npnpm exec fascicle-viewer .trajectory.jsonl\n# or one-off via the umbrella package:\npnpm dlx --package=fascicle fascicle-viewer .trajectory.jsonl\n```\n\nOr embed it programmatically:\n\n<!-- snippet: check -->\n```typescript\nimport { start_viewer } from 'fascicle/viewer';\n\nconst handle = await start_viewer({ port: 4242 });\n// later\nawait handle.close();\n```\n\nFor zero-latency streaming from inside a long-running flow, pair it with `http_logger` from `fascicle/adapters`. See [docs/viewer.md](./docs/viewer.md) for the full transport story.\n\n## Building an app on Fascicle\n\n**[docs/blueprint.md](./docs/blueprint.md) is the recommended architecture for apps built on Fascicle** — distilled from the reference apps and production consumers. One composition layer (`flow.ts`) that holds the whole topology, `create_engine` confined to one file, prompts as markdown with frontmatter, zod schemas as the stage contracts, stub-engine testing, and [ast-grep rules](./examples/pr-improve/rules/) that turn each boundary into a build failure. If you are a coding agent scaffolding a new Fascicle app, follow the blueprint and its checklist.\n\nThe canonical worked example is [examples/pr-improve/](./examples/pr-improve/), with its design rationale in [examples/pr-improve/docs/architecture.md](./examples/pr-improve/docs/architecture.md).\n\n## Where to go next\n\n- [docs/blueprint.md](./docs/blueprint.md) — **the agent blueprint**: the standard app architecture (start here when building an app)\n- [docs/getting-started.md](./docs/getting-started.md) — install and run your first flow\n- [docs/concepts.md](./docs/concepts.md) — step-as-value, trajectories, cancellation\n- [docs/composition.md](./docs/composition.md) — full composition surface: the 22 primitives, run/stream, checkpointing\n- [docs/leaf-arm-spine.md](./docs/leaf-arm-spine.md) — the three-layer shape of a Fascicle flow and how to choose the right primitive at each layer\n- [docs/advanced-composition.md](./docs/advanced-composition.md) — the primitives to reach for last (`scope`/`stash`/`use`, `ensemble`, `tournament`, `improve`/`learn`) and when they earn their keep\n- [docs/api-reference.md](./docs/api-reference.md) — the public surface at a glance\n- [docs/configuration.md](./docs/configuration.md) — engine config, defaults, pricing, retries\n- [docs/providers.md](./docs/providers.md) — per-provider adapter notes\n- [docs/cli.md](./docs/cli.md) — the `claude_cli` subprocess adapter\n- [docs/cookbook.md](./docs/cookbook.md) — retries, fan-out, judges, HITL, tool loops\n- [docs/deliberation-as-composition.md](./docs/deliberation-as-composition.md) — how ensembles, tournaments, consensus, and adversarial loops decompose into the primitives\n- [docs/testing.md](./docs/testing.md) — testing flows with stub, script, and capture engines\n- [docs/regression-testing-model-behavior.md](./docs/regression-testing-model-behavior.md) — regression-testing model behavior with mutation-tested judges and a committed score baseline\n- [docs/human-in-the-loop.md](./docs/human-in-the-loop.md) — suspend/resume approval over HTTP and streaming to a `useChat` UI via `fascicle/ui`\n- [docs/writing-a-harness.md](./docs/writing-a-harness.md) — building a runner around Fascicle\n- [docs/embedding-under-a-harness.md](./docs/embedding-under-a-harness.md) — running a Fascicle agent as somebody's child process\n- [docs/troubleshooting.md](./docs/troubleshooting.md) — first-run errors and what they mean\n- [docs/comparison.md](./docs/comparison.md) — how Fascicle compares to LangChain, Mastra, and others\n- [docs/adoption-decision.md](./docs/adoption-decision.md) weighs whether to adopt Fascicle: the honest case, the risks, and when to reach for something else\n- [docs/roadmap.md](./docs/roadmap.md) — what has shipped, what is being considered, and what Fascicle deliberately will not do\n- [examples/](./examples/) — runnable reference flows; start with [examples/newsroom/main.ts](./examples/newsroom/main.ts), the vocabulary tour\n- [docs/viewer.md](./docs/viewer.md) — viewer details and transport options\n- [docs/grafana.md](./docs/grafana.md) — shipping a run's traces and metrics to a Grafana dashboard over OpenTelemetry\n\n## Contributing\n\nFascicle is early and not accepting outside pull requests yet. Bug reports and feature ideas via GitHub Issues are welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n## Development\n\nThis repo is a **single package**. The code is organized as deep modules under `src/` (`core`, `engine`, `composites`, `agents`, `adapters`, `mcp`, `stdio`, `ui`, `otel`, `policy`, `schema`, `testing`, `viewer`), each reachable only through its barrel via the `#<module>` import alias. The umbrella surface at the `src/` root is what publishes to npm as `fascicle`. Architectural boundaries (for example, core cannot import adapters, engine imports core type-only, and no `process.env` outside the audited exceptions) are enforced by the ast-grep rules in `rules/` and a directory-level boundary DAG in `fallow.toml`. The 7 apps under `examples/*/` are separate workspace members that consume the library via `fascicle: workspace:*`.\n\n```bash\npnpm install\npnpm check        # types, lint, structural rules, dead-code, tests, docs, spell\npnpm check:all    # adds Stryker mutation testing + the packaging gate (final gate)\n```\n\n`pnpm check` is the single source of truth for \"is this done?\". Output lands in `.check/` (one JSON per check). See [AGENTS.md](./AGENTS.md) for the full contract and [CLAUDE.md](./CLAUDE.md) for Claude-specific notes.\n\n## License\n\n[Apache 2.0](./LICENSE)\n","readmeFilename":"README.md"}