@relayflows/sdk 2.0.15 → 2.0.17
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/agent-artifacts.d.ts +20 -0
- package/dist/agent-artifacts.d.ts.map +1 -0
- package/dist/agent-artifacts.js +81 -0
- package/dist/agent-artifacts.js.map +1 -0
- package/dist/authored-flow-error.d.ts +1 -1
- package/dist/authored-flow-error.d.ts.map +1 -1
- package/dist/authored-flow-error.js.map +1 -1
- package/dist/authored-flow-executor.d.ts +3 -3
- package/dist/authored-flow-executor.d.ts.map +1 -1
- package/dist/authored-flow-executor.js +93 -7
- package/dist/authored-flow-executor.js.map +1 -1
- package/dist/authored-flow-lifecycle.d.ts +10 -0
- package/dist/authored-flow-lifecycle.d.ts.map +1 -1
- package/dist/authored-flow-lifecycle.js +7 -0
- package/dist/authored-flow-lifecycle.js.map +1 -1
- package/dist/authored-flow-operation.d.ts +11 -0
- package/dist/authored-flow-operation.d.ts.map +1 -1
- package/dist/authored-flow-operation.js +32 -7
- package/dist/authored-flow-operation.js.map +1 -1
- package/dist/authored-node-runner.d.ts.map +1 -1
- package/dist/authored-node-runner.js +37 -14
- package/dist/authored-node-runner.js.map +1 -1
- package/dist/authored-step-output.d.ts +2 -0
- package/dist/authored-step-output.d.ts.map +1 -1
- package/dist/authored-step-output.js +5 -1
- package/dist/authored-step-output.js.map +1 -1
- package/dist/authored-worker-step.d.ts.map +1 -1
- package/dist/authored-worker-step.js +15 -8
- package/dist/authored-worker-step.js.map +1 -1
- package/dist/cli/check-triggers.d.ts.map +1 -1
- package/dist/cli/check-triggers.js +10 -0
- package/dist/cli/check-triggers.js.map +1 -1
- package/dist/cli/check.d.ts +14 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +6 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/cloud-deploy.d.ts +30 -0
- package/dist/cli/cloud-deploy.d.ts.map +1 -0
- package/dist/cli/cloud-deploy.js +162 -0
- package/dist/cli/cloud-deploy.js.map +1 -0
- package/dist/cli/cloud-run.d.ts +3 -1
- package/dist/cli/cloud-run.d.ts.map +1 -1
- package/dist/cli/cloud-run.js +37 -5
- package/dist/cli/cloud-run.js.map +1 -1
- package/dist/cli/cloud-schedule.d.ts +29 -0
- package/dist/cli/cloud-schedule.d.ts.map +1 -0
- package/dist/cli/cloud-schedule.js +131 -0
- package/dist/cli/cloud-schedule.js.map +1 -0
- package/dist/cli/cloud-sync.d.ts +13 -0
- package/dist/cli/cloud-sync.d.ts.map +1 -0
- package/dist/cli/cloud-sync.js +39 -0
- package/dist/cli/cloud-sync.js.map +1 -0
- package/dist/cli/direct-run.js +1 -1
- package/dist/cli/direct-run.js.map +1 -1
- package/dist/cli/run.d.ts +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +17 -4
- package/dist/cli/run.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +117 -12
- package/dist/cli.js.map +1 -1
- package/dist/cloud-deploy.d.ts +70 -0
- package/dist/cloud-deploy.d.ts.map +1 -0
- package/dist/cloud-deploy.js +192 -0
- package/dist/cloud-deploy.js.map +1 -0
- package/dist/cloud-http.d.ts +52 -2
- package/dist/cloud-http.d.ts.map +1 -1
- package/dist/cloud-http.js +135 -9
- package/dist/cloud-http.js.map +1 -1
- package/dist/cloud-run.d.ts +53 -0
- package/dist/cloud-run.d.ts.map +1 -1
- package/dist/cloud-run.js +97 -25
- package/dist/cloud-run.js.map +1 -1
- package/dist/cloud-schedule.d.ts +48 -0
- package/dist/cloud-schedule.d.ts.map +1 -0
- package/dist/cloud-schedule.js +125 -0
- package/dist/cloud-schedule.js.map +1 -0
- package/dist/cloud-sync.d.ts +66 -0
- package/dist/cloud-sync.d.ts.map +1 -0
- package/dist/cloud-sync.js +287 -0
- package/dist/cloud-sync.js.map +1 -0
- package/dist/failure-kinds.d.ts +10 -3
- package/dist/failure-kinds.d.ts.map +1 -1
- package/dist/failure-kinds.js +10 -0
- package/dist/failure-kinds.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/named-gate-lowering.js +9 -0
- package/dist/named-gate-lowering.js.map +1 -1
- package/dist/named-gates.d.ts +1 -1
- package/dist/named-gates.d.ts.map +1 -1
- package/dist/named-gates.js +11 -1
- package/dist/named-gates.js.map +1 -1
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +155 -9
- package/dist/preflight.js.map +1 -1
- package/dist/schedule-trigger.d.ts +35 -0
- package/dist/schedule-trigger.d.ts.map +1 -0
- package/dist/schedule-trigger.js +53 -0
- package/dist/schedule-trigger.js.map +1 -0
- package/dist/spec.d.ts +11 -1
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/trigger-executor.js +1 -1
- package/dist/trigger-executor.js.map +1 -1
- package/dist/validate.js +1 -1
- package/dist/validate.js.map +1 -1
- package/dist/worker-cli.d.ts +10 -0
- package/dist/worker-cli.d.ts.map +1 -1
- package/dist/worker-cli.js +51 -22
- package/dist/worker-cli.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +9 -0
- package/dist/worker.js.map +1 -1
- package/dist/wrapper-session.d.ts +3 -1
- package/dist/wrapper-session.d.ts.map +1 -1
- package/dist/wrapper-session.js +6 -3
- package/dist/wrapper-session.js.map +1 -1
- package/package.json +3 -3
- package/src/agent-artifacts.ts +76 -0
- package/src/authored-flow-error.ts +1 -0
- package/src/authored-flow-executor.ts +95 -8
- package/src/authored-flow-lifecycle.ts +7 -0
- package/src/authored-flow-operation.ts +35 -10
- package/src/authored-node-runner.ts +35 -13
- package/src/authored-step-output.ts +6 -1
- package/src/authored-worker-step.ts +16 -9
- package/src/cli/check-triggers.ts +9 -0
- package/src/cli/check.ts +21 -1
- package/src/cli/cloud-deploy.ts +157 -0
- package/src/cli/cloud-run.ts +37 -6
- package/src/cli/cloud-schedule.ts +135 -0
- package/src/cli/cloud-sync.ts +37 -0
- package/src/cli/direct-run.ts +1 -1
- package/src/cli/run.ts +18 -5
- package/src/cli.ts +107 -12
- package/src/cloud-deploy.ts +247 -0
- package/src/cloud-http.ts +173 -9
- package/src/cloud-run.ts +143 -24
- package/src/cloud-schedule.ts +158 -0
- package/src/cloud-sync.ts +315 -0
- package/src/failure-kinds.ts +10 -0
- package/src/index.ts +14 -0
- package/src/named-gate-lowering.ts +9 -0
- package/src/named-gates.ts +11 -1
- package/src/preflight.ts +132 -9
- package/src/schedule-trigger.ts +73 -0
- package/src/spec.ts +12 -1
- package/src/trigger-executor.ts +1 -1
- package/src/validate.ts +1 -1
- package/src/worker-cli.ts +41 -0
- package/src/worker.ts +9 -0
- package/src/wrapper-session.ts +5 -1
package/dist/worker-cli.d.ts
CHANGED
|
@@ -16,6 +16,16 @@ export interface WorkerCliResult {
|
|
|
16
16
|
exit_code: number | null;
|
|
17
17
|
stdout_tail: string;
|
|
18
18
|
stderr_tail: string;
|
|
19
|
+
/**
|
|
20
|
+
* Files the agent created or changed under its working directory,
|
|
21
|
+
* cwd-relative POSIX paths, sorted. Measured by the worker that spawned the
|
|
22
|
+
* CLI — the one process provably sharing the agent's filesystem — as a
|
|
23
|
+
* content-hash diff of the directory before and after the run, so it is a
|
|
24
|
+
* journaled fact rather than a later guess. Present for every direct agent
|
|
25
|
+
* execution; absent for `llm` mode and for the relay transport, where the
|
|
26
|
+
* agent runs on another host.
|
|
27
|
+
*/
|
|
28
|
+
artifacts?: string[];
|
|
19
29
|
}
|
|
20
30
|
/**
|
|
21
31
|
* Journal identity and durable dispatch storage used by the Relay task transport.
|
package/dist/worker-cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAWhF,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,GAAE,OAAO,GAAG,KAAe,EAC/B,WAAW,CAAC,EAAE,kBAAkB,EAChC,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,GAAE,cAAyB,EACpC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAgE1B"}
|
package/dist/worker-cli.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { diffWorkspaceFiles, snapshotWorkspaceFiles } from './agent-artifacts.js';
|
|
1
3
|
import { decodeProviderResult, decodeWrapperResult, requirePricedUsage } from './worker-usage.js';
|
|
2
4
|
import { openSidechannel } from './pty-sidechannel.js';
|
|
3
5
|
import { spawn } from 'node:child_process';
|
|
@@ -24,31 +26,58 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
|
|
|
24
26
|
if (mode === 'agent' && transport === 'relay') {
|
|
25
27
|
return runViaAgentRelay(kind, instruction, wakeContext, effectiveModel, relayContext, cwd, signal);
|
|
26
28
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
// Artifact detection brackets the spawn: the directory the CLI runs in is
|
|
30
|
+
// snapshotted before and diffed after, by this process, on this
|
|
31
|
+
// filesystem. Only an agent execution writes artifacts; an llm step has no
|
|
32
|
+
// workspace to change. Executions sharing a working directory are
|
|
33
|
+
// serialized around their snapshot-spawn-snapshot interval, so one agent's
|
|
34
|
+
// writes are never attributed to a concurrent one in the same directory.
|
|
35
|
+
const artifactRoot = mode === 'agent' ? resolve(cwd ?? process.cwd()) : undefined;
|
|
36
|
+
return artifactRoot === undefined
|
|
37
|
+
? execute()
|
|
38
|
+
: serializedByDirectory(artifactRoot, async () => {
|
|
39
|
+
const before = await snapshotWorkspaceFiles(artifactRoot);
|
|
40
|
+
const result = await execute();
|
|
41
|
+
return { ...result, artifacts: diffWorkspaceFiles(before, await snapshotWorkspaceFiles(artifactRoot)) };
|
|
42
|
+
});
|
|
43
|
+
async function execute() {
|
|
44
|
+
if (kind === 'relayflows-wrapper-v1') {
|
|
45
|
+
return requirePricedUsage(decodeWrapperResult(await runWrapperSession(cli, instruction, wakeContext, effectiveModel, wrapperEnvironment(process.env), wrapperLimits, signal, cwd)), effectiveModel);
|
|
37
46
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
const env = { ...process.env };
|
|
48
|
+
delete env[WAKE_CONTEXT_ENV];
|
|
49
|
+
delete env[MODEL_ENV];
|
|
50
|
+
const invocation = mode === 'llm' ? llmExecution(kind, instruction, effectiveModel) : agentExecution(kind, instruction, effectiveModel);
|
|
51
|
+
if (wakeContext !== undefined) {
|
|
52
|
+
try {
|
|
53
|
+
env[WAKE_CONTEXT_ENV] = JSON.stringify(wakeContext);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return {
|
|
57
|
+
exit_code: null,
|
|
58
|
+
stdout_tail: '',
|
|
59
|
+
stderr_tail: `wake_context could not be JSON-serialized for the CLI: ${String(error)}`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
44
62
|
}
|
|
63
|
+
if (invocation.modelEnv !== undefined)
|
|
64
|
+
env[MODEL_ENV] = invocation.modelEnv;
|
|
65
|
+
// Structured provider output carries the authoritative token counts.
|
|
66
|
+
const args = [...invocation.args];
|
|
67
|
+
args.splice(args.length - 1, 0, ...(kind === 'claude' ? ['--output-format', 'json'] : ['--json']));
|
|
68
|
+
return requirePricedUsage(decodeProviderResult(await spawnInvocation(cli, { ...invocation, args }, env, signal, sidechannel, cwd), kind), effectiveModel);
|
|
45
69
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
70
|
+
}
|
|
71
|
+
/** One agent at a time per canonical working directory, for the artifact interval. */
|
|
72
|
+
const directoryQueues = new Map();
|
|
73
|
+
function serializedByDirectory(directory, task) {
|
|
74
|
+
const previous = directoryQueues.get(directory) ?? Promise.resolve();
|
|
75
|
+
const run = previous.then(task, task);
|
|
76
|
+
const settled = run.then(() => undefined, () => undefined);
|
|
77
|
+
directoryQueues.set(directory, settled);
|
|
78
|
+
void settled.then(() => { if (directoryQueues.get(directory) === settled)
|
|
79
|
+
directoryQueues.delete(directory); });
|
|
80
|
+
return run;
|
|
52
81
|
}
|
|
53
82
|
/** Wait under the same worker lease for an authoritative task receipt. */
|
|
54
83
|
async function runViaAgentRelay(kind, instruction, wakeContext, model, context, worker_cwd, signal) {
|
package/dist/worker-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-cli.js","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-cli.js","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,eAAe,CAAC;AAS7D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAMzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;gBAGvC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,kBAAkB;IAKxC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAQzB;YAEY,OAAO;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,eAAe,CAAC;AAS7D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAMzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;gBAGvC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,kBAAkB;IAKxC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAQzB;YAEY,OAAO;CAmEtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAa9E"}
|
package/dist/worker.js
CHANGED
|
@@ -113,6 +113,15 @@ export class AgentWorker extends EventEmitter {
|
|
|
113
113
|
// emitting an error JSON with exit 0. `completionReason` is
|
|
114
114
|
// derived from exit code, so a CLI that exits 0 while emitting
|
|
115
115
|
// `{"error":...}` will report success with an error payload.
|
|
116
|
+
//
|
|
117
|
+
// `artifacts` (worker-cli.ts) rides inside the CliResult wrapper, so on
|
|
118
|
+
// the wrapper path it is journaled in `output`, where the kernel's output
|
|
119
|
+
// binding — and therefore an `artifact_exists` gate — can read it. On the
|
|
120
|
+
// JSON path the author's object IS the output and is left exactly as the
|
|
121
|
+
// agent emitted it: no key is added that a schema, a downstream binding
|
|
122
|
+
// or `summary` never asked for. An agent that answers with a JSON object
|
|
123
|
+
// therefore journals no artifacts; gate such a step on a deterministic
|
|
124
|
+
// check instead. The relay transport reports none (the agent ran elsewhere).
|
|
116
125
|
const output = result.relay_task?.status === 'completed' && result.exit_code === 0
|
|
117
126
|
? result.relay_task.output : parseJsonOutput(result.stdout_tail) ?? result;
|
|
118
127
|
await this.client.stepComplete(dispatch.run_id, dispatch.step_id, dispatch.attempt, dispatch.idempotency_key, completionReason, {
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,5 +12,7 @@ export interface WrapperSessionResult {
|
|
|
12
12
|
* Identify and execute a custom wrapper in one pinned process. No private
|
|
13
13
|
* request is written until its declared path still names the captured file.
|
|
14
14
|
*/
|
|
15
|
-
export declare function runWrapperSession(cli: string, instruction: string, wakeContext: unknown, model: string | undefined, env: NodeJS.ProcessEnv, overrides?: Partial<WrapperSessionLimits>, signal?: AbortSignal
|
|
15
|
+
export declare function runWrapperSession(cli: string, instruction: string, wakeContext: unknown, model: string | undefined, env: NodeJS.ProcessEnv, overrides?: Partial<WrapperSessionLimits>, signal?: AbortSignal,
|
|
16
|
+
/** Working directory for the wrapper process; the artifact scanner uses the same root. */
|
|
17
|
+
cwd?: string): Promise<WrapperSessionResult>;
|
|
16
18
|
//# sourceMappingURL=wrapper-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper-session.d.ts","sourceRoot":"","sources":["../src/wrapper-session.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,EAC7C,MAAM,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"wrapper-session.d.ts","sourceRoot":"","sources":["../src/wrapper-session.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,EAC7C,MAAM,CAAC,EAAE,WAAW;AACpB,0FAA0F;AAC1F,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,oBAAoB,CAAC,CA6B/B"}
|
package/dist/wrapper-session.js
CHANGED
|
@@ -19,7 +19,9 @@ const SETTLE_AFTER_KILL_MS = 250;
|
|
|
19
19
|
* Identify and execute a custom wrapper in one pinned process. No private
|
|
20
20
|
* request is written until its declared path still names the captured file.
|
|
21
21
|
*/
|
|
22
|
-
export function runWrapperSession(cli, instruction, wakeContext, model, env, overrides = {}, signal
|
|
22
|
+
export function runWrapperSession(cli, instruction, wakeContext, model, env, overrides = {}, signal,
|
|
23
|
+
/** Working directory for the wrapper process; the artifact scanner uses the same root. */
|
|
24
|
+
cwd) {
|
|
23
25
|
if (signal?.aborted)
|
|
24
26
|
return Promise.reject(signal.reason);
|
|
25
27
|
if (signal !== undefined && process.platform === 'win32') {
|
|
@@ -45,15 +47,16 @@ export function runWrapperSession(cli, instruction, wakeContext, model, env, ove
|
|
|
45
47
|
catch (error) {
|
|
46
48
|
return Promise.resolve(failure(`CLI ${JSON.stringify(cli)} wrapper identity could not be pinned: ${String(error)}`));
|
|
47
49
|
}
|
|
48
|
-
return executePinnedWrapper(cli, identity, request, env, limits, signal);
|
|
50
|
+
return executePinnedWrapper(cli, identity, request, env, limits, signal, cwd);
|
|
49
51
|
}
|
|
50
|
-
function executePinnedWrapper(cli, identity, request, env, limits, signal) {
|
|
52
|
+
function executePinnedWrapper(cli, identity, request, env, limits, signal, cwd) {
|
|
51
53
|
return new Promise((resolve) => {
|
|
52
54
|
const ownsGroup = ownsProcessGroup(signal);
|
|
53
55
|
const child = spawn(identity.executable, [WRAPPER_IDENTIFY_ARG], {
|
|
54
56
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
55
57
|
env,
|
|
56
58
|
detached: ownsGroup,
|
|
59
|
+
...(cwd === undefined ? {} : { cwd }),
|
|
57
60
|
});
|
|
58
61
|
const stop = childStop(child, ownsGroup);
|
|
59
62
|
const stdout = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper-session.js","sourceRoot":"","sources":["../src/wrapper-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAc9B,MAAM,cAAc,GAAyB;IAC3C,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,OAAO;IAC3B,cAAc,EAAE,SAAS;CAC1B,CAAC;AACF,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,WAAmB,EACnB,WAAoB,EACpB,KAAyB,EACzB,GAAsB,EACtB,YAA2C,EAAE,EAC7C,MAAoB;
|
|
1
|
+
{"version":3,"file":"wrapper-session.js","sourceRoot":"","sources":["../src/wrapper-session.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.
|
|
3
|
+
"version": "2.0.17",
|
|
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",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"license": "Apache-2.0",
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
46
|
-
"@relayfile/adapter-core": "0.5.
|
|
46
|
+
"@relayfile/adapter-core": "0.5.26",
|
|
47
47
|
"@relayfile/relay-helpers": "0.4.11",
|
|
48
|
-
"@relayflows/surface": "2.0.
|
|
48
|
+
"@relayflows/surface": "2.0.17",
|
|
49
49
|
"@types/js-yaml": "^4.0.9",
|
|
50
50
|
"ai-hist": "0.4.1",
|
|
51
51
|
"ajv": "^8.17.1",
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readFile, readdir, stat } from 'node:fs/promises';
|
|
3
|
+
import { join, relative, sep } from 'node:path';
|
|
4
|
+
|
|
5
|
+
function isEnoent(error: unknown): boolean {
|
|
6
|
+
return error instanceof Error && (error as NodeJS.ErrnoException).code === 'ENOENT';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const SKIPPED_DIR_NAMES = new Set(['node_modules']);
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A recursive snapshot of every regular file under `dir`, keyed by its
|
|
13
|
+
* `dir`-relative POSIX path, valued by a content signature (size + sha256).
|
|
14
|
+
* Content, not mtime: a fast rewrite inside the filesystem's timestamp
|
|
15
|
+
* resolution must still count as a change — the same rule
|
|
16
|
+
* `examples/research/shims/agent-cli.ts`'s `snapshot()` uses for the same
|
|
17
|
+
* "did the agent actually write something" question. Dotfiles/dotdirs
|
|
18
|
+
* (`.git`, the kernel's own `.relayflowd` data dir, editor swap files, ...)
|
|
19
|
+
* are never agent-authored content and are skipped, as is `node_modules`.
|
|
20
|
+
* A missing `dir` (an agent step whose cwd does not exist yet) yields an
|
|
21
|
+
* empty snapshot rather than throwing. Only a vanished path (`ENOENT`) is
|
|
22
|
+
* ever swallowed this way; any other filesystem error (permissions,
|
|
23
|
+
* `ENOTDIR`, `EISDIR`, ...) propagates, because a step whose artifact scan
|
|
24
|
+
* silently dropped files it could not read must not report a successful,
|
|
25
|
+
* incomplete `artifacts` list as if it were the truth.
|
|
26
|
+
*/
|
|
27
|
+
export async function snapshotWorkspaceFiles(dir: string): Promise<Map<string, string>> {
|
|
28
|
+
const out = new Map<string, string>();
|
|
29
|
+
await walk(dir, dir, out);
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async function walk(root: string, current: string, out: Map<string, string>): Promise<void> {
|
|
34
|
+
let entries;
|
|
35
|
+
try {
|
|
36
|
+
entries = await readdir(current, { withFileTypes: true });
|
|
37
|
+
} catch (error) {
|
|
38
|
+
if (isEnoent(error)) return;
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
for (const entry of entries) {
|
|
42
|
+
if (entry.name.startsWith('.') || SKIPPED_DIR_NAMES.has(entry.name)) continue;
|
|
43
|
+
const path = join(current, entry.name);
|
|
44
|
+
if (entry.isDirectory()) {
|
|
45
|
+
await walk(root, path, out);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (!entry.isFile()) continue;
|
|
49
|
+
let info;
|
|
50
|
+
try {
|
|
51
|
+
info = await stat(path);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
// A file can vanish between readdir and stat (a CLI's own temp file);
|
|
54
|
+
// that is not an artifact, not a scan failure.
|
|
55
|
+
if (isEnoent(error)) continue;
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
let bytes;
|
|
59
|
+
try {
|
|
60
|
+
bytes = await readFile(path);
|
|
61
|
+
} catch (error) {
|
|
62
|
+
if (isEnoent(error)) continue;
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
out.set(relative(root, path).split(sep).join('/'), `${info.size}:${createHash('sha256').update(bytes).digest('hex')}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** `dir`-relative paths present in `after` that are new or changed since `before`, sorted. */
|
|
70
|
+
export function diffWorkspaceFiles(before: Map<string, string>, after: Map<string, string>): string[] {
|
|
71
|
+
const changed: string[] = [];
|
|
72
|
+
for (const [path, signature] of after) {
|
|
73
|
+
if (before.get(path) !== signature) changed.push(path);
|
|
74
|
+
}
|
|
75
|
+
return changed.sort();
|
|
76
|
+
}
|
|
@@ -12,7 +12,7 @@ import { buildMcpProxy, runMcpEffect } from './authored-mcp.js';
|
|
|
12
12
|
import { AuthoredBudget } from './authored-budget.js';
|
|
13
13
|
import { assertMemoryReachable, authoredMemory, scriptMemoryScope } from './authored-memory.js';
|
|
14
14
|
import { authoredDeterministicRunner, authoredWorkerRunner } from './authored-worker-step.js';
|
|
15
|
-
import { isSurfaceRunCompletionReason } from './authored-step-output.js';
|
|
15
|
+
import { isSurfaceFlowCompletionReason, isSurfaceRunCompletionReason } from './authored-step-output.js';
|
|
16
16
|
import {
|
|
17
17
|
type AgentResult,
|
|
18
18
|
type LlmOptions,
|
|
@@ -111,7 +111,7 @@ type JournalStepUsesStepCompletionReason = Assert<
|
|
|
111
111
|
* authored root, it is not a resumable public runner. The seam is narrow: an
|
|
112
112
|
* flow with an optional budget may await `f.run`, `f.llm`, and `f.agent` steps and must
|
|
113
113
|
* finish with one of the lowered completions — `f.done("success")`,
|
|
114
|
-
* `f.done("needs_human")` or `f.done("
|
|
114
|
+
* `f.done("needs_human")`, `f.done("step_failed")` or `f.done("declined")`. Each step and the terminal marker is
|
|
115
115
|
* a compiled spec submitted through
|
|
116
116
|
* `JournalClient`; values are read back from `step.completed` journal entries.
|
|
117
117
|
* Unsupported headers, verbs, gates, or completion lowering fail closed.
|
|
@@ -211,6 +211,93 @@ export async function executeAuthoredFlow<Input = undefined>(
|
|
|
211
211
|
localAgentStream, budget, definition.header.budget, options.rootRunId,
|
|
212
212
|
);
|
|
213
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Predicate gates (docs/SURFACE.md §6). The closure runs here, once, on the
|
|
216
|
+
* value the journal handed back; the VERDICT is then journaled as a lowered
|
|
217
|
+
* `<id>.gate` deterministic step that succeeds or fails, so a resume or
|
|
218
|
+
* replay reads the recorded verdict and never re-runs author code. A false
|
|
219
|
+
* verdict fails the step as `gate_failed`, carrying the author's reason.
|
|
220
|
+
*
|
|
221
|
+
* Durability across a resume: the verdict is appended to the root run's
|
|
222
|
+
* `predicate-gates` stream BEFORE the gate run is opened. A resumed body
|
|
223
|
+
* re-executes and reaches the same gate; it finds the recorded verdict and
|
|
224
|
+
* reuses it, so the gate run's spec (which embeds the verdict) is identical
|
|
225
|
+
* under its admission key and the closure is never re-run. Without a root
|
|
226
|
+
* run there is nothing to resume, and the closure simply runs.
|
|
227
|
+
*/
|
|
228
|
+
const PREDICATE_STREAM = 'predicate-gates';
|
|
229
|
+
interface PredicateRecord { gate: 'predicate'; step: string; verdict: 'pass' | 'fail'; because?: string; threw?: string }
|
|
230
|
+
// The stream is read once per execution; concurrent gates (Promise.all)
|
|
231
|
+
// share the single in-flight load, so none of them can observe an empty
|
|
232
|
+
// map while the read is still pending and re-run a closure whose verdict
|
|
233
|
+
// was already recorded.
|
|
234
|
+
let recordedVerdicts: Promise<Map<string, PredicateRecord>> | undefined;
|
|
235
|
+
async function loadRecordedVerdicts(rootRunId: string): Promise<Map<string, PredicateRecord>> {
|
|
236
|
+
const verdicts = new Map<string, PredicateRecord>();
|
|
237
|
+
let offset = 0;
|
|
238
|
+
for (;;) {
|
|
239
|
+
const page = await journal.streamRead(rootRunId, PREDICATE_STREAM, offset, 1000);
|
|
240
|
+
for (const message of page.messages) {
|
|
241
|
+
const record = (message as { message?: unknown }).message ?? message;
|
|
242
|
+
if (typeof record === 'object' && record !== null && (record as PredicateRecord).gate === 'predicate'
|
|
243
|
+
&& typeof (record as PredicateRecord).step === 'string'
|
|
244
|
+
&& ((record as PredicateRecord).verdict === 'pass' || (record as PredicateRecord).verdict === 'fail')) {
|
|
245
|
+
verdicts.set((record as PredicateRecord).step, record as PredicateRecord);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (page.messages.length === 0 || page.next_offset <= offset) break;
|
|
249
|
+
offset = page.next_offset;
|
|
250
|
+
}
|
|
251
|
+
return verdicts;
|
|
252
|
+
}
|
|
253
|
+
async function recordedVerdict(id: string): Promise<PredicateRecord | undefined> {
|
|
254
|
+
if (options.rootRunId === undefined) return undefined;
|
|
255
|
+
recordedVerdicts ??= loadRecordedVerdicts(options.rootRunId);
|
|
256
|
+
return (await recordedVerdicts).get(id);
|
|
257
|
+
}
|
|
258
|
+
async function applyPredicateGate<T>(operation: { id: string; predicateGate: unknown }, value: T): Promise<T> {
|
|
259
|
+
const gate = operation.predicateGate as { predicate: (value: T) => boolean; because?: string } | undefined;
|
|
260
|
+
if (gate === undefined) return value;
|
|
261
|
+
const id = operation.id;
|
|
262
|
+
let record = await recordedVerdict(id);
|
|
263
|
+
if (record === undefined) {
|
|
264
|
+
let verdict: boolean;
|
|
265
|
+
let detail: string | undefined;
|
|
266
|
+
try {
|
|
267
|
+
verdict = gate.predicate(value) === true;
|
|
268
|
+
} catch (error) {
|
|
269
|
+
verdict = false;
|
|
270
|
+
detail = error instanceof Error ? error.message : String(error);
|
|
271
|
+
}
|
|
272
|
+
record = {
|
|
273
|
+
gate: 'predicate', step: id, verdict: verdict ? 'pass' : 'fail',
|
|
274
|
+
...(gate.because === undefined ? {} : { because: gate.because }),
|
|
275
|
+
...(detail === undefined ? {} : { threw: detail }),
|
|
276
|
+
};
|
|
277
|
+
if (options.rootRunId !== undefined) {
|
|
278
|
+
await journal.streamAppend(options.rootRunId, PREDICATE_STREAM, record);
|
|
279
|
+
(await recordedVerdicts)?.set(id, record);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const literal = `'${JSON.stringify(record).replaceAll("'", "'\\''")}'`;
|
|
283
|
+
const command = record.verdict === 'pass' ? `printf '%s' ${literal}` : `printf '%s' ${literal} >&2; exit 1`;
|
|
284
|
+
try {
|
|
285
|
+
await observeStep(`${id}.gate`, 'deterministic', () => lowerDeterministic(`${id}.gate`, command, false), options.onProgress);
|
|
286
|
+
} catch (error) {
|
|
287
|
+
if (record.verdict === 'pass') throw error;
|
|
288
|
+
throw new AuthoredFlowExecutionError(
|
|
289
|
+
'gate_failed',
|
|
290
|
+
`step "${id}" failed its predicate gate`
|
|
291
|
+
+ (record.because === undefined ? '' : `: ${record.because}`)
|
|
292
|
+
+ (record.threw === undefined ? '' : ` (predicate threw: ${record.threw})`),
|
|
293
|
+
'verification_failed',
|
|
294
|
+
error instanceof AuthoredFlowExecutionError ? error.runId : undefined,
|
|
295
|
+
);
|
|
296
|
+
}
|
|
297
|
+
return value;
|
|
298
|
+
}
|
|
299
|
+
lifecycle.applyPredicateGate = applyPredicateGate;
|
|
300
|
+
|
|
214
301
|
function llmOperation(strings: TemplateStringsArray, ...values: unknown[]): Step<string>;
|
|
215
302
|
function llmOperation(prompt: string, options: LlmOptions): Step<unknown>;
|
|
216
303
|
function llmOperation(prompt: string | TemplateStringsArray, ...values: unknown[]): Step<unknown> {
|
|
@@ -328,7 +415,7 @@ export async function executeAuthoredFlow<Input = undefined>(
|
|
|
328
415
|
throw unsupportedVerb('dispatch');
|
|
329
416
|
},
|
|
330
417
|
done(reason) {
|
|
331
|
-
if (
|
|
418
|
+
if (!isSurfaceFlowCompletionReason(reason)) {
|
|
332
419
|
throw new AuthoredFlowExecutionError(
|
|
333
420
|
'unsupported_completion',
|
|
334
421
|
`unknown completion reason: ${String(reason)}`,
|
|
@@ -356,7 +443,7 @@ export async function executeAuthoredFlow<Input = undefined>(
|
|
|
356
443
|
`done("${reason}") is a kernel outcome, not an authored verdict: the kernel `
|
|
357
444
|
+ 'records it when it cancels a run or exhausts its budget, so a flow body '
|
|
358
445
|
+ 'cannot declare it. Use done("step_failed") to declare that the flow\'s own '
|
|
359
|
-
+ 'checks did not pass.',
|
|
446
|
+
+ 'checks did not pass, or done("declined") to deliberately choose not to act.',
|
|
360
447
|
reason,
|
|
361
448
|
);
|
|
362
449
|
}
|
|
@@ -432,7 +519,7 @@ export async function executeAuthoredFlow<Input = undefined>(
|
|
|
432
519
|
// Record the authored verdict as a SUCCESSFUL effect carrying that verdict,
|
|
433
520
|
// not as a fabricated kernel run.completed reason. The marker step reports
|
|
434
521
|
// what the body decided; it is not itself a step that failed. The CLI turns
|
|
435
|
-
// the verdict into the exit code (success 0, needs_human 3, step_failed 1).
|
|
522
|
+
// the verdict into the exit code (success/declined 0, needs_human 3, step_failed 1).
|
|
436
523
|
await lowerDeterministic(`complete-${nextStep}`,
|
|
437
524
|
completionMarker(requestedCompletion), true);
|
|
438
525
|
return Object.freeze({
|
|
@@ -462,7 +549,7 @@ function unsupportedVerb(verb: string): AuthoredFlowExecutionError {
|
|
|
462
549
|
* The completion reasons an authored body may declare and this executor lowers.
|
|
463
550
|
*
|
|
464
551
|
* `FlowCompletionReason` is wider than this on purpose — it is the journal's
|
|
465
|
-
* run vocabulary plus
|
|
552
|
+
* run vocabulary plus authored verdicts — but the two sets drifting silently is
|
|
466
553
|
* exactly what made a type-valid `done("step_failed")` die at runtime as
|
|
467
554
|
* `unsupported_completion`. Every gate that asks "is this a completion this
|
|
468
555
|
* runtime can lower?" now asks this one function, so a reason cannot be
|
|
@@ -473,7 +560,7 @@ function unsupportedVerb(verb: string): AuthoredFlowExecutionError {
|
|
|
473
560
|
* SDK surface. `src/index.ts` deliberately re-exports nothing from this module
|
|
474
561
|
* — keep it that way, or the whole authored seam leaks with them.
|
|
475
562
|
*/
|
|
476
|
-
export const LOWERED_COMPLETIONS = ['success', 'needs_human', 'step_failed'] as const;
|
|
563
|
+
export const LOWERED_COMPLETIONS = ['success', 'needs_human', 'step_failed', 'declined'] as const;
|
|
477
564
|
export type LoweredCompletionReason = (typeof LOWERED_COMPLETIONS)[number];
|
|
478
565
|
|
|
479
566
|
export function isLoweredCompletion(value: unknown): value is LoweredCompletionReason {
|
|
@@ -504,7 +591,7 @@ function assertOperationAllowed(
|
|
|
504
591
|
throw new AuthoredFlowExecutionError(
|
|
505
592
|
'operation_after_completion',
|
|
506
593
|
`flow "${flowName}" called f.${verb} after done()`,
|
|
507
|
-
completion
|
|
594
|
+
isSurfaceRunCompletionReason(completion) ? completion : undefined,
|
|
508
595
|
);
|
|
509
596
|
}
|
|
510
597
|
}
|
|
@@ -109,6 +109,13 @@ function collectMembers(values: Iterable<unknown>): unknown[] | undefined {
|
|
|
109
109
|
* called the operation's then method.
|
|
110
110
|
*/
|
|
111
111
|
export class AuthoredFlowLifecycle {
|
|
112
|
+
/**
|
|
113
|
+
* Installed by the executor: runs an operation's predicate gate (if any) on
|
|
114
|
+
* its resolved value before the operation fulfills. Lives on the lifecycle
|
|
115
|
+
* so EVERY authored operation — core steps, helpers, MCP, plugins — passes
|
|
116
|
+
* through it; a gate accepted on a Step must never be silently ignored.
|
|
117
|
+
*/
|
|
118
|
+
applyPredicateGate: (<T>(operation: { id: string; predicateGate: unknown }, value: T) => Promise<T>) | undefined = undefined;
|
|
112
119
|
private readonly graph: AuthoredPromiseGraph;
|
|
113
120
|
private readonly activeResolverProbes: ResolverProbe[] = [];
|
|
114
121
|
private readonly invocations = new Map<OperationToken, AuthoredOperationInvocation[]>();
|