@stigmer/runner 3.2.1 → 3.2.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.
- package/dist/.build-fingerprint +1 -1
- package/dist/activities/call-transform.js +12 -2
- package/dist/activities/call-transform.js.map +1 -1
- package/dist/activities/call-validate.js +20 -2
- package/dist/activities/call-validate.js.map +1 -1
- package/dist/activities/discover-mcp-server.js +6 -20
- package/dist/activities/discover-mcp-server.js.map +1 -1
- package/dist/activities/execute-cursor/index.d.ts +12 -0
- package/dist/activities/execute-cursor/index.js +53 -12
- package/dist/activities/execute-cursor/index.js.map +1 -1
- package/dist/activities/execute-cursor/prompt-builder.d.ts +19 -0
- package/dist/activities/execute-cursor/prompt-builder.js +21 -0
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +19 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js +12 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/setup.js +4 -0
- package/dist/activities/execute-deep-agent/setup.js.map +1 -1
- package/dist/activities/workflow-event-activities.js +2 -0
- package/dist/activities/workflow-event-activities.js.map +1 -1
- package/dist/config.d.ts +17 -0
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/runner-manager.d.ts +2 -0
- package/dist/runner-manager.js +2 -1
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.d.ts +2 -0
- package/dist/runner.js +2 -1
- package/dist/runner.js.map +1 -1
- package/dist/shared/context-bridge.d.ts +30 -0
- package/dist/shared/context-bridge.js +45 -0
- package/dist/shared/context-bridge.js.map +1 -0
- package/dist/shared/sender-identity.d.ts +50 -0
- package/dist/shared/sender-identity.js +69 -0
- package/dist/shared/sender-identity.js.map +1 -0
- package/dist/shared/with-timeout.d.ts +17 -0
- package/dist/shared/with-timeout.js +34 -0
- package/dist/shared/with-timeout.js.map +1 -0
- package/dist/workflow-engine/do-executor.d.ts +7 -0
- package/dist/workflow-engine/do-executor.js +59 -1
- package/dist/workflow-engine/do-executor.js.map +1 -1
- package/dist/workflow-engine/tasks/call-function.js +68 -1
- package/dist/workflow-engine/tasks/call-function.js.map +1 -1
- package/dist/workflow-engine/types.d.ts +26 -0
- package/dist/workflow-engine/types.js.map +1 -1
- package/dist/workflows/engine-core.js +5 -1
- package/dist/workflows/engine-core.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/config.test.ts +8 -0
- package/src/activities/__tests__/call-validate.test.ts +137 -0
- package/src/activities/__tests__/classify-tool-approvals.test.ts +1 -0
- package/src/activities/__tests__/discover-mcp-server.test.ts +1 -0
- package/src/activities/__tests__/workflow-event-activities.test.ts +60 -0
- package/src/activities/call-transform.ts +20 -2
- package/src/activities/call-validate.ts +27 -2
- package/src/activities/discover-mcp-server.ts +7 -28
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +65 -0
- package/src/activities/execute-cursor/index.ts +71 -15
- package/src/activities/execute-cursor/prompt-builder.ts +44 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-reject.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-approve-all.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-history.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/index.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +58 -0
- package/src/activities/execute-deep-agent/__tests__/sequential-gate-resume.test.ts +1 -0
- package/src/activities/execute-deep-agent/prompt-builder.ts +35 -0
- package/src/activities/execute-deep-agent/setup.ts +4 -0
- package/src/activities/workflow-event-activities.ts +2 -0
- package/src/config.ts +23 -0
- package/src/runner-manager.ts +6 -1
- package/src/runner.ts +6 -1
- package/src/shared/__tests__/artifact-storage.test.ts +1 -0
- package/src/shared/__tests__/context-bridge.test.ts +51 -0
- package/src/shared/__tests__/sender-identity.test.ts +92 -0
- package/src/shared/__tests__/with-timeout.test.ts +45 -0
- package/src/shared/context-bridge.ts +51 -0
- package/src/shared/sender-identity.ts +85 -0
- package/src/shared/with-timeout.ts +39 -0
- package/src/workflow-engine/__tests__/do-executor.test.ts +155 -0
- package/src/workflow-engine/__tests__/tasks/call-function.test.ts +94 -0
- package/src/workflow-engine/do-executor.ts +65 -1
- package/src/workflow-engine/tasks/call-function.ts +84 -3
- package/src/workflow-engine/types.ts +27 -0
- package/src/workflows/__tests__/execute-serverless-workflow.test.ts +1 -0
- package/src/workflows/engine-core.ts +5 -1
|
@@ -24,6 +24,37 @@ import { executeHumanInputTask } from "./tasks/human-input.js";
|
|
|
24
24
|
import { extractCostFromOutput } from "../budget/index.js";
|
|
25
25
|
import { truncatePayload } from "./task-status-accumulator.js";
|
|
26
26
|
import { extractRootErrorMessage, extractStructuredError } from "./error-utils.js";
|
|
27
|
+
/**
|
|
28
|
+
* Deterministic-version gate id for the task_started emission reorder
|
|
29
|
+
* (input resolution moved ahead of the event so it can carry
|
|
30
|
+
* `input_summary`). Pre-change histories replay the old order — emit
|
|
31
|
+
* first, resolve second — via `TaskExecutionContext.isPatched`.
|
|
32
|
+
*/
|
|
33
|
+
export const TASK_STARTED_INPUT_SUMMARY_PATCH = "task-started-input-summary";
|
|
34
|
+
/**
|
|
35
|
+
* Truncation budget for event I/O summaries. Deliberately far below the
|
|
36
|
+
* 64KB snapshot cap: events are the live-stream preview source and the
|
|
37
|
+
* proto documents them as "truncated to prevent event bloat" — the full
|
|
38
|
+
* I/O lives on `status.tasks[]`.
|
|
39
|
+
*/
|
|
40
|
+
const EVENT_SUMMARY_MAX_BYTES = 8_192;
|
|
41
|
+
/**
|
|
42
|
+
* Projects a task I/O value into the shape an event summary Struct can
|
|
43
|
+
* carry: truncated to the event budget, objects only (mirroring the
|
|
44
|
+
* snapshot path's `toJsonObject` semantics — proto Struct fields cannot
|
|
45
|
+
* carry scalars or arrays, and `status.tasks[].input/output` share the
|
|
46
|
+
* same limitation). Oversize values come back as `truncatePayload`'s
|
|
47
|
+
* `{_truncated, _preview}` marker object, which IS carried.
|
|
48
|
+
*/
|
|
49
|
+
function toEventSummary(value) {
|
|
50
|
+
if (value === null || value === undefined)
|
|
51
|
+
return undefined;
|
|
52
|
+
const truncated = truncatePayload(value, EVENT_SUMMARY_MAX_BYTES);
|
|
53
|
+
if (truncated === null || typeof truncated !== "object" || Array.isArray(truncated)) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
return truncated;
|
|
57
|
+
}
|
|
27
58
|
/**
|
|
28
59
|
* Returns the task kind string used for event emission. For call:function
|
|
29
60
|
* tasks, appends the specific function name (e.g., "call:function:llm")
|
|
@@ -120,20 +151,37 @@ export async function executeDoTasks(tasks, input, state, doc, evaluateExpressio
|
|
|
120
151
|
const kind = eventTaskKind(entry);
|
|
121
152
|
effectiveCtx.taskStatusAccumulator?.taskStarted(entry.key, kind);
|
|
122
153
|
const attemptNumber = effectiveCtx.taskStatusAccumulator?.getAttempt(entry.key) ?? 1;
|
|
123
|
-
|
|
154
|
+
const emitTaskStarted = async (inputSummary) => {
|
|
155
|
+
if (!effectiveCtx.emitEvents)
|
|
156
|
+
return;
|
|
124
157
|
await effectiveCtx.emitEvents([{
|
|
125
158
|
type: "task_started",
|
|
126
159
|
taskName: entry.key,
|
|
127
160
|
occurredAt: new Date().toISOString(),
|
|
128
161
|
taskKind: kind,
|
|
129
162
|
attemptNumber,
|
|
163
|
+
inputSummary,
|
|
130
164
|
}]);
|
|
165
|
+
};
|
|
166
|
+
// Emission-order gate: carrying `input_summary` on task_started
|
|
167
|
+
// requires resolving the input BEFORE emitting, which reorders two
|
|
168
|
+
// local-activity commands — a non-deterministic change for in-flight
|
|
169
|
+
// histories (a gated or waiting task can be parked across a deploy).
|
|
170
|
+
// Pre-change histories replay the old emit-then-resolve order.
|
|
171
|
+
const emitStartedAfterResolve = effectiveCtx.isPatched?.(TASK_STARTED_INPUT_SUMMARY_PATCH) ?? true;
|
|
172
|
+
if (!emitStartedAfterResolve) {
|
|
173
|
+
await emitTaskStarted();
|
|
131
174
|
}
|
|
175
|
+
let startedEmitted = !emitStartedAfterResolve;
|
|
132
176
|
const taskStartMs = Date.now();
|
|
133
177
|
let taskOutput;
|
|
134
178
|
try {
|
|
135
179
|
const effectiveInput = await resolveTaskInput(entry, input, state, effectiveCtx);
|
|
136
180
|
effectiveCtx.taskStatusAccumulator?.taskStartedWithInput(entry.key, kind, truncatePayload(effectiveInput));
|
|
181
|
+
if (emitStartedAfterResolve) {
|
|
182
|
+
await emitTaskStarted(toEventSummary(effectiveInput));
|
|
183
|
+
startedEmitted = true;
|
|
184
|
+
}
|
|
137
185
|
taskOutput = await runSingleTask(entry, effectiveInput, state, doc, effectiveCtx);
|
|
138
186
|
}
|
|
139
187
|
catch (taskErr) {
|
|
@@ -149,6 +197,12 @@ export async function executeDoTasks(tasks, input, state, doc, evaluateExpressio
|
|
|
149
197
|
});
|
|
150
198
|
}
|
|
151
199
|
if (effectiveCtx.emitEvents) {
|
|
200
|
+
// Input resolution failed before the reordered task_started could
|
|
201
|
+
// fire — emit it now so consumers always see the started→failed pair.
|
|
202
|
+
if (!startedEmitted) {
|
|
203
|
+
await emitTaskStarted();
|
|
204
|
+
startedEmitted = true;
|
|
205
|
+
}
|
|
152
206
|
await effectiveCtx.emitEvents([{
|
|
153
207
|
type: "task_failed",
|
|
154
208
|
taskName: entry.key,
|
|
@@ -190,6 +244,10 @@ export async function executeDoTasks(tasks, input, state, doc, evaluateExpressio
|
|
|
190
244
|
durationMs: taskDurationMs,
|
|
191
245
|
costMicros: costInfo.costMicros,
|
|
192
246
|
tokensUsed: costInfo.inputTokens + costInfo.outputTokens,
|
|
247
|
+
// The live-stream preview source for task cards: post-promotion
|
|
248
|
+
// output (the artifact-promoted form is what downstream sees),
|
|
249
|
+
// truncated to the event budget. Full output rides the snapshot.
|
|
250
|
+
outputSummary: toEventSummary(promotedOutput),
|
|
193
251
|
}];
|
|
194
252
|
for (const evt of promotionEvents) {
|
|
195
253
|
events.push(evt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"do-executor.js","sourceRoot":"","sources":["../../src/workflow-engine/do-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"do-executor.js","sourceRoot":"","sources":["../../src/workflow-engine/do-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,69 @@
|
|
|
10
10
|
* Mirrors Go's custom call function dispatch in `task_builder.go`.
|
|
11
11
|
*/
|
|
12
12
|
import { resolveConfigExpressions } from "../resolve.js";
|
|
13
|
+
/**
|
|
14
|
+
* Detaches deferred-code fields from a call-function config before
|
|
15
|
+
* expression resolution and returns a restorer that puts the originals
|
|
16
|
+
* back afterwards.
|
|
17
|
+
*
|
|
18
|
+
* Some config fields carry jq CODE that the activity evaluates later
|
|
19
|
+
* against its own input — not data to interpolate at config time:
|
|
20
|
+
*
|
|
21
|
+
* - `transform.expression` — evaluated by `transformAction` against the
|
|
22
|
+
* transform's `input`.
|
|
23
|
+
* - `validate.rules[].expression` — evaluated by `validateAction` per
|
|
24
|
+
* rule against the validated data.
|
|
25
|
+
*
|
|
26
|
+
* Without the detach, a `${ }`-wrapped predicate is pre-evaluated here
|
|
27
|
+
* against the WRONG input and its non-string RESULT is substituted back
|
|
28
|
+
* into the config; the activity then tries to evaluate that result as jq
|
|
29
|
+
* (the `expr.includes is not a function` crash class). All other fields
|
|
30
|
+
* — including `rules[].message` and the llm/eval prompt fields — are
|
|
31
|
+
* data and continue to interpolate normally. The original config object
|
|
32
|
+
* is never mutated (shared across retries).
|
|
33
|
+
*/
|
|
34
|
+
function detachDeferredCode(callType, config) {
|
|
35
|
+
if (callType === "transform" && "expression" in config) {
|
|
36
|
+
const { expression, ...rest } = config;
|
|
37
|
+
return {
|
|
38
|
+
config: rest,
|
|
39
|
+
restore: (resolved) => {
|
|
40
|
+
resolved.expression = expression;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (callType === "validate" && Array.isArray(config.rules)) {
|
|
45
|
+
const originalRules = config.rules;
|
|
46
|
+
const strippedRules = originalRules.map((rule) => {
|
|
47
|
+
if (isPlainObject(rule) && "expression" in rule) {
|
|
48
|
+
const { expression: _deferred, ...rest } = rule;
|
|
49
|
+
return rest;
|
|
50
|
+
}
|
|
51
|
+
return rule;
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
config: { ...config, rules: strippedRules },
|
|
55
|
+
restore: (resolved) => {
|
|
56
|
+
const resolvedRules = resolved.rules;
|
|
57
|
+
if (!Array.isArray(resolvedRules))
|
|
58
|
+
return;
|
|
59
|
+
for (let i = 0; i < resolvedRules.length; i++) {
|
|
60
|
+
const original = originalRules[i];
|
|
61
|
+
const target = resolvedRules[i];
|
|
62
|
+
if (isPlainObject(original) &&
|
|
63
|
+
isPlainObject(target) &&
|
|
64
|
+
"expression" in original) {
|
|
65
|
+
target.expression = original.expression;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return { config, restore: () => { } };
|
|
72
|
+
}
|
|
73
|
+
function isPlainObject(value) {
|
|
74
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
75
|
+
}
|
|
13
76
|
/**
|
|
14
77
|
* Normalizes the raw LlmCallResult from the activity into the documented
|
|
15
78
|
* task output contract: { text, structured, model, usage }.
|
|
@@ -41,8 +104,12 @@ export class CallFunctionTaskBuilder {
|
|
|
41
104
|
build() {
|
|
42
105
|
return async (input, state, ctx) => {
|
|
43
106
|
const withConfig = this.taskDef.with ?? {};
|
|
44
|
-
const resolved = await resolveConfigExpressions(withConfig, input, state, ctx.evaluateExpressions);
|
|
45
107
|
const callType = this.taskDef.call;
|
|
108
|
+
// Deferred-code fields (transform/validate expressions) must reach
|
|
109
|
+
// the activity as unresolved jq strings — see detachDeferredCode.
|
|
110
|
+
const deferred = detachDeferredCode(callType, withConfig);
|
|
111
|
+
const resolved = await resolveConfigExpressions(deferred.config, input, state, ctx.evaluateExpressions);
|
|
112
|
+
deferred.restore(resolved);
|
|
46
113
|
if ((callType === "transform" || callType === "validate") &&
|
|
47
114
|
!("input" in resolved) || resolved.input === undefined) {
|
|
48
115
|
resolved.input = input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-function.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/call-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"call-function.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/call-function.ts"],"names":[],"mappings":"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"}
|
|
@@ -328,6 +328,17 @@ export interface TaskExecutionContext {
|
|
|
328
328
|
* this opaque callback at well-defined yield points.
|
|
329
329
|
*/
|
|
330
330
|
readonly checkPause?: () => Promise<void>;
|
|
331
|
+
/**
|
|
332
|
+
* Deterministic version gate for engine behavior changes that alter
|
|
333
|
+
* the workflow's command sequence — Temporal `patched()` semantics:
|
|
334
|
+
* `true` for new executions (recording a marker) and for replays whose
|
|
335
|
+
* history carries the marker; `false` when replaying pre-change
|
|
336
|
+
* histories, which must re-execute the old command order. Wired to
|
|
337
|
+
* Temporal's `patched()` in the workflow function; the kernel stays
|
|
338
|
+
* Temporal-agnostic and treats an absent gate as "change active"
|
|
339
|
+
* (tests and the minimal context never replay old histories).
|
|
340
|
+
*/
|
|
341
|
+
readonly isPatched?: (changeId: string) => boolean;
|
|
331
342
|
/**
|
|
332
343
|
* Accumulates per-task status entries throughout the workflow run.
|
|
333
344
|
* Passed to the emit activity on every event batch so the server
|
|
@@ -563,6 +574,14 @@ export interface TaskStartedEvent extends EventBase {
|
|
|
563
574
|
readonly type: "task_started";
|
|
564
575
|
readonly taskKind: string;
|
|
565
576
|
readonly attemptNumber: number;
|
|
577
|
+
/**
|
|
578
|
+
* Truncated resolved task input (proto `TaskStartedPayload.input_summary`).
|
|
579
|
+
* The live-stream preview source for task cards — the FULL input lives on
|
|
580
|
+
* the status snapshot. Only present when the input is a plain object
|
|
581
|
+
* (proto Struct constraint, mirroring `status.tasks[].input`) and when
|
|
582
|
+
* emission happens after input resolution (the patched()-gated path).
|
|
583
|
+
*/
|
|
584
|
+
readonly inputSummary?: Record<string, unknown>;
|
|
566
585
|
}
|
|
567
586
|
export interface TaskCompletedEvent extends EventBase {
|
|
568
587
|
readonly type: "task_completed";
|
|
@@ -570,6 +589,13 @@ export interface TaskCompletedEvent extends EventBase {
|
|
|
570
589
|
readonly durationMs: number;
|
|
571
590
|
readonly costMicros: number;
|
|
572
591
|
readonly tokensUsed: number;
|
|
592
|
+
/**
|
|
593
|
+
* Truncated task output (proto `TaskCompletedPayload.output_summary`).
|
|
594
|
+
* The live-stream preview source for task cards — the FULL output lives
|
|
595
|
+
* on the status snapshot. Only present when the output is a plain object
|
|
596
|
+
* (proto Struct constraint, mirroring `status.tasks[].output`).
|
|
597
|
+
*/
|
|
598
|
+
readonly outputSummary?: Record<string, unknown>;
|
|
573
599
|
}
|
|
574
600
|
export interface TaskFailedEvent extends EventBase {
|
|
575
601
|
readonly type: "task_failed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow-engine/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6LH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,MAAM,UAAU,aAAa,CAAC,SAAwB;IACpD,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,OAAO,CACL,SAAS,KAAK,aAAa;QAC3B,SAAS,KAAK,QAAQ;QACtB,SAAS,KAAK,SAAS,CACxB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow-engine/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6LH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,MAAM,UAAU,aAAa,CAAC,SAAwB;IACpD,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,OAAO,CACL,SAAS,KAAK,aAAa;QAC3B,SAAS,KAAK,QAAQ;QACtB,SAAS,KAAK,SAAS,CACxB,CAAC;AACJ,CAAC;AAiqBD,wEAAwE;AACxE,cAAc;AACd,wEAAwE;AAExE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,gBAAgB,CAAS;IAElC,YAAY,OAAe,EAAE,gBAAwB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* operations, no side-effecting imports. Only @temporalio/workflow APIs,
|
|
13
13
|
* type-only imports, and pure JS/TS logic.
|
|
14
14
|
*/
|
|
15
|
-
import { proxyLocalActivities, proxyActivities, log, workflowInfo, sleep } from "@temporalio/workflow";
|
|
15
|
+
import { proxyLocalActivities, proxyActivities, log, patched, workflowInfo, sleep } from "@temporalio/workflow";
|
|
16
16
|
import { ApplicationFailure, CancelledFailure, ActivityFailure } from "@temporalio/workflow";
|
|
17
17
|
import { recordExecutionStartMetric, recordExecutionEndMetric } from "./metrics-sink.js";
|
|
18
18
|
import { orchestrateAgentCall } from "./call-agent-orchestrator.js";
|
|
@@ -135,6 +135,10 @@ export async function runWorkflowEngine(input, options) {
|
|
|
135
135
|
checkPause: options?.checkPause,
|
|
136
136
|
emitEvents,
|
|
137
137
|
taskStatusAccumulator,
|
|
138
|
+
// Deterministic version gate for engine command-order changes (the
|
|
139
|
+
// kernel never imports Temporal APIs — it receives patched() as an
|
|
140
|
+
// opaque callback, like every other capability on this context).
|
|
141
|
+
isPatched: (changeId) => patched(changeId),
|
|
138
142
|
sleep: async (durationMs) => {
|
|
139
143
|
try {
|
|
140
144
|
await sleep(durationMs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-core.js","sourceRoot":"","sources":["../../src/workflows/engine-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine-core.js","sourceRoot":"","sources":["../../src/workflows/engine-core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/runner",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"description": "Embeddable Temporal worker for the Stigmer AI agent platform — handles agent execution, workflow orchestration, and MCP server management",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"@opentelemetry/sdk-metrics": "^2.0.0",
|
|
86
86
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
87
87
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
88
|
-
"@stigmer/protos": "3.2.
|
|
88
|
+
"@stigmer/protos": "3.2.2",
|
|
89
89
|
"@temporalio/activity": "^1.11.0",
|
|
90
90
|
"@temporalio/client": "^1.11.0",
|
|
91
91
|
"@temporalio/common": "^1.11.0",
|
|
@@ -33,9 +33,17 @@ describe("loadConfig", () => {
|
|
|
33
33
|
expect(config.proxyEndpoint).toBeNull();
|
|
34
34
|
expect(config.maxConcurrentActivities).toBe(5);
|
|
35
35
|
expect(config.cursorStreamStallTimeoutMs).toBe(180000);
|
|
36
|
+
expect(config.agentResolveTimeoutMs).toBe(120000);
|
|
36
37
|
expect(config.workspaceLockTimeoutMs).toBe(900000);
|
|
37
38
|
});
|
|
38
39
|
|
|
40
|
+
it("respects CURSOR_AGENT_RESOLVE_TIMEOUT_MS", () => {
|
|
41
|
+
process.env.CURSOR_API_KEY = "test-key";
|
|
42
|
+
process.env.CURSOR_AGENT_RESOLVE_TIMEOUT_MS = "45000";
|
|
43
|
+
const config = loadConfig();
|
|
44
|
+
expect(config.agentResolveTimeoutMs).toBe(45000);
|
|
45
|
+
});
|
|
46
|
+
|
|
39
47
|
it("respects CURSOR_STREAM_STALL_TIMEOUT_MS", () => {
|
|
40
48
|
process.env.CURSOR_API_KEY = "test-key";
|
|
41
49
|
process.env.CURSOR_STREAM_STALL_TIMEOUT_MS = "90000";
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { validateAction } from "../call-validate.js";
|
|
3
|
+
import { transformAction } from "../call-transform.js";
|
|
4
|
+
|
|
5
|
+
// Regression coverage for the `expr.includes is not a function` crash
|
|
6
|
+
// (workflow-execution-ux-parity upstream #7): rule expressions are
|
|
7
|
+
// deferred code that must reach this activity as jq strings — in either
|
|
8
|
+
// the strict `${ ... }` wrapper or the bare form — and be evaluated here
|
|
9
|
+
// against the validated data, never pre-resolved by the config resolver.
|
|
10
|
+
|
|
11
|
+
describe("validateAction — rule expressions", () => {
|
|
12
|
+
// The exact shape of WF1 ux-linear-basics' check_order task after the
|
|
13
|
+
// call-function builder resolves `input` and defers the rule.
|
|
14
|
+
const checkOrderConfig = {
|
|
15
|
+
input: {
|
|
16
|
+
order_id: "ORD-2026-0716",
|
|
17
|
+
customer: "Ada Lovelace",
|
|
18
|
+
currency: "USD",
|
|
19
|
+
line_count: 2,
|
|
20
|
+
total: 150,
|
|
21
|
+
},
|
|
22
|
+
schema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
required: ["order_id", "total", "line_count"],
|
|
25
|
+
properties: {
|
|
26
|
+
order_id: { type: "string" },
|
|
27
|
+
total: { type: "number" },
|
|
28
|
+
line_count: { type: "integer" },
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
rules: [
|
|
32
|
+
{
|
|
33
|
+
name: "total_is_positive",
|
|
34
|
+
expression: "${ .total > 0 }",
|
|
35
|
+
message: "Order total must be positive",
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
on_fail: "VALIDATION_FAIL_RAISE",
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
it("evaluates a ${ }-wrapped rule against the validate input (WF1 check_order)", async () => {
|
|
42
|
+
const result = await validateAction(checkOrderConfig);
|
|
43
|
+
expect(result.valid).toBe(true);
|
|
44
|
+
expect(result.errors).toEqual([]);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("evaluates a bare jq rule expression", async () => {
|
|
48
|
+
const result = await validateAction({
|
|
49
|
+
input: { total: 150 },
|
|
50
|
+
rules: [{ name: "positive", expression: ".total > 0" }],
|
|
51
|
+
on_fail: "VALIDATION_FAIL_WARN",
|
|
52
|
+
});
|
|
53
|
+
expect(result.valid).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it("reports the rule message when the predicate fails", async () => {
|
|
57
|
+
const result = await validateAction({
|
|
58
|
+
input: { total: -5 },
|
|
59
|
+
rules: [
|
|
60
|
+
{
|
|
61
|
+
name: "total_is_positive",
|
|
62
|
+
expression: "${ .total > 0 }",
|
|
63
|
+
message: "Order total must be positive",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
on_fail: "VALIDATION_FAIL_WARN",
|
|
67
|
+
});
|
|
68
|
+
expect(result.valid).toBe(false);
|
|
69
|
+
expect(result.errors).toEqual([
|
|
70
|
+
{ rule: "total_is_positive", message: "Order total must be positive" },
|
|
71
|
+
]);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("turns a non-string expression into a named config error, not a TypeError", async () => {
|
|
75
|
+
// The pre-fix failure mode: the resolver substituted the evaluated
|
|
76
|
+
// boolean back into the rule. The guard must name the rule and the
|
|
77
|
+
// expected shape instead of crashing in the jq engine.
|
|
78
|
+
const result = await validateAction({
|
|
79
|
+
input: { total: 150 },
|
|
80
|
+
rules: [
|
|
81
|
+
{ name: "broken_rule", expression: true as unknown as string },
|
|
82
|
+
],
|
|
83
|
+
on_fail: "VALIDATION_FAIL_WARN",
|
|
84
|
+
});
|
|
85
|
+
expect(result.valid).toBe(false);
|
|
86
|
+
expect(result.errors).toHaveLength(1);
|
|
87
|
+
expect(result.errors[0].rule).toBe("broken_rule");
|
|
88
|
+
expect(result.errors[0].message).toContain("expected a jq predicate string");
|
|
89
|
+
expect(result.errors[0].message).toContain("boolean");
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it("raises on failed rules when on_fail is RAISE", async () => {
|
|
93
|
+
await expect(
|
|
94
|
+
validateAction({
|
|
95
|
+
input: { total: -5 },
|
|
96
|
+
rules: [
|
|
97
|
+
{
|
|
98
|
+
name: "total_is_positive",
|
|
99
|
+
expression: "${ .total > 0 }",
|
|
100
|
+
message: "Order total must be positive",
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
on_fail: "VALIDATION_FAIL_RAISE",
|
|
104
|
+
}),
|
|
105
|
+
).rejects.toThrow("Order total must be positive");
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
describe("transformAction — deferred expression forms", () => {
|
|
110
|
+
it("accepts a ${ }-wrapped expression", async () => {
|
|
111
|
+
const result = await transformAction({
|
|
112
|
+
engine: "TRANSFORM_ENGINE_JQ",
|
|
113
|
+
expression: "${ { doubled: (.qty * 2) } }",
|
|
114
|
+
input: { qty: 21 },
|
|
115
|
+
});
|
|
116
|
+
expect(result).toEqual({ doubled: 42 });
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it("accepts the bare jq form the converter emits", async () => {
|
|
120
|
+
const result = await transformAction({
|
|
121
|
+
engine: "TRANSFORM_ENGINE_JQ",
|
|
122
|
+
expression: "{ total: ([.items[] | .qty * .unit_price] | add) }",
|
|
123
|
+
input: { items: [{ qty: 2, unit_price: 25.5 }, { qty: 1, unit_price: 99 }] },
|
|
124
|
+
});
|
|
125
|
+
expect(result).toEqual({ total: 150 });
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it("rejects a non-string expression with a clear config error", async () => {
|
|
129
|
+
await expect(
|
|
130
|
+
transformAction({
|
|
131
|
+
engine: "JQ",
|
|
132
|
+
expression: { not: "a string" } as unknown as string,
|
|
133
|
+
input: {},
|
|
134
|
+
}),
|
|
135
|
+
).rejects.toThrow("must be a jq string");
|
|
136
|
+
});
|
|
137
|
+
});
|
|
@@ -240,6 +240,35 @@ describe("toProtoEvent", () => {
|
|
|
240
240
|
expect(evt.payload.value.taskKind).toBe(0);
|
|
241
241
|
});
|
|
242
242
|
|
|
243
|
+
it("maps inputSummary onto the payload Struct", () => {
|
|
244
|
+
const evt = toProtoEvent({
|
|
245
|
+
type: "task_started",
|
|
246
|
+
taskName: "seed_order",
|
|
247
|
+
occurredAt: NOW,
|
|
248
|
+
taskKind: "set",
|
|
249
|
+
attemptNumber: 1,
|
|
250
|
+
inputSummary: { variables: { order_id: "ORD-1" } },
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
if (evt.payload.case !== "taskStarted") throw new Error("unexpected");
|
|
254
|
+
expect(evt.payload.value.inputSummary).toEqual({
|
|
255
|
+
variables: { order_id: "ORD-1" },
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
it("leaves inputSummary unset when the descriptor omits it", () => {
|
|
260
|
+
const evt = toProtoEvent({
|
|
261
|
+
type: "task_started",
|
|
262
|
+
taskName: "t",
|
|
263
|
+
occurredAt: NOW,
|
|
264
|
+
taskKind: "set",
|
|
265
|
+
attemptNumber: 1,
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
if (evt.payload.case !== "taskStarted") throw new Error("unexpected");
|
|
269
|
+
expect(evt.payload.value.inputSummary).toBeUndefined();
|
|
270
|
+
});
|
|
271
|
+
|
|
243
272
|
it("maps call:agent to proto agent_call (13), not http_call (2)", () => {
|
|
244
273
|
const evt = toProtoEvent({
|
|
245
274
|
type: "task_started",
|
|
@@ -352,6 +381,37 @@ describe("toProtoEvent", () => {
|
|
|
352
381
|
expect(evt.payload.value.costMicros).toBe(BigInt(100000));
|
|
353
382
|
expect(evt.payload.value.tokensUsed).toBe(BigInt(800));
|
|
354
383
|
});
|
|
384
|
+
|
|
385
|
+
it("maps outputSummary onto the payload Struct", () => {
|
|
386
|
+
const evt = toProtoEvent({
|
|
387
|
+
type: "task_completed",
|
|
388
|
+
taskName: "total_order",
|
|
389
|
+
occurredAt: NOW,
|
|
390
|
+
taskKind: "call:function:transform",
|
|
391
|
+
durationMs: 160,
|
|
392
|
+
costMicros: 0,
|
|
393
|
+
tokensUsed: 0,
|
|
394
|
+
outputSummary: { total: 150, line_count: 2 },
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
if (evt.payload.case !== "taskCompleted") throw new Error("unexpected");
|
|
398
|
+
expect(evt.payload.value.outputSummary).toEqual({ total: 150, line_count: 2 });
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
it("leaves outputSummary unset when the descriptor omits it", () => {
|
|
402
|
+
const evt = toProtoEvent({
|
|
403
|
+
type: "task_completed",
|
|
404
|
+
taskName: "t",
|
|
405
|
+
occurredAt: NOW,
|
|
406
|
+
taskKind: "set",
|
|
407
|
+
durationMs: 1,
|
|
408
|
+
costMicros: 0,
|
|
409
|
+
tokensUsed: 0,
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
if (evt.payload.case !== "taskCompleted") throw new Error("unexpected");
|
|
413
|
+
expect(evt.payload.value.outputSummary).toBeUndefined();
|
|
414
|
+
});
|
|
355
415
|
});
|
|
356
416
|
|
|
357
417
|
describe("task_failed", () => {
|