@relayflows/sdk 2.0.45 → 2.0.46

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 (103) hide show
  1. package/dist/authored-flow-error.d.ts +1 -1
  2. package/dist/authored-flow-error.d.ts.map +1 -1
  3. package/dist/authored-flow-error.js.map +1 -1
  4. package/dist/authored-helper-effect.d.ts.map +1 -1
  5. package/dist/authored-helper-effect.js +9 -0
  6. package/dist/authored-helper-effect.js.map +1 -1
  7. package/dist/authored-root.d.ts.map +1 -1
  8. package/dist/authored-root.js +17 -0
  9. package/dist/authored-root.js.map +1 -1
  10. package/dist/cli/direct-run.d.ts.map +1 -1
  11. package/dist/cli/direct-run.js +7 -0
  12. package/dist/cli/direct-run.js.map +1 -1
  13. package/dist/cli/run.d.ts.map +1 -1
  14. package/dist/cli/run.js +31 -2
  15. package/dist/cli/run.js.map +1 -1
  16. package/dist/cloud-mirror-step.d.ts.map +1 -1
  17. package/dist/cloud-mirror-step.js +6 -1
  18. package/dist/cloud-mirror-step.js.map +1 -1
  19. package/dist/compile.d.ts +1 -0
  20. package/dist/compile.d.ts.map +1 -1
  21. package/dist/compile.js +2 -1
  22. package/dist/compile.js.map +1 -1
  23. package/dist/failure-kinds.d.ts +1 -1
  24. package/dist/failure-kinds.d.ts.map +1 -1
  25. package/dist/failure-kinds.js +1 -0
  26. package/dist/failure-kinds.js.map +1 -1
  27. package/dist/flow-tool-adapters.d.ts +56 -0
  28. package/dist/flow-tool-adapters.d.ts.map +1 -0
  29. package/dist/flow-tool-adapters.js +42 -0
  30. package/dist/flow-tool-adapters.js.map +1 -0
  31. package/dist/flow-tool-client.d.ts +38 -0
  32. package/dist/flow-tool-client.d.ts.map +1 -0
  33. package/dist/flow-tool-client.js +105 -0
  34. package/dist/flow-tool-client.js.map +1 -0
  35. package/dist/flow-tool-contract.d.ts +103 -0
  36. package/dist/flow-tool-contract.d.ts.map +1 -0
  37. package/dist/flow-tool-contract.js +75 -0
  38. package/dist/flow-tool-contract.js.map +1 -0
  39. package/dist/flow-tool-definitions.d.ts +19 -0
  40. package/dist/flow-tool-definitions.d.ts.map +1 -0
  41. package/dist/flow-tool-definitions.js +12 -0
  42. package/dist/flow-tool-definitions.js.map +1 -0
  43. package/dist/flow-tool-http.d.ts +14 -0
  44. package/dist/flow-tool-http.d.ts.map +1 -0
  45. package/dist/flow-tool-http.js +175 -0
  46. package/dist/flow-tool-http.js.map +1 -0
  47. package/dist/flow-tool-kernel.d.ts +27 -0
  48. package/dist/flow-tool-kernel.d.ts.map +1 -0
  49. package/dist/flow-tool-kernel.js +310 -0
  50. package/dist/flow-tool-kernel.js.map +1 -0
  51. package/dist/flow-tool-manifest.d.ts +30 -0
  52. package/dist/flow-tool-manifest.d.ts.map +1 -0
  53. package/dist/flow-tool-manifest.js +79 -0
  54. package/dist/flow-tool-manifest.js.map +1 -0
  55. package/dist/flow-tool-schema.d.ts +15 -0
  56. package/dist/flow-tool-schema.d.ts.map +1 -0
  57. package/dist/flow-tool-schema.js +70 -0
  58. package/dist/flow-tool-schema.js.map +1 -0
  59. package/dist/flow-tool-wire.d.ts +26 -0
  60. package/dist/flow-tool-wire.d.ts.map +1 -0
  61. package/dist/flow-tool-wire.js +195 -0
  62. package/dist/flow-tool-wire.js.map +1 -0
  63. package/dist/helper-park.d.ts +14 -0
  64. package/dist/helper-park.d.ts.map +1 -0
  65. package/dist/helper-park.js +40 -0
  66. package/dist/helper-park.js.map +1 -0
  67. package/dist/helper-receipt.d.ts +11 -0
  68. package/dist/helper-receipt.d.ts.map +1 -0
  69. package/dist/helper-receipt.js +100 -0
  70. package/dist/helper-receipt.js.map +1 -0
  71. package/dist/helper-writeback.d.ts.map +1 -1
  72. package/dist/helper-writeback.js +7 -2
  73. package/dist/helper-writeback.js.map +1 -1
  74. package/dist/index.d.ts +9 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +9 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/yaml-helper-effect.d.ts.map +1 -1
  79. package/dist/yaml-helper-effect.js +32 -23
  80. package/dist/yaml-helper-effect.js.map +1 -1
  81. package/package.json +2 -2
  82. package/src/authored-flow-error.ts +1 -0
  83. package/src/authored-helper-effect.ts +9 -0
  84. package/src/authored-root.ts +17 -0
  85. package/src/cli/direct-run.ts +7 -0
  86. package/src/cli/run.ts +30 -2
  87. package/src/cloud-mirror-step.ts +6 -1
  88. package/src/compile.ts +2 -1
  89. package/src/failure-kinds.ts +1 -0
  90. package/src/flow-tool-adapters.ts +43 -0
  91. package/src/flow-tool-client.ts +115 -0
  92. package/src/flow-tool-contract.ts +153 -0
  93. package/src/flow-tool-definitions.ts +27 -0
  94. package/src/flow-tool-http.ts +134 -0
  95. package/src/flow-tool-kernel.ts +319 -0
  96. package/src/flow-tool-manifest.ts +104 -0
  97. package/src/flow-tool-schema.ts +66 -0
  98. package/src/flow-tool-wire.ts +152 -0
  99. package/src/helper-park.ts +45 -0
  100. package/src/helper-receipt.ts +90 -0
  101. package/src/helper-writeback.ts +8 -3
  102. package/src/index.ts +21 -0
  103. package/src/yaml-helper-effect.ts +12 -5
@@ -1 +1 @@
1
- {"version":3,"file":"helper-writeback.d.ts","sourceRoot":"","sources":["../src/helper-writeback.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG5G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAM7I;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;;;EA8DhI"}
1
+ {"version":3,"file":"helper-writeback.d.ts","sourceRoot":"","sources":["../src/helper-writeback.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG5G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAS7I;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;;;EA+DhI"}
@@ -1,9 +1,10 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { join } from 'node:path';
3
- import { writeJsonFile, readJsonFile, listJsonFiles } from '@relayfile/adapter-core/vfs-client';
3
+ import { readJsonFile, listJsonFiles } from '@relayfile/adapter-core/vfs-client';
4
4
  import { helperClients, helperProviders, invokeHelper } from '@relayflows/surface/runtime';
5
5
  import { providerMount } from './slack-preflight.js';
6
6
  import { atomicJson } from './helper-storage.js';
7
+ import { writeHelperDraft, HelperWritebackPending } from './helper-receipt.js';
7
8
  export class HelperDeliveryError extends Error {
8
9
  }
9
10
  export async function helperWriteback(call, dataDir, runId, stepId, signal) {
@@ -15,6 +16,8 @@ export async function helperWriteback(call, dataDir, runId, stepId, signal) {
15
16
  return await invokeHelper(factory, call, transport);
16
17
  }
17
18
  catch (cause) {
19
+ if (cause instanceof HelperWritebackPending)
20
+ throw cause;
18
21
  throw new HelperDeliveryError(cause instanceof Error ? cause.message : String(cause), { cause });
19
22
  }
20
23
  }
@@ -73,9 +76,11 @@ export function helperTransport(call, dataDir, runId, stepId, signal) {
73
76
  }
74
77
  else {
75
78
  try {
76
- result = await writeJsonFile(options(), call.provider, `write.${request.resource}`, draft, body);
79
+ result = await writeHelperDraft(options().relayfileMountRoot, call.provider, `write.${request.resource}`, draft, body, dataDir, runId, stepId, signal);
77
80
  }
78
81
  catch (cause) {
82
+ if (cause instanceof HelperWritebackPending)
83
+ throw cause;
79
84
  // Upstream created() converts pending/terminal adapter errors into values.
80
85
  // A journal effect must fail instead of confirming an undelivered write.
81
86
  throw new Error(`${call.provider} writeback failed: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
@@ -1 +1 @@
1
- {"version":3,"file":"helper-writeback.js","sourceRoot":"","sources":["../src/helper-writeback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper-writeback.js","sourceRoot":"","sources":["../src/helper-writeback.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,9 @@ export { evaluateFlow, parseFlowEvalSuite, loadFlowEvalSuite, flowEvalSuiteSha25
20
20
  export { localFlowEvalExecutor, type LocalFlowEvalExecutorOptions } from './flow-eval-local.js';
21
21
  export { cloudFlowEvalExecutor, type CloudFlowEvalExecutorOptions } from './flow-eval-cloud.js';
22
22
  export { canonicalize, specHash } from './canonical.js';
23
+ export { createFlowToolManifest, parseFlowToolManifest, canonicalFlowToolManifest, validateFlowToolInput, validateFlowToolResult, type FlowToolDeclarationV1, type FlowToolManifestV1, type FlowToolDigest, } from './flow-tool-manifest.js';
24
+ export { FLOW_TOOL_SCHEMA_DIALECT, type FlowToolJson, type FlowToolObjectSchema } from './flow-tool-schema.js';
25
+ export { flowToolFunctionDefinition, flowToolMcpDefinition, type FlowToolFunctionDefinition, type FlowToolMcpDefinition, } from './flow-tool-definitions.js';
23
26
  export { compileAndHash, compileSpec, compileYaml, compileYamlToCanonicalJson, kernelToAuthoring, toKernelSpec, CompileError, } from './compile.js';
24
27
  export { validateSpec, type ValidationResult } from './validate.js';
25
28
  export { getAuthoredFlowDefinition, type AuthoredFlowDefinition, type FlowHandle, } from './authored-flow.js';
@@ -38,6 +41,12 @@ export { pollHackerNewsOnce, HnTransientFetchError, HN_TOP_STORIES_URL, type Eve
38
41
  export { pollDirectoryOnce, type DirLister, type PollOptions as DirWatcherPollOptions, } from './dir-watcher-poller.js';
39
42
  export { emitDueTicks, scheduledForMs, TickEmitError, slotFor, tickDedupeKey, DEFAULT_MAX_CATCH_UP, TICK_DEDUPE_KEY_TEMPLATE, TICK_EVENT_TYPE, type EventSink as TickEventSink, type TickCursor, type TickEmitResult, type TickPayload, type TickSchedule, } from './tick-source.js';
40
43
  export { createFlow, type CreateFlowOptions, type CreatedFlow } from './create-flow.js';
44
+ export * from './flow-tool-contract.js';
45
+ export { parseFlowToolCatalog, canonicalFlowToolCatalog, parseFlowToolEntry, parseFlowToolRun, parseFlowToolEvent, parseFlowToolEvidence, parseFlowToolInvocation, flowToolInputDigest, flowToolRunLinks } from './flow-tool-wire.js';
46
+ export { FlowToolClient, type FlowToolTransport, type FlowToolRequest, type FlowToolInvocationOptions } from './flow-tool-client.js';
47
+ export { createFlowToolHttpTransport, type FlowToolHttpOptions } from './flow-tool-http.js';
48
+ export { createFlowToolAdapters } from './flow-tool-adapters.js';
49
+ export { createKernelFlowToolControlPlane, FLOW_TOOL_INPUT_PLACEHOLDER, type KernelFlowToolDeployment, type KernelFlowToolControlPlaneOptions, } from './flow-tool-kernel.js';
41
50
  export { renderProgress, type ProgressEvent } from './progress.js';
42
51
  export { webhookTriggerSpec } from './trigger-executor.js';
43
52
  export { scheduleTriggerSpec, scheduleLowering, SCHEDULE_EXECUTOR, type ScheduleLowering } from './schedule-trigger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,6 +20,9 @@ export { evaluateFlow, parseFlowEvalSuite, loadFlowEvalSuite, flowEvalSuiteSha25
20
20
  export { localFlowEvalExecutor } from './flow-eval-local.js';
21
21
  export { cloudFlowEvalExecutor } from './flow-eval-cloud.js';
22
22
  export { canonicalize, specHash } from './canonical.js';
23
+ export { createFlowToolManifest, parseFlowToolManifest, canonicalFlowToolManifest, validateFlowToolInput, validateFlowToolResult, } from './flow-tool-manifest.js';
24
+ export { FLOW_TOOL_SCHEMA_DIALECT } from './flow-tool-schema.js';
25
+ export { flowToolFunctionDefinition, flowToolMcpDefinition, } from './flow-tool-definitions.js';
23
26
  export { compileAndHash, compileSpec, compileYaml, compileYamlToCanonicalJson, kernelToAuthoring, toKernelSpec, CompileError, } from './compile.js';
24
27
  export { validateSpec } from './validate.js';
25
28
  export { getAuthoredFlowDefinition, } from './authored-flow.js';
@@ -45,6 +48,12 @@ export { pollDirectoryOnce, } from './dir-watcher-poller.js';
45
48
  // conditions, not schedulers").
46
49
  export { emitDueTicks, scheduledForMs, TickEmitError, slotFor, tickDedupeKey, DEFAULT_MAX_CATCH_UP, TICK_DEDUPE_KEY_TEMPLATE, TICK_EVENT_TYPE, } from './tick-source.js';
47
50
  export { createFlow } from './create-flow.js';
51
+ export * from './flow-tool-contract.js';
52
+ export { parseFlowToolCatalog, canonicalFlowToolCatalog, parseFlowToolEntry, parseFlowToolRun, parseFlowToolEvent, parseFlowToolEvidence, parseFlowToolInvocation, flowToolInputDigest, flowToolRunLinks } from './flow-tool-wire.js';
53
+ export { FlowToolClient } from './flow-tool-client.js';
54
+ export { createFlowToolHttpTransport } from './flow-tool-http.js';
55
+ export { createFlowToolAdapters } from './flow-tool-adapters.js';
56
+ export { createKernelFlowToolControlPlane, FLOW_TOOL_INPUT_PLACEHOLDER, } from './flow-tool-kernel.js';
48
57
  export { renderProgress } from './progress.js';
49
58
  export { webhookTriggerSpec } from './trigger-executor.js';
50
59
  export { scheduleTriggerSpec, scheduleLowering, SCHEDULE_EXECUTOR } from './schedule-trigger.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-helper-effect.d.ts","sourceRoot":"","sources":["../src/yaml-helper-effect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIlE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAc,GAAG,MAAM,GAAG,SAAS,CAMnF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AA6BD,sFAAsF;AACtF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GACpF,OAAO,CAAC,IAAI,CAAC,CAwBf"}
1
+ {"version":3,"file":"yaml-helper-effect.d.ts","sourceRoot":"","sources":["../src/yaml-helper-effect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIlE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAc,GAAG,MAAM,GAAG,SAAS,CAMnF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AA6BD,sFAAsF;AACtF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GACpF,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -1,7 +1,8 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { statSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
- import { writeJsonFile } from '@relayfile/adapter-core/vfs-client';
4
+ import { HelperWritebackPending, writeHelperDraft } from './helper-receipt.js';
5
+ import { parkHelperReceipt } from './helper-park.js';
5
6
  import { atomicJson, readSlackReceipt, receiptPath, slackWriteback } from './slack-writeback.js';
6
7
  import { invokeHelper } from './yaml-helpers.js';
7
8
  import { withWorkerLease } from './worker-lease.js';
@@ -38,7 +39,7 @@ async function writeback(call, dataDir, runId, stepId, signal) {
38
39
  // Item updates keep the client's canonical path. Creates use a stable draft.
39
40
  const path = request.path.endsWith('.json') ? request.path
40
41
  : `${request.path}/draft-${createHash('sha256').update(idempotencyKey).digest('hex')}.json`;
41
- const result = await writeJsonFile({ relayfileMountRoot: mount }, request.provider, `write.${request.resource}`, path, body);
42
+ const result = await writeHelperDraft(mount, request.provider, `write.${request.resource}`, path, body, dataDir, runId, stepId, signal);
42
43
  if (result.deliveryStatus !== 'confirmed' || !result.receipt) {
43
44
  throw new Error(`${call.provider} writeback is pending; no delivery receipt`);
44
45
  }
@@ -51,29 +52,37 @@ async function writeback(call, dataDir, runId, stepId, signal) {
51
52
  /** Existing lease/effect election protocol; provider verbs never enter the kernel. */
52
53
  export async function completeHelperDispatch(client, dispatch, call, dataDir) {
53
54
  const surfacePath = `/${call.provider}`;
54
- const output = await withWorkerLease(client, dispatch, async (signal) => {
55
- const file = receiptPath(dataDir, dispatch.run_id, dispatch.step_id);
56
- let receipt;
57
- await client.performEffect({
58
- runId: dispatch.run_id, stepId: dispatch.step_id, attempt: dispatch.attempt,
59
- idempotencyKey: dispatch.idempotency_key, surfacePath,
60
- revisionBefore: 'pending', revisionAfter: `${dispatch.run_id}:${dispatch.step_id}`,
61
- }, async () => {
62
- try {
55
+ let output;
56
+ try {
57
+ output = await withWorkerLease(client, dispatch, async (signal) => {
58
+ const file = receiptPath(dataDir, dispatch.run_id, dispatch.step_id);
59
+ let receipt;
60
+ await client.performEffect({
61
+ runId: dispatch.run_id, stepId: dispatch.step_id, attempt: dispatch.attempt,
62
+ idempotencyKey: dispatch.idempotency_key, surfacePath,
63
+ revisionBefore: 'pending', revisionAfter: `${dispatch.run_id}:${dispatch.step_id}`,
64
+ }, async () => {
65
+ try {
66
+ receipt = await readSlackReceipt(file);
67
+ }
68
+ catch (error) {
69
+ if (error.code !== 'ENOENT')
70
+ throw error;
71
+ receipt = await writeback(call, dataDir, dispatch.run_id, dispatch.step_id, signal);
72
+ await atomicJson(file, receipt);
73
+ }
74
+ signal.throwIfAborted();
75
+ });
76
+ if (receipt === undefined)
63
77
  receipt = await readSlackReceipt(file);
64
- }
65
- catch (error) {
66
- if (error.code !== 'ENOENT')
67
- throw error;
68
- receipt = await writeback(call, dataDir, dispatch.run_id, dispatch.step_id, signal);
69
- await atomicJson(file, receipt);
70
- }
71
- signal.throwIfAborted();
78
+ return { ...call, idempotencyKey: `${dispatch.run_id}:${dispatch.step_id}`, receipt };
72
79
  });
73
- if (receipt === undefined)
74
- receipt = await readSlackReceipt(file);
75
- return { ...call, idempotencyKey: `${dispatch.run_id}:${dispatch.step_id}`, receipt };
76
- });
80
+ }
81
+ catch (error) {
82
+ if (error instanceof HelperWritebackPending)
83
+ await parkHelperReceipt(client, dispatch, error);
84
+ throw error;
85
+ }
77
86
  await client.stepComplete(dispatch.run_id, dispatch.step_id, dispatch.attempt, dispatch.idempotency_key, 'success', { output, started_pins: dispatch.pins, end_pins: dispatch.pins, reported_cost: NO_MODEL_COST,
78
87
  effects: [{ surface_path: surfacePath, idempotency_key: dispatch.idempotency_key }] });
79
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-helper-effect.js","sourceRoot":"","sources":["../src/yaml-helper-effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yaml-helper-effect.js","sourceRoot":"","sources":["../src/yaml-helper-effect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relayflows/sdk",
3
- "version": "2.0.45",
3
+ "version": "2.0.46",
4
4
  "description": "TypeScript-first authoring SDK for Relayflows. Compiles specs; speaks the journal protocol.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -50,7 +50,7 @@
50
50
  "@modelcontextprotocol/sdk": "^1.30.0",
51
51
  "@relayfile/adapter-core": "0.6.2",
52
52
  "@relayfile/relay-helpers": "0.4.12",
53
- "@relayflows/surface": "2.0.45",
53
+ "@relayflows/surface": "2.0.46",
54
54
  "@types/js-yaml": "^4.0.9",
55
55
  "acorn": "^8.18.0",
56
56
  "ai-hist": "0.4.1",
@@ -6,6 +6,7 @@ import type {
6
6
  } from './protocol.js';
7
7
 
8
8
  export type AuthoredFlowExecutionErrorCode =
9
+ | 'helper_writeback_pending'
9
10
  | 'helper_provider.mount_required'
10
11
  | 'helper_provider.unsupported'
11
12
  | 'helper_slack.credential_missing'
@@ -11,6 +11,8 @@ import type { StepDispatchEvent } from './protocol.js';
11
11
  import { isLeaseLost, withWorkerLease } from './worker-lease.js';
12
12
  import { helperProviders, type HelperCall } from '@relayflows/surface/runtime';
13
13
  import { helperWriteback, HelperDeliveryError } from './helper-writeback.js';
14
+ import { HelperWritebackPending } from './helper-receipt.js';
15
+ import { parkHelperReceipt, releaseHelperReceiptWaits } from './helper-park.js';
14
16
  import { checkSlackHelpers } from './slack-preflight.js';
15
17
  import { atomicJson, readSlackReceipt, receiptPath, slackWriteback, type SlackCall } from './slack-writeback.js';
16
18
  import { authoredChildAdmissionKey } from './authored-admission.js';
@@ -94,6 +96,9 @@ async function driveHelperEffect(
94
96
  await client.connect();
95
97
  await client.hello('flows-provider-helper');
96
98
  await client.workerAttach(`${call.provider}-${randomUUID()}`, ['agent'], pins, 1);
99
+ // Answer only after this worker is attached. `event.emit` drives the next
100
+ // attempt immediately, and a drive with no worker journals a crash.
101
+ await releaseHelperReceiptWaits(journal, runId);
97
102
  const outcome = await journal.runResume(runId);
98
103
  if (outcome.status === 'completed') return;
99
104
  if (outcome.status === 'failed') {
@@ -133,6 +138,10 @@ async function completeHelperDispatch(client: JournalClient, dispatch: StepDispa
133
138
  return { ...call, idempotencyKey: `${dispatch.run_id}:${dispatch.step_id}`, receipt };
134
139
  });
135
140
  } catch (error) {
141
+ if (error instanceof HelperWritebackPending) {
142
+ await parkHelperReceipt(client, dispatch, error);
143
+ throw error;
144
+ }
136
145
  if (!(error instanceof HelperDeliveryError)) throw error;
137
146
  await client.stepComplete(dispatch.run_id, dispatch.step_id, dispatch.attempt,
138
147
  dispatch.idempotency_key, 'worker_error', {
@@ -19,6 +19,7 @@ import type { RunLifecycleOptions } from './cli/run.js';
19
19
  import { isLeaseLost, withWorkerLease } from './worker-lease.js';
20
20
  import { AuthoredFlowExecutionError, AuthoredHumanParked } from './authored-flow-error.js';
21
21
  import { readOpenHumanWaits, resumeCommand } from './authored-human.js';
22
+ import { helperReceiptWaitId, releaseHelperReceiptWaits } from './helper-park.js';
22
23
  import { readSubscriptionPark } from './authored-subscription-park.js';
23
24
  import { localAgentCredentialEnvironment } from './local-agent-environment.js';
24
25
  import { completedResult, rootKernelStep, rootStepIfPresent } from './authored-root-readback.js';
@@ -123,6 +124,7 @@ export async function executeDurableAuthoredFlow(
123
124
  return await completedResult(journal, outcome, outcome.run_id);
124
125
  }
125
126
  assertRootCanDispatch(outcome);
127
+ await releaseHelperReceiptWaits(journal, outcome.run_id);
126
128
  options.lifecycle?.onRunStarted?.({ runId: outcome.run_id, flow: definition.name });
127
129
  // `run.start` is an idempotent receipt. If the first caller died after
128
130
  // the daemon dispatched this root, a same-daemon retry sees the existing
@@ -166,6 +168,7 @@ export async function resumeDurableAuthoredFlow(
166
168
  await peer.workerAttach(`worker-${stream}-${randomUUID()}`, ['agent'], {
167
169
  workspace: [], streams: [{ stream, read_offset: 0 }],
168
170
  });
171
+ await releaseHelperReceiptWaits(journal, rootRunId);
169
172
  const outcome = await journal.runResume(rootRunId);
170
173
  options.lifecycle?.onRunReceipt?.({ runId: rootRunId, flow: metadata.flowName });
171
174
  if (outcome.status === 'completed') {
@@ -410,6 +413,20 @@ async function driveRoot(
410
413
  });
411
414
  throw error;
412
415
  }
416
+ if (error instanceof AuthoredFlowExecutionError && error.code === 'helper_writeback_pending') {
417
+ // Same durable park as the helper child, including a pending error
418
+ // rebuilt from the Node child's frame (that one is not the subclass).
419
+ // Closing this leased root without the park spends the root's transport
420
+ // budget on an accepted write.
421
+ error.rootRunId = dispatch.run_id;
422
+ await peer.stepWait(dispatch.run_id, dispatch.step_id, dispatch.attempt, dispatch.idempotency_key, {
423
+ wait_id: helperReceiptWaitId(dispatch.step_id, dispatch.attempt),
424
+ prompt: error.message,
425
+ requested_of: 'relayfile-receipt',
426
+ options: ['resume'],
427
+ });
428
+ throw error;
429
+ }
413
430
  await terminalizeRootFailure(peer, dispatch, error);
414
431
  if (error instanceof AuthoredFlowExecutionError) error.rootRunId = dispatch.run_id;
415
432
  throw error;
@@ -1,3 +1,4 @@
1
+ import { resumeCommand } from '../authored-human.js';
1
2
  import { completedResultUnreadableReport, daemonUnresponsiveReport, isReadInterruption } from './journal-timeout.js';
2
3
  import { FLOW_READ_BUDGET_MS } from '../journal-read-policy.js';
3
4
  import { onWorkerFailure } from '../worker-lease.js';
@@ -179,6 +180,12 @@ export async function runDirectFlow(
179
180
  },
180
181
  };
181
182
  }
183
+ if (error instanceof AuthoredFlowExecutionError && error.code === 'helper_writeback_pending') {
184
+ return { exitCode: 3, report: { ...base, ok: false,
185
+ runId: error.rootRunId ?? error.runId, rootRunId: error.rootRunId, socketPath, status: 'parked',
186
+ diagnostics: [...base.diagnostics, { severity: 'parked', kind: error.code,
187
+ message: error.message + ` Continue with: ${resumeCommand(error.rootRunId ?? error.runId!, dataDir, options.localAgent === true)}.` }] } };
188
+ }
182
189
  if (error instanceof AuthoredFlowExecutionError && (error.code === 'agent_parked' || error.code === 'llm_parked')) {
183
190
  return {
184
191
  exitCode: 3,
package/src/cli/run.ts CHANGED
@@ -12,6 +12,7 @@ import { attachReuseSummary } from './reuse.js';
12
12
  import { resumeHelperEffect } from '../authored-helper-effect.js';
13
13
  import { AuthoredFlowExecutionError, AuthoredHumanParked, type AuthoredHumanWait } from '../authored-flow-error.js';
14
14
  import { answerCommand, resumeCommand } from '../authored-human.js';
15
+ import { existsSync } from 'node:fs';
15
16
  import { join, resolve } from 'node:path';
16
17
  import type { ProgressEvent } from '../progress.js';
17
18
  import type { JournalEvent } from '../journal-reader.js';
@@ -255,7 +256,14 @@ async function executeCheckedFlow(
255
256
  diagnostics: [...base.diagnostics, { severity: failed ? 'failure' : 'refusal',
256
257
  kind: error.code, message: error.message }] } };
257
258
  }
258
- return protocolFailure('run', base, socketPath, communicationWorkers?.failure ?? localAgent?.failure ?? error);
259
+ const cause = communicationWorkers?.failure ?? localAgent?.failure ?? error;
260
+ if (cause instanceof AuthoredFlowExecutionError && cause.code === 'helper_writeback_pending') {
261
+ return { exitCode: 3, report: { ...base, ok: false, runId: cause.rootRunId ?? cause.runId ?? base.runId,
262
+ rootRunId: cause.rootRunId, socketPath, status: 'parked',
263
+ diagnostics: [...base.diagnostics, { severity: 'parked', kind: cause.code,
264
+ message: cause.message + ` Continue with: ${resumeCommand(cause.rootRunId ?? cause.runId ?? base.runId ?? '', dataDir, options.localAgent === true)}.` }] } };
265
+ }
266
+ return protocolFailure('run', base, socketPath, cause);
259
267
  } finally {
260
268
  if (options.onJournalEntry !== undefined) client.off('entry', options.onJournalEntry);
261
269
  try { await communicationWorkers?.close(); } finally { try { await localAgent?.close(); } finally { client.close(); } }
@@ -364,7 +372,11 @@ export async function resumeFlow(
364
372
  // slack effect resume plus every other provider from N's codegen. The
365
373
  // second call the earlier rebase left is a stale reference from before
366
374
  // the helper fanout renamed the API.
367
- if (options.localAgent) {
375
+ // A helper child brings its own worker in resumeHelperEffect. A local agent
376
+ // pinned to that stream first receives the park's redispatch and does not
377
+ // understand the authored helper instruction.
378
+ const helperChild = existsSync(join(dataDir, 'helper-runs', `${runId}.json`));
379
+ if (options.localAgent && !helperChild) {
368
380
  const entries = (await client.journalRead(runId, 1)).entries as Array<{ entry_type: string; payload?: { spec?: import('../spec.js').KernelRunSpec } }>;
369
381
  const spec = entries.find(entry => entry.entry_type === 'run.spawned')?.payload?.spec;
370
382
  if (!spec) throw new Error('Cannot attach a local worker: the journaled run spec is missing');
@@ -384,6 +396,12 @@ export async function resumeFlow(
384
396
  // the run unprojected, and the resume below reports the run's own fate.
385
397
  await client.runWatch(runId).catch(() => client.off('entry', onEntry));
386
398
  }
399
+ // A helper child answers its own park after its worker attaches.
400
+ // Emitting here, with no worker, journals the next attempt as a crash.
401
+ if (options.localAgent && !helperChild) {
402
+ const { releaseHelperReceiptWaits } = await import('../helper-park.js');
403
+ await releaseHelperReceiptWaits(client, runId);
404
+ }
387
405
  let outcome = await client.runResume(runId, options.allowHumanInfluenced);
388
406
  options.onRunReceipt?.({ runId, flow: 'flow' });
389
407
  if (await resumeHelperEffect(client, runId, dataDir)) {
@@ -432,6 +450,16 @@ export async function resumeFlow(
432
450
  // only honest instruction is a new run carrying the same `--input`.
433
451
  // `runId` here is the CHILD run holding the evidence; the root this resume
434
452
  // named stays separate, so `flows` can still collect it.
453
+ const pending = error instanceof AuthoredFlowExecutionError && error.code === 'helper_writeback_pending'
454
+ ? error
455
+ : authoredAgent?.failure instanceof AuthoredFlowExecutionError && authoredAgent.failure.code === 'helper_writeback_pending'
456
+ ? authoredAgent.failure : undefined;
457
+ if (pending !== undefined) {
458
+ return { exitCode: 3, report: { ...base, ok: false,
459
+ runId: pending.rootRunId ?? pending.runId, rootRunId: pending.rootRunId, socketPath, status: 'parked',
460
+ diagnostics: [...base.diagnostics, { severity: 'parked', kind: 'helper_writeback_pending',
461
+ message: pending.message + ` Continue with: ${resumeCommand(pending.rootRunId ?? pending.runId ?? runId, dataDir, options.localAgent === true)}.` }] } };
462
+ }
435
463
  if (error instanceof AuthoredFlowExecutionError && (error.code === 'agent_parked' || error.code === 'llm_parked')) {
436
464
  return {
437
465
  exitCode: 3,
@@ -416,7 +416,12 @@ function finalStep(
416
416
  const summary = text(verification?.detail, env, OUTPUT_SUMMARY_MAX_CHARS)
417
417
  ?? `step ${succeeded ? 'completed' : 'ended'}: ${identifier(completionReason, env) ?? 'unknown'}`;
418
418
  const model = identifier(transcript?.model, env);
419
- const error = succeeded ? undefined : text(failure?.excerpt, env, ERROR_MAX_CHARS);
419
+ // Agent attempts carry a transcript failure excerpt; deterministic timeouts
420
+ // do not. Their execution failure is journaled in verification.detail, so
421
+ // fall back to that same record for a timeout instead of publishing a failed
422
+ // dashboard row with an empty error column.
423
+ const error = succeeded ? undefined : text(failure?.excerpt, env, ERROR_MAX_CHARS)
424
+ ?? (completionReason === 'timeout' ? text(verification?.detail, env, ERROR_MAX_CHARS) : undefined);
420
425
  return {
421
426
  stepName,
422
427
  stepType,
package/src/compile.ts CHANGED
@@ -75,6 +75,7 @@ export class CompileError extends Error {
75
75
  * being rejected by `isSafeInteger`.
76
76
  */
77
77
  export const AGENT_STEP_TIMEOUT_MAX_MS = 60 * 60_000;
78
+ export const RUN_STEP_TIMEOUT_MAX_MS = 15 * 60_000;
78
79
  export function parseAgentStepTimeout(timeout: unknown): number {
79
80
  return parseStepTimeout(timeout, true);
80
81
  }
@@ -103,7 +104,7 @@ export function parseStepTimeout(timeout: unknown, agent = false): number {
103
104
  if (!Number.isSafeInteger(milliseconds) || milliseconds <= 0) {
104
105
  throw new CompileError([`${agent ? 'f.agent' : 'f.run'} timeout must be a positive whole number of milliseconds or a duration such as "10s" or "5m".`], 'timeout_invalid');
105
106
  }
106
- if (milliseconds > (agent ? AGENT_STEP_TIMEOUT_MAX_MS : 15 * 60_000)) {
107
+ if (milliseconds > (agent ? AGENT_STEP_TIMEOUT_MAX_MS : RUN_STEP_TIMEOUT_MAX_MS)) {
107
108
  throw new CompileError([`${agent ? 'f.agent' : 'f.run'} timeout exceeds the maximum of ${agent ? 60 : 15} minutes declared in SURFACE.md.`], 'lease_exceeded');
108
109
  }
109
110
  return milliseconds;
@@ -161,6 +161,7 @@ export const RUN_FAILURE_KINDS = [
161
161
  */
162
162
  'daemon_unresponsive',
163
163
  'root_lease_lost',
164
+ 'helper_writeback_pending',
164
165
  ] as const;
165
166
 
166
167
  /**
@@ -0,0 +1,43 @@
1
+ import { canonicalize } from './canonical.js';
2
+ import { FlowToolClient, type FlowToolInvocationOptions } from './flow-tool-client.js';
3
+ import { flowToolFunctionDefinition } from './flow-tool-definitions.js';
4
+ import { FLOW_TOOL_RUN_SCHEMA, type FlowToolCatalogEntryV1 } from './flow-tool-contract.js';
5
+ import { parseFlowToolEntry } from './flow-tool-wire.js';
6
+
7
+ /**
8
+ * One selected, authorized revision; no alternate execution path. Host/session
9
+ * code supplies stable operation metadata separately from model tool arguments.
10
+ * Register only after discovery with this same authenticated client. The server
11
+ * MUST reauthorize; possession of this object is not an authorization token.
12
+ */
13
+ export function createFlowToolAdapters(client: FlowToolClient, selected: FlowToolCatalogEntryV1) {
14
+ const entry = parseFlowToolEntry(selected);
15
+ const invoke = (input: unknown, operation: FlowToolInvocationOptions) => client.invoke(entry, input, operation);
16
+ return Object.freeze({
17
+ native: Object.freeze({ definition: flowToolFunctionDefinition(entry.manifest), call: invoke }),
18
+ mcp: Object.freeze({
19
+ // Do not reuse the legacy business-result-only metadata descriptor here:
20
+ // tools/call returns an async run envelope, not the eventual result object.
21
+ definition: Object.freeze({
22
+ name: entry.manifest.name, description: entry.manifest.description,
23
+ inputSchema: entry.manifest.inputSchema, outputSchema: FLOW_TOOL_RUN_SCHEMA,
24
+ }),
25
+ async call(input: unknown, operation: FlowToolInvocationOptions) {
26
+ const run = await invoke(input, operation);
27
+ return {
28
+ structuredContent: Object.freeze({ ...run }),
29
+ content: [{ type: 'text' as const, text: canonicalize(run) }],
30
+ };
31
+ },
32
+ }),
33
+ // Relay action registration can use this schema/handler. An action dispatch
34
+ // acknowledgment is not this return value and must never become completion.
35
+ action: Object.freeze({
36
+ definition: Object.freeze({
37
+ name: entry.manifest.name, description: entry.manifest.description,
38
+ inputSchema: entry.manifest.inputSchema, outputSchema: FLOW_TOOL_RUN_SCHEMA,
39
+ }),
40
+ invoke,
41
+ }),
42
+ });
43
+ }