@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/cli/direct-run.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { McpStepError } from '../authored-mcp.js';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { authoredLocalAgentStream } from '../authored-admission.js';
|
|
2
4
|
import { McpPreflightError } from './check-typescript.js';
|
|
3
5
|
import { attachLocalAgent } from '../local-agent.js';
|
|
4
6
|
import { LlmWorker } from '../llm-worker.js';
|
|
5
|
-
import { AuthoredFlowExecutionError,
|
|
7
|
+
import { AuthoredFlowExecutionError, } from '../authored-flow-executor.js';
|
|
8
|
+
import { executeDurableAuthoredFlow } from '../authored-root.js';
|
|
6
9
|
import { AuthoredFlowLoadError } from '../authored-flow-loader.js';
|
|
7
10
|
import { DirectInputError, parseDirectInput } from '../direct-input.js';
|
|
8
11
|
import { JournalClient } from '../journal-client.js';
|
|
@@ -43,10 +46,11 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
43
46
|
let localLlm;
|
|
44
47
|
let llmClient;
|
|
45
48
|
let llmFailure;
|
|
49
|
+
const admissionIdentity = options.authoredAdmissionKey
|
|
50
|
+
?? process.env['RELAYFLOW_AUTHORED_ADMISSION_KEY'] ?? randomUUID();
|
|
46
51
|
try {
|
|
47
|
-
const { handle, getDefinition } = checked.loaded;
|
|
48
52
|
if (options.localAgent) {
|
|
49
|
-
localAgent = await attachLocalAgent(client, dataDir, options.onPtyReady);
|
|
53
|
+
localAgent = await attachLocalAgent(client, dataDir, options.onPtyReady, authoredLocalAgentStream(admissionIdentity));
|
|
50
54
|
// A session owns one worker registration. Keep the workspace-free LLM
|
|
51
55
|
// worker on its own connection so it cannot replace the agent worker.
|
|
52
56
|
llmClient = new JournalClient(socketPath);
|
|
@@ -56,14 +60,15 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
56
60
|
localLlm.on('error', error => { llmFailure = error; client.close(); });
|
|
57
61
|
await localLlm.attach();
|
|
58
62
|
}
|
|
59
|
-
const result = await
|
|
60
|
-
getDefinition,
|
|
63
|
+
const result = await executeDurableAuthoredFlow(checked.loaded, client, input, {
|
|
61
64
|
dataDir,
|
|
62
|
-
|
|
63
|
-
onProgress: options.onProgress,
|
|
65
|
+
admissionKey: admissionIdentity,
|
|
64
66
|
localAgentStream: localAgent?.stream,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
lifecycle: {
|
|
68
|
+
onProgress: options.onProgress,
|
|
69
|
+
...(options.signal !== undefined ? { signal: options.signal } : {}),
|
|
70
|
+
...(options.onWait !== undefined ? { onWait: options.onWait } : {}),
|
|
71
|
+
},
|
|
67
72
|
});
|
|
68
73
|
const terminal = result.journalSteps.at(-1);
|
|
69
74
|
if (terminal === undefined) {
|
|
@@ -73,7 +78,7 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
73
78
|
return {
|
|
74
79
|
exitCode: 3,
|
|
75
80
|
report: {
|
|
76
|
-
...base, ok: false, runId:
|
|
81
|
+
...base, ok: false, runId: result.rootRunId, socketPath, status: 'parked',
|
|
77
82
|
completedSteps: result.journalSteps.length,
|
|
78
83
|
diagnostics: [...base.diagnostics, {
|
|
79
84
|
severity: 'parked', kind: 'run_parked',
|
|
@@ -87,7 +92,7 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
87
92
|
report: {
|
|
88
93
|
...base,
|
|
89
94
|
ok: true,
|
|
90
|
-
runId:
|
|
95
|
+
runId: result.rootRunId,
|
|
91
96
|
socketPath,
|
|
92
97
|
status: 'completed',
|
|
93
98
|
completionReason: result.completionReason,
|
|
@@ -127,7 +132,7 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
127
132
|
&& (error.code === 'helper_slack.credential_missing'
|
|
128
133
|
|| error.code === 'helper_slack.mount_required'
|
|
129
134
|
|| error.code === 'budget_syntax_invalid'
|
|
130
|
-
|| error.code === '
|
|
135
|
+
|| error.code === 'unsupported_promise_lifecycle'
|
|
131
136
|
|| error.code === 'unsupported_header'
|
|
132
137
|
|| error.code === 'agent_cli_unresolved'
|
|
133
138
|
|| error.code === 'llm_cli_unresolved'
|
|
@@ -138,8 +143,7 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
138
143
|
...fromCheckReport('run', inputFailureReport({
|
|
139
144
|
kind: error instanceof AuthoredFlowExecutionError && (error.code === 'helper_slack.credential_missing'
|
|
140
145
|
|| error.code === 'helper_slack.mount_required'
|
|
141
|
-
|| error.code === 'budget_syntax_invalid'
|
|
142
|
-
|| error.code === 'budget_missing_price') ? error.code : 'invalid_spec',
|
|
146
|
+
|| error.code === 'budget_syntax_invalid') ? error.code : 'invalid_spec',
|
|
143
147
|
message: error.message,
|
|
144
148
|
}, path)),
|
|
145
149
|
socketPath,
|
|
@@ -163,6 +167,34 @@ export async function runDirectFlow(path, inputArgument, dataDir, options = {})
|
|
|
163
167
|
},
|
|
164
168
|
};
|
|
165
169
|
}
|
|
170
|
+
// A step that ran and failed is a run failure, not a protocol failure.
|
|
171
|
+
// Routing it through `protocolFailure` reported `relayflowd could not
|
|
172
|
+
// complete the run request` — which says the daemon broke — and left the
|
|
173
|
+
// report with no `status`, so the summary line printed `RUN <id> unknown`
|
|
174
|
+
// about a run whose outcome was known exactly. The diagnostic carried up
|
|
175
|
+
// from `classifyOutcome` already names the step, its exit code and its
|
|
176
|
+
// output tail; this branch is what lets it reach the terminal. Mirrors
|
|
177
|
+
// the `McpStepError` branch above, which had this shape all along.
|
|
178
|
+
if (error instanceof AuthoredFlowExecutionError && error.code === 'step_failed') {
|
|
179
|
+
return {
|
|
180
|
+
exitCode: 1,
|
|
181
|
+
report: {
|
|
182
|
+
...base,
|
|
183
|
+
ok: false,
|
|
184
|
+
runId: error.runId,
|
|
185
|
+
socketPath,
|
|
186
|
+
status: 'failed',
|
|
187
|
+
completionReason: 'step_failed',
|
|
188
|
+
diagnostics: [...base.diagnostics, {
|
|
189
|
+
severity: 'failure',
|
|
190
|
+
kind: 'step_failed',
|
|
191
|
+
// The `code: ` prefix `AuthoredFlowExecutionError` adds is
|
|
192
|
+
// redundant once the diagnostic is labelled `[step_failed]`.
|
|
193
|
+
message: error.message.replace(/^step_failed: /, ''),
|
|
194
|
+
}],
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
166
198
|
const runId = error instanceof AuthoredFlowExecutionError ? error.runId : undefined;
|
|
167
199
|
return protocolFailure('run', base, socketPath, error, runId);
|
|
168
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-run.js","sourceRoot":"","sources":["../../src/cli/direct-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,0BAA0B,
|
|
1
|
+
{"version":3,"file":"direct-run.js","sourceRoot":"","sources":["../../src/cli/direct-run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.d.ts
CHANGED
|
@@ -46,6 +46,8 @@ export interface RunProgress {
|
|
|
46
46
|
leaseDeadlineMs: number;
|
|
47
47
|
}
|
|
48
48
|
export interface RunLifecycleOptions {
|
|
49
|
+
/** Caller-owned hosted invocation identity for authored-root start recovery. */
|
|
50
|
+
authoredAdmissionKey?: string;
|
|
49
51
|
bucket?: string;
|
|
50
52
|
allowHumanInfluenced?: boolean;
|
|
51
53
|
onPtyReady?: (path: string) => void;
|
|
@@ -54,6 +56,14 @@ export interface RunLifecycleOptions {
|
|
|
54
56
|
localAgent?: boolean;
|
|
55
57
|
signal?: AbortSignal;
|
|
56
58
|
onWait?: (progress: RunProgress) => void;
|
|
59
|
+
/**
|
|
60
|
+
* The daemon data dir, carried so a failure diagnostic can name the journal
|
|
61
|
+
* holding the evidence (`<dataDir>/runs/<runId>.sqlite3`) and emit a
|
|
62
|
+
* `flows replay` invocation that will actually resolve. Each verb sets it
|
|
63
|
+
* from its own `--data-dir`; absent only where no data dir exists, and the
|
|
64
|
+
* diagnostic then omits the path rather than guessing one.
|
|
65
|
+
*/
|
|
66
|
+
dataDir?: string;
|
|
57
67
|
/**
|
|
58
68
|
* Attach-or-spawn policy for the daemon this command needs
|
|
59
69
|
* (kernel/DAEMON-LIFECYCLE.md §3). `{ spawn: false }` is `--no-spawn`:
|
package/dist/cli/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAwB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.js
CHANGED
|
@@ -8,9 +8,11 @@ import { socketPathFor } from '../daemon-connection.js';
|
|
|
8
8
|
import { ensureDaemon } from '../daemon-lifecycle.js';
|
|
9
9
|
import { isAuthoredFlowPath } from '../direct-input.js';
|
|
10
10
|
import { daemonRefusal } from './daemon-refusal.js';
|
|
11
|
-
import {
|
|
11
|
+
import { inspectionHint, stepFailureDetails } from './step-failure.js';
|
|
12
12
|
import { JournalClient, JournalProtocolError } from '../journal-client.js';
|
|
13
13
|
import { attachLocalAgent } from '../local-agent.js';
|
|
14
|
+
import { LlmWorker } from '../llm-worker.js';
|
|
15
|
+
import { readAuthoredRootMetadata, resumeDurableAuthoredFlow } from '../authored-root.js';
|
|
14
16
|
import { checkFlow, } from './check.js';
|
|
15
17
|
export async function runFlow(path, dataDir, options = {}) {
|
|
16
18
|
const prepared = parseDigestReference(path) ? await prepareDigestRun(path, options.bucket) : undefined;
|
|
@@ -39,7 +41,7 @@ async function executeCheckedFlow(checked, dataDir, options) {
|
|
|
39
41
|
if (options.localAgent)
|
|
40
42
|
localAgent = await attachLocalAgent(client, dataDir, options.onPtyReady);
|
|
41
43
|
const outcome = await client.runStart(spec, options.reuseFromRunId);
|
|
42
|
-
const execution = await classifyOutcome(client, 'run', outcome, base, socketPath, options);
|
|
44
|
+
const execution = await classifyOutcome(client, 'run', outcome, base, socketPath, { ...options, dataDir });
|
|
43
45
|
if (options.reuseFromRunId !== undefined) {
|
|
44
46
|
execution.report.reuse = await reuseSummary(client, outcome.run_id, options.reuseFromRunId);
|
|
45
47
|
}
|
|
@@ -71,7 +73,49 @@ export async function resumeFlow(runId, dataDir, options = {}) {
|
|
|
71
73
|
const connected = await connect(client, 'resume', dataDir, base, options);
|
|
72
74
|
if (connected !== undefined)
|
|
73
75
|
return connected;
|
|
76
|
+
let authoredAgent;
|
|
77
|
+
let authoredLlm;
|
|
78
|
+
let authoredLlmClient;
|
|
74
79
|
try {
|
|
80
|
+
const authoredRoot = await readAuthoredRootMetadata(client, runId);
|
|
81
|
+
if (authoredRoot !== undefined) {
|
|
82
|
+
if (authoredRoot.localAgentStream !== undefined && !options.localAgent) {
|
|
83
|
+
throw new Error('authored root requires --local-agent to resume its pinned worker surface');
|
|
84
|
+
}
|
|
85
|
+
if (authoredRoot.localAgentStream === undefined && options.localAgent) {
|
|
86
|
+
throw new Error('authored root was started without a local agent worker surface');
|
|
87
|
+
}
|
|
88
|
+
if (options.localAgent) {
|
|
89
|
+
authoredAgent = await attachLocalAgent(client, dataDir, options.onPtyReady, authoredRoot.localAgentStream);
|
|
90
|
+
authoredLlmClient = new JournalClient(socketPath);
|
|
91
|
+
await authoredLlmClient.connect();
|
|
92
|
+
await authoredLlmClient.hello('flows-authored-resume-llm');
|
|
93
|
+
authoredLlm = new LlmWorker(authoredLlmClient, `${authoredAgent.stream}-llm`);
|
|
94
|
+
await authoredLlm.attach();
|
|
95
|
+
}
|
|
96
|
+
const result = await resumeDurableAuthoredFlow(runId, client, {
|
|
97
|
+
dataDir,
|
|
98
|
+
localAgentStream: authoredAgent?.stream,
|
|
99
|
+
lifecycle: options,
|
|
100
|
+
});
|
|
101
|
+
if (result === undefined)
|
|
102
|
+
throw new Error('authored root disappeared during resume');
|
|
103
|
+
return {
|
|
104
|
+
exitCode: result.completionReason === 'needs_human' ? 3 : 0,
|
|
105
|
+
report: {
|
|
106
|
+
...base,
|
|
107
|
+
ok: result.completionReason === 'success',
|
|
108
|
+
runId,
|
|
109
|
+
socketPath,
|
|
110
|
+
status: result.completionReason === 'needs_human' ? 'parked' : 'completed',
|
|
111
|
+
...(result.completionReason === 'success'
|
|
112
|
+
? { completionReason: 'success' }
|
|
113
|
+
: { diagnostics: [{ severity: 'parked', kind: 'run_parked',
|
|
114
|
+
message: `Flow "${result.name}" needs_human; see the journal for accumulated blockers.` }] }),
|
|
115
|
+
completedSteps: result.journalSteps.length,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
75
119
|
// resumeHelperEffect subsumes the old resumeSlackEffect: it handles the
|
|
76
120
|
// slack effect resume plus every other provider from N's codegen. The
|
|
77
121
|
// second call the earlier rebase left is a stale reference from before
|
|
@@ -80,13 +124,17 @@ export async function resumeFlow(runId, dataDir, options = {}) {
|
|
|
80
124
|
if (await resumeHelperEffect(client, runId, dataDir)) {
|
|
81
125
|
outcome = await client.runResume(runId, options.allowHumanInfluenced);
|
|
82
126
|
}
|
|
83
|
-
return await classifyOutcome(client, 'resume', outcome, base, socketPath, options);
|
|
127
|
+
return await classifyOutcome(client, 'resume', outcome, base, socketPath, { ...options, dataDir });
|
|
84
128
|
}
|
|
85
129
|
catch (error) {
|
|
86
130
|
if (error instanceof JournalProtocolError && error.code === 'human_influenced_run') {
|
|
87
131
|
return { exitCode: 2, report: { ...base, runId, socketPath,
|
|
88
132
|
diagnostics: [{ severity: 'refusal', kind: 'human_influenced_run', message: error.message.replace(/^human_influenced_run: /, '') }] } };
|
|
89
133
|
}
|
|
134
|
+
if (error instanceof AuthoredFlowExecutionError && error.code === 'unsupported_promise_lifecycle') {
|
|
135
|
+
return { exitCode: 2, report: { ...base, runId, socketPath,
|
|
136
|
+
diagnostics: [{ severity: 'refusal', kind: 'invalid_spec', message: error.message }] } };
|
|
137
|
+
}
|
|
90
138
|
if (error instanceof AuthoredFlowExecutionError
|
|
91
139
|
&& (error.code === 'helper_slack.credential_missing' || error.code === 'helper_slack.mount_required'
|
|
92
140
|
|| error.code === 'helper_provider.mount_required' || error.code === 'helper_provider.unsupported')) {
|
|
@@ -111,7 +159,14 @@ export async function resumeFlow(runId, dataDir, options = {}) {
|
|
|
111
159
|
};
|
|
112
160
|
}
|
|
113
161
|
finally {
|
|
114
|
-
|
|
162
|
+
try {
|
|
163
|
+
await authoredLlm?.close();
|
|
164
|
+
authoredLlmClient?.close();
|
|
165
|
+
await authoredAgent?.close();
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
client.close();
|
|
169
|
+
}
|
|
115
170
|
}
|
|
116
171
|
}
|
|
117
172
|
/**
|
|
@@ -259,19 +314,25 @@ export async function classifyOutcome(client, command, outcome, base, socketPath
|
|
|
259
314
|
message: `Run "${current.run_id}" failed with completionReason: ${current.completion_reason}.`,
|
|
260
315
|
};
|
|
261
316
|
if (current.completion_reason === 'step_failed') {
|
|
317
|
+
let details;
|
|
262
318
|
try {
|
|
263
|
-
|
|
264
|
-
if (details !== undefined) {
|
|
265
|
-
Object.assign(diagnostic, details);
|
|
266
|
-
diagnostic.message += ` Step ${JSON.stringify(details.stepId)} exit=${details.exitCode}.`
|
|
267
|
-
+ (details.stderrTail ? `\nStderr (last 1,024 bytes):\n${details.stderrTail}` : '')
|
|
268
|
-
+ `\nInspect: ${details.hint}`;
|
|
269
|
-
}
|
|
319
|
+
details = await stepFailureDetails(client, current.run_id);
|
|
270
320
|
}
|
|
271
321
|
catch (error) {
|
|
272
322
|
// Inspection must not erase the already known run failure.
|
|
273
|
-
diagnostic.message += ` Could not inspect
|
|
323
|
+
diagnostic.message += ` Could not inspect the failed step: ${errorMessage(error)}`;
|
|
274
324
|
}
|
|
325
|
+
if (details !== undefined) {
|
|
326
|
+
Object.assign(diagnostic, details);
|
|
327
|
+
diagnostic.message += renderStepEvidence(details);
|
|
328
|
+
}
|
|
329
|
+
// Appended whatever the inspection found — including nothing. A failure
|
|
330
|
+
// shape this reader does not recognise, or a journal it could not read,
|
|
331
|
+
// must still end with somewhere to go rather than with a dead end.
|
|
332
|
+
const where = inspectionHint(current.run_id, details?.stepId, options.dataDir);
|
|
333
|
+
Object.assign(diagnostic, where);
|
|
334
|
+
diagnostic.message += `\nInspect: ${where.hint}`
|
|
335
|
+
+ (where.journalPath === undefined ? '' : `\nJournal: ${where.journalPath}`);
|
|
275
336
|
}
|
|
276
337
|
return {
|
|
277
338
|
exitCode: 1,
|
|
@@ -416,6 +477,23 @@ export function socketFor(dataDir) {
|
|
|
416
477
|
function errorMessage(error) {
|
|
417
478
|
return error instanceof Error ? error.message : 'unknown protocol error';
|
|
418
479
|
}
|
|
480
|
+
/**
|
|
481
|
+
* The evidence half of a `step_failed` diagnostic; `inspectionHint` adds the
|
|
482
|
+
* rest. Each field is printed only when the journal actually carried it — an
|
|
483
|
+
* agent step has no exit code to report, and inventing `exit=undefined` (which
|
|
484
|
+
* is what the deterministic-only version printed for one) is worse than
|
|
485
|
+
* silence on that field.
|
|
486
|
+
*/
|
|
487
|
+
function renderStepEvidence(details) {
|
|
488
|
+
return ` Step ${JSON.stringify(details.stepId)}`
|
|
489
|
+
+ (details.stepType === undefined ? '' : ` (${details.stepType})`)
|
|
490
|
+
+ ` completionReason: ${details.completionReason}`
|
|
491
|
+
+ (details.exitCode === undefined ? '' : ` exit=${details.exitCode}`)
|
|
492
|
+
+ '.'
|
|
493
|
+
+ (details.detail === undefined ? '' : `\nDetail: ${details.detail}`)
|
|
494
|
+
+ (details.stdoutTail ? `\nStdout (last 1,024 bytes):\n${details.stdoutTail}` : '')
|
|
495
|
+
+ (details.stderrTail ? `\nStderr (last 1,024 bytes):\n${details.stderrTail}` : '');
|
|
496
|
+
}
|
|
419
497
|
function throwIfCanceled(signal, stepId) {
|
|
420
498
|
if (signal?.aborted === true)
|
|
421
499
|
throw new Error(`waiting for running step "${stepId}" was canceled`);
|
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { StepFailedDetails } from '../failure-kinds.js';
|
|
2
|
+
import type { JournalClient } from '../journal-client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Read what a failed step left in the journal — for any step type.
|
|
5
|
+
*
|
|
6
|
+
* This was `deterministicFailureDetails`, and its first act was to return
|
|
7
|
+
* `undefined` for any run without a `deterministic` step. That is every
|
|
8
|
+
* `f.agent` and `f.llm` step, because each authored worker call runs as its
|
|
9
|
+
* own single-step kernel run (authored-worker-step.ts). So a failed agent
|
|
10
|
+
* reached the terminal carrying nothing but its taxonomy label — the run said
|
|
11
|
+
* `step_failed` and discarded every account of why, which is the whole reason
|
|
12
|
+
* a local agent failure was undiagnosable.
|
|
13
|
+
*
|
|
14
|
+
* The two step families leave their evidence in different fields, because the
|
|
15
|
+
* kernel preserves `output` on a failed completion only for deterministic
|
|
16
|
+
* steps (`preserve_failure_output`, relayflowd-core/src/machine.rs). For an
|
|
17
|
+
* agent or llm step the worker's `{exit_code, stdout_tail, stderr_tail}` is
|
|
18
|
+
* nulled out of `output` and survives only as the bounded render the daemon
|
|
19
|
+
* captured into `verification.detail` (`worker_failure_detail`,
|
|
20
|
+
* relayflowd/src/engine/remote.rs). Both are read, in that order, and the
|
|
21
|
+
* daemon's render is re-parsed when it carries that same shape: an exit code
|
|
22
|
+
* the daemon stringified on its way into the journal is still an exit code,
|
|
23
|
+
* and printing it as one is the difference between a diagnosis and a blob.
|
|
24
|
+
*/
|
|
25
|
+
export declare function stepFailureDetails(client: JournalClient, runId: string): Promise<StepFailedDetails | undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* Where to look, derived from the run id and data dir ALONE.
|
|
28
|
+
*
|
|
29
|
+
* Deliberately independent of the journal read: a failure whose evidence could
|
|
30
|
+
* not be read, or a failure shape nothing here recognises, must still end with
|
|
31
|
+
* somewhere to go rather than with a dead end. `flows replay` is that command —
|
|
32
|
+
* it already exists and already prints the full journal; nothing ever named it
|
|
33
|
+
* at the moment of failure, which is why the surface looked like it had no way
|
|
34
|
+
* to inspect a finished run.
|
|
35
|
+
*/
|
|
36
|
+
export declare function inspectionHint(runId: string, stepId: string | undefined, dataDir: string | undefined): {
|
|
37
|
+
hint: string;
|
|
38
|
+
journalPath?: string;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=step-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-failure.d.ts","sourceRoot":"","sources":["../../src/cli/step-failure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAsCxC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAaxC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { DEFAULT_DATA_DIR } from '../daemon-connection.js';
|
|
3
|
+
const TAIL_BYTES = 1_024;
|
|
4
|
+
/**
|
|
5
|
+
* Read what a failed step left in the journal — for any step type.
|
|
6
|
+
*
|
|
7
|
+
* This was `deterministicFailureDetails`, and its first act was to return
|
|
8
|
+
* `undefined` for any run without a `deterministic` step. That is every
|
|
9
|
+
* `f.agent` and `f.llm` step, because each authored worker call runs as its
|
|
10
|
+
* own single-step kernel run (authored-worker-step.ts). So a failed agent
|
|
11
|
+
* reached the terminal carrying nothing but its taxonomy label — the run said
|
|
12
|
+
* `step_failed` and discarded every account of why, which is the whole reason
|
|
13
|
+
* a local agent failure was undiagnosable.
|
|
14
|
+
*
|
|
15
|
+
* The two step families leave their evidence in different fields, because the
|
|
16
|
+
* kernel preserves `output` on a failed completion only for deterministic
|
|
17
|
+
* steps (`preserve_failure_output`, relayflowd-core/src/machine.rs). For an
|
|
18
|
+
* agent or llm step the worker's `{exit_code, stdout_tail, stderr_tail}` is
|
|
19
|
+
* nulled out of `output` and survives only as the bounded render the daemon
|
|
20
|
+
* captured into `verification.detail` (`worker_failure_detail`,
|
|
21
|
+
* relayflowd/src/engine/remote.rs). Both are read, in that order, and the
|
|
22
|
+
* daemon's render is re-parsed when it carries that same shape: an exit code
|
|
23
|
+
* the daemon stringified on its way into the journal is still an exit code,
|
|
24
|
+
* and printing it as one is the difference between a diagnosis and a blob.
|
|
25
|
+
*/
|
|
26
|
+
export async function stepFailureDetails(client, runId) {
|
|
27
|
+
const snapshot = await client.runGet(runId);
|
|
28
|
+
let fromSeq = 1;
|
|
29
|
+
const failures = new Map();
|
|
30
|
+
while (true) {
|
|
31
|
+
const { entries } = await client.journalRead(runId, fromSeq, 100);
|
|
32
|
+
if (entries.length === 0)
|
|
33
|
+
break;
|
|
34
|
+
for (const raw of entries) {
|
|
35
|
+
const entry = record(raw);
|
|
36
|
+
const seq = entry?.['seq'];
|
|
37
|
+
if (typeof seq !== 'number' || !Number.isSafeInteger(seq) || seq < fromSeq) {
|
|
38
|
+
throw new Error('invalid journal sequence in step failure inspection');
|
|
39
|
+
}
|
|
40
|
+
fromSeq = seq + 1;
|
|
41
|
+
const stepId = entry?.['step_id'];
|
|
42
|
+
if (entry?.['entry_type'] !== 'step.completed' || typeof stepId !== 'string')
|
|
43
|
+
continue;
|
|
44
|
+
// A later completion supersedes an earlier failed attempt.
|
|
45
|
+
failures.delete(stepId);
|
|
46
|
+
const payload = record(entry['payload']);
|
|
47
|
+
if (payload === undefined)
|
|
48
|
+
continue;
|
|
49
|
+
const completionReason = payload['completionReason'];
|
|
50
|
+
// A terminal completion that is not a success is the failure, whatever
|
|
51
|
+
// its step type. The old predicate also demanded a non-zero `exit_code`,
|
|
52
|
+
// which no agent completion carries and which a deterministic step that
|
|
53
|
+
// exits 0 and then fails its gate does not carry either — both were
|
|
54
|
+
// silently skipped.
|
|
55
|
+
if (payload['disposition'] !== 'step_done'
|
|
56
|
+
|| typeof completionReason !== 'string' || completionReason === 'success')
|
|
57
|
+
continue;
|
|
58
|
+
const stepType = snapshot.steps[stepId]?.type;
|
|
59
|
+
failures.set(stepId, {
|
|
60
|
+
stepId,
|
|
61
|
+
completionReason,
|
|
62
|
+
...(stepType === undefined ? {} : { stepType }),
|
|
63
|
+
...evidence(payload),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return [...failures.values()].at(-1);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Where to look, derived from the run id and data dir ALONE.
|
|
71
|
+
*
|
|
72
|
+
* Deliberately independent of the journal read: a failure whose evidence could
|
|
73
|
+
* not be read, or a failure shape nothing here recognises, must still end with
|
|
74
|
+
* somewhere to go rather than with a dead end. `flows replay` is that command —
|
|
75
|
+
* it already exists and already prints the full journal; nothing ever named it
|
|
76
|
+
* at the moment of failure, which is why the surface looked like it had no way
|
|
77
|
+
* to inspect a finished run.
|
|
78
|
+
*/
|
|
79
|
+
export function inspectionHint(runId, stepId, dataDir) {
|
|
80
|
+
const at = stepId === undefined ? '' : ` --at ${shellQuote(stepId)}`;
|
|
81
|
+
// Only name a non-default data dir: repeating the default back at an
|
|
82
|
+
// operator who never typed it is noise, and `flows replay` defaults to the
|
|
83
|
+
// same value (cli.ts).
|
|
84
|
+
const dir = dataDir === undefined || dataDir === DEFAULT_DATA_DIR
|
|
85
|
+
? '' : ` --data-dir ${shellQuote(dataDir)}`;
|
|
86
|
+
return {
|
|
87
|
+
hint: `flows replay ${shellQuote(runId)}${at}${dir}`,
|
|
88
|
+
// Left as the operator spelled it rather than resolved: `.relayflowd/...`
|
|
89
|
+
// is what they will recognise in their own working directory.
|
|
90
|
+
...(dataDir === undefined ? {} : { journalPath: join(dataDir, 'runs', `${runId}.sqlite3`) }),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Pull the process-shaped fields out of whichever field carried them.
|
|
95
|
+
*
|
|
96
|
+
* `verification.detail` is last because it is the daemon's own render rather
|
|
97
|
+
* than the worker's structured report — but for an agent step it is the only
|
|
98
|
+
* thing that survives, so it is parsed when it parses and kept verbatim when
|
|
99
|
+
* it does not. A truncated render (the daemon caps at 2,000 chars and appends
|
|
100
|
+
* a truncation note) will not parse; that falls through to the raw string,
|
|
101
|
+
* which is still the account of what went wrong.
|
|
102
|
+
*/
|
|
103
|
+
function evidence(payload) {
|
|
104
|
+
const detail = record(payload['verification'])?.['detail'];
|
|
105
|
+
const structured = record(payload['output'])
|
|
106
|
+
?? record(payload['trajectory_tail'])
|
|
107
|
+
?? (typeof detail === 'string' ? parsed(detail) : undefined);
|
|
108
|
+
const exitCode = structured?.['exit_code'];
|
|
109
|
+
const stdout = structured?.['stdout_tail'];
|
|
110
|
+
const stderr = structured?.['stderr_tail'];
|
|
111
|
+
const structuredShape = typeof exitCode === 'number'
|
|
112
|
+
|| typeof stdout === 'string' || typeof stderr === 'string';
|
|
113
|
+
return {
|
|
114
|
+
...(typeof exitCode === 'number' && Number.isSafeInteger(exitCode) ? { exitCode } : {}),
|
|
115
|
+
...(typeof stdout === 'string' && stdout.length > 0 ? { stdoutTail: tail(stdout) } : {}),
|
|
116
|
+
...(typeof stderr === 'string' ? { stderrTail: tail(stderr) } : {}),
|
|
117
|
+
// Keep the daemon's account only when it was NOT just a render of the
|
|
118
|
+
// fields above — otherwise the same bytes print twice.
|
|
119
|
+
...(typeof detail === 'string' && detail.length > 0 && !structuredShape
|
|
120
|
+
? { detail: tail(detail) } : {}),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function parsed(value) {
|
|
124
|
+
try {
|
|
125
|
+
return record(JSON.parse(value));
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function record(value) {
|
|
132
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
133
|
+
? value : undefined;
|
|
134
|
+
}
|
|
135
|
+
function tail(value) {
|
|
136
|
+
const bytes = Buffer.from(value, 'utf8');
|
|
137
|
+
let start = Math.max(0, bytes.length - TAIL_BYTES);
|
|
138
|
+
// Drop a partial leading code point, avoiding replacement-byte expansion.
|
|
139
|
+
while (start < bytes.length && (bytes[start] & 0xc0) === 0x80)
|
|
140
|
+
start += 1;
|
|
141
|
+
// Preserve tabs/newlines; replace binary controls (including ESC and CR),
|
|
142
|
+
// C1 controls and Unicode formatting controls without growing the excerpt.
|
|
143
|
+
return bytes.subarray(start).toString('utf8')
|
|
144
|
+
.replace(/[\p{Cc}\p{Cf}]/gu, character => character === '\n' || character === '\t' ? character : '?');
|
|
145
|
+
}
|
|
146
|
+
function shellQuote(value) {
|
|
147
|
+
return /^[A-Za-z0-9_-]+$/.test(value) && !value.startsWith('-')
|
|
148
|
+
? value : `'${value.replace(/'/g, "'\\''")}'`;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=step-failure.js.map
|