@stigmer/runner 3.12.3 → 3.12.5
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/call-http.js +12 -0
- package/dist/activities/call-http.js.map +1 -1
- package/dist/activities/call-llm.d.ts +18 -0
- package/dist/activities/call-llm.js +56 -2
- package/dist/activities/call-llm.js.map +1 -1
- package/dist/activities/execute-cursor/agent-session-cache.d.ts +72 -0
- package/dist/activities/execute-cursor/agent-session-cache.js +186 -0
- package/dist/activities/execute-cursor/agent-session-cache.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-mcp-config.d.ts +45 -0
- package/dist/activities/execute-cursor/cursor-mcp-config.js +76 -0
- package/dist/activities/execute-cursor/cursor-mcp-config.js.map +1 -0
- package/dist/activities/execute-cursor/index.d.ts +10 -1
- package/dist/activities/execute-cursor/index.js +108 -57
- package/dist/activities/execute-cursor/index.js.map +1 -1
- package/dist/activities/execute-cursor/prompt-builder.d.ts +13 -2
- package/dist/activities/execute-cursor/prompt-builder.js +11 -0
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
- package/dist/activities/execute-cursor/service-tier.d.ts +5 -15
- package/dist/activities/execute-cursor/service-tier.js +5 -21
- package/dist/activities/execute-cursor/service-tier.js.map +1 -1
- package/dist/activities/execute-cursor/session-lifecycle.d.ts +1 -1
- package/dist/activities/execute-cursor/skill-resolver.d.ts +2 -21
- package/dist/activities/execute-cursor/skill-resolver.js +5 -108
- package/dist/activities/execute-cursor/skill-resolver.js.map +1 -1
- package/dist/activities/execute-deep-agent/approval-file-change.d.ts +9 -0
- package/dist/activities/execute-deep-agent/approval-file-change.js +2 -1
- package/dist/activities/execute-deep-agent/approval-file-change.js.map +1 -1
- package/dist/activities/execute-deep-agent/cas-capture-backend.d.ts +18 -1
- package/dist/activities/execute-deep-agent/cas-capture-backend.js +20 -3
- package/dist/activities/execute-deep-agent/cas-capture-backend.js.map +1 -1
- package/dist/activities/execute-deep-agent/index.js +57 -5
- package/dist/activities/execute-deep-agent/index.js.map +1 -1
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +9 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js +10 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/setup.js +31 -16
- package/dist/activities/execute-deep-agent/setup.js.map +1 -1
- package/dist/activities/execute-deep-agent/shell-env.d.ts +8 -5
- package/dist/activities/execute-deep-agent/shell-env.js +10 -7
- package/dist/activities/execute-deep-agent/shell-env.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.js +17 -11
- package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +3 -3
- package/dist/config.js +10 -5
- package/dist/config.js.map +1 -1
- package/dist/encryption/config.js +7 -2
- package/dist/encryption/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/main.js +12 -6
- package/dist/main.js.map +1 -1
- package/dist/middleware/path-normalization.d.ts +49 -49
- package/dist/middleware/path-normalization.js +73 -84
- package/dist/middleware/path-normalization.js.map +1 -1
- package/dist/middleware/types.d.ts +3 -3
- package/dist/payload-codecs.js +2 -1
- package/dist/payload-codecs.js.map +1 -1
- package/dist/runner-manager.d.ts +1 -1
- package/dist/runner-manager.js +42 -22
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.js +30 -6
- package/dist/runner.js.map +1 -1
- package/dist/shared/args-preview.d.ts +8 -0
- package/dist/shared/args-preview.js +14 -3
- package/dist/shared/args-preview.js.map +1 -1
- package/dist/shared/artifact-storage.d.ts +11 -1
- package/dist/shared/artifact-storage.js +10 -1
- package/dist/shared/artifact-storage.js.map +1 -1
- package/dist/shared/declared-preferences.d.ts +47 -0
- package/dist/shared/declared-preferences.js +64 -0
- package/dist/shared/declared-preferences.js.map +1 -0
- package/dist/shared/fingerprint-secret.d.ts +3 -2
- package/dist/shared/fingerprint-secret.js +5 -3
- package/dist/shared/fingerprint-secret.js.map +1 -1
- package/dist/shared/llm-backend.js +8 -1
- package/dist/shared/llm-backend.js.map +1 -1
- package/dist/shared/mcp-enabled-tools.d.ts +2 -3
- package/dist/shared/mcp-enabled-tools.js +2 -3
- package/dist/shared/mcp-enabled-tools.js.map +1 -1
- package/dist/shared/mcp-resolver.d.ts +20 -15
- package/dist/shared/mcp-resolver.js +11 -12
- package/dist/shared/mcp-resolver.js.map +1 -1
- package/dist/shared/model-client.d.ts +15 -0
- package/dist/shared/model-client.js +57 -13
- package/dist/shared/model-client.js.map +1 -1
- package/dist/shared/placeholder-resolver.d.ts +9 -2
- package/dist/shared/placeholder-resolver.js +9 -2
- package/dist/shared/placeholder-resolver.js.map +1 -1
- package/dist/shared/plan-mode-permissions.d.ts +26 -46
- package/dist/shared/plan-mode-permissions.js +27 -55
- package/dist/shared/plan-mode-permissions.js.map +1 -1
- package/dist/shared/registry-endpoint.d.ts +5 -0
- package/dist/shared/registry-endpoint.js +7 -1
- package/dist/shared/registry-endpoint.js.map +1 -1
- package/dist/shared/runner-credential-keys.d.ts +26 -1
- package/dist/shared/runner-credential-keys.js +34 -1
- package/dist/shared/runner-credential-keys.js.map +1 -1
- package/dist/shared/runner-credential-store.d.ts +77 -0
- package/dist/shared/runner-credential-store.js +111 -0
- package/dist/shared/runner-credential-store.js.map +1 -0
- package/dist/shared/service-tier.d.ts +55 -0
- package/dist/shared/service-tier.js +67 -0
- package/dist/shared/service-tier.js.map +1 -0
- package/dist/shared/skill-mount.d.ts +89 -0
- package/dist/shared/skill-mount.js +142 -0
- package/dist/shared/skill-mount.js.map +1 -0
- package/dist/shared/skill-writer.d.ts +28 -26
- package/dist/shared/skill-writer.js +79 -102
- package/dist/shared/skill-writer.js.map +1 -1
- package/dist/shared/worker-shutdown.d.ts +67 -0
- package/dist/shared/worker-shutdown.js +79 -0
- package/dist/shared/worker-shutdown.js.map +1 -0
- package/dist/shared/workspace/types.d.ts +3 -2
- package/dist/shared/zip-extract.d.ts +10 -3
- package/dist/shared/zip-extract.js +10 -3
- package/dist/shared/zip-extract.js.map +1 -1
- package/dist/workflow-engine/loader.js +38 -1
- package/dist/workflow-engine/loader.js.map +1 -1
- package/dist/workflow-engine/tasks/call-function.d.ts +14 -0
- package/dist/workflow-engine/tasks/call-function.js +49 -5
- package/dist/workflow-engine/tasks/call-function.js.map +1 -1
- package/dist/workflow-engine/tasks/human-input.js +23 -2
- package/dist/workflow-engine/tasks/human-input.js.map +1 -1
- package/dist/workflow-engine/types.d.ts +6 -0
- package/dist/workflow-engine/types.js.map +1 -1
- package/dist/workflows/engine-core.js +36 -8
- package/dist/workflows/engine-core.js.map +1 -1
- package/package.json +15 -11
- package/src/activities/__tests__/call-http.test.ts +36 -0
- package/src/activities/__tests__/call-llm.test.ts +77 -0
- package/src/activities/call-http.ts +17 -0
- package/src/activities/call-llm.ts +78 -2
- package/src/activities/execute-cursor/__tests__/agent-session-cache.test.ts +220 -0
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +50 -0
- package/src/activities/execute-cursor/__tests__/cursor-mcp-config.test.ts +111 -0
- package/src/activities/execute-cursor/__tests__/service-tier.test.ts +1 -1
- package/src/activities/execute-cursor/__tests__/skill-resolver.test.ts +3 -94
- package/src/activities/execute-cursor/agent-session-cache.ts +229 -0
- package/src/activities/execute-cursor/cursor-mcp-config.ts +107 -0
- package/src/activities/execute-cursor/index.ts +129 -55
- package/src/activities/execute-cursor/prompt-builder.ts +29 -2
- package/src/activities/execute-cursor/service-tier.ts +5 -29
- package/src/activities/execute-cursor/session-lifecycle.ts +1 -1
- package/src/activities/execute-cursor/skill-resolver.ts +10 -137
- package/src/activities/execute-deep-agent/__tests__/approval-file-change.test.ts +15 -0
- package/src/activities/execute-deep-agent/__tests__/cas-capture-backend.test.ts +75 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-reject.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-approve-all.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-history.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/index.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/plan-mode-path-normalization.test.ts +42 -29
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +52 -0
- package/src/activities/execute-deep-agent/__tests__/sequential-gate-resume.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-plan-mode-permissions.test.ts +11 -8
- package/src/activities/execute-deep-agent/approval-file-change.ts +11 -1
- package/src/activities/execute-deep-agent/cas-capture-backend.ts +20 -3
- package/src/activities/execute-deep-agent/index.ts +57 -5
- package/src/activities/execute-deep-agent/prompt-builder.ts +22 -0
- package/src/activities/execute-deep-agent/setup.ts +36 -19
- package/src/activities/execute-deep-agent/shell-env.ts +10 -7
- package/src/activities/execute-deep-agent/subagent-transformer.ts +19 -12
- package/src/activities/execute-deep-agent/subagent-wiring.ts +3 -3
- package/src/config.ts +10 -5
- package/src/encryption/config.ts +8 -2
- package/src/index.ts +1 -1
- package/src/main.ts +16 -6
- package/src/middleware/__tests__/path-normalization.test.ts +32 -32
- package/src/middleware/path-normalization.ts +78 -90
- package/src/middleware/types.ts +3 -3
- package/src/payload-codecs.ts +2 -1
- package/src/runner-manager.ts +55 -22
- package/src/runner.ts +39 -6
- package/src/shared/__tests__/artifact-storage.test.ts +28 -0
- package/src/shared/__tests__/bedrock-seam.test.ts +5 -5
- package/src/shared/__tests__/declared-preferences.test.ts +109 -0
- package/src/shared/__tests__/foundry-seam.test.ts +5 -5
- package/src/shared/__tests__/model-client.test.ts +99 -0
- package/src/shared/__tests__/plan-mode-permissions.test.ts +15 -44
- package/src/shared/__tests__/runner-credential-store.test.ts +155 -0
- package/src/shared/__tests__/skill-mount.test.ts +238 -0
- package/src/shared/__tests__/skill-writer.test.ts +151 -128
- package/src/shared/__tests__/vertex-adapter.test.ts +30 -3
- package/src/shared/__tests__/vertex-seam.test.ts +5 -5
- package/src/shared/__tests__/worker-shutdown.test.ts +101 -0
- package/src/shared/__tests__/zip-extract.test.ts +46 -11
- package/src/shared/args-preview.ts +17 -3
- package/src/shared/artifact-storage.ts +20 -1
- package/src/shared/declared-preferences.ts +84 -0
- package/src/shared/fingerprint-secret.ts +5 -3
- package/src/shared/llm-backend.ts +7 -1
- package/src/shared/mcp-enabled-tools.ts +2 -3
- package/src/shared/mcp-resolver.ts +20 -20
- package/src/shared/model-client.ts +76 -13
- package/src/shared/placeholder-resolver.ts +9 -2
- package/src/shared/plan-mode-permissions.ts +27 -58
- package/src/shared/registry-endpoint.ts +9 -1
- package/src/shared/runner-credential-keys.ts +36 -1
- package/src/shared/runner-credential-store.ts +115 -0
- package/src/shared/service-tier.ts +78 -0
- package/src/shared/skill-mount.ts +179 -0
- package/src/shared/skill-writer.ts +96 -130
- package/src/shared/worker-shutdown.ts +99 -0
- package/src/shared/workspace/types.ts +3 -2
- package/src/shared/zip-extract.ts +14 -7
- package/src/workflow-engine/__tests__/golden-execution.test.ts +20 -1
- package/src/workflow-engine/__tests__/loader.test.ts +51 -0
- package/src/workflow-engine/__tests__/tasks/call-function.test.ts +105 -0
- package/src/workflow-engine/__tests__/tasks/human-input.test.ts +117 -0
- package/src/workflow-engine/loader.ts +46 -1
- package/src/workflow-engine/tasks/call-function.ts +74 -13
- package/src/workflow-engine/tasks/human-input.ts +33 -5
- package/src/workflow-engine/types.ts +6 -0
- package/src/workflows/engine-core.ts +39 -8
- package/dist/activities/execute-cursor/connect-backfill.d.ts +0 -19
- package/dist/activities/execute-cursor/connect-backfill.js +0 -27
- package/dist/activities/execute-cursor/connect-backfill.js.map +0 -1
- package/dist/activities/execute-cursor/mcp-resolver.d.ts +0 -120
- package/dist/activities/execute-cursor/mcp-resolver.js +0 -194
- package/dist/activities/execute-cursor/mcp-resolver.js.map +0 -1
- package/dist/activities/execute-cursor/placeholder-resolver.d.ts +0 -34
- package/dist/activities/execute-cursor/placeholder-resolver.js +0 -82
- package/dist/activities/execute-cursor/placeholder-resolver.js.map +0 -1
- package/src/activities/execute-cursor/__tests__/mcp-resolver.test.ts +0 -125
- package/src/activities/execute-cursor/connect-backfill.ts +0 -52
- package/src/activities/execute-cursor/mcp-resolver.ts +0 -324
- package/src/activities/execute-cursor/placeholder-resolver.ts +0 -109
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,70 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* (issues #429, #528).
|
|
2
|
+
* Canonical virtual-path normalization for the native harness's built-in
|
|
3
|
+
* filesystem tools (issues #429, #528, #754).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* the shape the multi-workspace prompt explicitly mandates, and one models
|
|
11
|
-
* routinely choose in single-workspace sessions — fails with
|
|
12
|
-
* `path must be absolute` instead of just working, burning tool rounds until
|
|
13
|
-
* the model adapts by switching to absolute paths.
|
|
5
|
+
* The native harness speaks ONE path dialect end to end: the VIRTUAL ROOT,
|
|
6
|
+
* where "/" denotes the workspace root (backends are constructed with
|
|
7
|
+
* `virtualMode: true` — see execute-deep-agent/cas-capture-backend.ts). This
|
|
8
|
+
* middleware is the dialect-repair seam at the model boundary. It rewrites,
|
|
9
|
+
* on the deepagents built-in filesystem tools only:
|
|
14
10
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
11
|
+
* - workspace-relative paths ("src/x.py", "./notes.md") to their virtual
|
|
12
|
+
* absolute form ("/src/x.py") — deepagents' permission validation refuses
|
|
13
|
+
* non-absolute shapes on rule-bearing graphs (plan mode), and the prompt
|
|
14
|
+
* explicitly mandates entry-relative paths, so without this seam a
|
|
15
|
+
* prompt-compliant call would die with `path must be absolute`;
|
|
16
|
+
* - REAL-absolute paths under the workspace root ("{root}/src/x.py") to
|
|
17
|
+
* their virtual form ("/src/x.py") — the compatibility mapping for the
|
|
18
|
+
* pre-#754 dialect, where tool results and transcripts surfaced real
|
|
19
|
+
* filesystem paths that a model may still echo back;
|
|
20
|
+
* - interior `..` segments that stay inside the root ("src/../notes.md" →
|
|
21
|
+
* "/notes.md") — the virtual resolver rejects `..` outright, so a safe
|
|
22
|
+
* interior collapse is repaired here rather than burning a tool round.
|
|
22
23
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* (the same first-turn degradation class #429 fixed). An EXPLICIT "/" is
|
|
29
|
-
* deliberately NOT rewritten: the model asked for the OS root, and the
|
|
30
|
-
* honest answer under plan mode's read boundary is the rules' denial —
|
|
31
|
-
* silently substituting workspace contents would be an answer to a
|
|
32
|
-
* different question.
|
|
24
|
+
* Nothing becomes newly reachable: escaping relatives ("../x") and
|
|
25
|
+
* `~`-carrying paths are left raw so the upstream refusal keeps speaking,
|
|
26
|
+
* and every rewritten path is workspace-confined by the virtual resolver
|
|
27
|
+
* regardless. The middleware converts false errors into correct behavior —
|
|
28
|
+
* never a refusal into an allowance.
|
|
33
29
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* injection
|
|
42
|
-
* to the workspace, granting nothing the rules would refuse.)
|
|
30
|
+
* Installed on EVERY native graph (parent and sub-agent, act and plan mode)
|
|
31
|
+
* so all downstream consumers — the approval gate's capturability checks,
|
|
32
|
+
* the CAS observer, otel spans — observe one canonical dialect. The pre-#754
|
|
33
|
+
* version was installed only beside permission rules and also injected the
|
|
34
|
+
* workspace root when `ls`/`glob`/`grep` omitted their path (the tools'
|
|
35
|
+
* schema default "/" was the OS ROOT under the legacy backend); under the
|
|
36
|
+
* virtual root that default already MEANS the workspace root, so the
|
|
37
|
+
* injection is retired.
|
|
43
38
|
*
|
|
44
39
|
* Tool matching is by bare built-in name, the house doctrine (an MCP server
|
|
45
40
|
* is not expected to shadow a built-in name — see shared/tool-kind.ts); the
|
|
46
41
|
* rewrite touches only the tool's path-bearing argument, never glob/grep
|
|
47
42
|
* patterns. Install FIRST in the stack so every downstream middleware
|
|
48
|
-
*
|
|
43
|
+
* observes canonical paths.
|
|
49
44
|
*/
|
|
50
45
|
import type { StigmerMiddleware } from "./types.js";
|
|
51
46
|
export interface PathNormalizationConfig {
|
|
52
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* The REAL workspace root the graph's backend is rooted at — used only for
|
|
49
|
+
* the legacy-dialect compatibility mapping (real-absolute in-root paths →
|
|
50
|
+
* virtual). The virtual rewrite itself needs no root.
|
|
51
|
+
*/
|
|
53
52
|
readonly rootDir: string;
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
56
|
-
* Rewrite `raw` to its
|
|
57
|
-
* value must be left untouched
|
|
58
|
-
* the
|
|
55
|
+
* Rewrite `raw` to its canonical virtual-absolute form, or return undefined
|
|
56
|
+
* when the value must be left untouched. Exported for direct unit testing of
|
|
57
|
+
* the mapping table.
|
|
58
|
+
*
|
|
59
|
+
* Left raw (undefined): empty strings, `~`-carrying paths (refused upstream
|
|
60
|
+
* in every mode), escaping relatives ("../x" — the refusal is the honest
|
|
61
|
+
* answer), real-absolute paths OUTSIDE the root (virtual dialect: they name
|
|
62
|
+
* an in-workspace path that simply does not exist — resolution answers
|
|
63
|
+
* honestly), and paths already in canonical virtual form.
|
|
59
64
|
*/
|
|
60
65
|
export declare function normalizeWorkspacePathArg(raw: string, rootDir: string): string | undefined;
|
|
61
66
|
/**
|
|
62
|
-
* Create
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* Installed only on graphs that carry filesystem permission rules — derive
|
|
66
|
-
* the install condition from the same expression that supplies the rules
|
|
67
|
-
* (setup.ts / compileSubagents) so the rules and their normalization shim
|
|
68
|
-
* cannot drift apart.
|
|
67
|
+
* Create the dialect-repair middleware (see module header). Stateless per
|
|
68
|
+
* request; safe on every graph.
|
|
69
69
|
*/
|
|
70
70
|
export declare function createPathNormalizationMiddleware(config: PathNormalizationConfig): StigmerMiddleware;
|
|
@@ -1,54 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* (issues #429, #528).
|
|
2
|
+
* Canonical virtual-path normalization for the native harness's built-in
|
|
3
|
+
* filesystem tools (issues #429, #528, #754).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* the shape the multi-workspace prompt explicitly mandates, and one models
|
|
11
|
-
* routinely choose in single-workspace sessions — fails with
|
|
12
|
-
* `path must be absolute` instead of just working, burning tool rounds until
|
|
13
|
-
* the model adapts by switching to absolute paths.
|
|
5
|
+
* The native harness speaks ONE path dialect end to end: the VIRTUAL ROOT,
|
|
6
|
+
* where "/" denotes the workspace root (backends are constructed with
|
|
7
|
+
* `virtualMode: true` — see execute-deep-agent/cas-capture-backend.ts). This
|
|
8
|
+
* middleware is the dialect-repair seam at the model boundary. It rewrites,
|
|
9
|
+
* on the deepagents built-in filesystem tools only:
|
|
14
10
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
11
|
+
* - workspace-relative paths ("src/x.py", "./notes.md") to their virtual
|
|
12
|
+
* absolute form ("/src/x.py") — deepagents' permission validation refuses
|
|
13
|
+
* non-absolute shapes on rule-bearing graphs (plan mode), and the prompt
|
|
14
|
+
* explicitly mandates entry-relative paths, so without this seam a
|
|
15
|
+
* prompt-compliant call would die with `path must be absolute`;
|
|
16
|
+
* - REAL-absolute paths under the workspace root ("{root}/src/x.py") to
|
|
17
|
+
* their virtual form ("/src/x.py") — the compatibility mapping for the
|
|
18
|
+
* pre-#754 dialect, where tool results and transcripts surfaced real
|
|
19
|
+
* filesystem paths that a model may still echo back;
|
|
20
|
+
* - interior `..` segments that stay inside the root ("src/../notes.md" →
|
|
21
|
+
* "/notes.md") — the virtual resolver rejects `..` outright, so a safe
|
|
22
|
+
* interior collapse is repaired here rather than burning a tool round.
|
|
22
23
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* (the same first-turn degradation class #429 fixed). An EXPLICIT "/" is
|
|
29
|
-
* deliberately NOT rewritten: the model asked for the OS root, and the
|
|
30
|
-
* honest answer under plan mode's read boundary is the rules' denial —
|
|
31
|
-
* silently substituting workspace contents would be an answer to a
|
|
32
|
-
* different question.
|
|
24
|
+
* Nothing becomes newly reachable: escaping relatives ("../x") and
|
|
25
|
+
* `~`-carrying paths are left raw so the upstream refusal keeps speaking,
|
|
26
|
+
* and every rewritten path is workspace-confined by the virtual resolver
|
|
27
|
+
* regardless. The middleware converts false errors into correct behavior —
|
|
28
|
+
* never a refusal into an allowance.
|
|
33
29
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* injection
|
|
42
|
-
* to the workspace, granting nothing the rules would refuse.)
|
|
30
|
+
* Installed on EVERY native graph (parent and sub-agent, act and plan mode)
|
|
31
|
+
* so all downstream consumers — the approval gate's capturability checks,
|
|
32
|
+
* the CAS observer, otel spans — observe one canonical dialect. The pre-#754
|
|
33
|
+
* version was installed only beside permission rules and also injected the
|
|
34
|
+
* workspace root when `ls`/`glob`/`grep` omitted their path (the tools'
|
|
35
|
+
* schema default "/" was the OS ROOT under the legacy backend); under the
|
|
36
|
+
* virtual root that default already MEANS the workspace root, so the
|
|
37
|
+
* injection is retired.
|
|
43
38
|
*
|
|
44
39
|
* Tool matching is by bare built-in name, the house doctrine (an MCP server
|
|
45
40
|
* is not expected to shadow a built-in name — see shared/tool-kind.ts); the
|
|
46
41
|
* rewrite touches only the tool's path-bearing argument, never glob/grep
|
|
47
42
|
* patterns. Install FIRST in the stack so every downstream middleware
|
|
48
|
-
*
|
|
43
|
+
* observes canonical paths.
|
|
49
44
|
*/
|
|
50
|
-
import { isAbsolute, relative } from "node:path";
|
|
51
|
-
import { resolveWorkspacePath } from "../shared/file-change.js";
|
|
45
|
+
import { isAbsolute, relative, posix } from "node:path";
|
|
52
46
|
/**
|
|
53
47
|
* The path-bearing argument of each deepagents built-in filesystem tool.
|
|
54
48
|
* `ls`/`glob`/`grep` take a base directory `path`; the file tools take
|
|
@@ -63,44 +57,53 @@ const PATH_ARG_BY_TOOL = new Map([
|
|
|
63
57
|
["edit_file", "file_path"],
|
|
64
58
|
]);
|
|
65
59
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*
|
|
75
|
-
* value must be left untouched (absolute already, `~`-carrying, or escaping
|
|
76
|
-
* the workspace root). Exported for direct unit testing of the mapping table.
|
|
60
|
+
* Rewrite `raw` to its canonical virtual-absolute form, or return undefined
|
|
61
|
+
* when the value must be left untouched. Exported for direct unit testing of
|
|
62
|
+
* the mapping table.
|
|
63
|
+
*
|
|
64
|
+
* Left raw (undefined): empty strings, `~`-carrying paths (refused upstream
|
|
65
|
+
* in every mode), escaping relatives ("../x" — the refusal is the honest
|
|
66
|
+
* answer), real-absolute paths OUTSIDE the root (virtual dialect: they name
|
|
67
|
+
* an in-workspace path that simply does not exist — resolution answers
|
|
68
|
+
* honestly), and paths already in canonical virtual form.
|
|
77
69
|
*/
|
|
78
70
|
export function normalizeWorkspacePathArg(raw, rootDir) {
|
|
79
|
-
if (raw.length === 0
|
|
71
|
+
if (raw.length === 0)
|
|
80
72
|
return undefined;
|
|
81
|
-
// Upstream validation refuses `~` segments
|
|
82
|
-
//
|
|
83
|
-
// therefore the honest refusal) intact.
|
|
73
|
+
// Upstream validation refuses `~` segments in every position, and a rewrite
|
|
74
|
+
// could not make such a call succeed — leave the honest refusal intact.
|
|
84
75
|
if (raw.split("/").includes("~"))
|
|
85
76
|
return undefined;
|
|
86
|
-
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
77
|
+
// Legacy-dialect compatibility: a REAL absolute path under the workspace
|
|
78
|
+
// root maps to its virtual form. Any other absolute path is already a
|
|
79
|
+
// virtual-dialect name — reduced to relative form for canonicalization.
|
|
80
|
+
let candidate;
|
|
81
|
+
if (isAbsolute(raw)) {
|
|
82
|
+
const rel = relative(rootDir, raw);
|
|
83
|
+
if (rel === "")
|
|
84
|
+
return "/";
|
|
85
|
+
candidate =
|
|
86
|
+
rel && !rel.startsWith("..") && !isAbsolute(rel)
|
|
87
|
+
? rel
|
|
88
|
+
: raw.replace(/^\/+/, "");
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
candidate = raw;
|
|
92
|
+
}
|
|
93
|
+
// Canonicalize in RELATIVE form first: posix.normalize keeps a leading
|
|
94
|
+
// ".." on relative paths but silently swallows it on absolute ones, and a
|
|
95
|
+
// swallowed escape would rewrite the call onto a DIFFERENT in-root path —
|
|
96
|
+
// a refusal converted into an allowance. Detect the escape while it is
|
|
97
|
+
// still visible, and leave it raw for the upstream refusal.
|
|
98
|
+
const normalizedRel = posix.normalize(candidate);
|
|
99
|
+
if (normalizedRel === ".." || normalizedRel.startsWith("../"))
|
|
93
100
|
return undefined;
|
|
94
|
-
|
|
101
|
+
const virtual = normalizedRel === "." ? "/" : `/${normalizedRel}`;
|
|
102
|
+
return virtual === raw ? undefined : virtual;
|
|
95
103
|
}
|
|
96
104
|
/**
|
|
97
|
-
* Create
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* Installed only on graphs that carry filesystem permission rules — derive
|
|
101
|
-
* the install condition from the same expression that supplies the rules
|
|
102
|
-
* (setup.ts / compileSubagents) so the rules and their normalization shim
|
|
103
|
-
* cannot drift apart.
|
|
105
|
+
* Create the dialect-repair middleware (see module header). Stateless per
|
|
106
|
+
* request; safe on every graph.
|
|
104
107
|
*/
|
|
105
108
|
export function createPathNormalizationMiddleware(config) {
|
|
106
109
|
const { rootDir } = config;
|
|
@@ -111,20 +114,6 @@ export function createPathNormalizationMiddleware(config) {
|
|
|
111
114
|
if (!argKey)
|
|
112
115
|
return handler(request);
|
|
113
116
|
const raw = request.toolCall.args[argKey];
|
|
114
|
-
// Absent base directory on ls/glob/grep: the middleware sees the
|
|
115
|
-
// model's raw args, BEFORE the tool's zod parse applies the "/"
|
|
116
|
-
// (OS root) schema default — so the omission must be filled here,
|
|
117
|
-
// where the workspace root is known. An explicit "/" is not this
|
|
118
|
-
// case and flows through to an honest rule denial (header doctrine).
|
|
119
|
-
if (raw == null && DIR_DEFAULTING_TOOLS.has(request.toolCall.name)) {
|
|
120
|
-
return handler({
|
|
121
|
-
...request,
|
|
122
|
-
toolCall: {
|
|
123
|
-
...request.toolCall,
|
|
124
|
-
args: { ...request.toolCall.args, [argKey]: rootDir },
|
|
125
|
-
},
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
117
|
if (typeof raw !== "string")
|
|
129
118
|
return handler(request);
|
|
130
119
|
const normalized = normalizeWorkspacePathArg(raw, rootDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-normalization.js","sourceRoot":"","sources":["../../src/middleware/path-normalization.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"path-normalization.js","sourceRoot":"","sources":["../../src/middleware/path-normalization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGxD;;;;GAIG;AACH,MAAM,gBAAgB,GAAgC,IAAI,GAAG,CAAC;IAC5D,CAAC,IAAI,EAAE,MAAM,CAAC;IACd,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,WAAW,EAAE,WAAW,CAAC;CAC3B,CAAC,CAAC;AAWH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,OAAe;IAEf,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnD,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,IAAI,SAAiB,CAAC;IACtB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,GAAG,CAAC;QAC3B,SAAS;YACP,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC9C,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhF,MAAM,OAAO,GAAG,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;IAClE,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,OAAO;QACL,IAAI,EAAE,6BAA6B;QAEnC,YAAY,CAAC,OAAO,EAAE,OAAO;YAC3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAErC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAErD,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAEtD,OAAO,OAAO,CAAC;gBACb,GAAG,OAAO;gBACV,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE;iBACzD;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -97,9 +97,9 @@ export interface MiddlewareStackConfig {
|
|
|
97
97
|
readonly otelSpans?: Partial<OtelSpansConfig>;
|
|
98
98
|
readonly approvalGate?: ApprovalGateConfig | null;
|
|
99
99
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
100
|
+
* Virtual-dialect path normalization (issues #429/#754). Set on every
|
|
101
|
+
* native graph: the backends are virtual-rooted, so every graph carries
|
|
102
|
+
* the repair seam that keeps model-supplied paths canonical.
|
|
103
103
|
*/
|
|
104
104
|
readonly pathNormalization?: PathNormalizationConfig | null;
|
|
105
105
|
}
|
package/dist/payload-codecs.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* relocates to object storage are already ciphertext)
|
|
12
12
|
* decode: claim-check → decrypt (restore the blob, then decrypt)
|
|
13
13
|
*/
|
|
14
|
+
import { getRunnerSecret } from "./shared/runner-credential-store.js";
|
|
14
15
|
export async function createPayloadCodecs(config, bootstrapKeys) {
|
|
15
16
|
const codecs = [];
|
|
16
17
|
const { loadPayloadEncryptionConfig, EncryptionPayloadCodec } = await import("./encryption/index.js");
|
|
@@ -19,7 +20,7 @@ export async function createPayloadCodecs(config, bootstrapKeys) {
|
|
|
19
20
|
const encryptionConfig = loadPayloadEncryptionConfig(bootstrapKeys);
|
|
20
21
|
if (encryptionConfig) {
|
|
21
22
|
codecs.push(new EncryptionPayloadCodec(encryptionConfig));
|
|
22
|
-
const source =
|
|
23
|
+
const source = getRunnerSecret("STIGMER_PAYLOAD_ENCRYPTION_KEY") ? "env" : "bootstrap";
|
|
23
24
|
console.log(`[runner] Payload encryption enabled (source=${source}, ` +
|
|
24
25
|
`key_id=${encryptionConfig.primary.keyId}` +
|
|
25
26
|
(encryptionConfig.secondary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-codecs.js","sourceRoot":"","sources":["../src/payload-codecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"payload-codecs.js","sourceRoot":"","sources":["../src/payload-codecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,aAAoC;IAEpC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC1E,uBAAuB,CACxB,CAAC;IACF,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QACvF,OAAO,CAAC,GAAG,CACT,+CAA+C,MAAM,IAAI;YACvD,UAAU,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE;YAC1C,CAAC,gBAAgB,CAAC,SAAS;gBACzB,CAAC,CAAC,sBAAsB,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG;gBAC3D,CAAC,CAAC,GAAG,CAAC,CACX,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CACnE,uBAAuB,CACxB,CAAC;IACF,MAAM,gBAAgB,GAAG,oBAAoB,EAAE,CAAC;IAChD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CACvE,8BAA8B,CAC/B,CAAC;QACF,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CACT,0CAA0C,gBAAgB,CAAC,cAAc,KAAK;YAC5E,eAAe,gBAAgB,CAAC,kBAAkB,IAAI;YACtD,WAAW,aAAa,CAAC,IAAI,GAAG,CACnC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC"}
|
package/dist/runner-manager.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* dynamically add/remove sessions without restarting the process.
|
|
11
11
|
*/
|
|
12
12
|
import type { Config } from "./config.js";
|
|
13
|
-
export
|
|
13
|
+
export { getShutdownSignalForQueue } from "./shared/worker-shutdown.js";
|
|
14
14
|
export interface RunnerManagerOptions {
|
|
15
15
|
/**
|
|
16
16
|
* Temporal server address (e.g. "localhost:7233"). Optional: when omitted, the
|
package/dist/runner-manager.js
CHANGED
|
@@ -22,27 +22,24 @@ import { markBoot } from "./shared/cold-start-timing.js";
|
|
|
22
22
|
import { resolveWorkflowSource, OTEL_WORKFLOW_INTERCEPTOR_MODULE } from "./workflow-source.js";
|
|
23
23
|
import { resolveRunnerBootstrap, refreshRunnerAccessToken } from "./bootstrap.js";
|
|
24
24
|
import { assertLlmBackendsPreflight } from "./preflight.js";
|
|
25
|
+
import { captureRunnerSecrets, getRunnerSecret, setRunnerSecret, } from "./shared/runner-credential-store.js";
|
|
25
26
|
import { createRunnerTokenCoordinator } from "./runner-token-coordinator.js";
|
|
26
27
|
// Per-task-queue in-flight activity tracking lives in ./in-flight.ts so the
|
|
27
28
|
// activity interceptor (no manager-closure handle) and unit tests can reach it.
|
|
28
29
|
// This is what keeps a session worker alive while ExecuteCursor is running, so a
|
|
29
30
|
// view close can no longer reap the worker mid-run.
|
|
30
31
|
import { activityStartedOnQueue, activityFinishedOnQueue, inFlightCountForQueue, setQueueDrainCallback, forgetQueue, } from "./in-flight.js";
|
|
32
|
+
import { registerWorkerShutdownSignal, unregisterWorkerShutdownSignal, } from "./shared/worker-shutdown.js";
|
|
31
33
|
const SESSION_QUEUE_PREFIX = "session:";
|
|
32
34
|
const WFEXEC_QUEUE_PREFIX = "wfexec:";
|
|
33
35
|
// Warm-pool control queue — polled by exactly one pool member, carrying only
|
|
34
36
|
// the ProbePoolMember/AttachSession claim activities (never session work).
|
|
35
37
|
// Mirrors SessionDispatchService's convention: lowercase kind, colon, id.
|
|
36
38
|
const POOL_CONTROL_QUEUE_PREFIX = "sandbox:";
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*/
|
|
42
|
-
const _shutdownSignalRegistry = new Map();
|
|
43
|
-
export function getShutdownSignalForQueue(taskQueue) {
|
|
44
|
-
return _shutdownSignalRegistry.get(taskQueue);
|
|
45
|
-
}
|
|
39
|
+
// Re-export for existing importers; the registry itself lives in
|
|
40
|
+
// shared/worker-shutdown.ts so the static runner (runner.ts) and the
|
|
41
|
+
// activities can share it without importing this manager module.
|
|
42
|
+
export { getShutdownSignalForQueue } from "./shared/worker-shutdown.js";
|
|
46
43
|
/**
|
|
47
44
|
* Create a runner manager that dynamically manages per-session Workers.
|
|
48
45
|
*
|
|
@@ -68,6 +65,11 @@ export function getShutdownSignalForQueue(taskQueue) {
|
|
|
68
65
|
*/
|
|
69
66
|
export async function createStigmerRunnerManager(options) {
|
|
70
67
|
validateManagerOptions(options);
|
|
68
|
+
// Take custody of runner secrets BEFORE anything else can read them from
|
|
69
|
+
// env — and before any agent code could spawn with them (#508). Runs here
|
|
70
|
+
// (not only in main.ts) because this factory is a public library boot door:
|
|
71
|
+
// in-process embedders like the desktop never execute main.ts.
|
|
72
|
+
captureRunnerSecrets();
|
|
71
73
|
const { registerStigmerDeepagentsProfiles } = await import("./activities/execute-deep-agent/deepagents-profiles.js");
|
|
72
74
|
registerStigmerDeepagentsProfiles();
|
|
73
75
|
// `tokenRef` holds the control-plane token (the host's durable credential,
|
|
@@ -190,7 +192,7 @@ export async function createStigmerRunnerManager(options) {
|
|
|
190
192
|
const payloadCodecs = await createPayloadCodecs(config, bootstrap.payloadEncryption);
|
|
191
193
|
if (!bootstrap.payloadEncryption &&
|
|
192
194
|
bootstrap.runnerAccessToken &&
|
|
193
|
-
!
|
|
195
|
+
!getRunnerSecret("STIGMER_PAYLOAD_ENCRYPTION_KEY")) {
|
|
194
196
|
console.warn("[runner-manager] Server minted a runner token but returned no payload " +
|
|
195
197
|
"encryption key; Temporal payloads will be plaintext (server predates " +
|
|
196
198
|
"runner key management?)");
|
|
@@ -219,14 +221,11 @@ export async function createStigmerRunnerManager(options) {
|
|
|
219
221
|
markBoot("workflow_bundle_ready");
|
|
220
222
|
const sessions = new Map();
|
|
221
223
|
const workflowExecutions = new Map();
|
|
222
|
-
const shutdownSignals = new Map();
|
|
223
224
|
// At most one per process: a pool member IS its control worker's identity.
|
|
224
225
|
let poolControl = null;
|
|
225
226
|
let shuttingDown = false;
|
|
226
227
|
async function createWorkerOnQueue(taskQueue) {
|
|
227
|
-
const shutdownController =
|
|
228
|
-
shutdownSignals.set(taskQueue, shutdownController);
|
|
229
|
-
_shutdownSignalRegistry.set(taskQueue, shutdownController.signal);
|
|
228
|
+
const shutdownController = registerWorkerShutdownSignal(taskQueue);
|
|
230
229
|
const worker = await Worker.create({
|
|
231
230
|
connection,
|
|
232
231
|
namespace: config.temporalNamespace,
|
|
@@ -272,8 +271,7 @@ export async function createStigmerRunnerManager(options) {
|
|
|
272
271
|
managed.worker.shutdown();
|
|
273
272
|
await managed.runPromise;
|
|
274
273
|
registry.delete(id);
|
|
275
|
-
|
|
276
|
-
_shutdownSignalRegistry.delete(taskQueue);
|
|
274
|
+
unregisterWorkerShutdownSignal(taskQueue);
|
|
277
275
|
forgetQueue(taskQueue);
|
|
278
276
|
console.log(`[runner-manager] Removed ${kind} ${id} (active=${registry.size})`);
|
|
279
277
|
}
|
|
@@ -317,6 +315,11 @@ export async function createStigmerRunnerManager(options) {
|
|
|
317
315
|
},
|
|
318
316
|
async removeSession(sessionId) {
|
|
319
317
|
await removeManaged(sessions, sessionId, SESSION_QUEUE_PREFIX + sessionId, "session");
|
|
318
|
+
// The session is done on this host — release its parked agent (and
|
|
319
|
+
// the executor + MCP subprocesses the lease pins) immediately rather
|
|
320
|
+
// than waiting out the idle TTL (#215).
|
|
321
|
+
const { evictSessionAgent } = await import("./activities/execute-cursor/agent-session-cache.js");
|
|
322
|
+
evictSessionAgent(sessionId);
|
|
320
323
|
},
|
|
321
324
|
activeSessions() {
|
|
322
325
|
return Array.from(sessions.keys());
|
|
@@ -356,13 +359,11 @@ export async function createStigmerRunnerManager(options) {
|
|
|
356
359
|
// proxy credential follows it: only when no token has been minted (so the
|
|
357
360
|
// pre-mint lockstep is preserved), never once the runner owns a minted
|
|
358
361
|
// token. See runner-token-coordinator.ts and the staleness changelogs.
|
|
362
|
+
// The credential store is the second leg of the pair (it replaced the
|
|
363
|
+
// process.env.STIGMER_TOKEN write, #508): per-call readers like
|
|
364
|
+
// call-llm and the registry headers resolve the current token there.
|
|
359
365
|
tokenRef.current = token;
|
|
360
|
-
|
|
361
|
-
process.env.STIGMER_TOKEN = token;
|
|
362
|
-
}
|
|
363
|
-
else {
|
|
364
|
-
delete process.env.STIGMER_TOKEN;
|
|
365
|
-
}
|
|
366
|
+
setRunnerSecret("STIGMER_TOKEN", token);
|
|
366
367
|
tokenCoordinator.onControlPlaneTokenChanged(token);
|
|
367
368
|
console.log("[runner-manager] Auth token updated");
|
|
368
369
|
},
|
|
@@ -371,6 +372,21 @@ export async function createStigmerRunnerManager(options) {
|
|
|
371
372
|
tokenCoordinator.stop();
|
|
372
373
|
const totalWorkers = sessions.size + workflowExecutions.size;
|
|
373
374
|
console.log(`[runner-manager] Shutting down ${totalWorkers} workers (${sessions.size} sessions, ${workflowExecutions.size} workflow executions)...`);
|
|
375
|
+
// Mark every queue's shutdown signal BEFORE draining, so an in-flight
|
|
376
|
+
// activity cancelled by the drain classifies it as a worker shutdown
|
|
377
|
+
// rather than a user pause (issue #776 — a SIGTERM'd pool member used
|
|
378
|
+
// to persist EXECUTION_PAUSED and let raw Temporal drain text reach
|
|
379
|
+
// status.error). Aborting is classification-only: it stops nothing;
|
|
380
|
+
// worker.shutdown() below still owns the drain. This is deliberately
|
|
381
|
+
// NOT done in teardownManaged — single-worker teardowns only run once
|
|
382
|
+
// the queue is idle, and aborting there is the old view-close bug.
|
|
383
|
+
for (const session of sessions.values()) {
|
|
384
|
+
session.shutdownController.abort();
|
|
385
|
+
}
|
|
386
|
+
for (const execution of workflowExecutions.values()) {
|
|
387
|
+
execution.shutdownController.abort();
|
|
388
|
+
}
|
|
389
|
+
poolControl?.managed.shutdownController.abort();
|
|
374
390
|
const shutdownPromises = [
|
|
375
391
|
...Array.from(sessions.entries()).map(async ([id, session]) => {
|
|
376
392
|
session.worker.shutdown();
|
|
@@ -392,6 +408,10 @@ export async function createStigmerRunnerManager(options) {
|
|
|
392
408
|
})());
|
|
393
409
|
}
|
|
394
410
|
await Promise.all(shutdownPromises);
|
|
411
|
+
// Workers are drained — release every parked session agent so their
|
|
412
|
+
// executor leases dispose (stdio MCP subprocesses die with them) (#215).
|
|
413
|
+
const { closeAllCachedAgents } = await import("./activities/execute-cursor/agent-session-cache.js");
|
|
414
|
+
closeAllCachedAgents();
|
|
395
415
|
sessions.clear();
|
|
396
416
|
workflowExecutions.clear();
|
|
397
417
|
poolControl = null;
|