stitchkit 0.36.1 → 0.37.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 +4 -2
- package/dist/browser/http.d.ts +2 -2
- package/dist/browser/http.d.ts.map +1 -1
- package/dist/cli.js +3 -3
- package/dist/contract/define.d.ts +28 -2
- package/dist/contract/define.d.ts.map +1 -1
- package/dist/contract/errors.d.ts.map +1 -1
- package/dist/contract/index.js +1 -1
- package/dist/{index-dvrn81q4.js → index-4pvtq6h2.js} +83 -34
- package/dist/{index-0ed3bx43.js → index-frfyw9fa.js} +2 -2
- package/dist/{index-pmftwk2a.js → index-g3jrbd0z.js} +26 -0
- package/dist/{index-82gncajj.js → index-s6yhmg1k.js} +555 -337
- package/dist/{index-bx49hskg.js → index-xq45akyd.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +7 -3
- package/dist/observability/index.js +3 -3
- package/dist/server/bun.d.ts +32 -0
- package/dist/server/bun.d.ts.map +1 -0
- package/dist/server/context.d.ts +1 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/create.d.ts +2 -3
- package/dist/server/create.d.ts.map +1 -1
- package/dist/server/implement.d.ts.map +1 -1
- package/dist/server/index.d.ts +3 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +25 -5
- package/dist/server/logger.d.ts +5 -5
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logging.d.ts +4 -1
- package/dist/server/logging.d.ts.map +1 -1
- package/dist/server/middleware/auth.d.ts +2 -2
- package/dist/server/middleware/auth.d.ts.map +1 -1
- package/dist/server/request-body.d.ts +4 -0
- package/dist/server/request-body.d.ts.map +1 -0
- package/dist/server/router.d.ts +3 -3
- package/dist/server/router.d.ts.map +1 -1
- package/dist/server/socket-io-config.d.ts +20 -0
- package/dist/server/socket-io-config.d.ts.map +1 -0
- package/dist/server/socket-io-node.d.ts +14 -0
- package/dist/server/socket-io-node.d.ts.map +1 -0
- package/dist/server/socket-io.d.ts +5 -32
- package/dist/server/socket-io.d.ts.map +1 -1
- package/dist/server/types.d.ts +54 -49
- package/dist/server/types.d.ts.map +1 -1
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/execute.d.ts +46 -16
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/flatten-join.d.ts +8 -0
- package/dist/tools/flatten-join.d.ts.map +1 -0
- package/dist/tools/flatten.d.ts +7 -44
- package/dist/tools/flatten.d.ts.map +1 -1
- package/dist/tools/json-schema.d.ts +1 -1
- package/dist/tools/json-schema.d.ts.map +1 -1
- package/dist/tools/manifest.d.ts.map +1 -1
- package/dist/tools/mcp-handler.d.ts +7 -13
- package/dist/tools/mcp-handler.d.ts.map +1 -1
- package/dist/tools/mcp.d.ts +61 -24
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mount.d.ts +9 -6
- package/dist/tools/mount.d.ts.map +1 -1
- package/dist/tools/names.d.ts +1 -1
- package/dist/tools/native-mcp.d.ts +57 -0
- package/dist/tools/native-mcp.d.ts.map +1 -0
- package/dist/tools/portable-formats.d.ts +15 -0
- package/dist/tools/portable-formats.d.ts.map +1 -0
- package/dist/tools/presentation.d.ts +15 -0
- package/dist/tools/presentation.d.ts.map +1 -0
- package/dist/tools/remote.d.ts.map +1 -1
- package/dist/tools/schema.d.ts +3 -8
- package/dist/tools/schema.d.ts.map +1 -1
- package/dist/tools/tool-logger.d.ts.map +1 -1
- package/dist/tools/view-file.d.ts +5 -3
- package/dist/tools/view-file.d.ts.map +1 -1
- package/dist/tools.d.ts +7 -4
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +357 -95
- package/llms-full.txt +371 -77
- package/package.json +14 -11
- /package/dist/{index-17rdjw68.js → index-e497hxcy.js} +0 -0
package/dist/tools/mcp.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { z } from 'zod';
|
|
2
3
|
import type { ServiceDef, StitchLogger } from '../server/types';
|
|
3
4
|
import { type ErrorHintFn, type ToolCallHooks, type ToolLifecycle } from './execute';
|
|
5
|
+
import type { ToolPresentationSchema } from './flatten';
|
|
4
6
|
import { type McpResourceDef } from './mcp-app';
|
|
5
|
-
import { type ToolExtend } from './mount';
|
|
7
|
+
import { type MountableTool, type ToolExtend } from './mount';
|
|
8
|
+
import { type NativeMcpRegistrar } from './native-mcp';
|
|
6
9
|
/**
|
|
7
10
|
* What to do when a tool's schema cannot be advertised on the MCP surface — a
|
|
8
11
|
* union / discriminated-union input (MCP needs an object), or a construct
|
|
@@ -13,6 +16,49 @@ import { type ToolExtend } from './mount';
|
|
|
13
16
|
* - `skip` — drop the tool silently.
|
|
14
17
|
*/
|
|
15
18
|
export type IncompatibleSchemaPolicy = 'throw' | 'skip' | 'warn';
|
|
19
|
+
/** One schema policy shared by validation, mounting and every MCP transport. */
|
|
20
|
+
export interface McpSchemaValidationConfig {
|
|
21
|
+
/** What to do when a tool schema fails the profile. Default `'throw'`. */
|
|
22
|
+
policy?: IncompatibleSchemaPolicy;
|
|
23
|
+
/** Require every advertised input property to carry usable type information. */
|
|
24
|
+
requireTypedProperties?: boolean;
|
|
25
|
+
/** Dotted `tool.property` paths deliberately left unconstrained. */
|
|
26
|
+
allowUntyped?: readonly string[];
|
|
27
|
+
/** Reject formats outside the portable JSON Schema/AJV baseline. */
|
|
28
|
+
requirePortableFormats?: boolean;
|
|
29
|
+
/** Custom formats known to every client used by this server. */
|
|
30
|
+
allowFormats?: readonly string[];
|
|
31
|
+
}
|
|
32
|
+
/** Standalone schema-validation input, including the exact surface-shaping options. */
|
|
33
|
+
export interface ValidateMcpSchemasConfig extends McpSchemaValidationConfig {
|
|
34
|
+
services: ServiceDef[];
|
|
35
|
+
logger?: StitchLogger;
|
|
36
|
+
extend?: ToolExtend;
|
|
37
|
+
flattenUnionInput?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** How a tool's result maps to MCP `structuredContent`. */
|
|
40
|
+
type StructuredMode = 'none' | 'direct' | 'wrapped';
|
|
41
|
+
/** One immutable descriptor cleared to register on any fresh MCP server. */
|
|
42
|
+
export interface PreparedMcpTool {
|
|
43
|
+
mountable: MountableTool;
|
|
44
|
+
inputSchema: ToolPresentationSchema;
|
|
45
|
+
outputSchema?: z.ZodType;
|
|
46
|
+
outputMode: StructuredMode;
|
|
47
|
+
}
|
|
48
|
+
export type PreparedMcpSurface = readonly PreparedMcpTool[];
|
|
49
|
+
export interface McpSurfacePreparationConfig {
|
|
50
|
+
extend?: ToolExtend;
|
|
51
|
+
flattenUnionInput?: boolean;
|
|
52
|
+
schemaValidation?: McpSchemaValidationConfig;
|
|
53
|
+
logger?: StitchLogger;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Prepare the deterministic MCP surface once. No auth, context, hooks,
|
|
57
|
+
* lifecycle closures, server or transport enters this value.
|
|
58
|
+
*/
|
|
59
|
+
export declare function prepareMcpSurface(services: ServiceDef | ServiceDef[], config?: McpSurfacePreparationConfig): PreparedMcpSurface;
|
|
60
|
+
/** Prepare already-resolved tool operations through the canonical MCP schema profile. */
|
|
61
|
+
export declare function prepareMcpTools(tools: readonly MountableTool[], config?: McpSurfacePreparationConfig): PreparedMcpSurface;
|
|
16
62
|
export interface McpMountConfig {
|
|
17
63
|
context?: Record<string, unknown>;
|
|
18
64
|
/** Tool-call observability hooks. */
|
|
@@ -25,8 +71,8 @@ export interface McpMountConfig {
|
|
|
25
71
|
*/
|
|
26
72
|
lifecycle?: ToolLifecycle;
|
|
27
73
|
extend?: ToolExtend;
|
|
28
|
-
/**
|
|
29
|
-
|
|
74
|
+
/** Validation policy applied to the exact advertised MCP schemas. */
|
|
75
|
+
schemaValidation?: McpSchemaValidationConfig;
|
|
30
76
|
/** Logger for the `'warn'` policy — defaults to `console`. */
|
|
31
77
|
logger?: StitchLogger;
|
|
32
78
|
/** Coerce JSON-stringified arrays/objects in tool arguments. Default: true. */
|
|
@@ -45,20 +91,10 @@ export interface McpMountConfig {
|
|
|
45
91
|
* callable on its own (a startup assertion, a test) to fail a deploy before
|
|
46
92
|
* the first request.
|
|
47
93
|
*/
|
|
48
|
-
export declare function validateMcpSchemas(
|
|
49
|
-
extend?: ToolExtend;
|
|
50
|
-
flattenUnionInput?: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Also fail a tool whose advertised schema has a property with no type
|
|
53
|
-
* information — nothing for a model to obey. Off by default because a
|
|
54
|
-
* contract may legitimately declare `z.unknown()`; `allowUntyped` lists the
|
|
55
|
-
* dotted paths that are deliberate, and anything else is a finding. → ADR 0044.
|
|
56
|
-
*/
|
|
57
|
-
requireTypedProperties?: boolean;
|
|
58
|
-
/** Dotted paths (`tool.property`) that are deliberately unconstrained. */
|
|
59
|
-
allowUntyped?: readonly string[];
|
|
60
|
-
}): void;
|
|
94
|
+
export declare function validateMcpSchemas(config: ValidateMcpSchemasConfig): void;
|
|
61
95
|
export declare function mountMcp(mcpServer: McpServer, services: ServiceDef | ServiceDef[], config?: McpMountConfig): void;
|
|
96
|
+
/** Register a prepared immutable surface onto one fresh server/runtime. */
|
|
97
|
+
export declare function mountPreparedMcp(mcpServer: McpServer, prepared: PreparedMcpSurface, config?: McpMountConfig): void;
|
|
62
98
|
/**
|
|
63
99
|
* Transport-neutral build config for an MCP server — everything needed to turn
|
|
64
100
|
* contract services into a live `McpServer`, minus how the identity is
|
|
@@ -88,16 +124,14 @@ export interface McpServerBuildConfig<TAuth> {
|
|
|
88
124
|
* `mountMcp` — without this, the batteries-path (`createMcpHandler`) could not
|
|
89
125
|
* reach it and a consumer had to hand-wrap every service. */
|
|
90
126
|
extend?: ToolExtend;
|
|
91
|
-
/**
|
|
92
|
-
|
|
127
|
+
/** Validation policy applied to the exact advertised MCP schemas. */
|
|
128
|
+
schemaValidation?: McpSchemaValidationConfig;
|
|
93
129
|
/** Logger for schema-incompatibility warnings — defaults to `console`. */
|
|
94
130
|
logger?: StitchLogger;
|
|
95
|
-
/** Register native
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
|
|
99
|
-
* `lifecycle` does not run for them. */
|
|
100
|
-
nativeTools?: (server: McpServer, auth: TAuth) => void;
|
|
131
|
+
/** Register native multimodal MCP tools for the resolved identity. Use
|
|
132
|
+
* `registerTool` for stitchkit lifecycle/hooks; `rawServer` is an explicit
|
|
133
|
+
* unprotected SDK escape hatch. */
|
|
134
|
+
nativeTools?: (registrar: NativeMcpRegistrar, auth: TAuth) => void;
|
|
101
135
|
/** MCP Apps UI resources (`ui://…`) served for tools that declare `ui`. */
|
|
102
136
|
resources?: McpResourceDef[];
|
|
103
137
|
/** Server instructions — a short (≤2KB) hint to the host on when and how to
|
|
@@ -117,10 +151,13 @@ export interface McpServerBuildConfig<TAuth> {
|
|
|
117
151
|
* Transport-agnostic — the shared core behind every MCP transport.
|
|
118
152
|
*/
|
|
119
153
|
export declare function buildMcpServer<TAuth>(config: McpServerBuildConfig<TAuth>, auth: TAuth): McpServer;
|
|
154
|
+
/** Build one fresh server from a deterministic surface prepared by its owner. */
|
|
155
|
+
export declare function buildMcpServerFromPrepared<TAuth>(config: McpServerBuildConfig<TAuth>, auth: TAuth, prepared: PreparedMcpSurface): McpServer;
|
|
120
156
|
/**
|
|
121
157
|
* Register one MCP Apps UI resource on an `McpServer`. The `read` callback's
|
|
122
158
|
* HTML is served under the resource `uri` with the apps MIME type; any `ui`
|
|
123
159
|
* metadata (CSP, border, domain) is attached to the content's `_meta.ui`.
|
|
124
160
|
*/
|
|
125
161
|
export declare function mountMcpResource(server: McpServer, resource: McpResourceDef): void;
|
|
162
|
+
export {};
|
|
126
163
|
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/tools/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/mount.d.ts
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import type { Transport, TransportSource } from '../contract';
|
|
8
8
|
import type { MethodDef, ServiceDef } from '../server/types';
|
|
9
|
-
import { type ErrorHintFn, type ToolCallHooks, type ToolLifecycle, type ToolResult } from './execute';
|
|
9
|
+
import { type ErrorHintFn, type ToolCallHooks, type ToolLifecycle, type ToolOperation, type ToolResult } from './execute';
|
|
10
|
+
import type { ToolPresentationSchema } from './flatten';
|
|
10
11
|
/**
|
|
11
12
|
* Extra arguments folded into a mounted tool's schema — the host supplies them,
|
|
12
13
|
* `resolve` turns them into handler context. Shared by `mountMcp` / `mountAgent`.
|
|
@@ -23,14 +24,16 @@ export interface ToolExtend<TContext extends Record<string, unknown> = Record<st
|
|
|
23
24
|
/** Limit the extension to specific methods — default: every method. */
|
|
24
25
|
filter?: (service: ServiceDef, method: MethodDef) => boolean;
|
|
25
26
|
}
|
|
26
|
-
/** One contract
|
|
27
|
+
/** One contract or framework-native operation resolved for mounting as a tool. */
|
|
27
28
|
export interface MountableTool {
|
|
28
|
-
/** The
|
|
29
|
-
method:
|
|
29
|
+
/** The executable operation identity and schemas behind the tool. */
|
|
30
|
+
method: ToolOperation;
|
|
30
31
|
/** Tool name — the `toolName` override, else derived from service + method. */
|
|
31
32
|
name: string;
|
|
32
|
-
/**
|
|
33
|
-
|
|
33
|
+
/** Executable source schema used only by the CLI argument adapter. */
|
|
34
|
+
argumentSchema: z.ZodType;
|
|
35
|
+
/** Immutable model-facing JSON Schema; never used to execute validation effects. */
|
|
36
|
+
presentationSchema: ToolPresentationSchema;
|
|
34
37
|
/** Whether `ToolExtend` applies to this method. */
|
|
35
38
|
shouldExtend: boolean;
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/tools/mount.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,KAAK,WAAW,EAGhB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/tools/mount.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/names.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare function hasUsableChars(value: string): boolean;
|
|
|
13
13
|
* that mount goes dark, not just the bad one. A tool name is an
|
|
14
14
|
* *identity* defect like a duplicate name (which also throws unconditionally), not
|
|
15
15
|
* a *representability* one like an unconvertible schema (which gets the
|
|
16
|
-
*
|
|
16
|
+
* schema-validation policy). → ADR 0035.
|
|
17
17
|
*/
|
|
18
18
|
export declare function assertToolName(name: string, serviceName: string, key: string): void;
|
|
19
19
|
export declare function toToolName(serviceName: string, methodName: string): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import type { EndpointToolAnnotations, EndpointUiMeta, HttpMethod, RuntimeContext } from '../contract';
|
|
5
|
+
import { executeToolMethod, type ToolCallHooks, type ToolLifecycle } from './execute';
|
|
6
|
+
import type { PreparedMcpSurface } from './mcp';
|
|
7
|
+
import type { MountableTool } from './mount';
|
|
8
|
+
export interface NativeMcpOperationIdentity {
|
|
9
|
+
serviceName: string;
|
|
10
|
+
action: string;
|
|
11
|
+
scope?: string;
|
|
12
|
+
/** Semantic operation verb for lifecycle and `RequestEvent.httpMethod`. */
|
|
13
|
+
method: HttpMethod;
|
|
14
|
+
/** Opaque project metadata exposed to lifecycle and tool hooks. */
|
|
15
|
+
meta?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export type NativeMcpHandlerContext<TInput extends z.ZodObject> = RuntimeContext & {
|
|
18
|
+
params: undefined;
|
|
19
|
+
input: z.output<TInput>;
|
|
20
|
+
};
|
|
21
|
+
export type NativeMcpResult<TOutput extends z.ZodObject | undefined = undefined> = TOutput extends z.ZodObject ? Omit<CallToolResult, 'structuredContent'> & {
|
|
22
|
+
structuredContent: z.output<TOutput>;
|
|
23
|
+
} : CallToolResult;
|
|
24
|
+
export interface NativeMcpToolDefinition<TInput extends z.ZodObject, TOutput extends z.ZodObject | undefined = undefined> {
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
identity: NativeMcpOperationIdentity;
|
|
28
|
+
input: TInput;
|
|
29
|
+
output?: TOutput;
|
|
30
|
+
annotations?: EndpointToolAnnotations;
|
|
31
|
+
ui?: EndpointUiMeta;
|
|
32
|
+
handler: (context: NativeMcpHandlerContext<TInput>) => NativeMcpResult<TOutput> | Promise<NativeMcpResult<TOutput>>;
|
|
33
|
+
}
|
|
34
|
+
export interface NativeMcpRegistrar {
|
|
35
|
+
/** Register through stitchkit validation, lifecycle, context and tool hooks. */
|
|
36
|
+
registerTool<TInput extends z.ZodObject, TOutput extends z.ZodObject | undefined = undefined>(definition: NativeMcpToolDefinition<TInput, TOutput>): void;
|
|
37
|
+
/**
|
|
38
|
+
* Explicit SDK escape hatch. Registrations made here do not run stitchkit
|
|
39
|
+
* validation, lifecycle, per-call context or tool hooks.
|
|
40
|
+
*/
|
|
41
|
+
readonly rawServer: McpServer;
|
|
42
|
+
}
|
|
43
|
+
interface NativeMcpRuntimeConfig {
|
|
44
|
+
context?: Record<string, unknown>;
|
|
45
|
+
hooks?: ToolCallHooks;
|
|
46
|
+
lifecycle?: ToolLifecycle;
|
|
47
|
+
coerceJsonArgs?: boolean;
|
|
48
|
+
onOutputStrip?: (toolName: string, paths: string[]) => void;
|
|
49
|
+
prepare: (tool: MountableTool) => PreparedMcpSurface;
|
|
50
|
+
formatError: (result: Extract<Awaited<ReturnType<typeof executeToolMethod>>, {
|
|
51
|
+
ok: false;
|
|
52
|
+
}>, toolName: string) => CallToolResult;
|
|
53
|
+
}
|
|
54
|
+
/** Build the protected registrar for one fresh MCP server/runtime. */
|
|
55
|
+
export declare function createNativeMcpRegistrar(server: McpServer, config: NativeMcpRuntimeConfig): NativeMcpRegistrar;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=native-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/native-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema formats implemented by the standard `ajv-formats` package and
|
|
3
|
+
* defined by JSON Schema itself. This deliberately excludes its OpenAPI-only,
|
|
4
|
+
* deprecated and AJV-specific aliases: the MCP surface must travel across
|
|
5
|
+
* clients, not only compile in one validator.
|
|
6
|
+
*/
|
|
7
|
+
export declare const PORTABLE_JSON_SCHEMA_FORMATS: ReadonlySet<string>;
|
|
8
|
+
export interface NonPortableFormat {
|
|
9
|
+
/** Path inside the JSON Schema; `(root)` when the root itself has a format. */
|
|
10
|
+
path: string;
|
|
11
|
+
format: string;
|
|
12
|
+
}
|
|
13
|
+
/** Find every format outside the portable baseline and an explicit allowlist. */
|
|
14
|
+
export declare function findNonPortableFormats(schema: unknown, allowFormats?: readonly string[]): NonPortableFormat[];
|
|
15
|
+
//# sourceMappingURL=portable-formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-formats.d.ts","sourceRoot":"","sources":["../../src/tools/portable-formats.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAgB3D,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAgBD,iFAAiF;AACjF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC,iBAAiB,EAAE,CAiErB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type ToolPresentationSchema } from './flatten';
|
|
3
|
+
export interface ToolPresentationConfig {
|
|
4
|
+
paramsSchema?: z.ZodType;
|
|
5
|
+
inputSchema?: z.ZodType;
|
|
6
|
+
extendSchema?: Record<string, z.ZodType>;
|
|
7
|
+
flattenUnionInput?: boolean;
|
|
8
|
+
unrepresentable?: 'throw' | 'any';
|
|
9
|
+
}
|
|
10
|
+
/** Build the one model-facing document shared by MCP, agents and manifests. */
|
|
11
|
+
export declare function buildToolPresentationSchema(config: ToolPresentationConfig): ToolPresentationSchema;
|
|
12
|
+
export declare function isObjectPresentationSchema(schema: ToolPresentationSchema): boolean;
|
|
13
|
+
/** Metadata passed to the Zod identity carrier; the SDK supplies its own dialect. */
|
|
14
|
+
export declare function presentationMetadata(schema: ToolPresentationSchema): ToolPresentationSchema;
|
|
15
|
+
//# sourceMappingURL=presentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../src/tools/presentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CACnC;AA+FD,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,sBAAsB,GAC7B,sBAAsB,CAgDxB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAElF;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,GAAG,sBAAsB,CAE3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/tools/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiB7D,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnE,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,EAChC,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,UAAU,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/tools/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiB7D,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnE,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,EAChC,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,UAAU,CAkFZ"}
|
package/dist/tools/schema.d.ts
CHANGED
|
@@ -14,14 +14,9 @@ export declare function keyPolicyOf(schema: z.ZodObject): KeyPolicy;
|
|
|
14
14
|
* Rebuild an object schema with a new shape, **carrying the source object's key
|
|
15
15
|
* policy over**.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* `parseResult.data`; the AI SDK's `doParseToolCall` → `parseResult.value`), so
|
|
21
|
-
* an object rebuilt as a bare `z.object()` silently **deletes** every key the
|
|
22
|
-
* contract schema would have rejected (`.strict()`) or kept (`.loose()` /
|
|
23
|
-
* `.catchall()`) — the caller gets a success and never learns its argument was
|
|
24
|
-
* wrong. → ADR 0034.
|
|
17
|
+
* This helper now serves only the CLI argument adapter. MCP and agent tools use
|
|
18
|
+
* a separate presentation JSON Schema and identity transport adapters, so this
|
|
19
|
+
* executable schema never runs before the original contract parser. → ADR 0050.
|
|
25
20
|
*
|
|
26
21
|
* A plain source (`undefined` policy) needs no special case: the rebuilt object
|
|
27
22
|
* strips exactly as the contract object would have.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/tools/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,EAAE,CAE5D;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAEpD,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,CAE1D;AAED
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/tools/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,EAAE,CAE5D;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAEpD,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,CAE1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,CAAC,CAAC,SAAS,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GACrC,CAAC,CAAC,SAAS,CAEb;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAC3B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAClC,MAAM,EAAE,SAAS,GAChB,CAAC,CAAC,SAAS,CAGb;AAcD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EACjC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAC/B,CAAC,CAAC,OAAO,CA8BX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-logger.d.ts","sourceRoot":"","sources":["../../src/tools/tool-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-logger.d.ts","sourceRoot":"","sources":["../../src/tools/tool-logger.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,aAAa,CAqB7E"}
|
|
@@ -61,9 +61,11 @@ export interface ViewFileOptions {
|
|
|
61
61
|
*/
|
|
62
62
|
export declare function resolveMedia(pathOrUrl: string, options?: ViewFileOptions): Promise<McpMediaContent[]>;
|
|
63
63
|
/**
|
|
64
|
-
* Register the native MCP `view_file` tool on
|
|
65
|
-
* `createMcpHandler
|
|
66
|
-
*
|
|
64
|
+
* Register the raw native MCP `view_file` tool on an SDK server. From
|
|
65
|
+
* `createMcpHandler`, pass `nativeTools: ({ rawServer }) =>
|
|
66
|
+
* mountViewFile(rawServer, options)`. Raw registration intentionally bypasses
|
|
67
|
+
* stitchkit lifecycle/hooks; use protected `registerTool` + `resolveMedia` when
|
|
68
|
+
* those guarantees are required. `options` controls the media security boundary.
|
|
67
69
|
*/
|
|
68
70
|
export declare function mountViewFile(server: McpServer, options?: ViewFileOptions): void;
|
|
69
71
|
//# sourceMappingURL=view-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-file.d.ts","sourceRoot":"","sources":["../../src/tools/view-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA4DD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,eAAe,EAAE,CAAC,CA4C5B;AAED
|
|
1
|
+
{"version":3,"file":"view-file.d.ts","sourceRoot":"","sources":["../../src/tools/view-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA4DD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,eAAe,EAAE,CAAC,CA4C5B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CA+BpF"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
export type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
export type { OperationIdentity } from './server/types';
|
|
2
3
|
export { type AgentContext, type AgentMountConfig, mountAgent } from './tools/agent';
|
|
3
4
|
export { type CliConfig, createCli } from './tools/cli';
|
|
4
5
|
export type { ExitCodeMap } from './tools/cli-format';
|
|
5
6
|
export type { CliWaitConfig } from './tools/cli-wait';
|
|
6
7
|
export { coerceJsonArgs } from './tools/coerce';
|
|
7
|
-
export type { ErrorHintFn, ToolCallContext, ToolCallHooks, ToolLifecycle, ToolResult, } from './tools/execute';
|
|
8
|
-
export {
|
|
8
|
+
export type { AfterToolCallOptions, BeforeToolCallOptions, ErrorHintFn, ToolCallContext, ToolCallHooks, ToolErrorOptions, ToolLifecycle, ToolOperation, ToolResult, } from './tools/execute';
|
|
9
|
+
export { flattenToolJsonSchema, type ToolPresentationSchema, } from './tools/flatten';
|
|
9
10
|
export { listToolNames, type ToolNameEntry } from './tools/list-names';
|
|
10
11
|
export { buildToolManifest, type ToolManifestEntry } from './tools/manifest';
|
|
11
|
-
export { buildMcpServer, type IncompatibleSchemaPolicy, type McpMountConfig, type McpServerBuildConfig, mountMcp, mountMcpResource, validateMcpSchemas, } from './tools/mcp';
|
|
12
|
+
export { buildMcpServer, type IncompatibleSchemaPolicy, type McpMountConfig, type McpSchemaValidationConfig, type McpServerBuildConfig, mountMcp, mountMcpResource, type ValidateMcpSchemasConfig, validateMcpSchemas, } from './tools/mcp';
|
|
12
13
|
export { EXT_APPS_BUNDLE_PLACEHOLDER, inlineMcpAppBundle, type McpAppCsp, type McpAppResourceMeta, type McpResourceDef, RESOURCE_MIME_TYPE, } from './tools/mcp-app';
|
|
13
|
-
export { createMcpHandler, type McpHandlerConfig } from './tools/mcp-handler';
|
|
14
|
+
export { createMcpHandler, type McpHandlerConfig, type McpSessionMode, } from './tools/mcp-handler';
|
|
14
15
|
export { createStdioMcpServer, type StdioMcpServerConfig } from './tools/mcp-stdio';
|
|
15
16
|
export { type CollectToolsConfig, collectTools, type MountableTool, type ToolExtend, } from './tools/mount';
|
|
16
17
|
export { type DownloadToolConfig, mountDownload } from './tools/mount-download';
|
|
17
18
|
export { mountUpload, type UploadToolConfig } from './tools/mount-upload';
|
|
18
19
|
export { mountWait, type WaitToolConfig } from './tools/mount-wait';
|
|
20
|
+
export type { NativeMcpHandlerContext, NativeMcpOperationIdentity, NativeMcpRegistrar, NativeMcpResult, NativeMcpToolDefinition, } from './tools/native-mcp';
|
|
19
21
|
export { oauthProtectedResourceRoute, PROTECTED_RESOURCE_PATH, type ProtectedResourceConfig, protectedResourceMetadataUrl, wwwAuthenticateHeader, } from './tools/oauth-metadata';
|
|
20
22
|
export { type ApplicationType, type AuthCodeData, type AuthRequest, type ClientMetadata, mountOAuthProvider, type OAuthProviderConfig, type RefreshData, type RegisteredClient, } from './tools/oauth-provider';
|
|
23
|
+
export { findNonPortableFormats, type NonPortableFormat, PORTABLE_JSON_SCHEMA_FORMATS, } from './tools/portable-formats';
|
|
21
24
|
export { type ImplementRemoteOptions, implementRemote } from './tools/remote';
|
|
22
25
|
export { createToolLogger, type ToolCallRecord, type ToolLoggerConfig, } from './tools/tool-logger';
|
|
23
26
|
export { createToolkit, type Toolkit } from './tools/toolkit';
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|