workflow 5.0.0-beta.0 → 5.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +4 -4
  2. package/dist/api-workflow.d.ts +1 -3
  3. package/dist/api-workflow.d.ts.map +1 -1
  4. package/dist/api-workflow.js +2 -6
  5. package/dist/api.js +1 -1
  6. package/dist/astro.js +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/internal/builtins.js +1 -1
  9. package/dist/internal/class-serialization.js +1 -1
  10. package/dist/internal/errors.js +1 -1
  11. package/dist/nest.js +1 -1
  12. package/dist/next.cjs +4 -2
  13. package/dist/next.d.cts +1 -1
  14. package/dist/next.d.cts.map +1 -1
  15. package/dist/nitro.js +1 -1
  16. package/dist/nuxt.js +1 -1
  17. package/dist/observability.d.ts +1 -1
  18. package/dist/observability.js +2 -2
  19. package/dist/runtime.js +1 -1
  20. package/dist/stdlib.js +1 -1
  21. package/dist/sveltekit.js +1 -1
  22. package/dist/typescript-plugin.cjs +1 -1
  23. package/dist/vite.js +1 -1
  24. package/dist/workflow.js +1 -1
  25. package/docs/ai/resumable-streams.mdx +1 -1
  26. package/docs/api-reference/workflow/create-webhook.mdx +37 -18
  27. package/docs/api-reference/workflow/get-workflow-metadata.mdx +61 -0
  28. package/docs/api-reference/workflow-ai/durable-agent.mdx +0 -4
  29. package/docs/api-reference/workflow-ai/index.mdx +0 -5
  30. package/docs/api-reference/workflow-ai/workflow-chat-transport.mdx +0 -4
  31. package/docs/api-reference/workflow-api/get-world.mdx +6 -6
  32. package/docs/api-reference/workflow-api/index.mdx +1 -1
  33. package/docs/api-reference/workflow-api/world/index.mdx +2 -2
  34. package/docs/api-reference/workflow-api/world/observability.mdx +1 -1
  35. package/docs/api-reference/workflow-api/world/queue.mdx +1 -1
  36. package/docs/api-reference/workflow-api/world/storage.mdx +8 -8
  37. package/docs/api-reference/workflow-api/world/streams.mdx +38 -36
  38. package/docs/cookbook/advanced/custom-serialization.mdx +168 -0
  39. package/docs/cookbook/advanced/durable-objects.mdx +148 -0
  40. package/docs/cookbook/advanced/isomorphic-packages.mdx +145 -0
  41. package/docs/cookbook/advanced/meta.json +10 -0
  42. package/docs/cookbook/advanced/publishing-libraries.mdx +279 -0
  43. package/docs/cookbook/advanced/serializable-steps.mdx +135 -0
  44. package/docs/cookbook/agent-patterns/durable-agent.mdx +191 -0
  45. package/docs/cookbook/agent-patterns/human-in-the-loop.mdx +278 -0
  46. package/docs/cookbook/agent-patterns/meta.json +10 -0
  47. package/docs/cookbook/agent-patterns/stop-workflow.mdx +216 -0
  48. package/docs/cookbook/agent-patterns/tool-orchestration.mdx +255 -0
  49. package/docs/cookbook/agent-patterns/tool-streaming.mdx +181 -0
  50. package/docs/cookbook/common-patterns/batching.mdx +179 -0
  51. package/docs/cookbook/common-patterns/child-workflows.mdx +372 -0
  52. package/docs/cookbook/common-patterns/content-router.mdx +207 -0
  53. package/docs/cookbook/common-patterns/fan-out.mdx +208 -0
  54. package/docs/cookbook/common-patterns/idempotency.mdx +107 -0
  55. package/docs/cookbook/common-patterns/meta.json +15 -0
  56. package/docs/cookbook/common-patterns/rate-limiting.mdx +228 -0
  57. package/docs/cookbook/common-patterns/saga.mdx +152 -0
  58. package/docs/cookbook/common-patterns/scheduling.mdx +249 -0
  59. package/docs/cookbook/common-patterns/webhooks.mdx +185 -0
  60. package/docs/cookbook/index.mdx +41 -0
  61. package/docs/cookbook/integrations/ai-sdk.mdx +204 -0
  62. package/docs/cookbook/integrations/chat-sdk.mdx +203 -0
  63. package/docs/cookbook/integrations/meta.json +4 -0
  64. package/docs/cookbook/integrations/sandbox.mdx +128 -0
  65. package/docs/cookbook/meta.json +5 -0
  66. package/docs/deploying/building-a-world.mdx +45 -43
  67. package/docs/deploying/world/local-world.mdx +1 -1
  68. package/docs/deploying/world/postgres-world.mdx +10 -5
  69. package/docs/deploying/world/vercel-world.mdx +1 -1
  70. package/docs/errors/start-invalid-workflow-function.mdx +1 -1
  71. package/docs/getting-started/index.mdx +8 -1
  72. package/docs/getting-started/meta.json +2 -1
  73. package/docs/getting-started/next.mdx +24 -0
  74. package/docs/getting-started/python.mdx +165 -0
  75. package/docs/how-it-works/code-transform.mdx +6 -5
  76. package/docs/meta.json +1 -0
  77. package/docs/migration-guides/index.mdx +34 -0
  78. package/docs/migration-guides/meta.json +9 -0
  79. package/docs/migration-guides/migrating-from-aws-step-functions.mdx +311 -0
  80. package/docs/migration-guides/migrating-from-inngest.mdx +282 -0
  81. package/docs/migration-guides/migrating-from-temporal.mdx +284 -0
  82. package/docs/migration-guides/migrating-from-trigger-dev.mdx +296 -0
  83. package/package.json +13 -14
  84. package/dist/internal/private.d.ts +0 -6
  85. package/dist/internal/private.d.ts.map +0 -1
  86. package/dist/internal/private.js +0 -6
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  <div align="center">
2
- <a href="https://useworkflow.dev">
2
+ <a href="https://workflow-sdk.dev">
3
3
  <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset="https://useworkflow.dev/workflow-circle-symbol-dark.svg">
5
- <img alt="Workflow SDK logo" src="https://useworkflow.dev/workflow-circle-symbol-light.svg" height="128">
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://workflow-sdk.dev/workflow-circle-symbol-dark.svg">
5
+ <img alt="Workflow SDK logo" src="https://workflow-sdk.dev/workflow-circle-symbol-light.svg" height="128">
6
6
  </picture>
7
7
  </a>
8
8
  <h1>Workflow SDK</h1>
@@ -18,7 +18,7 @@
18
18
 
19
19
  The **Workflow SDK** lets you easily add durability, reliability, and observability to async JavaScript. Build apps and AI agents that can suspend, resume, and maintain state with ease.
20
20
 
21
- Visit [https://useworkflow.dev](https://useworkflow.dev) to view the full documentation.
21
+ Visit [https://workflow-sdk.dev](https://workflow-sdk.dev) to view the full documentation.
22
22
 
23
23
  ## Community
24
24
 
@@ -1,7 +1,5 @@
1
1
  export type { Event, StartOptions, StopSleepOptions, StopSleepResult, WorkflowReadableStreamOptions, WorkflowRun, } from '@workflow/core/runtime';
2
- export declare class Run {
3
- constructor();
4
- }
2
+ export { Run } from '@workflow/core/runtime/run';
5
3
  export declare const getRun: () => never;
6
4
  export declare const getHookByToken: () => never;
7
5
  export declare const resumeHook: () => never;
@@ -1 +1 @@
1
- {"version":3,"file":"api-workflow.d.ts","sourceRoot":"","sources":["../src/api-workflow.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAC7B,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAQhC,qBAAa,GAAG;;CAIf;AACD,eAAO,MAAM,MAAM,aAA+B,CAAC;AACnD,eAAO,MAAM,cAAc,aAAuC,CAAC;AACnE,eAAO,MAAM,UAAU,aAAmC,CAAC;AAC3D,eAAO,MAAM,aAAa,aAAsC,CAAC;AACjE,eAAO,MAAM,OAAO,aAAgC,CAAC;AACrD,eAAO,MAAM,KAAK,aAA8B,CAAC"}
1
+ {"version":3,"file":"api-workflow.d.ts","sourceRoot":"","sources":["../src/api-workflow.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAC7B,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAQjD,eAAO,MAAM,MAAM,aAA+B,CAAC;AACnD,eAAO,MAAM,cAAc,aAAuC,CAAC;AACnE,eAAO,MAAM,UAAU,aAAmC,CAAC;AAC3D,eAAO,MAAM,aAAa,aAAsC,CAAC;AACjE,eAAO,MAAM,OAAO,aAAgC,CAAC;AACrD,eAAO,MAAM,KAAK,aAA8B,CAAC"}
@@ -1,15 +1,11 @@
1
+ export { Run } from '@workflow/core/runtime/run';
1
2
  const workflowStub = (item) => {
2
3
  throw new Error(`The workflow environment doesn't allow this runtime usage of ${item}. Move this call to a step function ("use step") or call it outside the workflow context.`);
3
4
  };
4
- export class Run {
5
- constructor() {
6
- workflowStub('Run');
7
- }
8
- }
9
5
  export const getRun = () => workflowStub('getRun');
10
6
  export const getHookByToken = () => workflowStub('getHookByToken');
11
7
  export const resumeHook = () => workflowStub('resumeHook');
12
8
  export const resumeWebhook = () => workflowStub('resumeWebhook');
13
9
  export const runStep = () => workflowStub('runStep');
14
10
  export const start = () => workflowStub('start');
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFLElBQUksMkZBQTJGLENBQ2hLLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNkO1FBQ0UsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUNELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUNwQyxNQUFNLElBQUksS0FBSyxDQUNiLGdFQUFnRSxJQUFJLDJGQUEyRixDQUNoSyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHtcbiAgRXZlbnQsXG4gIFN0YXJ0T3B0aW9ucyxcbiAgU3RvcFNsZWVwT3B0aW9ucyxcbiAgU3RvcFNsZWVwUmVzdWx0LFxuICBXb3JrZmxvd1JlYWRhYmxlU3RyZWFtT3B0aW9ucyxcbiAgV29ya2Zsb3dSdW4sXG59IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3J1bnRpbWUnO1xuXG5leHBvcnQgeyBSdW4gfSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lL3J1bic7XG5cbmNvbnN0IHdvcmtmbG93U3R1YiA9IChpdGVtOiBzdHJpbmcpID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBUaGUgd29ya2Zsb3cgZW52aXJvbm1lbnQgZG9lc24ndCBhbGxvdyB0aGlzIHJ1bnRpbWUgdXNhZ2Ugb2YgJHtpdGVtfS4gTW92ZSB0aGlzIGNhbGwgdG8gYSBzdGVwIGZ1bmN0aW9uIChcInVzZSBzdGVwXCIpIG9yIGNhbGwgaXQgb3V0c2lkZSB0aGUgd29ya2Zsb3cgY29udGV4dC5gXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UnVuID0gKCkgPT4gd29ya2Zsb3dTdHViKCdnZXRSdW4nKTtcbmV4cG9ydCBjb25zdCBnZXRIb29rQnlUb2tlbiA9ICgpID0+IHdvcmtmbG93U3R1YignZ2V0SG9va0J5VG9rZW4nKTtcbmV4cG9ydCBjb25zdCByZXN1bWVIb29rID0gKCkgPT4gd29ya2Zsb3dTdHViKCdyZXN1bWVIb29rJyk7XG5leHBvcnQgY29uc3QgcmVzdW1lV2ViaG9vayA9ICgpID0+IHdvcmtmbG93U3R1YigncmVzdW1lV2ViaG9vaycpO1xuZXhwb3J0IGNvbnN0IHJ1blN0ZXAgPSAoKSA9PiB3b3JrZmxvd1N0dWIoJ3J1blN0ZXAnKTtcbmV4cG9ydCBjb25zdCBzdGFydCA9ICgpID0+IHdvcmtmbG93U3R1Yignc3RhcnQnKTtcbiJdfQ==
package/dist/api.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export { getHookByToken, getRun, Run, resumeHook, resumeWebhook, runStep, start, } from '@workflow/core/runtime';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsY0FBYyxFQUNkLE1BQU0sRUFDTixHQUFHLEVBQ0gsVUFBVSxFQUNWLGFBQWEsRUFDYixPQUFPLEVBRVAsS0FBSyxHQU1OLE1BQU0sd0JBQXdCLENBQUMifQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsY0FBYyxFQUNkLE1BQU0sRUFDTixHQUFHLEVBQ0gsVUFBVSxFQUNWLGFBQWEsRUFDYixPQUFPLEVBRVAsS0FBSyxHQU1OLE1BQU0sd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICB0eXBlIEV2ZW50LFxuICBnZXRIb29rQnlUb2tlbixcbiAgZ2V0UnVuLFxuICBSdW4sXG4gIHJlc3VtZUhvb2ssXG4gIHJlc3VtZVdlYmhvb2ssXG4gIHJ1blN0ZXAsXG4gIHR5cGUgU3RhcnRPcHRpb25zLFxuICBzdGFydCxcbiAgdHlwZSBTdG9wU2xlZXBPcHRpb25zLFxuICB0eXBlIFN0b3BTbGVlcFJlc3VsdCxcbiAgdHlwZSBXb3JrZmxvd1JlYWRhYmxlU3RyZWFtLFxuICB0eXBlIFdvcmtmbG93UmVhZGFibGVTdHJlYW1PcHRpb25zLFxuICB0eXBlIFdvcmtmbG93UnVuLFxufSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lJztcbiJdfQ==
package/dist/astro.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from '@workflow/astro';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0cm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXN0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyJ9
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0cm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXN0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B3b3JrZmxvdy9hc3Rybyc7XG4iXX0=
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from '@workflow/core';
2
2
  export * from './stdlib.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQyJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B3b3JrZmxvdy9jb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RkbGliLmpzJztcbiJdfQ==
@@ -15,4 +15,4 @@ export async function __builtin_response_text() {
15
15
  'use step';
16
16
  return this.text();
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvYnVpbHRpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE1BQU0sQ0FBQyxLQUFLLFVBQVUsK0JBQStCO0lBR25ELFVBQVUsQ0FBQztJQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QjtJQUMzQyxVQUFVLENBQUM7SUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx1QkFBdUI7SUFDM0MsVUFBVSxDQUFDO0lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckIsQ0FBQyJ9
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvYnVpbHRpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE1BQU0sQ0FBQyxLQUFLLFVBQVUsK0JBQStCO0lBR25ELFVBQVUsQ0FBQztJQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QjtJQUMzQyxVQUFVLENBQUM7SUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx1QkFBdUI7SUFDM0MsVUFBVSxDQUFDO0lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlc2UgYXJlIHRoZSBidWlsdC1pbiBzdGVwcyB0aGF0IGFyZSBcImF1dG9tYXRpY2FsbHkgYXZhaWxhYmxlXCIgaW4gdGhlIHdvcmtmbG93IHNjb3BlLiBUaGV5IGFyZVxuICogc2ltaWxhciB0byBcInN0ZGxpYlwiIGV4Y2VwdCB0aGF0IGFyZSBub3QgbWVhbnQgdG8gYmUgaW1wb3J0ZWQgYnkgdXNlcnMsIGJ1dCBhcmUgaW5zdGVhZCBcImp1c3QgYXZhaWxhYmxlXCJcbiAqIGFsb25nc2lkZSB1c2VyIGRlZmluZWQgc3RlcHMuIFRoZXkgYXJlIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgcnVudGltZVxuICovXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfX2J1aWx0aW5fcmVzcG9uc2VfYXJyYXlfYnVmZmVyKFxuICB0aGlzOiBSZXF1ZXN0IHwgUmVzcG9uc2Vcbikge1xuICAndXNlIHN0ZXAnO1xuICByZXR1cm4gdGhpcy5hcnJheUJ1ZmZlcigpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gX19idWlsdGluX3Jlc3BvbnNlX2pzb24odGhpczogUmVxdWVzdCB8IFJlc3BvbnNlKSB7XG4gICd1c2Ugc3RlcCc7XG4gIHJldHVybiB0aGlzLmpzb24oKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIF9fYnVpbHRpbl9yZXNwb25zZV90ZXh0KHRoaXM6IFJlcXVlc3QgfCBSZXNwb25zZSkge1xuICAndXNlIHN0ZXAnO1xuICByZXR1cm4gdGhpcy50ZXh0KCk7XG59XG4iXX0=
@@ -5,4 +5,4 @@
5
5
  * dependencies (like async_hooks) when used in workflow bundles.
6
6
  */
7
7
  export * from '@workflow/core/class-serialization';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Mtc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9jbGFzcy1zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsY0FBYyxvQ0FBb0MsQ0FBQyJ9
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Mtc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9jbGFzcy1zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhc3Mgc2VyaWFsaXphdGlvbiB1dGlsaXRpZXMgZm9yIHRoZSB3b3JrZmxvdyBjb21waWxlci5cbiAqXG4gKiBUaGlzIG1vZHVsZSBpcyBzZXBhcmF0ZSBmcm9tIHByaXZhdGUudHMgdG8gYXZvaWQgcHVsbGluZyBpbiBOb2RlLmpzLW9ubHlcbiAqIGRlcGVuZGVuY2llcyAobGlrZSBhc3luY19ob29rcykgd2hlbiB1c2VkIGluIHdvcmtmbG93IGJ1bmRsZXMuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnQHdvcmtmbG93L2NvcmUvY2xhc3Mtc2VyaWFsaXphdGlvbic7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export { EntityConflictError, HookConflictError, HookNotFoundError, RunExpiredError, RunNotSupportedError, StepNotRegisteredError, ThrottleError, TooEarlyError, WorkflowError, WorkflowNotRegisteredError, WorkflowRunCancelledError, WorkflowRunFailedError, WorkflowRunNotCompletedError, WorkflowRunNotFoundError, WorkflowRuntimeError, WorkflowWorldError, } from '@workflow/errors';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sa0JBQWtCLENBQUMifQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBFbnRpdHlDb25mbGljdEVycm9yLFxuICBIb29rQ29uZmxpY3RFcnJvcixcbiAgSG9va05vdEZvdW5kRXJyb3IsXG4gIFJ1bkV4cGlyZWRFcnJvcixcbiAgUnVuTm90U3VwcG9ydGVkRXJyb3IsXG4gIFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3IsXG4gIFRocm90dGxlRXJyb3IsXG4gIFRvb0Vhcmx5RXJyb3IsXG4gIFdvcmtmbG93RXJyb3IsXG4gIFdvcmtmbG93Tm90UmVnaXN0ZXJlZEVycm9yLFxuICBXb3JrZmxvd1J1bkNhbmNlbGxlZEVycm9yLFxuICBXb3JrZmxvd1J1bkZhaWxlZEVycm9yLFxuICBXb3JrZmxvd1J1bk5vdENvbXBsZXRlZEVycm9yLFxuICBXb3JrZmxvd1J1bk5vdEZvdW5kRXJyb3IsXG4gIFdvcmtmbG93UnVudGltZUVycm9yLFxuICBXb3JrZmxvd1dvcmxkRXJyb3IsXG59IGZyb20gJ0B3b3JrZmxvdy9lcnJvcnMnO1xuIl19
package/dist/nest.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from '@workflow/nest';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUMifQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAd29ya2Zsb3cvbmVzdCc7XG4iXX0=
package/dist/next.cjs CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withWorkflow = void 0;
2
4
  // The Next.js plugin needs to support CommonJS usage since
3
5
  // `next.config.js` using CommonJS syntax is still common.
4
6
  const nextPlugin = require("@workflow/next");
5
- module.exports = nextPlugin;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV4dC5jdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJEQUEyRDtBQUMzRCwwREFBMEQ7QUFDMUQsNkNBQThDO0FBQzlDLGlCQUFTLFVBQVUsQ0FBQyJ9
7
+ exports.withWorkflow = nextPlugin.withWorkflow;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV4dC5jdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQTJEO0FBQzNELDBEQUEwRDtBQUMxRCw2Q0FBOEM7QUFDakMsUUFBQSxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBOZXh0LmpzIHBsdWdpbiBuZWVkcyB0byBzdXBwb3J0IENvbW1vbkpTIHVzYWdlIHNpbmNlXG4vLyBgbmV4dC5jb25maWcuanNgIHVzaW5nIENvbW1vbkpTIHN5bnRheCBpcyBzdGlsbCBjb21tb24uXG5pbXBvcnQgbmV4dFBsdWdpbiA9IHJlcXVpcmUoJ0B3b3JrZmxvdy9uZXh0Jyk7XG5leHBvcnQgY29uc3Qgd2l0aFdvcmtmbG93ID0gbmV4dFBsdWdpbi53aXRoV29ya2Zsb3c7XG4iXX0=
package/dist/next.d.cts CHANGED
@@ -1,3 +1,3 @@
1
1
  import nextPlugin = require('@workflow/next');
2
- export = nextPlugin;
2
+ export declare const withWorkflow: typeof nextPlugin.withWorkflow;
3
3
  //# sourceMappingURL=next.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"next.d.cts","sourceRoot":"","sources":["../src/next.cts"],"names":[],"mappings":"AAEA,OAAO,UAAU,GAAG,QAAQ,gBAAgB,CAAC,CAAC;AAC9C,SAAS,UAAU,CAAC"}
1
+ {"version":3,"file":"next.d.cts","sourceRoot":"","sources":["../src/next.cts"],"names":[],"mappings":"AAEA,OAAO,UAAU,GAAG,QAAQ,gBAAgB,CAAC,CAAC;AAC9C,eAAO,MAAM,YAAY,gCAA0B,CAAC"}
package/dist/nitro.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import workflowNitro from '@workflow/nitro';
2
2
  export * from '@workflow/nitro';
3
3
  export default workflowNitro;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibml0cm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbml0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxlQUFlLGFBQWEsQ0FBQyJ9
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibml0cm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbml0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxlQUFlLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB3b3JrZmxvd05pdHJvIGZyb20gJ0B3b3JrZmxvdy9uaXRybyc7XG5cbmV4cG9ydCAqIGZyb20gJ0B3b3JrZmxvdy9uaXRybyc7XG5leHBvcnQgZGVmYXVsdCB3b3JrZmxvd05pdHJvO1xuIl19
package/dist/nuxt.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import workflowNuxt from '@workflow/nuxt';
2
2
  export * from '@workflow/nuxt';
3
3
  export default workflowNuxt;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9udXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsZUFBZSxZQUFZLENBQUMifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9udXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsZUFBZSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgd29ya2Zsb3dOdXh0IGZyb20gJ0B3b3JrZmxvdy9udXh0JztcblxuZXhwb3J0ICogZnJvbSAnQHdvcmtmbG93L251eHQnO1xuZXhwb3J0IGRlZmF1bHQgd29ya2Zsb3dOdXh0O1xuIl19
@@ -9,7 +9,7 @@
9
9
  * import { getWorld } from 'workflow/api';
10
10
  * import { hydrateResourceIO, observabilityRevivers } from 'workflow/observability';
11
11
  *
12
- * const world = getWorld();
12
+ * const world = await getWorld();
13
13
  * const step = await world.steps.get(runId, stepId, { resolveData: 'all' });
14
14
  * const hydrated = hydrateResourceIO(step, observabilityRevivers);
15
15
  * // hydrated.input and hydrated.output are now plain JS objects
@@ -9,7 +9,7 @@
9
9
  * import { getWorld } from 'workflow/api';
10
10
  * import { hydrateResourceIO, observabilityRevivers } from 'workflow/observability';
11
11
  *
12
- * const world = getWorld();
12
+ * const world = await getWorld();
13
13
  * const step = await world.steps.get(runId, stepId, { resolveData: 'all' });
14
14
  * const hydrated = hydrateResourceIO(step, observabilityRevivers);
15
15
  * // hydrated.input and hydrated.output are now plain JS objects
@@ -17,4 +17,4 @@
17
17
  */
18
18
  export { hydrateData, hydrateResourceIO, observabilityRevivers, } from '@workflow/core/serialization-format';
19
19
  export { parseClassName, parseStepName, parseWorkflowName, } from '@workflow/utils';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIscUJBQXFCLEdBRXRCLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0saUJBQWlCLENBQUMifQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIscUJBQXFCLEdBRXRCLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9ic2VydmFiaWxpdHkgdXRpbGl0aWVzIGZvciBoeWRyYXRpbmcgc2VyaWFsaXplZCB3b3JrZmxvdyBkYXRhLlxuICpcbiAqIFVzZSB0aGVzZSB3aGVuIGluc3BlY3Rpbmcgd29ya2Zsb3cgc3RlcCBJL08sIHJ1biBpbnB1dHMvb3V0cHV0cyxcbiAqIG9yIGV2ZW50IGRhdGEgZnJvbSB0aGUgV29ya2Zsb3cgU0RLJ3Mgd29ybGQgQVBJcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IGdldFdvcmxkIH0gZnJvbSAnd29ya2Zsb3cvYXBpJztcbiAqIGltcG9ydCB7IGh5ZHJhdGVSZXNvdXJjZUlPLCBvYnNlcnZhYmlsaXR5UmV2aXZlcnMgfSBmcm9tICd3b3JrZmxvdy9vYnNlcnZhYmlsaXR5JztcbiAqXG4gKiBjb25zdCB3b3JsZCA9IGF3YWl0IGdldFdvcmxkKCk7XG4gKiBjb25zdCBzdGVwID0gYXdhaXQgd29ybGQuc3RlcHMuZ2V0KHJ1bklkLCBzdGVwSWQsIHsgcmVzb2x2ZURhdGE6ICdhbGwnIH0pO1xuICogY29uc3QgaHlkcmF0ZWQgPSBoeWRyYXRlUmVzb3VyY2VJTyhzdGVwLCBvYnNlcnZhYmlsaXR5UmV2aXZlcnMpO1xuICogLy8gaHlkcmF0ZWQuaW5wdXQgYW5kIGh5ZHJhdGVkLm91dHB1dCBhcmUgbm93IHBsYWluIEpTIG9iamVjdHNcbiAqIGBgYFxuICovXG5leHBvcnQge1xuICBoeWRyYXRlRGF0YSxcbiAgaHlkcmF0ZVJlc291cmNlSU8sXG4gIG9ic2VydmFiaWxpdHlSZXZpdmVycyxcbiAgdHlwZSBSZXZpdmVycyxcbn0gZnJvbSAnQHdvcmtmbG93L2NvcmUvc2VyaWFsaXphdGlvbi1mb3JtYXQnO1xuXG5leHBvcnQge1xuICBwYXJzZUNsYXNzTmFtZSxcbiAgcGFyc2VTdGVwTmFtZSxcbiAgcGFyc2VXb3JrZmxvd05hbWUsXG59IGZyb20gJ0B3b3JrZmxvdy91dGlscyc7XG4iXX0=
package/dist/runtime.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export { createWorld, getWorld, getWorldHandlers, healthCheck, setWorld, stepEntrypoint, workflowEntrypoint, } from '@workflow/core/runtime';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixXQUFXLEVBSVgsUUFBUSxFQUNSLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQyJ9
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixXQUFXLEVBSVgsUUFBUSxFQUNSLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGNyZWF0ZVdvcmxkLFxuICBnZXRXb3JsZCxcbiAgZ2V0V29ybGRIYW5kbGVycyxcbiAgaGVhbHRoQ2hlY2ssXG4gIHR5cGUgSGVhbHRoQ2hlY2tFbmRwb2ludCxcbiAgdHlwZSBIZWFsdGhDaGVja09wdGlvbnMsXG4gIHR5cGUgSGVhbHRoQ2hlY2tSZXN1bHQsXG4gIHNldFdvcmxkLFxuICBzdGVwRW50cnlwb2ludCxcbiAgd29ya2Zsb3dFbnRyeXBvaW50LFxufSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lJztcbiJdfQ==
package/dist/stdlib.js CHANGED
@@ -14,4 +14,4 @@ export async function fetch(...args) {
14
14
  'use step';
15
15
  return globalThis.fetch(...args);
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RkbGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0ZGxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxLQUFLLENBQUMsR0FBRyxJQUF5QztJQUN0RSxVQUFVLENBQUM7SUFDWCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuQyxDQUFDIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RkbGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0ZGxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxLQUFLLENBQUMsR0FBRyxJQUF5QztJQUN0RSxVQUFVLENBQUM7SUFDWCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGlzIHRoZSBcInN0YW5kYXJkIGxpYnJhcnlcIiBvZiBzdGVwcyB0aGF0IHdlIG1ha2UgYXZhaWxhYmxlIHRvIGFsbCB3b3JrZmxvdyB1c2Vycy5cbiAqIFRoZSBjYW4gYmUgaW1wb3J0ZWQgbGlrZSBzbzogYGltcG9ydCB7IGZldGNoIH0gZnJvbSAnd29ya2Zsb3cnYC4gYW5kIHVzZWQgaW4gd29ya2Zsb3cuXG4gKiBUaGUgbmVlZCB0byBiZSBleHBvcnRlZCBkaXJlY3RseSBpbiB0aGlzIHBhY2thZ2UgYW5kIGNhbm5vdCBsaXZlIGluIGBjb3JlYCB0byBwcmV2ZW50XG4gKiBjaXJjdWxhciBkZXBlbmRlbmNpZXMgcG9zdC1jb21waWxhdGlvbi5cbiAqL1xuXG4vKipcbiAqIEEgaG9pc3RlZCBgZmV0Y2goKWAgZnVuY3Rpb24gdGhhdCBpcyBleGVjdXRlZCBhcyBhIFwic3RlcFwiIGZ1bmN0aW9uLFxuICogZm9yIHVzZSB3aXRoaW4gd29ya2Zsb3cgZnVuY3Rpb25zLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZldGNoX0FQSVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2goLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgZ2xvYmFsVGhpcy5mZXRjaD4pIHtcbiAgJ3VzZSBzdGVwJztcbiAgcmV0dXJuIGdsb2JhbFRoaXMuZmV0Y2goLi4uYXJncyk7XG59XG4iXX0=
package/dist/sveltekit.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from '@workflow/sveltekit';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZlbHRla2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N2ZWx0ZWtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZlbHRla2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N2ZWx0ZWtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnQHdvcmtmbG93L3N2ZWx0ZWtpdCc7XG4iXX0=
@@ -3,4 +3,4 @@
3
3
  // so we need to export the plugin as a CommonJS module
4
4
  const typescriptPlugin = require("@workflow/typescript-plugin");
5
5
  module.exports = typescriptPlugin;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1wbHVnaW4uY2pzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzY3JpcHQtcGx1Z2luLmN0cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0VBQWdFO0FBQ2hFLHVEQUF1RDtBQUN2RCxnRUFBaUU7QUFDakUsaUJBQVMsZ0JBQWdCLENBQUMifQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1wbHVnaW4uY2pzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzY3JpcHQtcGx1Z2luLmN0cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0VBQWdFO0FBQ2hFLHVEQUF1RDtBQUN2RCxnRUFBaUU7QUFDakUsaUJBQVMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUeXBlU2NyaXB0IHNlcnZlciBkb2VzIGByZXF1aXJlKHBsdWdpbk5hbWUpYCB0byBsb2FkIHBsdWdpbnMsXG4vLyBzbyB3ZSBuZWVkIHRvIGV4cG9ydCB0aGUgcGx1Z2luIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG5pbXBvcnQgdHlwZXNjcmlwdFBsdWdpbiA9IHJlcXVpcmUoJ0B3b3JrZmxvdy90eXBlc2NyaXB0LXBsdWdpbicpO1xuZXhwb3J0ID0gdHlwZXNjcmlwdFBsdWdpbjtcbiJdfQ==
package/dist/vite.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export { workflow } from '@workflow/nitro/vite';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyJ9
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHdvcmtmbG93IH0gZnJvbSAnQHdvcmtmbG93L25pdHJvL3ZpdGUnO1xuIl19
package/dist/workflow.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from '@workflow/core/_workflow';
2
2
  export * from './stdlib.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGFBQWEsQ0FBQyJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B3b3JrZmxvdy9jb3JlL193b3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL3N0ZGxpYi5qcyc7XG4iXX0=
@@ -43,7 +43,7 @@ export async function POST(req: Request) {
43
43
 
44
44
  return createUIMessageStreamResponse({
45
45
  stream: run.readable,
46
- headers: { // [!code highlight
46
+ headers: { // [!code highlight]
47
47
  "x-workflow-run-id": run.runId, // [!code highlight]
48
48
  }, // [!code highlight]
49
49
  });
@@ -55,9 +55,25 @@ The returned `Webhook` object has:
55
55
 
56
56
  - `url`: The HTTP endpoint URL that external systems can call
57
57
  - `token`: The unique token identifying this webhook
58
- - Implements `AsyncIterable<RequestWithResponse>` for handling multiple requests
58
+ - Implements `AsyncIterable<T>` for handling multiple requests, where `T` is `Request` (default) or `RequestWithResponse` (manual mode)
59
59
 
60
- The `RequestWithResponse` type extends the standard `Request` interface with a `respondWith(response: Response)` method for sending custom responses back to the caller.
60
+ When using `createWebhook({ respondWith: 'manual' })`, the resolved request type is `RequestWithResponse`, which extends the standard `Request` interface with a `respondWith(response: Response): Promise<void>` method for sending custom responses back to the caller.
61
+
62
+ <Callout type="info">
63
+ Use the simplest option that satisfies the prompt:
64
+
65
+ - `createWebhook()` — generated callback URL, and the default `202 Accepted` response is fine
66
+ - `createWebhook({ respondWith: 'manual' })` — generated callback URL, but you must send a custom body, status, or headers
67
+ - `createHook()` + `resumeHook()` — the app resumes from server-side code with a deterministic business token instead of a generated callback URL
68
+ </Callout>
69
+
70
+ <details>
71
+ <summary>Common wrong turns</summary>
72
+
73
+ - Do not use `respondWith: 'manual'` just because the flow has a callback URL.
74
+ - Do not use `RequestWithResponse` unless you chose manual mode.
75
+ - Do not invent a custom callback route when `webhook.url` is the intended callback surface.
76
+ </details>
61
77
 
62
78
  ## Examples
63
79
 
@@ -84,27 +100,29 @@ export async function basicWebhookWorkflow() {
84
100
  }
85
101
  ```
86
102
 
87
- ### Responding to Webhook Requests
103
+ ### Responding to Webhook Requests (Manual Mode)
104
+
105
+ Use this section only when the caller requires a non-default HTTP response. If `202 Accepted` is acceptable, use `createWebhook()` without `respondWith: "manual"`.
88
106
 
89
- Use the `respondWith()` method to send custom HTTP responses. Note that `respondWith()` must be called from within a step function:
107
+ Pass `{ respondWith: "manual" }` to get a `RequestWithResponse` object with a `respondWith()` method. Note that `respondWith()` must be called from within a step function:
90
108
 
91
109
  ```typescript lineNumbers
92
110
  import { createWebhook, type RequestWithResponse } from "workflow"
93
111
 
94
- async function sendResponse(request: RequestWithResponse) { // [!code highlight]
95
- "use step"; // [!code highlight]
96
- await request.respondWith( // [!code highlight]
97
- new Response(JSON.stringify({ success: true, message: "Received!" }), { // [!code highlight]
98
- status: 200, // [!code highlight]
99
- headers: { "Content-Type": "application/json" } // [!code highlight]
100
- }) // [!code highlight]
101
- ); // [!code highlight]
102
- } // [!code highlight]
112
+ async function sendResponse(request: RequestWithResponse): Promise<void> {
113
+ "use step";
114
+ await request.respondWith(
115
+ new Response(JSON.stringify({ success: true, message: "Received!" }), {
116
+ status: 200,
117
+ headers: { "Content-Type": "application/json" }
118
+ })
119
+ );
120
+ }
103
121
 
104
122
  export async function respondingWebhookWorkflow() {
105
123
  "use workflow";
106
124
 
107
- using webhook = createWebhook();
125
+ using webhook = createWebhook({ respondWith: "manual" });
108
126
  console.log("Webhook URL:", webhook.url);
109
127
 
110
128
  const request = await webhook;
@@ -117,7 +135,7 @@ export async function respondingWebhookWorkflow() {
117
135
  await processData(data);
118
136
  }
119
137
 
120
- async function processData(data: any) {
138
+ async function processData(data: any): Promise<void> {
121
139
  "use step";
122
140
  // Process the webhook data
123
141
  console.log("Processing:", data);
@@ -165,6 +183,7 @@ export async function eventCollectorWorkflow() {
165
183
 
166
184
  ## Related Functions
167
185
 
168
- - [`createHook()`](/docs/api-reference/workflow/create-hook) - Lower-level hook primitive for arbitrary payloads
169
- - [`defineHook()`](/docs/api-reference/workflow/define-hook) - Type-safe hook helper
170
- - [`resumeWebhook()`](/docs/api-reference/workflow-api/resume-webhook) - Resume a webhook from an API route
186
+ - [`createHook()`](/docs/api-reference/workflow/create-hook) Use when the app resumes from server-side code with a deterministic business token.
187
+ - [`resumeHook()`](/docs/api-reference/workflow-api/resume-hook) Pairs with `createHook()` for deterministic server-side resume.
188
+ - [`defineHook()`](/docs/api-reference/workflow/define-hook) — Type-safe hook helper.
189
+ - [`resumeWebhook()`](/docs/api-reference/workflow-api/resume-webhook) — Low-level runtime API. Most integrations should call `webhook.url` directly instead of adding a custom callback route.
@@ -13,6 +13,7 @@ You may want to use this function when you need to:
13
13
 
14
14
  * Log workflow run IDs
15
15
  * Access timing information of a workflow
16
+ * Detect whether encryption is enabled for the current run
16
17
 
17
18
  <Callout>
18
19
  If you need to access step context, take a look at [`getStepMetadata`](/docs/api-reference/workflow/get-step-metadata).
@@ -29,6 +30,66 @@ async function testWorkflow() {
29
30
  }
30
31
  ```
31
32
 
33
+ ### Detecting Workflow Runtime
34
+
35
+ You can use `getWorkflowMetadata` to detect whether your code is running inside a workflow context. This is useful when building shared utilities that need to behave differently inside and outside of workflows.
36
+
37
+ Since `getWorkflowMetadata` throws when called outside a workflow, you can wrap it in a try-catch:
38
+
39
+ ```typescript lineNumbers
40
+ import { getWorkflowMetadata } from "workflow"
41
+
42
+ function isInWorkflow(): boolean {
43
+ try {
44
+ getWorkflowMetadata()
45
+ return true
46
+ } catch {
47
+ return false
48
+ }
49
+ }
50
+ ```
51
+
52
+ For example, a logging utility could include the workflow run ID when available:
53
+
54
+ ```typescript lineNumbers
55
+ import { getWorkflowMetadata } from "workflow"
56
+
57
+ function log(message: string) {
58
+ try {
59
+ const { workflowRunId } = getWorkflowMetadata()
60
+ console.log(`[workflow:${workflowRunId}] ${message}`)
61
+ } catch {
62
+ console.log(message)
63
+ }
64
+ }
65
+ ```
66
+
67
+ ### Detecting Encryption
68
+
69
+ The `features` object indicates which capabilities are active for the current run. Library authors can use `features.encryption` to control whether sensitive data is included in step return values, which are serialized to the event log:
70
+
71
+ ```typescript lineNumbers
72
+ import { getWorkflowMetadata } from "workflow"
73
+
74
+ declare function getUserProfile(userId: string): Promise<{ name: string; ssn: string }>; // @setup
75
+
76
+ async function fetchUserProfile(userId: string) {
77
+ "use step"
78
+
79
+ const { features } = getWorkflowMetadata() // [!code highlight]
80
+ const profile = await getUserProfile(userId)
81
+
82
+ if (!features.encryption) { // [!code highlight]
83
+ // Omit sensitive fields from the return value,
84
+ // since it will be stored unencrypted in the event log
85
+ const { ssn, ...safe } = profile
86
+ return safe
87
+ }
88
+
89
+ return profile
90
+ }
91
+ ```
92
+
32
93
  ## API Signature
33
94
 
34
95
  ### Parameters
@@ -9,10 +9,6 @@ related:
9
9
  - /docs/ai/defining-tools
10
10
  ---
11
11
 
12
- <Callout type="warn">
13
- The `@workflow/ai` package is currently in active development and should be considered experimental.
14
- </Callout>
15
-
16
12
  The `DurableAgent` class enables you to create AI-powered agents that can maintain state across workflow steps, call tools, and gracefully handle interruptions and resumptions.
17
13
 
18
14
  Tool calls can be implemented as workflow steps for automatic retries, or as regular workflow-level logic utilizing core library features such as [`sleep()`](/docs/api-reference/workflow/sleep) and [Hooks](/docs/foundations/hooks).
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  title: "@workflow/ai"
3
- icon: FlaskConical
4
3
  description: Helpers for building AI-powered workflows with the AI SDK.
5
4
  type: overview
6
5
  summary: Explore helpers for integrating AI SDK to build durable AI-powered workflows.
@@ -8,10 +7,6 @@ related:
8
7
  - /docs/ai
9
8
  ---
10
9
 
11
- <Callout type="warn">
12
- The `@workflow/ai` package is currently in active development and should be considered experimental.
13
- </Callout>
14
-
15
10
  Helpers for integrating AI SDK for building AI-powered workflows.
16
11
 
17
12
  ## Classes
@@ -9,10 +9,6 @@ related:
9
9
  - /docs/ai/resumable-streams
10
10
  ---
11
11
 
12
- <Callout type="warn">
13
- The `@workflow/ai` package is currently in active development and should be considered experimental.
14
- </Callout>
15
-
16
12
  A chat transport implementation for the AI SDK that provides reliable message streaming with automatic reconnection to interrupted streams. This transport is a drop-in replacement for the default AI SDK transport, enabling seamless recovery from network issues, page refreshes, or Vercel Function timeouts.
17
13
 
18
14
  <Callout>
@@ -1,20 +1,20 @@
1
1
  ---
2
2
  title: getWorld
3
- description: Access the World instance for low-level storage, queuing, and streaming operations.
3
+ description: Async function that resolves the World instance for low-level storage, queuing, and streaming operations.
4
4
  type: reference
5
- summary: Use getWorld to access low-level workflow storage, queuing, and streaming backends directly.
5
+ summary: Async function that resolves the World instance for low-level workflow storage, queuing, and streaming backends.
6
6
  prerequisites:
7
7
  - /docs/deploying
8
8
  ---
9
9
 
10
- Retrieves the World instance for direct access to workflow storage, queuing, and streaming backends. This function returns a `World` which provides low-level access to manage workflow runs, steps, events, and hooks.
10
+ Retrieves the World instance for direct access to workflow storage, queuing, and streaming backends. This async function returns a `Promise<World>` which provides low-level access to manage workflow runs, steps, events, and hooks.
11
11
 
12
12
  Use this function when you need direct access to the underlying workflow infrastructure, such as listing all runs, querying events, or implementing custom workflow management logic.
13
13
 
14
14
  ```typescript lineNumbers
15
15
  import { getWorld } from "workflow/runtime";
16
16
 
17
- const world = getWorld(); // [!code highlight]
17
+ const world = await getWorld(); // [!code highlight]
18
18
  ```
19
19
 
20
20
  ## API Signature
@@ -25,7 +25,7 @@ This function does not accept any parameters.
25
25
 
26
26
  ### Returns
27
27
 
28
- Returns a `World` object:
28
+ Returns a `Promise<World>` object:
29
29
 
30
30
  <TSDoc
31
31
  definition={`
@@ -79,7 +79,7 @@ export async function GET(req: Request) {
79
79
  const cursor = url.searchParams.get("cursor") ?? undefined;
80
80
 
81
81
  try {
82
- const world = getWorld(); // [!code highlight]
82
+ const world = await getWorld(); // [!code highlight]
83
83
  const runs = await world.runs.list({
84
84
  pagination: { cursor },
85
85
  resolveData: "none",
@@ -28,7 +28,7 @@ The API package is for access and introspection of workflow data to inspect runs
28
28
  Get workflow run status and metadata without waiting for completion.
29
29
  </Card>
30
30
  <Card href="/docs/api-reference/workflow-api/get-world" title="getWorld()">
31
- Get direct access to workflow storage, queuing, and streaming backends.
31
+ Async: resolve the World instance for storage, queuing, and streaming backends.
32
32
  </Card>
33
33
  <Card href="/docs/api-reference/workflow-api/world" title="World SDK">
34
34
  Low-level API for inspecting runs, steps, events, hooks, streams, and queues.
@@ -2,7 +2,7 @@
2
2
  title: World SDK
3
3
  description: Low-level API for inspecting and managing workflow runs, steps, events, hooks, streams, and queues.
4
4
  type: overview
5
- summary: Access workflow infrastructure directly via getWorld() for building observability dashboards, admin tools, and custom integrations.
5
+ summary: Access workflow infrastructure via await getWorld() for building observability dashboards, admin tools, and custom integrations.
6
6
  prerequisites:
7
7
  - /docs/api-reference/workflow-api/get-world
8
8
  keywords:
@@ -19,7 +19,7 @@ The World SDK provides direct access to workflow infrastructure — runs, steps,
19
19
  ```typescript lineNumbers
20
20
  import { getWorld } from "workflow/runtime";
21
21
 
22
- const world = getWorld(); // [!code highlight]
22
+ const world = await getWorld(); // [!code highlight]
23
23
  ```
24
24
 
25
25
  ## Interfaces
@@ -147,7 +147,7 @@ const hydrated = hydrateResourceIOWithKey(step, key); // [!code highlight]
147
147
  import { getWorld } from "workflow/runtime";
148
148
  import { parseStepName, parseWorkflowName } from "workflow/observability"; // [!code highlight]
149
149
 
150
- const world = getWorld();
150
+ const world = await getWorld();
151
151
  const run = await world.runs.get(runId, { resolveData: "none" });
152
152
  console.log("Workflow:", parseWorkflowName(run.workflowName)?.shortName); // [!code highlight]
153
153
 
@@ -28,7 +28,7 @@ Queue methods live directly on the `world` object (not nested). They dispatch in
28
28
  ```typescript lineNumbers
29
29
  import { getWorld } from "workflow/runtime";
30
30
 
31
- const world = getWorld(); // [!code highlight]
31
+ const world = await getWorld(); // [!code highlight]
32
32
  // Queue methods are called directly on world — e.g. world.queue()
33
33
  ```
34
34
 
@@ -37,7 +37,7 @@ The World storage interface exposes four sub-interfaces for querying workflow da
37
37
  ```typescript lineNumbers
38
38
  import { getWorld } from "workflow/runtime";
39
39
 
40
- const world = getWorld(); // [!code highlight]
40
+ const world = await getWorld(); // [!code highlight]
41
41
  ```
42
42
 
43
43
  ---
@@ -304,7 +304,7 @@ const result = await world.hooks.list({ // [!code highlight]
304
304
  ```typescript lineNumbers
305
305
  import { getWorld } from "workflow/runtime";
306
306
 
307
- const world = getWorld();
307
+ const world = await getWorld();
308
308
  let cursor: string | undefined;
309
309
 
310
310
  const runs = await world.runs.list({ // [!code highlight]
@@ -319,7 +319,7 @@ cursor = runs.cursor; // pass to next call for pagination
319
319
  ```typescript lineNumbers
320
320
  import { getWorld } from "workflow/runtime";
321
321
 
322
- const world = getWorld();
322
+ const world = await getWorld();
323
323
 
324
324
  // Full data (default) — includes serialized input/output
325
325
  const run = await world.runs.get(runId); // [!code highlight]
@@ -336,7 +336,7 @@ const lightweight = await world.runs.get(runId, { // [!code highlight]
336
336
  import { getWorld } from "workflow/runtime";
337
337
  import { parseStepName } from "workflow/observability"; // [!code highlight]
338
338
 
339
- const world = getWorld();
339
+ const world = await getWorld();
340
340
  const steps = await world.steps.list({ // [!code highlight]
341
341
  runId,
342
342
  resolveData: "none",
@@ -358,7 +358,7 @@ const progress = steps.data.map((step) => {
358
358
  import { getWorld } from "workflow/runtime";
359
359
  import { hydrateResourceIO, observabilityRevivers } from "workflow/observability"; // [!code highlight]
360
360
 
361
- const world = getWorld();
361
+ const world = await getWorld();
362
362
  const step = await world.steps.get(runId, stepId); // [!code highlight]
363
363
  const hydrated = hydrateResourceIO(step, observabilityRevivers); // [!code highlight]
364
364
  console.log(hydrated.input, hydrated.output);
@@ -369,7 +369,7 @@ console.log(hydrated.input, hydrated.output);
369
369
  ```typescript lineNumbers
370
370
  import { getWorld } from "workflow/runtime";
371
371
 
372
- const world = getWorld();
372
+ const world = await getWorld();
373
373
  await world.events.create(runId, { // [!code highlight]
374
374
  eventType: "run_cancelled", // [!code highlight]
375
375
  }); // [!code highlight]
@@ -380,7 +380,7 @@ await world.events.create(runId, { // [!code highlight]
380
380
  ```typescript lineNumbers
381
381
  import { getWorld } from "workflow/runtime";
382
382
 
383
- const world = getWorld();
383
+ const world = await getWorld();
384
384
  const hook = await world.hooks.getByToken(token); // [!code highlight]
385
385
  console.log(hook.runId, hook.metadata); // [!code highlight]
386
386
  ```
@@ -390,7 +390,7 @@ console.log(hook.runId, hook.metadata); // [!code highlight]
390
390
  ```typescript lineNumbers
391
391
  import { getWorld } from "workflow/runtime";
392
392
 
393
- const world = getWorld();
393
+ const world = await getWorld();
394
394
  const events = await world.events.list({ runId }); // [!code highlight]
395
395
 
396
396
  for (const event of events.data) {