agent-relay 10.6.0 → 10.6.1

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.
@@ -1,13 +1,23 @@
1
- import type { FleetNodeDefinition, FleetTriggerSyncClient } from '@agent-relay/fleet';
1
+ import type { FleetTriggerSyncClient } from '@agent-relay/fleet';
2
2
  import type { CoreTeamsConfig } from '../commands/core.js';
3
- export declare function nodeCapacityHarnesses(teamsConfig: CoreTeamsConfig | null, definition?: FleetNodeDefinition): string[];
3
+ /**
4
+ * The minimum a node config has to expose to contribute `spawn:<harness>`
5
+ * capacity: its capability names. A full {@link FleetNodeDefinition} satisfies
6
+ * this, and so does the descriptor reported by a node definition served
7
+ * out-of-process (which the CLI never loads in-process, so it has capability
8
+ * names but no handlers).
9
+ */
10
+ export type NodeCapacitySource = {
11
+ capabilities: Readonly<Record<string, unknown>>;
12
+ };
13
+ export declare function nodeCapacityHarnesses(teamsConfig: CoreTeamsConfig | null, definition?: NodeCapacitySource): string[];
4
14
  /**
5
15
  * Resolve the `AGENT_RELAY_NODE_HARNESSES` CSV the broker registers its capacity
6
16
  * from. A pre-set value is the operator's authoritative declaration of the node's
7
17
  * real capacity and is returned verbatim; otherwise it is computed from the project
8
18
  * via {@link nodeCapacityHarnesses}.
9
19
  */
10
- export declare function resolveNodeCapacityHarnesses(preset: string | undefined, teamsConfig: CoreTeamsConfig | null, definition?: FleetNodeDefinition): string;
20
+ export declare function resolveNodeCapacityHarnesses(preset: string | undefined, teamsConfig: CoreTeamsConfig | null, definition?: NodeCapacitySource): string;
11
21
  /**
12
22
  * Adapt the relay SDK triggers API to the fleet {@link FleetTriggerSyncClient}
13
23
  * contract so a served node can reconcile its declared triggers. The fleet
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-sidecar.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/fleet-sidecar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,eAAe,GAAG,IAAI,EACnC,UAAU,CAAC,EAAE,mBAAmB,GAC/B,MAAM,EAAE,CAiBV;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,eAAe,GAAG,IAAI,EACnC,UAAU,CAAC,EAAE,mBAAmB,GAC/B,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,OAAO,GACR,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CAQzB"}
1
+ {"version":3,"file":"fleet-sidecar.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/fleet-sidecar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAAC;AAErF,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,eAAe,GAAG,IAAI,EACnC,UAAU,CAAC,EAAE,kBAAkB,GAC9B,MAAM,EAAE,CAiBV;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,eAAe,GAAG,IAAI,EACnC,UAAU,CAAC,EAAE,kBAAkB,GAC9B,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,OAAO,GACR,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CAQzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-sidecar.js","sourceRoot":"","sources":["../../../src/cli/lib/fleet-sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C;;;;;;GAMG;AACH,uFAAuF;AACvF,iFAAiF;AACjF,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAE7E,MAAM,UAAU,qBAAqB,CACnC,WAAmC,EACnC,UAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,iBAAiB,CAAC,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,GAAG,EAAE,CAAC;YACR,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAA0B,EAC1B,WAAmC,EACnC,UAAgC;IAEhC,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,qBAAqB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,YAAY,EACZ,OAAO,GAIR;IACC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;QACvD,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fleet-sidecar.js","sourceRoot":"","sources":["../../../src/cli/lib/fleet-sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C;;;;;;GAMG;AACH,uFAAuF;AACvF,iFAAiF;AACjF,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAW7E,MAAM,UAAU,qBAAqB,CACnC,WAAmC,EACnC,UAA+B;IAE/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,iBAAiB,CAAC,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,GAAG,EAAE,CAAC;YACR,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAA0B,EAC1B,WAAmC,EACnC,UAA+B;IAE/B,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,qBAAqB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,YAAY,EACZ,OAAO,GAIR;IACC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;QACvD,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC"}
@@ -21,4 +21,6 @@ export declare function discoverPythonNodeConfigPath(cwd: string): string | unde
21
21
  * @param file - Path to a node definition file default-exporting `defineNode(...)`.
22
22
  */
23
23
  export declare function loadNodeDefinition(file: string): Promise<FleetNodeDefinition>;
24
+ /** Whether we are executing inside Bun (notably the `bun build --compile` binary). */
25
+ export declare function isBunRuntime(): boolean;
24
26
  //# sourceMappingURL=node-definition-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-definition-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/node-definition-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAmB9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBzF;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAQnF"}
1
+ {"version":3,"file":"node-definition-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/node-definition-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAmB9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBzF;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAQnF;AAsED,sFAAsF;AACtF,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
@@ -92,7 +92,7 @@ function isFleetNodeDefinitionLike(value) {
92
92
  value.__agentRelayFleetNode === true);
93
93
  }
94
94
  async function importNodeDefinition(absolutePath) {
95
- if (!JITI_NODE_DEFINITION_EXTENSIONS.has(path.extname(absolutePath).toLowerCase())) {
95
+ if (!needsJitiTranspile(absolutePath)) {
96
96
  try {
97
97
  return (await import(pathToFileURL(absolutePath).href));
98
98
  }
@@ -110,13 +110,32 @@ async function importNodeDefinition(absolutePath) {
110
110
  }
111
111
  return importNodeDefinitionWithJiti(absolutePath);
112
112
  }
113
+ /**
114
+ * Whether `absolutePath` has to go through jiti to be transpiled.
115
+ *
116
+ * Only TypeScript sources need a transpiler, and only when the host runtime
117
+ * cannot parse them itself. Bun transpiles TypeScript natively, so under Bun a
118
+ * plain `import()` handles `.ts` — and it *must* be used: jiti resolves its
119
+ * Babel transpiler through a dynamic `require('../dist/babel.cjs')`, which
120
+ * `bun build --compile` cannot see statically and therefore never embeds in the
121
+ * single-file binary. Routing `.ts` through jiti there fails with
122
+ * `Cannot find module '../dist/babel.cjs' from '/$bunfs/root/agent-relay-<target>'`,
123
+ * which broke every TypeScript node config on the shipped binary.
124
+ */
125
+ function needsJitiTranspile(absolutePath) {
126
+ if (!JITI_NODE_DEFINITION_EXTENSIONS.has(path.extname(absolutePath).toLowerCase())) {
127
+ return false;
128
+ }
129
+ return !isBunRuntime();
130
+ }
113
131
  function shouldFallbackToJiti(error) {
114
132
  if (isBunRuntime()) {
115
133
  return false;
116
134
  }
117
135
  return error instanceof SyntaxError && getErrorCode(error) !== 'ERR_MODULE_NOT_FOUND';
118
136
  }
119
- function isBunRuntime() {
137
+ /** Whether we are executing inside Bun (notably the `bun build --compile` binary). */
138
+ export function isBunRuntime() {
120
139
  return typeof process.versions.bun === 'string';
121
140
  }
122
141
  function getErrorCode(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"node-definition-loader.js","sourceRoot":"","sources":["../../../src/cli/lib/node-definition-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-definition-loader.js","sourceRoot":"","sources":["../../../src/cli/lib/node-definition-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import type { CoreDependencies } from '../commands/core.js';
2
+ /**
3
+ * Credentials handed to an out-of-process node provider, mirroring the env
4
+ * contract the Python provider already uses.
5
+ */
6
+ export type NodeProviderCredentials = {
7
+ nodeToken: string;
8
+ baseUrl?: string;
9
+ nodeId: string;
10
+ nodeName: string;
11
+ workspaceKey?: string;
12
+ };
13
+ /** Derive a package root from a resolved entry on both POSIX and Windows. */
14
+ export declare function packageRootFromEntry(entry: string, packageName: string): string;
15
+ /**
16
+ * Bootstrap executed by a child `node` process to serve a JS/TS fleet node
17
+ * definition.
18
+ *
19
+ * Why this exists: a `bun build --compile` binary cannot resolve a bare package
20
+ * specifier out of a user's on-disk `node_modules` when the package's entry
21
+ * point lives in a subdirectory (`dist/`, `lib/`) rather than at the package
22
+ * root — which is every package built from TypeScript, `@agent-relay/factory`
23
+ * and `@agent-relay/fleet` included. So importing a node config inside the
24
+ * shipped binary fails on the config's own `@agent-relay/factory/node` import,
25
+ * and the failure is transitive through the user's whole dependency graph, so
26
+ * no entry-point-only resolution fix can work.
27
+ *
28
+ * Node resolves bare specifiers relative to the *importing file*, so importing
29
+ * the config by absolute path from this bootstrap (wherever the bootstrap
30
+ * itself lives) resolves the config's imports against the config's own
31
+ * `node_modules`, exactly as a plain `node` run would.
32
+ *
33
+ * Kept as source text rather than a shipped file because the compiled binary
34
+ * has no `dist/` on disk to point `node` at; it is materialized to a temp file
35
+ * at spawn time.
36
+ *
37
+ * `@agent-relay/fleet` and `@agent-relay/sdk` are resolved from the *config's*
38
+ * directory — the only copies on disk, since the compiled binary's own are
39
+ * sealed inside it — mirroring how the Python provider uses the user's own SDK.
40
+ * That makes the user's fleet version part of the contract: `serveNode`'s
41
+ * connection shape changed in fleet 10 (`{nodeToken, nodeId}`; fleet 9 took
42
+ * `{url, apiKey}`), so an older fleet is rejected up front rather than left to
43
+ * fail as an endless reconnect loop against a URL it never received.
44
+ */
45
+ export declare const NODE_PROVIDER_CHILD_SOURCE: string;
46
+ /** Marker the child prints its descriptor JSON behind, so config output can't corrupt it. */
47
+ export declare const NODE_DESCRIPTOR_MARKER = "__AGENT_RELAY_NODE_DESCRIPTOR__";
48
+ /**
49
+ * What the CLI learns about a node definition it never loads in-process:
50
+ * enough to advertise capacity and to validate an explicit `--config`.
51
+ */
52
+ export type NodeDefinitionDescriptor = {
53
+ name: string;
54
+ capabilities: string[];
55
+ maxAgents?: number;
56
+ };
57
+ /**
58
+ * Parse the descriptor a `--describe` child printed.
59
+ * @param stdout - Raw child stdout, which may contain the config's own output.
60
+ * @returns The descriptor, or `undefined` when no marker line was produced.
61
+ */
62
+ export declare function parseNodeDescriptor(stdout: string): NodeDefinitionDescriptor | undefined;
63
+ /**
64
+ * Adapt a descriptor to the capacity shape, so a node definition served
65
+ * out-of-process still contributes its `spawn:<harness>` capabilities to the
66
+ * broker's advertised capacity.
67
+ * @param descriptor - Descriptor reported by the `--describe` child.
68
+ */
69
+ export declare function descriptorCapacitySource(descriptor: NodeDefinitionDescriptor): {
70
+ capabilities: Record<string, unknown>;
71
+ };
72
+ /** Whether `configPath` is a JS/TS node definition (as opposed to `agent-relay.py`). */
73
+ export declare function isJsNodeDefinition(configPath: string): boolean;
74
+ /**
75
+ * Write the child bootstrap to a temp file so a child `node` process has
76
+ * something on disk to execute. The compiled binary has no `dist/` on disk, so
77
+ * the source is materialized per run.
78
+ * TypeScript inputs are pre-transpiled by the compiled Bun parent and served
79
+ * through a Node loader hook at their original file URLs. Keeping the original
80
+ * URLs preserves both relative imports and bare-specifier resolution from the
81
+ * config's own `node_modules`.
82
+ * @param configPath - Node definition the bootstrap will load.
83
+ * @param tempRoot - Root in which to create the private bootstrap directory.
84
+ * @returns Materialized bootstrap arguments and an idempotent cleanup handle.
85
+ */
86
+ export declare function materializeNodeProviderChildScript(configPath: string, tempRoot?: string): MaterializedNodeProviderChild;
87
+ export type MaterializedNodeProviderChild = {
88
+ scriptPath: string;
89
+ nodeArgs: string[];
90
+ directory: string;
91
+ cleanup(): void;
92
+ };
93
+ /**
94
+ * Load a node definition's descriptor by running the bootstrap in `--describe`
95
+ * mode under a child `node` process.
96
+ *
97
+ * This is how the compiled binary learns anything at all about a JS/TS node
98
+ * definition: it cannot import one itself (scoped specifiers in the user's
99
+ * `node_modules` do not resolve under `bun build --compile`), so it asks Node.
100
+ *
101
+ * @param configPath - Absolute path to the user's node definition file.
102
+ * @param deps - Core dependencies (exec, env).
103
+ * @returns The descriptor.
104
+ * @throws When the child cannot load or validate the definition.
105
+ */
106
+ export declare function describeNodeDefinitionViaNode(configPath: string, deps: CoreDependencies): Promise<NodeDefinitionDescriptor>;
107
+ /**
108
+ * Serve a JS/TS fleet node definition in a child `node` process.
109
+ *
110
+ * Used only when the CLI is running as a `bun build --compile` binary, where
111
+ * loading the definition in-process is impossible (see
112
+ * {@link NODE_PROVIDER_CHILD_SOURCE}). Under Node the definition is still
113
+ * served in-process, which keeps the existing behavior unchanged.
114
+ *
115
+ * @param configPath - Absolute path to the user's node definition file.
116
+ * @param credentials - Node identity/token the child registers with.
117
+ * @param deps - Core dependencies (spawn, env, logging).
118
+ * @returns A supervised child handle, or `undefined` when it could not be started.
119
+ */
120
+ export declare function startNodeJsNodeProvider(configPath: string, credentials: NodeProviderCredentials, deps: CoreDependencies): Promise<RunningNodeProviderChild | undefined>;
121
+ /** Managed child contract used by the broker lifecycle. */
122
+ export type RunningNodeProviderChild = {
123
+ pid?: number;
124
+ done: Promise<void>;
125
+ stop(): Promise<void>;
126
+ };
127
+ //# sourceMappingURL=node-provider-child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-provider-child.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/node-provider-child.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,qBAAqB,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAG/E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,0BAA0B,QA0LtC,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,oCAAoC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS,CAexF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,wBAAwB,GAAG;IAC9E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,CAEA;AASD,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAc,GACrB,6BAA6B,CA0C/B;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAiOF;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,wBAAwB,CAAC,CA0BnC;AAaD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,uBAAuB,EACpC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAwC/C;AAED,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC"}