@stigmer/runner 3.40.1 → 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/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.js +7 -7
- 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/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/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__/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__/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/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 +7 -7
- 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__/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/synthesized-attachment.ts +0 -12
- package/src/shared/tool-rounds.ts +70 -24
- package/src/shared/workspace/__tests__/stigmer-link.test.ts +107 -10
- package/src/shared/workspace/platform-dir.ts +19 -1
- 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
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ExecutionConfig.max_tool_rounds
|
|
2
|
+
* ExecutionConfig.max_tool_rounds: the round budget, its backstop, and the
|
|
3
|
+
* signal that the budget ended a turn.
|
|
3
4
|
*
|
|
4
5
|
* Implements the proto contract (agentexecution/v1/spec.proto):
|
|
5
|
-
* - 0 / unset = unlimited
|
|
6
|
-
*
|
|
6
|
+
* - 0 / unset = unlimited: no round limit and no recursionLimit, preserving
|
|
7
|
+
* the run-until-done + loop-detection posture.
|
|
7
8
|
* - When set, valid range is 10–1000 rounds; out-of-range values are
|
|
8
9
|
* clamped to the nearest bound with a warning log.
|
|
9
|
-
* -
|
|
10
|
-
*
|
|
11
|
-
* node; ×6 is the contract's floor estimate.
|
|
10
|
+
* - A round is one model response that proposes one or more tool calls,
|
|
11
|
+
* followed by their execution; parallel calls are one round.
|
|
12
12
|
*
|
|
13
|
-
* The
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* The budget is COUNTED, not estimated. `middleware/execution-budget.ts`
|
|
14
|
+
* counts rounds where the model is called and throws
|
|
15
|
+
* {@link ToolRoundLimitError} before round N+1's model call, so N rounds
|
|
16
|
+
* run on every middleware stack. The count and the "~80% of budget"
|
|
17
|
+
* advisory live in that one middleware, so they can never disagree. Until
|
|
18
|
+
* #1113 the budget was LangGraph's recursion limit at rounds × 6 super-steps,
|
|
19
|
+
* and because every middleware hook is its own graph node, how many rounds
|
|
20
|
+
* fitted moved whenever the stack did.
|
|
21
|
+
*
|
|
22
|
+
* LangGraph's recursion limit stays only as a backstop
|
|
23
|
+
* ({@link backstopRecursionLimit}): generous enough never to bind before the
|
|
24
|
+
* round count on any stack, it halts a graph that loops without calling the
|
|
25
|
+
* model. Either stop is the same outcome ({@link isToolCallBudgetStop}).
|
|
16
26
|
*
|
|
17
27
|
* The knob and its terminal copy live together (the `cost-guard.ts` shape):
|
|
18
28
|
* when the budget is exhausted the adapter ends its turn `tool_call_limit`
|
|
@@ -20,20 +30,27 @@
|
|
|
20
30
|
* below — the platform deliberately stopped the run, work is checkpointed,
|
|
21
31
|
* and the conversation continues on the next message.
|
|
22
32
|
*/
|
|
23
|
-
export declare const SUPER_STEPS_PER_ROUND = 6;
|
|
24
33
|
export declare const MIN_TOOL_ROUNDS = 10;
|
|
25
34
|
export declare const MAX_TOOL_ROUNDS = 1000;
|
|
26
35
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
36
|
+
* Super-steps per round the backstop allows: well above the graph nodes one
|
|
37
|
+
* round costs on any stack the runner builds (about five today), so the
|
|
38
|
+
* round count, never the backstop, is what a bounded run meets.
|
|
39
|
+
*/
|
|
40
|
+
export declare const SUPER_STEPS_BACKSTOP_PER_ROUND = 20;
|
|
41
|
+
/**
|
|
42
|
+
* The advisory-only round budget used when max_tool_rounds is unset: high
|
|
43
|
+
* enough to never fire on a healthy run. Deliberately NOT enforced — unset
|
|
44
|
+
* means unlimited per the proto contract.
|
|
30
45
|
*/
|
|
31
|
-
export declare const
|
|
46
|
+
export declare const UNBOUNDED_ADVISORY_TOOL_ROUNDS = 1000;
|
|
32
47
|
/**
|
|
33
|
-
* The
|
|
34
|
-
* unbounded (max_tool_rounds 0/unset — the
|
|
48
|
+
* The round budget for a turn, clamped to the valid range, or null when the
|
|
49
|
+
* execution is unbounded (max_tool_rounds 0/unset — the default posture).
|
|
35
50
|
*/
|
|
36
|
-
export declare function
|
|
51
|
+
export declare function resolveToolRoundLimit(maxToolRounds: number | undefined): number | null;
|
|
52
|
+
/** The recursionLimit backstop for a bounded turn's invoke config; see {@link SUPER_STEPS_BACKSTOP_PER_ROUND}. */
|
|
53
|
+
export declare function backstopRecursionLimit(toolRoundLimit: number): number;
|
|
37
54
|
/**
|
|
38
55
|
* Stable prefix of the tool-call-limit terminal error. This is a cross-repo
|
|
39
56
|
* contract: consumers that need to distinguish "ran out of tool-call budget"
|
|
@@ -53,10 +70,21 @@ export declare function formatToolCallLimitError(): string;
|
|
|
53
70
|
*/
|
|
54
71
|
export declare const TOOL_CALL_LIMIT_USER_COPY: string;
|
|
55
72
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
|
|
60
|
-
|
|
73
|
+
* The execution budget's stop: thrown by `middleware/execution-budget.ts` in
|
|
74
|
+
* place of round N+1's model call, so the graph ends on round N's tool
|
|
75
|
+
* results with no proposed call left unexecuted.
|
|
76
|
+
*/
|
|
77
|
+
export declare class ToolRoundLimitError extends Error {
|
|
78
|
+
readonly toolRoundLimit: number;
|
|
79
|
+
constructor(toolRoundLimit: number);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Whether an error thrown out of a LangGraph run is the tool-call budget
|
|
83
|
+
* ending the turn — the budget's own signal, not a failure: the adapter ends
|
|
84
|
+
* the turn `tool_call_limit`. Two producers, one outcome: the round count's
|
|
85
|
+
* {@link ToolRoundLimitError}, which reaches the turn wrapped in LangChain's
|
|
86
|
+
* `MiddlewareError` once per `wrapModelCall` layer (so the cause chain is
|
|
87
|
+
* walked, as `unwrapModelError` does for a model error), and the backstop's
|
|
88
|
+
* `GraphRecursionError`.
|
|
61
89
|
*/
|
|
62
|
-
export declare function
|
|
90
|
+
export declare function isToolCallBudgetStop(err: unknown): boolean;
|