@dobbyai/mcp-external 1.0.4 → 1.2.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 +44 -14
- package/dist/__tests__/agent-mail-tools.test.d.ts +8 -0
- package/dist/__tests__/agent-mail-tools.test.d.ts.map +1 -0
- package/dist/__tests__/agent-mail-tools.test.js +255 -0
- package/dist/__tests__/agent-mail-tools.test.js.map +1 -0
- package/dist/__tests__/annotations.test.d.ts +8 -0
- package/dist/__tests__/annotations.test.d.ts.map +1 -0
- package/dist/__tests__/annotations.test.js +108 -0
- package/dist/__tests__/annotations.test.js.map +1 -0
- package/dist/__tests__/auth.test.d.ts +7 -0
- package/dist/__tests__/auth.test.d.ts.map +1 -0
- package/dist/__tests__/auth.test.js +161 -0
- package/dist/__tests__/auth.test.js.map +1 -0
- package/dist/__tests__/doctor.test.d.ts +16 -0
- package/dist/__tests__/doctor.test.d.ts.map +1 -0
- package/dist/__tests__/doctor.test.js +258 -0
- package/dist/__tests__/doctor.test.js.map +1 -0
- package/dist/__tests__/external-agents-tools.test.d.ts +11 -0
- package/dist/__tests__/external-agents-tools.test.d.ts.map +1 -0
- package/dist/__tests__/external-agents-tools.test.js +619 -0
- package/dist/__tests__/external-agents-tools.test.js.map +1 -0
- package/dist/__tests__/gateway-bearer.test.d.ts +12 -0
- package/dist/__tests__/gateway-bearer.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-bearer.test.js +112 -0
- package/dist/__tests__/gateway-bearer.test.js.map +1 -0
- package/dist/__tests__/gateway-key-resolver.test.d.ts +10 -0
- package/dist/__tests__/gateway-key-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-key-resolver.test.js +125 -0
- package/dist/__tests__/gateway-key-resolver.test.js.map +1 -0
- package/dist/__tests__/http-concurrency.test.d.ts +20 -0
- package/dist/__tests__/http-concurrency.test.d.ts.map +1 -0
- package/dist/__tests__/http-concurrency.test.js +254 -0
- package/dist/__tests__/http-concurrency.test.js.map +1 -0
- package/dist/__tests__/integration/protocol.test.d.ts +8 -0
- package/dist/__tests__/integration/protocol.test.d.ts.map +1 -0
- package/dist/__tests__/integration/protocol.test.js +110 -0
- package/dist/__tests__/integration/protocol.test.js.map +1 -0
- package/dist/__tests__/mcp-integrations.test.d.ts +8 -0
- package/dist/__tests__/mcp-integrations.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-integrations.test.js +365 -0
- package/dist/__tests__/mcp-integrations.test.js.map +1 -0
- package/dist/__tests__/memory-graph-tools.test.d.ts +8 -0
- package/dist/__tests__/memory-graph-tools.test.d.ts.map +1 -0
- package/dist/__tests__/memory-graph-tools.test.js +254 -0
- package/dist/__tests__/memory-graph-tools.test.js.map +1 -0
- package/dist/__tests__/registry-dispatch.test.d.ts +11 -0
- package/dist/__tests__/registry-dispatch.test.d.ts.map +1 -0
- package/dist/__tests__/registry-dispatch.test.js +30 -0
- package/dist/__tests__/registry-dispatch.test.js.map +1 -0
- package/dist/__tests__/registry-listing-parity.test.d.ts +2 -0
- package/dist/__tests__/registry-listing-parity.test.d.ts.map +1 -0
- package/dist/__tests__/registry-listing-parity.test.js +89 -0
- package/dist/__tests__/registry-listing-parity.test.js.map +1 -0
- package/dist/__tests__/role-cap.test.d.ts +2 -0
- package/dist/__tests__/role-cap.test.d.ts.map +1 -0
- package/dist/__tests__/role-cap.test.js +113 -0
- package/dist/__tests__/role-cap.test.js.map +1 -0
- package/dist/__tests__/schedule-tools.test.d.ts +8 -0
- package/dist/__tests__/schedule-tools.test.d.ts.map +1 -0
- package/dist/__tests__/schedule-tools.test.js +285 -0
- package/dist/__tests__/schedule-tools.test.js.map +1 -0
- package/dist/__tests__/server-gateway-key.test.d.ts +18 -0
- package/dist/__tests__/server-gateway-key.test.d.ts.map +1 -0
- package/dist/__tests__/server-gateway-key.test.js +148 -0
- package/dist/__tests__/server-gateway-key.test.js.map +1 -0
- package/dist/__tests__/server-user-scoped.test.d.ts +34 -0
- package/dist/__tests__/server-user-scoped.test.d.ts.map +1 -0
- package/dist/__tests__/server-user-scoped.test.js +577 -0
- package/dist/__tests__/server-user-scoped.test.js.map +1 -0
- package/dist/__tests__/task-id-pattern.test.d.ts +12 -0
- package/dist/__tests__/task-id-pattern.test.d.ts.map +1 -0
- package/dist/__tests__/task-id-pattern.test.js +43 -0
- package/dist/__tests__/task-id-pattern.test.js.map +1 -0
- package/dist/__tests__/tiers.test.d.ts +7 -0
- package/dist/__tests__/tiers.test.d.ts.map +1 -0
- package/dist/__tests__/tiers.test.js +199 -0
- package/dist/__tests__/tiers.test.js.map +1 -0
- package/dist/__tests__/tools/hosted-agents.test.d.ts +9 -0
- package/dist/__tests__/tools/hosted-agents.test.d.ts.map +1 -0
- package/dist/__tests__/tools/hosted-agents.test.js +301 -0
- package/dist/__tests__/tools/hosted-agents.test.js.map +1 -0
- package/dist/__tests__/tools/llm-providers.test.d.ts +10 -0
- package/dist/__tests__/tools/llm-providers.test.d.ts.map +1 -0
- package/dist/__tests__/tools/llm-providers.test.js +105 -0
- package/dist/__tests__/tools/llm-providers.test.js.map +1 -0
- package/dist/__tests__/tools/services.test.js +139 -98
- package/dist/__tests__/tools/services.test.js.map +1 -1
- package/dist/__tests__/tools.test.d.ts +7 -0
- package/dist/__tests__/tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools.test.js +152 -0
- package/dist/__tests__/tools.test.js.map +1 -0
- package/dist/__tests__/transport.test.d.ts +7 -0
- package/dist/__tests__/transport.test.d.ts.map +1 -0
- package/dist/__tests__/transport.test.js +397 -0
- package/dist/__tests__/transport.test.js.map +1 -0
- package/dist/__tests__/validate-credentials.test.d.ts +9 -0
- package/dist/__tests__/validate-credentials.test.d.ts.map +1 -0
- package/dist/__tests__/validate-credentials.test.js +172 -0
- package/dist/__tests__/validate-credentials.test.js.map +1 -0
- package/dist/__tests__/web-eval-tools.test.d.ts +8 -0
- package/dist/__tests__/web-eval-tools.test.d.ts.map +1 -0
- package/dist/__tests__/web-eval-tools.test.js +241 -0
- package/dist/__tests__/web-eval-tools.test.js.map +1 -0
- package/dist/__tests__/whoami.test.d.ts +11 -0
- package/dist/__tests__/whoami.test.d.ts.map +1 -0
- package/dist/__tests__/whoami.test.js +194 -0
- package/dist/__tests__/whoami.test.js.map +1 -0
- package/dist/__tests__/workflow-tools.test.d.ts +8 -0
- package/dist/__tests__/workflow-tools.test.d.ts.map +1 -0
- package/dist/__tests__/workflow-tools.test.js +261 -0
- package/dist/__tests__/workflow-tools.test.js.map +1 -0
- package/dist/__tests__/workloads.test.d.ts +9 -0
- package/dist/__tests__/workloads.test.d.ts.map +1 -0
- package/dist/__tests__/workloads.test.js +169 -0
- package/dist/__tests__/workloads.test.js.map +1 -0
- package/dist/auth/oauth-provider.d.ts +34 -0
- package/dist/auth/oauth-provider.d.ts.map +1 -0
- package/dist/auth/oauth-provider.js +75 -0
- package/dist/auth/oauth-provider.js.map +1 -0
- package/dist/auth/token-verifier.d.ts +45 -0
- package/dist/auth/token-verifier.d.ts.map +1 -0
- package/dist/auth/token-verifier.js +160 -0
- package/dist/auth/token-verifier.js.map +1 -0
- package/dist/connectors/claude-desktop.d.ts.map +1 -1
- package/dist/connectors/claude-desktop.js +3 -2
- package/dist/connectors/claude-desktop.js.map +1 -1
- package/dist/connectors/cursor.d.ts.map +1 -1
- package/dist/connectors/cursor.js +3 -2
- package/dist/connectors/cursor.js.map +1 -1
- package/dist/connectors/setup.d.ts.map +1 -1
- package/dist/connectors/setup.js +2 -1
- package/dist/connectors/setup.js.map +1 -1
- package/dist/connectors/vscode.d.ts.map +1 -1
- package/dist/connectors/vscode.js +3 -2
- package/dist/connectors/vscode.js.map +1 -1
- package/dist/connectors/windsurf.d.ts.map +1 -1
- package/dist/connectors/windsurf.js +3 -2
- package/dist/connectors/windsurf.js.map +1 -1
- package/dist/doctor.d.ts +34 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +134 -0
- package/dist/doctor.js.map +1 -0
- package/dist/http-server.d.ts +56 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +455 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +96 -171
- package/dist/index.js.map +1 -1
- package/dist/lib/consts.d.ts +21 -0
- package/dist/lib/consts.d.ts.map +1 -0
- package/dist/lib/consts.js +30 -0
- package/dist/lib/consts.js.map +1 -0
- package/dist/lib/dobby-client.d.ts +60 -3
- package/dist/lib/dobby-client.d.ts.map +1 -1
- package/dist/lib/dobby-client.js +145 -44
- package/dist/lib/dobby-client.js.map +1 -1
- package/dist/lib/gateway-key-resolver.d.ts +38 -0
- package/dist/lib/gateway-key-resolver.d.ts.map +1 -0
- package/dist/lib/gateway-key-resolver.js +59 -0
- package/dist/lib/gateway-key-resolver.js.map +1 -0
- package/dist/lib/log.d.ts +25 -0
- package/dist/lib/log.d.ts.map +1 -0
- package/dist/lib/log.js +36 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/server.d.ts +175 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +1017 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/agent-mail.d.ts +112 -0
- package/dist/tools/agent-mail.d.ts.map +1 -0
- package/dist/tools/agent-mail.js +118 -0
- package/dist/tools/agent-mail.js.map +1 -0
- package/dist/tools/agent-versions.d.ts +93 -0
- package/dist/tools/agent-versions.d.ts.map +1 -0
- package/dist/tools/agent-versions.js +99 -0
- package/dist/tools/agent-versions.js.map +1 -0
- package/dist/tools/approvals.d.ts +24 -34
- package/dist/tools/approvals.d.ts.map +1 -1
- package/dist/tools/approvals.js +24 -81
- package/dist/tools/approvals.js.map +1 -1
- package/dist/tools/claude-code-sync.d.ts +40 -0
- package/dist/tools/claude-code-sync.d.ts.map +1 -0
- package/dist/tools/claude-code-sync.js +52 -0
- package/dist/tools/claude-code-sync.js.map +1 -0
- package/dist/tools/control-plane.d.ts +118 -0
- package/dist/tools/control-plane.d.ts.map +1 -0
- package/dist/tools/control-plane.js +135 -0
- package/dist/tools/control-plane.js.map +1 -0
- package/dist/tools/crew-builder.d.ts +24 -66
- package/dist/tools/crew-builder.d.ts.map +1 -1
- package/dist/tools/crew-builder.js +24 -185
- package/dist/tools/crew-builder.js.map +1 -1
- package/dist/tools/crewai.d.ts +24 -63
- package/dist/tools/crewai.d.ts.map +1 -1
- package/dist/tools/crewai.js +24 -145
- package/dist/tools/crewai.js.map +1 -1
- package/dist/tools/exa.d.ts +126 -0
- package/dist/tools/exa.d.ts.map +1 -0
- package/dist/tools/exa.js +125 -0
- package/dist/tools/exa.js.map +1 -0
- package/dist/tools/external-agents.d.ts +440 -0
- package/dist/tools/external-agents.d.ts.map +1 -0
- package/dist/tools/external-agents.js +386 -0
- package/dist/tools/external-agents.js.map +1 -0
- package/dist/tools/github-mcp.d.ts +228 -0
- package/dist/tools/github-mcp.d.ts.map +1 -0
- package/dist/tools/github-mcp.js +235 -0
- package/dist/tools/github-mcp.js.map +1 -0
- package/dist/tools/governance.d.ts +273 -0
- package/dist/tools/governance.d.ts.map +1 -0
- package/dist/tools/governance.js +286 -0
- package/dist/tools/governance.js.map +1 -0
- package/dist/tools/hosted-agents.d.ts +216 -0
- package/dist/tools/hosted-agents.d.ts.map +1 -0
- package/dist/tools/hosted-agents.js +214 -0
- package/dist/tools/hosted-agents.js.map +1 -0
- package/dist/tools/index.d.ts +6335 -191
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +441 -172
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/jira.d.ts +60 -176
- package/dist/tools/jira.d.ts.map +1 -1
- package/dist/tools/jira.js +60 -365
- package/dist/tools/jira.js.map +1 -1
- package/dist/tools/llm-providers.d.ts +50 -0
- package/dist/tools/llm-providers.d.ts.map +1 -0
- package/dist/tools/llm-providers.js +41 -0
- package/dist/tools/llm-providers.js.map +1 -0
- package/dist/tools/mcp-metrics.d.ts +47 -0
- package/dist/tools/mcp-metrics.d.ts.map +1 -0
- package/dist/tools/mcp-metrics.js +53 -0
- package/dist/tools/mcp-metrics.js.map +1 -0
- package/dist/tools/mcp-tools.d.ts +12 -29
- package/dist/tools/mcp-tools.d.ts.map +1 -1
- package/dist/tools/mcp-tools.js +12 -131
- package/dist/tools/mcp-tools.js.map +1 -1
- package/dist/tools/mem0.d.ts +127 -0
- package/dist/tools/mem0.d.ts.map +1 -0
- package/dist/tools/mem0.js +155 -0
- package/dist/tools/mem0.js.map +1 -0
- package/dist/tools/memory-graph.d.ts +151 -0
- package/dist/tools/memory-graph.d.ts.map +1 -0
- package/dist/tools/memory-graph.js +159 -0
- package/dist/tools/memory-graph.js.map +1 -0
- package/dist/tools/memory-stores.d.ts +141 -0
- package/dist/tools/memory-stores.d.ts.map +1 -0
- package/dist/tools/memory-stores.js +147 -0
- package/dist/tools/memory-stores.js.map +1 -0
- package/dist/tools/messages.d.ts +12 -20
- package/dist/tools/messages.d.ts.map +1 -1
- package/dist/tools/messages.js +12 -49
- package/dist/tools/messages.js.map +1 -1
- package/dist/tools/moltbook.d.ts +328 -0
- package/dist/tools/moltbook.d.ts.map +1 -0
- package/dist/tools/moltbook.js +334 -0
- package/dist/tools/moltbook.js.map +1 -0
- package/dist/tools/monitoring-attribution.d.ts +71 -0
- package/dist/tools/monitoring-attribution.d.ts.map +1 -0
- package/dist/tools/monitoring-attribution.js +74 -0
- package/dist/tools/monitoring-attribution.js.map +1 -0
- package/dist/tools/ops.d.ts +139 -0
- package/dist/tools/ops.d.ts.map +1 -0
- package/dist/tools/ops.js +151 -0
- package/dist/tools/ops.js.map +1 -0
- package/dist/tools/orchestrations.d.ts +109 -0
- package/dist/tools/orchestrations.d.ts.map +1 -0
- package/dist/tools/orchestrations.js +115 -0
- package/dist/tools/orchestrations.js.map +1 -0
- package/dist/tools/outcomes.d.ts +138 -0
- package/dist/tools/outcomes.d.ts.map +1 -0
- package/dist/tools/outcomes.js +136 -0
- package/dist/tools/outcomes.js.map +1 -0
- package/dist/tools/schedules.d.ts +149 -0
- package/dist/tools/schedules.d.ts.map +1 -0
- package/dist/tools/schedules.js +155 -0
- package/dist/tools/schedules.js.map +1 -0
- package/dist/tools/services.d.ts +6 -16
- package/dist/tools/services.d.ts.map +1 -1
- package/dist/tools/services.js +6 -135
- package/dist/tools/services.js.map +1 -1
- package/dist/tools/sessions.d.ts +124 -0
- package/dist/tools/sessions.d.ts.map +1 -0
- package/dist/tools/sessions.js +130 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/setup-status.d.ts +29 -0
- package/dist/tools/setup-status.d.ts.map +1 -0
- package/dist/tools/setup-status.js +35 -0
- package/dist/tools/setup-status.js.map +1 -0
- package/dist/tools/tasks.d.ts +44 -56
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +48 -212
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/tiers.d.ts +55 -0
- package/dist/tools/tiers.d.ts.map +1 -0
- package/dist/tools/tiers.js +239 -0
- package/dist/tools/tiers.js.map +1 -0
- package/dist/tools/unified-agents.d.ts +43 -0
- package/dist/tools/unified-agents.d.ts.map +1 -0
- package/dist/tools/unified-agents.js +46 -0
- package/dist/tools/unified-agents.js.map +1 -0
- package/dist/tools/web-eval.d.ts +129 -0
- package/dist/tools/web-eval.d.ts.map +1 -0
- package/dist/tools/web-eval.js +136 -0
- package/dist/tools/web-eval.js.map +1 -0
- package/dist/tools/workflow.d.ts +105 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +111 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/tools/workloads.d.ts +81 -0
- package/dist/tools/workloads.d.ts.map +1 -0
- package/dist/tools/workloads.js +81 -0
- package/dist/tools/workloads.js.map +1 -0
- package/package.json +13 -7
package/dist/lib/dobby-client.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Client for communicating with the Dobby API from the MCP server.
|
|
5
5
|
*/
|
|
6
|
-
import { z } from
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { DEFAULT_API_URL } from "./consts.js";
|
|
7
8
|
// ============================================
|
|
8
9
|
// Types
|
|
9
10
|
// ============================================
|
|
@@ -12,8 +13,14 @@ export const TaskSchema = z.object({
|
|
|
12
13
|
tenant_id: z.string(),
|
|
13
14
|
title: z.string(),
|
|
14
15
|
description: z.string().nullable(),
|
|
15
|
-
status: z.enum([
|
|
16
|
-
|
|
16
|
+
status: z.enum([
|
|
17
|
+
"pending",
|
|
18
|
+
"in_progress",
|
|
19
|
+
"completed",
|
|
20
|
+
"failed",
|
|
21
|
+
"cancelled",
|
|
22
|
+
]),
|
|
23
|
+
priority: z.enum(["high", "medium", "low"]).nullable(),
|
|
17
24
|
created_at: z.string(),
|
|
18
25
|
updated_at: z.string(),
|
|
19
26
|
pr_url: z.string().nullable().optional(),
|
|
@@ -24,14 +31,14 @@ export const MessageSchema = z.object({
|
|
|
24
31
|
id: z.string(),
|
|
25
32
|
task_id: z.string(),
|
|
26
33
|
sender: z.object({
|
|
27
|
-
type: z.enum([
|
|
34
|
+
type: z.enum(["user", "agent", "system"]),
|
|
28
35
|
id: z.string(),
|
|
29
36
|
name: z.string(),
|
|
30
37
|
}),
|
|
31
38
|
message: z.object({
|
|
32
39
|
type: z.string(),
|
|
33
40
|
content: z.string(),
|
|
34
|
-
metadata: z.record(z.any()).optional(),
|
|
41
|
+
metadata: z.record(z.string(), z.any()).optional(),
|
|
35
42
|
}),
|
|
36
43
|
created_at: z.string(),
|
|
37
44
|
});
|
|
@@ -40,10 +47,10 @@ export const ApprovalSchema = z.object({
|
|
|
40
47
|
task_id: z.string(),
|
|
41
48
|
approval_type: z.string(),
|
|
42
49
|
description: z.string(),
|
|
43
|
-
status: z.enum([
|
|
50
|
+
status: z.enum(["pending", "approved", "rejected"]),
|
|
44
51
|
requested_by: z.string(),
|
|
45
52
|
created_at: z.string(),
|
|
46
|
-
metadata: z.record(z.any()).optional(),
|
|
53
|
+
metadata: z.record(z.string(), z.any()).optional(),
|
|
47
54
|
});
|
|
48
55
|
// ============================================
|
|
49
56
|
// Client Class
|
|
@@ -65,13 +72,48 @@ export class DobbyClient {
|
|
|
65
72
|
get tenantId() {
|
|
66
73
|
return this.config.tenantId;
|
|
67
74
|
}
|
|
75
|
+
/** Organization ID for org-scoped requests (e.g. memory stores) */
|
|
76
|
+
get organizationId() {
|
|
77
|
+
return this.config.organizationId;
|
|
78
|
+
}
|
|
79
|
+
/** Static gateway key (gk_*), if configured — STDIO mode */
|
|
80
|
+
get gatewayKey() {
|
|
81
|
+
return this.config.gatewayKey;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Bearer credential for GATEWAY-scoped endpoints (routes guarded by
|
|
85
|
+
* authenticateGatewayRequest hard-require a gk_* key — the tenant apiKey is
|
|
86
|
+
* NOT one for OAuth/sk_live_ sessions).
|
|
87
|
+
*
|
|
88
|
+
* Precedence: lazy provider (HTTP mode, resolved server-side from the
|
|
89
|
+
* session token) > static gatewayKey (STDIO) > apiKey (legacy fallback —
|
|
90
|
+
* only works when the API key is itself a gk_*).
|
|
91
|
+
*/
|
|
92
|
+
async gatewayBearer() {
|
|
93
|
+
return ((this.config.getGatewayKey
|
|
94
|
+
? await this.config.getGatewayKey()
|
|
95
|
+
: undefined) ??
|
|
96
|
+
this.config.gatewayKey ??
|
|
97
|
+
this.config.apiKey);
|
|
98
|
+
}
|
|
68
99
|
async fetch(endpoint, options = {}) {
|
|
69
100
|
const url = `${this.config.apiUrl}${endpoint}`;
|
|
70
101
|
const response = await fetch(url, {
|
|
71
102
|
...options,
|
|
103
|
+
// Bound the outbound call so a hung web-app response fails fast with a
|
|
104
|
+
// clean error instead of holding the MCP request open until the transport
|
|
105
|
+
// drops. Respect a caller-supplied signal when present.
|
|
106
|
+
signal: options.signal ?? AbortSignal.timeout(30000),
|
|
72
107
|
headers: {
|
|
73
|
-
|
|
74
|
-
|
|
108
|
+
"Content-Type": "application/json",
|
|
109
|
+
"X-API-Key": this.config.apiKey,
|
|
110
|
+
// User-scoped families (dobby_pat_/dobby_at_/dobby_mat_) carry no tenant
|
|
111
|
+
// pin, so a route that resolves the tenant FROM the key (e.g.
|
|
112
|
+
// /api/v1/workloads) can't. Forward the per-call target tenant; routes
|
|
113
|
+
// that read the tenant from the key or the URL path ignore it.
|
|
114
|
+
...(this.config.tenantId
|
|
115
|
+
? { "X-Tenant-Id": this.config.tenantId }
|
|
116
|
+
: {}),
|
|
75
117
|
...options.headers,
|
|
76
118
|
},
|
|
77
119
|
});
|
|
@@ -82,6 +124,24 @@ export class DobbyClient {
|
|
|
82
124
|
return response.json();
|
|
83
125
|
}
|
|
84
126
|
// ============================================
|
|
127
|
+
// Generic Request (public)
|
|
128
|
+
// ============================================
|
|
129
|
+
async request(endpoint, options = {}) {
|
|
130
|
+
return this.fetch(endpoint, options);
|
|
131
|
+
}
|
|
132
|
+
async get(endpoint) {
|
|
133
|
+
return this.fetch(endpoint, { method: "GET" });
|
|
134
|
+
}
|
|
135
|
+
async post(endpoint, body) {
|
|
136
|
+
return this.fetch(endpoint, {
|
|
137
|
+
method: "POST",
|
|
138
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
async delete(endpoint) {
|
|
142
|
+
return this.fetch(endpoint, { method: "DELETE" });
|
|
143
|
+
}
|
|
144
|
+
// ============================================
|
|
85
145
|
// Tasks
|
|
86
146
|
// ============================================
|
|
87
147
|
async listTasks(options = {}) {
|
|
@@ -89,17 +149,19 @@ export class DobbyClient {
|
|
|
89
149
|
tenant_id: this.config.tenantId,
|
|
90
150
|
});
|
|
91
151
|
if (options.status)
|
|
92
|
-
params.set(
|
|
152
|
+
params.set("status", options.status);
|
|
93
153
|
if (options.priority)
|
|
94
|
-
params.set(
|
|
154
|
+
params.set("priority", options.priority);
|
|
155
|
+
if (options.assigned_to)
|
|
156
|
+
params.set("assigned_to", options.assigned_to);
|
|
95
157
|
if (options.limit)
|
|
96
|
-
params.set(
|
|
158
|
+
params.set("limit", options.limit.toString());
|
|
97
159
|
const response = await this.fetch(`/api/dobby/tasks?${params}`);
|
|
98
160
|
return response.tasks;
|
|
99
161
|
}
|
|
100
162
|
async getTask(taskId) {
|
|
101
163
|
try {
|
|
102
|
-
const response = await this.fetch(`/api/dobby/tasks/${taskId}?tenant_id=${this.config.tenantId}`);
|
|
164
|
+
const response = await this.fetch(`/api/dobby/tasks/${encodeURIComponent(taskId)}?tenant_id=${this.config.tenantId}`);
|
|
103
165
|
return response.task;
|
|
104
166
|
}
|
|
105
167
|
catch (error) {
|
|
@@ -107,8 +169,8 @@ export class DobbyClient {
|
|
|
107
169
|
}
|
|
108
170
|
}
|
|
109
171
|
async createTask(data) {
|
|
110
|
-
const response = await this.fetch(
|
|
111
|
-
method:
|
|
172
|
+
const response = await this.fetch("/api/dobby/tasks", {
|
|
173
|
+
method: "POST",
|
|
112
174
|
body: JSON.stringify({
|
|
113
175
|
tenant_id: this.config.tenantId,
|
|
114
176
|
...data,
|
|
@@ -117,8 +179,8 @@ export class DobbyClient {
|
|
|
117
179
|
return { task_id: response.task_id };
|
|
118
180
|
}
|
|
119
181
|
async updateTask(taskId, updates) {
|
|
120
|
-
await this.fetch(
|
|
121
|
-
method:
|
|
182
|
+
await this.fetch("/api/dobby/tasks", {
|
|
183
|
+
method: "PATCH",
|
|
122
184
|
body: JSON.stringify({
|
|
123
185
|
task_id: taskId,
|
|
124
186
|
tenant_id: this.config.tenantId,
|
|
@@ -134,18 +196,18 @@ export class DobbyClient {
|
|
|
134
196
|
tenant_id: this.config.tenantId,
|
|
135
197
|
});
|
|
136
198
|
if (options.limit)
|
|
137
|
-
params.set(
|
|
199
|
+
params.set("limit", options.limit.toString());
|
|
138
200
|
if (options.after)
|
|
139
|
-
params.set(
|
|
140
|
-
const response = await this.fetch(`/api/dobby/tasks/${taskId}/conversation?${params}`);
|
|
201
|
+
params.set("after", options.after);
|
|
202
|
+
const response = await this.fetch(`/api/dobby/tasks/${encodeURIComponent(taskId)}/conversation?${params}`);
|
|
141
203
|
return response.messages;
|
|
142
204
|
}
|
|
143
205
|
async sendMessage(taskId, data) {
|
|
144
|
-
const response = await this.fetch(`/api/dobby/tasks/${taskId}/conversation`, {
|
|
145
|
-
method:
|
|
206
|
+
const response = await this.fetch(`/api/dobby/tasks/${encodeURIComponent(taskId)}/conversation`, {
|
|
207
|
+
method: "POST",
|
|
146
208
|
body: JSON.stringify({
|
|
147
209
|
tenant_id: this.config.tenantId,
|
|
148
|
-
sender_type:
|
|
210
|
+
sender_type: "user",
|
|
149
211
|
...data,
|
|
150
212
|
}),
|
|
151
213
|
});
|
|
@@ -161,11 +223,11 @@ export class DobbyClient {
|
|
|
161
223
|
async approveTask(approvalId, note) {
|
|
162
224
|
// Use the unified approvals endpoint that triggers agent continuation
|
|
163
225
|
const response = await this.fetch(`/api/dobby/approvals`, {
|
|
164
|
-
method:
|
|
226
|
+
method: "POST",
|
|
165
227
|
body: JSON.stringify({
|
|
166
228
|
approval_id: approvalId,
|
|
167
229
|
tenant_id: this.config.tenantId,
|
|
168
|
-
action:
|
|
230
|
+
action: "approve",
|
|
169
231
|
feedback: note,
|
|
170
232
|
}),
|
|
171
233
|
});
|
|
@@ -174,12 +236,12 @@ export class DobbyClient {
|
|
|
174
236
|
async rejectTask(approvalId, reason) {
|
|
175
237
|
// Use the unified approvals endpoint that triggers agent retry with feedback
|
|
176
238
|
const response = await this.fetch(`/api/dobby/approvals`, {
|
|
177
|
-
method:
|
|
239
|
+
method: "POST",
|
|
178
240
|
body: JSON.stringify({
|
|
179
241
|
approval_id: approvalId,
|
|
180
242
|
tenant_id: this.config.tenantId,
|
|
181
|
-
action:
|
|
182
|
-
feedback: reason ||
|
|
243
|
+
action: "reject",
|
|
244
|
+
feedback: reason || "Rejected by user",
|
|
183
245
|
}),
|
|
184
246
|
});
|
|
185
247
|
return response;
|
|
@@ -188,47 +250,83 @@ export class DobbyClient {
|
|
|
188
250
|
// Timeline
|
|
189
251
|
// ============================================
|
|
190
252
|
async getTaskTimeline(taskId) {
|
|
191
|
-
const response = await this.fetch(`/api/dobby/tasks/${taskId}?tenant_id=${this.config.tenantId}`);
|
|
253
|
+
const response = await this.fetch(`/api/dobby/tasks/${encodeURIComponent(taskId)}?tenant_id=${this.config.tenantId}`);
|
|
192
254
|
return response.task?.timeline || [];
|
|
193
255
|
}
|
|
194
256
|
// ============================================
|
|
195
257
|
// Task Execution Control
|
|
196
258
|
// ============================================
|
|
197
259
|
async cancelTaskExecution(taskId) {
|
|
198
|
-
const response = await this.fetch(`/api/dobby/tasks/${taskId}/execute?tenant_id=${this.config.tenantId}`, { method:
|
|
199
|
-
return {
|
|
260
|
+
const response = await this.fetch(`/api/dobby/tasks/${encodeURIComponent(taskId)}/execute?tenant_id=${this.config.tenantId}`, { method: "DELETE" });
|
|
261
|
+
return {
|
|
262
|
+
success: response.status === "cancelled",
|
|
263
|
+
message: response.message,
|
|
264
|
+
};
|
|
200
265
|
}
|
|
201
266
|
// ============================================
|
|
202
267
|
// Service Discovery
|
|
203
268
|
// ============================================
|
|
204
269
|
async listServices(options = {}) {
|
|
205
270
|
const params = new URLSearchParams();
|
|
206
|
-
if (options.category && options.category !==
|
|
207
|
-
params.set(
|
|
271
|
+
if (options.category && options.category !== "all") {
|
|
272
|
+
params.set("category", options.category);
|
|
208
273
|
}
|
|
209
|
-
const queryStr = params.toString() ? `?${params}` :
|
|
274
|
+
const queryStr = params.toString() ? `?${params}` : "";
|
|
210
275
|
// This endpoint uses gateway key auth (Bearer token), not X-API-Key
|
|
211
276
|
const url = `${this.config.apiUrl}/api/v1/gateway/services${queryStr}`;
|
|
212
277
|
const response = await fetch(url, {
|
|
213
278
|
headers: {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
279
|
+
"Content-Type": "application/json",
|
|
280
|
+
Authorization: `Bearer ${await this.gatewayBearer()}`,
|
|
281
|
+
"X-Tenant-Id": this.config.tenantId,
|
|
217
282
|
},
|
|
218
283
|
});
|
|
219
284
|
if (!response.ok) {
|
|
220
285
|
const error = await response.text();
|
|
221
286
|
throw new Error(`Service discovery failed (${response.status}): ${error}`);
|
|
222
287
|
}
|
|
223
|
-
const body = await response.json();
|
|
288
|
+
const body = (await response.json());
|
|
224
289
|
return body.data;
|
|
225
290
|
}
|
|
226
291
|
// ============================================
|
|
292
|
+
// Schedules
|
|
293
|
+
// ============================================
|
|
294
|
+
async createSchedule(data) {
|
|
295
|
+
const response = await this.fetch("/api/v1/schedules", {
|
|
296
|
+
method: "POST",
|
|
297
|
+
body: JSON.stringify(data),
|
|
298
|
+
});
|
|
299
|
+
return response;
|
|
300
|
+
}
|
|
301
|
+
async listSchedules(options) {
|
|
302
|
+
const params = new URLSearchParams();
|
|
303
|
+
if (options?.enabled_only !== undefined)
|
|
304
|
+
params.set("enabled_only", String(options.enabled_only));
|
|
305
|
+
if (options?.limit)
|
|
306
|
+
params.set("limit", String(options.limit));
|
|
307
|
+
const queryStr = params.toString();
|
|
308
|
+
const response = await this.fetch(`/api/v1/schedules${queryStr ? `?${queryStr}` : ""}`);
|
|
309
|
+
return response;
|
|
310
|
+
}
|
|
311
|
+
async pauseSchedule(data) {
|
|
312
|
+
const response = await this.fetch(`/api/v1/schedules/${data.schedule_id}/pause`, {
|
|
313
|
+
method: "POST",
|
|
314
|
+
body: JSON.stringify({ action: data.action, reason: data.reason }),
|
|
315
|
+
});
|
|
316
|
+
return response;
|
|
317
|
+
}
|
|
318
|
+
async deleteSchedule(scheduleId) {
|
|
319
|
+
const response = await this.fetch(`/api/v1/schedules/${scheduleId}`, {
|
|
320
|
+
method: "DELETE",
|
|
321
|
+
});
|
|
322
|
+
return response;
|
|
323
|
+
}
|
|
324
|
+
// ============================================
|
|
227
325
|
// Health Check
|
|
228
326
|
// ============================================
|
|
229
327
|
async checkHealth() {
|
|
230
328
|
try {
|
|
231
|
-
await this.fetch(
|
|
329
|
+
await this.fetch("/api/health");
|
|
232
330
|
return true;
|
|
233
331
|
}
|
|
234
332
|
catch {
|
|
@@ -241,15 +339,18 @@ export class DobbyClient {
|
|
|
241
339
|
// ============================================
|
|
242
340
|
export function createDobbyClient(config) {
|
|
243
341
|
const finalConfig = {
|
|
244
|
-
apiUrl: config?.apiUrl || process.env.DOBBY_API_URL ||
|
|
245
|
-
apiKey: config?.apiKey || process.env.DOBBY_API_KEY ||
|
|
246
|
-
tenantId: config?.tenantId || process.env.DOBBY_TENANT_ID ||
|
|
342
|
+
apiUrl: config?.apiUrl || process.env.DOBBY_API_URL || DEFAULT_API_URL,
|
|
343
|
+
apiKey: config?.apiKey || process.env.DOBBY_API_KEY || "",
|
|
344
|
+
tenantId: config?.tenantId || process.env.DOBBY_TENANT_ID || "",
|
|
345
|
+
organizationId: config?.organizationId || process.env.DOBBY_ORGANIZATION_ID || undefined,
|
|
346
|
+
gatewayKey: config?.gatewayKey,
|
|
347
|
+
getGatewayKey: config?.getGatewayKey,
|
|
247
348
|
};
|
|
248
349
|
if (!finalConfig.apiKey) {
|
|
249
|
-
throw new Error(
|
|
350
|
+
throw new Error("DOBBY_API_KEY is required");
|
|
250
351
|
}
|
|
251
352
|
if (!finalConfig.tenantId) {
|
|
252
|
-
throw new Error(
|
|
353
|
+
throw new Error("DOBBY_TENANT_ID is required");
|
|
253
354
|
}
|
|
254
355
|
return new DobbyClient(finalConfig);
|
|
255
356
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dobby-client.js","sourceRoot":"","sources":["../../src/lib/dobby-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dobby-client.js","sourceRoot":"","sources":["../../src/lib/dobby-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Gateway Key Resolver
|
|
3
|
+
*
|
|
4
|
+
* Exchanges an MCP HTTP session's bearer token (OAuth `dobby_at_*` or static
|
|
5
|
+
* tenant key `sk_live_*`) for a short-lived, tenant+user-bound `gk_tmp_*`
|
|
6
|
+
* gateway key via the web app's internal endpoint
|
|
7
|
+
* (POST /api/v1/internal/mcp/gateway-key). Gateway-scoped tools call web
|
|
8
|
+
* routes guarded by authenticateGatewayRequest, which hard-requires a gk_*
|
|
9
|
+
* key — the session token is NOT one, so the MCP server resolves one here.
|
|
10
|
+
*
|
|
11
|
+
* HTTP-mode ONLY: the endpoint authenticates the CALLER via
|
|
12
|
+
* INTERNAL_SERVICE_SECRET, which exists only on Dobby-operated pods. Never
|
|
13
|
+
* call this in STDIO mode — the internal secret must never be needed on
|
|
14
|
+
* customer machines (STDIO uses the static DOBBY_GATEWAY_KEY instead).
|
|
15
|
+
*
|
|
16
|
+
* Fails soft: returns undefined on ANY failure (missing env, non-OK response,
|
|
17
|
+
* network error, malformed body) after logging why — gateway-scoped tools
|
|
18
|
+
* then fall back to the session token and surface the downstream auth error.
|
|
19
|
+
* Never logs the session token or the resolved key.
|
|
20
|
+
*/
|
|
21
|
+
export interface ResolveSessionGatewayKeyOptions {
|
|
22
|
+
/** Web app base URL (e.g. https://dobby-ai.com) */
|
|
23
|
+
apiUrl: string;
|
|
24
|
+
/** The session's bearer token (dobby_at_*, sk_live_*, or dobby_pat_*) — identity source */
|
|
25
|
+
token: string;
|
|
26
|
+
/**
|
|
27
|
+
* ADR-020 user-scoped PAT ONLY: the per-call target tenant the gk_tmp_ must be
|
|
28
|
+
* minted for. A PAT carries no tenant pin, so the tenant comes from the call
|
|
29
|
+
* and is sent in the body; the internal endpoint authorizes the PAT's LIVE
|
|
30
|
+
* membership in it (403 for a non-member) before minting. Omit for tenant-bound
|
|
31
|
+
* sessions (dobby_at_/sk_live_) — the endpoint derives the tenant from the token
|
|
32
|
+
* and IGNORES any body tenant, so a tenant-bound token can never yield a key for
|
|
33
|
+
* a different tenant.
|
|
34
|
+
*/
|
|
35
|
+
tenantId?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function resolveSessionGatewayKey(opts: ResolveSessionGatewayKeyOptions): Promise<string | undefined>;
|
|
38
|
+
//# sourceMappingURL=gateway-key-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-key-resolver.d.ts","sourceRoot":"","sources":["../../src/lib/gateway-key-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,+BAA+B;IAC9C,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA4D7B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Gateway Key Resolver
|
|
3
|
+
*
|
|
4
|
+
* Exchanges an MCP HTTP session's bearer token (OAuth `dobby_at_*` or static
|
|
5
|
+
* tenant key `sk_live_*`) for a short-lived, tenant+user-bound `gk_tmp_*`
|
|
6
|
+
* gateway key via the web app's internal endpoint
|
|
7
|
+
* (POST /api/v1/internal/mcp/gateway-key). Gateway-scoped tools call web
|
|
8
|
+
* routes guarded by authenticateGatewayRequest, which hard-requires a gk_*
|
|
9
|
+
* key — the session token is NOT one, so the MCP server resolves one here.
|
|
10
|
+
*
|
|
11
|
+
* HTTP-mode ONLY: the endpoint authenticates the CALLER via
|
|
12
|
+
* INTERNAL_SERVICE_SECRET, which exists only on Dobby-operated pods. Never
|
|
13
|
+
* call this in STDIO mode — the internal secret must never be needed on
|
|
14
|
+
* customer machines (STDIO uses the static DOBBY_GATEWAY_KEY instead).
|
|
15
|
+
*
|
|
16
|
+
* Fails soft: returns undefined on ANY failure (missing env, non-OK response,
|
|
17
|
+
* network error, malformed body) after logging why — gateway-scoped tools
|
|
18
|
+
* then fall back to the session token and surface the downstream auth error.
|
|
19
|
+
* Never logs the session token or the resolved key.
|
|
20
|
+
*/
|
|
21
|
+
export async function resolveSessionGatewayKey(opts) {
|
|
22
|
+
const internalSecret = process.env.INTERNAL_SERVICE_SECRET;
|
|
23
|
+
if (!internalSecret) {
|
|
24
|
+
console.error('[MCP Gateway Key] INTERNAL_SERVICE_SECRET is not set — cannot resolve a session gateway key; gateway-scoped tools will fall back to the session token');
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const response = await fetch(`${opts.apiUrl}/api/v1/internal/mcp/gateway-key`, {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
headers: {
|
|
31
|
+
'Content-Type': 'application/json',
|
|
32
|
+
'x-internal-secret': internalSecret,
|
|
33
|
+
Authorization: `Bearer ${opts.token}`,
|
|
34
|
+
},
|
|
35
|
+
// ADR-020 user-scoped PAT: name the per-call target tenant so the
|
|
36
|
+
// endpoint mints for it (authorized live). Tenant-bound families omit
|
|
37
|
+
// tenantId → '{}' → the endpoint derives the tenant from the token.
|
|
38
|
+
body: JSON.stringify(opts.tenantId ? { tenant_id: opts.tenantId } : {}),
|
|
39
|
+
});
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
const errBody = (await response.json().catch(() => ({})));
|
|
42
|
+
console.error(`[MCP Gateway Key] Resolution failed (HTTP ${response.status}): ${errBody.error || errBody.message || 'no error body'}`);
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const body = (await response.json().catch(() => null));
|
|
46
|
+
const gatewayKey = body?.data?.gateway_key;
|
|
47
|
+
if (typeof gatewayKey !== 'string' || gatewayKey.length === 0) {
|
|
48
|
+
console.error('[MCP Gateway Key] Resolution returned HTTP 200 but no data.gateway_key in the body');
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return gatewayKey;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
55
|
+
console.error(`[MCP Gateway Key] Resolution request failed: ${msg}`);
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=gateway-key-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-key-resolver.js","sourceRoot":"","sources":["../../src/lib/gateway-key-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAmBH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAqC;IAErC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CACX,uJAAuJ,CACxJ,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,MAAM,kCAAkC,EAChD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,mBAAmB,EAAE,cAAc;gBACnC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACtC;YACD,kEAAkE;YAClE,sEAAsE;YACtE,oEAAoE;YACpE,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAClD;SACF,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAGvD,CAAC;YACF,OAAO,CAAC,KAAK,CACX,6CAA6C,QAAQ,CAAC,MAAM,MAC1D,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,eACtC,EAAE,CACH,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAG7C,CAAC;QAET,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;QAC3C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,KAAK,CACX,oFAAoF,CACrF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logger for the Dobby MCP server.
|
|
3
|
+
*
|
|
4
|
+
* Emits one JSON object per line using Cloud Logging's structured-log fields
|
|
5
|
+
* (`severity` / `message` / `time`), so GKE ingests each line at its declared
|
|
6
|
+
* severity instead of stream-default severity (stdout=INFO, stderr=ERROR).
|
|
7
|
+
* Plain text on stderr lands as ERROR — which is how the old startup banner
|
|
8
|
+
* polluted Cloud Logging and left the service with zero runtime logs
|
|
9
|
+
* (2026-07-18 prod forensics).
|
|
10
|
+
*
|
|
11
|
+
* Sink rules:
|
|
12
|
+
* - HTTP transport → stdout.
|
|
13
|
+
* - STDIO transport → stderr, ALWAYS: stdout is the JSON-RPC protocol
|
|
14
|
+
* channel and a single log line would corrupt the stream. Call
|
|
15
|
+
* useStderrSink() before any logging when running on STDIO.
|
|
16
|
+
*/
|
|
17
|
+
/** Route all log lines to stderr — MANDATORY in STDIO mode (stdout = protocol). */
|
|
18
|
+
export declare function useStderrSink(): void;
|
|
19
|
+
export declare const log: {
|
|
20
|
+
debug: (message: string, fields?: Record<string, unknown>) => void;
|
|
21
|
+
info: (message: string, fields?: Record<string, unknown>) => void;
|
|
22
|
+
warn: (message: string, fields?: Record<string, unknown>) => void;
|
|
23
|
+
error: (message: string, fields?: Record<string, unknown>) => void;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/lib/log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,mFAAmF;AACnF,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAiBD,eAAO,MAAM,GAAG;qBACG,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAEzC,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAExC,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBAEvC,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAE1D,CAAC"}
|
package/dist/lib/log.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logger for the Dobby MCP server.
|
|
3
|
+
*
|
|
4
|
+
* Emits one JSON object per line using Cloud Logging's structured-log fields
|
|
5
|
+
* (`severity` / `message` / `time`), so GKE ingests each line at its declared
|
|
6
|
+
* severity instead of stream-default severity (stdout=INFO, stderr=ERROR).
|
|
7
|
+
* Plain text on stderr lands as ERROR — which is how the old startup banner
|
|
8
|
+
* polluted Cloud Logging and left the service with zero runtime logs
|
|
9
|
+
* (2026-07-18 prod forensics).
|
|
10
|
+
*
|
|
11
|
+
* Sink rules:
|
|
12
|
+
* - HTTP transport → stdout.
|
|
13
|
+
* - STDIO transport → stderr, ALWAYS: stdout is the JSON-RPC protocol
|
|
14
|
+
* channel and a single log line would corrupt the stream. Call
|
|
15
|
+
* useStderrSink() before any logging when running on STDIO.
|
|
16
|
+
*/
|
|
17
|
+
let sink = process.stdout;
|
|
18
|
+
/** Route all log lines to stderr — MANDATORY in STDIO mode (stdout = protocol). */
|
|
19
|
+
export function useStderrSink() {
|
|
20
|
+
sink = process.stderr;
|
|
21
|
+
}
|
|
22
|
+
function emit(severity, message, fields = {}) {
|
|
23
|
+
sink.write(JSON.stringify({
|
|
24
|
+
severity,
|
|
25
|
+
message,
|
|
26
|
+
time: new Date().toISOString(),
|
|
27
|
+
...fields,
|
|
28
|
+
}) + "\n");
|
|
29
|
+
}
|
|
30
|
+
export const log = {
|
|
31
|
+
debug: (message, fields) => emit("DEBUG", message, fields),
|
|
32
|
+
info: (message, fields) => emit("INFO", message, fields),
|
|
33
|
+
warn: (message, fields) => emit("WARNING", message, fields),
|
|
34
|
+
error: (message, fields) => emit("ERROR", message, fields),
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/lib/log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,IAAI,IAAI,GAAuB,OAAO,CAAC,MAAM,CAAC;AAE9C,mFAAmF;AACnF,MAAM,UAAU,aAAa;IAC3B,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CACX,QAAkB,EAClB,OAAe,EACf,SAAkC,EAAE;IAEpC,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,SAAS,CAAC;QACb,QAAQ;QACR,OAAO;QACP,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,GAAG,MAAM;KACV,CAAC,GAAG,IAAI,CACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,CAAC,OAAe,EAAE,MAAgC,EAAE,EAAE,CAC3D,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,OAAe,EAAE,MAAgC,EAAE,EAAE,CAC1D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,OAAe,EAAE,MAAgC,EAAE,EAAE,CAC1D,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,OAAe,EAAE,MAAgC,EAAE,EAAE,CAC3D,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;CACjC,CAAC"}
|