@stigmer/runner 3.40.0 → 3.41.0
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/README.md +3 -1
- package/dist/.build-fingerprint +1 -1
- package/dist/__test-utils__/execution-record-fixture.d.ts +2 -1
- package/dist/__test-utils__/execution-record-fixture.js.map +1 -1
- package/dist/activities/call-agent.js +1 -1
- package/dist/activities/discover-mcp-server.d.ts +7 -1
- package/dist/activities/discover-mcp-server.js +13 -29
- package/dist/activities/discover-mcp-server.js.map +1 -1
- package/dist/activities/execute-cursor/__test-utils__/fold.d.ts +4 -2
- package/dist/activities/execute-cursor/__test-utils__/fold.js +3 -4
- package/dist/activities/execute-cursor/__test-utils__/fold.js.map +1 -1
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +1 -0
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
- package/dist/activities/execute-cursor/approval-policy.d.ts +1 -29
- package/dist/activities/execute-cursor/approval-policy.js +11 -35
- package/dist/activities/execute-cursor/approval-policy.js.map +1 -1
- package/dist/activities/execute-cursor/boundary-rows.js +4 -4
- package/dist/activities/execute-cursor/boundary-rows.js.map +1 -1
- package/dist/activities/execute-cursor/translator.d.ts +12 -17
- package/dist/activities/execute-cursor/translator.js +13 -30
- package/dist/activities/execute-cursor/translator.js.map +1 -1
- package/dist/activities/execute-cursor/turn-stream.js +4 -2
- package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +11 -1
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +22 -3
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +1 -1
- package/dist/activities/execute-deep-agent/inline-publisher.d.ts +33 -2
- package/dist/activities/execute-deep-agent/inline-publisher.js +33 -7
- package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -1
- package/dist/activities/execute-deep-agent/platform-route.d.ts +48 -13
- package/dist/activities/execute-deep-agent/platform-route.js +87 -19
- package/dist/activities/execute-deep-agent/platform-route.js.map +1 -1
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +70 -35
- package/dist/activities/execute-deep-agent/prompt-builder.js +70 -55
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +20 -3
- package/dist/activities/execute-deep-agent/streaming-side-effects.js +26 -4
- package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -1
- package/dist/activities/execute-deep-agent/translator.d.ts +5 -4
- package/dist/activities/execute-deep-agent/translator.js +5 -4
- package/dist/activities/execute-deep-agent/translator.js.map +1 -1
- package/dist/activities/execute-deep-agent/turn-settle.js +6 -6
- package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -1
- package/dist/activities/execute-deep-agent/turn-setup.d.ts +18 -13
- package/dist/activities/execute-deep-agent/turn-setup.js +42 -36
- package/dist/activities/execute-deep-agent/turn-setup.js.map +1 -1
- package/dist/activities/execute-deep-agent/turn-stream.d.ts +10 -6
- package/dist/activities/execute-deep-agent/turn-stream.js +6 -16
- package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -1
- package/dist/activities/execute-deep-agent/turn.d.ts +4 -1
- package/dist/activities/execute-deep-agent/turn.js +15 -6
- package/dist/activities/execute-deep-agent/turn.js.map +1 -1
- package/dist/activities/workflow-event-activities.js +2 -0
- package/dist/activities/workflow-event-activities.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/exit-backstop.d.ts +64 -0
- package/dist/exit-backstop.js +79 -0
- package/dist/exit-backstop.js.map +1 -0
- package/dist/harness/terminal-table.d.ts +12 -5
- package/dist/harness/terminal-table.js +13 -13
- package/dist/harness/terminal-table.js.map +1 -1
- package/dist/harness/transcript/builder.d.ts +21 -0
- package/dist/harness/transcript/builder.js +53 -31
- package/dist/harness/transcript/builder.js.map +1 -1
- package/dist/harness/transcript/events.d.ts +22 -26
- package/dist/harness/transcript/events.js +6 -5
- package/dist/harness/transcript/events.js.map +1 -1
- package/dist/harness/turn-context.d.ts +3 -1
- package/dist/harness/turn-context.js +5 -3
- package/dist/harness/turn-context.js.map +1 -1
- package/dist/main.js +10 -4
- package/dist/main.js.map +1 -1
- package/dist/middleware/cost-advisory.d.ts +6 -3
- package/dist/middleware/cost-advisory.js +6 -3
- package/dist/middleware/cost-advisory.js.map +1 -1
- package/dist/middleware/execution-budget.d.ts +22 -7
- package/dist/middleware/execution-budget.js +57 -35
- package/dist/middleware/execution-budget.js.map +1 -1
- package/dist/middleware/index.d.ts +10 -7
- package/dist/middleware/index.js +10 -7
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/types.d.ts +6 -1
- package/dist/runner-manager.js +3 -2
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.d.ts +25 -0
- package/dist/runner.js +41 -14
- package/dist/runner.js.map +1 -1
- package/dist/shared/approval-policy.d.ts +23 -13
- package/dist/shared/approval-policy.js +47 -14
- package/dist/shared/approval-policy.js.map +1 -1
- package/dist/shared/caller-identity.d.ts +4 -5
- package/dist/shared/caller-identity.js +4 -5
- package/dist/shared/caller-identity.js.map +1 -1
- package/dist/shared/channel-attachment.js +3 -2
- package/dist/shared/channel-attachment.js.map +1 -1
- package/dist/shared/connect-backfill.d.ts +2 -1
- package/dist/shared/connect-backfill.js +2 -2
- package/dist/shared/connect-backfill.js.map +1 -1
- package/dist/shared/mcp-resolver.d.ts +10 -1
- package/dist/shared/mcp-resolver.js +11 -2
- package/dist/shared/mcp-resolver.js.map +1 -1
- package/dist/shared/memory-attachment.js +3 -2
- package/dist/shared/memory-attachment.js.map +1 -1
- package/dist/shared/model-error.d.ts +25 -3
- package/dist/shared/model-error.js +78 -10
- package/dist/shared/model-error.js.map +1 -1
- package/dist/shared/platform-server-address.d.ts +71 -0
- package/dist/shared/platform-server-address.js +103 -0
- package/dist/shared/platform-server-address.js.map +1 -0
- package/dist/shared/prompt-sections.d.ts +6 -28
- package/dist/shared/prompt-sections.js +6 -35
- package/dist/shared/prompt-sections.js.map +1 -1
- package/dist/shared/skill-resolver.d.ts +2 -3
- package/dist/shared/skill-resolver.js +2 -3
- package/dist/shared/skill-resolver.js.map +1 -1
- package/dist/shared/synthesized-attachment.d.ts +0 -5
- package/dist/shared/synthesized-attachment.js +0 -12
- package/dist/shared/synthesized-attachment.js.map +1 -1
- package/dist/shared/tool-rounds.d.ts +51 -23
- package/dist/shared/tool-rounds.js +67 -24
- package/dist/shared/tool-rounds.js.map +1 -1
- package/dist/shared/workspace/platform-dir.d.ts +15 -0
- package/dist/shared/workspace/platform-dir.js +18 -1
- package/dist/shared/workspace/platform-dir.js.map +1 -1
- package/dist/shared/workspace/sources/git.js +13 -6
- package/dist/shared/workspace/sources/git.js.map +1 -1
- package/dist/shared/workspace/stigmer-link.d.ts +21 -14
- package/dist/shared/workspace/stigmer-link.js +91 -29
- package/dist/shared/workspace/stigmer-link.js.map +1 -1
- package/dist/tools/url-guard.d.ts +5 -1
- package/dist/tools/url-guard.js +9 -2
- package/dist/tools/url-guard.js.map +1 -1
- package/dist/worker.d.ts +11 -2
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/dist/workflow-engine/tasks/human-input.d.ts +16 -0
- package/dist/workflow-engine/tasks/human-input.js +79 -37
- package/dist/workflow-engine/tasks/human-input.js.map +1 -1
- package/dist/workflow-engine/types.d.ts +14 -4
- package/dist/workflow-engine/types.js.map +1 -1
- package/dist/workflows/call-agent-orchestrator.d.ts +13 -0
- package/dist/workflows/call-agent-orchestrator.js.map +1 -1
- package/dist/workflows/engine-core.d.ts +25 -0
- package/dist/workflows/engine-core.js.map +1 -1
- package/dist/workflows/execute-from-execution.d.ts +3 -0
- package/dist/workflows/execute-from-execution.js.map +1 -1
- package/dist/workflows/human-input-orchestrator.d.ts +9 -12
- package/dist/workflows/human-input-orchestrator.js +12 -44
- package/dist/workflows/human-input-orchestrator.js.map +1 -1
- package/package.json +5 -5
- package/src/__test-utils__/config-fixture.ts +1 -0
- package/src/__test-utils__/execution-record-fixture.ts +2 -1
- package/src/__test-utils__/harness-contract/runtime-contract.ts +5 -3
- package/src/__test-utils__/test-gate.ts +8 -0
- package/src/__tests__/exit-backstop.test.ts +91 -0
- package/src/__tests__/golden-e2e.test.ts +80 -62
- package/src/__tests__/history-encryption-e2e.test.ts +51 -27
- package/src/__tests__/runner.test.ts +60 -2
- package/src/activities/__tests__/classify-tool-approvals.test.ts +1 -0
- package/src/activities/__tests__/discover-mcp-server.hang.test.ts +5 -1
- package/src/activities/__tests__/discover-mcp-server.test.ts +90 -49
- package/src/activities/__tests__/workflow-event-activities.test.ts +28 -7
- package/src/activities/call-agent.ts +1 -1
- package/src/activities/discover-mcp-server.ts +27 -37
- package/src/activities/execute-cursor/__test-utils__/fold.ts +6 -4
- package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +1 -0
- package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +4 -29
- package/src/activities/execute-cursor/__tests__/hermetic/bypassed-tool-call.test.ts +120 -0
- package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +5 -5
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.status.json +0 -2
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.status.json +1 -1
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.status.json +0 -3
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.status.json +0 -2
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.status.json +0 -2
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.status.json +0 -2
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +0 -3
- package/src/activities/execute-cursor/__tests__/hermetic/shell-output-delta.test.ts +9 -7
- package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +6 -1
- package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +8 -11
- package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +1 -3
- package/src/activities/execute-cursor/__tests__/translator.test.ts +68 -15
- package/src/activities/execute-cursor/approval-policy.ts +11 -36
- package/src/activities/execute-cursor/boundary-rows.ts +3 -3
- package/src/activities/execute-cursor/translator.ts +15 -32
- package/src/activities/execute-cursor/turn-stream.ts +4 -1
- package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +33 -2
- package/src/activities/execute-deep-agent/__tests__/adapter.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.build-from-plan.prompt.md +1 -27
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.everything.prompt.md +26 -30
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.plan-mode.prompt.md +1 -26
- package/src/activities/execute-deep-agent/__tests__/goldens/user-message.everything.md +36 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +4 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +1 -1
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +1 -1
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +1 -1
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +8 -73
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.status.json +1 -1
- package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +17 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +86 -26
- package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +9 -5
- package/src/activities/execute-deep-agent/__tests__/hermetic/thrown-turn-drains-publishes.test.ts +159 -0
- package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +84 -0
- package/src/activities/execute-deep-agent/__tests__/platform-route.test.ts +47 -10
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +127 -199
- package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +31 -26
- package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +34 -0
- package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +13 -5
- package/src/activities/execute-deep-agent/inline-publisher.ts +47 -7
- package/src/activities/execute-deep-agent/platform-route.ts +109 -20
- package/src/activities/execute-deep-agent/prompt-builder.ts +104 -92
- package/src/activities/execute-deep-agent/streaming-side-effects.ts +27 -4
- package/src/activities/execute-deep-agent/translator.ts +5 -4
- package/src/activities/execute-deep-agent/turn-settle.ts +6 -6
- package/src/activities/execute-deep-agent/turn-setup.ts +43 -38
- package/src/activities/execute-deep-agent/turn-stream.ts +15 -22
- package/src/activities/execute-deep-agent/turn.ts +16 -7
- package/src/activities/workflow-event-activities.ts +2 -0
- package/src/config.ts +11 -0
- package/src/exit-backstop.ts +97 -0
- package/src/harness/README.md +5 -5
- package/src/harness/terminal-table.ts +13 -13
- package/src/harness/transcript/__tests__/builder.test.ts +93 -21
- package/src/harness/transcript/builder.ts +53 -30
- package/src/harness/transcript/events.ts +22 -27
- package/src/harness/turn-context.ts +5 -3
- package/src/main.ts +9 -5
- package/src/middleware/__tests__/execution-budget.test.ts +181 -103
- package/src/middleware/cost-advisory.ts +6 -3
- package/src/middleware/execution-budget.ts +60 -34
- package/src/middleware/index.ts +10 -7
- package/src/middleware/types.ts +6 -1
- package/src/runner-manager.ts +3 -2
- package/src/runner.ts +57 -15
- package/src/shared/__tests__/approval-policy.test.ts +41 -0
- package/src/shared/__tests__/artifact-storage.test.ts +1 -0
- package/src/shared/__tests__/connect-backfill.test.ts +15 -11
- package/src/shared/__tests__/mcp-resolver.test.ts +72 -10
- package/src/shared/__tests__/model-error.test.ts +71 -3
- package/src/shared/__tests__/platform-server-address.test.ts +122 -0
- package/src/shared/__tests__/prompt-sections.test.ts +2 -54
- package/src/shared/__tests__/tool-rounds.test.ts +64 -14
- package/src/shared/approval-policy.ts +57 -14
- package/src/shared/caller-identity.ts +4 -5
- package/src/shared/channel-attachment.ts +2 -2
- package/src/shared/connect-backfill.ts +5 -1
- package/src/shared/mcp-resolver.ts +11 -1
- package/src/shared/memory-attachment.ts +2 -2
- package/src/shared/model-error.ts +87 -9
- package/src/shared/platform-server-address.ts +123 -0
- package/src/shared/prompt-sections.ts +6 -55
- package/src/shared/skill-resolver.ts +2 -3
- package/src/shared/synthesized-attachment.ts +0 -12
- package/src/shared/tool-rounds.ts +70 -24
- package/src/shared/workspace/__tests__/git-source.test.ts +11 -5
- package/src/shared/workspace/__tests__/stigmer-link.test.ts +107 -10
- package/src/shared/workspace/platform-dir.ts +19 -1
- package/src/shared/workspace/sources/git.ts +14 -8
- package/src/shared/workspace/stigmer-link.ts +99 -29
- package/src/tools/__tests__/url-guard.test.ts +19 -1
- package/src/tools/url-guard.ts +9 -1
- package/src/worker.ts +12 -2
- package/src/workflow-engine/__tests__/golden-execution.test.ts +2 -1
- package/src/workflow-engine/__tests__/loader.test.ts +1 -1
- package/src/workflow-engine/__tests__/tasks/human-input.test.ts +133 -57
- package/src/workflow-engine/tasks/human-input.ts +92 -42
- package/src/workflow-engine/types.ts +16 -4
- package/src/workflows/call-agent-orchestrator.ts +7 -0
- package/src/workflows/engine-core.ts +18 -0
- package/src/workflows/execute-from-execution.ts +2 -1
- package/src/workflows/human-input-orchestrator.ts +15 -56
- package/dist/shared/skill-relevance.d.ts +0 -65
- package/dist/shared/skill-relevance.js +0 -175
- package/dist/shared/skill-relevance.js.map +0 -1
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.skills-below-threshold.prompt.md +0 -146
- package/src/shared/__tests__/skill-relevance.test.ts +0 -292
- package/src/shared/skill-relevance.ts +0 -222
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
* (BYO-key) mode, attributes billing errors to the user's own account
|
|
20
20
|
* with actionable wording.
|
|
21
21
|
*
|
|
22
|
+
* 3. On Stigmer Cloud an organization may bring its own provider key, which
|
|
23
|
+
* the proxy injects upstream in place of the platform's. A failure on
|
|
24
|
+
* that key is the organization's, not the platform's, yet it reaches the
|
|
25
|
+
* runner in proxy mode. The proxy keeps the provider's status and message
|
|
26
|
+
* and marks the message with ORGANIZATION_PROVIDER_KEY_SENTINEL; this
|
|
27
|
+
* module words a marked failure as the organization's key, never as a
|
|
28
|
+
* platform fault.
|
|
29
|
+
*
|
|
22
30
|
* Classification order is load-bearing: the sentinel check must precede
|
|
23
31
|
* status mapping, otherwise the proxy's 503 would classify as a retryable
|
|
24
32
|
* 5xx and waste Temporal retries against a dead platform account.
|
|
@@ -32,6 +40,13 @@ import type { LlmProvider } from "./llm-proxy.js";
|
|
|
32
40
|
* change both or neither.
|
|
33
41
|
*/
|
|
34
42
|
export declare const PLATFORM_CAPACITY_SENTINEL = "STIGMER_PLATFORM_MODEL_CAPACITY";
|
|
43
|
+
/**
|
|
44
|
+
* Machine-readable code the cloud proxy embeds in a provider failure it
|
|
45
|
+
* relays from a call served on the organization's own provider key. The
|
|
46
|
+
* message text carries it, as it carries PLATFORM_CAPACITY_SENTINEL.
|
|
47
|
+
* Duplicated in stigmer-cloud's LLM proxy lane; change both or neither.
|
|
48
|
+
*/
|
|
49
|
+
export declare const ORGANIZATION_PROVIDER_KEY_SENTINEL = "STIGMER_ORGANIZATION_PROVIDER_KEY";
|
|
35
50
|
export interface ClassifiedModelError {
|
|
36
51
|
/** Stable machine-readable code (doubles as the Temporal failure type). */
|
|
37
52
|
readonly code: string;
|
|
@@ -59,8 +74,15 @@ export interface ModelErrorContext {
|
|
|
59
74
|
}
|
|
60
75
|
/**
|
|
61
76
|
* Walk the `cause` chain to the root error. LangChain's MiddlewareError (and
|
|
62
|
-
* anything else that chains causes) preserves the original SDK error there
|
|
63
|
-
*
|
|
77
|
+
* anything else that chains causes) preserves the original SDK error there,
|
|
78
|
+
* and the root is the one link carrying the provider's `.status`.
|
|
79
|
+
*
|
|
80
|
+
* The chain is as long as the agent's middleware stack: LangChain wraps a
|
|
81
|
+
* model call's failure once per middleware that implements `wrapModelCall`
|
|
82
|
+
* (`MiddlewareError.wrap` in its AgentNode), and a native turn stacks
|
|
83
|
+
* deepagents' own middleware, the to-do list and Stigmer's, well past ten
|
|
84
|
+
* layers. So the walk has no depth bound; a cause cycle ends it instead, at
|
|
85
|
+
* the first error seen twice.
|
|
64
86
|
*/
|
|
65
87
|
export declare function unwrapModelError(err: unknown): unknown;
|
|
66
88
|
/**
|
|
@@ -73,7 +95,7 @@ export declare function unwrapModelError(err: unknown): unknown;
|
|
|
73
95
|
* operations too): only positively-identified model errors get relabeled;
|
|
74
96
|
* everything else keeps its own identity.
|
|
75
97
|
*/
|
|
76
|
-
export declare function classifyModelCallError(err: unknown,
|
|
98
|
+
export declare function classifyModelCallError(err: unknown, callerCtx: ModelErrorContext): ClassifiedModelError | undefined;
|
|
77
99
|
/**
|
|
78
100
|
* Describe an arbitrary activity failure for the execution's user-visible
|
|
79
101
|
* error field: model-call errors get classified codes and messages; anything
|
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
* (BYO-key) mode, attributes billing errors to the user's own account
|
|
20
20
|
* with actionable wording.
|
|
21
21
|
*
|
|
22
|
+
* 3. On Stigmer Cloud an organization may bring its own provider key, which
|
|
23
|
+
* the proxy injects upstream in place of the platform's. A failure on
|
|
24
|
+
* that key is the organization's, not the platform's, yet it reaches the
|
|
25
|
+
* runner in proxy mode. The proxy keeps the provider's status and message
|
|
26
|
+
* and marks the message with ORGANIZATION_PROVIDER_KEY_SENTINEL; this
|
|
27
|
+
* module words a marked failure as the organization's key, never as a
|
|
28
|
+
* platform fault.
|
|
29
|
+
*
|
|
22
30
|
* Classification order is load-bearing: the sentinel check must precede
|
|
23
31
|
* status mapping, otherwise the proxy's 503 would classify as a retryable
|
|
24
32
|
* 5xx and waste Temporal retries against a dead platform account.
|
|
@@ -32,20 +40,31 @@ import { parseAnthropicBackend, BACKEND_DOC_URL, BEDROCK_INFERENCE_PREFIX_ENV, F
|
|
|
32
40
|
* change both or neither.
|
|
33
41
|
*/
|
|
34
42
|
export const PLATFORM_CAPACITY_SENTINEL = "STIGMER_PLATFORM_MODEL_CAPACITY";
|
|
43
|
+
/**
|
|
44
|
+
* Machine-readable code the cloud proxy embeds in a provider failure it
|
|
45
|
+
* relays from a call served on the organization's own provider key. The
|
|
46
|
+
* message text carries it, as it carries PLATFORM_CAPACITY_SENTINEL.
|
|
47
|
+
* Duplicated in stigmer-cloud's LLM proxy lane; change both or neither.
|
|
48
|
+
*/
|
|
49
|
+
export const ORGANIZATION_PROVIDER_KEY_SENTINEL = "STIGMER_ORGANIZATION_PROVIDER_KEY";
|
|
35
50
|
/**
|
|
36
51
|
* Walk the `cause` chain to the root error. LangChain's MiddlewareError (and
|
|
37
|
-
* anything else that chains causes) preserves the original SDK error there
|
|
38
|
-
*
|
|
52
|
+
* anything else that chains causes) preserves the original SDK error there,
|
|
53
|
+
* and the root is the one link carrying the provider's `.status`.
|
|
54
|
+
*
|
|
55
|
+
* The chain is as long as the agent's middleware stack: LangChain wraps a
|
|
56
|
+
* model call's failure once per middleware that implements `wrapModelCall`
|
|
57
|
+
* (`MiddlewareError.wrap` in its AgentNode), and a native turn stacks
|
|
58
|
+
* deepagents' own middleware, the to-do list and Stigmer's, well past ten
|
|
59
|
+
* layers. So the walk has no depth bound; a cause cycle ends it instead, at
|
|
60
|
+
* the first error seen twice.
|
|
39
61
|
*/
|
|
40
62
|
export function unwrapModelError(err) {
|
|
63
|
+
const seen = new Set([err]);
|
|
41
64
|
let current = err;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return current;
|
|
48
|
-
}
|
|
65
|
+
while (current instanceof Error && current.cause instanceof Error && !seen.has(current.cause)) {
|
|
66
|
+
current = current.cause;
|
|
67
|
+
seen.add(current);
|
|
49
68
|
}
|
|
50
69
|
return current;
|
|
51
70
|
}
|
|
@@ -59,9 +78,20 @@ export function unwrapModelError(err) {
|
|
|
59
78
|
* operations too): only positively-identified model errors get relabeled;
|
|
60
79
|
* everything else keeps its own identity.
|
|
61
80
|
*/
|
|
62
|
-
export function classifyModelCallError(err,
|
|
81
|
+
export function classifyModelCallError(err, callerCtx) {
|
|
63
82
|
const root = unwrapModelError(err);
|
|
64
83
|
const message = root instanceof Error ? root.message : String(root);
|
|
84
|
+
// 0. Organization-key sentinel — before everything that reads proxyMode:
|
|
85
|
+
// the call went through the proxy but on the organization's own key,
|
|
86
|
+
// so its failures are the organization's. The key-specific failures
|
|
87
|
+
// get key-specific wording; the rest classify as direct mode would.
|
|
88
|
+
const organizationKey = message.includes(ORGANIZATION_PROVIDER_KEY_SENTINEL);
|
|
89
|
+
if (organizationKey) {
|
|
90
|
+
const classified = classifyOrganizationKeyError(root, message, callerCtx);
|
|
91
|
+
if (classified !== undefined)
|
|
92
|
+
return classified;
|
|
93
|
+
}
|
|
94
|
+
const ctx = organizationKey ? { ...callerCtx, proxyMode: false } : callerCtx;
|
|
65
95
|
const backend = resolveDirectBackend(ctx);
|
|
66
96
|
// 1. Platform sentinel — before status mapping (see module doc).
|
|
67
97
|
if (message.includes(PLATFORM_CAPACITY_SENTINEL)) {
|
|
@@ -181,6 +211,44 @@ export function classifyModelCallError(err, ctx) {
|
|
|
181
211
|
}
|
|
182
212
|
return undefined;
|
|
183
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* The failures an organization's own provider key causes, worded for the
|
|
216
|
+
* organization's admin: out of credit or quota at the provider, the key
|
|
217
|
+
* rejected, or the key's account not permitted the model. Undefined for
|
|
218
|
+
* every other failure, which classifies as direct mode would.
|
|
219
|
+
*/
|
|
220
|
+
function classifyOrganizationKeyError(root, message, ctx) {
|
|
221
|
+
const provider = providerSubject(ctx);
|
|
222
|
+
if (isProviderBillingMessage(message)) {
|
|
223
|
+
return {
|
|
224
|
+
code: "LLM_PROVIDER_BILLING",
|
|
225
|
+
retryable: false,
|
|
226
|
+
message: `Your organization's own ${providerLabel(ctx)} key is out of credits or over quota. ` +
|
|
227
|
+
`Add credits to that provider account, or update the key in Settings → Provider keys. ` +
|
|
228
|
+
`Provider message: ${message}`,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
const status = typeof root.status === "number"
|
|
232
|
+
? root.status
|
|
233
|
+
: undefined;
|
|
234
|
+
if (status === 401) {
|
|
235
|
+
return {
|
|
236
|
+
code: "LLM_AUTHENTICATION_ERROR",
|
|
237
|
+
retryable: false,
|
|
238
|
+
message: `${provider} rejected your organization's own key (authentication, HTTP 401) for ${modelLabel(ctx)}. ` +
|
|
239
|
+
`Update the key in Settings → Provider keys.`,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
if (status === 403) {
|
|
243
|
+
return {
|
|
244
|
+
code: "LLM_PERMISSION_DENIED",
|
|
245
|
+
retryable: false,
|
|
246
|
+
message: `${provider} denied your organization's own key (authorization, HTTP 403) for ${modelLabel(ctx)}. ` +
|
|
247
|
+
`Check that the key's account may use this model, or update the key in Settings → Provider keys.`,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
184
252
|
/**
|
|
185
253
|
* Retryability policy (unchanged from the original call-llm classifier):
|
|
186
254
|
* - 4xx (except 429): nonRetryable — client/config errors won't self-heal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-error.js","sourceRoot":"","sources":["../../src/shared/model-error.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-error.js","sourceRoot":"","sources":["../../src/shared/model-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Stigmer server's address for user-defined MCP servers — the reserved
|
|
3
|
+
* STIGMER_SERVER_ADDRESS key, and the one dial-target rule every writer of
|
|
4
|
+
* that key shares (stigmer/stigmer#1433, #1446).
|
|
5
|
+
*
|
|
6
|
+
* The runner is the one component that supplies it, because the runner is
|
|
7
|
+
* the one that knows where the consumer runs:
|
|
8
|
+
*
|
|
9
|
+
* - A remote HTTP server receives the key only through a templated header,
|
|
10
|
+
* so it needs the server's PUBLIC address: STIGMER_MCP_PUBLIC_ENDPOINT,
|
|
11
|
+
* which the server hands every sandbox it provisions from its own
|
|
12
|
+
* configuration (stigmer/stigmer#1447), or an operator names to a
|
|
13
|
+
* runner it starts by hand.
|
|
14
|
+
* - A stdio server is a child of this runner (only a local runner spawns
|
|
15
|
+
* one; mcp-transport-guard.ts), so the address the runner itself dials,
|
|
16
|
+
* STIGMER_BACKEND_ENDPOINT, is right for it by construction.
|
|
17
|
+
*
|
|
18
|
+
* No page supplies it: a value written into a run's runtime_env sits in the
|
|
19
|
+
* top merge layer, above every value the user saved (stigmer/stigmer#1446).
|
|
20
|
+
*
|
|
21
|
+
* The runner FILLS, it never overrides: a non-empty value already in the
|
|
22
|
+
* environment (one the user saved or typed to aim a server elsewhere)
|
|
23
|
+
* stands. A key nobody can supply stays missing, and a
|
|
24
|
+
* header that templates it fails with the resolver's named
|
|
25
|
+
* PlaceholderResolutionError instead of dialing a guess.
|
|
26
|
+
*
|
|
27
|
+
* Injection is opt-in exactly as for the caller-identity keys
|
|
28
|
+
* (caller-identity.ts): only a server whose spec.env declares the key
|
|
29
|
+
* receives it. Applied before filterEnvToDeclaredKeys at execution
|
|
30
|
+
* (mcp-resolver.ts) and before placeholder resolution at discovery
|
|
31
|
+
* (activities/discover-mcp-server.ts), so both phases share one rule.
|
|
32
|
+
*/
|
|
33
|
+
import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
|
|
34
|
+
import type { Config } from "../config.js";
|
|
35
|
+
/**
|
|
36
|
+
* Reserved env key: the Stigmer server's gRPC dial target, host:port. The
|
|
37
|
+
* name the mcp-server reads its target from (mcp-server/src/config.ts) and
|
|
38
|
+
* `@stigmer/react` keeps out of its setup prompts
|
|
39
|
+
* (sdk/react/src/environment/systemEnvVars.ts); a cross-package string,
|
|
40
|
+
* pinned on every side.
|
|
41
|
+
*/
|
|
42
|
+
export declare const SERVER_ADDRESS_ENV_KEY = "STIGMER_SERVER_ADDRESS";
|
|
43
|
+
/** The two runner-known endpoints an address can be filled from. */
|
|
44
|
+
export type PlatformEndpoints = Pick<Config, "mcpPublicEndpoint" | "stigmerBackendEndpoint">;
|
|
45
|
+
/**
|
|
46
|
+
* The gRPC dial target (host:port) for an endpoint, the shape
|
|
47
|
+
* STIGMER_SERVER_ADDRESS wants.
|
|
48
|
+
*
|
|
49
|
+
* An http(s) URL becomes its host with an explicit port: the URL's own, else
|
|
50
|
+
* 80 for http and 443 for https. The port is never left implicit, because
|
|
51
|
+
* the mcp-server derives TLS from it and assumes :443 with TLS for a
|
|
52
|
+
* non-loopback host that has none (mcp-server/src/config.ts). Any other
|
|
53
|
+
* input (a scheme-less host:port, a bare host) is already a dial target and
|
|
54
|
+
* passes through unchanged.
|
|
55
|
+
*/
|
|
56
|
+
export declare function grpcTarget(endpoint: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* The address the platform supplies for a server of this transport, or
|
|
59
|
+
* `null` when the runner knows none: the operator's public endpoint for any
|
|
60
|
+
* transport, else the runner's own backend endpoint for a stdio child.
|
|
61
|
+
*/
|
|
62
|
+
export declare function platformServerAddress(transport: McpServerTransport | undefined, endpoints: PlatformEndpoints): string | null;
|
|
63
|
+
/**
|
|
64
|
+
* Return the env map with STIGMER_SERVER_ADDRESS filled for `server` when it
|
|
65
|
+
* declares the key and the map holds no non-empty value for it; otherwise the
|
|
66
|
+
* map itself, unchanged. Never mutates its input.
|
|
67
|
+
*/
|
|
68
|
+
export declare function fillPlatformServerAddress(server: McpServer, envVars: Record<string, string>, endpoints: PlatformEndpoints): Record<string, string>;
|
|
69
|
+
/** The transports a McpServer spec declares (its `serverType` oneof). */
|
|
70
|
+
type McpServerTransport = NonNullable<NonNullable<McpServer["spec"]>["serverType"]["case"]>;
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Stigmer server's address for user-defined MCP servers — the reserved
|
|
3
|
+
* STIGMER_SERVER_ADDRESS key, and the one dial-target rule every writer of
|
|
4
|
+
* that key shares (stigmer/stigmer#1433, #1446).
|
|
5
|
+
*
|
|
6
|
+
* The runner is the one component that supplies it, because the runner is
|
|
7
|
+
* the one that knows where the consumer runs:
|
|
8
|
+
*
|
|
9
|
+
* - A remote HTTP server receives the key only through a templated header,
|
|
10
|
+
* so it needs the server's PUBLIC address: STIGMER_MCP_PUBLIC_ENDPOINT,
|
|
11
|
+
* which the server hands every sandbox it provisions from its own
|
|
12
|
+
* configuration (stigmer/stigmer#1447), or an operator names to a
|
|
13
|
+
* runner it starts by hand.
|
|
14
|
+
* - A stdio server is a child of this runner (only a local runner spawns
|
|
15
|
+
* one; mcp-transport-guard.ts), so the address the runner itself dials,
|
|
16
|
+
* STIGMER_BACKEND_ENDPOINT, is right for it by construction.
|
|
17
|
+
*
|
|
18
|
+
* No page supplies it: a value written into a run's runtime_env sits in the
|
|
19
|
+
* top merge layer, above every value the user saved (stigmer/stigmer#1446).
|
|
20
|
+
*
|
|
21
|
+
* The runner FILLS, it never overrides: a non-empty value already in the
|
|
22
|
+
* environment (one the user saved or typed to aim a server elsewhere)
|
|
23
|
+
* stands. A key nobody can supply stays missing, and a
|
|
24
|
+
* header that templates it fails with the resolver's named
|
|
25
|
+
* PlaceholderResolutionError instead of dialing a guess.
|
|
26
|
+
*
|
|
27
|
+
* Injection is opt-in exactly as for the caller-identity keys
|
|
28
|
+
* (caller-identity.ts): only a server whose spec.env declares the key
|
|
29
|
+
* receives it. Applied before filterEnvToDeclaredKeys at execution
|
|
30
|
+
* (mcp-resolver.ts) and before placeholder resolution at discovery
|
|
31
|
+
* (activities/discover-mcp-server.ts), so both phases share one rule.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Reserved env key: the Stigmer server's gRPC dial target, host:port. The
|
|
35
|
+
* name the mcp-server reads its target from (mcp-server/src/config.ts) and
|
|
36
|
+
* `@stigmer/react` keeps out of its setup prompts
|
|
37
|
+
* (sdk/react/src/environment/systemEnvVars.ts); a cross-package string,
|
|
38
|
+
* pinned on every side.
|
|
39
|
+
*/
|
|
40
|
+
export const SERVER_ADDRESS_ENV_KEY = "STIGMER_SERVER_ADDRESS";
|
|
41
|
+
/**
|
|
42
|
+
* The gRPC dial target (host:port) for an endpoint, the shape
|
|
43
|
+
* STIGMER_SERVER_ADDRESS wants.
|
|
44
|
+
*
|
|
45
|
+
* An http(s) URL becomes its host with an explicit port: the URL's own, else
|
|
46
|
+
* 80 for http and 443 for https. The port is never left implicit, because
|
|
47
|
+
* the mcp-server derives TLS from it and assumes :443 with TLS for a
|
|
48
|
+
* non-loopback host that has none (mcp-server/src/config.ts). Any other
|
|
49
|
+
* input (a scheme-less host:port, a bare host) is already a dial target and
|
|
50
|
+
* passes through unchanged.
|
|
51
|
+
*/
|
|
52
|
+
export function grpcTarget(endpoint) {
|
|
53
|
+
let url;
|
|
54
|
+
try {
|
|
55
|
+
url = new URL(endpoint);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return endpoint;
|
|
59
|
+
}
|
|
60
|
+
// `new URL("host:7234")` parses with `host:` as its scheme, so only a
|
|
61
|
+
// real http(s) URL is taken apart.
|
|
62
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
63
|
+
return endpoint;
|
|
64
|
+
}
|
|
65
|
+
const port = url.port || (url.protocol === "https:" ? "443" : "80");
|
|
66
|
+
return `${url.hostname}:${port}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The address the platform supplies for a server of this transport, or
|
|
70
|
+
* `null` when the runner knows none: the operator's public endpoint for any
|
|
71
|
+
* transport, else the runner's own backend endpoint for a stdio child.
|
|
72
|
+
*/
|
|
73
|
+
export function platformServerAddress(transport, endpoints) {
|
|
74
|
+
if (endpoints.mcpPublicEndpoint) {
|
|
75
|
+
return grpcTarget(endpoints.mcpPublicEndpoint);
|
|
76
|
+
}
|
|
77
|
+
if (transport === "stdio") {
|
|
78
|
+
return grpcTarget(endpoints.stigmerBackendEndpoint);
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Return the env map with STIGMER_SERVER_ADDRESS filled for `server` when it
|
|
84
|
+
* declares the key and the map holds no non-empty value for it; otherwise the
|
|
85
|
+
* map itself, unchanged. Never mutates its input.
|
|
86
|
+
*/
|
|
87
|
+
export function fillPlatformServerAddress(server, envVars, endpoints) {
|
|
88
|
+
const declared = server.spec?.env ?? {};
|
|
89
|
+
if (!(SERVER_ADDRESS_ENV_KEY in declared) || envVars[SERVER_ADDRESS_ENV_KEY]) {
|
|
90
|
+
return envVars;
|
|
91
|
+
}
|
|
92
|
+
const value = platformServerAddress(server.spec?.serverType.case, endpoints);
|
|
93
|
+
if (value === null) {
|
|
94
|
+
return envVars;
|
|
95
|
+
}
|
|
96
|
+
const source = endpoints.mcpPublicEndpoint
|
|
97
|
+
? "STIGMER_MCP_PUBLIC_ENDPOINT"
|
|
98
|
+
: "STIGMER_BACKEND_ENDPOINT";
|
|
99
|
+
console.info(`MCP server '${server.metadata?.slug ?? ""}': ${SERVER_ADDRESS_ENV_KEY} ` +
|
|
100
|
+
`filled from ${source} (no value in the execution environment)`);
|
|
101
|
+
return { ...envVars, [SERVER_ADDRESS_ENV_KEY]: value };
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=platform-server-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-server-address.js","sourceRoot":"","sources":["../../src/shared/platform-server-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAK/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,sEAAsE;IACtE,mCAAmC;IACnC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAyC,EACzC,SAA4B;IAE5B,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAiB,EACjB,OAA+B,EAC/B,SAA4B;IAE5B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,CAAC,sBAAsB,IAAI,QAAQ,CAAC,IAAI,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC7E,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB;QACxC,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,0BAA0B,CAAC;IAC/B,OAAO,CAAC,IAAI,CACV,eAAe,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,MAAM,sBAAsB,GAAG;QACzE,eAAe,MAAM,0CAA0C,CAChE,CAAC;IACF,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -9,8 +9,12 @@
|
|
|
9
9
|
* `attachment-download-urls.ts`). What the two prompt builders duplicated
|
|
10
10
|
* until #1096 was the glue around those bodies: the order
|
|
11
11
|
* the five standing sections read in, with the same doctrine comments written
|
|
12
|
-
* twice; the input-files bullet and disclosure lines
|
|
13
|
-
*
|
|
12
|
+
* twice; the input-files bullet and disclosure lines. This module is that
|
|
13
|
+
* glue, written once. It also chose which skills a prompt highlighted when
|
|
14
|
+
* there were many, until the native harness stopped choosing skills by the
|
|
15
|
+
* turn's message: a system prompt that follows the message misses the
|
|
16
|
+
* provider's prompt cache on every turn, so every harness now describes every
|
|
17
|
+
* mounted skill.
|
|
14
18
|
*
|
|
15
19
|
* What stays with each harness, on purpose:
|
|
16
20
|
* - Framing and placement. The native harness renders `## Heading` sections
|
|
@@ -40,7 +44,6 @@ import { type DownloadUrlKind } from "./attachment-download-urls.js";
|
|
|
40
44
|
import { type DeclaredPreferencesContent } from "./declared-preferences.js";
|
|
41
45
|
import { type RecalledMemoriesContent } from "./recalled-memories.js";
|
|
42
46
|
import { type SenderIdentity } from "./sender-identity.js";
|
|
43
|
-
import type { SkillMetadata } from "./skill-resolver.js";
|
|
44
47
|
/**
|
|
45
48
|
* The standing sections a prompt may carry, in the order they read. A builder
|
|
46
49
|
* labels each kind in its own vocabulary; adding a kind here fails every
|
|
@@ -136,28 +139,3 @@ export interface InputFileLines {
|
|
|
136
139
|
* the user believes it can see.
|
|
137
140
|
*/
|
|
138
141
|
export declare function inputFileLines(files: readonly ResolvedAttachment[], vision: VisionPromptInfo | undefined, downloadUrlKind: DownloadUrlKind | undefined): InputFileLines;
|
|
139
|
-
/** Which mounted skills a prompt highlights, and which it only names. */
|
|
140
|
-
export interface SkillSelection {
|
|
141
|
-
/** The skills the prompt describes in full, in the filter's order. */
|
|
142
|
-
readonly highlighted: readonly SkillMetadata[];
|
|
143
|
-
/** The names of the skills left out of the highlighted set; empty below the threshold. */
|
|
144
|
-
readonly alsoAvailable: readonly string[];
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* The relevance selection over the turn's message (`skill-relevance.ts`):
|
|
148
|
-
* below `SKILL_COUNT_THRESHOLD` every skill is highlighted; at and above it,
|
|
149
|
-
* the skills the message's terms reach are highlighted and the rest are
|
|
150
|
-
* named, so the agent can still activate one on its own judgement (the Agent
|
|
151
|
-
* Skills spec's progressive disclosure: metadata up front, instructions on
|
|
152
|
-
* demand). The native harness calls this on every turn; the Cursor harness
|
|
153
|
-
* lists every skill today; adopting the selection there is an open item.
|
|
154
|
-
*/
|
|
155
|
-
export declare function selectSkillsForPrompt(userMessage: string, skills: readonly SkillMetadata[]): SkillSelection;
|
|
156
|
-
/**
|
|
157
|
-
* The tool-neutral sentence that names the skills a prompt did not highlight
|
|
158
|
-
* (`SkillSelection.alsoAvailable`), so the agent can activate one by reading
|
|
159
|
-
* its SKILL.md at the mounted path. The sentence names no tool, so it serves
|
|
160
|
-
* any harness; the heading above it is the builder's framing. Empty for no
|
|
161
|
-
* names.
|
|
162
|
-
*/
|
|
163
|
-
export declare function alsoAvailableSkillsNote(excludedNames: readonly string[]): string;
|
|
@@ -9,8 +9,12 @@
|
|
|
9
9
|
* `attachment-download-urls.ts`). What the two prompt builders duplicated
|
|
10
10
|
* until #1096 was the glue around those bodies: the order
|
|
11
11
|
* the five standing sections read in, with the same doctrine comments written
|
|
12
|
-
* twice; the input-files bullet and disclosure lines
|
|
13
|
-
*
|
|
12
|
+
* twice; the input-files bullet and disclosure lines. This module is that
|
|
13
|
+
* glue, written once. It also chose which skills a prompt highlighted when
|
|
14
|
+
* there were many, until the native harness stopped choosing skills by the
|
|
15
|
+
* turn's message: a system prompt that follows the message misses the
|
|
16
|
+
* provider's prompt cache on every turn, so every harness now describes every
|
|
17
|
+
* mounted skill.
|
|
14
18
|
*
|
|
15
19
|
* What stays with each harness, on purpose:
|
|
16
20
|
* - Framing and placement. The native harness renders `## Heading` sections
|
|
@@ -41,8 +45,6 @@ import { formatDeclaredPreferencesText } from "./declared-preferences.js";
|
|
|
41
45
|
import { formatRecalledMemoriesText } from "./recalled-memories.js";
|
|
42
46
|
import { formatSenderIdentityText } from "./sender-identity.js";
|
|
43
47
|
import { formatSessionContextText } from "./session-context.js";
|
|
44
|
-
import { filterSkills } from "./skill-relevance.js";
|
|
45
|
-
import { STIGMER_LOCAL_STATE_DIR } from "./workspace/stigmer-link.js";
|
|
46
48
|
/**
|
|
47
49
|
* The present standing sections in the one ruled order. The order is the
|
|
48
50
|
* doctrine, stated once:
|
|
@@ -130,35 +132,4 @@ export function inputFileLines(files, vision, downloadUrlKind) {
|
|
|
130
132
|
vision: vision ? visionDisclosureLines(vision.inlineFilenames, vision.notViewable) : [],
|
|
131
133
|
};
|
|
132
134
|
}
|
|
133
|
-
/**
|
|
134
|
-
* The relevance selection over the turn's message (`skill-relevance.ts`):
|
|
135
|
-
* below `SKILL_COUNT_THRESHOLD` every skill is highlighted; at and above it,
|
|
136
|
-
* the skills the message's terms reach are highlighted and the rest are
|
|
137
|
-
* named, so the agent can still activate one on its own judgement (the Agent
|
|
138
|
-
* Skills spec's progressive disclosure: metadata up front, instructions on
|
|
139
|
-
* demand). The native harness calls this on every turn; the Cursor harness
|
|
140
|
-
* lists every skill today; adopting the selection there is an open item.
|
|
141
|
-
*/
|
|
142
|
-
export function selectSkillsForPrompt(userMessage, skills) {
|
|
143
|
-
const filter = filterSkills(userMessage, skills.map((s) => s.name), skills.map((s) => s.description));
|
|
144
|
-
return {
|
|
145
|
-
highlighted: filter.includedIndices.map((i) => skills[i]),
|
|
146
|
-
alsoAvailable: filter.excludedNames,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* The tool-neutral sentence that names the skills a prompt did not highlight
|
|
151
|
-
* (`SkillSelection.alsoAvailable`), so the agent can activate one by reading
|
|
152
|
-
* its SKILL.md at the mounted path. The sentence names no tool, so it serves
|
|
153
|
-
* any harness; the heading above it is the builder's framing. Empty for no
|
|
154
|
-
* names.
|
|
155
|
-
*/
|
|
156
|
-
export function alsoAvailableSkillsNote(excludedNames) {
|
|
157
|
-
if (excludedNames.length === 0)
|
|
158
|
-
return "";
|
|
159
|
-
const names = excludedNames.map((n) => `\`${n}\``).join(", ");
|
|
160
|
-
return (`These skills are installed but were not highlighted above: ${names}. ` +
|
|
161
|
-
"If you determine one of them is relevant to your task, " +
|
|
162
|
-
`read its SKILL.md at \`${STIGMER_LOCAL_STATE_DIR}/skills/<name>/SKILL.md\` to activate it.`);
|
|
163
|
-
}
|
|
164
135
|
//# sourceMappingURL=prompt-sections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-sections.js","sourceRoot":"","sources":["../../src/shared/prompt-sections.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt-sections.js","sourceRoot":"","sources":["../../src/shared/prompt-sections.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,8 @@
|
|
|
14
14
|
* into its prompt in its own placement. Moved from
|
|
15
15
|
* `activities/execute-cursor/` in #1070; the native harness's twin
|
|
16
16
|
* (`skill-writer.ts` `fetchSkillsByRefs` + `mountSkills`) retired in #1096,
|
|
17
|
-
* and the module itself with it
|
|
18
|
-
*
|
|
19
|
-
* skills path for every harness.
|
|
17
|
+
* and the module itself with it. This is the one skills path for every
|
|
18
|
+
* harness.
|
|
20
19
|
*
|
|
21
20
|
* The mount is cached by the skill's content-addressed version hash
|
|
22
21
|
* (stigmer/stigmer#672): metadata is fetched on every execution (that keeps
|
|
@@ -14,9 +14,8 @@
|
|
|
14
14
|
* into its prompt in its own placement. Moved from
|
|
15
15
|
* `activities/execute-cursor/` in #1070; the native harness's twin
|
|
16
16
|
* (`skill-writer.ts` `fetchSkillsByRefs` + `mountSkills`) retired in #1096,
|
|
17
|
-
* and the module itself with it
|
|
18
|
-
*
|
|
19
|
-
* skills path for every harness.
|
|
17
|
+
* and the module itself with it. This is the one skills path for every
|
|
18
|
+
* harness.
|
|
20
19
|
*
|
|
21
20
|
* The mount is cached by the skill's content-addressed version hash
|
|
22
21
|
* (stigmer/stigmer#672): metadata is fetched on every execution (that keeps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-resolver.js","sourceRoot":"","sources":["../../src/shared/skill-resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skill-resolver.js","sourceRoot":"","sources":["../../src/shared/skill-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,8 +71,3 @@ export declare function stdioCredentialEnv(credential: string | null): Record<st
|
|
|
71
71
|
* in that warning (e.g. "channel messaging").
|
|
72
72
|
*/
|
|
73
73
|
export declare function injectSynthesizedAttachment(resolvedServers: ResolvedMcpServer[], attachment: ResolvedMcpServer, label: string): ResolvedMcpServer[];
|
|
74
|
-
/**
|
|
75
|
-
* The gRPC dial target (host:port) for a backend endpoint URL — the
|
|
76
|
-
* shape STIGMER_SERVER_ADDRESS wants (the bridge warns on schemes).
|
|
77
|
-
*/
|
|
78
|
-
export declare function grpcTarget(endpoint: string): string;
|
|
@@ -56,16 +56,4 @@ export function injectSynthesizedAttachment(resolvedServers, attachment, label)
|
|
|
56
56
|
attachment,
|
|
57
57
|
];
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
* The gRPC dial target (host:port) for a backend endpoint URL — the
|
|
61
|
-
* shape STIGMER_SERVER_ADDRESS wants (the bridge warns on schemes).
|
|
62
|
-
*/
|
|
63
|
-
export function grpcTarget(endpoint) {
|
|
64
|
-
try {
|
|
65
|
-
return new URL(endpoint).host;
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return endpoint;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
59
|
//# sourceMappingURL=synthesized-attachment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesized-attachment.js","sourceRoot":"","sources":["../../src/shared/synthesized-attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAyB;IAEzB,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,EAAE;QAC7C,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE;QACxC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,eAAoC,EACpC,UAA6B,EAC7B,KAAa;IAEb,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,oBAAoB,UAAU,CAAC,IAAI,yBAAyB,KAAK,GAAG;YACpE,kDAAkD,CACnD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;QAC5D,UAAU;KACX,CAAC;AACJ,CAAC
|
|
1
|
+
{"version":3,"file":"synthesized-attachment.js","sourceRoot":"","sources":["../../src/shared/synthesized-attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAyB;IAEzB,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,EAAE;QAC7C,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE;QACxC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,eAAoC,EACpC,UAA6B,EAC7B,KAAa;IAEb,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,oBAAoB,UAAU,CAAC,IAAI,yBAAyB,KAAK,GAAG;YACpE,kDAAkD,CACnD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;QAC5D,UAAU;KACX,CAAC;AACJ,CAAC"}
|