@relayflows/sdk 2.0.53 → 2.0.55

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.
@@ -3,6 +3,13 @@ import type { AuthoredFlowExecutionResult, ExecuteAuthoredFlowOptions } from './
3
3
  import type { ParkCause, StepFailedDetails } from './failure-kinds.js';
4
4
  /** Installed by the standalone build; never fetched or resolved from a workspace. */
5
5
  export declare function installAuthoredNodeSource(source: string): void;
6
+ interface NodeAuthority {
7
+ path: string;
8
+ version: string;
9
+ executableSha256: string;
10
+ }
11
+ /** Test seam: resolve the authored Node authority exactly as the runner does. */
12
+ export declare function authoredNodeAuthorityForTest(): Readonly<NodeAuthority>;
6
13
  /** Called before root admission/resume; declarative commands never reach it. */
7
14
  export declare function assertAuthoredRuntimeAvailable(): void;
8
15
  /** Bun retains the root lease and local workers. Only the authored body uses Node. */
@@ -27,4 +34,5 @@ export declare function parkCauseFrame(value: unknown): ParkCause | undefined;
27
34
  export declare function stepFailedFrame(value: unknown): StepFailedDetails | undefined;
28
35
  /** The IPC frame is a claim, not a durable terminal fact or a sandbox boundary. */
29
36
  export declare function verifyAuthoredNodeResult(result: AuthoredFlowExecutionResult, metadata: AuthoredRootMetadata, rootRunId: string, socketPath: string, signal?: AbortSignal): Promise<void>;
37
+ export {};
30
38
  //# sourceMappingURL=authored-node-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authored-node-runner.d.ts","sourceRoot":"","sources":["../src/authored-node-runner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAA4B,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAMrI,OAAO,KAAK,EACiB,SAAS,EAAsB,iBAAiB,EAC5E,MAAM,oBAAoB,CAAC;AAQ5B,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG9D;AAgCD,gFAAgF;AAChF,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD;AAED,sFAAsF;AACtF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CAwGtC;AAwCD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAoB7E;AAkED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,2BAA2B,EAAE,QAAQ,EAAE,oBAAoB,EACnE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAC1D,OAAO,CAAC,IAAI,CAAC,CAsHf"}
1
+ {"version":3,"file":"authored-node-runner.d.ts","sourceRoot":"","sources":["../src/authored-node-runner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAA4B,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAMrI,OAAO,KAAK,EACiB,SAAS,EAAsB,iBAAiB,EAC5E,MAAM,oBAAoB,CAAC;AAQ5B,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG9D;AAMD,UAAU,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE;AA0EnF,iFAAiF;AACjF,wBAAgB,4BAA4B,IAAI,QAAQ,CAAC,aAAa,CAAC,CAEtE;AAED,gFAAgF;AAChF,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD;AAED,sFAAsF;AACtF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CAwGtC;AAwCD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAoB7E;AAkED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,2BAA2B,EAAE,QAAQ,EAAE,oBAAoB,EACnE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAC1D,OAAO,CAAC,IAAI,CAAC,CAsHf"}
@@ -3,9 +3,9 @@ import { FLOW_READ_BUDGET_MS } from './journal-read-policy.js';
3
3
  import { spawn, spawnSync } from 'node:child_process';
4
4
  import { createHash, createHmac, randomBytes, timingSafeEqual } from 'node:crypto';
5
5
  import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
6
- import { readFileSync, realpathSync } from 'node:fs';
6
+ import { accessSync, constants as fsConstants, readFileSync, realpathSync, statSync } from 'node:fs';
7
7
  import { tmpdir } from 'node:os';
8
- import { isAbsolute, join } from 'node:path';
8
+ import { delimiter, isAbsolute, join } from 'node:path';
9
9
  import { completionMarker, isDurableCompletionDetail, isLoweredCompletion } from './authored-completion.js';
10
10
  import { AuthoredFlowExecutionError, AuthoredHumanParked, } from './authored-flow-error.js';
11
11
  import { HUMAN_WAIT_ID } from './authored-human.js';
@@ -22,12 +22,57 @@ export function installAuthoredNodeSource(source) {
22
22
  }
23
23
  const hash = (value) => createHash('sha256').update(value).digest('hex');
24
24
  const refusal = () => new AuthoredFlowExecutionError('unsupported_promise_lifecycle', 'authored execution requires the embedded Node runner and Node >=22.14 on PATH (or an absolute FLOWS_AUTHORED_NODE); no workflow body was executed');
25
+ /**
26
+ * One authored run asks for the Node authority before root admission and
27
+ * again before spawning the body. Each probe spawns Node and hashes its whole
28
+ * executable (~100 MB), which a cold sandbox pays on the startup path twice.
29
+ * Reuse the previous answer only while the same candidate is selected (the
30
+ * override or the first `node` on PATH, by path and by realpath, so a
31
+ * retargeted symlink re-probes) and the executable it resolved is unchanged.
32
+ * The spawned child still hashes the executable it actually runs and the
33
+ * parent compares that report with this authority, so a binary replaced
34
+ * after the probe is refused, never trusted.
35
+ */
36
+ let probedAuthority;
37
+ function executableFingerprint(path) {
38
+ const stat = statSync(path, { bigint: true });
39
+ return [stat.dev, stat.ino, stat.size, stat.mtimeNs, stat.ctimeNs].join(':');
40
+ }
41
+ /** The candidate `spawnSync(override ?? 'node')` would run, by path and realpath. */
42
+ function selectedCandidate(override) {
43
+ const directories = (process.env['PATH'] ?? '').split(delimiter);
44
+ // A relative PATH entry resolves against the working directory; do not
45
+ // guess which candidate the spawn would pick, just probe every time.
46
+ if (override === undefined && directories.some(directory => !isAbsolute(directory)))
47
+ return undefined;
48
+ const candidates = override !== undefined ? [override] : directories.map(directory => join(directory, 'node'));
49
+ for (const candidate of candidates) {
50
+ try {
51
+ if (!statSync(candidate).isFile())
52
+ continue;
53
+ accessSync(candidate, fsConstants.X_OK);
54
+ return `${candidate}\0${realpathSync(candidate)}`;
55
+ }
56
+ catch { /* Not this candidate. */ }
57
+ }
58
+ return undefined;
59
+ }
25
60
  function nodeAuthority() {
26
61
  if (embeddedSource === undefined)
27
62
  throw refusal();
28
63
  const override = process.env['FLOWS_AUTHORED_NODE'];
29
64
  if (override !== undefined && !isAbsolute(override))
30
65
  throw refusal();
66
+ const selection = selectedCandidate(override);
67
+ if (selection !== undefined && probedAuthority?.selection === selection) {
68
+ try {
69
+ if (executableFingerprint(probedAuthority.authority.path) === probedAuthority.fingerprint) {
70
+ return probedAuthority.authority;
71
+ }
72
+ }
73
+ catch { /* A vanished executable is re-probed, and refused there. */ }
74
+ }
75
+ probedAuthority = undefined;
31
76
  const probe = spawnSync(override ?? 'node', ['--input-type=module', '--eval', `
32
77
  import {createHook} from 'node:async_hooks';
33
78
  import {stripTypeScriptTypes,register} from 'node:module';
@@ -48,12 +93,23 @@ process.stdout.write(JSON.stringify({path:process.execPath,version:process.versi
48
93
  if (major < 22 || (major === 22 && minor < 14))
49
94
  throw refusal();
50
95
  const path = realpathSync(value.path);
51
- return { path, version: value.version, executableSha256: hash(readFileSync(path)) };
96
+ const fingerprint = executableFingerprint(path);
97
+ const authority = { path, version: value.version, executableSha256: hash(readFileSync(path)) };
98
+ // Reuse only an answer for a candidate that could be identified, and not
99
+ // one whose file was rewritten while it was being hashed.
100
+ if (selection !== undefined && executableFingerprint(path) === fingerprint) {
101
+ probedAuthority = { selection, fingerprint, authority };
102
+ }
103
+ return authority;
52
104
  }
53
105
  catch {
54
106
  throw refusal();
55
107
  }
56
108
  }
109
+ /** Test seam: resolve the authored Node authority exactly as the runner does. */
110
+ export function authoredNodeAuthorityForTest() {
111
+ return nodeAuthority();
112
+ }
57
113
  /** Called before root admission/resume; declarative commands never reach it. */
58
114
  export function assertAuthoredRuntimeAvailable() {
59
115
  if (process.versions['bun'] === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"authored-node-runner.js","sourceRoot":"","sources":["../src/authored-node-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authored-node-runner.js","sourceRoot":"","sources":["../src/authored-node-runner.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,10 @@ export declare function postCloudSignal(runId: string, name: string, payload: un
5
5
  duplicate: boolean;
6
6
  }>;
7
7
  /**
8
- * Wait on Cloud's held GET. A normally held 204 re-arms immediately. A fast
9
- * 204 backs off so a proxy or broken server cannot turn this into a hot loop.
8
+ * Wait on Cloud's held GET. The wire behaviour (validation, held GET, fast-204
9
+ * backoff, error classification) is `@relayflows/surface/signals`' single
10
+ * implementation, so the SDK and hosted flows cannot drift. The SDK keeps its
11
+ * own credential resolution and throws `CloudFlowError`.
10
12
  */
11
13
  export declare function waitForCloudSignal(runId: string, name: string, options?: CloudConnectionOptions): Promise<unknown>;
12
14
  //# sourceMappingURL=cloud-signal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-signal.d.ts","sourceRoot":"","sources":["../src/cloud-signal.ts"],"names":[],"mappings":"AACA,OAAO,EACW,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAevE,6EAA6E;AAC7E,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,sBAA2B,GAClF,OAAO,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBjD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAChE,OAAO,CAAC,OAAO,CAAC,CAgElB"}
1
+ {"version":3,"file":"cloud-signal.d.ts","sourceRoot":"","sources":["../src/cloud-signal.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAUvD,6EAA6E;AAC7E,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,sBAA2B,GAClF,OAAO,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBjD;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAChE,OAAO,CAAC,OAAO,CAAC,CAmBlB"}
@@ -1,15 +1,10 @@
1
1
  import { setTimeout as delay } from 'node:timers/promises';
2
- import { CloudFlowError, cloudFetch, cloudRunId, isCloudRecord, resolveCloudConnection, transportError } from './cloud-http.js';
3
- const SIGNAL_NAME = /^[A-Za-z0-9_-]{1,80}$/u;
2
+ import { HOSTED_SIGNAL_READ_TOKEN_ENV, holdSignalWait, signalPath as sharedSignalPath } from '@relayflows/surface/signals';
3
+ import { CloudFlowError, cloudFetch, isCloudRecord, resolveCloudConnection } from './cloud-http.js';
4
4
  const MAX_BYTES = 4 * 1024;
5
- const HELD_GET_MS = 25_000;
6
- const HOSTED_SIGNAL_READ_TOKEN_ENV = 'RELAYFLOW_V2_SIGNAL_READ_TOKEN';
5
+ const cloudSignalError = (code, message, status) => new CloudFlowError(code, message, status);
7
6
  function signalPath(runId, name) {
8
- cloudRunId(runId);
9
- if (!SIGNAL_NAME.test(name)) {
10
- throw new CloudFlowError('invalid_input', 'Signal name must contain only letters, digits, underscores, or hyphens (1–80 characters).');
11
- }
12
- return `/api/v1/workflows/runs/${runId}/signals/${name}`;
7
+ return sharedSignalPath(runId, name, cloudSignalError);
13
8
  }
14
9
  /** Store a run-scoped completion. Retrying the same JSON payload is safe. */
15
10
  export async function postCloudSignal(runId, name, payload, options = {}) {
@@ -37,81 +32,31 @@ export async function postCloudSignal(runId, name, payload, options = {}) {
37
32
  return { accepted: true, duplicate: result.duplicate };
38
33
  }
39
34
  /**
40
- * Wait on Cloud's held GET. A normally held 204 re-arms immediately. A fast
41
- * 204 backs off so a proxy or broken server cannot turn this into a hot loop.
35
+ * Wait on Cloud's held GET. The wire behaviour (validation, held GET, fast-204
36
+ * backoff, error classification) is `@relayflows/surface/signals`' single
37
+ * implementation, so the SDK and hosted flows cannot drift. The SDK keeps its
38
+ * own credential resolution and throws `CloudFlowError`.
42
39
  */
43
40
  export async function waitForCloudSignal(runId, name, options = {}) {
44
- const path = signalPath(runId, name);
45
- const requestTimeout = options.requestTimeoutMs ?? 30_000;
46
- if (!Number.isSafeInteger(requestTimeout) || requestTimeout <= HELD_GET_MS) {
47
- throw new CloudFlowError('invalid_input', 'Signal requestTimeoutMs must exceed 25 seconds.');
48
- }
49
- let fast204BackoffMs = 250;
50
- for (;;) {
51
- options.signal?.throwIfAborted();
52
- let connection;
53
- try {
54
- connection = await resolveCloudConnection(options);
55
- }
56
- catch (error) {
57
- // The hosted run's read-only credential is only a fallback for waits.
58
- // Explicit Cloud credentials and stored logins retain precedence, and
59
- // postCloudSignal never sees this token.
60
- const hostedToken = process.env[HOSTED_SIGNAL_READ_TOKEN_ENV];
61
- if (!(error instanceof CloudFlowError) || error.code !== 'configuration'
62
- || error.reason !== 'auth_missing' || options.token !== undefined
63
- || process.env['FLOWS_CLOUD_TOKEN'] !== undefined || hostedToken === undefined)
64
- throw error;
65
- connection = await resolveCloudConnection({ ...options, token: hostedToken });
66
- }
67
- const { baseUrl, token } = connection;
68
- const deadline = AbortSignal.timeout(requestTimeout);
69
- const requestStartedAt = performance.now();
70
- let response;
71
- try {
72
- response = await fetch(`${baseUrl}${path}?waitMs=${HELD_GET_MS}`, {
73
- method: 'GET',
74
- headers: { authorization: `Bearer ${token}` },
75
- signal: options.signal ? AbortSignal.any([options.signal, deadline]) : deadline,
76
- redirect: 'error',
77
- });
78
- }
79
- catch (error) {
80
- options.signal?.throwIfAborted();
81
- throw transportError(deadline.aborted ? deadline.reason : error);
82
- }
83
- if (response.status === 204) {
84
- if (performance.now() - requestStartedAt < 1_000) {
85
- try {
86
- await delay(fast204BackoffMs, undefined, { signal: options.signal });
87
- }
88
- catch (error) {
89
- options.signal?.throwIfAborted();
90
- throw error;
91
- }
92
- fast204BackoffMs = Math.min(fast204BackoffMs * 2, 5_000);
41
+ return holdSignalWait(runId, name, { signal: options.signal, requestTimeoutMs: options.requestTimeoutMs }, {
42
+ error: cloudSignalError,
43
+ sleep: (ms, signal) => delay(ms, undefined, { signal }),
44
+ connection: async () => {
45
+ try {
46
+ return await resolveCloudConnection(options);
93
47
  }
94
- else {
95
- fast204BackoffMs = 250;
48
+ catch (error) {
49
+ // The hosted run's read-only credential is only a fallback for waits.
50
+ // Explicit Cloud credentials and stored logins retain precedence, and
51
+ // postCloudSignal never sees this token.
52
+ const hostedToken = process.env[HOSTED_SIGNAL_READ_TOKEN_ENV];
53
+ if (!(error instanceof CloudFlowError) || error.code !== 'configuration'
54
+ || error.reason !== 'auth_missing' || options.token !== undefined
55
+ || process.env['FLOWS_CLOUD_TOKEN'] !== undefined || hostedToken === undefined)
56
+ throw error;
57
+ return resolveCloudConnection({ ...options, token: hostedToken });
96
58
  }
97
- continue;
98
- }
99
- if (!response.ok)
100
- throw new CloudFlowError('http_error', `Cloud signal wait failed with HTTP ${response.status}.`, response.status);
101
- let body;
102
- try {
103
- body = await response.json();
104
- }
105
- catch (error) {
106
- options.signal?.throwIfAborted();
107
- if (!(error instanceof SyntaxError))
108
- throw transportError(deadline.aborted ? deadline.reason : error);
109
- throw new CloudFlowError('invalid_response', 'Cloud returned an invalid signal.');
110
- }
111
- if (!isCloudRecord(body) || !Object.hasOwn(body, 'payload') || typeof body.acceptedAt !== 'number') {
112
- throw new CloudFlowError('invalid_response', 'Cloud returned an invalid signal.');
113
- }
114
- return body.payload;
115
- }
59
+ },
60
+ });
116
61
  }
117
62
  //# sourceMappingURL=cloud-signal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-signal.js","sourceRoot":"","sources":["../src/cloud-signal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-signal.js","sourceRoot":"","sources":["../src/cloud-signal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relayflows/sdk",
3
- "version": "2.0.53",
3
+ "version": "2.0.55",
4
4
  "description": "TypeScript-first authoring SDK for Relayflows. Compiles specs; speaks the journal protocol.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -50,7 +50,7 @@
50
50
  "@modelcontextprotocol/sdk": "^1.30.0",
51
51
  "@relayfile/adapter-core": "0.6.2",
52
52
  "@relayfile/relay-helpers": "0.4.12",
53
- "@relayflows/surface": "2.0.53",
53
+ "@relayflows/surface": "2.0.55",
54
54
  "@types/js-yaml": "^4.0.9",
55
55
  "acorn": "^8.18.0",
56
56
  "ai-hist": "0.4.1",
@@ -3,9 +3,9 @@ import { FLOW_READ_BUDGET_MS } from './journal-read-policy.js';
3
3
  import { spawn, spawnSync } from 'node:child_process';
4
4
  import { createHash, createHmac, randomBytes, timingSafeEqual } from 'node:crypto';
5
5
  import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
6
- import { readFileSync, realpathSync } from 'node:fs';
6
+ import { accessSync, constants as fsConstants, readFileSync, realpathSync, statSync } from 'node:fs';
7
7
  import { tmpdir } from 'node:os';
8
- import { isAbsolute, join } from 'node:path';
8
+ import { delimiter, isAbsolute, join } from 'node:path';
9
9
  import type { Readable } from 'node:stream';
10
10
  import type { AuthoredRootMetadata } from './authored-root.js';
11
11
  import type { AuthoredExecutionRuntime, AuthoredFlowExecutionResult, ExecuteAuthoredFlowOptions } from './authored-flow-executor.js';
@@ -35,10 +35,51 @@ const refusal = (): AuthoredFlowExecutionError => new AuthoredFlowExecutionError
35
35
  'authored execution requires the embedded Node runner and Node >=22.14 on PATH (or an absolute FLOWS_AUTHORED_NODE); no workflow body was executed',
36
36
  );
37
37
  interface NodeAuthority { path: string; version: string; executableSha256: string }
38
+ /**
39
+ * One authored run asks for the Node authority before root admission and
40
+ * again before spawning the body. Each probe spawns Node and hashes its whole
41
+ * executable (~100 MB), which a cold sandbox pays on the startup path twice.
42
+ * Reuse the previous answer only while the same candidate is selected (the
43
+ * override or the first `node` on PATH, by path and by realpath, so a
44
+ * retargeted symlink re-probes) and the executable it resolved is unchanged.
45
+ * The spawned child still hashes the executable it actually runs and the
46
+ * parent compares that report with this authority, so a binary replaced
47
+ * after the probe is refused, never trusted.
48
+ */
49
+ let probedAuthority: { selection: string; fingerprint: string; authority: NodeAuthority } | undefined;
50
+ function executableFingerprint(path: string): string {
51
+ const stat = statSync(path, { bigint: true });
52
+ return [stat.dev, stat.ino, stat.size, stat.mtimeNs, stat.ctimeNs].join(':');
53
+ }
54
+ /** The candidate `spawnSync(override ?? 'node')` would run, by path and realpath. */
55
+ function selectedCandidate(override: string | undefined): string | undefined {
56
+ const directories = (process.env['PATH'] ?? '').split(delimiter);
57
+ // A relative PATH entry resolves against the working directory; do not
58
+ // guess which candidate the spawn would pick, just probe every time.
59
+ if (override === undefined && directories.some(directory => !isAbsolute(directory))) return undefined;
60
+ const candidates = override !== undefined ? [override] : directories.map(directory => join(directory, 'node'));
61
+ for (const candidate of candidates) {
62
+ try {
63
+ if (!statSync(candidate).isFile()) continue;
64
+ accessSync(candidate, fsConstants.X_OK);
65
+ return `${candidate}\0${realpathSync(candidate)}`;
66
+ } catch { /* Not this candidate. */ }
67
+ }
68
+ return undefined;
69
+ }
38
70
  function nodeAuthority(): NodeAuthority {
39
71
  if (embeddedSource === undefined) throw refusal();
40
72
  const override = process.env['FLOWS_AUTHORED_NODE'];
41
73
  if (override !== undefined && !isAbsolute(override)) throw refusal();
74
+ const selection = selectedCandidate(override);
75
+ if (selection !== undefined && probedAuthority?.selection === selection) {
76
+ try {
77
+ if (executableFingerprint(probedAuthority.authority.path) === probedAuthority.fingerprint) {
78
+ return probedAuthority.authority;
79
+ }
80
+ } catch { /* A vanished executable is re-probed, and refused there. */ }
81
+ }
82
+ probedAuthority = undefined;
42
83
  const probe = spawnSync(override ?? 'node', ['--input-type=module', '--eval', `
43
84
  import {createHook} from 'node:async_hooks';
44
85
  import {stripTypeScriptTypes,register} from 'node:module';
@@ -56,10 +97,22 @@ process.stdout.write(JSON.stringify({path:process.execPath,version:process.versi
56
97
  const [major, minor] = value.version.split('.').map(Number);
57
98
  if (major! < 22 || (major === 22 && minor! < 14)) throw refusal();
58
99
  const path = realpathSync(value.path);
59
- return { path, version: value.version, executableSha256: hash(readFileSync(path)) };
100
+ const fingerprint = executableFingerprint(path);
101
+ const authority = { path, version: value.version, executableSha256: hash(readFileSync(path)) };
102
+ // Reuse only an answer for a candidate that could be identified, and not
103
+ // one whose file was rewritten while it was being hashed.
104
+ if (selection !== undefined && executableFingerprint(path) === fingerprint) {
105
+ probedAuthority = { selection, fingerprint, authority };
106
+ }
107
+ return authority;
60
108
  } catch { throw refusal(); }
61
109
  }
62
110
 
111
+ /** Test seam: resolve the authored Node authority exactly as the runner does. */
112
+ export function authoredNodeAuthorityForTest(): Readonly<NodeAuthority> {
113
+ return nodeAuthority();
114
+ }
115
+
63
116
  /** Called before root admission/resume; declarative commands never reach it. */
64
117
  export function assertAuthoredRuntimeAvailable(): void {
65
118
  if (process.versions['bun'] === undefined) assertAuthoredPromiseHooks();
@@ -1,18 +1,15 @@
1
1
  import { setTimeout as delay } from 'node:timers/promises';
2
- import { CloudFlowError, cloudFetch, cloudRunId, isCloudRecord, resolveCloudConnection,
3
- transportError, type CloudConnectionOptions } from './cloud-http.js';
2
+ import { HOSTED_SIGNAL_READ_TOKEN_ENV, holdSignalWait, signalPath as sharedSignalPath,
3
+ type SignalErrorFactory } from '@relayflows/surface/signals';
4
+ import { CloudFlowError, cloudFetch, isCloudRecord, resolveCloudConnection,
5
+ type CloudConnectionOptions } from './cloud-http.js';
4
6
 
5
- const SIGNAL_NAME = /^[A-Za-z0-9_-]{1,80}$/u;
6
7
  const MAX_BYTES = 4 * 1024;
7
- const HELD_GET_MS = 25_000;
8
- const HOSTED_SIGNAL_READ_TOKEN_ENV = 'RELAYFLOW_V2_SIGNAL_READ_TOKEN';
8
+
9
+ const cloudSignalError: SignalErrorFactory = (code, message, status) => new CloudFlowError(code, message, status);
9
10
 
10
11
  function signalPath(runId: string, name: string): string {
11
- cloudRunId(runId);
12
- if (!SIGNAL_NAME.test(name)) {
13
- throw new CloudFlowError('invalid_input', 'Signal name must contain only letters, digits, underscores, or hyphens (1–80 characters).');
14
- }
15
- return `/api/v1/workflows/runs/${runId}/signals/${name}`;
12
+ return sharedSignalPath(runId, name, cloudSignalError);
16
13
  }
17
14
 
18
15
  /** Store a run-scoped completion. Retrying the same JSON payload is safe. */
@@ -38,73 +35,30 @@ export async function postCloudSignal(
38
35
  }
39
36
 
40
37
  /**
41
- * Wait on Cloud's held GET. A normally held 204 re-arms immediately. A fast
42
- * 204 backs off so a proxy or broken server cannot turn this into a hot loop.
38
+ * Wait on Cloud's held GET. The wire behaviour (validation, held GET, fast-204
39
+ * backoff, error classification) is `@relayflows/surface/signals`' single
40
+ * implementation, so the SDK and hosted flows cannot drift. The SDK keeps its
41
+ * own credential resolution and throws `CloudFlowError`.
43
42
  */
44
43
  export async function waitForCloudSignal(
45
44
  runId: string, name: string, options: CloudConnectionOptions = {},
46
45
  ): Promise<unknown> {
47
- const path = signalPath(runId, name);
48
- const requestTimeout = options.requestTimeoutMs ?? 30_000;
49
- if (!Number.isSafeInteger(requestTimeout) || requestTimeout <= HELD_GET_MS) {
50
- throw new CloudFlowError('invalid_input', 'Signal requestTimeoutMs must exceed 25 seconds.');
51
- }
52
- let fast204BackoffMs = 250;
53
- for (;;) {
54
- options.signal?.throwIfAborted();
55
- let connection: { baseUrl: string; token: string };
56
- try {
57
- connection = await resolveCloudConnection(options);
58
- } catch (error) {
59
- // The hosted run's read-only credential is only a fallback for waits.
60
- // Explicit Cloud credentials and stored logins retain precedence, and
61
- // postCloudSignal never sees this token.
62
- const hostedToken = process.env[HOSTED_SIGNAL_READ_TOKEN_ENV];
63
- if (!(error instanceof CloudFlowError) || error.code !== 'configuration'
64
- || error.reason !== 'auth_missing' || options.token !== undefined
65
- || process.env['FLOWS_CLOUD_TOKEN'] !== undefined || hostedToken === undefined) throw error;
66
- connection = await resolveCloudConnection({ ...options, token: hostedToken });
67
- }
68
- const { baseUrl, token } = connection;
69
- const deadline = AbortSignal.timeout(requestTimeout);
70
- const requestStartedAt = performance.now();
71
- let response: Response;
72
- try {
73
- response = await fetch(`${baseUrl}${path}?waitMs=${HELD_GET_MS}`, {
74
- method: 'GET',
75
- headers: { authorization: `Bearer ${token}` },
76
- signal: options.signal ? AbortSignal.any([options.signal, deadline]) : deadline,
77
- redirect: 'error',
78
- });
79
- } catch (error) {
80
- options.signal?.throwIfAborted();
81
- throw transportError(deadline.aborted ? deadline.reason : error);
82
- }
83
- if (response.status === 204) {
84
- if (performance.now() - requestStartedAt < 1_000) {
85
- try {
86
- await delay(fast204BackoffMs, undefined, { signal: options.signal });
87
- } catch (error) {
88
- options.signal?.throwIfAborted();
89
- throw error;
90
- }
91
- fast204BackoffMs = Math.min(fast204BackoffMs * 2, 5_000);
92
- } else {
93
- fast204BackoffMs = 250;
46
+ return holdSignalWait(runId, name, { signal: options.signal, requestTimeoutMs: options.requestTimeoutMs }, {
47
+ error: cloudSignalError,
48
+ sleep: (ms, signal) => delay(ms, undefined, { signal }),
49
+ connection: async () => {
50
+ try {
51
+ return await resolveCloudConnection(options);
52
+ } catch (error) {
53
+ // The hosted run's read-only credential is only a fallback for waits.
54
+ // Explicit Cloud credentials and stored logins retain precedence, and
55
+ // postCloudSignal never sees this token.
56
+ const hostedToken = process.env[HOSTED_SIGNAL_READ_TOKEN_ENV];
57
+ if (!(error instanceof CloudFlowError) || error.code !== 'configuration'
58
+ || error.reason !== 'auth_missing' || options.token !== undefined
59
+ || process.env['FLOWS_CLOUD_TOKEN'] !== undefined || hostedToken === undefined) throw error;
60
+ return resolveCloudConnection({ ...options, token: hostedToken });
94
61
  }
95
- continue;
96
- }
97
- if (!response.ok) throw new CloudFlowError('http_error', `Cloud signal wait failed with HTTP ${response.status}.`, response.status);
98
- let body: unknown;
99
- try { body = await response.json(); }
100
- catch (error) {
101
- options.signal?.throwIfAborted();
102
- if (!(error instanceof SyntaxError)) throw transportError(deadline.aborted ? deadline.reason : error);
103
- throw new CloudFlowError('invalid_response', 'Cloud returned an invalid signal.');
104
- }
105
- if (!isCloudRecord(body) || !Object.hasOwn(body, 'payload') || typeof body.acceptedAt !== 'number') {
106
- throw new CloudFlowError('invalid_response', 'Cloud returned an invalid signal.');
107
- }
108
- return body.payload;
109
- }
62
+ },
63
+ });
110
64
  }