@stigmer/runner 3.4.1 → 3.5.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.
- package/dist/.build-fingerprint +1 -1
- package/dist/activities/attach-session.d.ts +34 -0
- package/dist/activities/attach-session.js +95 -0
- package/dist/activities/attach-session.js.map +1 -0
- package/dist/activities/discover-mcp-server.d.ts +9 -0
- package/dist/activities/discover-mcp-server.js +6 -1
- package/dist/activities/discover-mcp-server.js.map +1 -1
- package/dist/activities/execute-cursor/connect-backfill.d.ts +2 -1
- package/dist/activities/execute-cursor/connect-backfill.js +2 -2
- package/dist/activities/execute-cursor/connect-backfill.js.map +1 -1
- package/dist/activities/execute-cursor/fetch-interceptor.js +31 -0
- package/dist/activities/execute-cursor/fetch-interceptor.js.map +1 -1
- package/dist/activities/execute-cursor/index.js +70 -3
- package/dist/activities/execute-cursor/index.js.map +1 -1
- package/dist/activities/execute-cursor/mcp-resolver.d.ts +7 -1
- package/dist/activities/execute-cursor/mcp-resolver.js +15 -2
- package/dist/activities/execute-cursor/mcp-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/sdk-warmup.d.ts +44 -0
- package/dist/activities/execute-cursor/sdk-warmup.js +61 -0
- package/dist/activities/execute-cursor/sdk-warmup.js.map +1 -0
- package/dist/activities/execute-deep-agent/setup.js +48 -5
- package/dist/activities/execute-deep-agent/setup.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +9 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.js +19 -5
- package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -1
- package/dist/client/stigmer-client.d.ts +13 -1
- package/dist/client/stigmer-client.js +40 -5
- package/dist/client/stigmer-client.js.map +1 -1
- package/dist/client/token-claims.d.ts +9 -6
- package/dist/client/token-claims.js +22 -6
- package/dist/client/token-claims.js.map +1 -1
- package/dist/main.d.ts +8 -1
- package/dist/main.js +122 -2
- package/dist/main.js.map +1 -1
- package/dist/middleware/index.d.ts +0 -1
- package/dist/middleware/index.js +0 -1
- package/dist/middleware/index.js.map +1 -1
- package/dist/otel-metrics.d.ts +10 -1
- package/dist/otel-metrics.js +22 -1
- package/dist/otel-metrics.js.map +1 -1
- package/dist/pool-member.d.ts +61 -0
- package/dist/pool-member.js +51 -0
- package/dist/pool-member.js.map +1 -0
- package/dist/runner-manager.d.ts +7 -0
- package/dist/runner-manager.js +39 -1
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.js +15 -1
- package/dist/runner.js.map +1 -1
- package/dist/shared/cold-start-timing.d.ts +89 -0
- package/dist/shared/cold-start-timing.js +166 -0
- package/dist/shared/cold-start-timing.js.map +1 -0
- package/dist/shared/connect-backfill.d.ts +2 -1
- package/dist/shared/connect-backfill.js +4 -2
- package/dist/shared/connect-backfill.js.map +1 -1
- package/dist/shared/mcp-manager.d.ts +5 -15
- package/dist/shared/mcp-manager.js +5 -32
- package/dist/shared/mcp-manager.js.map +1 -1
- package/dist/shared/mcp-resolver.d.ts +15 -5
- package/dist/shared/mcp-resolver.js +23 -6
- package/dist/shared/mcp-resolver.js.map +1 -1
- package/dist/shared/mcp-transport-guard.d.ts +53 -0
- package/dist/shared/mcp-transport-guard.js +70 -0
- package/dist/shared/mcp-transport-guard.js.map +1 -0
- package/dist/shared/tool-kind.js +6 -0
- package/dist/shared/tool-kind.js.map +1 -1
- package/dist/tools/index.d.ts +27 -0
- package/dist/tools/index.js +27 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/think-tool.js.map +1 -0
- package/dist/tools/url-guard.d.ts +64 -0
- package/dist/tools/url-guard.js +211 -0
- package/dist/tools/url-guard.js.map +1 -0
- package/dist/tools/web-fetch-tool.d.ts +53 -0
- package/dist/tools/web-fetch-tool.js +216 -0
- package/dist/tools/web-fetch-tool.js.map +1 -0
- package/package.json +4 -2
- package/src/__tests__/otel-metrics.test.ts +6 -0
- package/src/__tests__/pool-member.test.ts +76 -0
- package/src/activities/__tests__/attach-session.test.ts +133 -0
- package/src/activities/__tests__/discover-mcp-server.test.ts +34 -11
- package/src/activities/attach-session.ts +112 -0
- package/src/activities/discover-mcp-server.ts +19 -1
- package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +77 -0
- package/src/activities/execute-cursor/__tests__/sdk-warmup.test.ts +45 -0
- package/src/activities/execute-cursor/connect-backfill.ts +3 -0
- package/src/activities/execute-cursor/fetch-interceptor.ts +39 -0
- package/src/activities/execute-cursor/index.ts +72 -3
- package/src/activities/execute-cursor/mcp-resolver.ts +21 -2
- package/src/activities/execute-cursor/sdk-warmup.ts +68 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +24 -0
- package/src/activities/execute-deep-agent/setup.ts +48 -7
- package/src/activities/execute-deep-agent/subagent-transformer.ts +27 -2
- package/src/client/__tests__/stigmer-client.test.ts +77 -2
- package/src/client/__tests__/token-claims.test.ts +15 -1
- package/src/client/stigmer-client.ts +51 -6
- package/src/client/token-claims.ts +29 -6
- package/src/main.ts +139 -2
- package/src/middleware/index.ts +0 -1
- package/src/otel-metrics.ts +25 -1
- package/src/pool-member.ts +99 -0
- package/src/runner-manager.ts +52 -0
- package/src/runner.ts +15 -0
- package/src/shared/__tests__/cold-start-timing.test.ts +271 -0
- package/src/shared/__tests__/connect-backfill.test.ts +11 -11
- package/src/shared/__tests__/mcp-manager.test.ts +2 -73
- package/src/shared/__tests__/mcp-resolver.test.ts +108 -0
- package/src/shared/__tests__/mcp-transport-guard.test.ts +71 -0
- package/src/shared/cold-start-timing.ts +197 -0
- package/src/shared/connect-backfill.ts +5 -1
- package/src/shared/mcp-manager.ts +4 -41
- package/src/shared/mcp-resolver.ts +29 -6
- package/src/shared/mcp-transport-guard.ts +81 -0
- package/src/shared/tool-kind.ts +6 -0
- package/src/tools/__tests__/url-guard.test.ts +137 -0
- package/src/tools/__tests__/web-fetch-tool.test.ts +193 -0
- package/src/tools/index.ts +28 -0
- package/src/tools/url-guard.ts +232 -0
- package/src/tools/web-fetch-tool.ts +275 -0
- package/dist/middleware/think-tool.js.map +0 -1
- /package/dist/{middleware → tools}/think-tool.d.ts +0 -0
- /package/dist/{middleware → tools}/think-tool.js +0 -0
- /package/src/{middleware → tools}/__tests__/think-tool.test.ts +0 -0
- /package/src/{middleware → tools}/think-tool.ts +0 -0
|
@@ -10,15 +10,20 @@
|
|
|
10
10
|
*/
|
|
11
11
|
/** The `token_type` claim value of a bootstrap-minted embedded runner token. */
|
|
12
12
|
export const TOKEN_TYPE_EMBEDDED_RUNNER = "embedded_runner";
|
|
13
|
+
/** The `token_type` claim value of a session sandbox token. */
|
|
14
|
+
export const TOKEN_TYPE_SANDBOX = "sandbox";
|
|
15
|
+
/** The `token_type` claim value of a warm-pool member's pre-claim credential. */
|
|
16
|
+
export const TOKEN_TYPE_POOL_SANDBOX = "pool_sandbox";
|
|
13
17
|
const CLAIM_TOKEN_TYPE = "token_type";
|
|
18
|
+
const CLAIM_SESSION_ID = "session_id";
|
|
14
19
|
/**
|
|
15
|
-
* Extract
|
|
20
|
+
* Extract one string claim from a JWT without verifying it.
|
|
16
21
|
*
|
|
17
22
|
* Returns undefined for null/malformed tokens and for tokens without the
|
|
18
|
-
* claim
|
|
19
|
-
*
|
|
23
|
+
* claim — callers branch on the specific value, so "unknown" and "absent"
|
|
24
|
+
* collapse to the same answer.
|
|
20
25
|
*/
|
|
21
|
-
|
|
26
|
+
function claimOf(token, claim) {
|
|
22
27
|
if (!token)
|
|
23
28
|
return undefined;
|
|
24
29
|
const parts = token.split(".");
|
|
@@ -26,13 +31,24 @@ export function tokenTypeOf(token) {
|
|
|
26
31
|
return undefined;
|
|
27
32
|
try {
|
|
28
33
|
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
|
|
29
|
-
const
|
|
30
|
-
return typeof
|
|
34
|
+
const value = payload[claim];
|
|
35
|
+
return typeof value === "string" ? value : undefined;
|
|
31
36
|
}
|
|
32
37
|
catch {
|
|
33
38
|
return undefined;
|
|
34
39
|
}
|
|
35
40
|
}
|
|
41
|
+
/** Extract the `token_type` claim (e.g. a user's Auth0 token has none). */
|
|
42
|
+
export function tokenTypeOf(token) {
|
|
43
|
+
return claimOf(token, CLAIM_TOKEN_TYPE);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract the `session_id` claim of a session-scoped token. A claimed pool
|
|
47
|
+
* member reads its post-claim identity from this on restart.
|
|
48
|
+
*/
|
|
49
|
+
export function sessionIdClaimOf(token) {
|
|
50
|
+
return claimOf(token, CLAIM_SESSION_ID);
|
|
51
|
+
}
|
|
36
52
|
/** Whether the token is a bootstrap-minted `embedded_runner` credential. */
|
|
37
53
|
export function isEmbeddedRunnerToken(token) {
|
|
38
54
|
return tokenTypeOf(token) === TOKEN_TYPE_EMBEDDED_RUNNER;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-claims.js","sourceRoot":"","sources":["../../src/client/token-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAE5D,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"token-claims.js","sourceRoot":"","sources":["../../src/client/token-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,iFAAiF;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAEtD,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC;;;;;;GAMG;AACH,SAAS,OAAO,CACd,KAAgC,EAChC,KAAa;IAEb,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC1B,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,KAAgC;IAC1D,OAAO,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,OAAO,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IACpE,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,0BAA0B,CAAC;AAC3D,CAAC"}
|
package/dist/main.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CLI entry point for the unified runner service.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Three modes of operation:
|
|
6
6
|
*
|
|
7
7
|
* 1. Static mode (default): Reads configuration from environment variables,
|
|
8
8
|
* initializes OTel, creates a single-queue runner. Used by CLI daemon and
|
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
* stdin, manages per-session Workers dynamically. Used by the desktop app
|
|
13
13
|
* via the IPC protocol. Responses go to stdout; logs go to stderr.
|
|
14
14
|
*
|
|
15
|
+
* 3. Pool mode (STIGMER_POOL_MEMBER_ID set): A warm-pool cloud sandbox. Boots
|
|
16
|
+
* the runner manager, then serves whatever its Secret-injected credential
|
|
17
|
+
* says it is: a pool_sandbox token means "blank member" (poll the
|
|
18
|
+
* sandbox:{memberId} control queue for a claim), a session token means
|
|
19
|
+
* "claimed member that restarted" (go straight to that session's queue).
|
|
20
|
+
* See pool-member.ts for the identity model.
|
|
21
|
+
*
|
|
15
22
|
* OTel is initialized here (not in the factory) because it mutates
|
|
16
23
|
* global state that the consumer should control when embedding the
|
|
17
24
|
* runner as a library.
|
package/dist/main.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CLI entry point for the unified runner service.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Three modes of operation:
|
|
6
6
|
*
|
|
7
7
|
* 1. Static mode (default): Reads configuration from environment variables,
|
|
8
8
|
* initializes OTel, creates a single-queue runner. Used by CLI daemon and
|
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
* stdin, manages per-session Workers dynamically. Used by the desktop app
|
|
13
13
|
* via the IPC protocol. Responses go to stdout; logs go to stderr.
|
|
14
14
|
*
|
|
15
|
+
* 3. Pool mode (STIGMER_POOL_MEMBER_ID set): A warm-pool cloud sandbox. Boots
|
|
16
|
+
* the runner manager, then serves whatever its Secret-injected credential
|
|
17
|
+
* says it is: a pool_sandbox token means "blank member" (poll the
|
|
18
|
+
* sandbox:{memberId} control queue for a claim), a session token means
|
|
19
|
+
* "claimed member that restarted" (go straight to that session's queue).
|
|
20
|
+
* See pool-member.ts for the identity model.
|
|
21
|
+
*
|
|
15
22
|
* OTel is initialized here (not in the factory) because it mutates
|
|
16
23
|
* global state that the consumer should control when embedding the
|
|
17
24
|
* runner as a library.
|
|
@@ -21,10 +28,12 @@ import { readFileSync, readdirSync } from "node:fs";
|
|
|
21
28
|
import { join, relative } from "node:path";
|
|
22
29
|
import { createInterface } from "node:readline";
|
|
23
30
|
import { preflightNodeRuntime } from "./preflight.js";
|
|
31
|
+
import { markBoot, emitRunnerBootTiming } from "./shared/cold-start-timing.js";
|
|
24
32
|
import { loadConfig } from "./config.js";
|
|
25
33
|
import { initTracing, initMetrics } from "./otel.js";
|
|
26
34
|
import { createStigmerRunner } from "./runner.js";
|
|
27
35
|
import { createStigmerRunnerManager } from "./runner-manager.js";
|
|
36
|
+
import { decidePoolBoot, registerPoolMemberContext } from "./pool-member.js";
|
|
28
37
|
import { buildReadyMessage } from "./ipc-protocol.js";
|
|
29
38
|
import { handleUnhandledRejection } from "./activities/execute-cursor/rejection-capture.js";
|
|
30
39
|
import { installProcessPipeGuards, reportFatal } from "./pipe-safety.js";
|
|
@@ -154,6 +163,106 @@ async function runManagerMode(config) {
|
|
|
154
163
|
// stdin closed (parent process died) — shut down gracefully
|
|
155
164
|
await manager.shutdown();
|
|
156
165
|
}
|
|
166
|
+
// ─── Pool Mode ───────────────────────────────────────────────────────────────
|
|
167
|
+
async function runPoolMode(config, memberId) {
|
|
168
|
+
const otelShutdown = await initTracing("stigmer-runner");
|
|
169
|
+
const metricsShutdown = await initMetrics("stigmer-runner");
|
|
170
|
+
// The Secret-injected credential is the single source of truth for what this
|
|
171
|
+
// process serves (the control plane rewrites the Secret at claim time, and
|
|
172
|
+
// secretKeyRef env is read only at pod start — so a restart lands here with
|
|
173
|
+
// the post-claim identity). Decide before any expensive boot work.
|
|
174
|
+
const intent = decidePoolBoot(config.stigmerToken);
|
|
175
|
+
if (intent.kind === "invalid") {
|
|
176
|
+
throw new Error(`Pool member ${memberId} cannot boot: ${intent.reason}`);
|
|
177
|
+
}
|
|
178
|
+
const manager = await createStigmerRunnerManager({
|
|
179
|
+
temporalAddress: config.temporalAddress,
|
|
180
|
+
temporalNamespace: config.temporalNamespace,
|
|
181
|
+
stigmerEndpoint: config.stigmerBackendEndpoint,
|
|
182
|
+
stigmerToken: config.stigmerToken ?? undefined,
|
|
183
|
+
cursorApiKey: config.cursorApiKey || undefined,
|
|
184
|
+
workspaceRootDir: config.workspaceRootDir,
|
|
185
|
+
maxConcurrentActivitiesPerSession: config.maxConcurrentActivities,
|
|
186
|
+
proxyEndpoint: config.proxyEndpoint ?? undefined,
|
|
187
|
+
primaryModel: config.primaryModel,
|
|
188
|
+
checkpointerType: config.checkpointerType,
|
|
189
|
+
checkpointerProxyEndpoint: config.checkpointerProxyEndpoint ?? undefined,
|
|
190
|
+
cloudModeEnabled: config.cloudModeEnabled,
|
|
191
|
+
executionMode: config.mode,
|
|
192
|
+
});
|
|
193
|
+
let taskQueue;
|
|
194
|
+
if (intent.kind === "pool-control") {
|
|
195
|
+
registerPoolMemberContext({
|
|
196
|
+
memberId,
|
|
197
|
+
poolToken: config.stigmerToken,
|
|
198
|
+
manager,
|
|
199
|
+
});
|
|
200
|
+
await manager.addPoolControl(memberId);
|
|
201
|
+
taskQueue = `sandbox:${memberId}`;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
// Claimed member after a restart: the pool row is gone and nothing will
|
|
205
|
+
// dispatch on the control queue again, so no pool context, no control
|
|
206
|
+
// worker — just serve the session this pod already belongs to.
|
|
207
|
+
console.warn(`[pool-member] ${memberId} restarted post-claim; ` +
|
|
208
|
+
`resuming session ${intent.sessionId}`);
|
|
209
|
+
await manager.addSession(intent.sessionId);
|
|
210
|
+
taskQueue = `session:${intent.sessionId}`;
|
|
211
|
+
}
|
|
212
|
+
// The boot window the pool exists to hide from users: emitted with pool
|
|
213
|
+
// context so the baseline harness can separate member pre-boots (background,
|
|
214
|
+
// free) from user-facing boots.
|
|
215
|
+
markBoot("worker_polling");
|
|
216
|
+
emitRunnerBootTiming({
|
|
217
|
+
task_queue: taskQueue,
|
|
218
|
+
mode: config.mode,
|
|
219
|
+
pool_member_id: memberId,
|
|
220
|
+
pool_rehydrated: intent.kind === "claimed-session",
|
|
221
|
+
});
|
|
222
|
+
console.warn(`[pool-member] ${memberId} ready (queue=${taskQueue})`);
|
|
223
|
+
// Idle-time warm-up (issue #209): pay the Cursor SDK's per-process SQLite
|
|
224
|
+
// cost now, while the member waits for a claim, instead of inside the
|
|
225
|
+
// claimed session's first resolve_agent. Fire-and-forget by design —
|
|
226
|
+
// pool-control members only (a claimed-session restart serves immediately
|
|
227
|
+
// and must not compete with its own executions).
|
|
228
|
+
if (intent.kind === "pool-control") {
|
|
229
|
+
const { warmCursorSdkStateStores } = await import("./activities/execute-cursor/sdk-warmup.js");
|
|
230
|
+
void warmCursorSdkStateStores().then((result) => {
|
|
231
|
+
if (result.warmed) {
|
|
232
|
+
console.log(`[pool-member] Cursor SDK state stores warmed in ${result.durationMs}ms`);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
console.warn(`[pool-member] Cursor SDK warm-up skipped (non-fatal): ${result.error} ` +
|
|
236
|
+
`(${result.durationMs}ms)`);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
// Park until terminated; the workers poll in the background. Unlike manager
|
|
241
|
+
// mode there is no stdin driver — Kubernetes signals are the only exit.
|
|
242
|
+
await new Promise((resolve) => {
|
|
243
|
+
let shutdownRequested = false;
|
|
244
|
+
const shutdown = (signal) => {
|
|
245
|
+
if (shutdownRequested) {
|
|
246
|
+
console.warn("Shutdown already in progress, ignoring duplicate signal");
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
shutdownRequested = true;
|
|
250
|
+
console.warn(`[pool-member] Received ${signal}, shutting down gracefully...`);
|
|
251
|
+
void manager.shutdown().then(resolve, (err) => {
|
|
252
|
+
console.error("[pool-member] Shutdown failed:", err);
|
|
253
|
+
resolve();
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
process.on("SIGTERM", () => shutdown("SIGTERM"));
|
|
257
|
+
process.on("SIGINT", () => shutdown("SIGINT"));
|
|
258
|
+
});
|
|
259
|
+
if (metricsShutdown) {
|
|
260
|
+
await metricsShutdown();
|
|
261
|
+
}
|
|
262
|
+
if (otelShutdown) {
|
|
263
|
+
await otelShutdown();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
157
266
|
// ─── Static Mode ─────────────────────────────────────────────────────────────
|
|
158
267
|
async function runStaticMode(config) {
|
|
159
268
|
const otelShutdown = await initTracing("stigmer-runner");
|
|
@@ -272,8 +381,12 @@ async function main() {
|
|
|
272
381
|
}
|
|
273
382
|
process.exit(1);
|
|
274
383
|
}
|
|
384
|
+
// Cold-start timeline: this first mark's span covers Node startup +
|
|
385
|
+
// entrypoint module loading + preflight (origin = process start).
|
|
386
|
+
markBoot("node_start_and_preflight");
|
|
275
387
|
checkBuildFreshness();
|
|
276
388
|
const config = loadConfig();
|
|
389
|
+
markBoot("config_loaded");
|
|
277
390
|
// Route ALL Cursor SDK traffic through the Stigmer proxy in proxy mode.
|
|
278
391
|
//
|
|
279
392
|
// CURSOR_BACKEND_URL controls:
|
|
@@ -296,7 +409,10 @@ async function main() {
|
|
|
296
409
|
process.env.CURSOR_BACKEND_URL = proxyBase;
|
|
297
410
|
process.env.CURSOR_API_BASE_URL = proxyBase;
|
|
298
411
|
}
|
|
299
|
-
const
|
|
412
|
+
const poolMemberId = process.env.STIGMER_POOL_MEMBER_ID?.trim() || undefined;
|
|
413
|
+
const runnerMode = process.env.STIGMER_RUNNER_MODE === "manager" ? "manager"
|
|
414
|
+
: poolMemberId ? "pool"
|
|
415
|
+
: "static";
|
|
300
416
|
console.warn(`[runner] mode=${runnerMode}, proxy=${config.proxyEndpoint ?? "none"}, ` +
|
|
301
417
|
`hasToken=${!!config.stigmerToken}, workspace=${config.workspaceRootDir}, ` +
|
|
302
418
|
`taskQueue=${config.taskQueue}`);
|
|
@@ -308,6 +424,10 @@ async function main() {
|
|
|
308
424
|
// to exit naturally so its OTel flush completes.
|
|
309
425
|
process.exit(0);
|
|
310
426
|
}
|
|
427
|
+
if (runnerMode === "pool") {
|
|
428
|
+
await runPoolMode(config, poolMemberId);
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
311
431
|
await runStaticMode(config);
|
|
312
432
|
}
|
|
313
433
|
main().catch((err) => {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,wBAAwB,EAA0B,MAAM,kDAAkD,CAAC;AACpH,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzE,+EAA+E;AAC/E,iFAAiF;AACjF,sEAAsE;AACtE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,wBAAwB,EAAE,CAAC;AAEhE,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,WAAW,CAAC,WAAW,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,SAAS,OAAO,CAAC,GAAgB;IAC/B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,cAAc,CAAC,MAAoC;IAChE,gFAAgF;IAChF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACnC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,IAAI,OAA6B,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,0BAA0B,CAAC;YACzC,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,eAAe,EAAE,MAAM,CAAC,sBAAsB;YAC9C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;YAC9C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;YAC9C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,iCAAiC,EAAE,MAAM,CAAC,uBAAuB;YACjE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,SAAS;YAChD,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,yBAAyB,EAAE,MAAM,CAAC,yBAAyB,IAAI,SAAS;YACxE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,aAAa,EAAE,MAAM,CAAC,IAAI;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,wCAAwC,GAAG,EAAE;YACtD,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE7B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAErD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,IAAI,GAAe,CAAC;QACpB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,iBAAiB,OAAO,EAAE;gBACnC,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACxC,OAAO,CAAC;wBACN,IAAI,EAAE,cAAc;wBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,SAAS,EAAE,WAAW,GAAG,CAAC,SAAS,EAAE;qBACtC,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC9D,MAAM;gBACR,CAAC;gBACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;oBAC5B,MAAM,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACpD,OAAO,CAAC;wBACN,IAAI,EAAE,wBAAwB;wBAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,SAAS,EAAE,UAAU,GAAG,CAAC,WAAW,EAAE;qBACvC,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD,KAAK,yBAAyB,CAAC,CAAC,CAAC;oBAC/B,MAAM,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACvD,OAAO,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC5E,MAAM;gBACR,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;oBAClC,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACzB,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBACtC,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,OAAO,CAAC;wBACN,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,yBAA0B,GAAW,CAAC,IAAI,EAAE;wBACrD,KAAK,EAAE,KAAK;qBACb,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,WAAW,GAAG,CAAC,IAAI,YAAY,GAAG,EAAE;gBAC7C,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,aAAa,CAAC,MAAoC;IAC/D,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,eAAe,EAAE,MAAM,CAAC,sBAAsB;QAC9C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;QAC9C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;QAC9C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,SAAS;QAChD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,yBAAyB,EAAE,MAAM,CAAC,yBAAyB,IAAI,SAAS;QACxE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,aAAa,EAAE,MAAM,CAAC,IAAI;KAC3B,CAAC,CAAC;IAEH,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,iCAAiC,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE9D,IAAI,MAAyC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpD,IAAI,WAAW,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,IAAI;gBACJ,kDAAkD;gBAClD,0BAA0B,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,KAAK;gBAClE,4CAA4C,WAAW,KAAK;gBAC5D,IAAI;gBACJ,iEAAiE,CAClE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,QAAkB,EAAE;IACvD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YAC1E,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,IAAI;IACjB,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,8DAA8D;IAC9D,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAC9C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,cAAc,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mBAAmB,EAAE,CAAC;IAEtB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,wEAAwE;IACxE,EAAE;IACF,+BAA+B;IAC/B,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,iCAAiC;IACjC,EAAE;IACF,wEAAwE;IACxE,8EAA8E;IAC9E,0EAA0E;IAC1E,EAAE;IACF,wEAAwE;IACxE,gEAAgE;IAChE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxF,OAAO,CAAC,IAAI,CACV,iBAAiB,UAAU,WAAW,MAAM,CAAC,aAAa,IAAI,MAAM,IAAI;QACxE,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,gBAAgB,IAAI;QAC3E,aAAa,MAAM,CAAC,SAAS,EAAE,CAChC,CAAC;IAEF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,iDAAiD;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,WAAW,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import type { StigmerMiddleware, MiddlewareStackConfig } from "./types.js";
|
|
16
16
|
import type { GracefulStopMiddleware } from "./graceful-stop.js";
|
|
17
17
|
import { type CostCapMiddleware } from "./cost-cap.js";
|
|
18
|
-
export { createThinkTool } from "./think-tool.js";
|
|
19
18
|
export type { GracefulStopMiddleware } from "./graceful-stop.js";
|
|
20
19
|
export type { CostCapMiddleware } from "./cost-cap.js";
|
|
21
20
|
export type { StigmerMiddleware, MiddlewareStackConfig } from "./types.js";
|
package/dist/middleware/index.js
CHANGED
|
@@ -20,7 +20,6 @@ import { createApprovalGateMiddleware } from "./approval-gate.js";
|
|
|
20
20
|
import { createCostCapMiddleware } from "./cost-cap.js";
|
|
21
21
|
import { createErrorHintsMiddleware } from "./error-hints.js";
|
|
22
22
|
import { createOtelSpansMiddleware } from "./otel-spans.js";
|
|
23
|
-
export { createThinkTool } from "./think-tool.js";
|
|
24
23
|
export function buildMiddlewareStack(config = {}) {
|
|
25
24
|
const stack = [];
|
|
26
25
|
stack.push(createLoopDetectionMiddleware(config.loopDetection));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAA0B,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAA0B,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAY5D,MAAM,UAAU,oBAAoB,CAClC,SAAgC,EAAE;IAElC,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhE,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAEpE,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAElE,MAAM,YAAY,GAAG,4BAA4B,EAAE,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE9B,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAExD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC"}
|
package/dist/otel-metrics.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OTel metric instrument registry for the unified runner.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Instrument names follow the platform-wide `stigmer.*` convention shared
|
|
5
|
+
* with stigmer-service (SigNoz renders the dots as underscores). The
|
|
6
|
+
* cold-start instruments (runner boot / execution setup / pool attach) are
|
|
7
|
+
* sandbox-runner-specific — they mirror the `stigmer_timing` stdout
|
|
8
|
+
* timelines (see `shared/cold-start-timing.ts`) as dashboard aggregates and
|
|
9
|
+
* have no counterpart in other runners.
|
|
10
|
+
*
|
|
5
11
|
* All instruments are created lazily on first access. When no
|
|
6
12
|
* MeterProvider is configured, they are no-ops (OTel global fallback).
|
|
7
13
|
*/
|
|
@@ -16,6 +22,9 @@ export interface RunnerInstruments {
|
|
|
16
22
|
readonly llmCallCount: Counter;
|
|
17
23
|
readonly llmTokensInput: Counter;
|
|
18
24
|
readonly llmTokensOutput: Counter;
|
|
25
|
+
readonly runnerBootDuration: Histogram;
|
|
26
|
+
readonly executionSetupDuration: Histogram;
|
|
27
|
+
readonly poolAttachDuration: Histogram;
|
|
19
28
|
}
|
|
20
29
|
export declare function getInstruments(): Promise<RunnerInstruments>;
|
|
21
30
|
export declare function resetInstruments(): void;
|
package/dist/otel-metrics.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OTel metric instrument registry for the unified runner.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Instrument names follow the platform-wide `stigmer.*` convention shared
|
|
5
|
+
* with stigmer-service (SigNoz renders the dots as underscores). The
|
|
6
|
+
* cold-start instruments (runner boot / execution setup / pool attach) are
|
|
7
|
+
* sandbox-runner-specific — they mirror the `stigmer_timing` stdout
|
|
8
|
+
* timelines (see `shared/cold-start-timing.ts`) as dashboard aggregates and
|
|
9
|
+
* have no counterpart in other runners.
|
|
10
|
+
*
|
|
5
11
|
* All instruments are created lazily on first access. When no
|
|
6
12
|
* MeterProvider is configured, they are no-ops (OTel global fallback).
|
|
7
13
|
*/
|
|
@@ -45,6 +51,21 @@ export async function getInstruments() {
|
|
|
45
51
|
unit: "{token}",
|
|
46
52
|
description: "Total output tokens produced across LLM calls",
|
|
47
53
|
}),
|
|
54
|
+
// Cold-start timelines as dashboard aggregates (warm-agent-surfaces).
|
|
55
|
+
// Attribute cardinality is bounded by the emitter's whitelist in
|
|
56
|
+
// cold-start-timing.ts: `mode` / `harness` only, never per-pod values.
|
|
57
|
+
runnerBootDuration: meter.createHistogram("stigmer.runner.boot.duration", {
|
|
58
|
+
unit: "ms",
|
|
59
|
+
description: "Runner process boot: Node start to Temporal worker polling",
|
|
60
|
+
}),
|
|
61
|
+
executionSetupDuration: meter.createHistogram("stigmer.execution.setup.duration", {
|
|
62
|
+
unit: "ms",
|
|
63
|
+
description: "Per-execution setup: activity start to agent ready to stream",
|
|
64
|
+
}),
|
|
65
|
+
poolAttachDuration: meter.createHistogram("stigmer.sandbox.pool.attach.duration", {
|
|
66
|
+
unit: "ms",
|
|
67
|
+
description: "Warm-pool attach hand-off on the member: token exchange to session worker polling",
|
|
68
|
+
}),
|
|
48
69
|
};
|
|
49
70
|
return instruments;
|
|
50
71
|
}
|
package/dist/otel-metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-metrics.js","sourceRoot":"","sources":["../src/otel-metrics.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"otel-metrics.js","sourceRoot":"","sources":["../src/otel-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAiBpC,IAAI,WAAW,GAA6B,IAAI,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE/C,WAAW,GAAG;QACZ,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;YAC7D,WAAW,EAAE,6CAA6C;SAC3D,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,mBAAmB,CAAC,0BAA0B,EAAE;YACrE,WAAW,EAAE,sCAAsC;SACpD,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,2BAA2B,EAAE;YACnE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,iDAAiD;SAC/D,CAAC;QACF,oBAAoB,EAAE,KAAK,CAAC,eAAe,CAAC,gCAAgC,EAAE;YAC5E,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,6BAA6B,EAAE;YACpE,WAAW,EAAE,yCAAyC;SACvD,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,2BAA2B,EAAE;YAClE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,2CAA2C;SACzD,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,wBAAwB,EAAE;YAC1D,WAAW,EAAE,+BAA+B;SAC7C,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,0BAA0B,EAAE;YAC9D,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,8CAA8C;SAC5D,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,2BAA2B,EAAE;YAChE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,sEAAsE;QACtE,iEAAiE;QACjE,uEAAuE;QACvE,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC,8BAA8B,EAAE;YACxE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,4DAA4D;SAC1E,CAAC;QACF,sBAAsB,EAAE,KAAK,CAAC,eAAe,CAAC,kCAAkC,EAAE;YAChF,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,8DAA8D;SAC5E,CAAC;QACF,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC,sCAAsC,EAAE;YAChF,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,mFAAmF;SACjG,CAAC;KACH,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warm-pool member context.
|
|
3
|
+
*
|
|
4
|
+
* A pool member is a blank, pre-booted cloud sandbox (selected by the
|
|
5
|
+
* STIGMER_POOL_MEMBER_ID env) that polls a control queue
|
|
6
|
+
* `sandbox:{memberId}` until the control plane claims it for a session.
|
|
7
|
+
* The claim arrives as the AttachSession activity, which needs two things
|
|
8
|
+
* only the pool boot path knows: the member's identity/credential and a
|
|
9
|
+
* handle to the runner manager (to attach the session worker).
|
|
10
|
+
*
|
|
11
|
+
* This module is that hand-off point — a module-level registry mirroring
|
|
12
|
+
* `in-flight.ts` and the shutdown-signal registry: the boot path writes,
|
|
13
|
+
* the activity reads via the exported getter with zero handle to the boot
|
|
14
|
+
* closure, and every non-pool process (static, desktop manager, tests)
|
|
15
|
+
* simply reads undefined, which is the activity's inert state.
|
|
16
|
+
*/
|
|
17
|
+
/** The manager surface the attach path needs — kept minimal for testability. */
|
|
18
|
+
export interface PoolAttachTarget {
|
|
19
|
+
addSession(sessionId: string): Promise<void>;
|
|
20
|
+
updateToken(token: string | null): void;
|
|
21
|
+
}
|
|
22
|
+
export interface PoolMemberContext {
|
|
23
|
+
/** The pool member id this process was provisioned as. */
|
|
24
|
+
readonly memberId: string;
|
|
25
|
+
/**
|
|
26
|
+
* The pool_sandbox credential the member booted with. Captured at
|
|
27
|
+
* registration because the manager's tokenRef is overwritten with the
|
|
28
|
+
* session token during attach — the exchange itself must authenticate
|
|
29
|
+
* with the pool credential.
|
|
30
|
+
*/
|
|
31
|
+
readonly poolToken: string;
|
|
32
|
+
/** The live runner manager hosting this member's workers. */
|
|
33
|
+
readonly manager: PoolAttachTarget;
|
|
34
|
+
}
|
|
35
|
+
/** Called once by the pool boot path after the manager is up. */
|
|
36
|
+
export declare function registerPoolMemberContext(context: PoolMemberContext): void;
|
|
37
|
+
/** Undefined everywhere except a booted pool member — the inert switch. */
|
|
38
|
+
export declare function getPoolMemberContext(): PoolMemberContext | undefined;
|
|
39
|
+
/** Test hook: pool membership is process-lifetime state in production. */
|
|
40
|
+
export declare function clearPoolMemberContext(): void;
|
|
41
|
+
/**
|
|
42
|
+
* What a pool-configured process should do, decided from its credential.
|
|
43
|
+
*
|
|
44
|
+
* The Secret-injected STIGMER_TOKEN is the single source of truth for a pool
|
|
45
|
+
* member's identity across restarts: the token is read into the pod's env only
|
|
46
|
+
* at container start, and the control plane rewrites the Secret to the session
|
|
47
|
+
* token when the member is claimed. So a fresh member sees pool_sandbox and
|
|
48
|
+
* polls its control queue, while a claimed member that restarted sees the
|
|
49
|
+
* session token and must go straight to serving that session — its pool row
|
|
50
|
+
* is gone and nothing will ever dispatch on the control queue again.
|
|
51
|
+
*/
|
|
52
|
+
export type PoolBootIntent = {
|
|
53
|
+
kind: "pool-control";
|
|
54
|
+
} | {
|
|
55
|
+
kind: "claimed-session";
|
|
56
|
+
sessionId: string;
|
|
57
|
+
} | {
|
|
58
|
+
kind: "invalid";
|
|
59
|
+
reason: string;
|
|
60
|
+
};
|
|
61
|
+
export declare function decidePoolBoot(token: string | null | undefined): PoolBootIntent;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warm-pool member context.
|
|
3
|
+
*
|
|
4
|
+
* A pool member is a blank, pre-booted cloud sandbox (selected by the
|
|
5
|
+
* STIGMER_POOL_MEMBER_ID env) that polls a control queue
|
|
6
|
+
* `sandbox:{memberId}` until the control plane claims it for a session.
|
|
7
|
+
* The claim arrives as the AttachSession activity, which needs two things
|
|
8
|
+
* only the pool boot path knows: the member's identity/credential and a
|
|
9
|
+
* handle to the runner manager (to attach the session worker).
|
|
10
|
+
*
|
|
11
|
+
* This module is that hand-off point — a module-level registry mirroring
|
|
12
|
+
* `in-flight.ts` and the shutdown-signal registry: the boot path writes,
|
|
13
|
+
* the activity reads via the exported getter with zero handle to the boot
|
|
14
|
+
* closure, and every non-pool process (static, desktop manager, tests)
|
|
15
|
+
* simply reads undefined, which is the activity's inert state.
|
|
16
|
+
*/
|
|
17
|
+
import { TOKEN_TYPE_POOL_SANDBOX, TOKEN_TYPE_SANDBOX, tokenTypeOf, sessionIdClaimOf, } from "./client/token-claims.js";
|
|
18
|
+
let _context;
|
|
19
|
+
/** Called once by the pool boot path after the manager is up. */
|
|
20
|
+
export function registerPoolMemberContext(context) {
|
|
21
|
+
_context = context;
|
|
22
|
+
}
|
|
23
|
+
/** Undefined everywhere except a booted pool member — the inert switch. */
|
|
24
|
+
export function getPoolMemberContext() {
|
|
25
|
+
return _context;
|
|
26
|
+
}
|
|
27
|
+
/** Test hook: pool membership is process-lifetime state in production. */
|
|
28
|
+
export function clearPoolMemberContext() {
|
|
29
|
+
_context = undefined;
|
|
30
|
+
}
|
|
31
|
+
export function decidePoolBoot(token) {
|
|
32
|
+
const tokenType = tokenTypeOf(token);
|
|
33
|
+
if (tokenType === TOKEN_TYPE_POOL_SANDBOX) {
|
|
34
|
+
return { kind: "pool-control" };
|
|
35
|
+
}
|
|
36
|
+
if (tokenType === TOKEN_TYPE_SANDBOX) {
|
|
37
|
+
const sessionId = sessionIdClaimOf(token);
|
|
38
|
+
if (!sessionId) {
|
|
39
|
+
return {
|
|
40
|
+
kind: "invalid",
|
|
41
|
+
reason: "session sandbox token carries no session_id claim",
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return { kind: "claimed-session", sessionId };
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
kind: "invalid",
|
|
48
|
+
reason: `expected a pool_sandbox or sandbox token, got token_type=${tokenType ?? "none"}`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pool-member.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool-member.js","sourceRoot":"","sources":["../src/pool-member.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAsBlC,IAAI,QAAuC,CAAC;AAE5C,iEAAiE;AACjE,MAAM,UAAU,yBAAyB,CAAC,OAA0B;IAClE,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB;IACpC,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC;AAoBD,MAAM,UAAU,cAAc,CAAC,KAAgC;IAC7D,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,uBAAuB,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,mDAAmD;aAC5D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,4DAA4D,SAAS,IAAI,MAAM,EAAE;KAC1F,CAAC;AACJ,CAAC"}
|
package/dist/runner-manager.d.ts
CHANGED
|
@@ -76,6 +76,13 @@ export interface StigmerRunnerManager {
|
|
|
76
76
|
removeWorkflowExecution(executionId: string): Promise<void>;
|
|
77
77
|
/** List currently active workflow execution IDs. */
|
|
78
78
|
activeWorkflowExecutions(): string[];
|
|
79
|
+
/**
|
|
80
|
+
* Start the warm-pool control worker — a Worker polling sandbox:{memberId}
|
|
81
|
+
* for the claim activities (ProbePoolMember, AttachSession). Called once by
|
|
82
|
+
* the pool boot path; the attach flow then adds the claimed session via
|
|
83
|
+
* {@link addSession} like any other host.
|
|
84
|
+
*/
|
|
85
|
+
addPoolControl(memberId: string): Promise<void>;
|
|
79
86
|
/**
|
|
80
87
|
* Push a refreshed *control-plane* auth token (the host's durable credential,
|
|
81
88
|
* e.g. the desktop's Auth0 token) to all activity clients.
|