@relayflows/sdk 2.0.10 → 2.0.11
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-relay-receipt.d.ts +24 -0
- package/dist/agent-relay-receipt.d.ts.map +1 -0
- package/dist/agent-relay-receipt.js +66 -0
- package/dist/agent-relay-receipt.js.map +1 -0
- package/dist/agent-relay-state.d.ts +18 -0
- package/dist/agent-relay-state.d.ts.map +1 -0
- package/dist/agent-relay-state.js +58 -0
- package/dist/agent-relay-state.js.map +1 -0
- package/dist/agent-relay-transport.d.ts +17 -70
- package/dist/agent-relay-transport.d.ts.map +1 -1
- package/dist/agent-relay-transport.js +177 -112
- package/dist/agent-relay-transport.js.map +1 -1
- package/dist/worker-cli.d.ts +5 -2
- package/dist/worker-cli.d.ts.map +1 -1
- package/dist/worker-cli.js +38 -42
- package/dist/worker-cli.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +8 -2
- package/dist/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/agent-relay-receipt.ts +120 -0
- package/src/agent-relay-state.ts +73 -0
- package/src/agent-relay-transport.ts +242 -156
- package/src/worker-cli.ts +44 -50
- package/src/worker.ts +8 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-relay-transport.js","sourceRoot":"","sources":["../src/agent-relay-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-relay-transport.js","sourceRoot":"","sources":["../src/agent-relay-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/worker-cli.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare const WAKE_CONTEXT_ENV = "RELAYFLOW_WAKE_CONTEXT";
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const MODEL_ENV = "RELAYFLOW_MODEL";
|
|
12
12
|
export interface WorkerCliResult {
|
|
13
|
+
relay_task?: import('./agent-relay-receipt.js').RelayTaskReceipt;
|
|
13
14
|
tokens_input?: number;
|
|
14
15
|
tokens_output?: number;
|
|
15
16
|
exit_code: number | null;
|
|
@@ -17,12 +18,14 @@ export interface WorkerCliResult {
|
|
|
17
18
|
stderr_tail: string;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
-
* stable, DM-addressable agent name (flows#385).
|
|
21
|
+
* Journal identity and durable dispatch storage used by the Relay task transport.
|
|
22
22
|
*/
|
|
23
23
|
export interface AgentRelayContext {
|
|
24
24
|
runId: string;
|
|
25
25
|
stepId: string;
|
|
26
|
+
idempotencyKey: string;
|
|
27
|
+
dataDir?: string;
|
|
28
|
+
resultSchema?: unknown;
|
|
26
29
|
}
|
|
27
30
|
export declare function runAgentCli(cli: string, instruction: string, wakeContext: unknown, model?: string, wrapperLimits?: Partial<WrapperSessionLimits>, signal?: AbortSignal, mode?: 'agent' | 'llm', sidechannel?: SidechannelContext, cwd?: string, transport?: AgentTransport, relayContext?: AgentRelayContext): Promise<WorkerCliResult>;
|
|
28
31
|
//# sourceMappingURL=worker-cli.d.ts.map
|
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":"AACA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAUhF,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,
|
|
1
|
+
{"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAUhF,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;CACrB;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,CA6C1B"}
|
package/dist/worker-cli.js
CHANGED
|
@@ -5,7 +5,7 @@ import { childStop, ownsProcessGroup } from './child-stop.js';
|
|
|
5
5
|
import { agentExecution, llmExecution, cliAdapterKind, } from './cli-adapter.js';
|
|
6
6
|
import { runWrapperSession, } from './wrapper-session.js';
|
|
7
7
|
import { wrapperEnvironment } from './wrapper-runtime.js';
|
|
8
|
-
import {
|
|
8
|
+
import { runAgentRelayTask, AgentRelayTransportError, } from './agent-relay-transport.js';
|
|
9
9
|
/** Present only when a dispatched agent step carries a journaled wake context. */
|
|
10
10
|
export const WAKE_CONTEXT_ENV = 'RELAYFLOW_WAKE_CONTEXT';
|
|
11
11
|
/**
|
|
@@ -20,12 +20,12 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
|
|
|
20
20
|
throw new Error('Lease-bound agent execution requires macOS or Linux process-group cancellation; Windows is unsupported.');
|
|
21
21
|
}
|
|
22
22
|
const kind = cliAdapterKind(cli);
|
|
23
|
+
if (mode === 'agent' && transport === 'relay') {
|
|
24
|
+
return runViaAgentRelay(kind, instruction, wakeContext, model, relayContext, cwd, signal);
|
|
25
|
+
}
|
|
23
26
|
if (kind === 'relayflows-wrapper-v1') {
|
|
24
27
|
return requirePricedUsage(decodeWrapperResult(await runWrapperSession(cli, instruction, wakeContext, model, wrapperEnvironment(process.env), wrapperLimits, signal)), model);
|
|
25
28
|
}
|
|
26
|
-
if (mode === 'agent' && transport === 'relay') {
|
|
27
|
-
return runViaAgentRelay(kind, instruction, model, relayContext, cwd);
|
|
28
|
-
}
|
|
29
29
|
const env = { ...process.env };
|
|
30
30
|
delete env[WAKE_CONTEXT_ENV];
|
|
31
31
|
delete env[MODEL_ENV];
|
|
@@ -49,49 +49,45 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
|
|
|
49
49
|
args.splice(args.length - 1, 0, ...(kind === 'claude' ? ['--output-format', 'json'] : ['--json']));
|
|
50
50
|
return requirePricedUsage(decodeProviderResult(await spawnInvocation(cli, { ...invocation, args }, env, signal, sidechannel, cwd), kind), model);
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
* that registers the CLI as a first-class workspace participant DMs can
|
|
55
|
-
* steer, then reports the spawn outcome as a WorkerCliResult. Streaming
|
|
56
|
-
* completion tracking is a follow-up — this initial slice proves the
|
|
57
|
-
* transport wire and returns quickly with the registered name in stdout.
|
|
58
|
-
*/
|
|
59
|
-
async function runViaAgentRelay(kind, instruction, model, relayContext, worker_cwd) {
|
|
60
|
-
if (kind === 'relayflows-wrapper-v1') {
|
|
61
|
-
return {
|
|
62
|
-
exit_code: null,
|
|
63
|
-
stdout_tail: '',
|
|
64
|
-
stderr_tail: 'agent-relay transport does not support the relayflows-wrapper-v1 same-process session.',
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
if (relayContext === undefined) {
|
|
68
|
-
return {
|
|
69
|
-
exit_code: null,
|
|
70
|
-
stdout_tail: '',
|
|
71
|
-
stderr_tail: 'agent-relay transport requires a relayContext (runId, stepId); the caller did not thread it through.',
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
const name = deriveAgentName(relayContext.runId, relayContext.stepId);
|
|
52
|
+
/** Wait under the same worker lease for an authoritative task receipt. */
|
|
53
|
+
async function runViaAgentRelay(kind, instruction, wakeContext, model, context, worker_cwd, signal) {
|
|
75
54
|
try {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
task
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
55
|
+
if (kind === 'relayflows-wrapper-v1')
|
|
56
|
+
throw new Error('Relay task transport does not support same-process wrappers.');
|
|
57
|
+
if (!context?.dataDir)
|
|
58
|
+
throw new Error('Relay task transport requires a durable data directory and journal dispatch identity.');
|
|
59
|
+
const task = instruction + (wakeContext === undefined ? '' : `\n\nWake context (journaled):\n${JSON.stringify(wakeContext)}`)
|
|
60
|
+
+ '\n\nReport the final task output with the injected agent_result tool and final=true. Wait for its successful durable acknowledgment before exiting.';
|
|
61
|
+
const received = await runAgentRelayTask({
|
|
62
|
+
cli: kind, task, model, worker_cwd, result_schema: context.resultSchema,
|
|
63
|
+
runId: context.runId, stepId: context.stepId, idempotencyKey: context.idempotencyKey,
|
|
64
|
+
dataDir: context.dataDir,
|
|
65
|
+
}, { signal });
|
|
66
|
+
const receipt = { ...received, error: received.error === null ? null : redactRelayError(received.error) };
|
|
67
|
+
const accounting = receipt.task_execution.accounting;
|
|
68
|
+
const result = {
|
|
69
|
+
relay_task: receipt, exit_code: receipt.status === 'completed' ? 0 : 1,
|
|
70
|
+
stdout_tail: receipt.status === 'completed' ? JSON.stringify(receipt.output) : '',
|
|
71
|
+
stderr_tail: receipt.status === 'failed' ? `Relay task failed: ${receipt.error}` : '',
|
|
72
|
+
...(accounting?.tokens_input === undefined ? {} : { tokens_input: accounting.tokens_input }),
|
|
73
|
+
...(accounting?.tokens_output === undefined ? {} : { tokens_output: accounting.tokens_output }),
|
|
87
74
|
};
|
|
75
|
+
return requirePricedUsage(result, model);
|
|
88
76
|
}
|
|
89
77
|
catch (error) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
:
|
|
93
|
-
return { exit_code: null, stdout_tail: '', stderr_tail: detail };
|
|
78
|
+
signal?.throwIfAborted();
|
|
79
|
+
const detail = error instanceof AgentRelayTransportError ? error.message
|
|
80
|
+
: error instanceof Error ? error.message : 'Relay task transport failed';
|
|
81
|
+
return { exit_code: null, stdout_tail: '', stderr_tail: redactRelayError(detail) };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function redactRelayError(message) {
|
|
85
|
+
for (const key of ['RELAY_AGENT_TOKEN', 'RELAY_API_KEY']) {
|
|
86
|
+
const secret = process.env[key];
|
|
87
|
+
if (secret)
|
|
88
|
+
message = message.replaceAll(secret, '[redacted]');
|
|
94
89
|
}
|
|
90
|
+
return message.replace(/\b(?:at|rk|nt|ot|br|arr)_(?:live_)?[A-Za-z0-9_-]+/g, '[redacted]');
|
|
95
91
|
}
|
|
96
92
|
async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd) {
|
|
97
93
|
let writeInput = async () => false;
|
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,GAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,
|
|
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,GAGf,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;AAsB3C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,WAAmB,EACnB,WAAoB,EACpB,KAAc,EACd,aAA6C,EAC7C,MAAoB,EACpB,OAAwB,OAAO,EAC/B,WAAgC,EAChC,GAAY,EACZ,YAA4B,QAAQ,EACpC,YAAgC;IAEhC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAEjC,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACrC,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,iBAAiB,CACnE,GAAG,EACH,WAAW,EACX,WAAW,EACX,KAAK,EACL,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAC/B,aAAa,EACb,MAAM,CACP,CAAC,EAAE,KAAK,CAAC,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAEtH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,GAAG,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,0DAA0D,MAAM,CAAC,KAAK,CAAC,EAAE;aACvF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC5E,qEAAqE;IACrE,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnG,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AACnJ,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,gBAAgB,CAC7B,IAAoB,EAAE,WAAmB,EAAE,WAAoB,EAC/D,KAAyB,EAAE,OAAsC,EACjE,UAA8B,EAAE,MAA+B;IAE/D,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,uBAAuB;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACtH,IAAI,CAAC,OAAO,EAAE,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAChI,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;cACzH,qJAAqJ,CAAC;QAC1J,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;YACvC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY;YACvE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc;YACpF,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACf,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1G,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC;QACrD,MAAM,MAAM,GAAoB;YAC9B,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,WAAW,EAAE,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACjF,WAAW,EAAE,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;YACrF,GAAG,CAAC,UAAU,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5F,GAAG,CAAC,UAAU,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC;SAChG,CAAC;QACF,OAAO,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,YAAY,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;YACtE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC3E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,oDAAoD,EAAE,YAAY,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAW,EACX,UAAyB,EACzB,GAAsB,EACtB,MAAoB,EACpB,WAAgC,EAChC,GAAY;IAEZ,IAAI,UAAU,GAAwC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;IACxE,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC;QAC5E,GAAG,WAAW;QACd,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KACpD,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAAC,CAAC;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE;YACxC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG;YACpC,QAAQ,EAAE,SAAS;YACnB,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;SACtC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7C,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;YACrE,IAAI,CAAC,MAAM;gBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1C,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC5C,sEAAsE;YACtE,uEAAuE;YACvE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACzC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,KAAiC,CAAC;QACtC,MAAM,MAAM,GAAG,CAAC,MAAuB,EAAQ,EAAE;YAC/C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,EAAE,KAAK,EAAE,CAAC;YACjB,IAAI,KAAK,KAAK,SAAS;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC;QACF;;;;;;;WAOG;QACH,MAAM,iBAAiB,GAAG,CAAC,MAAuB,EAAQ,EAAE;YAC1D,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAAE,OAAO;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAC/C,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,WAAW,EAAE,KAAK,CAAC,OAAO;SAC3B,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAC9C,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;SACpD,CAAC,CAAC,CAAC;QACJ,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,wEAAwE;gBACxE,wEAAwE;gBACxE,mEAAmE;gBACnE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,CAAC;oBACL,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACnD,WAAW,EAAE,kCAAkC,UAAU,CAAC,SAAS,KAAK;iBACzE,CAAC,CAAC;YACL,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
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;AAQ7D,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;AAQ7D,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;CAyDtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAa9E"}
|
package/dist/worker.js
CHANGED
|
@@ -93,7 +93,8 @@ export class AgentWorker extends EventEmitter {
|
|
|
93
93
|
? runAgentCli(spec.cli, workerInstruction(spec.instruction, dispatch), dispatch.wake_context, spec.model, undefined, signal, 'agent', this.options.dataDir === undefined ? undefined : {
|
|
94
94
|
dataDir: this.options.dataDir, runId: dispatch.run_id, stepId: dispatch.step_id,
|
|
95
95
|
onReady: this.options.onPtyReady, onDrive: () => { humanIntervention = true; },
|
|
96
|
-
}, typeof spec.cwd === 'string' ? spec.cwd : undefined, spec.transport === 'relay' ? 'relay' : 'direct', { runId: dispatch.run_id, stepId: dispatch.step_id
|
|
96
|
+
}, typeof spec.cwd === 'string' ? spec.cwd : undefined, spec.transport === 'relay' ? 'relay' : 'direct', { runId: dispatch.run_id, stepId: dispatch.step_id, idempotencyKey: dispatch.idempotency_key,
|
|
97
|
+
dataDir: this.options.dataDir, resultSchema: spec.verification?.json_schema })
|
|
97
98
|
: Promise.resolve({ exit_code: null, stdout_tail: '', stderr_tail: 'agent step has no declared CLI' }));
|
|
98
99
|
const { result, usage } = workerSpend(completed, spec.model);
|
|
99
100
|
const completionReason = result.exit_code === 0 ? 'success' : 'worker_error';
|
|
@@ -110,9 +111,14 @@ export class AgentWorker extends EventEmitter {
|
|
|
110
111
|
// emitting an error JSON with exit 0. `completionReason` is
|
|
111
112
|
// derived from exit code, so a CLI that exits 0 while emitting
|
|
112
113
|
// `{"error":...}` will report success with an error payload.
|
|
113
|
-
const output =
|
|
114
|
+
const output = result.relay_task?.status === 'completed' && result.exit_code === 0
|
|
115
|
+
? result.relay_task.output : parseJsonOutput(result.stdout_tail) ?? result;
|
|
114
116
|
await this.client.stepComplete(dispatch.run_id, dispatch.step_id, dispatch.attempt, dispatch.idempotency_key, completionReason, {
|
|
115
117
|
output,
|
|
118
|
+
...(result.relay_task === undefined ? {} : { trajectory_tail: { relay_task: {
|
|
119
|
+
invocation_id: result.relay_task.invocation_id, status: result.relay_task.status,
|
|
120
|
+
task_execution: result.relay_task.task_execution, error: result.relay_task.error,
|
|
121
|
+
} } }),
|
|
116
122
|
...(humanIntervention ? { human_intervention: true } : {}),
|
|
117
123
|
...(usage !== undefined ? { usage } : {}),
|
|
118
124
|
started_pins: dispatch.pins,
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relayflows/sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
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",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
46
46
|
"@relayfile/adapter-core": "0.5.24",
|
|
47
47
|
"@relayfile/relay-helpers": "0.4.11",
|
|
48
|
-
"@relayflows/surface": "2.0.
|
|
48
|
+
"@relayflows/surface": "2.0.11",
|
|
49
49
|
"@types/js-yaml": "^4.0.9",
|
|
50
50
|
"ai-hist": "0.4.1",
|
|
51
51
|
"ajv": "^8.17.1",
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { canonicalize } from "./canonical.js";
|
|
2
|
+
|
|
3
|
+
export const isRecord = (value: unknown): value is Record<string, unknown> =>
|
|
4
|
+
typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
export const nonempty = (value: unknown): value is string =>
|
|
6
|
+
typeof value === "string" && value.length > 0;
|
|
7
|
+
|
|
8
|
+
export interface RelayTaskExecution {
|
|
9
|
+
execution_id: string;
|
|
10
|
+
run_id: string;
|
|
11
|
+
step_id: string;
|
|
12
|
+
dispatch_id: string;
|
|
13
|
+
deadline: string;
|
|
14
|
+
worker_generation?: string;
|
|
15
|
+
accepted_at?: string;
|
|
16
|
+
accounting?: Record<string, number>;
|
|
17
|
+
}
|
|
18
|
+
export interface RelayTaskReceipt {
|
|
19
|
+
invocation_id: string;
|
|
20
|
+
action_name: "task.run";
|
|
21
|
+
status: "pending" | "dispatched" | "running" | "completed" | "failed";
|
|
22
|
+
task_execution: RelayTaskExecution;
|
|
23
|
+
output: unknown;
|
|
24
|
+
error: string | null;
|
|
25
|
+
completed_at: string | null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** GET is authoritative. A spawn/POST acknowledgment is never a task result. */
|
|
29
|
+
export function readTaskReceipt(
|
|
30
|
+
value: unknown,
|
|
31
|
+
invocationId: string,
|
|
32
|
+
input: Record<string, unknown>,
|
|
33
|
+
previous?: RelayTaskReceipt,
|
|
34
|
+
): RelayTaskReceipt {
|
|
35
|
+
const context = input.task_context as Record<string, unknown>;
|
|
36
|
+
if (
|
|
37
|
+
!isRecord(value) ||
|
|
38
|
+
value.invocation_id !== invocationId ||
|
|
39
|
+
value.action_name !== "task.run" ||
|
|
40
|
+
canonicalize(value.input) !== canonicalize(input) ||
|
|
41
|
+
!isRecord(value.task_execution)
|
|
42
|
+
) {
|
|
43
|
+
throw new Error("Relay task receipt has mismatched invocation or input");
|
|
44
|
+
}
|
|
45
|
+
const execution = value.task_execution;
|
|
46
|
+
const validDate = (date: unknown): date is string =>
|
|
47
|
+
nonempty(date) && Number.isFinite(Date.parse(date));
|
|
48
|
+
if (
|
|
49
|
+
!nonempty(execution.execution_id) ||
|
|
50
|
+
!validDate(execution.deadline) ||
|
|
51
|
+
["run_id", "step_id", "dispatch_id"].some(
|
|
52
|
+
(key) => execution[key] !== context[key],
|
|
53
|
+
) ||
|
|
54
|
+
!["pending", "dispatched", "running", "completed", "failed"].includes(
|
|
55
|
+
String(value.status),
|
|
56
|
+
)
|
|
57
|
+
) {
|
|
58
|
+
throw new Error("Relay task receipt has invalid execution correlation");
|
|
59
|
+
}
|
|
60
|
+
const accepted =
|
|
61
|
+
nonempty(execution.worker_generation) && validDate(execution.accepted_at);
|
|
62
|
+
if (
|
|
63
|
+
(value.status === "running" || value.status === "completed") &&
|
|
64
|
+
!accepted
|
|
65
|
+
) {
|
|
66
|
+
throw new Error("Relay task receipt is missing durable acceptance");
|
|
67
|
+
}
|
|
68
|
+
if (
|
|
69
|
+
(execution.worker_generation !== undefined ||
|
|
70
|
+
execution.accepted_at !== undefined) &&
|
|
71
|
+
!accepted
|
|
72
|
+
) {
|
|
73
|
+
throw new Error("Relay task receipt has incomplete durable acceptance");
|
|
74
|
+
}
|
|
75
|
+
if (
|
|
76
|
+
previous !== undefined &&
|
|
77
|
+
(previous.task_execution.execution_id !== execution.execution_id ||
|
|
78
|
+
previous.task_execution.deadline !== execution.deadline ||
|
|
79
|
+
(previous.task_execution.worker_generation !== undefined &&
|
|
80
|
+
(previous.task_execution.worker_generation !==
|
|
81
|
+
execution.worker_generation ||
|
|
82
|
+
previous.task_execution.accepted_at !== execution.accepted_at)))
|
|
83
|
+
) {
|
|
84
|
+
throw new Error(
|
|
85
|
+
"Relay task receipt changed its execution, accepted generation/time, or deadline",
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
if (
|
|
89
|
+
execution.accounting !== undefined &&
|
|
90
|
+
(!isRecord(execution.accounting) ||
|
|
91
|
+
Object.values(execution.accounting).some(
|
|
92
|
+
(n) => typeof n !== "number" || !Number.isFinite(n) || n < 0,
|
|
93
|
+
))
|
|
94
|
+
) {
|
|
95
|
+
throw new Error("Relay task receipt has invalid accounting");
|
|
96
|
+
}
|
|
97
|
+
if (
|
|
98
|
+
value.status === "completed" &&
|
|
99
|
+
(!Object.hasOwn(value, "output") ||
|
|
100
|
+
value.error !== null ||
|
|
101
|
+
!validDate(value.completed_at))
|
|
102
|
+
) {
|
|
103
|
+
throw new Error("Relay task receipt has no authoritative final output");
|
|
104
|
+
}
|
|
105
|
+
if (
|
|
106
|
+
value.status === "failed" &&
|
|
107
|
+
(!nonempty(value.error) || !validDate(value.completed_at))
|
|
108
|
+
) {
|
|
109
|
+
throw new Error("Relay task failure receipt has no reason");
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
invocation_id: invocationId,
|
|
113
|
+
action_name: "task.run",
|
|
114
|
+
status: value.status as RelayTaskReceipt["status"],
|
|
115
|
+
task_execution: execution as unknown as RelayTaskExecution,
|
|
116
|
+
output: value.output,
|
|
117
|
+
error: value.error as string | null,
|
|
118
|
+
completed_at: value.completed_at as string | null,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { mkdir, open, readFile } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { canonicalize } from "./canonical.js";
|
|
5
|
+
|
|
6
|
+
export interface RelayTaskClaim {
|
|
7
|
+
version: 1;
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
callerId: string;
|
|
10
|
+
workspaceId: string;
|
|
11
|
+
invocationId: string;
|
|
12
|
+
runId: string;
|
|
13
|
+
stepId: string;
|
|
14
|
+
idempotencyKey: string;
|
|
15
|
+
input: Record<string, unknown>;
|
|
16
|
+
startedAt: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Exclusive creation pins the request before POST; no last-writer overwrite. */
|
|
20
|
+
export async function claimRelayTask(
|
|
21
|
+
dataDir: string,
|
|
22
|
+
claim: RelayTaskClaim,
|
|
23
|
+
): Promise<{ claim: RelayTaskClaim; created: boolean }> {
|
|
24
|
+
const directory = join(dataDir, "relay-tasks");
|
|
25
|
+
await mkdir(directory, { recursive: true });
|
|
26
|
+
const parent = await open(dataDir, "r");
|
|
27
|
+
try {
|
|
28
|
+
await parent.sync();
|
|
29
|
+
} finally {
|
|
30
|
+
await parent.close();
|
|
31
|
+
}
|
|
32
|
+
const digest = createHash("sha256")
|
|
33
|
+
.update(canonicalize([claim.runId, claim.stepId, claim.idempotencyKey]))
|
|
34
|
+
.digest("hex");
|
|
35
|
+
const path = join(directory, `${digest}.json`);
|
|
36
|
+
let file;
|
|
37
|
+
try {
|
|
38
|
+
file = await open(path, "wx", 0o600);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
if ((error as NodeJS.ErrnoException).code !== "EEXIST") throw error;
|
|
41
|
+
const prior: unknown = JSON.parse(await readFile(path, "utf8"));
|
|
42
|
+
if (
|
|
43
|
+
typeof prior !== "object" ||
|
|
44
|
+
prior === null ||
|
|
45
|
+
!("startedAt" in prior) ||
|
|
46
|
+
typeof prior.startedAt !== "number" ||
|
|
47
|
+
!Number.isSafeInteger(prior.startedAt) ||
|
|
48
|
+
prior.startedAt < 0 ||
|
|
49
|
+
canonicalize(prior) !==
|
|
50
|
+
canonicalize({ ...claim, startedAt: prior.startedAt })
|
|
51
|
+
) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
"Relay task dispatch conflicts with its durable caller, endpoint, or input",
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return { claim: prior as RelayTaskClaim, created: false };
|
|
57
|
+
}
|
|
58
|
+
// A crash during creation leaves a partial claim that fails closed on read.
|
|
59
|
+
// Never remove an uncertain claim and retry under a different identity.
|
|
60
|
+
try {
|
|
61
|
+
await file.writeFile(canonicalize(claim));
|
|
62
|
+
await file.sync();
|
|
63
|
+
} finally {
|
|
64
|
+
await file.close();
|
|
65
|
+
}
|
|
66
|
+
const dir = await open(directory, "r");
|
|
67
|
+
try {
|
|
68
|
+
await dir.sync();
|
|
69
|
+
} finally {
|
|
70
|
+
await dir.close();
|
|
71
|
+
}
|
|
72
|
+
return { claim, created: true };
|
|
73
|
+
}
|