@vibesdotdev/mcp 1.0.0-rc.2 → 1.0.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/README.md +11 -11
  2. package/dist/adapters/index.d.ts +0 -2
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js +0 -2
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/mcp/connection-identity.d.ts +18 -0
  7. package/dist/adapters/mcp/connection-identity.d.ts.map +1 -1
  8. package/dist/adapters/mcp/connection-identity.js +26 -0
  9. package/dist/adapters/mcp/connection-identity.js.map +1 -1
  10. package/dist/adapters/mcp/dual-era-handler.d.ts +22 -0
  11. package/dist/adapters/mcp/dual-era-handler.d.ts.map +1 -0
  12. package/dist/adapters/mcp/dual-era-handler.js +150 -0
  13. package/dist/adapters/mcp/dual-era-handler.js.map +1 -0
  14. package/dist/adapters/mcp/index.d.ts +0 -4
  15. package/dist/adapters/mcp/index.d.ts.map +1 -1
  16. package/dist/adapters/mcp/index.js +2 -10
  17. package/dist/adapters/mcp/index.js.map +1 -1
  18. package/dist/adapters/mcp/mcp-http-session.d.ts +1 -1
  19. package/dist/adapters/mcp/mcp-http-session.d.ts.map +1 -1
  20. package/dist/adapters/mcp/mcp-http-session.js +1 -1
  21. package/dist/adapters/mcp/mcp-http-session.js.map +1 -1
  22. package/dist/adapters/mcp/projection-doctor.d.ts.map +1 -1
  23. package/dist/adapters/mcp/projection-doctor.js +11 -4
  24. package/dist/adapters/mcp/projection-doctor.js.map +1 -1
  25. package/dist/adapters/mcp/projection.d.ts +1 -1
  26. package/dist/adapters/mcp/projection.d.ts.map +1 -1
  27. package/dist/adapters/mcp/projection.js.map +1 -1
  28. package/dist/adapters/mcp/sampling-context.d.ts.map +1 -1
  29. package/dist/adapters/mcp/sampling-context.js +1 -1
  30. package/dist/adapters/mcp/sampling-context.js.map +1 -1
  31. package/dist/adapters/mcp/sampling.d.ts +1 -1
  32. package/dist/adapters/mcp/sampling.d.ts.map +1 -1
  33. package/dist/adapters/mcp/server.consumer.d.ts +1 -1
  34. package/dist/adapters/mcp/server.consumer.d.ts.map +1 -1
  35. package/dist/adapters/mcp/server.consumer.js +59 -32
  36. package/dist/adapters/mcp/server.consumer.js.map +1 -1
  37. package/dist/adapters/mcp/server.d.ts +1 -22
  38. package/dist/adapters/mcp/server.d.ts.map +1 -1
  39. package/dist/adapters/mcp/server.js +232 -266
  40. package/dist/adapters/mcp/server.js.map +1 -1
  41. package/dist/adapters/mcp/startup-refusal.d.ts +2 -2
  42. package/dist/adapters/mcp/startup-refusal.d.ts.map +1 -1
  43. package/dist/adapters/mcp/startup-refusal.js +10 -10
  44. package/dist/adapters/mcp/startup-refusal.js.map +1 -1
  45. package/dist/adapters/mcp/stdio-relay.d.ts +1 -34
  46. package/dist/adapters/mcp/stdio-relay.d.ts.map +1 -1
  47. package/dist/adapters/mcp/stdio-relay.js +55 -71
  48. package/dist/adapters/mcp/stdio-relay.js.map +1 -1
  49. package/dist/adapters/mcp/tool-approval.d.ts +35 -0
  50. package/dist/adapters/mcp/tool-approval.d.ts.map +1 -0
  51. package/dist/adapters/mcp/tool-approval.js +156 -0
  52. package/dist/adapters/mcp/tool-approval.js.map +1 -0
  53. package/dist/adapters/mcp/tool-audit-live.d.ts +8 -12
  54. package/dist/adapters/mcp/tool-audit-live.d.ts.map +1 -1
  55. package/dist/adapters/mcp/tool-audit-live.js +9 -13
  56. package/dist/adapters/mcp/tool-audit-live.js.map +1 -1
  57. package/dist/adapters/mcp/tool-audit.d.ts +5 -0
  58. package/dist/adapters/mcp/tool-audit.d.ts.map +1 -1
  59. package/dist/adapters/mcp/tool-audit.js +73 -5
  60. package/dist/adapters/mcp/tool-audit.js.map +1 -1
  61. package/dist/adapters/mcp/trust-tag.d.ts.map +1 -1
  62. package/dist/adapters/mcp/trust-tag.js +5 -0
  63. package/dist/adapters/mcp/trust-tag.js.map +1 -1
  64. package/dist/adapters/mcp/web-handler.d.ts +6 -1
  65. package/dist/adapters/mcp/web-handler.d.ts.map +1 -1
  66. package/dist/adapters/mcp/web-handler.js +33 -13
  67. package/dist/adapters/mcp/web-handler.js.map +1 -1
  68. package/dist/adapters/transport-bun-http.d.ts +7 -3
  69. package/dist/adapters/transport-bun-http.d.ts.map +1 -1
  70. package/dist/adapters/transport-bun-http.js +5 -5
  71. package/dist/adapters/transport-bun-http.js.map +1 -1
  72. package/dist/adapters/types.d.ts +7 -9
  73. package/dist/adapters/types.d.ts.map +1 -1
  74. package/dist/adapters/zod-mcp.d.ts.map +1 -1
  75. package/dist/adapters/zod-mcp.js +4 -6
  76. package/dist/adapters/zod-mcp.js.map +1 -1
  77. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.d.ts.map +1 -1
  78. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js +6 -1
  79. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js.map +1 -1
  80. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.d.ts.map +1 -1
  81. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js +2 -0
  82. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js.map +1 -1
  83. package/dist/config/mcp.config.descriptor.d.ts +28 -33
  84. package/dist/config/mcp.config.descriptor.d.ts.map +1 -1
  85. package/dist/config/mcp.config.descriptor.js +23 -19
  86. package/dist/config/mcp.config.descriptor.js.map +1 -1
  87. package/dist/docs/resources.docs.descriptor.d.ts.map +1 -1
  88. package/dist/docs/resources.docs.descriptor.js +43 -332
  89. package/dist/docs/resources.docs.descriptor.js.map +1 -1
  90. package/dist/docs/server.docs.descriptor.d.ts.map +1 -1
  91. package/dist/docs/server.docs.descriptor.js +71 -300
  92. package/dist/docs/server.docs.descriptor.js.map +1 -1
  93. package/dist/docs/tools.docs.descriptor.d.ts.map +1 -1
  94. package/dist/docs/tools.docs.descriptor.js +69 -244
  95. package/dist/docs/tools.docs.descriptor.js.map +1 -1
  96. package/dist/index.d.ts +7 -7
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +6 -6
  99. package/dist/index.js.map +1 -1
  100. package/dist/mcp.runtime.plugin.d.ts.map +1 -1
  101. package/dist/mcp.runtime.plugin.js +3 -1
  102. package/dist/mcp.runtime.plugin.js.map +1 -1
  103. package/dist/svelte/tool-widgets/summary.d.ts +2 -2
  104. package/dist/svelte/tool-widgets/summary.d.ts.map +1 -1
  105. package/dist/svelte/tool-widgets/summary.js +9 -4
  106. package/dist/tools/vibes-context/schemas.d.ts +2 -1
  107. package/dist/tools/vibes-context/schemas.d.ts.map +1 -1
  108. package/dist/tools/vibes-context/schemas.js +22 -4
  109. package/dist/tools/vibes-context/schemas.js.map +1 -1
  110. package/dist/tools/vibes-context/vibes-context.descriptor.d.ts.map +1 -1
  111. package/dist/tools/vibes-context/vibes-context.descriptor.js +11 -1
  112. package/dist/tools/vibes-context/vibes-context.descriptor.js.map +1 -1
  113. package/dist/tools/vibes-context/vibes-context.impl.d.ts.map +1 -1
  114. package/dist/tools/vibes-context/vibes-context.impl.js +22 -11
  115. package/dist/tools/vibes-context/vibes-context.impl.js.map +1 -1
  116. package/dist/types.d.ts +0 -32
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/types.js +1 -0
  119. package/dist/types.js.map +1 -1
  120. package/dist/types.registry.d.ts +0 -59
  121. package/dist/types.registry.d.ts.map +1 -1
  122. package/dist/types.registry.js.map +1 -1
  123. package/package.json +61 -92
  124. package/dist/adapters/compatibility.d.ts +0 -20
  125. package/dist/adapters/compatibility.d.ts.map +0 -1
  126. package/dist/adapters/compatibility.js +0 -57
  127. package/dist/adapters/compatibility.js.map +0 -1
  128. package/dist/adapters/host-context.consumer.d.ts +0 -12
  129. package/dist/adapters/host-context.consumer.d.ts.map +0 -1
  130. package/dist/adapters/host-context.consumer.js +0 -10
  131. package/dist/adapters/host-context.consumer.js.map +0 -1
  132. package/dist/adapters/host-context.d.ts +0 -32
  133. package/dist/adapters/host-context.d.ts.map +0 -1
  134. package/dist/adapters/host-context.js +0 -17
  135. package/dist/adapters/host-context.js.map +0 -1
  136. package/dist/adapters/mcp/context.d.ts +0 -137
  137. package/dist/adapters/mcp/context.d.ts.map +0 -1
  138. package/dist/adapters/mcp/context.js +0 -230
  139. package/dist/adapters/mcp/context.js.map +0 -1
  140. package/dist/adapters/mcp/formatters.d.ts +0 -41
  141. package/dist/adapters/mcp/formatters.d.ts.map +0 -1
  142. package/dist/adapters/mcp/formatters.js +0 -102
  143. package/dist/adapters/mcp/formatters.js.map +0 -1
  144. package/dist/adapters/mcp/from-api-endpoint.d.ts +0 -59
  145. package/dist/adapters/mcp/from-api-endpoint.d.ts.map +0 -1
  146. package/dist/adapters/mcp/from-api-endpoint.js +0 -206
  147. package/dist/adapters/mcp/from-api-endpoint.js.map +0 -1
  148. package/dist/adapters/mcp/vibes-types.d.ts +0 -115
  149. package/dist/adapters/mcp/vibes-types.d.ts.map +0 -1
  150. package/dist/adapters/mcp/vibes-types.js +0 -7
  151. package/dist/adapters/mcp/vibes-types.js.map +0 -1
  152. package/dist/mcp/index.d.ts +0 -20
  153. package/dist/mcp/index.d.ts.map +0 -1
  154. package/dist/mcp/index.js +0 -19
  155. package/dist/mcp/index.js.map +0 -1
  156. package/dist/mcp.consumer.plugin.d.ts +0 -4
  157. package/dist/mcp.consumer.plugin.d.ts.map +0 -1
  158. package/dist/mcp.consumer.plugin.js +0 -19
  159. package/dist/mcp.consumer.plugin.js.map +0 -1
  160. package/dist/schemas/host-adapters.d.ts +0 -14
  161. package/dist/schemas/host-adapters.d.ts.map +0 -1
  162. package/dist/schemas/host-adapters.js +0 -7
  163. package/dist/schemas/host-adapters.js.map +0 -1
  164. package/dist/schemas/tool.d.ts +0 -8
  165. package/dist/schemas/tool.d.ts.map +0 -1
  166. package/dist/schemas/tool.js +0 -8
  167. package/dist/schemas/tool.js.map +0 -1
@@ -1,12 +0,0 @@
1
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
- import { createMcpAdapter } from './mcp/server.consumer.ts';
3
- /** Only the consumer plugin loads this host implementation. */
4
- export declare const impl: {
5
- provide: () => {
6
- createStdioTransport: (_stdin?: import("node:stream").Readable | undefined, _stdout?: import("node:stream").Writable | undefined, options?: {
7
- maxBufferSize?: number;
8
- } | undefined) => StdioServerTransport;
9
- createMcpAdapter: typeof createMcpAdapter;
10
- };
11
- };
12
- //# sourceMappingURL=host-context.consumer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-context.consumer.d.ts","sourceRoot":"","sources":["../../src/adapters/host-context.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,+DAA+D;AAC/D,eAAO,MAAM,IAAI;;;;;;;CAKhB,CAAC"}
@@ -1,10 +0,0 @@
1
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
- import { createMcpAdapter } from "./mcp/server.consumer.js";
3
- /** Only the consumer plugin loads this host implementation. */
4
- export const impl = {
5
- provide: () => ({
6
- createStdioTransport: (...args) => new StdioServerTransport(...args),
7
- createMcpAdapter
8
- })
9
- };
10
- //# sourceMappingURL=host-context.consumer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-context.consumer.js","sourceRoot":"","sources":["../../src/adapters/host-context.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,IAAI,GAAG;IACnB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACf,oBAAoB,EAAE,CAAC,GAAG,IAAwD,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;QACxH,gBAAgB;KAChB,CAAC;CACF,CAAC"}
@@ -1,32 +0,0 @@
1
- import { type RuntimeRef } from '@vibesdotdev/kernel';
2
- import { type McpHostAdapters } from '../schemas/host-adapters.ts';
3
- export declare const mcpHostAdaptersContext: {
4
- id: string;
5
- kind: "context";
6
- name?: string | undefined;
7
- description?: string | undefined;
8
- tags?: string[] | undefined;
9
- hardware?: string[] | undefined;
10
- enabled?: boolean | undefined;
11
- priority?: number | undefined;
12
- capabilityId?: string | undefined;
13
- requiredContext?: string[] | undefined;
14
- optionalContext?: string[] | undefined;
15
- retention?: string | {
16
- reason: string;
17
- maxAgeDays?: number | undefined;
18
- maxEntries?: number | undefined;
19
- maxBytes?: number | undefined;
20
- cascadeFrom?: string | undefined;
21
- ageField?: string | undefined;
22
- enforcedBy?: string | undefined;
23
- } | undefined;
24
- valueKind?: "data" | "service" | undefined;
25
- valueSchema?: unknown;
26
- config?: {
27
- sources: ("literal" | "workspace" | "floor")[];
28
- subset?: true | undefined;
29
- } | undefined;
30
- };
31
- export declare function resolveMcpHostAdapters(runtime: RuntimeRef): Promise<McpHostAdapters>;
32
- //# sourceMappingURL=host-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-context.d.ts","sourceRoot":"","sources":["../../src/adapters/host-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE1F,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAC;AAEH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAQ1F"}
@@ -1,17 +0,0 @@
1
- import { CapabilityError, createContextDescriptor } from '@vibesdotdev/kernel';
2
- import { McpHostAdaptersSchema } from "../schemas/host-adapters.js";
3
- export const mcpHostAdaptersContext = createContextDescriptor({
4
- id: 'mcp/host-adapters',
5
- description: 'Consumer-owned MCP transport constructors and adapter factory.',
6
- valueSchema: McpHostAdaptersSchema
7
- });
8
- export async function resolveMcpHostAdapters(runtime) {
9
- if (!runtime.hasContext(mcpHostAdaptersContext.id)) {
10
- throw new CapabilityError('MCP host adapters require the consumer composition.', 'UNAVAILABLE', {
11
- reason: 'mcp-host-adapters-unavailable',
12
- recoveryHint: 'Compose @vibesdotdev/mcp/consumer.plugin or import the explicit adapter entrypoint.'
13
- });
14
- }
15
- return McpHostAdaptersSchema.parse(await runtime.context(mcpHostAdaptersContext.id));
16
- }
17
- //# sourceMappingURL=host-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-context.js","sourceRoot":"","sources":["../../src/adapters/host-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAmB,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAwB,MAAM,6BAA6B,CAAC;AAE1F,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;IAC7D,EAAE,EAAE,mBAAmB;IACvB,WAAW,EAAE,gEAAgE;IAC7E,WAAW,EAAE,qBAAqB;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAmB;IAC/D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,eAAe,CAAC,qDAAqD,EAAE,aAAa,EAAE;YAC/F,MAAM,EAAE,+BAA+B;YACvC,YAAY,EAAE,qFAAqF;SACnG,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,qBAAqB,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC"}
@@ -1,137 +0,0 @@
1
- /**
2
- * MCP Tool Context Types and Helpers
3
- *
4
- * Tool-runtime context with CLI/AI/auth/PM runtime fields.
5
- * These types compose tool-runtime context for MCP tool execution.
6
- */
7
- import * as z from 'zod/v4';
8
- import type { PMContext } from '@vibesdotdev/pm/context';
9
- import type { CLIAIContext } from '@vibesdotdev/ai/generation/text/schemas/context';
10
- import type { ApiClientImplementation } from '@vibesdotdev/client/schemas';
11
- import type { LogLevel } from '@vibesdotdev/logging/schemas/entry';
12
- import type { IUIHandles } from '@vibesdotdev/cli/schemas/types';
13
- import type { AuthContext } from '@vibesdotdev/auth/schemas/provider';
14
- import type { RuntimeContextMetadata } from '@vibesdotdev/tools/schemas/types';
15
- import type { McpUser, McpToolResult, McpClientInfo, McpConnectionState, SamplingRequest, SamplingResult } from '@vibesdotdev/mcp/types';
16
- import type { VibesRuntime } from '@vibesdotdev/kernel';
17
- /** String-keyed record whose values are validated by the reader, not by the type. */
18
- declare const McpRecordSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
19
- export type McpRecord = z.infer<typeof McpRecordSchema>;
20
- /**
21
- * Request metadata passed into MCP tool context creation.
22
- * Allows HTTP adapters to forward headers/cookies/session/project info.
23
- */
24
- export interface McpHttpRequest {
25
- toolId: string;
26
- toolCallId?: string;
27
- headers?: Record<string, string | string[] | undefined>;
28
- cookies?: Record<string, string>;
29
- sessionId?: string;
30
- projectId?: string;
31
- workspacePath?: string;
32
- }
33
- /**
34
- * Workspace source enumeration
35
- */
36
- export type WorkspaceSource = 'arguments' | 'config' | 'environment' | 'cli';
37
- /**
38
- * Workspace context for MCP tool execution
39
- */
40
- export interface WorkspaceContext {
41
- path: string;
42
- source: WorkspaceSource;
43
- }
44
- /**
45
- * MCP Server Runtime Configuration
46
- */
47
- export interface McpServerRuntimeConfig {
48
- auth?: {};
49
- mode?: 'stdio' | 'http';
50
- http?: {
51
- port: number;
52
- host?: string;
53
- sessionTimeoutMs?: number;
54
- sessionCleanupIntervalMs?: number;
55
- };
56
- logging?: {
57
- level?: LogLevel;
58
- logFile?: string;
59
- };
60
- }
61
- /**
62
- * MCP Tool Execution Context
63
- * Contains full CLI runtime context plus MCP-specific data
64
- */
65
- export interface McpToolContext {
66
- /** API client for making authenticated requests (canonical property) */
67
- api?: ApiClientImplementation;
68
- /** Auth context with user info and credentials */
69
- auth?: AuthContext;
70
- /** CLI configuration */
71
- config?: McpRecord;
72
- /** Environment configuration */
73
- environment?: McpRecord;
74
- /** UI toolkit for user interaction */
75
- ui?: IUIHandles;
76
- /** Process manager for background jobs */
77
- pm?: PMContext;
78
- /** AI context with generation client */
79
- ai?: CLIAIContext;
80
- /** Feature-specific runtime context */
81
- dev?: McpRecord;
82
- /** Tool runtime metadata */
83
- runtime?: Partial<RuntimeContextMetadata>;
84
- /** Authenticated user info */
85
- user: McpUser | null;
86
- /** Request timestamp */
87
- timestamp: Date;
88
- /** Tool call parameters */
89
- params?: McpRecord;
90
- /** Request sampling callback for LLM interactions */
91
- requestSampling?: (request: SamplingRequest) => Promise<SamplingResult>;
92
- /** Workspace context */
93
- workspace?: WorkspaceContext;
94
- /** Workspace root path */
95
- workspacePath?: string;
96
- /** MCP client info */
97
- clientInfo?: McpClientInfo;
98
- /** Connection state */
99
- connection?: McpConnectionState;
100
- /** Factory to create API client on demand */
101
- createClient?: () => Promise<ApiClientImplementation>;
102
- }
103
- /**
104
- * MCP Tool Execution Info
105
- */
106
- export interface McpToolExecutionInfo {
107
- callId: string;
108
- runtime: VibesRuntime;
109
- workspacePath: string | null;
110
- transport: 'stdio' | 'http';
111
- sessionId: string | undefined;
112
- projectId: string | undefined;
113
- }
114
- /**
115
- * CLI Runtime context subset for MCP tool execution
116
- */
117
- export interface McpRuntimeContext extends McpRecord {
118
- workspacePath?: string;
119
- /** Workspace resolution options */
120
- options?: {
121
- workspace?: string;
122
- cwd?: string;
123
- };
124
- environment?: McpRecord | null;
125
- }
126
- /**
127
- * Prepare MCP tool execution from CLI context and HTTP request
128
- * @deprecated Use prepareMcpToolExecutionAsync instead
129
- */
130
- export declare function prepareMcpToolExecution(_cliContext: McpRuntimeContext, _request: McpHttpRequest): never;
131
- /**
132
- * Async version that accepts runtime directly
133
- * Validates headers, cookies, session ID, and project ID before use.
134
- */
135
- export declare function prepareMcpToolExecutionAsync(runtime: VibesRuntime, cliContext: McpRuntimeContext, request: McpHttpRequest): McpToolExecutionInfo;
136
- export type { McpUser, McpToolResult };
137
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/context.ts"],"names":[],"mappings":"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"}
@@ -1,230 +0,0 @@
1
- /**
2
- * MCP Tool Context Types and Helpers
3
- *
4
- * Tool-runtime context with CLI/AI/auth/PM runtime fields.
5
- * These types compose tool-runtime context for MCP tool execution.
6
- */
7
- import * as z from 'zod/v4';
8
- import { ToolError, ToolErrorCode } from '@vibesdotdev/tools/errors';
9
- // ============================================================================
10
- // MCP Context Input Validation Schemas
11
- // ============================================================================
12
- /** Valid session ID: UUID v4 format */
13
- const SessionIdSchema = z
14
- .string()
15
- .regex(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i, 'Invalid session ID format: expected UUID v4')
16
- .max(36, 'Session ID exceeds maximum length (36 characters)');
17
- /** Valid project ID: alphanumeric, hyphens, underscores; 1-64 chars */
18
- const ProjectIdSchema = z
19
- .string()
20
- .regex(/^[a-zA-Z0-9_-]+$/, 'Invalid project ID format: only alphanumeric, hyphens, and underscores allowed')
21
- .min(1, 'Project ID cannot be empty')
22
- .max(64, 'Project ID exceeds maximum length (64 characters)');
23
- /** Valid cookie name: printable ASCII except control chars, semicolon, comma, equals, space, tab */
24
- const CookieNameSchema = z
25
- .string()
26
- .regex(/^[\x21-\x7E&&[^;\s,=]]+$/, 'Invalid cookie name: contains forbidden characters')
27
- .max(128, 'Cookie name exceeds maximum length (128 characters)');
28
- /** Valid cookie value: printable ASCII except control chars, semicolon, comma, space, tab */
29
- const CookieValueSchema = z
30
- .string()
31
- .regex(/^[\x21-\x7E&&[^;\s,]]*$/, 'Invalid cookie value: contains forbidden characters')
32
- .max(4096, 'Cookie value exceeds maximum length (4096 characters)');
33
- /** Valid header value: printable ASCII and spaces; 1-8192 chars (HTTP spec limit) */
34
- const HeaderValueSchema = z
35
- .string()
36
- .regex(/^[\x20-\x7E]*$/, 'Invalid header value: contains non-printable characters')
37
- .max(8192, 'Header value exceeds maximum length (8192 characters)');
38
- /** String-keyed record whose values are validated by the reader, not by the type. */
39
- const McpRecordSchema = z.record(z.string(), z.unknown());
40
- /** A string, or undefined for anything else. */
41
- const OptionalStringSchema = z.string().optional().catch(undefined);
42
- /** Transport named by the MCP environment; anything unrecognised is stdio. */
43
- const TransportSchema = z.enum(['stdio', 'http']).catch('stdio');
44
- /** Validation error result for structured error reporting */
45
- const ValidationErrorSchema = z.object({
46
- field: z.enum(['mcp-session-id', 'x-project-id', 'cookie-name', 'cookie-value']),
47
- issue: z.string()
48
- });
49
- /**
50
- * Validates a session ID and returns typed errors if invalid.
51
- */
52
- function validateSessionId(value) {
53
- const result = SessionIdSchema.safeParse(value);
54
- if (result.success) {
55
- return { valid: true, value: result.data };
56
- }
57
- return {
58
- valid: false,
59
- errors: result.error.issues.map((issue) => ({
60
- field: 'mcp-session-id',
61
- issue: issue.message
62
- }))
63
- };
64
- }
65
- /**
66
- * Validates a project ID and returns typed errors if invalid.
67
- */
68
- function validateProjectId(value) {
69
- const result = ProjectIdSchema.safeParse(value);
70
- if (result.success) {
71
- return { valid: true, value: result.data };
72
- }
73
- return {
74
- valid: false,
75
- errors: result.error.issues.map((issue) => ({
76
- field: 'x-project-id',
77
- issue: issue.message
78
- }))
79
- };
80
- }
81
- /**
82
- * Validates cookie name/value pairs and returns typed errors.
83
- */
84
- function validateCookies(cookies) {
85
- const errors = [];
86
- for (const [name, value] of Object.entries(cookies)) {
87
- const nameResult = CookieNameSchema.safeParse(name);
88
- if (!nameResult.success) {
89
- errors.push(...nameResult.error.issues.map((issue) => ({
90
- field: 'cookie-name',
91
- issue: `Invalid cookie name: ${issue.message}`
92
- })));
93
- }
94
- const valueResult = CookieValueSchema.safeParse(value);
95
- if (!valueResult.success) {
96
- errors.push(...valueResult.error.issues.map((issue) => ({
97
- field: 'cookie-value',
98
- issue: `Invalid cookie value: ${issue.message}`
99
- })));
100
- }
101
- }
102
- if (errors.length > 0) {
103
- return { valid: false, errors };
104
- }
105
- return { valid: true };
106
- }
107
- /**
108
- * Validates a header value and returns typed errors if invalid.
109
- */
110
- function validateHeaderValue(headerName, value) {
111
- if (value === undefined) {
112
- return { valid: true, value: undefined };
113
- }
114
- if (!z.string().safeParse(value).success) {
115
- return {
116
- valid: false,
117
- errors: [{ field: headerName, issue: 'Header value must be a string' }]
118
- };
119
- }
120
- const result = HeaderValueSchema.safeParse(value);
121
- if (result.success) {
122
- return { valid: true, value: result.data };
123
- }
124
- return {
125
- valid: false,
126
- errors: result.error.issues.map((issue) => ({
127
- field: headerName,
128
- issue: issue.message
129
- }))
130
- };
131
- }
132
- /**
133
- * Throws a structured ToolError for validation failures.
134
- */
135
- function throwValidationError(errors) {
136
- const summary = errors.map((e) => `${e.field}: ${e.issue}`).join('; ');
137
- throw new ToolError(`MCP context validation failed: ${summary}`, ToolErrorCode.CONTEXT_INVALID, {
138
- operation: 'prepareMcpToolExecution',
139
- validationErrors: errors,
140
- timestamp: new Date().toISOString()
141
- }, 'Check that session ID is a valid UUID, project ID uses allowed characters, and headers/cookies are within size limits');
142
- }
143
- /**
144
- * Resolve workspace path from context
145
- */
146
- function resolveWorkspaceFromContext(context, requestWorkspace) {
147
- if (requestWorkspace)
148
- return requestWorkspace;
149
- if (context.workspacePath)
150
- return context.workspacePath;
151
- if (context.options?.workspace)
152
- return context.options.workspace;
153
- return null;
154
- }
155
- /**
156
- * Prepare MCP tool execution from CLI context and HTTP request
157
- * @deprecated Use prepareMcpToolExecutionAsync instead
158
- */
159
- export function prepareMcpToolExecution(_cliContext, _request) {
160
- throw new Error('prepareMcpToolExecution requires runtime - use prepareMcpToolExecutionAsync');
161
- }
162
- /**
163
- * Async version that accepts runtime directly
164
- * Validates headers, cookies, session ID, and project ID before use.
165
- */
166
- export function prepareMcpToolExecutionAsync(runtime, cliContext, request) {
167
- const headers = request.headers ?? {};
168
- const cookies = request.cookies ?? {};
169
- const parsedEnvironment = McpRecordSchema.safeParse(cliContext.environment);
170
- const environment = parsedEnvironment.success ? parsedEnvironment.data : undefined;
171
- // Collect all validation errors
172
- const allValidationErrors = [];
173
- // Validate cookies first (before we read from them)
174
- const cookieValidation = validateCookies(cookies);
175
- if (!cookieValidation.valid) {
176
- allValidationErrors.push(...cookieValidation.errors);
177
- }
178
- // Validate header values
179
- const mcpSessionHeaderResult = validateHeaderValue('mcp-session-id', headers['mcp-session-id']);
180
- if (!mcpSessionHeaderResult.valid) {
181
- allValidationErrors.push(...mcpSessionHeaderResult.errors);
182
- }
183
- const xProjectIdHeaderResult = validateHeaderValue('x-project-id', headers['x-project-id']);
184
- if (!xProjectIdHeaderResult.valid) {
185
- allValidationErrors.push(...xProjectIdHeaderResult.errors);
186
- }
187
- // Extract raw values (now validated as safe strings)
188
- const rawSessionId = request.sessionId ?? readHeaderValue(headers['mcp-session-id']) ?? cookies['mcp-session-id'];
189
- const rawProjectId = request.projectId ?? readHeaderValue(headers['x-project-id']) ?? cookies['project-id'];
190
- // Validate session ID if present
191
- if (rawSessionId !== undefined && rawSessionId !== null && rawSessionId !== '') {
192
- const sessionValidation = validateSessionId(rawSessionId);
193
- if (!sessionValidation.valid) {
194
- allValidationErrors.push(...sessionValidation.errors);
195
- }
196
- }
197
- // Validate project ID if present
198
- if (rawProjectId !== undefined && rawProjectId !== null && rawProjectId !== '') {
199
- const projectValidation = validateProjectId(rawProjectId);
200
- if (!projectValidation.valid) {
201
- allValidationErrors.push(...projectValidation.errors);
202
- }
203
- }
204
- // Throw structured error if any validations failed
205
- if (allValidationErrors.length > 0) {
206
- throwValidationError(allValidationErrors);
207
- }
208
- const requestWorkspace = OptionalStringSchema.parse(request.workspacePath);
209
- const workspacePath = resolveWorkspaceFromContext(cliContext, requestWorkspace);
210
- const mcpConfig = McpRecordSchema.safeParse(environment?.mcp);
211
- const transport = TransportSchema.parse(mcpConfig.success ? mcpConfig.data.mode : undefined);
212
- const projectIdFromEnv = OptionalStringSchema.parse(environment?.projectId);
213
- return {
214
- callId: request.toolCallId || generateCallId(),
215
- runtime,
216
- workspacePath,
217
- transport,
218
- sessionId: rawSessionId,
219
- projectId: rawProjectId ?? projectIdFromEnv
220
- };
221
- }
222
- function generateCallId() {
223
- return `mcp_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`;
224
- }
225
- function readHeaderValue(value) {
226
- if (Array.isArray(value))
227
- return value.length === 0 ? undefined : value[value.length - 1];
228
- return OptionalStringSchema.parse(value);
229
- }
230
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/adapters/mcp/context.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * MCP Response Formatters
3
- *
4
- * Response formatter functions for MCP tool results.
5
- */
6
- import type { JsonObject } from '@vibesdotdev/kernel/schemas/json';
7
- import type { McpToolResult } from '@vibesdotdev/mcp/types';
8
- /**
9
- * JSON Schema for tool input parameters
10
- */
11
- export interface McpInputSchema {
12
- type: 'object';
13
- properties?: JsonObject;
14
- required?: string[];
15
- additionalProperties?: boolean;
16
- }
17
- /**
18
- * Response formatter function
19
- * Converts arbitrary data into MCP-compatible tool result
20
- */
21
- export type McpResponseFormatter<TData = unknown> = (data: TData) => McpToolResult | Promise<McpToolResult>;
22
- /**
23
- * Default response formatter - converts data to JSON text
24
- */
25
- export declare const defaultFormatter: <TData>(data: TData) => McpToolResult;
26
- /**
27
- * Table formatter - formats array data as markdown table
28
- */
29
- export declare const tableFormatter: <T extends JsonObject>(items: T[], options?: {
30
- title?: string;
31
- emptyMessage?: string;
32
- }) => McpToolResult;
33
- /**
34
- * List formatter - formats array as bulleted list
35
- */
36
- export declare const listFormatter: <T>(items: T[], options?: {
37
- title?: string;
38
- emptyMessage?: string;
39
- itemFormatter?: (item: T) => string;
40
- }) => McpToolResult;
41
- //# sourceMappingURL=formatters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAa,UAAU,EAAa,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAUD;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI,CACnD,IAAI,EAAE,KAAK,KACP,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,MAAM,KAAK,KAAG,aAWrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,UAAU,EAClD,OAAO,CAAC,EAAE,EACV,UAAS;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACjB,KACJ,aA6CF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC9B,OAAO,CAAC,EAAE,EACV,UAAS;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CAC/B,KACJ,aA+BF,CAAC"}
@@ -1,102 +0,0 @@
1
- /**
2
- * MCP Response Formatters
3
- *
4
- * Response formatter functions for MCP tool results.
5
- */
6
- function isText(value) {
7
- return typeof value === 'string';
8
- }
9
- function isNestedJson(value) {
10
- return typeof value === 'object' && value !== null;
11
- }
12
- /**
13
- * Default response formatter - converts data to JSON text
14
- */
15
- export const defaultFormatter = (data) => {
16
- const text = isText(data) ? data : JSON.stringify(data, null, 2);
17
- return {
18
- content: [
19
- {
20
- type: 'text',
21
- text
22
- }
23
- ]
24
- };
25
- };
26
- /**
27
- * Table formatter - formats array data as markdown table
28
- */
29
- export const tableFormatter = (items, options = {}) => {
30
- if (!items || items.length === 0) {
31
- return {
32
- content: [
33
- {
34
- type: 'text',
35
- text: options.emptyMessage || 'No results found'
36
- }
37
- ]
38
- };
39
- }
40
- // Get all unique keys from items
41
- const keys = Array.from(new Set(items.flatMap((item) => Object.keys(item))));
42
- // Build markdown table
43
- let table = '';
44
- if (options.title) {
45
- table += `## ${options.title}\n\n`;
46
- }
47
- // Header row
48
- table += `| ${keys.join(' | ')} |\n`;
49
- table += `| ${keys.map(() => '---').join(' | ')} |\n`;
50
- // Data rows
51
- for (const item of items) {
52
- const values = keys.map((key) => {
53
- const value = item[key];
54
- if (value === null || value === undefined)
55
- return '';
56
- if (isNestedJson(value))
57
- return JSON.stringify(value);
58
- return String(value);
59
- });
60
- table += `| ${values.join(' | ')} |\n`;
61
- }
62
- return {
63
- content: [
64
- {
65
- type: 'text',
66
- text: table
67
- }
68
- ]
69
- };
70
- };
71
- /**
72
- * List formatter - formats array as bulleted list
73
- */
74
- export const listFormatter = (items, options = {}) => {
75
- if (!items || items.length === 0) {
76
- return {
77
- content: [
78
- {
79
- type: 'text',
80
- text: options.emptyMessage || 'No results found'
81
- }
82
- ]
83
- };
84
- }
85
- const formatter = options.itemFormatter || ((item) => String(item));
86
- let text = '';
87
- if (options.title) {
88
- text += `## ${options.title}\n\n`;
89
- }
90
- for (const item of items) {
91
- text += `- ${formatter(item)}\n`;
92
- }
93
- return {
94
- content: [
95
- {
96
- type: 'text',
97
- text
98
- }
99
- ]
100
- };
101
- };
102
- //# sourceMappingURL=formatters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../src/adapters/mcp/formatters.ts"],"names":[],"mappings":"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"}