@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.
- package/README.md +11 -11
- package/dist/adapters/index.d.ts +0 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +0 -2
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mcp/connection-identity.d.ts +18 -0
- package/dist/adapters/mcp/connection-identity.d.ts.map +1 -1
- package/dist/adapters/mcp/connection-identity.js +26 -0
- package/dist/adapters/mcp/connection-identity.js.map +1 -1
- package/dist/adapters/mcp/dual-era-handler.d.ts +22 -0
- package/dist/adapters/mcp/dual-era-handler.d.ts.map +1 -0
- package/dist/adapters/mcp/dual-era-handler.js +150 -0
- package/dist/adapters/mcp/dual-era-handler.js.map +1 -0
- package/dist/adapters/mcp/index.d.ts +0 -4
- package/dist/adapters/mcp/index.d.ts.map +1 -1
- package/dist/adapters/mcp/index.js +2 -10
- package/dist/adapters/mcp/index.js.map +1 -1
- package/dist/adapters/mcp/mcp-http-session.d.ts +1 -1
- package/dist/adapters/mcp/mcp-http-session.d.ts.map +1 -1
- package/dist/adapters/mcp/mcp-http-session.js +1 -1
- package/dist/adapters/mcp/mcp-http-session.js.map +1 -1
- package/dist/adapters/mcp/projection-doctor.d.ts.map +1 -1
- package/dist/adapters/mcp/projection-doctor.js +11 -4
- package/dist/adapters/mcp/projection-doctor.js.map +1 -1
- package/dist/adapters/mcp/projection.d.ts +1 -1
- package/dist/adapters/mcp/projection.d.ts.map +1 -1
- package/dist/adapters/mcp/projection.js.map +1 -1
- package/dist/adapters/mcp/sampling-context.d.ts.map +1 -1
- package/dist/adapters/mcp/sampling-context.js +1 -1
- package/dist/adapters/mcp/sampling-context.js.map +1 -1
- package/dist/adapters/mcp/sampling.d.ts +1 -1
- package/dist/adapters/mcp/sampling.d.ts.map +1 -1
- package/dist/adapters/mcp/server.consumer.d.ts +1 -1
- package/dist/adapters/mcp/server.consumer.d.ts.map +1 -1
- package/dist/adapters/mcp/server.consumer.js +59 -32
- package/dist/adapters/mcp/server.consumer.js.map +1 -1
- package/dist/adapters/mcp/server.d.ts +1 -22
- package/dist/adapters/mcp/server.d.ts.map +1 -1
- package/dist/adapters/mcp/server.js +232 -266
- package/dist/adapters/mcp/server.js.map +1 -1
- package/dist/adapters/mcp/startup-refusal.d.ts +2 -2
- package/dist/adapters/mcp/startup-refusal.d.ts.map +1 -1
- package/dist/adapters/mcp/startup-refusal.js +10 -10
- package/dist/adapters/mcp/startup-refusal.js.map +1 -1
- package/dist/adapters/mcp/stdio-relay.d.ts +1 -34
- package/dist/adapters/mcp/stdio-relay.d.ts.map +1 -1
- package/dist/adapters/mcp/stdio-relay.js +55 -71
- package/dist/adapters/mcp/stdio-relay.js.map +1 -1
- package/dist/adapters/mcp/tool-approval.d.ts +35 -0
- package/dist/adapters/mcp/tool-approval.d.ts.map +1 -0
- package/dist/adapters/mcp/tool-approval.js +156 -0
- package/dist/adapters/mcp/tool-approval.js.map +1 -0
- package/dist/adapters/mcp/tool-audit-live.d.ts +8 -12
- package/dist/adapters/mcp/tool-audit-live.d.ts.map +1 -1
- package/dist/adapters/mcp/tool-audit-live.js +9 -13
- package/dist/adapters/mcp/tool-audit-live.js.map +1 -1
- package/dist/adapters/mcp/tool-audit.d.ts +5 -0
- package/dist/adapters/mcp/tool-audit.d.ts.map +1 -1
- package/dist/adapters/mcp/tool-audit.js +73 -5
- package/dist/adapters/mcp/tool-audit.js.map +1 -1
- package/dist/adapters/mcp/trust-tag.d.ts.map +1 -1
- package/dist/adapters/mcp/trust-tag.js +5 -0
- package/dist/adapters/mcp/trust-tag.js.map +1 -1
- package/dist/adapters/mcp/web-handler.d.ts +6 -1
- package/dist/adapters/mcp/web-handler.d.ts.map +1 -1
- package/dist/adapters/mcp/web-handler.js +33 -13
- package/dist/adapters/mcp/web-handler.js.map +1 -1
- package/dist/adapters/transport-bun-http.d.ts +7 -3
- package/dist/adapters/transport-bun-http.d.ts.map +1 -1
- package/dist/adapters/transport-bun-http.js +5 -5
- package/dist/adapters/transport-bun-http.js.map +1 -1
- package/dist/adapters/types.d.ts +7 -9
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/zod-mcp.d.ts.map +1 -1
- package/dist/adapters/zod-mcp.js +4 -6
- package/dist/adapters/zod-mcp.js.map +1 -1
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.d.ts.map +1 -1
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js +6 -1
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js.map +1 -1
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.d.ts.map +1 -1
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js +2 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js.map +1 -1
- package/dist/config/mcp.config.descriptor.d.ts +28 -33
- package/dist/config/mcp.config.descriptor.d.ts.map +1 -1
- package/dist/config/mcp.config.descriptor.js +23 -19
- package/dist/config/mcp.config.descriptor.js.map +1 -1
- package/dist/docs/resources.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/resources.docs.descriptor.js +43 -332
- package/dist/docs/resources.docs.descriptor.js.map +1 -1
- package/dist/docs/server.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/server.docs.descriptor.js +71 -300
- package/dist/docs/server.docs.descriptor.js.map +1 -1
- package/dist/docs/tools.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/tools.docs.descriptor.js +69 -244
- package/dist/docs/tools.docs.descriptor.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/mcp.runtime.plugin.d.ts.map +1 -1
- package/dist/mcp.runtime.plugin.js +3 -1
- package/dist/mcp.runtime.plugin.js.map +1 -1
- package/dist/svelte/tool-widgets/summary.d.ts +2 -2
- package/dist/svelte/tool-widgets/summary.d.ts.map +1 -1
- package/dist/svelte/tool-widgets/summary.js +9 -4
- package/dist/tools/vibes-context/schemas.d.ts +2 -1
- package/dist/tools/vibes-context/schemas.d.ts.map +1 -1
- package/dist/tools/vibes-context/schemas.js +22 -4
- package/dist/tools/vibes-context/schemas.js.map +1 -1
- package/dist/tools/vibes-context/vibes-context.descriptor.d.ts.map +1 -1
- package/dist/tools/vibes-context/vibes-context.descriptor.js +11 -1
- package/dist/tools/vibes-context/vibes-context.descriptor.js.map +1 -1
- package/dist/tools/vibes-context/vibes-context.impl.d.ts.map +1 -1
- package/dist/tools/vibes-context/vibes-context.impl.js +22 -11
- package/dist/tools/vibes-context/vibes-context.impl.js.map +1 -1
- package/dist/types.d.ts +0 -32
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/types.registry.d.ts +0 -59
- package/dist/types.registry.d.ts.map +1 -1
- package/dist/types.registry.js.map +1 -1
- package/package.json +61 -92
- package/dist/adapters/compatibility.d.ts +0 -20
- package/dist/adapters/compatibility.d.ts.map +0 -1
- package/dist/adapters/compatibility.js +0 -57
- package/dist/adapters/compatibility.js.map +0 -1
- package/dist/adapters/host-context.consumer.d.ts +0 -12
- package/dist/adapters/host-context.consumer.d.ts.map +0 -1
- package/dist/adapters/host-context.consumer.js +0 -10
- package/dist/adapters/host-context.consumer.js.map +0 -1
- package/dist/adapters/host-context.d.ts +0 -32
- package/dist/adapters/host-context.d.ts.map +0 -1
- package/dist/adapters/host-context.js +0 -17
- package/dist/adapters/host-context.js.map +0 -1
- package/dist/adapters/mcp/context.d.ts +0 -137
- package/dist/adapters/mcp/context.d.ts.map +0 -1
- package/dist/adapters/mcp/context.js +0 -230
- package/dist/adapters/mcp/context.js.map +0 -1
- package/dist/adapters/mcp/formatters.d.ts +0 -41
- package/dist/adapters/mcp/formatters.d.ts.map +0 -1
- package/dist/adapters/mcp/formatters.js +0 -102
- package/dist/adapters/mcp/formatters.js.map +0 -1
- package/dist/adapters/mcp/from-api-endpoint.d.ts +0 -59
- package/dist/adapters/mcp/from-api-endpoint.d.ts.map +0 -1
- package/dist/adapters/mcp/from-api-endpoint.js +0 -206
- package/dist/adapters/mcp/from-api-endpoint.js.map +0 -1
- package/dist/adapters/mcp/vibes-types.d.ts +0 -115
- package/dist/adapters/mcp/vibes-types.d.ts.map +0 -1
- package/dist/adapters/mcp/vibes-types.js +0 -7
- package/dist/adapters/mcp/vibes-types.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -20
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -19
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp.consumer.plugin.d.ts +0 -4
- package/dist/mcp.consumer.plugin.d.ts.map +0 -1
- package/dist/mcp.consumer.plugin.js +0 -19
- package/dist/mcp.consumer.plugin.js.map +0 -1
- package/dist/schemas/host-adapters.d.ts +0 -14
- package/dist/schemas/host-adapters.d.ts.map +0 -1
- package/dist/schemas/host-adapters.js +0 -7
- package/dist/schemas/host-adapters.js.map +0 -1
- package/dist/schemas/tool.d.ts +0 -8
- package/dist/schemas/tool.d.ts.map +0 -1
- package/dist/schemas/tool.js +0 -8
- 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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"}
|