@relayflows/sdk 2.0.11 → 2.0.13
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/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 +18 -9
- 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 +15 -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 +28 -3
- package/dist/budget-preflight.d.ts.map +1 -1
- package/dist/budget-preflight.js +34 -24
- package/dist/budget-preflight.js.map +1 -1
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +8 -0
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/check.js +3 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/deploy.d.ts.map +1 -1
- package/dist/cli/deploy.js +5 -0
- package/dist/cli/deploy.js.map +1 -1
- package/dist/cli/direct-run.d.ts.map +1 -1
- package/dist/cli/direct-run.js +46 -14
- package/dist/cli/direct-run.js.map +1 -1
- package/dist/cli/run.d.ts +10 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +90 -12
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/step-failure.d.ts +40 -0
- package/dist/cli/step-failure.d.ts.map +1 -0
- package/dist/cli/step-failure.js +150 -0
- package/dist/cli/step-failure.js.map +1 -0
- 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.d.ts.map +1 -1
- package/dist/cli.js +8 -8
- 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/daemon-connection.d.ts +7 -0
- package/dist/daemon-connection.d.ts.map +1 -1
- package/dist/daemon-connection.js +7 -0
- package/dist/daemon-connection.js.map +1 -1
- package/dist/failure-kinds.d.ts +30 -4
- package/dist/failure-kinds.d.ts.map +1 -1
- package/dist/failure-kinds.js +8 -1
- package/dist/failure-kinds.js.map +1 -1
- package/dist/journal-client.d.ts +3 -7
- 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 +7 -6
- package/dist/model-pricing.d.ts.map +1 -1
- package/dist/model-pricing.js +8 -6
- package/dist/model-pricing.js.map +1 -1
- package/dist/preflight.d.ts +9 -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 +24 -5
- package/dist/protocol.d.ts.map +1 -1
- package/dist/spec.d.ts +27 -11
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/worker-cli.d.ts.map +1 -1
- package/dist/worker-cli.js +6 -5
- package/dist/worker-cli.js.map +1 -1
- package/dist/worker-spend.d.ts +13 -8
- package/dist/worker-spend.d.ts.map +1 -1
- package/dist/worker-spend.js +27 -4
- package/dist/worker-spend.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +4 -2
- 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/authored-admission.ts +17 -0
- package/src/authored-budget.ts +38 -11
- package/src/authored-flow-error.ts +0 -1
- package/src/authored-flow-executor.ts +32 -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 +52 -25
- package/src/cli/build.ts +7 -0
- package/src/cli/check.ts +3 -1
- package/src/cli/deploy.ts +4 -0
- package/src/cli/direct-run.ts +52 -16
- package/src/cli/run.ts +101 -12
- package/src/cli/step-failure.ts +160 -0
- package/src/cli-adapter.ts +27 -0
- package/src/cli.ts +9 -9
- package/src/cloud-run.ts +74 -21
- package/src/daemon-connection.ts +8 -0
- package/src/failure-kinds.ts +28 -2
- package/src/journal-client.ts +8 -3
- package/src/llm-worker.ts +4 -2
- package/src/local-agent.ts +7 -2
- package/src/model-pricing.ts +8 -6
- package/src/preflight.ts +45 -18
- package/src/protocol.ts +17 -2
- package/src/spec.ts +28 -5
- package/src/worker-cli.ts +7 -5
- package/src/worker-spend.ts +32 -5
- package/src/worker.ts +4 -2
- package/dist/cli/deterministic-failure.d.ts +0 -5
- package/dist/cli/deterministic-failure.d.ts.map +0 -1
- package/dist/cli/deterministic-failure.js +0 -66
- package/dist/cli/deterministic-failure.js.map +0 -1
- package/src/cli/deterministic-failure.ts +0 -69
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,5 @@
|
|
|
1
|
+
/** Stable retry identity for one operation in one durable authored root. */
|
|
2
|
+
export declare function authoredChildAdmissionKey(rootRunId: string | undefined, stepId: string): string | undefined;
|
|
3
|
+
/** Stable local worker surface for retries of one caller-owned root start. */
|
|
4
|
+
export declare function authoredLocalAgentStream(admissionIdentity: string): string;
|
|
5
|
+
//# sourceMappingURL=authored-admission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authored-admission.d.ts","sourceRoot":"","sources":["../src/authored-admission.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAGpB;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAI1E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
/** Stable retry identity for one operation in one durable authored root. */
|
|
3
|
+
export function authoredChildAdmissionKey(rootRunId, stepId) {
|
|
4
|
+
if (rootRunId === undefined)
|
|
5
|
+
return undefined;
|
|
6
|
+
return `authored-child:${createHash('sha256').update(`${rootRunId}\0${stepId}`).digest('hex')}`;
|
|
7
|
+
}
|
|
8
|
+
/** Stable local worker surface for retries of one caller-owned root start. */
|
|
9
|
+
export function authoredLocalAgentStream(admissionIdentity) {
|
|
10
|
+
return `local-agent-${createHash('sha256')
|
|
11
|
+
.update(`authored-root-worker\0${admissionIdentity}`)
|
|
12
|
+
.digest('hex')}`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=authored-admission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authored-admission.js","sourceRoot":"","sources":["../src/authored-admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CACvC,SAA6B,EAC7B,MAAc;IAEd,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,kBAAkB,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,wBAAwB,CAAC,iBAAyB;IAChE,OAAO,eAAe,UAAU,CAAC,QAAQ,CAAC;SACvC,MAAM,CAAC,yBAAyB,iBAAiB,EAAE,CAAC;SACpD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -8,6 +8,6 @@ export declare class AuthoredBudget {
|
|
|
8
8
|
private tail;
|
|
9
9
|
private charges;
|
|
10
10
|
constructor(header: unknown);
|
|
11
|
-
execute<T>(journal: JournalClient, spec: KernelRunSpec, consume: (outcome: RunOutcome) => Promise<T
|
|
11
|
+
execute<T>(journal: JournalClient, spec: KernelRunSpec, consume: (outcome: RunOutcome) => Promise<T>, admissionKey?: string): Promise<T>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=authored-budget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-budget.d.ts","sourceRoot":"","sources":["../src/authored-budget.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"authored-budget.d.ts","sourceRoot":"","sources":["../src/authored-budget.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAsC,aAAa,EAAE,MAAM,WAAW,CAAC;AAmBnF,kFAAkF;AAClF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,OAAO;IASrB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAC1D,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAuDnF"}
|
package/dist/authored-budget.js
CHANGED
|
@@ -16,9 +16,9 @@ export class AuthoredBudget {
|
|
|
16
16
|
throw error;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
async execute(journal, spec, consume) {
|
|
19
|
+
async execute(journal, spec, consume, admissionKey) {
|
|
20
20
|
if (this.limit === undefined)
|
|
21
|
-
return consume(await journal.runStart(spec));
|
|
21
|
+
return consume(await journal.runStart(spec, undefined, admissionKey));
|
|
22
22
|
const previous = this.tail;
|
|
23
23
|
let release;
|
|
24
24
|
this.tail = new Promise(resolve => { release = resolve; });
|
|
@@ -29,14 +29,22 @@ export class AuthoredBudget {
|
|
|
29
29
|
// Window selection follows journal timestamps, never the SDK host clock.
|
|
30
30
|
const day = this.charges.at(-1)?.day;
|
|
31
31
|
const total = this.charges.filter(c => this.limit.window !== 'day' || c.day === day)
|
|
32
|
-
.reduce((s, c) => ({ input: s.input + c.input, output: s.output + c.output, micro: s.micro + c.micro, ms: s.ms + c.ms
|
|
32
|
+
.reduce((s, c) => ({ input: s.input + c.input, output: s.output + c.output, micro: s.micro + c.micro, ms: s.ms + c.ms,
|
|
33
|
+
// Sticky, exactly as the kernel's running total is: once any charge
|
|
34
|
+
// in the window was unmetered, the carried dollars are a lower bound.
|
|
35
|
+
unmetered: s.unmetered || c.unmetered }), { input: 0n, output: 0n, micro: 0n, ms: 0n, unmetered: false });
|
|
33
36
|
const exactNumber = (n) => { if (n > BigInt(Number.MAX_SAFE_INTEGER))
|
|
34
37
|
throw new Error('budget counter overflow'); return Number(n); };
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
// One explicit conversion to the shared carried-spend shape, so a new
|
|
39
|
+
// accounting field is added here rather than silently dropped inline.
|
|
40
|
+
const priorSpend = {
|
|
41
|
+
tokens_in: exactNumber(total.input), tokens_out: exactNumber(total.output),
|
|
42
|
+
dollars: `${total.micro / 1000000n}.${String(total.micro % 1000000n).padStart(6, '0')}`,
|
|
43
|
+
wallclock_ms: exactNumber(total.ms),
|
|
44
|
+
...(this.limit.window === 'day' && day !== undefined ? { day } : {}),
|
|
45
|
+
...(total.unmetered ? { dollars_unmetered: true } : {}),
|
|
46
|
+
};
|
|
47
|
+
const outcome = await journal.runStart({ ...spec, budget: { ...this.limit, prior_spend: priorSpend } }, undefined, admissionKey);
|
|
40
48
|
try {
|
|
41
49
|
if (outcome.completion_reason === 'budget_exceeded')
|
|
42
50
|
throw new AuthoredFlowExecutionError('step_failed', 'Flow budget exceeded before the next step.', 'budget_exceeded', outcome.run_id);
|
|
@@ -61,7 +69,8 @@ export class AuthoredBudget {
|
|
|
61
69
|
throw new Error('budget accounting requires microdollar precision');
|
|
62
70
|
this.charges.push({ input: BigInt(b.tokens_in), output: BigInt(b.tokens_out),
|
|
63
71
|
micro: BigInt(whole) * 1000000n + BigInt(fraction.slice(0, 6).padEnd(6, '0')),
|
|
64
|
-
ms: BigInt(e.payload.spend?.wallclock_ms ?? 0), day: Math.floor(e.at_ms / 86_400_000)
|
|
72
|
+
ms: BigInt(e.payload.spend?.wallclock_ms ?? 0), day: Math.floor(e.at_ms / 86_400_000),
|
|
73
|
+
unmetered: b.dollars_unmetered === true });
|
|
65
74
|
}
|
|
66
75
|
}
|
|
67
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-budget.js","sourceRoot":"","sources":["../src/authored-budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"authored-budget.js","sourceRoot":"","sources":["../src/authored-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CompletionReason as ProtocolCompletionReason, RunCompletionReason as ProtocolRunCompletionReason } from './protocol.js';
|
|
2
|
-
export type AuthoredFlowExecutionErrorCode = 'helper_provider.mount_required' | 'helper_provider.unsupported' | 'helper_slack.credential_missing' | 'helper_slack.mount_required' | 'budget_syntax_invalid' | '
|
|
2
|
+
export type AuthoredFlowExecutionErrorCode = 'helper_provider.mount_required' | 'helper_provider.unsupported' | 'helper_slack.credential_missing' | 'helper_slack.mount_required' | 'budget_syntax_invalid' | 'agent_cli_unresolved' | 'agent_parked' | 'llm_cli_unresolved' | 'llm_parked' | 'duplicate_completion' | 'journal_protocol_violation' | 'missing_completion' | 'memory_unreachable' | 'operation_after_completion' | 'operation_callback_failed' | 'step_failed' | 'lease_exceeded' | 'unsupported_completion' | 'unsupported_gate' | 'unsupported_header' | 'unsettled_derived_work' | 'unsupported_promise_lifecycle' | 'unsupported_workspace_permission' | 'unawaited_step' | 'unsupported_verb';
|
|
3
3
|
export declare class AuthoredFlowExecutionError extends Error {
|
|
4
4
|
readonly code: AuthoredFlowExecutionErrorCode;
|
|
5
5
|
readonly completionReason?: (ProtocolCompletionReason | ProtocolRunCompletionReason) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-flow-error.d.ts","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,mBAAmB,IAAI,2BAA2B,EACnD,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GACtC,gCAAgC,GAChC,6BAA6B,GAC7B,iCAAiC,GACjC,6BAA6B,GAC7B,uBAAuB,GACvB,sBAAsB,GACtB,
|
|
1
|
+
{"version":3,"file":"authored-flow-error.d.ts","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,mBAAmB,IAAI,2BAA2B,EACnD,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GACtC,gCAAgC,GAChC,6BAA6B,GAC7B,iCAAiC,GACjC,6BAA6B,GAC7B,uBAAuB,GACvB,sBAAsB,GACtB,cAAc,GACd,oBAAoB,GACpB,YAAY,GACZ,sBAAsB,GACtB,4BAA4B,GAC5B,oBAAoB,GACpB,oBAAoB,GACpB,4BAA4B,GAC5B,2BAA2B,GAC3B,aAAa,GACb,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,wBAAwB,GACxB,+BAA+B,GAC/B,kCAAkC,GAClC,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,IAAI,EAAE,8BAA8B;IAE7C,QAAQ,CAAC,gBAAgB,CAAC,GAAE,wBAAwB,GAAG,2BAA2B;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;gBAHd,IAAI,EAAE,8BAA8B,EAC7C,OAAO,EAAE,MAAM,EACN,gBAAgB,CAAC,GAAE,wBAAwB,GAAG,2BAA2B,aAAA,EACzE,KAAK,CAAC,EAAE,MAAM,YAAA;CAK1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-flow-error.js","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authored-flow-error.js","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAgCA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAExC;IAEA;IACA;IAJX,YACW,IAAoC,EAC7C,OAAe,EACN,gBAAyE,EACzE,KAAc;QAEvB,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QALpB,SAAI,GAAJ,IAAI,CAAgC;QAEpC,qBAAgB,GAAhB,gBAAgB,CAAyD;QACzE,UAAK,GAAL,KAAK,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -12,7 +12,15 @@ export interface AuthoredFlowJournalStep {
|
|
|
12
12
|
readonly runId: string;
|
|
13
13
|
readonly completionReason: ProtocolCompletionReason;
|
|
14
14
|
}
|
|
15
|
+
export interface AuthoredExecutionRuntime {
|
|
16
|
+
readonly kind: 'node';
|
|
17
|
+
readonly version: string;
|
|
18
|
+
readonly executableSha256: string;
|
|
19
|
+
readonly payloadSha256: string;
|
|
20
|
+
}
|
|
15
21
|
export interface AuthoredFlowExecutionResult {
|
|
22
|
+
readonly executionRuntime?: AuthoredExecutionRuntime;
|
|
23
|
+
readonly rootRunId?: string;
|
|
16
24
|
readonly name: string;
|
|
17
25
|
readonly completionReason: FlowCompletionReason;
|
|
18
26
|
readonly journalSteps: readonly AuthoredFlowJournalStep[];
|
|
@@ -55,6 +63,8 @@ export interface ExecuteAuthoredFlowOptions {
|
|
|
55
63
|
readonly onWait?: RunLifecycleOptions['onWait'];
|
|
56
64
|
readonly onProgress?: (event: ProgressEvent) => void;
|
|
57
65
|
readonly localAgentStream?: string;
|
|
66
|
+
/** Durable kernel root that owns this body's child admission identities. */
|
|
67
|
+
readonly rootRunId?: string;
|
|
58
68
|
}
|
|
59
69
|
export declare function executeAuthoredFlow<Input = undefined>(handle: FlowHandle, journal: JournalClient, input?: Input, options?: ExecuteAuthoredFlowOptions): Promise<AuthoredFlowExecutionResult>;
|
|
60
70
|
//# sourceMappingURL=authored-flow-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-flow-executor.d.ts","sourceRoot":"","sources":["../src/authored-flow-executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authored-flow-executor.d.ts","sourceRoot":"","sources":["../src/authored-flow-executor.ts"],"names":[],"mappings":"AAeA,OAAO,EAML,KAAK,oBAAoB,EAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE/G,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,KAAK,8BAA8B,EACpC,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAE7C,MAAM,eAAe,CAAC;AAoBvB,OAAO,EAAE,0BAA0B,EAAE,KAAK,8BAA8B,EAAE,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;CACrD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC3D;AASD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAC3C,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,mBAAmB,CAAC,KAAK,GAAG,SAAS,EACzD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,2BAA2B,CAAC,CAmRtC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertAuthoredPromiseHooks } from './authored-runtime-capability.js';
|
|
1
2
|
import { pluginHelpers } from './plugin-loader.js';
|
|
2
3
|
import { runPluginEffect } from './authored-plugin-effect.js';
|
|
3
4
|
import { randomUUID } from 'node:crypto';
|
|
@@ -21,11 +22,17 @@ import { AuthoredFlowOperation, stopAuthoredOperations, verifyAuthoredOperations
|
|
|
21
22
|
import { AuthoredFlowLifecycle } from './authored-flow-lifecycle.js';
|
|
22
23
|
export { AuthoredFlowExecutionError };
|
|
23
24
|
export async function executeAuthoredFlow(handle, journal, input, options = {}) {
|
|
25
|
+
assertAuthoredPromiseHooks();
|
|
24
26
|
const getDefinition = options.getDefinition ?? getAuthoredFlowDefinition;
|
|
25
27
|
const localAgentStream = options.localAgentStream;
|
|
26
28
|
const onProgress = options.onProgress;
|
|
27
29
|
const flowPath = options.flowPath ?? join(process.cwd(), 'flow.ts');
|
|
28
30
|
const waitOptions = {
|
|
31
|
+
// Carried so a failed `f.agent` can name the journal that holds its
|
|
32
|
+
// evidence. Each authored worker call runs as its own kernel run, and
|
|
33
|
+
// without the data dir the diagnostic can name the run id but not where
|
|
34
|
+
// on disk to read it.
|
|
35
|
+
...(options.dataDir !== undefined ? { dataDir: options.dataDir } : {}),
|
|
29
36
|
...(options.signal !== undefined ? { signal: options.signal } : {}),
|
|
30
37
|
...(options.onWait !== undefined ? { onWait: options.onWait } : {}),
|
|
31
38
|
};
|
|
@@ -60,8 +67,8 @@ export async function executeAuthoredFlow(handle, journal, input, options = {})
|
|
|
60
67
|
const lifecycle = new AuthoredFlowLifecycle();
|
|
61
68
|
let nextStep = 1;
|
|
62
69
|
let requestedCompletion;
|
|
63
|
-
const lowerDeterministic = authoredDeterministicRunner(definition.name, journal, journalSteps, budget);
|
|
64
|
-
const worker = authoredWorkerRunner(definition, journal, flowPath, journalSteps, waitOptions, localAgentStream, budget, definition.header.budget);
|
|
70
|
+
const lowerDeterministic = authoredDeterministicRunner(definition.name, journal, journalSteps, budget, options.rootRunId);
|
|
71
|
+
const worker = authoredWorkerRunner(definition, journal, flowPath, journalSteps, waitOptions, localAgentStream, budget, definition.header.budget, options.rootRunId);
|
|
65
72
|
function llmOperation(prompt, ...values) {
|
|
66
73
|
assertOperationAllowed('llm', definition.name, requestedCompletion);
|
|
67
74
|
const id = `llm-${nextStep++}`;
|
|
@@ -82,13 +89,13 @@ export async function executeAuthoredFlow(handle, journal, input, options = {})
|
|
|
82
89
|
}, onProgress), lifecycle);
|
|
83
90
|
return trackStep(authoredSteps, llmOp);
|
|
84
91
|
}
|
|
85
|
-
const slackRun = randomUUID();
|
|
92
|
+
const slackRun = options.rootRunId ?? randomUUID();
|
|
86
93
|
function slackOperation(call) {
|
|
87
94
|
assertOperationAllowed(`slack.${call.verb}`, definition.name, requestedCompletion);
|
|
88
95
|
const snapshot = snapshotJsonValue(call, 'f.slack call');
|
|
89
96
|
const id = `slack-${slackRun}-${nextStep++}`;
|
|
90
97
|
return trackStep(authoredSteps, new AuthoredFlowOperation(id, `slack.${call.verb}`, () => assertOperationAllowed(`slack.${call.verb}`, definition.name, requestedCompletion), async () => {
|
|
91
|
-
const receipt = await runHelperEffect(journal, definition.name, id, snapshot, options.dataDir ?? dirname(journal.socketPath), journalSteps);
|
|
98
|
+
const receipt = await runHelperEffect(journal, definition.name, id, snapshot, options.dataDir ?? dirname(journal.socketPath), journalSteps, options.rootRunId);
|
|
92
99
|
return (call.verb === 'react' ? undefined : receipt);
|
|
93
100
|
}, lifecycle));
|
|
94
101
|
}
|
|
@@ -98,7 +105,7 @@ export async function executeAuthoredFlow(handle, journal, input, options = {})
|
|
|
98
105
|
assertOperationAllowed(verb, definition.name, requestedCompletion);
|
|
99
106
|
const snapshot = snapshotJsonValue(call, `f.${verb} call`);
|
|
100
107
|
const id = `${call.provider}-${slackRun}-${nextStep++}`;
|
|
101
|
-
return trackStep(authoredSteps, new AuthoredFlowOperation(id, verb, () => assertOperationAllowed(verb, definition.name, requestedCompletion), async () => await runHelperEffect(journal, definition.name, id, snapshot, options.dataDir ?? dirname(journal.socketPath), journalSteps), lifecycle));
|
|
108
|
+
return trackStep(authoredSteps, new AuthoredFlowOperation(id, verb, () => assertOperationAllowed(verb, definition.name, requestedCompletion), async () => await runHelperEffect(journal, definition.name, id, snapshot, options.dataDir ?? dirname(journal.socketPath), journalSteps, options.rootRunId), lifecycle));
|
|
102
109
|
}),
|
|
103
110
|
slack: {
|
|
104
111
|
post: (channel, text, opts) => slackOperation({ type: 'effect', provider: 'slack', verb: 'post', params: { channel, text, ...(opts === undefined ? {} : { opts }) } }),
|
|
@@ -109,7 +116,7 @@ export async function executeAuthoredFlow(handle, journal, input, options = {})
|
|
|
109
116
|
mcp: buildMcpProxy(checkedMcp.inventory, (server, tool, args, known) => {
|
|
110
117
|
assertOperationAllowed('mcp', definition.name, requestedCompletion);
|
|
111
118
|
const id = `mcp-${nextStep++}`;
|
|
112
|
-
return trackStep(authoredSteps, new AuthoredFlowOperation(id, 'mcp', () => assertOperationAllowed('mcp', definition.name, requestedCompletion), () => runMcpEffect(journal, definition.name, id, server, tool, args, known, checkedMcp.servers[server], journalSteps), lifecycle));
|
|
119
|
+
return trackStep(authoredSteps, new AuthoredFlowOperation(id, 'mcp', () => assertOperationAllowed('mcp', definition.name, requestedCompletion), () => runMcpEffect(journal, definition.name, id, server, tool, args, known, checkedMcp.servers[server], journalSteps, options.rootRunId), lifecycle));
|
|
113
120
|
}),
|
|
114
121
|
memory: authoredMemory(scriptMemoryScope(flowPath, definition.name), () => assertOperationAllowed('memory', definition.name, requestedCompletion), definition.header.memory?.script !== false),
|
|
115
122
|
run(command, runOptions) {
|
|
@@ -156,7 +163,7 @@ export async function executeAuthoredFlow(handle, journal, input, options = {})
|
|
|
156
163
|
const label = `${verb.namespace}.${verb.method}`;
|
|
157
164
|
assertOperationAllowed(label, definition.name, requestedCompletion);
|
|
158
165
|
const id = `plugin-${nextStep++}`;
|
|
159
|
-
return trackStep(authoredSteps, new AuthoredFlowOperation(id, label, () => assertOperationAllowed(label, definition.name, requestedCompletion), () => runPluginEffect(journal, definition.name, id, plugin, verb, args, journalSteps, budget), lifecycle));
|
|
166
|
+
return trackStep(authoredSteps, new AuthoredFlowOperation(id, label, () => assertOperationAllowed(label, definition.name, requestedCompletion), () => runPluginEffect(journal, definition.name, id, plugin, verb, args, journalSteps, budget, options.rootRunId), lifecycle));
|
|
160
167
|
}));
|
|
161
168
|
let bodyFailed = false;
|
|
162
169
|
let bodyFailure;
|
|
@@ -213,6 +220,7 @@ export async function executeAuthoredFlow(handle, journal, input, options = {})
|
|
|
213
220
|
await lowerDeterministic(`complete-${nextStep}`, requestedCompletion === 'needs_human'
|
|
214
221
|
? `printf '%s' '{"completionReason":"needs_human"}'` : ':', true);
|
|
215
222
|
return Object.freeze({
|
|
223
|
+
...(options.rootRunId === undefined ? {} : { rootRunId: options.rootRunId }),
|
|
216
224
|
name: definition.name,
|
|
217
225
|
completionReason: requestedCompletion,
|
|
218
226
|
journalSteps: Object.freeze([...journalSteps]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-flow-executor.js","sourceRoot":"","sources":["../src/authored-flow-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authored-flow-executor.js","sourceRoot":"","sources":["../src/authored-flow-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,14 @@ export declare class AuthoredFlowLoadError extends Error {
|
|
|
5
5
|
}
|
|
6
6
|
/** Same signature as `getAuthoredFlowDefinition`, resolved from wherever a flow was loaded. */
|
|
7
7
|
export type GetFlowDefinition = <Input = unknown>(handle: FlowHandle) => AuthoredFlowDefinition<Input>;
|
|
8
|
+
export interface SurfaceModuleAuthority {
|
|
9
|
+
readonly packageName: '@relayflows/surface';
|
|
10
|
+
readonly version: string;
|
|
11
|
+
readonly packageSha256: string;
|
|
12
|
+
readonly runtimeSha256: string;
|
|
13
|
+
}
|
|
8
14
|
export interface LoadedAuthoredFlow {
|
|
15
|
+
readonly sourcePath: string;
|
|
9
16
|
readonly handle: FlowHandle;
|
|
10
17
|
/**
|
|
11
18
|
* Bound to the SAME `@relayflows/surface` module instance the flow file
|
|
@@ -15,6 +22,8 @@ export interface LoadedAuthoredFlow {
|
|
|
15
22
|
* `getAuthoredFlowDefinition` import.
|
|
16
23
|
*/
|
|
17
24
|
readonly getDefinition: GetFlowDefinition;
|
|
25
|
+
/** Exact Surface package/runtime that owns the handle's WeakMap identity. */
|
|
26
|
+
readonly surfaceAuthority: SurfaceModuleAuthority;
|
|
18
27
|
/** Dependency-first load order, each canonical absolute path appearing once. */
|
|
19
28
|
readonly graph: readonly LoadedAuthoredFlowNode[];
|
|
20
29
|
}
|
|
@@ -22,9 +31,20 @@ export interface LoadedAuthoredFlowNode {
|
|
|
22
31
|
readonly path: string;
|
|
23
32
|
readonly handle: FlowHandle;
|
|
24
33
|
readonly getDefinition: GetFlowDefinition;
|
|
34
|
+
readonly surfaceAuthority: SurfaceModuleAuthority;
|
|
25
35
|
readonly use: readonly string[];
|
|
26
36
|
}
|
|
27
37
|
/** Import and validate a direct-run module without executing its authored body. */
|
|
28
38
|
export declare function loadAuthoredFlow(path: string): Promise<LoadedAuthoredFlow>;
|
|
39
|
+
/**
|
|
40
|
+
* Hash the exact installed Surface package payload, including path boundaries.
|
|
41
|
+
*
|
|
42
|
+
* npm may materialize a package-local node_modules tree for workspace and
|
|
43
|
+
* file: dependencies. That tree is installation state, not part of the
|
|
44
|
+
* published Surface package, and can contain platform-specific .bin symlinks.
|
|
45
|
+
* Keep it outside the authority boundary while pinning every package payload
|
|
46
|
+
* file, including the runtime module hashed separately by the caller.
|
|
47
|
+
*/
|
|
48
|
+
export declare function packageTreeSha256(root: string): Promise<string>;
|
|
29
49
|
export { getAuthoredFlowDefinition };
|
|
30
50
|
//# sourceMappingURL=authored-flow-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-flow-loader.d.ts","sourceRoot":"","sources":["../src/authored-flow-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authored-flow-loader.d.ts","sourceRoot":"","sources":["../src/authored-flow-loader.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,qBAAsB,SAAQ,KAAK;IACjB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW;gBAA9F,OAAO,EAAE,MAAM,EAAW,IAAI,GAAE,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,WAA4B;CAI5H;AAED,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,KAAK,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAEvG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+ChF;AAiHD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBrE;AAKD,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { accessSync, constants, realpathSync } from 'node:fs';
|
|
1
|
+
import { accessSync, constants, existsSync, realpathSync } from 'node:fs';
|
|
2
|
+
import { readFile, readdir } from 'node:fs/promises';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
2
4
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { dirname, resolve } from 'node:path';
|
|
5
|
+
import { dirname, join, relative, resolve, sep } from 'node:path';
|
|
4
6
|
import { pathToFileURL } from 'node:url';
|
|
5
7
|
import { getAuthoredFlowDefinition, } from './authored-flow.js';
|
|
6
8
|
export class AuthoredFlowLoadError extends Error {
|
|
@@ -32,7 +34,7 @@ export async function loadAuthoredFlow(path) {
|
|
|
32
34
|
return cached;
|
|
33
35
|
visiting.add(absolutePath);
|
|
34
36
|
try {
|
|
35
|
-
const { handle, getDefinition } = await importAuthoredFlow(absolutePath);
|
|
37
|
+
const { handle, getDefinition, surfaceAuthority } = await importAuthoredFlow(absolutePath);
|
|
36
38
|
const dependencies = [];
|
|
37
39
|
for (const entry of getDefinition(handle).header.use ?? []) {
|
|
38
40
|
// Validate again at the SDK boundary: the author's surface package may
|
|
@@ -46,7 +48,7 @@ export async function loadAuthoredFlow(path) {
|
|
|
46
48
|
}
|
|
47
49
|
dependencies.push(child.path);
|
|
48
50
|
}
|
|
49
|
-
const node = Object.freeze({ path: absolutePath, handle, getDefinition, use: Object.freeze(dependencies) });
|
|
51
|
+
const node = Object.freeze({ path: absolutePath, handle, getDefinition, surfaceAuthority, use: Object.freeze(dependencies) });
|
|
50
52
|
loaded.set(absolutePath, node);
|
|
51
53
|
return node;
|
|
52
54
|
}
|
|
@@ -61,7 +63,8 @@ export async function loadAuthoredFlow(path) {
|
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
const root = await visit(resolve(path), true);
|
|
64
|
-
return Object.freeze({ handle: root.handle, getDefinition: root.getDefinition,
|
|
66
|
+
return Object.freeze({ sourcePath: root.path, handle: root.handle, getDefinition: root.getDefinition,
|
|
67
|
+
surfaceAuthority: root.surfaceAuthority, graph: Object.freeze([...loaded.values()]) });
|
|
65
68
|
}
|
|
66
69
|
async function importAuthoredFlow(path) {
|
|
67
70
|
const absolutePath = resolve(path);
|
|
@@ -73,12 +76,12 @@ async function importAuthoredFlow(path) {
|
|
|
73
76
|
}
|
|
74
77
|
let authoredModule;
|
|
75
78
|
try {
|
|
76
|
-
authoredModule = await import(pathToFileURL(absolutePath).href);
|
|
79
|
+
authoredModule = await import(/* @vite-ignore */ pathToFileURL(absolutePath).href);
|
|
77
80
|
}
|
|
78
81
|
catch (error) {
|
|
79
82
|
throw new AuthoredFlowLoadError(`Flow "${path}" could not be imported: ${errorMessage(error)}`);
|
|
80
83
|
}
|
|
81
|
-
const getDefinition = await
|
|
84
|
+
const { getDefinition, surfaceAuthority } = await resolveSurfaceRuntime(absolutePath, path);
|
|
82
85
|
const handle = authoredModule['default'];
|
|
83
86
|
try {
|
|
84
87
|
getDefinition(handle);
|
|
@@ -86,7 +89,7 @@ async function importAuthoredFlow(path) {
|
|
|
86
89
|
catch (error) {
|
|
87
90
|
throw new AuthoredFlowLoadError(`Flow "${path}" must default-export flow(...): ${errorMessage(error)}`);
|
|
88
91
|
}
|
|
89
|
-
return { handle, getDefinition };
|
|
92
|
+
return { handle, getDefinition, surfaceAuthority };
|
|
90
93
|
}
|
|
91
94
|
/**
|
|
92
95
|
* `getFlowDefinition` recognizes a handle by object identity in a `WeakMap`
|
|
@@ -109,22 +112,94 @@ async function importAuthoredFlow(path) {
|
|
|
109
112
|
* compatible `@relayflows/surface` is provably resolvable from this same
|
|
110
113
|
* anchor.
|
|
111
114
|
*/
|
|
112
|
-
async function
|
|
115
|
+
async function resolveSurfaceRuntime(absolutePath, displayPath) {
|
|
113
116
|
const require = createRequire(pathToFileURL(absolutePath));
|
|
114
117
|
let resolvedRuntimePath;
|
|
115
118
|
try {
|
|
116
119
|
resolvedRuntimePath = require.resolve('@relayflows/surface/runtime');
|
|
120
|
+
// Some ESM test/load hooks return a percent-encoded absolute path without
|
|
121
|
+
// a file: scheme. Normalize it only when the literal path does not exist.
|
|
122
|
+
if (!existsSync(resolvedRuntimePath) && resolvedRuntimePath.includes('%')) {
|
|
123
|
+
const decoded = decodeURI(resolvedRuntimePath);
|
|
124
|
+
if (existsSync(decoded))
|
|
125
|
+
resolvedRuntimePath = decoded;
|
|
126
|
+
}
|
|
117
127
|
}
|
|
118
128
|
catch (error) {
|
|
119
129
|
throw new AuthoredFlowLoadError(`Flow "${displayPath}" imports @relayflows/surface, but @relayflows/surface/runtime `
|
|
120
130
|
+ `could not be resolved from the same location: ${errorMessage(error)}`);
|
|
121
131
|
}
|
|
122
|
-
const runtimeModule = await import(
|
|
132
|
+
const runtimeModule = await import(/* @vite-ignore */ resolvedRuntimePath);
|
|
123
133
|
if (typeof runtimeModule.getFlowDefinition !== 'function') {
|
|
124
134
|
throw new AuthoredFlowLoadError(`Flow "${displayPath}": the @relayflows/surface/runtime resolved from its location `
|
|
125
135
|
+ 'does not export getFlowDefinition — check its @relayflows/surface version.');
|
|
126
136
|
}
|
|
127
|
-
|
|
137
|
+
let packagePath = dirname(resolvedRuntimePath);
|
|
138
|
+
for (;;) {
|
|
139
|
+
const candidate = resolve(packagePath, 'package.json');
|
|
140
|
+
try {
|
|
141
|
+
const packageBytes = await readFile(candidate);
|
|
142
|
+
const manifest = JSON.parse(packageBytes.toString('utf8'));
|
|
143
|
+
if (manifest.name === '@relayflows/surface') {
|
|
144
|
+
if (typeof manifest.version !== 'string' || manifest.version.length === 0) {
|
|
145
|
+
throw new AuthoredFlowLoadError(`Flow "${displayPath}": @relayflows/surface has no pinned package version.`);
|
|
146
|
+
}
|
|
147
|
+
const runtimeBytes = await readFile(resolvedRuntimePath);
|
|
148
|
+
return {
|
|
149
|
+
getDefinition: runtimeModule.getFlowDefinition,
|
|
150
|
+
surfaceAuthority: Object.freeze({
|
|
151
|
+
packageName: '@relayflows/surface', version: manifest.version,
|
|
152
|
+
packageSha256: await packageTreeSha256(packagePath),
|
|
153
|
+
runtimeSha256: createHash('sha256').update(runtimeBytes).digest('hex'),
|
|
154
|
+
}),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
if (!(error instanceof SyntaxError) && error.code !== 'ENOENT')
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
162
|
+
const parent = dirname(packagePath);
|
|
163
|
+
if (parent === packagePath)
|
|
164
|
+
break;
|
|
165
|
+
packagePath = parent;
|
|
166
|
+
}
|
|
167
|
+
throw new AuthoredFlowLoadError(`Flow "${displayPath}": the resolved @relayflows/surface/runtime is not inside its declared package.`);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Hash the exact installed Surface package payload, including path boundaries.
|
|
171
|
+
*
|
|
172
|
+
* npm may materialize a package-local node_modules tree for workspace and
|
|
173
|
+
* file: dependencies. That tree is installation state, not part of the
|
|
174
|
+
* published Surface package, and can contain platform-specific .bin symlinks.
|
|
175
|
+
* Keep it outside the authority boundary while pinning every package payload
|
|
176
|
+
* file, including the runtime module hashed separately by the caller.
|
|
177
|
+
*/
|
|
178
|
+
export async function packageTreeSha256(root) {
|
|
179
|
+
const files = [];
|
|
180
|
+
async function visit(directory) {
|
|
181
|
+
const entries = await readdir(directory, { withFileTypes: true });
|
|
182
|
+
entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
183
|
+
for (const entry of entries) {
|
|
184
|
+
if (directory === root && entry.name === 'node_modules')
|
|
185
|
+
continue;
|
|
186
|
+
const path = join(directory, entry.name);
|
|
187
|
+
if (entry.isDirectory())
|
|
188
|
+
await visit(path);
|
|
189
|
+
else if (entry.isFile())
|
|
190
|
+
files.push(path);
|
|
191
|
+
else
|
|
192
|
+
throw new AuthoredFlowLoadError(`@relayflows/surface package contains unsupported entry "${relative(root, path)}".`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
await visit(root);
|
|
196
|
+
const hash = createHash('sha256');
|
|
197
|
+
for (const path of files) {
|
|
198
|
+
const bytes = await readFile(path);
|
|
199
|
+
const name = relative(root, path).split(sep).join('/');
|
|
200
|
+
hash.update(name).update('\0').update(String(bytes.length)).update('\0').update(bytes);
|
|
201
|
+
}
|
|
202
|
+
return hash.digest('hex');
|
|
128
203
|
}
|
|
129
204
|
// Exported for callers (internal SDK tests, and any co-located flow that is
|
|
130
205
|
// provably the same `@relayflows/surface` instance as this package) that
|