{"_id":"@eddacraft/kindling-adapter-pocketflow","_rev":"3-7fa281613c6834a61e4ace70bf0185d1","name":"@eddacraft/kindling-adapter-pocketflow","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@eddacraft/kindling-adapter-pocketflow","version":"0.1.0","keywords":["kindling","pocketflow","adapter","workflow","nodes","agent","ai","memory"],"author":{"name":"EddaCraft","email":"hello@eddacraft.ai"},"license":"Apache-2.0","_id":"@eddacraft/kindling-adapter-pocketflow@0.1.0","maintainers":[{"name":"joshuaboys","email":"josh@arkahna.io"}],"homepage":"https://github.com/EddaCraft/kindling/tree/main/packages/kindling-adapter-pocketflow#readme","bugs":{"url":"https://github.com/EddaCraft/kindling/issues"},"dist":{"shasum":"19bc0a1c7d1866b68a859e76815090b954854671","tarball":"https://registry.npmjs.org/@eddacraft/kindling-adapter-pocketflow/-/kindling-adapter-pocketflow-0.1.0.tgz","fileCount":19,"integrity":"sha512-QKp4bMr/rCkEgjgETH6v1Uv8mP91+XyE7Dq/VGy/bA78wuom9nxTjscIArSnySlrUWwLoj2G2lkie+yZcmjaaA==","signatures":[{"sig":"MEQCIHcXfJY9LEgwqteVc1Q+68+HFOAGDm1hl07/oAcNtBtKAiBleA/n0njW04KjhEQwRoZ4o1i7r0yastLrRVcnGJ6fcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eddacraft%2fkindling-adapter-pocketflow@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68564},"main":"./dist/index.js","type":"module","_from":"file:eddacraft-kindling-adapter-pocketflow-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src","test":"vitest run","build":"tsc --build","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit"},"_npmUser":{"name":"joshuaboys","email":"josh@arkahna.io"},"_resolved":"/tmp/409b2bf980dc6aeacb6062bcc46e0e4a/eddacraft-kindling-adapter-pocketflow-0.1.0.tgz","_integrity":"sha512-QKp4bMr/rCkEgjgETH6v1Uv8mP91+XyE7Dq/VGy/bA78wuom9nxTjscIArSnySlrUWwLoj2G2lkie+yZcmjaaA==","repository":{"url":"git+https://github.com/EddaCraft/kindling.git","type":"git","directory":"packages/kindling-adapter-pocketflow"},"_npmVersion":"10.8.2","description":"PocketFlow workflow adapter for Kindling - capture node executions with intent and confidence","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@eddacraft/kindling-core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.3.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/kindling-adapter-pocketflow_0.1.0_1770862705990_0.37435981173947663","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eddacraft/kindling-adapter-pocketflow","version":"0.1.1","keywords":["kindling","pocketflow","adapter","workflow","nodes","agent","ai","memory"],"author":{"name":"EddaCraft","email":"hello@eddacraft.ai"},"license":"Apache-2.0","_id":"@eddacraft/kindling-adapter-pocketflow@0.1.1","maintainers":[{"name":"joshuaboys","email":"josh@arkahna.io"}],"homepage":"https://github.com/EddaCraft/kindling/tree/main/packages/kindling-adapter-pocketflow#readme","bugs":{"url":"https://github.com/EddaCraft/kindling/issues"},"dist":{"shasum":"75e74069aec5f26c4f62a86ac5262066b9243744","tarball":"https://registry.npmjs.org/@eddacraft/kindling-adapter-pocketflow/-/kindling-adapter-pocketflow-0.1.1.tgz","fileCount":19,"integrity":"sha512-+9Zw6yqwV2DbG7aAqHl8RcoRks5KPpAeCYH92szOW1qOvGtryowE2yu90oEXvcI2pyTu0ojh9cPEzDMoJe/jdg==","signatures":[{"sig":"MEUCIAfxlj9isaL34VG7H8mN7wBSB4pq6YEmtaOxjFHE8gEQAiEAp8McUMFrwW3PmhBwe7ot6b9rzNMrRccVj8twE4/H5Sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eddacraft%2fkindling-adapter-pocketflow@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68564},"main":"./dist/index.js","type":"module","_from":"file:eddacraft-kindling-adapter-pocketflow-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src","test":"vitest run","build":"tsc --build","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit"},"_npmUser":{"name":"joshuaboys","email":"josh@arkahna.io"},"_resolved":"/tmp/e1e51bb54608a61e9c560ec8cb79800f/eddacraft-kindling-adapter-pocketflow-0.1.1.tgz","_integrity":"sha512-+9Zw6yqwV2DbG7aAqHl8RcoRks5KPpAeCYH92szOW1qOvGtryowE2yu90oEXvcI2pyTu0ojh9cPEzDMoJe/jdg==","repository":{"url":"git+https://github.com/EddaCraft/kindling.git","type":"git","directory":"packages/kindling-adapter-pocketflow"},"_npmVersion":"10.8.2","description":"PocketFlow workflow adapter for Kindling - capture node executions with intent and confidence","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@eddacraft/kindling-core":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.3.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/kindling-adapter-pocketflow_0.1.1_1770960584509_0.06889029987641582","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@eddacraft/kindling-adapter-pocketflow","version":"0.1.2","description":"PocketFlow workflow adapter for Kindling - capture node executions with intent and confidence","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"keywords":["kindling","pocketflow","adapter","workflow","nodes","agent","ai","memory"],"author":{"name":"EddaCraft","email":"hello@eddacraft.ai"},"homepage":"https://github.com/EddaCraft/kindling/tree/main/packages/kindling-adapter-pocketflow#readme","repository":{"type":"git","url":"git+https://github.com/EddaCraft/kindling.git","directory":"packages/kindling-adapter-pocketflow"},"bugs":{"url":"https://github.com/EddaCraft/kindling/issues"},"license":"Apache-2.0","dependencies":{"@eddacraft/kindling-core":"0.1.2"},"devDependencies":{"@types/node":"^20.11.0","typescript":"^5.3.0","vitest":"^3.2.4"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc --build","test":"vitest run","test:watch":"vitest","type-check":"tsc --noEmit","lint":"eslint src","clean":"rm -rf dist"},"_id":"@eddacraft/kindling-adapter-pocketflow@0.1.2","_integrity":"sha512-vMqghKlNffJZXpTeqotojS+TImbANdMiKIIilsWV3j9MeljnBITcwWalVQuVOuNCebvIyakLGyLAl/6v9QTx/Q==","_resolved":"/tmp/59c549da4054bad319ece68b0471d997/eddacraft-kindling-adapter-pocketflow-0.1.2.tgz","_from":"file:eddacraft-kindling-adapter-pocketflow-0.1.2.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-vMqghKlNffJZXpTeqotojS+TImbANdMiKIIilsWV3j9MeljnBITcwWalVQuVOuNCebvIyakLGyLAl/6v9QTx/Q==","shasum":"647b348ca0ae706f913fd17d6aa0cd420fccfc41","tarball":"https://registry.npmjs.org/@eddacraft/kindling-adapter-pocketflow/-/kindling-adapter-pocketflow-0.1.2.tgz","fileCount":19,"unpackedSize":68564,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eddacraft%2fkindling-adapter-pocketflow@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+lxi9tsmij0BUXs3mScdmcYwZK4u6hy5yluQDwHM1AAIgenB7TtbBfQrnAtUMORwKcf7AKXoepVp7EX0KS7nX9fo="}]},"_npmUser":{"name":"joshuaboys","email":"josh@arkahna.io"},"directories":{},"maintainers":[{"name":"joshuaboys","email":"josh@arkahna.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kindling-adapter-pocketflow_0.1.2_1771253711698_0.5456792803824735"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-12T02:18:25.571Z","modified":"2026-02-16T14:55:12.177Z","0.1.0":"2026-02-12T02:18:26.145Z","0.1.1":"2026-02-13T05:29:44.682Z","0.1.2":"2026-02-16T14:55:11.856Z"},"bugs":{"url":"https://github.com/EddaCraft/kindling/issues"},"author":{"name":"EddaCraft","email":"hello@eddacraft.ai"},"license":"Apache-2.0","homepage":"https://github.com/EddaCraft/kindling/tree/main/packages/kindling-adapter-pocketflow#readme","keywords":["kindling","pocketflow","adapter","workflow","nodes","agent","ai","memory"],"repository":{"type":"git","url":"git+https://github.com/EddaCraft/kindling.git","directory":"packages/kindling-adapter-pocketflow"},"description":"PocketFlow workflow adapter for Kindling - capture node executions with intent and confidence","maintainers":[{"name":"joshuaboys","email":"josh@arkahna.io"}],"readme":"# @eddacraft/kindling-adapter-pocketflow\n\nPocketFlow workflow adapter for Kindling - capture node executions with intent and confidence.\n\n[![npm version](https://img.shields.io/npm/v/@eddacraft/kindling-adapter-pocketflow.svg)](https://www.npmjs.com/package/@eddacraft/kindling-adapter-pocketflow)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](../../LICENSE)\n\n## Installation\n\n```bash\nnpm install @eddacraft/kindling-adapter-pocketflow\n```\n\n## Overview\n\n`@eddacraft/kindling-adapter-pocketflow` integrates Kindling with PocketFlow workflows:\n\n- **Node-Level Capsules** - Each node execution creates a capsule\n- **Automatic Capture** - Records `node_start`, `node_output`, `node_error`, `node_end` events\n- **Intent Inference** - Derives capsule intent from node names\n- **Confidence Tracking** - Records success/failure confidence\n\n## Usage\n\n### Node Adapter\n\n```typescript\nimport { NodeAdapter, NodeStatus } from '@eddacraft/kindling-adapter-pocketflow';\nimport { SqliteKindlingStore } from '@eddacraft/kindling-store-sqlite';\n\nconst store = new SqliteKindlingStore(db);\nconst adapter = new NodeAdapter({\n  store,\n  repoId: '/home/user/my-project',\n});\n\n// When a node starts\nadapter.onNodeStart({\n  node: { id: 'test-1', name: 'run-integration-tests' },\n  status: NodeStatus.Running,\n  input: { testPattern: '**/*.test.ts' },\n});\n\n// When a node produces output\nadapter.onNodeOutput({\n  node: { id: 'test-1', name: 'run-integration-tests' },\n  output: { passed: 42, failed: 0 },\n});\n\n// When a node ends\nadapter.onNodeEnd({\n  node: { id: 'test-1', name: 'run-integration-tests' },\n  status: NodeStatus.Success,\n  output: { passed: 42, failed: 0, duration: 3500 },\n});\n```\n\n### Flow Integration\n\n```typescript\nimport { KindlingFlow, KindlingNode } from '@eddacraft/kindling-adapter-pocketflow';\n\n// Extend KindlingNode for automatic capture\nclass MyTestNode extends KindlingNode {\n  async exec(input: TestInput): Promise<TestOutput> {\n    const results = await runTests(input.pattern);\n    return { passed: results.passed, failed: results.failed };\n  }\n}\n\n// Create a flow\nconst flow = new KindlingFlow({\n  store,\n  repoId: '/repo',\n});\n\nflow.addNode('test', new MyTestNode());\nflow.addNode('deploy', new DeployNode());\nflow.connect('test', 'deploy', 'success');\n\n// Run the flow (capsules created automatically)\nawait flow.run({ pattern: '**/*.test.ts' });\n```\n\n## Captured Events\n\n| Event         | When                  | Content                        |\n| ------------- | --------------------- | ------------------------------ |\n| `node_start`  | Node begins execution | Node ID, name, input           |\n| `node_output` | Node produces output  | Output data                    |\n| `node_error`  | Node throws error     | Error message, stack           |\n| `node_end`    | Node completes        | Final status, output, duration |\n\n## Intent Inference\n\nNode names are parsed to infer capsule intent:\n\n| Node Name           | Inferred Intent |\n| ------------------- | --------------- |\n| `run-tests`         | `test`          |\n| `build-app`         | `build`         |\n| `deploy-production` | `deploy`        |\n| `fix-auth-bug`      | `debug`         |\n| `implement-feature` | `implement`     |\n\n## Confidence Scoring\n\nConfidence is tracked based on node success/failure history:\n\n```typescript\n// First run: neutral confidence\n{\n  confidence: 0.5;\n}\n\n// Consistent success: higher confidence\n{\n  confidence: 0.85;\n}\n\n// Recent failures: lower confidence\n{\n  confidence: 0.3;\n}\n```\n\n## Configuration\n\n```typescript\ninterface NodeAdapterOptions {\n  store: KindlingStore;\n  repoId: string;\n  agentId?: string;\n  userId?: string;\n\n  // Intent inference\n  intentMapping?: Record<string, string>;\n\n  // Confidence tracking\n  confidenceWindow?: number; // Default: 10 runs\n}\n```\n\n## PocketFlow Concepts\n\nPocketFlow is a minimalist workflow framework:\n\n- **Node** - `prep -> exec -> post` lifecycle\n- **Flow** - Orchestrates nodes via action-based transitions\n- **Shared Store** - Global state accessible by all nodes\n- **BatchNode/BatchFlow** - Process arrays of items\n\nSee the [PocketFlow documentation](./vendor/pocketflow/docs/) for details.\n\n## Related Packages\n\n- [`@eddacraft/kindling-core`](../kindling-core) - Domain types and capsule lifecycle\n- [`@eddacraft/kindling-store-sqlite`](../kindling-store-sqlite) - SQLite persistence\n- [`@eddacraft/kindling-adapter-opencode`](../kindling-adapter-opencode) - OpenCode session adapter\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}