{"id":"@lssm-tech/integration.workflow-devkit","slug":"integration.workflow-devkit","name":"@lssm-tech/integration.workflow-devkit","version":"2.0.6","path":"packages/integrations/workflow-devkit","manifestPath":"packages/integrations/workflow-devkit/package.json","manifestBlobSha":"80feb7dfbe509b56f739b944bea8f4878727e19e","layer":"integrations","physicalArea":null,"primaryArea":"workflows-and-automation","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Workflow DevKit compiler and runtime bridges for ContractSpec workflows","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./agent-adapter","./chat-routes","./compiler","./effect-replay","./helpers","./integration","./next","./runtime","./types"],"documentation":[{"title":"Integration Workflow Devkit documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.workflow-devkit","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.integration.workflow.devkit","title":"Integration Workflow Devkit","description":"Workflow DevKit compiler and runtime bridges for ContractSpec workflows","status":"active","useCases":["Adopt workflow devkit compiler and runtime bridges for contractspec workflows"],"aliases":["contractspec","workflow","workflow-devkit","durable","typescript","integration","devkit"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/integration.workflow-devkit","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/agent-adapter","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/chat-routes","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/compiler","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/effect-replay","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/helpers","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/integration","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/next","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/runtime","symbols":[]},{"from":"@lssm-tech/integration.workflow-devkit/types","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/integration.workflow-devkit package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/agent-adapter","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/chat-routes","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/compiler","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/effect-replay","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/helpers","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/integration","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/next","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/runtime","symbols":[]},{"capabilityId":"package.lssm.tech.integration.workflow.devkit","from":"@lssm-tech/integration.workflow-devkit/types","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun lint:fix","lint:fix":"node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .","lint:check":"node ../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.ai-agent":"workspace:^","@lssm-tech/lib.orchestration-spec":"workspace:^","@lssm-tech/lib.workflow-composer":"workspace:^","@workflow/ai":"^4.2.1","ai":"^6.0.286","workflow":"^4.8.9","@lssm-tech/lib.contracts-integrations":"workspace:^","@lssm-tech/lib.schema":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./agent-adapter":"./src/agent-adapter.ts","./chat-routes":"./src/chat-routes.ts","./compiler":"./src/compiler.ts","./effect-replay":"./src/effect-replay.ts","./helpers":"./src/helpers.ts","./integration":"./src/integration.ts","./next":"./src/next.ts","./runtime":"./src/runtime.ts","./types":"./src/types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./agent-adapter":{"types":"./dist/agent-adapter.d.ts","browser":"./dist/browser/agent-adapter.js","bun":"./dist/agent-adapter.js","node":"./dist/node/agent-adapter.js","default":"./dist/agent-adapter.js"},"./chat-routes":{"types":"./dist/chat-routes.d.ts","browser":"./dist/browser/chat-routes.js","bun":"./dist/chat-routes.js","node":"./dist/node/chat-routes.js","default":"./dist/chat-routes.js"},"./compiler":{"types":"./dist/compiler.d.ts","browser":"./dist/browser/compiler.js","bun":"./dist/compiler.js","node":"./dist/node/compiler.js","default":"./dist/compiler.js"},"./effect-replay":{"types":"./dist/effect-replay.d.ts","browser":"./dist/browser/effect-replay.js","bun":"./dist/effect-replay.js","node":"./dist/node/effect-replay.js","default":"./dist/effect-replay.js"},"./helpers":{"types":"./dist/helpers.d.ts","browser":"./dist/browser/helpers.js","bun":"./dist/helpers.js","node":"./dist/node/helpers.js","default":"./dist/helpers.js"},"./integration":{"types":"./dist/integration.d.ts","browser":"./dist/browser/integration.js","bun":"./dist/integration.js","node":"./dist/node/integration.js","default":"./dist/integration.js"},"./next":{"types":"./dist/next.d.ts","browser":"./dist/browser/next.js","bun":"./dist/next.js","node":"./dist/node/next.js","default":"./dist/next.js"},"./runtime":{"types":"./dist/runtime.d.ts","browser":"./dist/browser/runtime.js","bun":"./dist/runtime.js","node":"./dist/node/runtime.js","default":"./dist/runtime.js"},"./types":{"types":"./dist/types.d.ts","browser":"./dist/browser/types.js","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.workflow-devkit","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/workflow-devkit/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./agent-adapter","importPath":"@lssm-tech/integration.workflow-devkit/agent-adapter","target":"./src/agent-adapter.ts","targets":[{"conditions":[],"target":"./src/agent-adapter.ts","sourcePath":"packages/integrations/workflow-devkit/src/agent-adapter.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/agent-adapter.ts","sourceStatus":"verified source file"}]},{"subpath":"./chat-routes","importPath":"@lssm-tech/integration.workflow-devkit/chat-routes","target":"./src/chat-routes.ts","targets":[{"conditions":[],"target":"./src/chat-routes.ts","sourcePath":"packages/integrations/workflow-devkit/src/chat-routes.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/chat-routes.ts","sourceStatus":"verified source file"}]},{"subpath":"./compiler","importPath":"@lssm-tech/integration.workflow-devkit/compiler","target":"./src/compiler.ts","targets":[{"conditions":[],"target":"./src/compiler.ts","sourcePath":"packages/integrations/workflow-devkit/src/compiler.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/compiler.ts","sourceStatus":"verified source file"}]},{"subpath":"./effect-replay","importPath":"@lssm-tech/integration.workflow-devkit/effect-replay","target":"./src/effect-replay.ts","targets":[{"conditions":[],"target":"./src/effect-replay.ts","sourcePath":"packages/integrations/workflow-devkit/src/effect-replay.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/effect-replay.ts","sourceStatus":"verified source file"}]},{"subpath":"./helpers","importPath":"@lssm-tech/integration.workflow-devkit/helpers","target":"./src/helpers.ts","targets":[{"conditions":[],"target":"./src/helpers.ts","sourcePath":"packages/integrations/workflow-devkit/src/helpers.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/helpers.ts","sourceStatus":"verified source file"}]},{"subpath":"./integration","importPath":"@lssm-tech/integration.workflow-devkit/integration","target":"./src/integration.ts","targets":[{"conditions":[],"target":"./src/integration.ts","sourcePath":"packages/integrations/workflow-devkit/src/integration.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/integration.ts","sourceStatus":"verified source file"}]},{"subpath":"./next","importPath":"@lssm-tech/integration.workflow-devkit/next","target":"./src/next.ts","targets":[{"conditions":[],"target":"./src/next.ts","sourcePath":"packages/integrations/workflow-devkit/src/next.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/next.ts","sourceStatus":"verified source file"}]},{"subpath":"./runtime","importPath":"@lssm-tech/integration.workflow-devkit/runtime","target":"./src/runtime.ts","targets":[{"conditions":[],"target":"./src/runtime.ts","sourcePath":"packages/integrations/workflow-devkit/src/runtime.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/runtime.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/integration.workflow-devkit/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/integrations/workflow-devkit/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/src/types.ts","sourceStatus":"verified source file"}]}],"entryCount":10,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Integration Workflow Devkit documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.workflow-devkit","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.workflow-devkit.txt"},"readme":{"status":"available","body":"# @lssm-tech/integration.workflow-devkit\n\nWorkflow DevKit compiler and runtime bridges for ContractSpec `WorkflowSpec`.\n\n## What it provides\n\n- Compile a `WorkflowSpec` into a deterministic Workflow DevKit manifest.\n- Generate Workflow, Next.js, and generic-host scaffolding.\n- Run a `WorkflowSpec` through injected Workflow DevKit primitives such as `sleep`, hooks, and webhooks.\n- Create a Workflow-backed `AgentRuntimeAdapterBundle` for `@lssm-tech/lib.ai-agent`.\n- Expose chat route helpers and re-export `WorkflowChatTransport` for reconnectable chat UIs.\n\n## Entry points\n\n- `@lssm-tech/integration.workflow-devkit`\n- `@lssm-tech/integration.workflow-devkit/compiler`\n- `@lssm-tech/integration.workflow-devkit/runtime`\n- `@lssm-tech/integration.workflow-devkit/chat-routes`\n- `@lssm-tech/integration.workflow-devkit/agent-adapter`\n- `@lssm-tech/integration.workflow-devkit/next`\n\n## Workflow vs step boundary\n\nWorkflow DevKit code runs across two different execution contexts:\n\n- Workflow functions (`\"use workflow\"`) orchestrate control flow and must stay deterministic.\n- Step functions (`\"use step\"`) perform the actual Node.js work.\n\nThis matches the Workflow docs: workflow functions do not have full Node.js access, while step functions do. Keep Node.js core modules, SDK clients, database access, and other side effects inside `use step` helpers. The workflow function itself should only compose Workflow primitives and call step helpers.\n\nFor `WorkflowSpec` authoring in Workflow-hosted apps, import the safe authoring API from `@lssm-tech/lib.contracts-spec/workflow/spec`, not the broad `@lssm-tech/lib.contracts-spec/workflow` barrel.\n\n## Next.js example\n\n```ts\nimport { withContractSpecWorkflow } from \"@lssm-tech/integration.workflow-devkit/next\";\nimport { createWorkflowChatRoutes } from \"@lssm-tech/module.ai-chat/core/workflow\";\n\nexport default withContractSpecWorkflow({\n  experimental: {},\n});\n\nconst routes = createWorkflowChatRoutes({\n  workflow: async (payload) => payload,\n  getFollowUpToken({ runId }) {\n    return `chat:${runId}`;\n  },\n});\n\nexport const POST = routes.start;\n```\n\n## Generic host example\n\n```ts\nimport { createHook, createWebhook, sleep } from \"workflow\";\nimport {\n  runWorkflowSpecWithWorkflowDevkit,\n  type WorkflowDevkitRuntimeBridge,\n} from \"@lssm-tech/integration.workflow-devkit\";\nimport { onboardingWorkflow } from \"./onboarding.workflow\";\n\nexport async function runOnboarding(input: Record<string, unknown>, bridge: WorkflowDevkitRuntimeBridge) {\n  \"use workflow\";\n\n  // Keep this function deterministic. Node.js work belongs in `use step`\n  // helpers that your bridge dispatches to.\n  return runWorkflowSpecWithWorkflowDevkit({\n    spec: onboardingWorkflow,\n    initialData: input,\n    bridge,\n    primitives: {\n      sleep,\n      createHook,\n      createWebhook,\n    },\n  });\n}\n```\n","sourcePath":"packages/integrations/workflow-devkit/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/workflow-devkit/README.md","blobSha":"6e1bb34a1f45c3b28079eb32d59161c39c80875c","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"workflows-and-automation","areaTitle":"Workflows, jobs and automation","displayName":"integration.workflow-devkit","runtimes":["node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.workflow-devkit/","contextUrl":"/docs/packages/integration.workflow-devkit.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}