agent-relay 12.2.4 → 12.2.6
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/cli/commands/integration-recipient.d.ts.map +1 -1
- package/dist/cli/commands/integration-recipient.js +12 -1
- package/dist/cli/commands/integration-recipient.js.map +1 -1
- package/dist/cli/commands/product-surfaces.d.ts +50 -0
- package/dist/cli/commands/product-surfaces.d.ts.map +1 -1
- package/dist/cli/commands/product-surfaces.js +209 -1
- package/dist/cli/commands/product-surfaces.js.map +1 -1
- package/dist/cli/lib/broker-lifecycle.d.ts +6 -0
- package/dist/cli/lib/broker-lifecycle.d.ts.map +1 -1
- package/dist/cli/lib/broker-lifecycle.js +6 -1
- package/dist/cli/lib/broker-lifecycle.js.map +1 -1
- package/dist/cli/lib/product-surface-store.d.ts +126 -0
- package/dist/cli/lib/product-surface-store.d.ts.map +1 -0
- package/dist/cli/lib/product-surface-store.js +404 -0
- package/dist/cli/lib/product-surface-store.js.map +1 -0
- package/dist/index.cjs +4 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-recipient.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/integration-recipient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuC,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElG,MAAM,WAAW,eAAe;IAC9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAuBD,sGAAsG;AACtG,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"integration-recipient.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/integration-recipient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuC,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElG,MAAM,WAAW,eAAe;IAC9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAuBD,sGAAsG;AACtG,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CA2FvG;AAED,2FAA2F;AAC3F,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
|
|
@@ -64,7 +64,18 @@ export async function launchSubscriptionRecipient(input) {
|
|
|
64
64
|
}
|
|
65
65
|
const ready = await owned.waitForReady(90_000);
|
|
66
66
|
if (ready.reason !== 'ready' || !ready.pid || ready.pid <= 0) {
|
|
67
|
-
|
|
67
|
+
// A PTY-close `agent_exit` can arrive before the reaper's code-bearing
|
|
68
|
+
// `agent_exited`; while the worker is still registered, hold a short
|
|
69
|
+
// bounded grace so the reported exit keeps the authoritative status.
|
|
70
|
+
let exit = ready.exit;
|
|
71
|
+
if (ready.reason === 'exited' && exit?.code === undefined) {
|
|
72
|
+
const deadline = Date.now() + 3_000;
|
|
73
|
+
while (exit?.code === undefined && Date.now() < deadline) {
|
|
74
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
75
|
+
exit = owned.exit ?? exit;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
throw new Error(`Recipient ${input.name} failed startup: ${ready.reason}${exit ? ` (${JSON.stringify(exit)})` : ''}`);
|
|
68
79
|
}
|
|
69
80
|
process.kill(ready.pid, 0);
|
|
70
81
|
await verifyRecipientIsolation(input);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-recipient.js","sourceRoot":"","sources":["../../../src/cli/commands/integration-recipient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"integration-recipient.js","sourceRoot":"","sources":["../../../src/cli/commands/integration-recipient.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { Command } from 'commander';
|
|
10
10
|
import { type RelayCliSurface } from '@agent-relay/cli-surface';
|
|
11
|
+
import { type SurfacePackage } from '../lib/product-surface-store.js';
|
|
11
12
|
import { type RelayCliSurfaceDependencies } from '../lib/relay-cli-surface.js';
|
|
12
13
|
/** How one product group is mounted. */
|
|
13
14
|
export interface ProductSurfaceDefinition {
|
|
@@ -46,9 +47,58 @@ export interface ProductSurfaceDependencies extends RelayCliSurfaceDependencies
|
|
|
46
47
|
}
|
|
47
48
|
/** The product groups `agent-relay` mounts. */
|
|
48
49
|
export declare const PRODUCT_SURFACES: readonly ProductSurfaceDefinition[];
|
|
50
|
+
/**
|
|
51
|
+
* The npm spec behind each mounted surface, mirroring `packages/cli/package.json`.
|
|
52
|
+
*
|
|
53
|
+
* Only the compiled standalone binary reads this: it has no `node_modules` and
|
|
54
|
+
* no manifest on disk, so when a specifier does not resolve it installs the
|
|
55
|
+
* package itself, and the version it installs has to be the one the npm
|
|
56
|
+
* distribution would have had. `product-surfaces.test.ts` asserts these ranges
|
|
57
|
+
* still match the manifest, because a pin bumped in one place and not the other
|
|
58
|
+
* is invisible until someone runs the binary.
|
|
59
|
+
*/
|
|
60
|
+
export declare const SURFACE_PACKAGES: Readonly<Record<string, SurfacePackage>>;
|
|
61
|
+
/** Seams for the standalone fallback; the defaults are the real store. */
|
|
62
|
+
export interface SurfaceImportDependencies {
|
|
63
|
+
/** Plain `import()`. The only path the npm distribution ever takes. */
|
|
64
|
+
importSpecifier: (specifier: string) => Promise<unknown>;
|
|
65
|
+
/** Whether this process is the compiled binary, which carries no packages. */
|
|
66
|
+
isStandalone: () => boolean;
|
|
67
|
+
/** Install the package on demand; returns the directory holding it. */
|
|
68
|
+
provision: (pkg: SurfacePackage) => Promise<string>;
|
|
69
|
+
/** Import the specifier out of a provisioned directory. */
|
|
70
|
+
importFromStore: (installRoot: string, specifier: string) => Promise<unknown>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Injectable dependencies for surface import, with optional context for provisioned options.
|
|
74
|
+
*/
|
|
75
|
+
export interface SurfaceImportDependenciesWithContext extends SurfaceImportDependencies {
|
|
76
|
+
/** Optional product name for which to create options (e.g., 'sessions'). */
|
|
77
|
+
optionsFor?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Import a mounted surface, provisioning it first if this binary has to.
|
|
81
|
+
*
|
|
82
|
+
* On npm — every install, every CI runner, every test in this repo — the first
|
|
83
|
+
* `import()` resolves and this returns exactly what `import(specifier)` returns.
|
|
84
|
+
* Nothing below the `catch` runs, and no directory is created.
|
|
85
|
+
*
|
|
86
|
+
* The compiled standalone binary is the one caller that falls through: it is a
|
|
87
|
+
* single file with no `node_modules`, so a mounted SDK has to be installed
|
|
88
|
+
* before it can be imported (#1795). Only a specifier this CLI pins is eligible
|
|
89
|
+
* — a caller naming something else (the end-to-end test mounts product builds
|
|
90
|
+
* by absolute path) gets its original error back.
|
|
91
|
+
*
|
|
92
|
+
* @param specifier - Package subpath exporting `createRelayCliSurface`.
|
|
93
|
+
* @param overrides - Optional dependencies and context (including optionsFor for provisioned surfaces).
|
|
94
|
+
*/
|
|
95
|
+
export declare function importProductSurface(specifier: string, overrides?: Partial<SurfaceImportDependenciesWithContext>): Promise<unknown>;
|
|
49
96
|
/**
|
|
50
97
|
* Import a product's surface and prepare it for mounting.
|
|
51
98
|
*
|
|
99
|
+
* For the compiled standalone binary, passes context (optionsFor) to ensure
|
|
100
|
+
* provisioned surfaces are created with the same options as the npm distribution.
|
|
101
|
+
*
|
|
52
102
|
* @param definition - The group being loaded.
|
|
53
103
|
* @param deps - Import hook and output sink.
|
|
54
104
|
* @returns The surface, extended when the definition asks for it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-surfaces.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/product-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMlG,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAErG,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;CAChF;AAOD,oFAAoF;AACpF,MAAM,WAAW,0BAA2B,SAAQ,2BAA2B;IAC7E,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;AAqBD,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,EAAE,SAAS,wBAAwB,EAqB/D,CAAC;
|
|
1
|
+
{"version":3,"file":"product-surfaces.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/product-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMlG,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAErG,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;CAChF;AAOD,oFAAoF;AACpF,MAAM,WAAW,0BAA2B,SAAQ,2BAA2B;IAC7E,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;AAqBD,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,EAAE,SAAS,wBAAwB,EAqB/D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAWrE,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,8EAA8E;IAC9E,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,uEAAuE;IACvE,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,2DAA2D;IAC3D,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,oCAAqC,SAAQ,yBAAyB;IACrF,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,OAAO,CAAC,oCAAoC,CAAM,GAC5D,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAoLD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,wBAAwB,EACpC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,OAAO,CAAC,0BAA0B,CAAM,EACnD,WAAW,GAAE,SAAS,wBAAwB,EAAqB,GAClE,IAAI,CAmBN"}
|
|
@@ -10,6 +10,7 @@ import { composeSurfaces } from '@agent-relay/cli-surface';
|
|
|
10
10
|
import { describeError } from '../lib/describe-error.js';
|
|
11
11
|
import { redactCredentialValues } from '@agent-relay/cloud/redact';
|
|
12
12
|
import { defaultExit } from '../lib/exit.js';
|
|
13
|
+
import { loadSurfaceFromStore, isCompiledStandalone, provisionSurfacePackage, PROVISION_ERROR_CODE, SurfaceProvisionError, } from '../lib/product-surface-store.js';
|
|
13
14
|
import { mountRelayCliSurface } from '../lib/relay-cli-surface.js';
|
|
14
15
|
/**
|
|
15
16
|
* The real process streams, with credentials masked on stderr.
|
|
@@ -51,6 +52,121 @@ export const PRODUCT_SURFACES = [
|
|
|
51
52
|
extend: composeSessionReplay,
|
|
52
53
|
},
|
|
53
54
|
];
|
|
55
|
+
/**
|
|
56
|
+
* The npm spec behind each mounted surface, mirroring `packages/cli/package.json`.
|
|
57
|
+
*
|
|
58
|
+
* Only the compiled standalone binary reads this: it has no `node_modules` and
|
|
59
|
+
* no manifest on disk, so when a specifier does not resolve it installs the
|
|
60
|
+
* package itself, and the version it installs has to be the one the npm
|
|
61
|
+
* distribution would have had. `product-surfaces.test.ts` asserts these ranges
|
|
62
|
+
* still match the manifest, because a pin bumped in one place and not the other
|
|
63
|
+
* is invisible until someone runs the binary.
|
|
64
|
+
*/
|
|
65
|
+
export const SURFACE_PACKAGES = {
|
|
66
|
+
'@relayfile/sdk/relay-cli': { name: '@relayfile/sdk', range: '^0.10.64' },
|
|
67
|
+
'@relayflows/sdk/relay-cli': { name: '@relayflows/sdk', range: '^2.0.19' },
|
|
68
|
+
'ai-hist/relay-cli': {
|
|
69
|
+
name: 'ai-hist',
|
|
70
|
+
range: '^0.18.1',
|
|
71
|
+
// The cloud client is an optional dependency of this CLI, not of ai-hist,
|
|
72
|
+
// so provisioning ai-hist alone leaves the child unable to build it and
|
|
73
|
+
// `sessions cloud …` vanishes in the standalone binary only.
|
|
74
|
+
companions: [{ name: '@relayhistory/cloud-client', range: '^0.1.1' }],
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
function withImportDefaults(overrides) {
|
|
78
|
+
return {
|
|
79
|
+
importSpecifier: overrides.importSpecifier ?? ((specifier) => import(specifier)),
|
|
80
|
+
isStandalone: overrides.isStandalone ?? (() => isCompiledStandalone()),
|
|
81
|
+
provision: overrides.provision ?? ((pkg) => provisionSurfacePackage(pkg)),
|
|
82
|
+
optionsFor: overrides.optionsFor,
|
|
83
|
+
// Wrapped as a module so the caller's shape does not change: the store
|
|
84
|
+
// returns a ready surface, because `run` crosses a process boundary and
|
|
85
|
+
// cannot be reconstructed from an imported module.
|
|
86
|
+
importFromStore: overrides.importFromStore ??
|
|
87
|
+
(async (installRoot, specifier) => {
|
|
88
|
+
// Derived from the specifier, not taken from overrides: nothing in the
|
|
89
|
+
// command registration sets `optionsFor`, so relying on it meant the
|
|
90
|
+
// runner was always told "no options" and `sessions cloud …` was
|
|
91
|
+
// missing from the standalone binary while present on npm — the two
|
|
92
|
+
// distributions declaring different command trees. The override stays
|
|
93
|
+
// as a test seam.
|
|
94
|
+
const optionsFor = overrides.optionsFor ?? (specifier === 'ai-hist/relay-cli' ? 'sessions' : undefined);
|
|
95
|
+
let relayhistoryConfig;
|
|
96
|
+
if (optionsFor === 'sessions') {
|
|
97
|
+
try {
|
|
98
|
+
// Get the Relayhistory configuration that would be used in the normal flow
|
|
99
|
+
const { readStoredRelayhistoryAuth, resolveRelayhistoryConfig } = await import('./session.js');
|
|
100
|
+
const config = resolveRelayhistoryConfig(readStoredRelayhistoryAuth());
|
|
101
|
+
if (config.baseUrl && config.token) {
|
|
102
|
+
relayhistoryConfig = config;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// If helpers can't be imported, continue without config
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
createRelayCliSurface: await loadSurfaceFromStore(installRoot, specifier, optionsFor, relayhistoryConfig).then((surface) => () => surface),
|
|
111
|
+
};
|
|
112
|
+
}),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Whether the import failed because nothing answered to the specifier.
|
|
117
|
+
*
|
|
118
|
+
* Node reports this as a code; Bun's compiled runtime words it as a resolution
|
|
119
|
+
* failure and does not always carry one. Anything else — a package that exists
|
|
120
|
+
* and threw while evaluating, say — must propagate untouched, since installing
|
|
121
|
+
* a second copy of it would not help and would hide the real error.
|
|
122
|
+
*/
|
|
123
|
+
function isUnresolvedSpecifier(error) {
|
|
124
|
+
const code = error?.code;
|
|
125
|
+
if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND')
|
|
126
|
+
return true;
|
|
127
|
+
const message = error?.message ?? '';
|
|
128
|
+
return /Cannot find (module|package)|Could not resolve/i.test(message);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Import a mounted surface, provisioning it first if this binary has to.
|
|
132
|
+
*
|
|
133
|
+
* On npm — every install, every CI runner, every test in this repo — the first
|
|
134
|
+
* `import()` resolves and this returns exactly what `import(specifier)` returns.
|
|
135
|
+
* Nothing below the `catch` runs, and no directory is created.
|
|
136
|
+
*
|
|
137
|
+
* The compiled standalone binary is the one caller that falls through: it is a
|
|
138
|
+
* single file with no `node_modules`, so a mounted SDK has to be installed
|
|
139
|
+
* before it can be imported (#1795). Only a specifier this CLI pins is eligible
|
|
140
|
+
* — a caller naming something else (the end-to-end test mounts product builds
|
|
141
|
+
* by absolute path) gets its original error back.
|
|
142
|
+
*
|
|
143
|
+
* @param specifier - Package subpath exporting `createRelayCliSurface`.
|
|
144
|
+
* @param overrides - Optional dependencies and context (including optionsFor for provisioned surfaces).
|
|
145
|
+
*/
|
|
146
|
+
export async function importProductSurface(specifier, overrides = {}) {
|
|
147
|
+
const deps = withImportDefaults(overrides);
|
|
148
|
+
try {
|
|
149
|
+
return await deps.importSpecifier(specifier);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
const pkg = SURFACE_PACKAGES[specifier];
|
|
153
|
+
if (!pkg || !isUnresolvedSpecifier(error) || !deps.isStandalone())
|
|
154
|
+
throw error;
|
|
155
|
+
const installRoot = await deps.provision(pkg);
|
|
156
|
+
try {
|
|
157
|
+
return await deps.importFromStore(installRoot, specifier);
|
|
158
|
+
}
|
|
159
|
+
catch (storeError) {
|
|
160
|
+
// The package is on disk now, so "not installed" — what the generic
|
|
161
|
+
// handler would say about an ERR_MODULE_NOT_FOUND — is simply false, and
|
|
162
|
+
// sends the operator to reinstall something already there.
|
|
163
|
+
if (!isUnresolvedSpecifier(storeError))
|
|
164
|
+
throw storeError;
|
|
165
|
+
throw new SurfaceProvisionError(`${pkg.name} is installed at ${installRoot}, but this build cannot import it from there.\n` +
|
|
166
|
+
`${describeError(storeError)}`, { cause: storeError });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
54
170
|
/**
|
|
55
171
|
* Specifier for the optional cloud client.
|
|
56
172
|
*
|
|
@@ -92,6 +208,61 @@ async function composeSessionReplay(base) {
|
|
|
92
208
|
parts: [base, createSessionReplaySurface(base.version)],
|
|
93
209
|
});
|
|
94
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* The package Node says it could not find, when it says so.
|
|
213
|
+
*
|
|
214
|
+
* ERR_MODULE_NOT_FOUND covers multiple situations and the code alone does
|
|
215
|
+
* not separate them:
|
|
216
|
+
*
|
|
217
|
+
* Cannot find package '@relayfile/sdk' imported from … -> genuinely absent
|
|
218
|
+
* Cannot find module '/abs/path/…/dist/index.js' -> present, incomplete
|
|
219
|
+
* Cannot find module 'some-dep' -> missing dependency
|
|
220
|
+
*
|
|
221
|
+
* The second and third happen while an install is still writing or a dependency
|
|
222
|
+
* is missing, and misreporting them as "not installed" sends the operator
|
|
223
|
+
* to reinstall the wrong thing.
|
|
224
|
+
*/
|
|
225
|
+
function missingPackageFrom(error) {
|
|
226
|
+
const message = error?.message ?? '';
|
|
227
|
+
return /Cannot find package '([^']+)'/.exec(message)?.[1];
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Whether Node named a file rather than a package.
|
|
231
|
+
*
|
|
232
|
+
* Detected positively on POSIX (/path/to/file), Windows (C:\path\to\file),
|
|
233
|
+
* and UNC (\\server\share\path) paths. An error shape this does not recognise
|
|
234
|
+
* should fall through to the plain "not installed" advice, which is right far
|
|
235
|
+
* more often than "incomplete" would be.
|
|
236
|
+
*/
|
|
237
|
+
function missingFileFrom(error) {
|
|
238
|
+
const message = error?.message ?? '';
|
|
239
|
+
// Match POSIX paths (/), Windows paths (C:\), and UNC paths (\\)
|
|
240
|
+
return /Cannot find module '((?:\/|[A-Za-z]:\\|\\\\)[^']*)'/.exec(message)?.[1];
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Whether the module import failed because a transitive dependency is missing.
|
|
244
|
+
*
|
|
245
|
+
* Bare module names in CommonJS errors indicate missing dependencies, distinct
|
|
246
|
+
* from package exports (which are qualified names). A CommonJS module that was
|
|
247
|
+
* present but incomplete would name a file instead.
|
|
248
|
+
*/
|
|
249
|
+
function missingDependencyFrom(error) {
|
|
250
|
+
const message = error?.message ?? '';
|
|
251
|
+
const named = /Cannot find module '([^']+)'/.exec(message)?.[1];
|
|
252
|
+
if (named === undefined)
|
|
253
|
+
return undefined;
|
|
254
|
+
// Reject anything path-shaped rather than trusting the first character. A
|
|
255
|
+
// leading-character test reads `C:\\Users\\...` as a bare name starting with
|
|
256
|
+
// "C", so a Windows incomplete install was reported as a missing dependency
|
|
257
|
+
// called `C:\\Users\\...`. Excluding paths here also makes the order of the
|
|
258
|
+
// checks below irrelevant, which is one less thing to get wrong.
|
|
259
|
+
if (/^(?:\/|[A-Za-z]:[\\/]|\\\\)/.test(named))
|
|
260
|
+
return undefined;
|
|
261
|
+
// A specifier may contain forward slashes (`@scope/pkg`), never a backslash.
|
|
262
|
+
if (named.includes('\\'))
|
|
263
|
+
return undefined;
|
|
264
|
+
return named;
|
|
265
|
+
}
|
|
95
266
|
/**
|
|
96
267
|
* Explain an import failure in terms the operator can act on.
|
|
97
268
|
*
|
|
@@ -105,7 +276,41 @@ function describeLoadFailure(definition, error) {
|
|
|
105
276
|
.split('/')
|
|
106
277
|
.slice(0, definition.specifier.startsWith('@') ? 2 : 1)
|
|
107
278
|
.join('/');
|
|
279
|
+
// Provisioning already composed the operator-facing text — which package,
|
|
280
|
+
// which directory, and what to do about it. Re-describing it here would only
|
|
281
|
+
// bury that behind a second framing.
|
|
282
|
+
if (code === PROVISION_ERROR_CODE) {
|
|
283
|
+
return `\`agent-relay ${definition.as}\` could not be prepared.\n${describeError(error)}`;
|
|
284
|
+
}
|
|
108
285
|
if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') {
|
|
286
|
+
// Check what Node said is missing: a package name, a file path, or a bare module
|
|
287
|
+
const missingPackage = missingPackageFrom(error);
|
|
288
|
+
const missingFile = missingFileFrom(error);
|
|
289
|
+
const missingDependency = missingDependencyFrom(error);
|
|
290
|
+
// A package import that failed: a dependency of the product, not the product itself.
|
|
291
|
+
// Reinstalling the product alone would not fix it, and naming the wrong package
|
|
292
|
+
// wastes the operator.
|
|
293
|
+
if (missingPackage !== undefined && missingPackage !== packageName) {
|
|
294
|
+
return (`\`agent-relay ${definition.as}\` could not load ${packageName}: ` +
|
|
295
|
+
`it depends on ${missingPackage}, which is not installed.\n` +
|
|
296
|
+
`Reinstall agent-relay to repair the dependency tree.`);
|
|
297
|
+
}
|
|
298
|
+
// A CommonJS bare module name: a transitive dependency is missing. Likely caused
|
|
299
|
+
// by an interrupted install or version mismatch in the dependency tree.
|
|
300
|
+
if (missingDependency !== undefined) {
|
|
301
|
+
return (`\`agent-relay ${definition.as}\` could not load ${packageName}: ` +
|
|
302
|
+
`it depends on ${missingDependency}, which is not installed.\n` +
|
|
303
|
+
`Reinstall agent-relay to repair the dependency tree.`);
|
|
304
|
+
}
|
|
305
|
+
// Node named a file path rather than a package name, so the package directory
|
|
306
|
+
// exists but its contents do not. An interrupted or concurrent install looks like
|
|
307
|
+
// this, and it resolves itself once the install finishes.
|
|
308
|
+
if (missingFile !== undefined) {
|
|
309
|
+
return (`\`agent-relay ${definition.as}\` could not load ${packageName}: ` +
|
|
310
|
+
`it is installed but incomplete.\n` +
|
|
311
|
+
`If an install is running, wait for it to finish and retry; ` +
|
|
312
|
+
`otherwise reinstall agent-relay.\n${describeError(error)}`);
|
|
313
|
+
}
|
|
109
314
|
return (`\`agent-relay ${definition.as}\` needs ${packageName}, which is not installed.\n` +
|
|
110
315
|
`Reinstall agent-relay, or install ${packageName} alongside it.`);
|
|
111
316
|
}
|
|
@@ -118,6 +323,9 @@ function describeLoadFailure(definition, error) {
|
|
|
118
323
|
/**
|
|
119
324
|
* Import a product's surface and prepare it for mounting.
|
|
120
325
|
*
|
|
326
|
+
* For the compiled standalone binary, passes context (optionsFor) to ensure
|
|
327
|
+
* provisioned surfaces are created with the same options as the npm distribution.
|
|
328
|
+
*
|
|
121
329
|
* @param definition - The group being loaded.
|
|
122
330
|
* @param deps - Import hook and output sink.
|
|
123
331
|
* @returns The surface, extended when the definition asks for it.
|
|
@@ -149,7 +357,7 @@ export async function loadProductSurface(definition, deps) {
|
|
|
149
357
|
*/
|
|
150
358
|
export function registerProductSurfaceCommands(program, overrides = {}, definitions = PRODUCT_SURFACES) {
|
|
151
359
|
const deps = {
|
|
152
|
-
importModule: overrides.importModule ??
|
|
360
|
+
importModule: overrides.importModule ?? importProductSurface,
|
|
153
361
|
io: overrides.io ?? processIo(),
|
|
154
362
|
exit: overrides.exit ?? defaultExit,
|
|
155
363
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-surfaces.js","sourceRoot":"","sources":["../../../src/cli/commands/product-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAyC,MAAM,0BAA0B,CAAC;AAElG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAoC,MAAM,6BAA6B,CAAC;AA4CrG;;;;;;;;GAQG;AACH,SAAS,SAAS;IAChB,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9C,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAwC;IACnE;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,iEAAiE;QAC9E,SAAS,EAAE,0BAA0B;KACtC;IACD;QACE,EAAE,EAAE,OAAO;QACX,WAAW,EAAE,6DAA6D;QAC1E,SAAS,EAAE,2BAA2B;KACvC;IACD;QACE,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,kEAAkE;QAC/E,SAAS,EAAE,mBAAmB;QAC9B,0EAA0E;QAC1E,+CAA+C;QAC/C,aAAa,EAAE,CAAC,SAAS,CAAC;QAC1B,aAAa,EAAE,4BAA4B;QAC3C,MAAM,EAAE,oBAAoB;KAC7B;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"product-surfaces.js","sourceRoot":"","sources":["../../../src/cli/commands/product-surfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,12 @@ type DownOptions = {
|
|
|
36
36
|
stateDir?: string;
|
|
37
37
|
};
|
|
38
38
|
export declare const WORKSPACE_BINDING_SOURCE_ENV = "AGENT_RELAY_WORKSPACE_SOURCE";
|
|
39
|
+
/**
|
|
40
|
+
* The broker's initial Relaycast handshake is bounded at 44s. Keep detached
|
|
41
|
+
* readiness above that budget with explicit setup/observation margin so a
|
|
42
|
+
* valid broker is not killed while its startup handshake is still in flight.
|
|
43
|
+
*/
|
|
44
|
+
export declare const DETACHED_START_READY_TIMEOUT_MS = 60000;
|
|
39
45
|
export type WorkspaceBindingSource = WorkspaceSelection['source'] | 'created' | 'multi-workspace';
|
|
40
46
|
export interface BrokerConnection {
|
|
41
47
|
operation_mode?: 'normal' | 'local_only';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/broker-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,mBAAmB,EAAoB,MAAM,oBAAoB,CAAC;AAIhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAkB,MAAM,qBAAqB,CAAC;AAmBzG,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAEpC,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AASF,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"broker-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/broker-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,mBAAmB,EAAoB,MAAM,oBAAoB,CAAC;AAIhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAkB,MAAM,qBAAqB,CAAC;AAmBzG,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAEpC,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AASF,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAOtD,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAElG,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAYD,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAmDF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE7E;AAqED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAajF;AAwBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuB3D;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU7D;AAED,4BAA4B;AAC5B,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAY/E;AA0GD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,MAAM,CAGjF;AAOD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACvC,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO;AACjB;;;;;;;GAOG;AACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,GAChD,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAuDhD;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,EAC1C,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAO,GAC7E,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA8BpC;AAylBD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAEhF;AA8GD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,gBAAgB,EACtB,MAAM,SAAiC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAkB9C;AAiED;;;;;;;;;;;GAWG;AACH,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,mBAAmB,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAErF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AA0FD,wBAAsB,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAof5F;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyIhG;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAyEf"}
|
|
@@ -25,7 +25,12 @@ const CONNECTION_FILENAME = 'connection.json';
|
|
|
25
25
|
const BACKGROUND_START_ERROR_FILENAME = 'background-start-error.log';
|
|
26
26
|
export const WORKSPACE_BINDING_SOURCE_ENV = 'AGENT_RELAY_WORKSPACE_SOURCE';
|
|
27
27
|
const STATUS_POLL_INTERVAL_MS = 500;
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* The broker's initial Relaycast handshake is bounded at 44s. Keep detached
|
|
30
|
+
* readiness above that budget with explicit setup/observation margin so a
|
|
31
|
+
* valid broker is not killed while its startup handshake is still in flight.
|
|
32
|
+
*/
|
|
33
|
+
export const DETACHED_START_READY_TIMEOUT_MS = 60_000;
|
|
29
34
|
const NODE_DELIVERY_READY_TIMEOUT_MS = 10_000;
|
|
30
35
|
// Bounded wait for the broker's background-minted node token to surface on
|
|
31
36
|
// `/api/session` when serving a capability definition without an explicit
|