@relayflows/sdk 2.0.10 → 2.0.12
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/adapters/base.d.ts +6 -0
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +1 -0
- package/dist/adapters/claude.js.map +1 -1
- 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/authored-admission.d.ts +5 -0
- package/dist/authored-admission.d.ts.map +1 -0
- package/dist/authored-admission.js +14 -0
- package/dist/authored-admission.js.map +1 -0
- package/dist/authored-budget.d.ts +1 -1
- package/dist/authored-budget.d.ts.map +1 -1
- package/dist/authored-budget.js +3 -3
- package/dist/authored-budget.js.map +1 -1
- 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 +10 -0
- package/dist/authored-flow-executor.d.ts.map +1 -1
- package/dist/authored-flow-executor.js +10 -7
- package/dist/authored-flow-executor.js.map +1 -1
- package/dist/authored-flow-loader.d.ts +20 -0
- package/dist/authored-flow-loader.d.ts.map +1 -1
- package/dist/authored-flow-loader.js +86 -11
- package/dist/authored-flow-loader.js.map +1 -1
- package/dist/authored-helper-effect.d.ts +1 -1
- package/dist/authored-helper-effect.d.ts.map +1 -1
- package/dist/authored-helper-effect.js +5 -3
- package/dist/authored-helper-effect.js.map +1 -1
- package/dist/authored-mcp.d.ts +1 -1
- package/dist/authored-mcp.d.ts.map +1 -1
- package/dist/authored-mcp.js +7 -4
- package/dist/authored-mcp.js.map +1 -1
- package/dist/authored-node-entry.d.ts +2 -0
- package/dist/authored-node-entry.d.ts.map +1 -0
- package/dist/authored-node-entry.js +111 -0
- package/dist/authored-node-entry.js.map +1 -0
- package/dist/authored-node-runner.d.ts +11 -0
- package/dist/authored-node-runner.d.ts.map +1 -0
- package/dist/authored-node-runner.js +246 -0
- package/dist/authored-node-runner.js.map +1 -0
- package/dist/authored-plugin-effect.d.ts +1 -1
- package/dist/authored-plugin-effect.d.ts.map +1 -1
- package/dist/authored-plugin-effect.js +7 -4
- package/dist/authored-plugin-effect.js.map +1 -1
- package/dist/authored-root.d.ts +38 -0
- package/dist/authored-root.d.ts.map +1 -0
- package/dist/authored-root.js +329 -0
- package/dist/authored-root.js.map +1 -0
- package/dist/authored-runtime-capability.d.ts +6 -0
- package/dist/authored-runtime-capability.d.ts.map +1 -0
- package/dist/authored-runtime-capability.js +40 -0
- package/dist/authored-runtime-capability.js.map +1 -0
- package/dist/authored-source-authority.d.ts +4 -0
- package/dist/authored-source-authority.d.ts.map +1 -0
- package/dist/authored-source-authority.js +61 -0
- package/dist/authored-source-authority.js.map +1 -0
- package/dist/authored-worker-step.d.ts +2 -2
- package/dist/authored-worker-step.d.ts.map +1 -1
- package/dist/authored-worker-step.js +11 -6
- package/dist/authored-worker-step.js.map +1 -1
- package/dist/budget-preflight.d.ts +17 -3
- package/dist/budget-preflight.d.ts.map +1 -1
- package/dist/budget-preflight.js +31 -24
- package/dist/budget-preflight.js.map +1 -1
- package/dist/cli/check.js +3 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/direct-run.d.ts.map +1 -1
- package/dist/cli/direct-run.js +18 -14
- package/dist/cli/direct-run.js.map +1 -1
- package/dist/cli/run.d.ts +2 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +56 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/cli-adapter.d.ts +16 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +17 -0
- package/dist/cli-adapter.js.map +1 -1
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/cloud-run.d.ts +11 -1
- package/dist/cloud-run.d.ts.map +1 -1
- package/dist/cloud-run.js +65 -19
- package/dist/cloud-run.js.map +1 -1
- package/dist/failure-kinds.d.ts +7 -3
- package/dist/failure-kinds.d.ts.map +1 -1
- package/dist/failure-kinds.js +5 -1
- package/dist/failure-kinds.js.map +1 -1
- package/dist/journal-client.d.ts +1 -1
- package/dist/journal-client.d.ts.map +1 -1
- package/dist/journal-client.js +6 -2
- package/dist/journal-client.js.map +1 -1
- package/dist/llm-worker.d.ts.map +1 -1
- package/dist/llm-worker.js +4 -2
- package/dist/llm-worker.js.map +1 -1
- package/dist/local-agent.d.ts +1 -1
- package/dist/local-agent.d.ts.map +1 -1
- package/dist/local-agent.js +2 -2
- package/dist/local-agent.js.map +1 -1
- package/dist/model-pricing.d.ts +3 -4
- package/dist/model-pricing.d.ts.map +1 -1
- package/dist/model-pricing.js +4 -4
- package/dist/model-pricing.js.map +1 -1
- package/dist/preflight.d.ts +4 -1
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +36 -18
- package/dist/preflight.js.map +1 -1
- package/dist/protocol.d.ts +2 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/spec.d.ts +5 -4
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.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 +43 -46
- package/dist/worker-cli.js.map +1 -1
- package/dist/worker-spend.d.ts +4 -3
- package/dist/worker-spend.d.ts.map +1 -1
- package/dist/worker-spend.js +13 -4
- package/dist/worker-spend.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +12 -4
- package/dist/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/adapters/base.ts +7 -0
- package/src/adapters/claude.ts +1 -0
- 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/authored-admission.ts +17 -0
- package/src/authored-budget.ts +4 -3
- package/src/authored-flow-error.ts +0 -1
- package/src/authored-flow-executor.ts +27 -7
- package/src/authored-flow-loader.ts +96 -13
- package/src/authored-helper-effect.ts +5 -3
- package/src/authored-mcp.ts +6 -4
- package/src/authored-node-entry.ts +90 -0
- package/src/authored-node-runner.ts +219 -0
- package/src/authored-plugin-effect.ts +6 -3
- package/src/authored-root.ts +396 -0
- package/src/authored-runtime-capability.ts +40 -0
- package/src/authored-source-authority.ts +62 -0
- package/src/authored-worker-step.ts +15 -4
- package/src/budget-preflight.ts +41 -25
- package/src/cli/check.ts +3 -1
- package/src/cli/direct-run.ts +24 -16
- package/src/cli/run.ts +58 -1
- package/src/cli-adapter.ts +27 -0
- package/src/cli.ts +5 -5
- package/src/cloud-run.ts +74 -21
- package/src/failure-kinds.ts +5 -1
- package/src/journal-client.ts +6 -2
- package/src/llm-worker.ts +4 -2
- package/src/local-agent.ts +7 -2
- package/src/model-pricing.ts +4 -4
- package/src/preflight.ts +40 -18
- package/src/protocol.ts +2 -0
- package/src/spec.ts +5 -4
- package/src/worker-cli.ts +50 -54
- package/src/worker-spend.ts +15 -4
- package/src/worker.ts +12 -4
package/dist/adapters/base.d.ts
CHANGED
|
@@ -28,6 +28,12 @@ export interface CliAdapterIdentification {
|
|
|
28
28
|
export interface HeadlessAdapter {
|
|
29
29
|
/** Identity of this adapter — matches CliAdapterKind for registry keys. */
|
|
30
30
|
readonly kind: string;
|
|
31
|
+
/**
|
|
32
|
+
* Stable model used only when neither the step nor its selected named agent
|
|
33
|
+
* declares one. Explicit authoring always wins. A default without an entry
|
|
34
|
+
* in MODEL_PRICING runs unmetered under a dollar budget (a warning).
|
|
35
|
+
*/
|
|
36
|
+
readonly defaultModel?: string;
|
|
31
37
|
/** Shape-check invocation before classifying an auth failure. */
|
|
32
38
|
buildIdentification(): CliAdapterIdentification;
|
|
33
39
|
/** Non-interactive auth-status probe. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,iEAAiE;IACjE,mBAAmB,IAAI,wBAAwB,CAAC;IAEhD,yCAAyC;IACzC,cAAc,IAAI,aAAa,CAAC;IAEhC;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAEvD,yEAAyE;IACzE,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAEzE,iEAAiE;IACjE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CACnE"}
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,iEAAiE;IACjE,mBAAmB,IAAI,wBAAwB,CAAC;IAEhD,yCAAyC;IACzC,cAAc,IAAI,aAAa,CAAC;IAEhC;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAEvD,yEAAyE;IACzE,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAEzE,iEAAiE;IACjE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CACnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,WAAW,CAAC;AAInB;8EAC8E;AAC9E,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,WAAW,CAAC;AAInB;8EAC8E;AAC9E,eAAO,MAAM,aAAa,EAAE,eA6C3B,CAAC"}
|
package/dist/adapters/claude.js
CHANGED
|
@@ -3,6 +3,7 @@ const MODEL_PROBE_PROMPT = 'Reply with exactly RELAYFLOWS_MODEL_READY and nothin
|
|
|
3
3
|
* pre-#141 inline shape in `cli-adapter.ts` — only the packaging changed. */
|
|
4
4
|
export const claudeAdapter = {
|
|
5
5
|
kind: 'claude',
|
|
6
|
+
defaultModel: 'claude-opus-5',
|
|
6
7
|
buildIdentification() {
|
|
7
8
|
return { invocation: { args: ['auth', 'status', '--help'], timeoutMs: 10_000 } };
|
|
8
9
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAMA,MAAM,kBAAkB,GAAG,6DAA6D,CAAC;AAEzF;8EAC8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,IAAI,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAMA,MAAM,kBAAkB,GAAG,6DAA6D,CAAC;AAEzF;8EAC8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,eAAe;IAE7B,mBAAmB;QACjB,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACnF,CAAC;IAED,cAAc;QACZ,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IAED,wBAAwB,CAAC,KAAa;QACpC,OAAO;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,0BAA0B;gBACjE,kBAAkB;aACnB;YACD,SAAS,EAAE,MAAM;SAClB,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAc;QACtD,OAAO;YACL,IAAI,EAAE;gBACJ,IAAI;gBACJ,sEAAsE;gBACtE,gEAAgE;gBAChE,iEAAiE;gBACjE,uDAAuD;gBACvD,gCAAgC;gBAChC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClD,WAAW;aACZ;YACD,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,KAAc;QAC/C,OAAO;YACL,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,0BAA0B;gBACpD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAC7D,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
|
|
2
|
+
export declare const nonempty: (value: unknown) => value is string;
|
|
3
|
+
export interface RelayTaskExecution {
|
|
4
|
+
execution_id: string;
|
|
5
|
+
run_id: string;
|
|
6
|
+
step_id: string;
|
|
7
|
+
dispatch_id: string;
|
|
8
|
+
deadline: string;
|
|
9
|
+
worker_generation?: string;
|
|
10
|
+
accepted_at?: string;
|
|
11
|
+
accounting?: Record<string, number>;
|
|
12
|
+
}
|
|
13
|
+
export interface RelayTaskReceipt {
|
|
14
|
+
invocation_id: string;
|
|
15
|
+
action_name: "task.run";
|
|
16
|
+
status: "pending" | "dispatched" | "running" | "completed" | "failed";
|
|
17
|
+
task_execution: RelayTaskExecution;
|
|
18
|
+
output: unknown;
|
|
19
|
+
error: string | null;
|
|
20
|
+
completed_at: string | null;
|
|
21
|
+
}
|
|
22
|
+
/** GET is authoritative. A spawn/POST acknowledgment is never a task result. */
|
|
23
|
+
export declare function readTaskReceipt(value: unknown, invocationId: string, input: Record<string, unknown>, previous?: RelayTaskReceipt): RelayTaskReceipt;
|
|
24
|
+
//# sourceMappingURL=agent-relay-receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-relay-receipt.d.ts","sourceRoot":"","sources":["../src/agent-relay-receipt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC;AACvE,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACJ,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AACD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtE,cAAc,EAAE,kBAAkB,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,gBAAgB,CAsFlB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { canonicalize } from "./canonical.js";
|
|
2
|
+
export const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3
|
+
export const nonempty = (value) => typeof value === "string" && value.length > 0;
|
|
4
|
+
/** GET is authoritative. A spawn/POST acknowledgment is never a task result. */
|
|
5
|
+
export function readTaskReceipt(value, invocationId, input, previous) {
|
|
6
|
+
const context = input.task_context;
|
|
7
|
+
if (!isRecord(value) ||
|
|
8
|
+
value.invocation_id !== invocationId ||
|
|
9
|
+
value.action_name !== "task.run" ||
|
|
10
|
+
canonicalize(value.input) !== canonicalize(input) ||
|
|
11
|
+
!isRecord(value.task_execution)) {
|
|
12
|
+
throw new Error("Relay task receipt has mismatched invocation or input");
|
|
13
|
+
}
|
|
14
|
+
const execution = value.task_execution;
|
|
15
|
+
const validDate = (date) => nonempty(date) && Number.isFinite(Date.parse(date));
|
|
16
|
+
if (!nonempty(execution.execution_id) ||
|
|
17
|
+
!validDate(execution.deadline) ||
|
|
18
|
+
["run_id", "step_id", "dispatch_id"].some((key) => execution[key] !== context[key]) ||
|
|
19
|
+
!["pending", "dispatched", "running", "completed", "failed"].includes(String(value.status))) {
|
|
20
|
+
throw new Error("Relay task receipt has invalid execution correlation");
|
|
21
|
+
}
|
|
22
|
+
const accepted = nonempty(execution.worker_generation) && validDate(execution.accepted_at);
|
|
23
|
+
if ((value.status === "running" || value.status === "completed") &&
|
|
24
|
+
!accepted) {
|
|
25
|
+
throw new Error("Relay task receipt is missing durable acceptance");
|
|
26
|
+
}
|
|
27
|
+
if ((execution.worker_generation !== undefined ||
|
|
28
|
+
execution.accepted_at !== undefined) &&
|
|
29
|
+
!accepted) {
|
|
30
|
+
throw new Error("Relay task receipt has incomplete durable acceptance");
|
|
31
|
+
}
|
|
32
|
+
if (previous !== undefined &&
|
|
33
|
+
(previous.task_execution.execution_id !== execution.execution_id ||
|
|
34
|
+
previous.task_execution.deadline !== execution.deadline ||
|
|
35
|
+
(previous.task_execution.worker_generation !== undefined &&
|
|
36
|
+
(previous.task_execution.worker_generation !==
|
|
37
|
+
execution.worker_generation ||
|
|
38
|
+
previous.task_execution.accepted_at !== execution.accepted_at)))) {
|
|
39
|
+
throw new Error("Relay task receipt changed its execution, accepted generation/time, or deadline");
|
|
40
|
+
}
|
|
41
|
+
if (execution.accounting !== undefined &&
|
|
42
|
+
(!isRecord(execution.accounting) ||
|
|
43
|
+
Object.values(execution.accounting).some((n) => typeof n !== "number" || !Number.isFinite(n) || n < 0))) {
|
|
44
|
+
throw new Error("Relay task receipt has invalid accounting");
|
|
45
|
+
}
|
|
46
|
+
if (value.status === "completed" &&
|
|
47
|
+
(!Object.hasOwn(value, "output") ||
|
|
48
|
+
value.error !== null ||
|
|
49
|
+
!validDate(value.completed_at))) {
|
|
50
|
+
throw new Error("Relay task receipt has no authoritative final output");
|
|
51
|
+
}
|
|
52
|
+
if (value.status === "failed" &&
|
|
53
|
+
(!nonempty(value.error) || !validDate(value.completed_at))) {
|
|
54
|
+
throw new Error("Relay task failure receipt has no reason");
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
invocation_id: invocationId,
|
|
58
|
+
action_name: "task.run",
|
|
59
|
+
status: value.status,
|
|
60
|
+
task_execution: execution,
|
|
61
|
+
output: value.output,
|
|
62
|
+
error: value.error,
|
|
63
|
+
completed_at: value.completed_at,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=agent-relay-receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-relay-receipt.js","sourceRoot":"","sources":["../src/agent-relay-receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface RelayTaskClaim {
|
|
2
|
+
version: 1;
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
callerId: string;
|
|
5
|
+
workspaceId: string;
|
|
6
|
+
invocationId: string;
|
|
7
|
+
runId: string;
|
|
8
|
+
stepId: string;
|
|
9
|
+
idempotencyKey: string;
|
|
10
|
+
input: Record<string, unknown>;
|
|
11
|
+
startedAt: number;
|
|
12
|
+
}
|
|
13
|
+
/** Exclusive creation pins the request before POST; no last-writer overwrite. */
|
|
14
|
+
export declare function claimRelayTask(dataDir: string, claim: RelayTaskClaim): Promise<{
|
|
15
|
+
claim: RelayTaskClaim;
|
|
16
|
+
created: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=agent-relay-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-relay-state.d.ts","sourceRoot":"","sources":["../src/agent-relay-state.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAkDtD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
/** Exclusive creation pins the request before POST; no last-writer overwrite. */
|
|
6
|
+
export async function claimRelayTask(dataDir, claim) {
|
|
7
|
+
const directory = join(dataDir, "relay-tasks");
|
|
8
|
+
await mkdir(directory, { recursive: true });
|
|
9
|
+
const parent = await open(dataDir, "r");
|
|
10
|
+
try {
|
|
11
|
+
await parent.sync();
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
await parent.close();
|
|
15
|
+
}
|
|
16
|
+
const digest = createHash("sha256")
|
|
17
|
+
.update(canonicalize([claim.runId, claim.stepId, claim.idempotencyKey]))
|
|
18
|
+
.digest("hex");
|
|
19
|
+
const path = join(directory, `${digest}.json`);
|
|
20
|
+
let file;
|
|
21
|
+
try {
|
|
22
|
+
file = await open(path, "wx", 0o600);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error.code !== "EEXIST")
|
|
26
|
+
throw error;
|
|
27
|
+
const prior = JSON.parse(await readFile(path, "utf8"));
|
|
28
|
+
if (typeof prior !== "object" ||
|
|
29
|
+
prior === null ||
|
|
30
|
+
!("startedAt" in prior) ||
|
|
31
|
+
typeof prior.startedAt !== "number" ||
|
|
32
|
+
!Number.isSafeInteger(prior.startedAt) ||
|
|
33
|
+
prior.startedAt < 0 ||
|
|
34
|
+
canonicalize(prior) !==
|
|
35
|
+
canonicalize({ ...claim, startedAt: prior.startedAt })) {
|
|
36
|
+
throw new Error("Relay task dispatch conflicts with its durable caller, endpoint, or input");
|
|
37
|
+
}
|
|
38
|
+
return { claim: prior, created: false };
|
|
39
|
+
}
|
|
40
|
+
// A crash during creation leaves a partial claim that fails closed on read.
|
|
41
|
+
// Never remove an uncertain claim and retry under a different identity.
|
|
42
|
+
try {
|
|
43
|
+
await file.writeFile(canonicalize(claim));
|
|
44
|
+
await file.sync();
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
await file.close();
|
|
48
|
+
}
|
|
49
|
+
const dir = await open(directory, "r");
|
|
50
|
+
try {
|
|
51
|
+
await dir.sync();
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
await dir.close();
|
|
55
|
+
}
|
|
56
|
+
return { claim, created: true };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=agent-relay-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-relay-state.js","sourceRoot":"","sources":["../src/agent-relay-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAe9C,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,KAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;SAChC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;SACvE,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACpE,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC;YACvB,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YACnC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;YACtC,KAAK,CAAC,SAAS,GAAG,CAAC;YACnB,YAAY,CAAC,KAAK,CAAC;gBACjB,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,EACxD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IACD,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -1,84 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* in worker-cli.ts. That is unobservable — you cannot DM the spawned agent
|
|
6
|
-
* mid-flight, and every ecosystem tool that wants to steer or watch it
|
|
7
|
-
* ends up shelling out to the `agent-relay` CLI, which is fragile.
|
|
8
|
-
*
|
|
9
|
-
* This module speaks to agent-relay via structured HTTP: the same call
|
|
10
|
-
* shape the `mcp__agent-relay__spawn` MCP tool posts. The SDK becomes a
|
|
11
|
-
* first-class agent-relay participant, registered under a derived agent
|
|
12
|
-
* name a caller can DM against.
|
|
13
|
-
*
|
|
14
|
-
* Scope: spawn + close. Streaming inbox and observation are follow-ups.
|
|
15
|
-
*/
|
|
16
|
-
export type AgentTransport = 'direct' | 'relay';
|
|
17
|
-
export interface AgentRelaySpawnRequest {
|
|
18
|
-
/** Registered agent name in the workspace. */
|
|
19
|
-
name: string;
|
|
20
|
-
/** CLI to launch. */
|
|
21
|
-
cli: 'claude' | 'codex' | 'gemini' | 'aider' | 'goose' | 'grok' | 'opencode';
|
|
22
|
-
/** Initial task instructions. */
|
|
1
|
+
import { type RelayTaskReceipt } from "./agent-relay-receipt.js";
|
|
2
|
+
export type AgentTransport = "direct" | "relay";
|
|
3
|
+
export interface AgentRelayTaskRequest {
|
|
4
|
+
cli: string;
|
|
23
5
|
task: string;
|
|
24
|
-
/** Optional model powering the worker. */
|
|
25
6
|
model?: string;
|
|
26
|
-
/** Optional working directory for the spawned worker process. */
|
|
27
7
|
worker_cwd?: string;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
project?: string;
|
|
36
|
-
/** Declared workstream for workforce reporting. */
|
|
37
|
-
workstream?: string;
|
|
8
|
+
result_schema?: unknown;
|
|
9
|
+
runId: string;
|
|
10
|
+
stepId: string;
|
|
11
|
+
idempotencyKey: string;
|
|
12
|
+
dataDir: string;
|
|
13
|
+
/** Engine task contract ceiling; bounded independently of the renewing lease. */
|
|
14
|
+
timeoutMs?: number;
|
|
38
15
|
}
|
|
39
16
|
export interface AgentRelayEnv {
|
|
40
|
-
/** `RELAY_BASE_URL` env; defaults to https://cast.agentrelay.com. */
|
|
41
17
|
baseUrl?: string;
|
|
42
|
-
/** `RELAY_API_KEY` env (rk_live_...). Required. */
|
|
43
|
-
apiKey?: string;
|
|
44
|
-
/** `RELAY_DEFAULT_WORKSPACE` env; workspace scoping for the spawn. */
|
|
45
|
-
workspaceId?: string;
|
|
46
|
-
/** Optional bearer token for the individual agent identity, if pre-registered. */
|
|
47
18
|
agentToken?: string;
|
|
48
19
|
}
|
|
49
|
-
export interface AgentSpawnHandle {
|
|
50
|
-
/** Registered agent name in the workspace — DM this to steer. */
|
|
51
|
-
readonly registeredName: string;
|
|
52
|
-
/** Invocation id returned by relay; use for status polling. */
|
|
53
|
-
readonly invocationId: string;
|
|
54
|
-
/** Best-effort deregistration/notification. */
|
|
55
|
-
close(): Promise<void>;
|
|
56
|
-
}
|
|
57
20
|
export declare class AgentRelayTransportError extends Error {
|
|
58
21
|
readonly cause?: unknown | undefined;
|
|
59
22
|
constructor(message: string, cause?: unknown | undefined);
|
|
60
23
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* unauthenticated and the direct-spawn fallback is a separate decision.
|
|
65
|
-
*/
|
|
66
|
-
export declare function readAgentRelayEnv(env?: NodeJS.ProcessEnv): Required<Pick<AgentRelayEnv, 'baseUrl' | 'apiKey'>> & AgentRelayEnv;
|
|
67
|
-
/**
|
|
68
|
-
* Spawn a worker via agent-relay HTTP. The endpoint mirrors what the
|
|
69
|
-
* `mcp__agent-relay__spawn` MCP tool wraps — a POST that requests a fleet
|
|
70
|
-
* node dispatch. Returns a handle keyed on the registered agent name.
|
|
71
|
-
*
|
|
72
|
-
* The `fetch` argument is injected so tests can mock the transport without
|
|
73
|
-
* hitting the network.
|
|
74
|
-
*/
|
|
75
|
-
export declare function agentRelaySpawn(request: AgentRelaySpawnRequest, env?: AgentRelayEnv & {
|
|
24
|
+
export declare function readAgentRelayEnv(env?: NodeJS.ProcessEnv): Required<AgentRelayEnv>;
|
|
25
|
+
/** Exact Relaycast #436 HTTP contract. Only terminal GET receipts can return. */
|
|
26
|
+
export declare function runAgentRelayTask(request: AgentRelayTaskRequest, options?: AgentRelayEnv & {
|
|
76
27
|
fetch?: typeof fetch;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
* result is stable across replays of the same step so DMs can be addressed
|
|
81
|
-
* even during retries.
|
|
82
|
-
*/
|
|
83
|
-
export declare function deriveAgentName(runId: string, stepId: string): string;
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
pollMs?: number;
|
|
30
|
+
}): Promise<RelayTaskReceipt>;
|
|
84
31
|
//# sourceMappingURL=agent-relay-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-relay-transport.d.ts","sourceRoot":"","sources":["../src/agent-relay-transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-relay-transport.d.ts","sourceRoot":"","sources":["../src/agent-relay-transport.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAChD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,qBAAa,wBAAyB,SAAQ,KAAK;aAG/B,KAAK,CAAC,EAAE,OAAO;gBAD/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AACD,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,QAAQ,CAAC,aAAa,CAAC,CAUzB;AAED,iFAAiF;AACjF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,GAAE,aAAa,GAAG;IACvB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,OAAO,CAAC,gBAAgB,CAAC,CAmN3B"}
|