@mongodb-js/agent-engine-runner-shared 0.11.3

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 (220) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/LICENSE.md +201 -0
  3. package/README.md +29 -0
  4. package/dist/agent_config.d.ts +167 -0
  5. package/dist/agent_config.d.ts.map +1 -0
  6. package/dist/agent_config.js +544 -0
  7. package/dist/call_interrupted.d.ts +12 -0
  8. package/dist/call_interrupted.d.ts.map +1 -0
  9. package/dist/call_interrupted.js +11 -0
  10. package/dist/checkpoint_workspace.d.ts +25 -0
  11. package/dist/checkpoint_workspace.d.ts.map +1 -0
  12. package/dist/checkpoint_workspace.js +44 -0
  13. package/dist/context.d.ts +235 -0
  14. package/dist/context.d.ts.map +1 -0
  15. package/dist/context.js +322 -0
  16. package/dist/db_config.d.ts +28 -0
  17. package/dist/db_config.d.ts.map +1 -0
  18. package/dist/db_config.js +66 -0
  19. package/dist/db_naming.d.ts +54 -0
  20. package/dist/db_naming.d.ts.map +1 -0
  21. package/dist/db_naming.js +94 -0
  22. package/dist/error_reporting.d.ts +67 -0
  23. package/dist/error_reporting.d.ts.map +1 -0
  24. package/dist/error_reporting.js +311 -0
  25. package/dist/generated/workflow/v1/activity_pb.d.ts +342 -0
  26. package/dist/generated/workflow/v1/activity_pb.d.ts.map +1 -0
  27. package/dist/generated/workflow/v1/activity_pb.js +115 -0
  28. package/dist/generated/workflow/v1/common_pb.d.ts +184 -0
  29. package/dist/generated/workflow/v1/common_pb.d.ts.map +1 -0
  30. package/dist/generated/workflow/v1/common_pb.js +86 -0
  31. package/dist/generated/workflow/v1/runtime_pb.d.ts +200 -0
  32. package/dist/generated/workflow/v1/runtime_pb.d.ts.map +1 -0
  33. package/dist/generated/workflow/v1/runtime_pb.js +40 -0
  34. package/dist/generated/workflow/v1/state_pb.d.ts +254 -0
  35. package/dist/generated/workflow/v1/state_pb.d.ts.map +1 -0
  36. package/dist/generated/workflow/v1/state_pb.js +68 -0
  37. package/dist/guardrails_evaluator/core.d.ts +23 -0
  38. package/dist/guardrails_evaluator/core.d.ts.map +1 -0
  39. package/dist/guardrails_evaluator/core.js +122 -0
  40. package/dist/guardrails_evaluator/index.d.ts +10 -0
  41. package/dist/guardrails_evaluator/index.d.ts.map +1 -0
  42. package/dist/guardrails_evaluator/index.js +11 -0
  43. package/dist/guardrails_evaluator/regex.d.ts +20 -0
  44. package/dist/guardrails_evaluator/regex.d.ts.map +1 -0
  45. package/dist/guardrails_evaluator/regex.js +233 -0
  46. package/dist/hooks.d.ts +109 -0
  47. package/dist/hooks.d.ts.map +1 -0
  48. package/dist/hooks.js +216 -0
  49. package/dist/http_path.d.ts +18 -0
  50. package/dist/http_path.d.ts.map +1 -0
  51. package/dist/http_path.js +53 -0
  52. package/dist/index.d.ts +35 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +41 -0
  55. package/dist/launcher.d.ts +130 -0
  56. package/dist/launcher.d.ts.map +1 -0
  57. package/dist/launcher.js +325 -0
  58. package/dist/logger.d.ts +96 -0
  59. package/dist/logger.d.ts.map +1 -0
  60. package/dist/logger.js +204 -0
  61. package/dist/mcp_oauth.d.ts +51 -0
  62. package/dist/mcp_oauth.d.ts.map +1 -0
  63. package/dist/mcp_oauth.js +389 -0
  64. package/dist/mcp_oauth_secret.d.ts +21 -0
  65. package/dist/mcp_oauth_secret.d.ts.map +1 -0
  66. package/dist/mcp_oauth_secret.js +122 -0
  67. package/dist/mcp_tools.d.ts +71 -0
  68. package/dist/mcp_tools.d.ts.map +1 -0
  69. package/dist/mcp_tools.js +301 -0
  70. package/dist/memory_appbound.d.ts +42 -0
  71. package/dist/memory_appbound.d.ts.map +1 -0
  72. package/dist/memory_appbound.js +159 -0
  73. package/dist/memory_writer.d.ts +49 -0
  74. package/dist/memory_writer.d.ts.map +1 -0
  75. package/dist/memory_writer.js +171 -0
  76. package/dist/metrics.d.ts +84 -0
  77. package/dist/metrics.d.ts.map +1 -0
  78. package/dist/metrics.js +205 -0
  79. package/dist/models.d.ts +1458 -0
  80. package/dist/models.d.ts.map +1 -0
  81. package/dist/models.js +1726 -0
  82. package/dist/node_logger.d.ts +43 -0
  83. package/dist/node_logger.d.ts.map +1 -0
  84. package/dist/node_logger.js +158 -0
  85. package/dist/owner_callback.d.ts +16 -0
  86. package/dist/owner_callback.d.ts.map +1 -0
  87. package/dist/owner_callback.js +40 -0
  88. package/dist/progress.d.ts +57 -0
  89. package/dist/progress.d.ts.map +1 -0
  90. package/dist/progress.js +140 -0
  91. package/dist/runtime.d.ts +131 -0
  92. package/dist/runtime.d.ts.map +1 -0
  93. package/dist/runtime.js +351 -0
  94. package/dist/secure_llm_proxy.d.ts +115 -0
  95. package/dist/secure_llm_proxy.d.ts.map +1 -0
  96. package/dist/secure_llm_proxy.js +922 -0
  97. package/dist/secure_wrapper.d.ts +332 -0
  98. package/dist/secure_wrapper.d.ts.map +1 -0
  99. package/dist/secure_wrapper.js +1249 -0
  100. package/dist/server/aer.d.ts +61 -0
  101. package/dist/server/aer.d.ts.map +1 -0
  102. package/dist/server/aer.js +1124 -0
  103. package/dist/server/auth.d.ts +56 -0
  104. package/dist/server/auth.d.ts.map +1 -0
  105. package/dist/server/auth.js +132 -0
  106. package/dist/server/base.d.ts +104 -0
  107. package/dist/server/base.d.ts.map +1 -0
  108. package/dist/server/base.js +150 -0
  109. package/dist/server/callInterrupt.d.ts +49 -0
  110. package/dist/server/callInterrupt.d.ts.map +1 -0
  111. package/dist/server/callInterrupt.js +68 -0
  112. package/dist/server/callback_delivery.d.ts +14 -0
  113. package/dist/server/callback_delivery.d.ts.map +1 -0
  114. package/dist/server/callback_delivery.js +141 -0
  115. package/dist/server/chunk_types.d.ts +50 -0
  116. package/dist/server/chunk_types.d.ts.map +1 -0
  117. package/dist/server/chunk_types.js +62 -0
  118. package/dist/server/cors.d.ts +52 -0
  119. package/dist/server/cors.d.ts.map +1 -0
  120. package/dist/server/cors.js +107 -0
  121. package/dist/server/drain.d.ts +169 -0
  122. package/dist/server/drain.d.ts.map +1 -0
  123. package/dist/server/drain.js +455 -0
  124. package/dist/server/function.d.ts +77 -0
  125. package/dist/server/function.d.ts.map +1 -0
  126. package/dist/server/function.js +337 -0
  127. package/dist/server/http_retry.d.ts +37 -0
  128. package/dist/server/http_retry.d.ts.map +1 -0
  129. package/dist/server/http_retry.js +157 -0
  130. package/dist/server/index.d.ts +7 -0
  131. package/dist/server/index.d.ts.map +1 -0
  132. package/dist/server/index.js +5 -0
  133. package/dist/server/metadata.d.ts +50 -0
  134. package/dist/server/metadata.d.ts.map +1 -0
  135. package/dist/server/metadata.js +193 -0
  136. package/dist/server/oe_url.d.ts +36 -0
  137. package/dist/server/oe_url.d.ts.map +1 -0
  138. package/dist/server/oe_url.js +50 -0
  139. package/dist/server/owner_url.d.ts +35 -0
  140. package/dist/server/owner_url.d.ts.map +1 -0
  141. package/dist/server/owner_url.js +146 -0
  142. package/dist/server/query.d.ts +42 -0
  143. package/dist/server/query.d.ts.map +1 -0
  144. package/dist/server/query.js +28 -0
  145. package/dist/server/tool.d.ts +138 -0
  146. package/dist/server/tool.d.ts.map +1 -0
  147. package/dist/server/tool.js +1017 -0
  148. package/dist/span_names.d.ts +21 -0
  149. package/dist/span_names.d.ts.map +1 -0
  150. package/dist/span_names.js +31 -0
  151. package/dist/structured_logging/constants.d.ts +17 -0
  152. package/dist/structured_logging/constants.d.ts.map +1 -0
  153. package/dist/structured_logging/constants.js +71 -0
  154. package/dist/structured_logging/env.d.ts +18 -0
  155. package/dist/structured_logging/env.d.ts.map +1 -0
  156. package/dist/structured_logging/env.js +39 -0
  157. package/dist/structured_logging/install.d.ts +56 -0
  158. package/dist/structured_logging/install.d.ts.map +1 -0
  159. package/dist/structured_logging/install.js +107 -0
  160. package/dist/structured_logging/layout.d.ts +9 -0
  161. package/dist/structured_logging/layout.d.ts.map +1 -0
  162. package/dist/structured_logging/layout.js +144 -0
  163. package/dist/structured_logging/serialize.d.ts +27 -0
  164. package/dist/structured_logging/serialize.d.ts.map +1 -0
  165. package/dist/structured_logging/serialize.js +61 -0
  166. package/dist/structured_logging/stdio_capture.d.ts +59 -0
  167. package/dist/structured_logging/stdio_capture.d.ts.map +1 -0
  168. package/dist/structured_logging/stdio_capture.js +164 -0
  169. package/dist/structured_logging/uncaught.d.ts +14 -0
  170. package/dist/structured_logging/uncaught.d.ts.map +1 -0
  171. package/dist/structured_logging/uncaught.js +58 -0
  172. package/dist/structured_logging.d.ts +48 -0
  173. package/dist/structured_logging.d.ts.map +1 -0
  174. package/dist/structured_logging.js +47 -0
  175. package/dist/tls_client.d.ts +61 -0
  176. package/dist/tls_client.d.ts.map +1 -0
  177. package/dist/tls_client.js +298 -0
  178. package/dist/tool_api_error.d.ts +62 -0
  179. package/dist/tool_api_error.d.ts.map +1 -0
  180. package/dist/tool_api_error.js +399 -0
  181. package/dist/tool_memory_ownership.d.ts +10 -0
  182. package/dist/tool_memory_ownership.d.ts.map +1 -0
  183. package/dist/tool_memory_ownership.js +36 -0
  184. package/dist/toolpod_handlers.d.ts +126 -0
  185. package/dist/toolpod_handlers.d.ts.map +1 -0
  186. package/dist/toolpod_handlers.js +1016 -0
  187. package/dist/tracing/exporters.d.ts +51 -0
  188. package/dist/tracing/exporters.d.ts.map +1 -0
  189. package/dist/tracing/exporters.js +327 -0
  190. package/dist/tracing/index.d.ts +3 -0
  191. package/dist/tracing/index.d.ts.map +1 -0
  192. package/dist/tracing/index.js +2 -0
  193. package/dist/tracing/setup.d.ts +76 -0
  194. package/dist/tracing/setup.d.ts.map +1 -0
  195. package/dist/tracing/setup.js +436 -0
  196. package/dist/utils.d.ts +204 -0
  197. package/dist/utils.d.ts.map +1 -0
  198. package/dist/utils.js +867 -0
  199. package/dist/workflow/activity.d.ts +71 -0
  200. package/dist/workflow/activity.d.ts.map +1 -0
  201. package/dist/workflow/activity.js +357 -0
  202. package/dist/workflow/attempt.d.ts +12 -0
  203. package/dist/workflow/attempt.d.ts.map +1 -0
  204. package/dist/workflow/attempt.js +96 -0
  205. package/dist/workflow/client.d.ts +46 -0
  206. package/dist/workflow/client.d.ts.map +1 -0
  207. package/dist/workflow/client.js +299 -0
  208. package/dist/workflow/context.d.ts +37 -0
  209. package/dist/workflow/context.d.ts.map +1 -0
  210. package/dist/workflow/context.js +350 -0
  211. package/dist/workflow/heartbeat.d.ts +15 -0
  212. package/dist/workflow/heartbeat.d.ts.map +1 -0
  213. package/dist/workflow/heartbeat.js +78 -0
  214. package/dist/workflow/index.d.ts +14 -0
  215. package/dist/workflow/index.d.ts.map +1 -0
  216. package/dist/workflow/index.js +10 -0
  217. package/dist/workflow/memory.d.ts +17 -0
  218. package/dist/workflow/memory.d.ts.map +1 -0
  219. package/dist/workflow/memory.js +184 -0
  220. package/package.json +73 -0
@@ -0,0 +1,71 @@
1
+ /** Serial activity helpers for OE-owned durable workflow identity. */
2
+ import { type Value } from "@bufbuild/protobuf/wkt";
3
+ import { type ActivityCommand, type ActivityContext, type ActivityKind, type ActivityOutcome } from "../generated/workflow/v1/activity_pb.js";
4
+ import { WorkflowErrorCode, type OperationPath } from "../generated/workflow/v1/common_pb.js";
5
+ import type { AttemptContext } from "../generated/workflow/v1/runtime_pb.js";
6
+ import { WorkflowClientError, type WorkflowClient } from "./client.js";
7
+ type ActivityRuntimeClient = Pick<WorkflowClient, "startActivity" | "reportOutcome">;
8
+ export type ActivityResolvedHook<T = unknown> = (client: ActivityRuntimeClient, context: ActivityContext, result: T) => void | Promise<void>;
9
+ export declare class DurableActivityDeniedError extends Error {
10
+ constructor(message: string, options?: ErrorOptions);
11
+ }
12
+ export declare class DurableActivityInterrupted extends Error {
13
+ readonly controlFlow: unknown;
14
+ constructor(controlFlow: unknown);
15
+ }
16
+ export declare class ReplayedActivityFailedError extends WorkflowClientError {
17
+ constructor(code: WorkflowErrorCode, message: string);
18
+ }
19
+ export declare function semanticInputFromJson(value: unknown): Value;
20
+ export declare function valueToJson(value: Value | undefined): unknown;
21
+ export declare function buildActivityCommand(args: {
22
+ attempt: AttemptContext;
23
+ kind: ActivityKind;
24
+ name: string;
25
+ activityOrdinal: number;
26
+ semanticInput: unknown;
27
+ stepOrdinal?: number;
28
+ operationPath?: OperationPath;
29
+ }): ActivityCommand;
30
+ export declare function completedOutcome(context: ActivityContext, result: unknown): ActivityOutcome;
31
+ export declare function failedOutcome(context: ActivityContext, message: string, code?: WorkflowErrorCode): ActivityOutcome;
32
+ export declare function unwrapActivityOutcome(outcome: ActivityOutcome): unknown;
33
+ export declare function runSerialActivity<T>(args: {
34
+ client: ActivityRuntimeClient;
35
+ kind: ActivityKind;
36
+ name: string;
37
+ activityOrdinal: number;
38
+ semanticInput: unknown;
39
+ execute: (context: ActivityContext) => T | Promise<T>;
40
+ onActivityResolved?: ActivityResolvedHook<T>;
41
+ attempt?: AttemptContext;
42
+ stepOrdinal?: number;
43
+ /** False only when the framework has assigned a stable activity identity. */
44
+ exclusive?: boolean;
45
+ }): Promise<T>;
46
+ type StreamingItems<T> = Iterable<T> | AsyncIterable<T>;
47
+ /**
48
+ * Run one generator-shaped durable activity.
49
+ *
50
+ * Replay expands a recorded result back into stream items without executing
51
+ * the effect. A fresh dispatch yields live items immediately, then folds them
52
+ * into the single terminal result recorded by OE. Closing the stream early
53
+ * terminal-fails the dispatch instead of leaving it in flight.
54
+ */
55
+ export declare function runStreamingActivity<T>(args: {
56
+ client: ActivityRuntimeClient;
57
+ kind: ActivityKind;
58
+ name: string;
59
+ activityOrdinal: number;
60
+ semanticInput: unknown;
61
+ execute: () => StreamingItems<T>;
62
+ replay: (result: unknown) => StreamingItems<T>;
63
+ fold: (items: T[]) => unknown | Promise<unknown>;
64
+ onActivityResolved?: ActivityResolvedHook;
65
+ attempt?: AttemptContext;
66
+ stepOrdinal?: number;
67
+ /** False when the caller has assigned a stable activity identity. */
68
+ exclusive?: boolean;
69
+ }): AsyncGenerator<T>;
70
+ export {};
71
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workflow/activity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,357 @@
1
+ /** Serial activity helpers for OE-owned durable workflow identity. */
2
+ import { create, fromJson, toJson } from "@bufbuild/protobuf";
3
+ import { ValueSchema } from "@bufbuild/protobuf/wkt";
4
+ import { ActivityCommandSchema, ActivityContextSchema, ActivityOutcomeKind, ActivityOutcomeSchema, } from "../generated/workflow/v1/activity_pb.js";
5
+ import { ActivityPositionSchema, OperationPathSchema, WorkflowErrorCode, WorkflowErrorSchema, } from "../generated/workflow/v1/common_pb.js";
6
+ import { getLogger } from "../logger.js";
7
+ import { ActivityReplay, WorkflowClientError, } from "./client.js";
8
+ import { currentAttemptContext, currentOperationPath, currentStepOrdinal, activityRequiresReconstruction, recordInterruptedActivity, recordObservedActivity, recordReconstructedActivityInterrupt, } from "./context.js";
9
+ const logger = getLogger("agent_engine_runner_shared.workflow.activity");
10
+ export class DurableActivityDeniedError extends Error {
11
+ constructor(message, options) {
12
+ super(message, options);
13
+ this.name = "DurableActivityDeniedError";
14
+ }
15
+ }
16
+ export class DurableActivityInterrupted extends Error {
17
+ controlFlow;
18
+ constructor(controlFlow) {
19
+ super(controlFlow instanceof Error ? controlFlow.message : String(controlFlow));
20
+ this.controlFlow = controlFlow;
21
+ this.name = "DurableActivityInterrupted";
22
+ }
23
+ }
24
+ export class ReplayedActivityFailedError extends WorkflowClientError {
25
+ constructor(code, message) {
26
+ super(code, message);
27
+ this.name = "ReplayedActivityFailedError";
28
+ }
29
+ }
30
+ export function semanticInputFromJson(value) {
31
+ const encoded = JSON.stringify(value === undefined ? null : value);
32
+ if (encoded === undefined) {
33
+ throw new TypeError("semantic input is not JSON-serializable");
34
+ }
35
+ return fromJson(ValueSchema, JSON.parse(encoded));
36
+ }
37
+ export function valueToJson(value) {
38
+ if (value === undefined)
39
+ return null;
40
+ return toJson(ValueSchema, value);
41
+ }
42
+ export function buildActivityCommand(args) {
43
+ if (!args.attempt.workflowIdentity?.executionId) {
44
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, "ActivityCommand requires AttemptContext.workflow_identity");
45
+ }
46
+ if (args.activityOrdinal <= 0) {
47
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, "activity_ordinal must be positive");
48
+ }
49
+ const resolvedStep = args.stepOrdinal === undefined ? currentStepOrdinal() : args.stepOrdinal;
50
+ if (resolvedStep <= 0) {
51
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, "step_ordinal must be positive");
52
+ }
53
+ const operationPath = args.operationPath ?? currentOperationPath();
54
+ return create(ActivityCommandSchema, {
55
+ workflowIdentity: args.attempt.workflowIdentity,
56
+ attemptId: args.attempt.attemptId,
57
+ fencingToken: args.attempt.fencingToken,
58
+ position: create(ActivityPositionSchema, {
59
+ operationPath: create(OperationPathSchema, {
60
+ segments: operationPath.segments,
61
+ }),
62
+ activityOrdinal: BigInt(args.activityOrdinal),
63
+ stepOrdinal: BigInt(resolvedStep),
64
+ }),
65
+ activityKind: args.kind,
66
+ activityName: args.name,
67
+ semanticInput: semanticInputFromJson(args.semanticInput),
68
+ });
69
+ }
70
+ export function completedOutcome(context, result) {
71
+ return create(ActivityOutcomeSchema, {
72
+ workflowIdentity: context.workflowIdentity,
73
+ activityId: context.activityId,
74
+ attemptId: context.attemptId,
75
+ fencingToken: context.fencingToken,
76
+ outcomeKind: ActivityOutcomeKind.COMPLETED,
77
+ result: semanticInputFromJson(result),
78
+ });
79
+ }
80
+ export function failedOutcome(context, message, code = WorkflowErrorCode.OUTCOME_UNKNOWN) {
81
+ return create(ActivityOutcomeSchema, {
82
+ workflowIdentity: context.workflowIdentity,
83
+ activityId: context.activityId,
84
+ attemptId: context.attemptId,
85
+ fencingToken: context.fencingToken,
86
+ outcomeKind: ActivityOutcomeKind.FAILED,
87
+ error: create(WorkflowErrorSchema, { code, message }),
88
+ });
89
+ }
90
+ function contextFromOutcome(outcome) {
91
+ return create(ActivityContextSchema, {
92
+ workflowIdentity: outcome.workflowIdentity,
93
+ activityId: outcome.activityId,
94
+ attemptId: outcome.attemptId,
95
+ fencingToken: outcome.fencingToken,
96
+ });
97
+ }
98
+ function deniedOutcome(context, message) {
99
+ return create(ActivityOutcomeSchema, {
100
+ workflowIdentity: context.workflowIdentity,
101
+ activityId: context.activityId,
102
+ attemptId: context.attemptId,
103
+ fencingToken: context.fencingToken,
104
+ outcomeKind: ActivityOutcomeKind.DENIED,
105
+ // OE WorkflowError.Validate rejects UNSPECIFIED; denied fixtures use UNAUTHORIZED.
106
+ error: create(WorkflowErrorSchema, {
107
+ code: WorkflowErrorCode.UNAUTHORIZED,
108
+ message,
109
+ }),
110
+ });
111
+ }
112
+ export function unwrapActivityOutcome(outcome) {
113
+ switch (outcome.outcomeKind) {
114
+ case ActivityOutcomeKind.COMPLETED:
115
+ return valueToJson(outcome.result);
116
+ case ActivityOutcomeKind.DENIED:
117
+ throw new DurableActivityDeniedError(outcome.error?.message || "durable activity denied by policy");
118
+ case ActivityOutcomeKind.FAILED:
119
+ throw new ReplayedActivityFailedError(outcome.error?.code || WorkflowErrorCode.OUTCOME_UNKNOWN, outcome.error?.message || "durable activity failed");
120
+ case ActivityOutcomeKind.SUSPENDED:
121
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, "shared durable activities support terminal outcomes only; " +
122
+ "framework adapters must own suspension and resume");
123
+ case ActivityOutcomeKind.UNSPECIFIED:
124
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, "activity outcome kind is unspecified");
125
+ default: {
126
+ const _exhaustive = outcome.outcomeKind;
127
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, `activity outcome kind is unspecified: ${_exhaustive}`);
128
+ }
129
+ }
130
+ }
131
+ const attemptActivityGates = new Map();
132
+ const CONFLICT_MESSAGE = "this attempt already has an in-flight activity";
133
+ /**
134
+ * Admit one activity under the attempt-local concurrency gate. Activities with
135
+ * stable position identity may share the attempt; unkeyed effects are exclusive.
136
+ */
137
+ function acquireActivitySlot(attemptId, exclusive) {
138
+ const gate = attemptActivityGates.get(attemptId) ?? {
139
+ exclusive: false,
140
+ shared: 0,
141
+ };
142
+ if (exclusive ? gate.exclusive || gate.shared > 0 : gate.exclusive) {
143
+ throw new WorkflowClientError(WorkflowErrorCode.CONFLICT, CONFLICT_MESSAGE);
144
+ }
145
+ if (exclusive)
146
+ gate.exclusive = true;
147
+ else
148
+ gate.shared += 1;
149
+ attemptActivityGates.set(attemptId, gate);
150
+ let released = false;
151
+ return () => {
152
+ if (released)
153
+ return;
154
+ released = true;
155
+ const current = attemptActivityGates.get(attemptId);
156
+ if (current === undefined)
157
+ return;
158
+ if (exclusive)
159
+ current.exclusive = false;
160
+ else
161
+ current.shared = Math.max(0, current.shared - 1);
162
+ if (!current.exclusive && current.shared === 0) {
163
+ attemptActivityGates.delete(attemptId);
164
+ }
165
+ };
166
+ }
167
+ async function withActivitySlot(attemptId, exclusive, fn) {
168
+ const release = acquireActivitySlot(attemptId, exclusive);
169
+ try {
170
+ return await fn();
171
+ }
172
+ finally {
173
+ release();
174
+ }
175
+ }
176
+ async function reportDenied(client, context, error) {
177
+ try {
178
+ await client.reportOutcome(deniedOutcome(context, error.message));
179
+ }
180
+ catch (reportError) {
181
+ if (reportError instanceof WorkflowClientError) {
182
+ logger.error("Failed to report denied activity outcome", error, reportError);
183
+ throw reportError;
184
+ }
185
+ logger.error("Failed to report denied activity outcome", reportError);
186
+ }
187
+ }
188
+ async function reportFailure(client, context, error) {
189
+ const message = error instanceof Error ? error.message : String(error);
190
+ try {
191
+ await client.reportOutcome(failedOutcome(context, message));
192
+ }
193
+ catch (reportError) {
194
+ if (reportError instanceof WorkflowClientError) {
195
+ logger.error("Failed to report failed activity outcome", error, reportError);
196
+ throw reportError;
197
+ }
198
+ logger.error("Failed to report failed activity outcome", reportError);
199
+ }
200
+ }
201
+ function requireAttempt(attempt, caller) {
202
+ const resolved = attempt ?? currentAttemptContext() ?? undefined;
203
+ if (resolved === undefined) {
204
+ throw new WorkflowClientError(WorkflowErrorCode.INVALID_ARGUMENT, `${caller} requires an OE-issued AttemptContext`);
205
+ }
206
+ return resolved;
207
+ }
208
+ export async function runSerialActivity(args) {
209
+ const attempt = requireAttempt(args.attempt, "runSerialActivity");
210
+ return withActivitySlot(attempt.attemptId, args.exclusive ?? true, async () => {
211
+ const command = buildActivityCommand({
212
+ attempt,
213
+ kind: args.kind,
214
+ name: args.name,
215
+ activityOrdinal: args.activityOrdinal,
216
+ stepOrdinal: args.stepOrdinal,
217
+ semanticInput: args.semanticInput,
218
+ });
219
+ return runDispatchedActivity(args.client, command, args.execute, args.onActivityResolved);
220
+ });
221
+ }
222
+ /**
223
+ * Run one generator-shaped durable activity.
224
+ *
225
+ * Replay expands a recorded result back into stream items without executing
226
+ * the effect. A fresh dispatch yields live items immediately, then folds them
227
+ * into the single terminal result recorded by OE. Closing the stream early
228
+ * terminal-fails the dispatch instead of leaving it in flight.
229
+ */
230
+ export async function* runStreamingActivity(args) {
231
+ const attempt = requireAttempt(args.attempt, "runStreamingActivity");
232
+ const release = acquireActivitySlot(attempt.attemptId, args.exclusive ?? true);
233
+ try {
234
+ const command = buildActivityCommand({
235
+ attempt,
236
+ kind: args.kind,
237
+ name: args.name,
238
+ activityOrdinal: args.activityOrdinal,
239
+ stepOrdinal: args.stepOrdinal,
240
+ semanticInput: args.semanticInput,
241
+ });
242
+ const started = await args.client.startActivity(command);
243
+ if (command.position !== undefined) {
244
+ recordObservedActivity(command.position);
245
+ }
246
+ if (started instanceof ActivityReplay) {
247
+ const result = unwrapActivityOutcome(started.outcome);
248
+ await args.onActivityResolved?.(args.client, contextFromOutcome(started.outcome), result);
249
+ for await (const item of args.replay(result)) {
250
+ yield item;
251
+ }
252
+ return;
253
+ }
254
+ yield* runDispatchedActivityStream(args.client, started.context, args.execute, args.fold, args.onActivityResolved);
255
+ }
256
+ finally {
257
+ release();
258
+ }
259
+ }
260
+ async function* runDispatchedActivityStream(client, context, execute, fold, onActivityResolved) {
261
+ let terminalReportStarted = false;
262
+ try {
263
+ const items = [];
264
+ try {
265
+ for await (const item of execute()) {
266
+ items.push(item);
267
+ yield item;
268
+ }
269
+ }
270
+ catch (error) {
271
+ terminalReportStarted = true;
272
+ if (error instanceof DurableActivityDeniedError) {
273
+ await reportDenied(client, context, error);
274
+ }
275
+ else {
276
+ await reportFailure(client, context, error);
277
+ }
278
+ throw error;
279
+ }
280
+ let outcome;
281
+ let result;
282
+ try {
283
+ result = await fold(items);
284
+ outcome = completedOutcome(context, result);
285
+ }
286
+ catch (error) {
287
+ terminalReportStarted = true;
288
+ await reportFailure(client, context, error);
289
+ throw error;
290
+ }
291
+ terminalReportStarted = true;
292
+ await client.reportOutcome(outcome);
293
+ await onActivityResolved?.(client, context, result);
294
+ }
295
+ finally {
296
+ // Closing an async generator stops its producer at the current yield. The
297
+ // dispatched effect must still receive a terminal outcome in that case.
298
+ if (!terminalReportStarted) {
299
+ await client.reportOutcome(failedOutcome(context, "stream abandoned before completion"));
300
+ }
301
+ }
302
+ }
303
+ async function runDispatchedActivity(client, command, execute, onActivityResolved) {
304
+ const started = await client.startActivity(command);
305
+ if (command.position !== undefined) {
306
+ recordObservedActivity(command.position);
307
+ }
308
+ if (started instanceof ActivityReplay) {
309
+ if (!activityRequiresReconstruction(started.outcome.activityId)) {
310
+ const result = unwrapActivityOutcome(started.outcome);
311
+ await onActivityResolved?.(client, contextFromOutcome(started.outcome), result);
312
+ return result;
313
+ }
314
+ }
315
+ const reconstructing = started instanceof ActivityReplay;
316
+ const context = reconstructing
317
+ ? contextFromOutcome(started.outcome)
318
+ : started.context;
319
+ let result;
320
+ try {
321
+ result = await execute(context);
322
+ }
323
+ catch (error) {
324
+ if (error instanceof DurableActivityDeniedError) {
325
+ if (!reconstructing)
326
+ await reportDenied(client, context, error);
327
+ throw error;
328
+ }
329
+ if (error instanceof DurableActivityInterrupted) {
330
+ if (reconstructing &&
331
+ recordReconstructedActivityInterrupt(context.activityId) > 1) {
332
+ throw new Error("a durable local tool cannot raise another native interrupt " +
333
+ "after its recorded answer is resumed", { cause: error });
334
+ }
335
+ recordInterruptedActivity(command, error.controlFlow);
336
+ throw error.controlFlow;
337
+ }
338
+ if (!reconstructing)
339
+ await reportFailure(client, context, error);
340
+ throw error;
341
+ }
342
+ if (reconstructing) {
343
+ await onActivityResolved?.(client, context, result);
344
+ return result;
345
+ }
346
+ let outcome;
347
+ try {
348
+ outcome = completedOutcome(context, result);
349
+ }
350
+ catch (error) {
351
+ await reportFailure(client, context, error);
352
+ throw error;
353
+ }
354
+ await client.reportOutcome(outcome);
355
+ await onActivityResolved?.(client, context, result);
356
+ return result;
357
+ }
@@ -0,0 +1,12 @@
1
+ /** Build durable attempt inputs from an AER execute request. */
2
+ import type { ExecuteRequest } from "../models.js";
3
+ import type { StepSuspensionEntry } from "../generated/workflow/v1/activity_pb.js";
4
+ import { type AttemptContext, type AttemptStartRequest } from "../generated/workflow/v1/runtime_pb.js";
5
+ import { type CompleteExecutionCommand, type FinalizeStepCommand, type StateSnapshot } from "../generated/workflow/v1/state_pb.js";
6
+ export declare function completeExecutionCommand(attempt: AttemptContext, state: StateSnapshot): CompleteExecutionCommand;
7
+ export declare function newDurabilityOwnerId(): string;
8
+ export declare function finalizeCurrentStepCommand(attempt: AttemptContext, state: StateSnapshot): FinalizeStepCommand;
9
+ export declare function finalizeCurrentStepSuspensionsCommand(attempt: AttemptContext, suspensions: readonly StepSuspensionEntry[]): FinalizeStepCommand;
10
+ export declare function attemptStartRequestFromExecute(request: ExecuteRequest, sessionId: string, ownerId: string, appName: string, workflowVersion?: string, memoryEnabled?: boolean): AttemptStartRequest | null;
11
+ export declare function heartbeatIntervalMs(value: bigint): number;
12
+ //# sourceMappingURL=attempt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attempt.d.ts","sourceRoot":"","sources":["../../src/workflow/attempt.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAMhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAMnF,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,sCAAsC,CAAC;AAO9C,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,aAAa,GACnB,wBAAwB,CAO1B;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,aAAa,GACnB,mBAAmB,CAUrB;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,SAAS,mBAAmB,EAAE,GAC1C,mBAAmB,CAoBrB;AA+BD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,UAAQ,GACpB,mBAAmB,GAAG,IAAI,CAkB5B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOzD"}
@@ -0,0 +1,96 @@
1
+ /** Build durable attempt inputs from an AER execute request. */
2
+ import { hostname } from "node:os";
3
+ import { randomUUID } from "node:crypto";
4
+ import { create } from "@bufbuild/protobuf";
5
+ import { TenantScopeSchema, WorkflowIdentitySchema, } from "../generated/workflow/v1/common_pb.js";
6
+ import { AttemptStartRequestSchema, WorkflowDeclarationSchema, } from "../generated/workflow/v1/runtime_pb.js";
7
+ import { CompleteExecutionCommandSchema, FinalizeStepCommandSchema, } from "../generated/workflow/v1/state_pb.js";
8
+ import { getWorkflowAdapter } from "../hooks.js";
9
+ import { currentStepOrdinal, observedActivityPositions } from "./context.js";
10
+ /** Default workflow version when the runtime does not declare one. */
11
+ const DEFAULT_WORKFLOW_VERSION = "1";
12
+ export function completeExecutionCommand(attempt, state) {
13
+ return create(CompleteExecutionCommandSchema, {
14
+ workflowIdentity: attempt.workflowIdentity,
15
+ attemptId: attempt.attemptId,
16
+ fencingToken: attempt.fencingToken,
17
+ state,
18
+ });
19
+ }
20
+ export function newDurabilityOwnerId() {
21
+ return `${hostname()}:${process.pid}:${randomUUID()}`;
22
+ }
23
+ export function finalizeCurrentStepCommand(attempt, state) {
24
+ const stepOrdinal = currentStepOrdinal();
25
+ return create(FinalizeStepCommandSchema, {
26
+ workflowIdentity: attempt.workflowIdentity,
27
+ attemptId: attempt.attemptId,
28
+ fencingToken: attempt.fencingToken,
29
+ state,
30
+ stepOrdinal: BigInt(stepOrdinal),
31
+ observedActivityPositions: observedActivityPositions(stepOrdinal),
32
+ });
33
+ }
34
+ export function finalizeCurrentStepSuspensionsCommand(attempt, suspensions) {
35
+ if (suspensions.length === 0) {
36
+ throw new Error("step suspension finalization requires at least one entry");
37
+ }
38
+ const stepOrdinal = currentStepOrdinal();
39
+ if (suspensions.some((entry) => entry.position?.stepOrdinal !== BigInt(stepOrdinal))) {
40
+ throw new Error("step suspension entry belongs to another workflow step");
41
+ }
42
+ return create(FinalizeStepCommandSchema, {
43
+ workflowIdentity: attempt.workflowIdentity,
44
+ attemptId: attempt.attemptId,
45
+ fencingToken: attempt.fencingToken,
46
+ stepOrdinal: BigInt(stepOrdinal),
47
+ observedActivityPositions: observedActivityPositions(stepOrdinal),
48
+ suspensions: [...suspensions],
49
+ });
50
+ }
51
+ function workflowIdentityFromExecuteRequest(request, sessionId) {
52
+ const orgId = (request.org_id ?? "").trim();
53
+ const projectId = (request.project_id ?? "").trim();
54
+ const workspaceId = (request.workspace_id ?? "").trim();
55
+ const executionId = (request.execution_id ?? "").trim();
56
+ const resolvedSession = sessionId.trim();
57
+ if (!orgId ||
58
+ !projectId ||
59
+ !workspaceId ||
60
+ !executionId ||
61
+ !resolvedSession) {
62
+ return null;
63
+ }
64
+ return create(WorkflowIdentitySchema, {
65
+ tenantScope: create(TenantScopeSchema, {
66
+ orgId,
67
+ projectId,
68
+ workspaceId,
69
+ }),
70
+ sessionId: resolvedSession,
71
+ executionId,
72
+ });
73
+ }
74
+ export function attemptStartRequestFromExecute(request, sessionId, ownerId, appName, workflowVersion, memoryEnabled = false) {
75
+ const workflowIdentity = workflowIdentityFromExecuteRequest(request, sessionId);
76
+ const adapter = getWorkflowAdapter();
77
+ if (workflowIdentity === null || adapter === null)
78
+ return null;
79
+ return create(AttemptStartRequestSchema, {
80
+ workflowIdentity,
81
+ ownerId,
82
+ declaration: create(WorkflowDeclarationSchema, {
83
+ workflowName: appName,
84
+ workflowVersion: workflowVersion || DEFAULT_WORKFLOW_VERSION,
85
+ adapterName: adapter.name,
86
+ adapterVersion: adapter.version,
87
+ memoryEnabled,
88
+ }),
89
+ });
90
+ }
91
+ export function heartbeatIntervalMs(value) {
92
+ if (value <= 0n || value > BigInt(Number.MAX_SAFE_INTEGER)) {
93
+ throw new Error("AttemptContext.heartbeat_interval_ms must be a positive safe duration");
94
+ }
95
+ return Number(value);
96
+ }
@@ -0,0 +1,46 @@
1
+ /** Thin ProtoJSON HTTP client for OE durable attempt, activity, and step APIs. */
2
+ import { type Message } from "@bufbuild/protobuf";
3
+ import type { GenMessage } from "@bufbuild/protobuf/codegenv2";
4
+ import { type ActivityCommand, type ActivityContext, type ActivityMemoryCommand, type ActivityOutcome, type StepActivityEntry } from "../generated/workflow/v1/activity_pb.js";
5
+ import { WorkflowErrorCode } from "../generated/workflow/v1/common_pb.js";
6
+ import { type AttemptContext, type AttemptHeartbeatRequest, type AttemptStartRequest } from "../generated/workflow/v1/runtime_pb.js";
7
+ import { type CompleteExecutionCommand, type FinalizeStepCommand } from "../generated/workflow/v1/state_pb.js";
8
+ export declare class ActivityDispatch {
9
+ readonly context: ActivityContext;
10
+ constructor(context: ActivityContext);
11
+ }
12
+ export declare class ActivityReplay {
13
+ readonly outcome: ActivityOutcome;
14
+ constructor(outcome: ActivityOutcome);
15
+ }
16
+ export type StartActivityResult = ActivityDispatch | ActivityReplay;
17
+ export declare class WorkflowClientError extends Error {
18
+ readonly code: WorkflowErrorCode;
19
+ constructor(code: WorkflowErrorCode, message: string, options?: ErrorOptions);
20
+ }
21
+ type FetchFn = typeof fetch;
22
+ /**
23
+ * Encode one protobuf message as a ProtoJSON string using wire field names.
24
+ * Shared so framework adapters post platform-shaped JSON bodies without
25
+ * hand-rolling serialization.
26
+ */
27
+ export declare function encodeProtoJson<T extends Message>(schema: GenMessage<T>, message: T): string;
28
+ export declare class WorkflowClient {
29
+ private readonly baseUrl;
30
+ private readonly fetchFn;
31
+ private readonly timeoutMs;
32
+ constructor(oeUrl: string, options?: {
33
+ fetch?: FetchFn;
34
+ timeoutMs?: number;
35
+ });
36
+ startAttempt(request: AttemptStartRequest): Promise<AttemptContext | null>;
37
+ heartbeat(request: AttemptHeartbeatRequest): Promise<void>;
38
+ startActivity(command: ActivityCommand): Promise<StartActivityResult>;
39
+ reportOutcome(outcome: ActivityOutcome): Promise<void>;
40
+ ensureMemoryWritten(command: ActivityMemoryCommand): Promise<void>;
41
+ finalizeStep(command: FinalizeStepCommand): Promise<StepActivityEntry[]>;
42
+ completeExecution(command: CompleteExecutionCommand): Promise<void>;
43
+ private post;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/workflow/client.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,iBAAiB,EAGlB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,sCAAsC,CAAC;AAsB9C,qBAAa,gBAAgB;IACf,QAAQ,CAAC,OAAO,EAAE,eAAe;gBAAxB,OAAO,EAAE,eAAe;CAC9C;AAED,qBAAa,cAAc;IACb,QAAQ,CAAC,OAAO,EAAE,eAAe;gBAAxB,OAAO,EAAE,eAAe;CAC9C;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEpE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;gBAG/B,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY;CAMzB;AAED,KAAK,OAAO,GAAG,OAAO,KAAK,CAAC;AAE5B;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAC/C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,CAAC,GACT,MAAM,CAER;AAqND,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAOjD,YAAY,CAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAiE3B,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAarE,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAatD,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAalE,YAAY,CAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuBzB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;YAa3D,IAAI;CA0BnB"}