@stigmer/runner 3.9.0 → 3.11.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 +12 -1
- package/dist/.build-fingerprint +1 -1
- package/dist/activities/call-llm.js +9 -10
- package/dist/activities/call-llm.js.map +1 -1
- package/dist/activities/classify-tool-approvals.d.ts +2 -1
- package/dist/activities/classify-tool-approvals.js +28 -2
- package/dist/activities/classify-tool-approvals.js.map +1 -1
- package/dist/activities/discover-mcp-server.d.ts +32 -0
- package/dist/activities/discover-mcp-server.js +162 -27
- package/dist/activities/discover-mcp-server.js.map +1 -1
- package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.d.ts +8 -0
- package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js +1 -1
- package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js.map +1 -1
- package/dist/activities/execute-cursor/approval-state.d.ts +28 -2
- package/dist/activities/execute-cursor/approval-state.js +7 -1
- package/dist/activities/execute-cursor/approval-state.js.map +1 -1
- package/dist/activities/execute-cursor/attachment-resolver.d.ts +14 -0
- package/dist/activities/execute-cursor/attachment-resolver.js +25 -4
- package/dist/activities/execute-cursor/attachment-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/blueprint-resolver.d.ts +1 -9
- package/dist/activities/execute-cursor/blueprint-resolver.js +6 -22
- package/dist/activities/execute-cursor/blueprint-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/env-resolver.js +3 -1
- package/dist/activities/execute-cursor/env-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/error-classifier.d.ts +40 -3
- package/dist/activities/execute-cursor/error-classifier.js +81 -3
- package/dist/activities/execute-cursor/error-classifier.js.map +1 -1
- package/dist/activities/execute-cursor/extract-structured-output.d.ts +29 -0
- package/dist/activities/execute-cursor/extract-structured-output.js +58 -0
- package/dist/activities/execute-cursor/extract-structured-output.js.map +1 -0
- package/dist/activities/execute-cursor/hook-script.d.ts +14 -3
- package/dist/activities/execute-cursor/hook-script.js +72 -10
- package/dist/activities/execute-cursor/hook-script.js.map +1 -1
- package/dist/activities/execute-cursor/index.d.ts +5 -1
- package/dist/activities/execute-cursor/index.js +59 -58
- package/dist/activities/execute-cursor/index.js.map +1 -1
- package/dist/activities/execute-cursor/mcp-resolver.d.ts +24 -1
- package/dist/activities/execute-cursor/mcp-resolver.js +5 -2
- package/dist/activities/execute-cursor/mcp-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/prompt-builder.d.ts +18 -4
- package/dist/activities/execute-cursor/prompt-builder.js +12 -7
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
- package/dist/activities/execute-cursor/turn-stream.js +4 -1
- package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
- package/dist/activities/execute-deep-agent/attachment-injector.d.ts +18 -1
- package/dist/activities/execute-deep-agent/attachment-injector.js +68 -23
- package/dist/activities/execute-deep-agent/attachment-injector.js.map +1 -1
- package/dist/activities/execute-deep-agent/environment.js +3 -1
- package/dist/activities/execute-deep-agent/environment.js.map +1 -1
- package/dist/activities/execute-deep-agent/index.js +15 -0
- package/dist/activities/execute-deep-agent/index.js.map +1 -1
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +7 -7
- package/dist/activities/execute-deep-agent/prompt-builder.js +8 -2
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/setup.d.ts +10 -0
- package/dist/activities/execute-deep-agent/setup.js +65 -26
- package/dist/activities/execute-deep-agent/setup.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +18 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.js +8 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +11 -4
- package/dist/activities/execute-deep-agent/subagent-wiring.js +13 -4
- package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -1
- package/dist/activities/hydrate-workflow-execution.js +3 -1
- package/dist/activities/hydrate-workflow-execution.js.map +1 -1
- package/dist/activities/workflow-event-activities.d.ts +28 -10
- package/dist/activities/workflow-event-activities.js +87 -58
- package/dist/activities/workflow-event-activities.js.map +1 -1
- package/dist/claimcheck/payload-codec.js +21 -1
- package/dist/claimcheck/payload-codec.js.map +1 -1
- package/dist/client/stigmer-client.d.ts +9 -4
- package/dist/client/stigmer-client.js +28 -15
- package/dist/client/stigmer-client.js.map +1 -1
- package/dist/encryption/config.d.ts +32 -0
- package/dist/encryption/config.js +68 -0
- package/dist/encryption/config.js.map +1 -0
- package/dist/encryption/index.d.ts +3 -0
- package/dist/encryption/index.js +3 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/encryption/payload-codec.d.ts +41 -0
- package/dist/encryption/payload-codec.js +130 -0
- package/dist/encryption/payload-codec.js.map +1 -0
- package/dist/payload-codecs.d.ts +16 -0
- package/dist/payload-codecs.js +38 -0
- package/dist/payload-codecs.js.map +1 -0
- package/dist/preflight.d.ts +31 -0
- package/dist/preflight.js +43 -0
- package/dist/preflight.js.map +1 -1
- package/dist/runner-manager.js +5 -15
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.js +5 -16
- package/dist/runner.js.map +1 -1
- package/dist/shared/approval-policy.d.ts +9 -3
- package/dist/shared/approval-policy.js +15 -6
- package/dist/shared/approval-policy.js.map +1 -1
- package/dist/shared/attachment-naming.d.ts +53 -0
- package/dist/shared/attachment-naming.js +59 -0
- package/dist/shared/attachment-naming.js.map +1 -0
- package/dist/shared/attachment-vision.d.ts +43 -2
- package/dist/shared/attachment-vision.js +72 -6
- package/dist/shared/attachment-vision.js.map +1 -1
- package/dist/shared/caller-identity.d.ts +23 -2
- package/dist/shared/caller-identity.js +36 -5
- package/dist/shared/caller-identity.js.map +1 -1
- package/dist/shared/channel-attachment.js +1 -0
- package/dist/shared/channel-attachment.js.map +1 -1
- package/dist/shared/checkpointer/http-saver.d.ts +42 -1
- package/dist/shared/checkpointer/http-saver.js +96 -8
- package/dist/shared/checkpointer/http-saver.js.map +1 -1
- package/dist/shared/conversation-attachment.js +1 -0
- package/dist/shared/conversation-attachment.js.map +1 -1
- package/dist/shared/datastore-attachment.d.ts +50 -7
- package/dist/shared/datastore-attachment.js +93 -11
- package/dist/shared/datastore-attachment.js.map +1 -1
- package/dist/shared/http-retry.d.ts +43 -0
- package/dist/shared/http-retry.js +50 -0
- package/dist/shared/http-retry.js.map +1 -0
- package/dist/shared/llm-backend.d.ts +275 -0
- package/dist/shared/llm-backend.js +425 -0
- package/dist/shared/llm-backend.js.map +1 -0
- package/dist/shared/llm-proxy.d.ts +8 -0
- package/dist/shared/llm-proxy.js +15 -0
- package/dist/shared/llm-proxy.js.map +1 -1
- package/dist/shared/mcp-enabled-tools.d.ts +57 -0
- package/dist/shared/mcp-enabled-tools.js +86 -0
- package/dist/shared/mcp-enabled-tools.js.map +1 -0
- package/dist/shared/mcp-manager.d.ts +17 -2
- package/dist/shared/mcp-manager.js +37 -25
- package/dist/shared/mcp-manager.js.map +1 -1
- package/dist/shared/mcp-resolver.d.ts +39 -2
- package/dist/shared/mcp-resolver.js +38 -2
- package/dist/shared/mcp-resolver.js.map +1 -1
- package/dist/shared/model-client.d.ts +12 -5
- package/dist/shared/model-client.js +138 -18
- package/dist/shared/model-client.js.map +1 -1
- package/dist/shared/model-error.js +198 -5
- package/dist/shared/model-error.js.map +1 -1
- package/dist/shared/model-registry.d.ts +20 -2
- package/dist/shared/model-registry.js +37 -2
- package/dist/shared/model-registry.js.map +1 -1
- package/dist/shared/plan-mode-permissions.d.ts +26 -0
- package/dist/shared/plan-mode-permissions.js +28 -0
- package/dist/shared/plan-mode-permissions.js.map +1 -0
- package/dist/worker.d.ts +2 -1
- package/dist/worker.js +2 -4
- package/dist/worker.js.map +1 -1
- package/dist/workflow-engine/types.d.ts +18 -0
- package/dist/workflow-engine/types.js.map +1 -1
- package/dist/workflows/call-agent-orchestrator.d.ts +9 -0
- package/dist/workflows/call-agent-orchestrator.js +1 -0
- package/dist/workflows/call-agent-orchestrator.js.map +1 -1
- package/dist/workflows/connect-mcp-server.js +7 -0
- package/dist/workflows/connect-mcp-server.js.map +1 -1
- package/dist/workflows/engine-core.js +23 -2
- package/dist/workflows/engine-core.js.map +1 -1
- package/dist/workflows/execute-from-execution.d.ts +1 -1
- package/dist/workflows/execute-from-execution.js +11 -1
- package/dist/workflows/execute-from-execution.js.map +1 -1
- package/package.json +8 -2
- package/src/__tests__/claimcheck-codec.test.ts +36 -0
- package/src/__tests__/encryption-codec.test.ts +234 -0
- package/src/__tests__/fixtures/encrypted-payload-fixture.json +15 -0
- package/src/__tests__/history-encryption-e2e.test.ts +243 -0
- package/src/__tests__/preflight.test.ts +50 -2
- package/src/activities/__tests__/call-llm.test.ts +75 -0
- package/src/activities/__tests__/classify-tool-approvals.test.ts +117 -1
- package/src/activities/__tests__/discover-mcp-server.hang.test.ts +103 -0
- package/src/activities/__tests__/discover-mcp-server.test.ts +203 -0
- package/src/activities/__tests__/workflow-event-activities.test.ts +107 -8
- package/src/activities/call-llm.ts +9 -16
- package/src/activities/classify-tool-approvals.ts +34 -4
- package/src/activities/discover-mcp-server.ts +190 -32
- package/src/activities/execute-cursor/__test-utils__/cursor-hook-harness.ts +9 -0
- package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +14 -0
- package/src/activities/execute-cursor/__tests__/attachment-resolver.test.ts +92 -0
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +40 -14
- package/src/activities/execute-cursor/__tests__/error-classifier-extraction.test.ts +208 -0
- package/src/activities/execute-cursor/__tests__/extract-structured-output.test.ts +120 -0
- package/src/activities/execute-cursor/__tests__/hook-script.test.ts +93 -0
- package/src/activities/execute-cursor/__tests__/mcp-resolver.test.ts +125 -0
- package/src/activities/execute-cursor/__tests__/prompt-builder-delegation.test.ts +1 -1
- package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +13 -0
- package/src/activities/execute-cursor/approval-state.ts +30 -1
- package/src/activities/execute-cursor/attachment-resolver.ts +38 -3
- package/src/activities/execute-cursor/blueprint-resolver.ts +7 -27
- package/src/activities/execute-cursor/env-resolver.ts +3 -1
- package/src/activities/execute-cursor/error-classifier.ts +91 -4
- package/src/activities/execute-cursor/extract-structured-output.ts +72 -0
- package/src/activities/execute-cursor/hook-script.ts +74 -10
- package/src/activities/execute-cursor/index.ts +63 -72
- package/src/activities/execute-cursor/mcp-resolver.ts +36 -2
- package/src/activities/execute-cursor/prompt-builder.ts +34 -9
- package/src/activities/execute-cursor/turn-stream.ts +5 -2
- package/src/activities/execute-deep-agent/__tests__/attachment-injector.test.ts +132 -8
- package/src/activities/execute-deep-agent/__tests__/datastore-degradation.test.ts +104 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-reject.test.ts +2 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-approve-all.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-history.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +34 -5
- package/src/activities/execute-deep-agent/__tests__/sequential-gate-resume.test.ts +1 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-plan-mode-permissions.test.ts +173 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +12 -7
- package/src/activities/execute-deep-agent/attachment-injector.ts +94 -30
- package/src/activities/execute-deep-agent/environment.ts +3 -1
- package/src/activities/execute-deep-agent/index.ts +20 -0
- package/src/activities/execute-deep-agent/prompt-builder.ts +20 -10
- package/src/activities/execute-deep-agent/setup.ts +86 -31
- package/src/activities/execute-deep-agent/subagent-transformer.ts +23 -1
- package/src/activities/execute-deep-agent/subagent-wiring.ts +14 -4
- package/src/activities/hydrate-workflow-execution.ts +3 -1
- package/src/activities/workflow-event-activities.ts +96 -69
- package/src/claimcheck/payload-codec.ts +33 -1
- package/src/client/__tests__/stigmer-client.test.ts +8 -8
- package/src/client/stigmer-client.ts +32 -18
- package/src/encryption/config.ts +91 -0
- package/src/encryption/index.ts +3 -0
- package/src/encryption/payload-codec.ts +152 -0
- package/src/payload-codecs.ts +56 -0
- package/src/preflight.ts +45 -0
- package/src/runner-manager.ts +6 -24
- package/src/runner.ts +6 -25
- package/src/shared/__tests__/approval-policy.test.ts +82 -39
- package/src/shared/__tests__/attachment-naming.test.ts +159 -0
- package/src/shared/__tests__/attachment-vision.test.ts +97 -0
- package/src/shared/__tests__/bedrock-adapter.test.ts +213 -0
- package/src/shared/__tests__/bedrock-seam.test.ts +390 -0
- package/src/shared/__tests__/caller-identity.test.ts +25 -0
- package/src/shared/__tests__/channel-attachment.test.ts +1 -1
- package/src/shared/__tests__/connect-backfill.test.ts +1 -0
- package/src/shared/__tests__/conversation-attachment.test.ts +1 -1
- package/src/shared/__tests__/datastore-attachment.test.ts +129 -1
- package/src/shared/__tests__/foundry-adapter.test.ts +276 -0
- package/src/shared/__tests__/foundry-seam.test.ts +482 -0
- package/src/shared/__tests__/http-retry.test.ts +67 -0
- package/src/shared/__tests__/llm-backend.test.ts +616 -0
- package/src/shared/__tests__/mcp-enabled-tools.test.ts +86 -0
- package/src/shared/__tests__/mcp-manager.test.ts +170 -2
- package/src/shared/__tests__/mcp-resolver.test.ts +146 -3
- package/src/shared/__tests__/model-client.test.ts +154 -0
- package/src/shared/__tests__/model-error.test.ts +289 -1
- package/src/shared/__tests__/model-registry.test.ts +71 -0
- package/src/shared/__tests__/synthesized-attachment.test.ts +1 -0
- package/src/shared/__tests__/vertex-adapter.test.ts +169 -0
- package/src/shared/__tests__/vertex-seam.test.ts +295 -0
- package/src/shared/approval-policy.ts +14 -7
- package/src/shared/attachment-naming.ts +78 -0
- package/src/shared/attachment-vision.ts +92 -9
- package/src/shared/caller-identity.ts +40 -5
- package/src/shared/channel-attachment.ts +1 -0
- package/src/shared/checkpointer/__tests__/http-saver.test.ts +196 -1
- package/src/shared/checkpointer/http-saver.ts +117 -9
- package/src/shared/conversation-attachment.ts +1 -0
- package/src/shared/datastore-attachment.ts +106 -11
- package/src/shared/http-retry.ts +50 -0
- package/src/shared/llm-backend.ts +544 -0
- package/src/shared/llm-proxy.ts +15 -0
- package/src/shared/mcp-enabled-tools.ts +105 -0
- package/src/shared/mcp-manager.ts +43 -26
- package/src/shared/mcp-resolver.ts +73 -2
- package/src/shared/model-client.ts +161 -19
- package/src/shared/model-error.ts +222 -4
- package/src/shared/model-registry.ts +50 -2
- package/src/shared/plan-mode-permissions.ts +30 -0
- package/src/worker.ts +4 -5
- package/src/workflow-engine/types.ts +18 -0
- package/src/workflows/__tests__/execute-serverless-workflow.test.ts +68 -2
- package/src/workflows/call-agent-orchestrator.ts +10 -0
- package/src/workflows/connect-mcp-server.ts +7 -0
- package/src/workflows/engine-core.ts +23 -2
- package/src/workflows/execute-from-execution.ts +12 -2
package/README.md
CHANGED
|
@@ -173,9 +173,20 @@ All configuration is environment-driven. Names and defaults below are verified a
|
|
|
173
173
|
| `LOCAL_ARTIFACT_PATH` | Local storage | No | `~/.stigmer/data/artifacts` | Filesystem root of the local artifact store. **Must equal the stigmer-server's `ARTIFACT_LOCAL_BASE_PATH`** — in local mode the server writes an artifact to `<ARTIFACT_LOCAL_BASE_PATH>/<key>` and the runner reads it from `<LOCAL_ARTIFACT_PATH>/<key>`, so a mismatch makes every storage-key attachment and offload fail to resolve. The defaults align out of the box; the CLI local daemon sets both explicitly. |
|
|
174
174
|
| `LOCAL_ARTIFACT_SERVE_URL` | Local storage | No | `http://localhost:7235` | Base URL of the server's artifact HTTP file server (its `ARTIFACT_HTTP_PORT`, default `GRPC_PORT + 1`). Used for blob downloads; the runner's own read-back goes straight to disk. |
|
|
175
175
|
|
|
176
|
+
### Payload encryption (Temporal history at rest)
|
|
177
|
+
|
|
178
|
+
The encryption codec encrypts every Temporal payload the runner produces (AES-256-GCM), so decrypted execution-context secrets never rest in workflow history or the Temporal UI. Payloads the runner did not encrypt (orchestrator inputs, signals, pre-rollout histories) pass through untouched. A key without its id — or a malformed key — fails the boot rather than silently running plaintext.
|
|
179
|
+
|
|
180
|
+
| Variable | Applies to | Required | Default | Purpose |
|
|
181
|
+
|----------|-----------|----------|---------|---------|
|
|
182
|
+
| `STIGMER_PAYLOAD_ENCRYPTION_KEY` | All | No | _(unset — encryption off)_ | Base64-encoded 32-byte AES-256 key. Setting it enables the codec. |
|
|
183
|
+
| `STIGMER_PAYLOAD_ENCRYPTION_KEY_ID` | Payload encryption | With the key | _(none)_ | Identifier stamped on every encrypted payload so rotation can tell keys apart. Required when the key is set. |
|
|
184
|
+
| `STIGMER_PAYLOAD_ENCRYPTION_SECONDARY_KEY` | Payload encryption | No | _(unset)_ | Decrypt-only key accepted during rotation windows (payloads written under the previous key stay readable). |
|
|
185
|
+
| `STIGMER_PAYLOAD_ENCRYPTION_SECONDARY_KEY_ID` | Payload encryption | With the secondary key | _(none)_ | Key id of the secondary key. |
|
|
186
|
+
|
|
176
187
|
### Claim-check (large Temporal payloads)
|
|
177
188
|
|
|
178
|
-
The claim-check codec offloads oversized Temporal payloads to artifact storage and passes a reference instead.
|
|
189
|
+
The claim-check codec offloads oversized Temporal payloads to artifact storage and passes a reference instead. When payload encryption is enabled, encryption runs first, so offloaded blobs are ciphertext.
|
|
179
190
|
|
|
180
191
|
| Variable | Applies to | Required | Default | Purpose |
|
|
181
192
|
|----------|-----------|----------|---------|---------|
|
package/dist/.build-fingerprint
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"hash":"
|
|
1
|
+
{"hash":"6319c9cd942eceb3","builtAt":"2026-08-12T04:47:59.364Z","fileCount":285}
|
|
@@ -23,6 +23,7 @@ import { inferProvider, stripProviderPrefix, } from "../shared/llm-proxy.js";
|
|
|
23
23
|
import { computeLlmCostMicros, ensureLoaded as ensurePricingLoaded } from "../shared/model-pricing.js";
|
|
24
24
|
import { resolveToApiModelId } from "../shared/model-registry.js";
|
|
25
25
|
import { buildChatModel } from "../shared/model-client.js";
|
|
26
|
+
import { checkDirectCredentials } from "../shared/llm-backend.js";
|
|
26
27
|
import { classifyModelCallError } from "../shared/model-error.js";
|
|
27
28
|
/**
|
|
28
29
|
* Stream a chat model invocation and collect the response.
|
|
@@ -108,17 +109,15 @@ export async function callLlmAction(config, runtimeEnv, executionId) {
|
|
|
108
109
|
const proxyActive = !!(proxyEndpoint && stigmerToken);
|
|
109
110
|
console.log(`[call-llm] model=${modelId} provider=${provider} proxy=${proxyActive} ` +
|
|
110
111
|
`structured=${!!config.response_schema} execution=${executionId}`);
|
|
111
|
-
// Direct mode (no proxy) requires
|
|
112
|
-
//
|
|
113
|
-
//
|
|
112
|
+
// Direct mode (no proxy) requires a usable credential path — the provider's
|
|
113
|
+
// own API key, or a configured model backend that authenticates itself
|
|
114
|
+
// (vertex uses Google ADC; requiring an Anthropic key there would reject a
|
|
115
|
+
// correctly-configured deployment). Validated here rather than in
|
|
116
|
+
// buildChatModel so the shared module stays free of Temporal failure types.
|
|
114
117
|
if (!proxyActive) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
if (provider === "anthropic" && !process.env.ANTHROPIC_API_KEY) {
|
|
120
|
-
throw ApplicationFailure.nonRetryable(`ANTHROPIC_API_KEY is not set and no proxy is configured. ` +
|
|
121
|
-
`Set the API key in your environment or connect to a Stigmer Cloud deployment.`, "LLM_MISSING_API_KEY");
|
|
118
|
+
const missing = checkDirectCredentials(provider);
|
|
119
|
+
if (missing !== null) {
|
|
120
|
+
throw ApplicationFailure.nonRetryable(missing, "LLM_MISSING_API_KEY");
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
123
|
// Anthropic requires an explicit maxTokens; preserve the 4096 default here
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-llm.js","sourceRoot":"","sources":["../../src/activities/call-llm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"call-llm.js","sourceRoot":"","sources":["../../src/activities/call-llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,8 @@ export interface ToolApprovalResult {
|
|
|
44
44
|
from_destructive_hint?: boolean;
|
|
45
45
|
}
|
|
46
46
|
export interface ClassifyToolsOptions {
|
|
47
|
-
|
|
47
|
+
/** Null when the deployment has no proxy — the runner calls providers directly. */
|
|
48
|
+
proxyEndpoint: string | null;
|
|
48
49
|
stigmerToken: string | null;
|
|
49
50
|
primaryModel: string;
|
|
50
51
|
}
|
|
@@ -22,6 +22,8 @@ import { SystemMessage, HumanMessage } from "@langchain/core/messages";
|
|
|
22
22
|
import { activityStarted, activityFinished } from "../idle-watchdog.js";
|
|
23
23
|
import { getSummarizationModel } from "../shared/model-registry.js";
|
|
24
24
|
import { buildChatModel } from "../shared/model-client.js";
|
|
25
|
+
import { checkDirectCredentials } from "../shared/llm-backend.js";
|
|
26
|
+
import { tryInferProvider } from "../shared/llm-proxy.js";
|
|
25
27
|
const BATCH_SIZE = 40;
|
|
26
28
|
const MAX_TOKENS_PER_TOOL = 60;
|
|
27
29
|
const MIN_MAX_TOKENS = 4096;
|
|
@@ -88,6 +90,23 @@ export async function classifyTools(input, options) {
|
|
|
88
90
|
return [];
|
|
89
91
|
}
|
|
90
92
|
const model = await getSummarizationModel(options.primaryModel);
|
|
93
|
+
// Direct mode with no credential path fails closed up front, with one
|
|
94
|
+
// actionable message instead of a provider 401 per batch. The message
|
|
95
|
+
// names the economy model and its provider because classification's
|
|
96
|
+
// provider follows the economy-model resolution, not the operator's key:
|
|
97
|
+
// "OPENAI_API_KEY is missing" is baffling to an operator holding an
|
|
98
|
+
// Anthropic key unless the log says which model classification wanted.
|
|
99
|
+
if (!options.proxyEndpoint) {
|
|
100
|
+
const provider = tryInferProvider(model);
|
|
101
|
+
const missing = provider === null ? null : checkDirectCredentials(provider);
|
|
102
|
+
if (missing !== null) {
|
|
103
|
+
console.warn(`[ClassifyToolApprovals] Cannot classify ${tools.length} tool(s) for ` +
|
|
104
|
+
`'${serverName}': the classifier model '${model}' (${provider}) has no ` +
|
|
105
|
+
`credential path — failing closed, every tool requires approval until ` +
|
|
106
|
+
`a reconnect re-classifies it. ${missing}`);
|
|
107
|
+
return fallbackApprovals(tools);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
91
110
|
const batches = [];
|
|
92
111
|
for (let i = 0; i < tools.length; i += BATCH_SIZE) {
|
|
93
112
|
batches.push(tools.slice(i, i + BATCH_SIZE));
|
|
@@ -141,7 +160,7 @@ async function classifyBatch(params) {
|
|
|
141
160
|
// primary this routes to Claude, not the hardcoded OpenAI path it used to.
|
|
142
161
|
const { model: llm } = await buildChatModel({
|
|
143
162
|
modelName: model,
|
|
144
|
-
proxyEndpoint,
|
|
163
|
+
proxyEndpoint: proxyEndpoint ?? undefined,
|
|
145
164
|
stigmerToken: stigmerToken ?? undefined,
|
|
146
165
|
headerScope: { mcpServerId: mcpServerId ?? undefined },
|
|
147
166
|
maxTokens,
|
|
@@ -244,8 +263,15 @@ export function createClassifyToolApprovalsActivities(config) {
|
|
|
244
263
|
activityStarted();
|
|
245
264
|
try {
|
|
246
265
|
console.log(`[ClassifyToolApprovals] Activity started: ${input.tools.length} tools for '${input.serverName}'`);
|
|
266
|
+
// Only a real proxy is an LLM proxy. stigmerBackendEndpoint (the
|
|
267
|
+
// gRPC control plane) serves no /v1/proxy/llm route — coercing it
|
|
268
|
+
// into one here used to 404 every classification in unproxied OSS
|
|
269
|
+
// and silently disable the vertex backend for this activity. (The
|
|
270
|
+
// registry fetch legitimately falls back to the backend endpoint —
|
|
271
|
+
// see shared/registry-endpoint.ts — because the control plane DOES
|
|
272
|
+
// serve /v1/proxy/model-registry; that fallback does not port here.)
|
|
247
273
|
return await classifyTools(input, {
|
|
248
|
-
proxyEndpoint: config.proxyEndpoint
|
|
274
|
+
proxyEndpoint: config.proxyEndpoint,
|
|
249
275
|
stigmerToken: config.stigmerToken,
|
|
250
276
|
primaryModel: config.primaryModel,
|
|
251
277
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-tool-approvals.js","sourceRoot":"","sources":["../../src/activities/classify-tool-approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"classify-tool-approvals.js","sourceRoot":"","sources":["../../src/activities/classify-tool-approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* Output: DiscoverMcpServerOutput
|
|
19
19
|
*/
|
|
20
20
|
import { StigmerClient } from "../client/stigmer-client.js";
|
|
21
|
+
import { type ResolvedMcpServer } from "../shared/mcp-resolver.js";
|
|
21
22
|
import { type McpTransportPosture } from "../shared/mcp-transport-guard.js";
|
|
22
23
|
import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
|
|
23
24
|
import type { Config } from "../config.js";
|
|
@@ -55,6 +56,24 @@ export interface ToolApprovalDict {
|
|
|
55
56
|
requiresApproval: boolean;
|
|
56
57
|
message: string;
|
|
57
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Raised when the credentials a server declares could not be delivered to
|
|
61
|
+
* discovery — the ExecutionContext read failed, came back empty, or returned
|
|
62
|
+
* redacted values (issue #239).
|
|
63
|
+
*
|
|
64
|
+
* Exists because the alternative is strictly worse: proceeding without the
|
|
65
|
+
* declared credentials either dies later as an opaque
|
|
66
|
+
* PlaceholderResolutionError (when a header/arg templates the missing var) or
|
|
67
|
+
* dials the endpoint with a garbage credential and strands the connect in the
|
|
68
|
+
* 4xx → SSE-fallback limbo this file's init bounds exist to contain. Failing
|
|
69
|
+
* here names the ROOT cause — credential delivery — instead of its downstream
|
|
70
|
+
* symptom. The message is user-facing and self-contained: it survives the
|
|
71
|
+
* Temporal boundary and the Go/Java connect wrappers include it in the
|
|
72
|
+
* user-facing failure text.
|
|
73
|
+
*/
|
|
74
|
+
export declare class CredentialResolutionError extends Error {
|
|
75
|
+
constructor(message: string);
|
|
76
|
+
}
|
|
58
77
|
export declare function toolsFingerprint(tools: DiscoveredToolResult[]): string;
|
|
59
78
|
interface PreviousState {
|
|
60
79
|
fingerprint: string;
|
|
@@ -75,6 +94,19 @@ export interface DiscoverDeps {
|
|
|
75
94
|
transportPosture: McpTransportPosture;
|
|
76
95
|
}
|
|
77
96
|
export declare function discoverMcpServer(input: DiscoverMcpServerInput, deps: DiscoverDeps): Promise<DiscoverMcpServerOutput>;
|
|
97
|
+
/**
|
|
98
|
+
* Pick the session-init bound for a resolved server's transport.
|
|
99
|
+
*
|
|
100
|
+
* Exported for tests; pure so the timeout choice (the load-bearing half of
|
|
101
|
+
* the issue-#239 fix) can be pinned without wiring a slow clock.
|
|
102
|
+
*/
|
|
103
|
+
export declare function initTimeoutMsFor(connectionType: ResolvedMcpServer["connectionType"]): number;
|
|
104
|
+
/**
|
|
105
|
+
* The user-facing message for a session-init timeout. Names the endpoint (or
|
|
106
|
+
* command) so the failure is diagnosable from the message alone, and explains
|
|
107
|
+
* the known silent-hang shape for HTTP endpoints — issue #239's mechanism.
|
|
108
|
+
*/
|
|
109
|
+
export declare function initTimeoutMessageFor(slug: string, resolved: ResolvedMcpServer): string;
|
|
78
110
|
export declare function createDiscoverMcpServerActivities(config: Config): {
|
|
79
111
|
DiscoverMcpServerCapabilities: (input: DiscoverMcpServerInput) => Promise<DiscoverMcpServerOutput>;
|
|
80
112
|
};
|
|
@@ -26,11 +26,63 @@ import { toMcpClientConfig } from "../shared/mcp-manager.js";
|
|
|
26
26
|
import { assertTransportAllowed, resolveMcpTransportPosture, } from "../shared/mcp-transport-guard.js";
|
|
27
27
|
import { detectOAuthChallenge } from "../shared/mcp-oauth-detect.js";
|
|
28
28
|
import { injectAnonymousCallerIdentityForDiscovery } from "../shared/caller-identity.js";
|
|
29
|
+
import { startHeartbeat } from "../shared/heartbeat.js";
|
|
29
30
|
import { withTimeout } from "../shared/with-timeout.js";
|
|
30
|
-
|
|
31
|
+
/**
|
|
32
|
+
* MCP session-init bounds, per transport (issue #239).
|
|
33
|
+
*
|
|
34
|
+
* A remote endpoint that accepts a connection but never completes the MCP
|
|
35
|
+
* handshake would otherwise hang initialization forever: the MCP SDK's SSE
|
|
36
|
+
* transport resolves only on the server's `endpoint` event, with no timer of
|
|
37
|
+
* its own, and mcp-adapters silently falls back to SSE whenever the
|
|
38
|
+
* streamable-HTTP POST is answered with a 4xx (monday.com's endpoint did
|
|
39
|
+
* exactly this — 4xx on POST, then a silently-open SSE stream).
|
|
40
|
+
*
|
|
41
|
+
* HTTP endpoints get a short bound: there is nothing to install or compile,
|
|
42
|
+
* so a healthy endpoint completes the handshake in seconds — a short bound is
|
|
43
|
+
* what converts the silent hang into a fast, actionable failure (with room for
|
|
44
|
+
* the 10s OAuth re-probe on the failure path). stdio servers keep the generous
|
|
45
|
+
* bound because their first run may compile or install packages (`go run`,
|
|
46
|
+
* `npx`) — the cold-start case (issue #243). The OSS server's connect-workflow
|
|
47
|
+
* run timeout (connectTimeout, controller/connect.go) is derived from the
|
|
48
|
+
* stdio bound + the classification floor, so both errors stay reachable.
|
|
49
|
+
*/
|
|
50
|
+
const HTTP_INIT_TIMEOUT_MS = 30_000;
|
|
51
|
+
const STDIO_INIT_TIMEOUT_MS = 270_000;
|
|
52
|
+
/**
|
|
53
|
+
* The server-side secret-redaction sentinel. Byte-for-byte the value both
|
|
54
|
+
* editions substitute for secret values a caller may not decrypt
|
|
55
|
+
* (`SecretEncryptionService.REDACTED_MARKER` in stigmer-cloud,
|
|
56
|
+
* `RedactedMarker` in the OSS Go server). Discovery dialing an
|
|
57
|
+
* endpoint with a redacted credential is guaranteed to fail confusingly
|
|
58
|
+
* (e.g. `Authorization: Bearer ***REDACTED***` → 401 → SSE-fallback limbo),
|
|
59
|
+
* so it is refused up front with an actionable error instead.
|
|
60
|
+
*/
|
|
61
|
+
const REDACTED_MARKER = "***REDACTED***";
|
|
31
62
|
const PLATFORM_INJECTABLE_MAP = {
|
|
32
63
|
STIGMER_SERVER_ADDRESS: "STIGMER_MCP_PUBLIC_ENDPOINT",
|
|
33
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Raised when the credentials a server declares could not be delivered to
|
|
67
|
+
* discovery — the ExecutionContext read failed, came back empty, or returned
|
|
68
|
+
* redacted values (issue #239).
|
|
69
|
+
*
|
|
70
|
+
* Exists because the alternative is strictly worse: proceeding without the
|
|
71
|
+
* declared credentials either dies later as an opaque
|
|
72
|
+
* PlaceholderResolutionError (when a header/arg templates the missing var) or
|
|
73
|
+
* dials the endpoint with a garbage credential and strands the connect in the
|
|
74
|
+
* 4xx → SSE-fallback limbo this file's init bounds exist to contain. Failing
|
|
75
|
+
* here names the ROOT cause — credential delivery — instead of its downstream
|
|
76
|
+
* symptom. The message is user-facing and self-contained: it survives the
|
|
77
|
+
* Temporal boundary and the Go/Java connect wrappers include it in the
|
|
78
|
+
* user-facing failure text.
|
|
79
|
+
*/
|
|
80
|
+
export class CredentialResolutionError extends Error {
|
|
81
|
+
constructor(message) {
|
|
82
|
+
super(message);
|
|
83
|
+
this.name = "CredentialResolutionError";
|
|
84
|
+
}
|
|
85
|
+
}
|
|
34
86
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
35
87
|
// Tools Fingerprint (pure, deterministic, safe in workflow code)
|
|
36
88
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -129,10 +181,9 @@ export async function discoverMcpServer(input, deps) {
|
|
|
129
181
|
}
|
|
130
182
|
const slug = mcpServer.metadata?.slug || mcpServerId;
|
|
131
183
|
const previousState = extractPreviousState(mcpServer);
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
: new Set();
|
|
184
|
+
const declaredEnv = mcpServer.spec.env ?? {};
|
|
185
|
+
const envVars = await resolveEnvVarsForDiscovery(stigmerClient, executionContextId ?? null, slug, declaredEnv);
|
|
186
|
+
const declaredEnvKeys = new Set(Object.keys(declaredEnv));
|
|
136
187
|
const platformEnv = injectPlatformEnv(declaredEnvKeys, envVars);
|
|
137
188
|
// Discovery runs with no session, so every declared caller-identity key
|
|
138
189
|
// resolves to the anonymous sentinel — without it, a server templating
|
|
@@ -148,7 +199,7 @@ export async function discoverMcpServer(input, deps) {
|
|
|
148
199
|
}
|
|
149
200
|
assertTransportAllowed(resolved.slug, resolved.connectionType, deps.transportPosture);
|
|
150
201
|
const connectionConfig = toMcpClientConfig([resolved]);
|
|
151
|
-
const { tools, resourceTemplates } = await connectAndDiscover(slug, connectionConfig);
|
|
202
|
+
const { tools, resourceTemplates } = await connectAndDiscover(slug, connectionConfig, resolved);
|
|
152
203
|
const newFp = toolsFingerprint(tools);
|
|
153
204
|
console.log(`[DiscoverMcpServer] Discovery complete for '${slug}': ` +
|
|
154
205
|
`${tools.length} tool(s), ${resourceTemplates.length} resource template(s)`);
|
|
@@ -164,43 +215,117 @@ export async function discoverMcpServer(input, deps) {
|
|
|
164
215
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
165
216
|
// Env Var Resolution
|
|
166
217
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
167
|
-
|
|
218
|
+
/**
|
|
219
|
+
* Resolve the discovery env from the connect flow's ExecutionContext,
|
|
220
|
+
* failing CLOSED when a server's declared credentials cannot be delivered.
|
|
221
|
+
*
|
|
222
|
+
* The strictness is keyed on whether the server declares any NON-OPTIONAL
|
|
223
|
+
* env var ("credentials expected"):
|
|
224
|
+
*
|
|
225
|
+
* - Credentials expected + the EC read errors, or the EC is missing/empty →
|
|
226
|
+
* {@link CredentialResolutionError}. The backend only creates a connect EC
|
|
227
|
+
* when it resolved credentials to deliver, so an unreadable or empty EC is
|
|
228
|
+
* a delivery failure (auth/scope refusal, transient backend error), never a
|
|
229
|
+
* normal state. Limping ahead was issue #239's failure mode: discovery died
|
|
230
|
+
* later as an opaque PlaceholderResolutionError or a doomed dial.
|
|
231
|
+
* - Any delivered value equal to the redaction sentinel →
|
|
232
|
+
* {@link CredentialResolutionError}, regardless of optionality. A redacted
|
|
233
|
+
* value means the server-side decrypt gate refused THIS runner's credential
|
|
234
|
+
* class/scope and fell closed to redaction — dialing with the literal
|
|
235
|
+
* sentinel can only produce a misleading 401.
|
|
236
|
+
* - No non-optional declarations → the old lenient path (warn and continue):
|
|
237
|
+
* servers declaring nothing (or only optional/injected keys like the
|
|
238
|
+
* caller-identity family) legitimately discover without an EC.
|
|
239
|
+
*/
|
|
240
|
+
async function resolveEnvVarsForDiscovery(client, executionContextId, slug, declaredEnv) {
|
|
241
|
+
const requiredKeys = Object.entries(declaredEnv)
|
|
242
|
+
.filter(([, decl]) => !decl.optional)
|
|
243
|
+
.map(([key]) => key);
|
|
244
|
+
const credentialsExpected = requiredKeys.length > 0;
|
|
168
245
|
if (!executionContextId)
|
|
169
246
|
return {};
|
|
247
|
+
let execCtx;
|
|
170
248
|
try {
|
|
171
|
-
|
|
172
|
-
if (!execCtx?.spec?.data || Object.keys(execCtx.spec.data).length === 0) {
|
|
173
|
-
console.warn(`[DiscoverMcpServer] ExecutionContext '${executionContextId}' not found ` +
|
|
174
|
-
`or empty — MCP server may not require environment variables`);
|
|
175
|
-
return {};
|
|
176
|
-
}
|
|
177
|
-
const envVars = {};
|
|
178
|
-
for (const [key, execValue] of Object.entries(execCtx.spec.data)) {
|
|
179
|
-
envVars[key] = execValue.value;
|
|
180
|
-
}
|
|
181
|
-
console.log(`[DiscoverMcpServer] Resolved ${Object.keys(envVars).length} env var(s) ` +
|
|
182
|
-
`from ExecutionContext '${executionContextId}'`);
|
|
183
|
-
return envVars;
|
|
249
|
+
execCtx = await client.getExecutionContextByExecutionId(executionContextId);
|
|
184
250
|
}
|
|
185
251
|
catch (err) {
|
|
252
|
+
const cause = err instanceof Error ? err.message : String(err);
|
|
253
|
+
if (credentialsExpected) {
|
|
254
|
+
throw new CredentialResolutionError(`Could not resolve the credentials MCP server '${slug}' requires ` +
|
|
255
|
+
`(${requiredKeys.join(", ")}): the connect credential store was ` +
|
|
256
|
+
`unreadable (${cause}). This is a platform-side delivery failure, ` +
|
|
257
|
+
`not a problem with your credentials — retry the connect, and if it ` +
|
|
258
|
+
`persists, re-run the OAuth sign-in or re-enter the credentials.`);
|
|
259
|
+
}
|
|
186
260
|
console.warn(`[DiscoverMcpServer] Failed to resolve ExecutionContext '${executionContextId}': ` +
|
|
187
|
-
`${
|
|
261
|
+
`${cause}`);
|
|
262
|
+
return {};
|
|
263
|
+
}
|
|
264
|
+
const data = execCtx?.spec?.data ?? {};
|
|
265
|
+
if (Object.keys(data).length === 0) {
|
|
266
|
+
if (credentialsExpected) {
|
|
267
|
+
throw new CredentialResolutionError(`MCP server '${slug}' requires ${requiredKeys.join(", ")}, but the ` +
|
|
268
|
+
`connect flow delivered no credentials. Re-run the OAuth sign-in ` +
|
|
269
|
+
`(or re-enter the credentials) and connect again.`);
|
|
270
|
+
}
|
|
271
|
+
console.warn(`[DiscoverMcpServer] ExecutionContext '${executionContextId}' not found ` +
|
|
272
|
+
`or empty — MCP server may not require environment variables`);
|
|
188
273
|
return {};
|
|
189
274
|
}
|
|
275
|
+
const redactedKeys = Object.entries(data)
|
|
276
|
+
.filter(([, execValue]) => execValue.value === REDACTED_MARKER)
|
|
277
|
+
.map(([key]) => key);
|
|
278
|
+
if (redactedKeys.length > 0) {
|
|
279
|
+
throw new CredentialResolutionError(`The credentials for MCP server '${slug}' were delivered redacted ` +
|
|
280
|
+
`(${redactedKeys.join(", ")}): the platform refused to decrypt them ` +
|
|
281
|
+
`for this runner. This is a platform-side authorization failure — ` +
|
|
282
|
+
`retry the connect, and report it if it persists.`);
|
|
283
|
+
}
|
|
284
|
+
const envVars = {};
|
|
285
|
+
for (const [key, execValue] of Object.entries(data)) {
|
|
286
|
+
envVars[key] = execValue.value;
|
|
287
|
+
}
|
|
288
|
+
console.log(`[DiscoverMcpServer] Resolved ${Object.keys(envVars).length} env var(s) ` +
|
|
289
|
+
`from ExecutionContext '${executionContextId}'`);
|
|
290
|
+
return envVars;
|
|
190
291
|
}
|
|
191
292
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
192
293
|
// MCP Connection + Enumeration
|
|
193
294
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
194
|
-
|
|
295
|
+
/**
|
|
296
|
+
* Pick the session-init bound for a resolved server's transport.
|
|
297
|
+
*
|
|
298
|
+
* Exported for tests; pure so the timeout choice (the load-bearing half of
|
|
299
|
+
* the issue-#239 fix) can be pinned without wiring a slow clock.
|
|
300
|
+
*/
|
|
301
|
+
export function initTimeoutMsFor(connectionType) {
|
|
302
|
+
return connectionType === "stdio" ? STDIO_INIT_TIMEOUT_MS : HTTP_INIT_TIMEOUT_MS;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* The user-facing message for a session-init timeout. Names the endpoint (or
|
|
306
|
+
* command) so the failure is diagnosable from the message alone, and explains
|
|
307
|
+
* the known silent-hang shape for HTTP endpoints — issue #239's mechanism.
|
|
308
|
+
*/
|
|
309
|
+
export function initTimeoutMessageFor(slug, resolved) {
|
|
310
|
+
const seconds = Math.round(initTimeoutMsFor(resolved.connectionType) / 1000);
|
|
311
|
+
if (resolved.connectionType === "stdio") {
|
|
312
|
+
return (`MCP server '${slug}' (command: ${resolved.command}) did not complete ` +
|
|
313
|
+
`MCP initialization within ${seconds}s. If this server requires ` +
|
|
314
|
+
`compilation or package installation on first run (e.g. go run, npx), ` +
|
|
315
|
+
`the cold start may have exceeded the discovery timeout.`);
|
|
316
|
+
}
|
|
317
|
+
return (`MCP server '${slug}' at ${resolved.url} did not complete MCP ` +
|
|
318
|
+
`initialization within ${seconds}s. The endpoint accepted the connection ` +
|
|
319
|
+
`but never finished the handshake — commonly an endpoint that rejects ` +
|
|
320
|
+
`streamable HTTP while leaving its SSE fallback stream silently open. ` +
|
|
321
|
+
`Verify the URL points at a live streamable-HTTP MCP endpoint.`);
|
|
322
|
+
}
|
|
323
|
+
async function connectAndDiscover(slug, connectionConfig, resolved) {
|
|
195
324
|
const client = new MultiServerMCPClient(connectionConfig);
|
|
196
325
|
const tools = [];
|
|
197
326
|
const resourceTemplates = [];
|
|
198
327
|
try {
|
|
199
|
-
|
|
200
|
-
`${Math.round(SESSION_INIT_TIMEOUT_MS / 1000)}s. If this server requires compilation or ` +
|
|
201
|
-
`package installation on first run (e.g. go run, npx), the cold ` +
|
|
202
|
-
`start may have exceeded the discovery timeout.`;
|
|
203
|
-
await withTimeout(SESSION_INIT_TIMEOUT_MS, timeoutMessage, async () => {
|
|
328
|
+
await withTimeout(initTimeoutMsFor(resolved.connectionType), () => initTimeoutMessageFor(slug, resolved), async () => {
|
|
204
329
|
await client.initializeConnections();
|
|
205
330
|
const mcpClient = await client.getClient(slug);
|
|
206
331
|
if (!mcpClient) {
|
|
@@ -287,6 +412,15 @@ export function createDiscoverMcpServerActivities(config) {
|
|
|
287
412
|
return {
|
|
288
413
|
DiscoverMcpServerCapabilities: async (input) => {
|
|
289
414
|
activityStarted();
|
|
415
|
+
// The connect workflow proxies this activity with a 60s heartbeatTimeout,
|
|
416
|
+
// so it MUST heartbeat: before this loop existed, any discovery slower
|
|
417
|
+
// than 60s (stdio cold start — issue #243) or wedged on a silent remote
|
|
418
|
+
// (issue #239) was killed by Temporal with an opaque heartbeat timeout
|
|
419
|
+
// instead of reaching this file's actionable init-timeout errors.
|
|
420
|
+
const hb = startHeartbeat(15_000, () => ({
|
|
421
|
+
phase: "discovering_mcp_server",
|
|
422
|
+
mcpServerId: input.mcpServerId,
|
|
423
|
+
}));
|
|
290
424
|
try {
|
|
291
425
|
return await discoverMcpServer(input, {
|
|
292
426
|
stigmerClient,
|
|
@@ -294,6 +428,7 @@ export function createDiscoverMcpServerActivities(config) {
|
|
|
294
428
|
});
|
|
295
429
|
}
|
|
296
430
|
finally {
|
|
431
|
+
hb.stop();
|
|
297
432
|
activityFinished();
|
|
298
433
|
}
|
|
299
434
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-mcp-server.js","sourceRoot":"","sources":["../../src/activities/discover-mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discover-mcp-server.js","sourceRoot":"","sources":["../../src/activities/discover-mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,6 +98,14 @@ export interface CursorHookHarnessOptions {
|
|
|
98
98
|
* non-pausing "unattended" kind and the adapt-and-explain agent message.
|
|
99
99
|
*/
|
|
100
100
|
unattendedSkip?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Per-server enabled_tools allow-lists (issue #350) — restricted servers
|
|
103
|
+
* only. The hook's manifest arm denies a beforeMCPExecution call whose
|
|
104
|
+
* mcp_server_name is listed here with a tool name outside its list (kind
|
|
105
|
+
* "disabled", ahead of every approval bypass). hookMcp payloads carry
|
|
106
|
+
* mcp_server_name "srv".
|
|
107
|
+
*/
|
|
108
|
+
mcpServerEnabledTools?: Record<string, string[]>;
|
|
101
109
|
}
|
|
102
110
|
/**
|
|
103
111
|
* Build a throwaway workspace, write the generated hook + (optionally) the
|
|
@@ -77,7 +77,7 @@ export function setupCursorHookHarness(opts = {}) {
|
|
|
77
77
|
source: "classifier_default",
|
|
78
78
|
},
|
|
79
79
|
]));
|
|
80
|
-
const state = buildApprovalState(policies, opts.autoApproveAll ?? false, new Set(opts.leasedCategories ?? []), opts.grants, opts.captureMode ?? false, opts.captureIgnored ?? false, opts.gitWorkspace ?? true, opts.unattendedSkip ?? false);
|
|
80
|
+
const state = buildApprovalState(policies, opts.autoApproveAll ?? false, new Set(opts.leasedCategories ?? []), opts.grants, opts.captureMode ?? false, opts.captureIgnored ?? false, opts.gitWorkspace ?? true, opts.unattendedSkip ?? false, opts.mcpServerEnabledTools ?? {});
|
|
81
81
|
writeFileSync(statePath, JSON.stringify(state), "utf-8");
|
|
82
82
|
}
|
|
83
83
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-hook-harness.js","sourceRoot":"","sources":["../../../../src/activities/execute-cursor/__test-utils__/cursor-hook-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAA+C,MAAM,sBAAsB,CAAC;AAEvG,OAAO,EAAE,mBAAmB,EAAwB,MAAM,wBAAwB,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAY,CAAC,GAAG,EAAE;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor-hook-harness.js","sourceRoot":"","sources":["../../../../src/activities/execute-cursor/__test-utils__/cursor-hook-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAA+C,MAAM,sBAAsB,CAAC;AAEvG,OAAO,EAAE,mBAAmB,EAAwB,MAAM,wBAAwB,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAY,CAAC,GAAG,EAAE;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAiFL;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAiC,EAAE;IACxE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnE,4EAA4E;IAC5E,gFAAgF;IAChF,iEAAiE;IACjE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACzE,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACxC,+EAA+E;IAC/E,iFAAiF;IACjF,gFAAgF;IAChF,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACxE,aAAa,CACX,WAAW,EACX,IAAI,CAAC,SAAS,CAAC;QACb,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,UAAU;QACtB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG;KACzC,CAAC,EACF,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACxD,OAAO,IAAI,EAAE;YACb;gBACE,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,eAAe,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;gBAChC,MAAM,EAAE,oBAA6B;aACtC;SACF,CAAC,CACH,CAAC;QACF,MAAM,KAAK,GAAG,kBAAkB,CAC9B,QAAQ,EACR,IAAI,CAAC,cAAc,IAAI,KAAK,EAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,EACpC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,IAAI,KAAK,EACzB,IAAI,CAAC,cAAc,IAAI,KAAK,EAC5B,IAAI,CAAC,YAAY,IAAI,IAAI,EACzB,IAAI,CAAC,cAAc,IAAI,KAAK,EAC5B,IAAI,CAAC,qBAAqB,IAAI,EAAE,CACjC,CAAC;QACF,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,IAAI,EAAE,EAAE;QACR,MAAM,CAAC,KAAa;YAClB,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5F,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACpD,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC;oBACpC,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,GAAG,CAAC;YACV,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM;YACJ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,EAAE,CAAC;YACvC,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC;iBACrC,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,WAAW;YACT,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,8EAA8E;QAC9E,8EAA8E;QAC9E,YAAY;YACV,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,iFAAiF;AACjF,gCAAgC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AACrI,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,SAAS,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACjM,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3H,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC/G,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE3G,iFAAiF;AACjF,uEAAuE;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,QAAiC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACjC,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,gBAAgB;IACzB,eAAe,EAAE,oBAAoB;CACtC,CAAC,CAAC"}
|