{"_id":"@llama-flow/core","_rev":"12-80e1570b3339af9b7af83f9c2894283b","name":"@llama-flow/core","dist-tags":{"latest":"0.4.4"},"versions":{"0.3.4":{"name":"@llama-flow/core","version":"0.3.4","license":"MIT","_id":"@llama-flow/core@0.3.4","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"dist":{"shasum":"fdcb57e17a395f4a465e624e8432ec5fd51658ca","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.4.tgz","fileCount":64,"integrity":"sha512-BOe23pfm7j9hKMH7u0jFS8bPKLsShKgz8KdN/rXeicgnopCwhDMO4ppOg7Cy7tWap8kYZIY8ZliN7Q9SmNfjkg==","signatures":[{"sig":"MEUCIG+Zuc+CT7xADWTV2sfaDSugDzIePZqyfzAitKd2W7srAiEA/XZoWkPtrln36eneenT/7oe5AuRow/279TjmgzdXuqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173312},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.4.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.browser.js","exports":{".":{"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"workerd":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"edge-light":{"types":"./dist/index.d.ts","default":"./dist/index.serverless.js"}},"./util/*":{"types":"./util/*.d.ts","default":"./util/*.js"},"./stream/*":{"types":"./stream/*.d.ts","default":"./stream/*.js"},"./middleware/*":{"types":"./middleware/*.d.ts","default":"./middleware/*.js"},"./async-context":{"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./interrupter/*":{"types":"./interrupter/*.d.ts","default":"./interrupter/*.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsup","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/private/var/folders/59/t37g_2ls7x972s7g4prhctwr0000gn/T/e27bec7f48fd97a4c6714764e584f9be/llama-flow-core-0.3.4.tgz","_integrity":"sha512-BOe23pfm7j9hKMH7u0jFS8bPKLsShKgz8KdN/rXeicgnopCwhDMO4ppOg7Cy7tWap8kYZIY8ZliN7Q9SmNfjkg==","_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","tsup":"^8.4.0","rimraf":"^6.0.1","vitest":"^3.0.8","p-retry":"^6.2.1","happy-dom":"^17.4.4","typescript":"^5.8.2","@types/node":"^22.13.10","stream-chain":"^3.4.0","@edge-runtime/vm":"^5.0.0","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.4_1744700202150_0.4312334843581116","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@llama-flow/core","version":"0.3.5","license":"MIT","_id":"@llama-flow/core@0.3.5","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"b3d3a26573d0e797ec339c5e8ba686dca64c4d38","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.5.tgz","fileCount":79,"integrity":"sha512-rmAgo4byNz7EZI6z7HGFl1EtkHUQYguEhfg5Zrxc/ak/CF6JuHbgXMPMF4zvFbb/U3vk2uWwDKui8kqe36AyeA==","signatures":[{"sig":"MEQCIEt34FPDoVhgwkO6C7Kao6fcT9jQFXWQISQuAqaCU+qrAiB+BmeKLQ3yV2b56cwrV+bl19NM5iVgt19qyr6LR1H3xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206496},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.5.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.browser.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./interrupter/mcp":{"types":"./interrupter/mcp.d.ts","default":"./interrupter/mcp.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./interrupter/hono":{"types":"./interrupter/hono.d.ts","default":"./interrupter/hono.js"},"./interrupter/next":{"types":"./interrupter/next.d.ts","default":"./interrupter/next.js"},"./middleware/store":{"types":"./middleware/store.d.ts","default":"./middleware/store.js"},"./interrupter/promise":{"types":"./interrupter/promise.d.ts","default":"./interrupter/promise.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/6bb06e853808e9b91398f2b7224ea4c7/llama-flow-core-0.3.5.tgz","_integrity":"sha512-rmAgo4byNz7EZI6z7HGFl1EtkHUQYguEhfg5Zrxc/ak/CF6JuHbgXMPMF4zvFbb/U3vk2uWwDKui8kqe36AyeA==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rimraf":"^6.0.1","tsdown":"^0.8.1","p-retry":"^6.2.1","typescript":"^5.8.2","@types/node":"^22.13.10","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.5_1745189788935_0.9457781960814968","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@llama-flow/core","version":"0.3.6","license":"MIT","_id":"@llama-flow/core@0.3.6","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"ec116767af722147ccf72ad674f0a6ce9f7ddecd","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.6.tgz","fileCount":85,"integrity":"sha512-uL6Ey6YysXcoy6XHI2DCOqI+3RVbZd6FeNSa0Yl+1em4meqrW0/udbHq7JPt/KAfwCl16dNcqAawY5bsv2m0Rw==","signatures":[{"sig":"MEUCIAMDiorWjMZj7EbEEowqJu9FtWJ2aHHVYOrWo5zkTJ8AAiEAvgcHirsBR39i9cRXwhh8yLgMRci7zYaxlBzr/4EbCxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216281},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.6.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.browser.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./interrupter/mcp":{"types":"./interrupter/mcp.d.ts","default":"./interrupter/mcp.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./interrupter/hono":{"types":"./interrupter/hono.d.ts","default":"./interrupter/hono.js"},"./interrupter/next":{"types":"./interrupter/next.d.ts","default":"./interrupter/next.js"},"./middleware/store":{"types":"./middleware/store.d.ts","default":"./middleware/store.js"},"./interrupter/promise":{"types":"./interrupter/promise.d.ts","default":"./interrupter/promise.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/0f8d33ee1213a5efc35dbdfd6bc95c64/llama-flow-core-0.3.6.tgz","_integrity":"sha512-uL6Ey6YysXcoy6XHI2DCOqI+3RVbZd6FeNSa0Yl+1em4meqrW0/udbHq7JPt/KAfwCl16dNcqAawY5bsv2m0Rw==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rimraf":"^6.0.1","tsdown":"^0.9.1","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.6_1745355668327_0.39972099680720974","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@llama-flow/core","version":"0.3.7","license":"MIT","_id":"@llama-flow/core@0.3.7","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"71aa1170b8afd6a8a94fd1d35a1b08a701e9dc4e","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.7.tgz","fileCount":82,"integrity":"sha512-Y9UcvAJZ1xOl66h97Ol3zhPD6mJIQVm5XW2+K6sS1dWc52v6WfiG0p9QN7Hgpm9051F6fnJj4Fq+LmhKN1Ot0w==","signatures":[{"sig":"MEUCIQCpcwFrRRlCnm0OwC7Ym92mxE6wGalDOD7kDWSOU/qsqwIgb13AGlyFNq3RvRsqQSXQX1rZwIrBHAaOHxeoEBBqkFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211181},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.7.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.browser.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./mcp.d.ts","default":"./mcp.js"},"./hono":{"types":"./hono.d.ts","default":"./hono.js"},"./next":{"types":"./next.d.ts","default":"./next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/store":{"types":"./middleware/store.d.ts","default":"./middleware/store.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/81d44b3224466ead4ea5fcaa5305f358/llama-flow-core-0.3.7.tgz","_integrity":"sha512-Y9UcvAJZ1xOl66h97Ol3zhPD6mJIQVm5XW2+K6sS1dWc52v6WfiG0p9QN7Hgpm9051F6fnJj4Fq+LmhKN1Ot0w==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rimraf":"^6.0.1","tsdown":"^0.9.1","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.7_1745395250831_0.32345361432132314","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@llama-flow/core","version":"0.3.8","license":"MIT","_id":"@llama-flow/core@0.3.8","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"3fc9ed1aa3419a96adef2300803237e183983550","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.8.tgz","fileCount":86,"integrity":"sha512-BSnJXQ/zk6IdJiwGToqhbJX9CYlOL65TWmi73iGFki5YW9AEco2A6LnVM1OYKl3U7a9HvRd4+5pK5aNJ7l3l7w==","signatures":[{"sig":"MEUCIQCKdBqk9qTkDTox1Uz45fJLEnq36E13B3/8palkjU9ZPgIgJeVZLNgf+mDzS0jbo0B1HHfgO6NGnoB0ZYRsPvNNXes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216671},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.8.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.browser.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/store":{"types":"./middleware/store.d.ts","default":"./middleware/store.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/090d1f4060862472aed460d229bafe29/llama-flow-core-0.3.8.tgz","_integrity":"sha512-BSnJXQ/zk6IdJiwGToqhbJX9CYlOL65TWmi73iGFki5YW9AEco2A6LnVM1OYKl3U7a9HvRd4+5pK5aNJ7l3l7w==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.9.5","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.8_1745508514015_0.5331885062050297","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@llama-flow/core","version":"0.3.9","license":"MIT","_id":"@llama-flow/core@0.3.9","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"52632e6ee695bb848d245194dfd04dc49f2f3206","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.9.tgz","fileCount":86,"integrity":"sha512-/s0L16qo/hbF8Ahe5KEjJp6YfomIizp5lyhwgwQ0bomOijP3wX6L2xHnXucPRg5RGxgzpIIlDFW1sTQkjIamqg==","signatures":[{"sig":"MEUCIQCglM5/C26+ZrDVPAD1Qg667wcTGfS5QMpuIjUY4qHyUQIgLW/oUOhQrUOtHpJMBK1QN9M0+/4SwMA/EePv6CT4kzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216234},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.9.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/store":{"types":"./middleware/store.d.ts","default":"./middleware/store.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/39d6ac3474224550b7f7e4b36bcf115b/llama-flow-core-0.3.9.tgz","_integrity":"sha512-/s0L16qo/hbF8Ahe5KEjJp6YfomIizp5lyhwgwQ0bomOijP3wX6L2xHnXucPRg5RGxgzpIIlDFW1sTQkjIamqg==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.9.5","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.9_1745527821646_0.513883365504118","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@llama-flow/core","version":"0.3.10","license":"MIT","_id":"@llama-flow/core@0.3.10","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"03372c850b322a50b4c582f071a0e070c98f9fef","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.3.10.tgz","fileCount":86,"integrity":"sha512-PJyMW5xXf3IHTB6BLfMcwM9hxcN9YsA+Gk5uu+qEc2uQ/jsU8DsM8vd4vubWXauRdWd/weENkJSWrkXj/0mB4A==","signatures":[{"sig":"MEYCIQDKdrBqOGXs/EvLRsZ0KQ5RBGVzTP7NBqsHrvyeqMU+AwIhAJiaI3uE2jZWxy9vFe6f/drFhh6V9hRLr83MTQhJyvTK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256708},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.3.10.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/store":{"types":"./middleware/store.d.ts","default":"./middleware/store.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/d1dcf9ff487e94bb7804355ab763ff6a/llama-flow-core-0.3.10.tgz","_integrity":"sha512-PJyMW5xXf3IHTB6BLfMcwM9hxcN9YsA+Gk5uu+qEc2uQ/jsU8DsM8vd4vubWXauRdWd/weENkJSWrkXj/0mB4A==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.9.5","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.10_1745744218095_0.46525444331979005","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@llama-flow/core","version":"0.4.0","license":"MIT","_id":"@llama-flow/core@0.4.0","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"67a7e6ac495abab832972c13fc9677b82b49ef10","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.4.0.tgz","fileCount":90,"integrity":"sha512-ctCnvIAE3U1YUgwtQOr5UwU9b0f5NLeEH4YkDc87Q8hAY+e/8T2iuar44wHPz20zMDF6WssXh2lepNjQVnVmRQ==","signatures":[{"sig":"MEUCICcvLrZDiZChWNbw1OsIkb31sPhyufIbakvaY5BpqmtUAiEAtJLdJ+kNlqCDW7ClbYpW4gLMvA0cdnfu1qgwA2rElXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263912},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.4.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/state":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/cb31597160bd46b1e8f3cf4235f7a9f2/llama-flow-core-0.4.0.tgz","_integrity":"sha512-ctCnvIAE3U1YUgwtQOr5UwU9b0f5NLeEH4YkDc87Q8hAY+e/8T2iuar44wHPz20zMDF6WssXh2lepNjQVnVmRQ==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.9.5","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.0_1746001064347_0.82826291858407","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@llama-flow/core","version":"0.4.1","license":"MIT","_id":"@llama-flow/core@0.4.1","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"da5cb0f8c0e93bd21b7eec0f57cc1b852dda858d","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.4.1.tgz","fileCount":88,"integrity":"sha512-xHhJMRmY16C1pYPWIonmLWPkkjTGuj1iVQCTXOM6sXajQ3r0+mEVERQCjPqf48tvX0K+szbdgxjg6wx+KwVqcg==","signatures":[{"sig":"MEYCIQDfsOqwnksFB4+Ma7pZn9zk9gEz2u6x7ygPteUoPFqH2QIhAO7qYB8+W189JLbQAVTAyrytEQjaOmAAlVbzGxk6QX16","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287671},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.4.1.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/state":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/fea5010d39ebc18f3c338b446ff76390/llama-flow-core-0.4.1.tgz","_integrity":"sha512-xHhJMRmY16C1pYPWIonmLWPkkjTGuj1iVQCTXOM6sXajQ3r0+mEVERQCjPqf48tvX0K+szbdgxjg6wx+KwVqcg==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.9.5","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.1_1746199774694_0.17377811276928878","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@llama-flow/core","version":"0.4.2","license":"MIT","_id":"@llama-flow/core@0.4.2","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"064caea08bc96afdf9f869ef9501ff07c054933a","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.4.2.tgz","fileCount":76,"integrity":"sha512-LMo5dU+sgtdUbWz+JB2j2iKVPJ12ot08ZYhDOHzKgN1OQG2+Mm9uOrEd0r/pCQY+1IQPAbP7xA/is6kPEOSVBA==","signatures":[{"sig":"MEUCIGH0S5/mwxt2q4Auz/bBSMq8QxNa4du++xxTAmXAFVHoAiEAz1jZ6ngXWIae8YccFnL30jSOOdUzS3PqO4s/JLnY0xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301694},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.4.2.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/state":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"},"./middleware/snapshot":{"types":"./middleware/snapshot.d.ts","default":"./middleware/snapshot.js"},"./middleware/validation":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"./middleware/trace-events":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/42371f6afa5bee7eb46ea7992cedd70c/llama-flow-core-0.4.2.tgz","_integrity":"sha512-LMo5dU+sgtdUbWz+JB2j2iKVPJ12ot08ZYhDOHzKgN1OQG2+Mm9uOrEd0r/pCQY+1IQPAbP7xA/is6kPEOSVBA==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.11.12","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.2_1747904722341_0.7035913057593561","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@llama-flow/core","version":"0.4.3","license":"MIT","_id":"@llama-flow/core@0.4.3","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"homepage":"https://github.com/run-llama/llama-flow#readme","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"dist":{"shasum":"81f41b67b3b2abbc29a05e51401db15db3c979b0","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.4.3.tgz","fileCount":94,"integrity":"sha512-fxvuCO0Jpa/WZ/NFk2HCpKwjE4bwpHAIFyW/MC0L+gKGKj8DMYjJla6WVhADU35EUnxdpf9ZYJoN32yPrJUMMQ==","signatures":[{"sig":"MEYCIQDFFnDuRjULipi1sn3VbeXXp2enOuuDcxb8iqSHaMYYZAIhAJJBM1q9iwsfYyp1AGkwHwUA2fJKca9oCqbMmaaN4W3p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378304},"main":"dist/index.cjs","type":"module","_from":"file:llama-flow-core-0.4.3.tgz","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./async-context":{"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"}},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./middleware/state":{"import":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"},"default":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"},"require":{"types":"./middleware/state.d.cts","default":"./middleware/state.cjs"}},"./middleware/snapshot":{"import":{"types":"./middleware/snapshot.d.ts","default":"./middleware/snapshot.js"},"default":{"types":"./middleware/snapshot.d.ts","default":"./middleware/snapshot.js"},"require":{"types":"./middleware/snapshot.d.cts","default":"./middleware/snapshot.cjs"}},"./middleware/validation":{"import":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"default":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"require":{"types":"./middleware/validation.d.cts","default":"./middleware/validation.cjs"}},"./middleware/trace-events":{"import":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"},"default":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"},"require":{"types":"./middleware/trace-events.d.cts","default":"./middleware/trace-events.cjs"}}},"scripts":{"dev":"tsdown --watch","test":"vitest run","build":"rimraf dist interrupter middleware stream util async-context && tsdown","test:ui":"vitest --ui"},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"_resolved":"/tmp/1ead55a8fed86212e0845e016661aa2f/llama-flow-core-0.4.3.tgz","_integrity":"sha512-fxvuCO0Jpa/WZ/NFk2HCpKwjE4bwpHAIFyW/MC0L+gKGKj8DMYjJla6WVhADU35EUnxdpf9ZYJoN32yPrJUMMQ==","repository":{"url":"git+https://github.com/run-llama/llama-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"event-based workflow engine","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","hono":"^4.7.7","next":"^15.3.1","rxjs":"^7.8.2","rimraf":"^6.0.1","tsdown":"^0.11.12","p-retry":"^6.2.1","typescript":"^5.8.3","@types/node":"^22.14.1","stream-chain":"^3.4.0","@modelcontextprotocol/sdk":"^1.10.1"},"peerDependencies":{"zod":"^3.24.2","hono":"^4.7.4","next":"^15.2.2","rxjs":"^7.8.2","p-retry":"^6.2.1","@modelcontextprotocol/sdk":"^1.7.0"},"peerDependenciesMeta":{"zod":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"rxjs":{"optional":true},"p-retry":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.4.3_1748491270849_0.23784237948574694","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@llama-flow/core","version":"0.4.4","description":"event-based workflow engine","type":"module","main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/browser/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./async-context":{"browser":{"types":"./async-context/index.d.ts","default":"./async-context/index.browser.js"},"import":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"},"require":{"types":"./async-context/index.d.cts","default":"./async-context/index.cjs"},"default":{"types":"./async-context/index.d.ts","default":"./async-context/index.js"}},"./hono":{"types":"./dist/hono.d.ts","default":"./dist/hono.js"},"./mcp":{"types":"./dist/mcp.d.ts","default":"./dist/mcp.js"},"./next":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"./observable":{"types":"./dist/observable.d.ts","default":"./dist/observable.js"},"./middleware/state":{"import":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"},"require":{"types":"./middleware/state.d.cts","default":"./middleware/state.cjs"},"default":{"types":"./middleware/state.d.ts","default":"./middleware/state.js"}},"./middleware/trace-events":{"import":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"},"require":{"types":"./middleware/trace-events.d.cts","default":"./middleware/trace-events.cjs"},"default":{"types":"./middleware/trace-events.d.ts","default":"./middleware/trace-events.js"}},"./middleware/validation":{"import":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"},"require":{"types":"./middleware/validation.d.cts","default":"./middleware/validation.cjs"},"default":{"types":"./middleware/validation.d.ts","default":"./middleware/validation.js"}},"./middleware/snapshot":{"import":{"types":"./middleware/snapshot.d.ts","default":"./middleware/snapshot.js"},"require":{"types":"./middleware/snapshot.d.cts","default":"./middleware/snapshot.cjs"},"default":{"types":"./middleware/snapshot.d.ts","default":"./middleware/snapshot.js"}},"./util/p-retry":{"types":"./util/p-retry.d.ts","default":"./util/p-retry.js"},"./util/zod":{"types":"./util/zod.d.ts","default":"./util/zod.js"},"./stream/consumer":{"types":"./stream/consumer.d.ts","default":"./stream/consumer.js"},"./stream/filter":{"types":"./stream/filter.d.ts","default":"./stream/filter.js"},"./stream/find":{"types":"./stream/find.d.ts","default":"./stream/find.js"},"./stream/until":{"types":"./stream/until.d.ts","default":"./stream/until.js"},"./stream/run":{"types":"./stream/run.d.ts","default":"./stream/run.js"}},"devDependencies":{"@modelcontextprotocol/sdk":"^1.10.1","@types/node":"^22.14.1","hono":"^4.7.7","next":"^15.3.1","p-retry":"^6.2.1","rimraf":"^6.0.1","rxjs":"^7.8.2","stream-chain":"^3.4.0","tsdown":"^0.11.12","typescript":"^5.8.3","zod":"^3.24.3"},"peerDependencies":{"@modelcontextprotocol/sdk":"^1.7.0","hono":"^4.7.4","next":"^15.2.2","p-retry":"^6.2.1","rxjs":"^7.8.2","zod":"^3.24.2"},"license":"MIT","peerDependenciesMeta":{"@modelcontextprotocol/sdk":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"p-retry":{"optional":true},"rxjs":{"optional":true},"zod":{"optional":true}},"repository":{"type":"git","url":"git+https://github.com/run-llama/llama-flow.git"},"publishConfig":{"access":"public"},"scripts":{"build":"rimraf dist interrupter middleware stream util async-context && tsdown","dev":"tsdown --watch","test":"vitest run","test:ui":"vitest --ui"},"_id":"@llama-flow/core@0.4.4","bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"homepage":"https://github.com/run-llama/llama-flow#readme","_integrity":"sha512-hwK1EQ+atUG/E7XcDV3KsTaA8op29pb8gbpVurpsqbLnGFkdTT4F/6V7Hy1cC2o/yOY+DKc/rxoIsH1uJS0cZg==","_resolved":"/tmp/8433ba769245a3eaa15e63aaefb20317/llama-flow-core-0.4.4.tgz","_from":"file:llama-flow-core-0.4.4.tgz","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-hwK1EQ+atUG/E7XcDV3KsTaA8op29pb8gbpVurpsqbLnGFkdTT4F/6V7Hy1cC2o/yOY+DKc/rxoIsH1uJS0cZg==","shasum":"1bf64f25e2281c9f6edd0c0dea7864ad5e3c257e","tarball":"https://registry.npmjs.org/@llama-flow/core/-/core-0.4.4.tgz","fileCount":94,"unpackedSize":378563,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDDFq8kDEtqXtqdvSkQpD8CK0gQB4CL/UmOuKtcO7Q4VgIhAIa8QbmkZuJNrQdQaQXOWcOpY9S+W3Q8xb4W64fwavLX"}]},"_npmUser":{"name":"himself_65","email":"himself65@outlook.com"},"directories":{},"maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.4.4_1749557194649_0.3616464946326359"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-15T06:56:42.087Z","modified":"2025-06-10T12:06:35.037Z","0.3.4":"2025-04-15T06:56:42.329Z","0.3.5":"2025-04-20T22:56:29.173Z","0.3.6":"2025-04-22T21:01:08.544Z","0.3.7":"2025-04-23T08:00:51.002Z","0.3.8":"2025-04-24T15:28:34.262Z","0.3.9":"2025-04-24T20:50:21.847Z","0.3.10":"2025-04-27T08:56:58.278Z","0.4.0":"2025-04-30T08:17:44.520Z","0.4.1":"2025-05-02T15:29:34.929Z","0.4.2":"2025-05-22T09:05:22.501Z","0.4.3":"2025-05-29T04:01:11.232Z","0.4.4":"2025-06-10T12:06:34.830Z"},"bugs":{"url":"https://github.com/run-llama/llama-flow/issues"},"license":"MIT","homepage":"https://github.com/run-llama/llama-flow#readme","repository":{"type":"git","url":"git+https://github.com/run-llama/llama-flow.git"},"description":"event-based workflow engine","maintainers":[{"name":"himself_65","email":"himself65@outlook.com"}],"readme":"# llama-flow\n\nllama-flow 🌊 is a simple, lightweight workflow engine, in TypeScript.\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz_small.svg)](https://stackblitz.com/github/run-llama/llama-flow/tree/main/demo/browser?file=src%2FApp.tsx)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/run-llama/llama-flow/test.yml?branch=main&style=flat&colorA=000000&colorB=45dff8)](https://github.com/run-llama/llama-flow/actions/workflows/test.yml?query=branch%3Amain)\n[![Bundle Size](https://img.shields.io/bundlephobia/minzip/@llama-flow/core?style=flat&colorA=000000&colorB=45dff8)](https://bundlephobia.com/result?p=@llama-flow/core)\n\n- Minimal core API (<=2kb)\n- 100% Type safe\n- Event-driven, stream oriented programming\n- Support multiple JS runtime/framework\n\n## Usage\n\n```shell\nnpm i @llama-flow/core\n\nyarn add @llama-flow/core\n\npnpm add @llama-flow/core\n\nbun add @llama-flow/core\n\ndeno add npm:@llama-flow/core\n```\n\n### First, define events\n\n```ts\nimport { workflowEvent } from \"@llama-flow/core\";\n\nconst startEvent = workflowEvent<string>();\nconst stopEvent = workflowEvent<1 | -1>();\n```\n\n### Connect events with workflow\n\n```ts\nimport { createWorkflow } from \"@llama-flow/core\";\n\nconst convertEvent = workflowEvent();\n\nconst workflow = createWorkflow();\n\nworkflow.handle([startEvent], (start) => {\n  return convertEvent.with(Number.parseInt(start.data, 10));\n});\nworkflow.handle([convertEvent], (convert) => {\n  return stopEvent.with(convert.data > 0 ? 1 : -1);\n});\n```\n\n### Trigger workflow\n\n```ts\nimport { pipeline } from \"node:stream/promises\";\n\nconst { stream, sendEvent } = workflow.createContext();\nsendEvent(startEvent.with());\nconst result = await pipeline(stream, async function (source) {\n  for await (const event of source) {\n    if (stopEvent.include(event)) {\n      return \"stop received!\";\n    }\n  }\n});\nconsole.log(result); // stop received!\n// or\nconst allEvents = await stream.until(stopEvent).toArray();\n```\n\n### Helper Functions for Common Tasks\n\nThere are helper functions to make working with workflows even simpler:\n\n```ts\nimport {\n  runWorkflow,\n  runAndCollect,\n  runWorkflowWithFilter,\n} from \"@llama-flow/core/stream/run\";\n\n// Run workflow and get final result\nconst result = await runWorkflow(workflow, startEvent.with(\"42\"), stopEvent);\n\n// Run workflow and collect all events\nconst allEvents = await runAndCollect(\n  workflow,\n  startEvent.with(\"42\"),\n  stopEvent,\n);\n```\n\n### Fan-out (Parallelism)\n\nBy default, we provide a simple fan-out utility to run multiple workflows in parallel\n\n- `getContext().sendEvent` will emit a new event to current workflow\n- `getContext().stream` will return a stream of events emitted by the sub-workflow\n\n```ts\nlet condition = false;\nworkflow.handle([startEvent], async (start) => {\n  const { sendEvent, stream } = getContext();\n  for (let i = 0; i < 10; i++) {\n    sendEvent(convertEvent.with(i));\n  }\n  // You define the condition to stop the workflow\n  const results = await stream\n    .until(() => condition)\n    .filter(convertStopEvent)\n    .toArray();\n  console.log(results.length); // 10\n  return stopEvent.with();\n});\n\nworkflow.handle([convertEvent], (convert) => {\n  if (convert.data === 9) {\n    condition = true;\n  }\n  return convertStopEvent.with(/* ... */);\n});\n```\n\n### With RxJS, or any stream API\n\nWorkflow is event-driven, you can use any stream API to handle the workflow like `rxjs`\n\n```ts\nimport { from, pipe } from \"rxjs\";\n\nconst { stream, sendEvent } = workflow.createContext();\n\nfrom(stream)\n  .pipe(filter((ev) => eventSource(ev) === messageEvent))\n  .subscribe((ev) => {\n    console.log(ev.data);\n  });\n\nsendEvent(fileParseWorkflow.startEvent(directory));\n```\n\n### Connect with Server endpoint\n\nWorkflow can be used as middleware in any server framework, like `express`, `hono`, `fastify`, etc.\n\n```ts\nimport { Hono } from \"hono\";\nimport { serve } from \"@hono/node-server\";\nimport { createHonoHandler } from \"@llama-flow/core/interrupter/hono\";\nimport {\n  agentWorkflow,\n  startEvent,\n  stopEvent,\n} from \"../workflows/tool-call-agent.js\";\n\nconst app = new Hono();\n\napp.post(\n  \"/workflow\",\n  createHonoHandler(\n    agentWorkflow,\n    async (ctx) => startEvent(await ctx.req.text()),\n    stopEvent,\n  ),\n);\n\nserve(app, ({ port }) => {\n  console.log(`Server started at http://localhost:${port}`);\n});\n```\n\n### Error Handling\n\nYou can use `signal` in `getContext` to handle error\n\n```ts\nworkflow.handle([convertEvent], () => {\n  const { signal } = getContext();\n\n  signal.onabort = () => {\n    console.error(\"error in convert event:\", abort.reason);\n  };\n});\n```\n\n### Pitfall in **browser**\n\nYou must call `getContext()` in the top level of the workflow, otherwise we will lose the async context of the workflow.\n\n```ts\nworkflow.handle([startEvent], async () => {\n  const { stream } = getContext(); // ✅ this is ok\n  await fetchData();\n});\n\nworkflow.handle([startEvent], async () => {\n  await fetchData();\n  const { stream } = getContext(); // ❌ this is not ok\n  // we have no way to know this code was originally part of the workflow\n  // w/o AsyncContext\n});\n```\n\nDue to missing API of `async_hooks` in browser, we are looking\nfor [Async Context](https://github.com/tc39/proposal-async-context) to solve this problem in the future.\n\n## Middleware\n\n### `withState`\n\nAdding a `state` property to the workflow context, which returns a state object, each state is linked to the workflow\ncontext.\n\n```ts\nimport { createStatefulMiddleware } from \"@llama-flow/core/middleware/state\";\n\nconst { withState, getContext } = createStatefulMiddleware(() => ({\n  pendingTasks: new Set<Promise<unknown>>(),\n}));\n\nconst workflow = withState(createWorkflow());\n\nworkflow.handle([startEvent], () => {\n  const { state } = getContext();\n  state.pendingTasks.add(\n    new Promise((resolve) => {\n      setTimeout(() => {\n        resolve();\n      }, 100);\n    }),\n  );\n});\n\nconst { state } = workflow.createContext();\n```\n\nYou can also create a state with input:\n\n```ts\nconst { withState } = createStatefulMiddleware((input: { id: string }) => ({\n  id: input.id,\n}));\n\nconst workflow = withState(createWorkflow());\nconst { state } = workflow.createContext({ id: \"1\" });\n```\n\n### `withValidation`\n\nMake first parameter of `handler` to be `sendEvent` and its type safe and runtime safe\nwhen you create a workflow using `withValidation`.\n\n```ts\n// before:\nworkflow.handle([startEvent], (start) => {});\n// after:\nworkflow.handle([startEvent], (sendEvent, start) => {});\n```\n\n```ts\nimport { withValidation } from \"@llama-flow/core/middleware/validation\";\n\nconst startEvent = workflowEvent<void, \"start\">();\nconst disallowedEvent = workflowEvent<void, \"disallowed\">({\n  debugLabel: \"disallowed\",\n});\nconst parseEvent = workflowEvent<string, \"parse\">();\nconst stopEvent = workflowEvent<number, \"stop\">();\nconst workflow = withValidation(createWorkflow(), [\n  [[startEvent], [stopEvent]],\n  [[startEvent], [parseEvent]],\n]);\n\nworkflow.strictHandle([startEvent], (sendEvent, start) => {\n  sendEvent(\n    disallowedEvent.with(), // <-- ❌ Type Check Failed, Runtime Error\n  );\n  sendEvent(parseEvent.with(\"\")); // <-- ✅\n  sendEvent(stopEvent.with(1)); // <-- ✅\n});\n```\n\n### `withTraceEvents`\n\nAdds tracing capabilities to your workflow, allowing you to monitor/decorate handler and debug event flows easily.\n\nWhen enabled,\nit collects events based on the directed graph of the runtime and provide lifecycle hooks for each handler.\n\n```ts\nimport {\n  withTraceEvents,\n  runOnce,\n} from \"@llama-flow/core/middleware/trace-events\";\n\nconst workflow = withTraceEvents(createWorkflow());\n\nworkflow.handle(\n  [messageEvent],\n  runOnce(() => {\n    console.log(\"This message handler will only run once\");\n  }),\n);\n\nworkflow.handle([startEvent], () => {\n  getContext().sendEvent(messageEvent.with());\n  getContext().sendEvent(messageEvent.with());\n});\n\n{\n  const { sendEvent } = workflow.createContext();\n  sendEvent(startEvent.with());\n  sendEvent(messageEvent.with());\n  // This message handler will only run once!\n}\n{\n  const { sendEvent } = workflow.createContext();\n  // For each new context, the decorator is isolated.\n  sendEvent(startEvent.with());\n  sendEvent(messageEvent.with());\n  // This message handler will only run once!\n}\n```\n\n#### `workflow.substream(target, stream)`\n\nYou can use `substream` to create a substream from the workflow context,\nwhich will only emit events that are emitted by the target event.\n\n```ts\nconst ev = startEvent.with();\nconst { sendEvent, stream } = workflow.createContext();\nsendEvent(ev);\nsendEvent(messageEvent.with()); // <- this will not be included in the substream\nconst substream = workflow.substream(ev, stream);\n```\n\nThis is helpful when you have async requests, and you want to track the events that are emitted by the target event.\n\nFor example:\n\n- Parallel requests\n\n  <details>\n    <summary>without substream</summary>\n\n  ```ts\n  workflow.handle([startEvent], async ({ data: uuid }) => {\n    const { sendEvent, stream } = getContext();\n    const ev = networkRequestEvent.with(uuid);\n    sendEvent(networkRequestEvent);\n    // you need bypass uuid to all events to get the correct response\n    const responses = await collect(\n      filter(workflow.substream(ev, stream), (ev) => ev.data === uuid),\n    );\n  });\n\n  sendEvent(startEvent.with(crypto.randomUUID()));\n  sendEvent(startEvent.with(crypto.randomUUID()));\n  ```\n\n  </details>\n\n  ```ts\n  workflow.handle([startEvent], async () => {\n    const { sendEvent, stream } = getContext();\n    const ev = networkRequestEvent.with();\n    sendEvent(networkRequestEvent);\n    const responses = await collect(workflow.substream(ev, stream));\n  });\n\n  sendEvent(startEvent.with());\n  sendEvent(startEvent.with());\n  ```\n\n#### `createHandlerDecorator`\n\nYou can create your own handler decorator to modify the behavior of the handler.\n\n```ts\nimport { createHandlerDecorator } from \"@llama-flow/core/middleware/trace-events\";\n\nconst noop: (...args: any[]) => void = function noop() {};\nexport const runOnce = createHandlerDecorator({\n  debugLabel: \"onceHook\",\n  getInitialValue: () => false,\n  onBeforeHandler: (handler, handlerContext, tracked) =>\n    tracked ? noop : handler,\n  onAfterHandler: () => true,\n});\n```\n\n#### `HandlerContext`\n\nThe `HandlerContext` includes the runtime information of the handler in the directed graph of the workflow.\n\n```ts\ntype BaseHandlerContext = {\n  // ... some other properties are hidden\n  handler: Handler<WorkflowEvent<any>[], any>;\n  inputEvents: WorkflowEvent<any>[];\n  // events data that are accepted by the handler\n  inputs: WorkflowEventData<any>[];\n  // events data that are emitted by the handler\n  outputs: WorkflowEventData<any>[];\n\n  //#region linked list data structure\n  prev: HandlerContext;\n  next: Set<HandlerContext>;\n  root: HandlerContext;\n  //#endregion\n};\n\ntype SyncHandlerContext = BaseHandlerContext & {\n  async: false;\n  pending: null;\n};\n\ntype AsyncHandlerContext = BaseHandlerContext & {\n  async: true;\n  pending: Promise<WorkflowEventData<any> | void> | null;\n};\n\ntype HandlerContext = AsyncHandlerContext | SyncHandlerContext;\n```\n\nFor example, when you send two `startEvent` events, and send `messageEvent` twice (once in the handler and once in the global),\nthe `HandlerContext` from root to leaf is:\n\n```ts\nlet once = false;\nworkflow.handle([startEvent], () => {\n  const { sendEvent } = getContext();\n  if (once) {\n    return;\n  }\n  once = true;\n  sendEvent(messageEvent.with());\n});\nconst { sendEvent } = workflow.createContext();\nsendEvent(startEvent.with());\nsendEvent(startEvent.with());\nsendEvent(messageEvent.with());\n```\n\n```\nrootHandlerContext(0)\n  ├── startEventContext(0)\n  │   └── messageEventContext(0)\n  ├── startEventContext(1)\n  └── messageEventContext(1)\n```\n\nYou can use any directed graph library to visualize the directed graph of the workflow.\n\n# LICENSE\n\nMIT\n","readmeFilename":"README.md"}