@cyanheads/mcp-ts-core 0.13.3 → 0.13.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/AGENTS.md +9 -7
- package/CLAUDE.md +9 -7
- package/README.md +1 -1
- package/changelog/0.13.x/0.13.4.md +65 -0
- package/changelog/0.13.x/0.13.5.md +41 -0
- package/changelog/template.md +7 -7
- package/dist/config/appRoot.d.ts.map +1 -1
- package/dist/config/appRoot.js +48 -16
- package/dist/config/appRoot.js.map +1 -1
- package/dist/core/app.d.ts +20 -0
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +1 -0
- package/dist/core/app.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/linter/rules/error-contract-rules.d.ts +65 -3
- package/dist/linter/rules/error-contract-rules.d.ts.map +1 -1
- package/dist/linter/rules/error-contract-rules.js +138 -3
- package/dist/linter/rules/error-contract-rules.js.map +1 -1
- package/dist/linter/rules/index.d.ts +1 -1
- package/dist/linter/rules/index.d.ts.map +1 -1
- package/dist/linter/rules/index.js +1 -1
- package/dist/linter/rules/index.js.map +1 -1
- package/dist/linter/rules/resource-rules.d.ts.map +1 -1
- package/dist/linter/rules/resource-rules.js +4 -2
- package/dist/linter/rules/resource-rules.js.map +1 -1
- package/dist/linter/rules/schema-rules.d.ts +19 -0
- package/dist/linter/rules/schema-rules.d.ts.map +1 -1
- package/dist/linter/rules/schema-rules.js +36 -0
- package/dist/linter/rules/schema-rules.js.map +1 -1
- package/dist/linter/rules/tool-rules.d.ts +17 -0
- package/dist/linter/rules/tool-rules.d.ts.map +1 -1
- package/dist/linter/rules/tool-rules.js +101 -3
- package/dist/linter/rules/tool-rules.js.map +1 -1
- package/dist/mcp-server/handlerContext.d.ts +11 -2
- package/dist/mcp-server/handlerContext.d.ts.map +1 -1
- package/dist/mcp-server/handlerContext.js +6 -4
- package/dist/mcp-server/handlerContext.js.map +1 -1
- package/dist/mcp-server/inputRequired.d.ts +35 -2
- package/dist/mcp-server/inputRequired.d.ts.map +1 -1
- package/dist/mcp-server/inputRequired.js +116 -2
- package/dist/mcp-server/inputRequired.js.map +1 -1
- package/dist/mcp-server/resources/resource-registration.d.ts +2 -1
- package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
- package/dist/mcp-server/resources/resource-registration.js +4 -4
- package/dist/mcp-server/resources/resource-registration.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +2 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +5 -2
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +11 -2
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/mcp-server/tools/tool-registration.d.ts +2 -1
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-registration.js +4 -4
- package/dist/mcp-server/tools/tool-registration.js.map +1 -1
- package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts +114 -0
- package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/inputPrevalidation.js +428 -0
- package/dist/mcp-server/tools/utils/inputPrevalidation.js.map +1 -0
- package/dist/mcp-server/tools/utils/strictenRecord.d.ts +42 -0
- package/dist/mcp-server/tools/utils/strictenRecord.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/strictenRecord.js +48 -0
- package/dist/mcp-server/tools/utils/strictenRecord.js.map +1 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts +27 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolDefinition.js +35 -6
- package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +33 -5
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +136 -20
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/services/canvas/core/CanvasInstance.d.ts +4 -1
- package/dist/services/canvas/core/CanvasInstance.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasInstance.js +5 -0
- package/dist/services/canvas/core/CanvasInstance.js.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.d.ts +52 -1
- package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.js +79 -3
- package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
- package/dist/services/canvas/core/sqlGate.d.ts +14 -1
- package/dist/services/canvas/core/sqlGate.d.ts.map +1 -1
- package/dist/services/canvas/core/sqlGate.js +69 -7
- package/dist/services/canvas/core/sqlGate.js.map +1 -1
- package/dist/services/canvas/index.d.ts +2 -2
- package/dist/services/canvas/index.d.ts.map +1 -1
- package/dist/services/canvas/index.js +2 -2
- package/dist/services/canvas/index.js.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +20 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +75 -25
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
- package/dist/services/canvas/types.d.ts +6 -1
- package/dist/services/canvas/types.d.ts.map +1 -1
- package/dist/types-global/errors.d.ts +30 -0
- package/dist/types-global/errors.d.ts.map +1 -1
- package/dist/types-global/errors.js +4 -3
- package/dist/types-global/errors.js.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js +13 -3
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
- package/dist/utils/internal/error-handler/mappings.d.ts +14 -1
- package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/mappings.js +19 -1
- package/dist/utils/internal/error-handler/mappings.js.map +1 -1
- package/dist/utils/internal/error-handler/types.d.ts +12 -1
- package/dist/utils/internal/error-handler/types.d.ts.map +1 -1
- package/dist/utils/internal/performance.d.ts.map +1 -1
- package/dist/utils/internal/performance.js +4 -1
- package/dist/utils/internal/performance.js.map +1 -1
- package/dist/utils/network/fetchWithTimeout.d.ts +24 -4
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
- package/dist/utils/network/fetchWithTimeout.js +10 -6
- package/dist/utils/network/fetchWithTimeout.js.map +1 -1
- package/dist/utils/network/httpError.d.ts +56 -6
- package/dist/utils/network/httpError.d.ts.map +1 -1
- package/dist/utils/network/httpError.js +56 -7
- package/dist/utils/network/httpError.js.map +1 -1
- package/dist/utils/network/pacer.d.ts +117 -0
- package/dist/utils/network/pacer.d.ts.map +1 -0
- package/dist/utils/network/pacer.js +304 -0
- package/dist/utils/network/pacer.js.map +1 -0
- package/dist/utils/network/retry.d.ts +119 -3
- package/dist/utils/network/retry.d.ts.map +1 -1
- package/dist/utils/network/retry.js +176 -35
- package/dist/utils/network/retry.js.map +1 -1
- package/dist/utils/security/rateLimiter.d.ts +19 -1
- package/dist/utils/security/rateLimiter.d.ts.map +1 -1
- package/dist/utils/security/rateLimiter.js +49 -1
- package/dist/utils/security/rateLimiter.js.map +1 -1
- package/dist/utils/telemetry/attributes.d.ts +27 -0
- package/dist/utils/telemetry/attributes.d.ts.map +1 -1
- package/dist/utils/telemetry/attributes.js +38 -0
- package/dist/utils/telemetry/attributes.js.map +1 -1
- package/framework-skills/add-tool/SKILL.md +49 -5
- package/framework-skills/api-canvas/SKILL.md +37 -16
- package/framework-skills/api-config/SKILL.md +4 -4
- package/framework-skills/api-context/SKILL.md +4 -2
- package/framework-skills/api-errors/SKILL.md +39 -7
- package/framework-skills/api-linter/SKILL.md +92 -5
- package/framework-skills/api-telemetry/SKILL.md +43 -4
- package/framework-skills/api-utils/SKILL.md +9 -5
- package/framework-skills/api-utils/references/security.md +2 -2
- package/framework-skills/design-mcp-server/SKILL.md +20 -3
- package/framework-skills/field-test/SKILL.md +4 -2
- package/framework-skills/git-wrapup/SKILL.md +87 -69
- package/framework-skills/release-and-publish/SKILL.md +5 -5
- package/framework-skills/release-pr-review/SKILL.md +5 -5
- package/framework-skills/report-issue-framework/SKILL.md +6 -35
- package/framework-skills/report-issue-local/SKILL.md +6 -36
- package/package.json +2 -2
- package/templates/.github/ISSUE_TEMPLATE/bug_report.yml +2 -2
- package/templates/.github/ISSUE_TEMPLATE/feature_request.yml +2 -2
- package/templates/AGENTS.md +1 -1
- package/templates/CLAUDE.md +1 -1
- package/templates/changelog/template.md +7 -7
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
import { assertHeaderDesignations } from './headerParam.js';
|
|
12
12
|
import { isDiscriminatedUnionSchema } from './schemaShape.js';
|
|
13
|
+
import { recordStrictenDiscard } from './strictenRecord.js';
|
|
13
14
|
export { disabledTool } from './disabled-tool.js';
|
|
14
15
|
export { headerParam } from './headerParam.js';
|
|
15
16
|
// ---------------------------------------------------------------------------
|
|
@@ -64,9 +65,12 @@ export { headerParam } from './headerParam.js';
|
|
|
64
65
|
*/
|
|
65
66
|
export function tool(name, options) {
|
|
66
67
|
assertErrorKeyUnreserved(name, options.output, options.enrichment);
|
|
67
|
-
const input = strictenInput(options.input);
|
|
68
|
+
const { discards, input } = strictenInput(options.input);
|
|
68
69
|
assertHeaderDesignations(name, input);
|
|
69
|
-
|
|
70
|
+
const definition = { name, ...options, input };
|
|
71
|
+
if (discards.length > 0)
|
|
72
|
+
recordStrictenDiscard(definition, discards);
|
|
73
|
+
return definition;
|
|
70
74
|
}
|
|
71
75
|
/**
|
|
72
76
|
* Rejects a definition whose success payload declares a field named `error`.
|
|
@@ -115,16 +119,41 @@ function assertErrorKeyUnreserved(name, output, enrichment) {
|
|
|
115
119
|
*
|
|
116
120
|
* Root-level only, matching `.strict()` itself: a nested `z.object()` inside
|
|
117
121
|
* the input still strips unless it is strict in its own right.
|
|
122
|
+
*
|
|
123
|
+
* Every replacement here loses the replaced instance's `z.globalRegistry` entry
|
|
124
|
+
* — a root `.describe()` (#358) or `.meta()` (#394) — because `.strict()` clones
|
|
125
|
+
* without a `_zod.parent` link. That is the held half; what this returns
|
|
126
|
+
* alongside the schema is the *record* of what went, so `lint:mcp` can report it
|
|
127
|
+
* (see `strictenRecord`). Declaring `.strict()` before `.describe()` / `.meta()`
|
|
128
|
+
* keeps the entry, since an already-strict schema is returned untouched.
|
|
118
129
|
*/
|
|
119
130
|
function strictenInput(input) {
|
|
131
|
+
const discards = [];
|
|
132
|
+
const noteDiscard = (schema, scope) => {
|
|
133
|
+
const keys = Object.keys(z.globalRegistry.get(schema) ?? {});
|
|
134
|
+
if (keys.length > 0)
|
|
135
|
+
discards.push({ keys, scope });
|
|
136
|
+
};
|
|
120
137
|
if (isDiscriminatedUnionSchema(input)) {
|
|
121
138
|
const options = input.options;
|
|
122
139
|
const strictened = options.map((option) => option.def.catchall === undefined ? option.strict() : option);
|
|
123
140
|
if (strictened.every((option, i) => option === options[i]))
|
|
124
|
-
return input;
|
|
125
|
-
|
|
141
|
+
return { discards, input };
|
|
142
|
+
// The union is rebuilt from the strictened options, so its own entry goes
|
|
143
|
+
// too — along with each variant's, for the variants that were replaced.
|
|
144
|
+
noteDiscard(input, 'input');
|
|
145
|
+
options.forEach((option, i) => {
|
|
146
|
+
if (strictened[i] !== option)
|
|
147
|
+
noteDiscard(option, `input|${i}`);
|
|
148
|
+
});
|
|
149
|
+
return {
|
|
150
|
+
discards,
|
|
151
|
+
input: z.discriminatedUnion(input.def.discriminator, strictened),
|
|
152
|
+
};
|
|
126
153
|
}
|
|
127
|
-
|
|
128
|
-
|
|
154
|
+
if (input.def.catchall !== undefined)
|
|
155
|
+
return { discards, input };
|
|
156
|
+
noteDiscard(input, 'input');
|
|
157
|
+
return { discards, input: input.strict() };
|
|
129
158
|
}
|
|
130
159
|
//# sourceMappingURL=toolDefinition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAgE,CAAC,EAAE,MAAM,KAAK,CAAC;AAItF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,16 @@ import type { CallToolResult, ContentBlock, InputRequiredResult, ServerContext }
|
|
|
7
7
|
import { ZodError, type ZodObject, type ZodRawShape, z } from 'zod';
|
|
8
8
|
import type { Context } from '../../../core/context.js';
|
|
9
9
|
import { type HandlerServices } from '../../handlerContext.js';
|
|
10
|
+
import { type InputRequiredGate } from '../../inputRequired.js';
|
|
10
11
|
import type { NotifierSources } from '../../notifications.js';
|
|
11
12
|
import { JsonRpcErrorCode } from '../../../types-global/errors.js';
|
|
13
|
+
import { type RequestContext } from '../../../utils/internal/requestContext.js';
|
|
14
|
+
import { type InputHandlingOptions } from './inputPrevalidation.js';
|
|
12
15
|
import type { AnyToolDefinition } from './toolDefinition.js';
|
|
13
16
|
/** The factory's own contract, shared with the resource factory. */
|
|
14
17
|
export type { HandlerServices } from '../../handlerContext.js';
|
|
15
18
|
export type { NotifierSources } from '../../notifications.js';
|
|
19
|
+
export type { InputHandlingOptions } from './inputPrevalidation.js';
|
|
16
20
|
/**
|
|
17
21
|
* Renders `content[]` for a validated tool result: `format()` (or the JSON
|
|
18
22
|
* default) over the domain payload, with any blocks collected via
|
|
@@ -30,9 +34,18 @@ export declare function renderToolContent(def: AnyToolDefinition, validatedOutpu
|
|
|
30
34
|
* - `content[]` — read by clients like Claude Desktop (markdown)
|
|
31
35
|
* - `structuredContent.error` — read by clients like Claude Code (JSON)
|
|
32
36
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* the
|
|
37
|
+
* The text carries the message, the `data.recovery.hint` when it adds
|
|
38
|
+
* something, and the branchable `reason` / `retryable` terms
|
|
39
|
+
* {@link renderBranchableTerms} renders; the numeric `code` and `data.issues`
|
|
40
|
+
* stay JSON-only.
|
|
41
|
+
*
|
|
42
|
+
* The `Recovery:` line is dropped when the message already contains the hint
|
|
43
|
+
* verbatim (#459) — `buildArgumentRecoveryHint` falls back to an issue's own
|
|
44
|
+
* message for a constraint or refinement, and repeating that sentence costs
|
|
45
|
+
* the reader without adding a next step. Containment, not equality: the
|
|
46
|
+
* argument-rejection preamble and a field-path prefix both leave the hint's
|
|
47
|
+
* whole text on screen. `structuredContent.error.data.recovery.hint` stays
|
|
48
|
+
* populated either way, so #445's guarantee holds on the JSON surface.
|
|
36
49
|
*
|
|
37
50
|
* Note: `_meta.error` is intentionally NOT emitted — the error code, message,
|
|
38
51
|
* and data live on `structuredContent.error` instead, mirroring the success
|
|
@@ -50,6 +63,13 @@ export declare function buildToolErrorResult(code: JsonRpcErrorCode, message: st
|
|
|
50
63
|
* {@link readArgumentAt}; see {@link renderIssueMessage} for what that decides.
|
|
51
64
|
*/
|
|
52
65
|
export declare function formatInputValidationMessage(toolName: string, error: ZodError, args: unknown): string;
|
|
66
|
+
/** What {@link parseToolArguments} needs beyond the definition and the arguments. */
|
|
67
|
+
export interface ParseToolArgumentsOptions {
|
|
68
|
+
/** Request context the pre-validation step's debug logs correlate to. */
|
|
69
|
+
context?: RequestContext;
|
|
70
|
+
/** Server-level pre-validation switches, from `createApp({ input })`. */
|
|
71
|
+
input?: InputHandlingOptions;
|
|
72
|
+
}
|
|
53
73
|
/**
|
|
54
74
|
* Validates raw tool arguments against the definition's `input` schema, or
|
|
55
75
|
* throws the rejection a client receives on the wire: `InvalidParams`
|
|
@@ -59,6 +79,14 @@ export declare function formatInputValidationMessage(toolName: string, error: Zo
|
|
|
59
79
|
* synthesizes (#445). {@link buildToolErrorResult} mirrors that hint into
|
|
60
80
|
* `content[]`, so it reaches format()-only clients with no extra work.
|
|
61
81
|
*
|
|
82
|
+
* An ordered pre-validation step wraps the parse. Before it,
|
|
83
|
+
* {@link prevalidateToolArguments} drops client-added keys (#453) and rewrites
|
|
84
|
+
* key aliases (#452); after a failure — and only then —
|
|
85
|
+
* {@link repairRepresentations} undoes a stringified array and the arguments
|
|
86
|
+
* are parsed once more (#234), the repair kept only if the author's own schema
|
|
87
|
+
* now accepts it. When nothing validates, the *original* rejection is thrown
|
|
88
|
+
* verbatim, built from the arguments that produced it.
|
|
89
|
+
*
|
|
62
90
|
* The single argument-rejection path. {@link createToolHandler} and the
|
|
63
91
|
* `runToolContract` test helper both route through it, so a test written to
|
|
64
92
|
* the helper pins the code, message, and `content[]` text a deployment
|
|
@@ -66,7 +94,7 @@ export declare function formatInputValidationMessage(toolName: string, error: Zo
|
|
|
66
94
|
* `ValidationError` — a handler's own validation, the output-schema parse —
|
|
67
95
|
* is a different failure and does not come through here.
|
|
68
96
|
*/
|
|
69
|
-
export declare function parseToolArguments<TDefinition extends AnyToolDefinition>(def: TDefinition, input: unknown): z.infer<TDefinition['input']>;
|
|
97
|
+
export declare function parseToolArguments<TDefinition extends AnyToolDefinition>(def: TDefinition, input: unknown, options?: ParseToolArgumentsOptions): z.infer<TDefinition['input']>;
|
|
70
98
|
/**
|
|
71
99
|
* Builds an error `CallToolResult` from a raw thrown value. Classifies via
|
|
72
100
|
* {@link ErrorHandler.classifyOnly} when the value isn't already an
|
|
@@ -145,5 +173,5 @@ export declare function buildToolSuccessResult(def: AnyToolDefinition, ctx: Cont
|
|
|
145
173
|
* - Formats response via `format` or JSON default
|
|
146
174
|
* - Catches errors and returns `isError: true`
|
|
147
175
|
*/
|
|
148
|
-
export declare function createToolHandler(def: AnyToolDefinition, services: HandlerServices, notifiers: NotifierSources): (input: Record<string, unknown>, ctx: ServerContext) => Promise<CallToolResult | InputRequiredResult>;
|
|
176
|
+
export declare function createToolHandler(def: AnyToolDefinition, services: HandlerServices, notifiers: NotifierSources, inputGate?: InputRequiredGate): (input: Record<string, unknown>, ctx: ServerContext) => Promise<CallToolResult | InputRequiredResult>;
|
|
149
177
|
//# sourceMappingURL=toolHandlerFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolHandlerFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AAElF,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAEL,KAAK,eAAe,EAGrB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"toolHandlerFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,12 @@ import { readContentStore, readEnrichmentStore } from '../../../core/context.js'
|
|
|
8
8
|
import { buildHandlerContext, handlerParentContext, resolveHandlerRequest, } from '../../handlerContext.js';
|
|
9
9
|
import { isInputRequiredSignal } from '../../inputRequired.js';
|
|
10
10
|
import { withRequiredScopes } from '../../transports/auth/lib/authUtils.js';
|
|
11
|
-
import { internalError, JsonRpcErrorCode, McpError } from '../../../types-global/errors.js';
|
|
11
|
+
import { internalError, JsonRpcErrorCode, McpError, } from '../../../types-global/errors.js';
|
|
12
12
|
import { asRequestCancelled, ErrorHandler } from '../../../utils/internal/error-handler/errorHandler.js';
|
|
13
13
|
import { measureToolExecution } from '../../../utils/internal/performance.js';
|
|
14
14
|
import { requestContextService } from '../../../utils/internal/requestContext.js';
|
|
15
15
|
import { ATTR_MCP_TOOL_ENRICHED } from '../../../utils/telemetry/attributes.js';
|
|
16
|
+
import { countCoerced, prevalidateToolArguments, repairRepresentations, } from './inputPrevalidation.js';
|
|
16
17
|
import { isZodObjectSchema } from './schemaShape.js';
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
18
19
|
// Default formatter
|
|
@@ -54,15 +55,47 @@ function extractRecoveryHint(data) {
|
|
|
54
55
|
const hint = data?.recovery?.hint;
|
|
55
56
|
return typeof hint === 'string' && hint.length > 0 ? hint : undefined;
|
|
56
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* The compact trailing line carrying the two `data` fields a caller branches
|
|
60
|
+
* on — `reason`, the stable identifier, and `retryable`, whether a retry can
|
|
61
|
+
* succeed (#458). Both reach `structuredContent.error.data`; without this line
|
|
62
|
+
* neither reaches the text surface, so a model that just failed cannot tell a
|
|
63
|
+
* deterministic rejection from a transient one.
|
|
64
|
+
*
|
|
65
|
+
* Returns `undefined` when `data` carries neither — a classified plain
|
|
66
|
+
* `Error`, an `McpError` with no `data` — leaving the text as it was. The
|
|
67
|
+
* numeric `code` and `data.issues` stay JSON-only on purpose: the code is the
|
|
68
|
+
* one envelope field a model cannot act on, and the message already renders
|
|
69
|
+
* each issue as a sentence.
|
|
70
|
+
*/
|
|
71
|
+
function renderBranchableTerms(data) {
|
|
72
|
+
const terms = [];
|
|
73
|
+
if (typeof data?.reason === 'string' && data.reason.length > 0) {
|
|
74
|
+
terms.push(`reason ${data.reason}`);
|
|
75
|
+
}
|
|
76
|
+
if (typeof data?.retryable === 'boolean') {
|
|
77
|
+
terms.push(data.retryable ? 'retryable' : 'not retryable');
|
|
78
|
+
}
|
|
79
|
+
return terms.length > 0 ? `(${terms.join(' · ')})` : undefined;
|
|
80
|
+
}
|
|
57
81
|
/**
|
|
58
82
|
* Shapes a `CallToolResult` for a tool error response with parity across both
|
|
59
83
|
* surfaces clients forward to the agent:
|
|
60
84
|
* - `content[]` — read by clients like Claude Desktop (markdown)
|
|
61
85
|
* - `structuredContent.error` — read by clients like Claude Code (JSON)
|
|
62
86
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* the
|
|
87
|
+
* The text carries the message, the `data.recovery.hint` when it adds
|
|
88
|
+
* something, and the branchable `reason` / `retryable` terms
|
|
89
|
+
* {@link renderBranchableTerms} renders; the numeric `code` and `data.issues`
|
|
90
|
+
* stay JSON-only.
|
|
91
|
+
*
|
|
92
|
+
* The `Recovery:` line is dropped when the message already contains the hint
|
|
93
|
+
* verbatim (#459) — `buildArgumentRecoveryHint` falls back to an issue's own
|
|
94
|
+
* message for a constraint or refinement, and repeating that sentence costs
|
|
95
|
+
* the reader without adding a next step. Containment, not equality: the
|
|
96
|
+
* argument-rejection preamble and a field-path prefix both leave the hint's
|
|
97
|
+
* whole text on screen. `structuredContent.error.data.recovery.hint` stays
|
|
98
|
+
* populated either way, so #445's guarantee holds on the JSON surface.
|
|
66
99
|
*
|
|
67
100
|
* Note: `_meta.error` is intentionally NOT emitted — the error code, message,
|
|
68
101
|
* and data live on `structuredContent.error` instead, mirroring the success
|
|
@@ -70,7 +103,13 @@ function extractRecoveryHint(data) {
|
|
|
70
103
|
*/
|
|
71
104
|
export function buildToolErrorResult(code, message, data) {
|
|
72
105
|
const hint = extractRecoveryHint(data);
|
|
73
|
-
const
|
|
106
|
+
const blocks = [`Error: ${message}`];
|
|
107
|
+
if (hint !== undefined && !message.trim().includes(hint.trim()))
|
|
108
|
+
blocks.push(`Recovery: ${hint}`);
|
|
109
|
+
const terms = renderBranchableTerms(data);
|
|
110
|
+
if (terms !== undefined)
|
|
111
|
+
blocks.push(terms);
|
|
112
|
+
const text = blocks.join('\n\n');
|
|
74
113
|
return {
|
|
75
114
|
isError: true,
|
|
76
115
|
content: [{ type: 'text', text }],
|
|
@@ -145,6 +184,11 @@ function selectUnionBranches(branches) {
|
|
|
145
184
|
* selected branches instead, joined by ` or `. (When exactly one branch
|
|
146
185
|
* matched the base type and failed only a check, Zod returns that branch's
|
|
147
186
|
* issues directly and this never fires.)
|
|
187
|
+
* - **#447** — an object branch's issues carry their own branch-relative path,
|
|
188
|
+
* so {@link renderBranchIssue} prefixes each one with it and no alternative
|
|
189
|
+
* goes unnamed. Issues *within* a branch join on `; ` rather than the `, `
|
|
190
|
+
* that {@link formatInputValidationMessage} joins top-level issues with, so a
|
|
191
|
+
* reader can tell the two nestings apart.
|
|
148
192
|
* - **#378** — an `invalid_value` issue (`z.enum`, `z.literal`) names an
|
|
149
193
|
* expected set without naming what arrived, so an omitted field and a wrong
|
|
150
194
|
* choice render identically. When the key is `absent`, say so and keep the
|
|
@@ -159,7 +203,7 @@ function renderIssueMessage(issue, absent) {
|
|
|
159
203
|
const branches = selectUnionBranches(issue.errors);
|
|
160
204
|
if (branches.length === 0)
|
|
161
205
|
return issue.message;
|
|
162
|
-
const rendered = branches.map((branch) => branch.map((branchIssue) =>
|
|
206
|
+
const rendered = branches.map((branch) => branch.map((branchIssue) => renderBranchIssue(branchIssue, absent)).join('; '));
|
|
163
207
|
return [...new Set(rendered)].join(' or ');
|
|
164
208
|
}
|
|
165
209
|
if (absent && issue.code === 'invalid_value') {
|
|
@@ -167,6 +211,21 @@ function renderIssueMessage(issue, absent) {
|
|
|
167
211
|
}
|
|
168
212
|
return issue.message;
|
|
169
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* One issue of a union branch, prefixed with the branch-relative path it names.
|
|
216
|
+
*
|
|
217
|
+
* A scalar branch carries `path: []` and renders exactly as before; an object
|
|
218
|
+
* branch's issues each name a field of that branch, and without the prefix two
|
|
219
|
+
* alternatives that differ only in which field they require read as one
|
|
220
|
+
* unattributed sentence — or collapse outright, since the caller dedupes
|
|
221
|
+
* rendered branches. The outer path stays where
|
|
222
|
+
* {@link formatInputValidationMessage} puts it; only the branch-relative
|
|
223
|
+
* segments are added here.
|
|
224
|
+
*/
|
|
225
|
+
function renderBranchIssue(issue, absent) {
|
|
226
|
+
const message = renderIssueMessage(issue, absent);
|
|
227
|
+
return issue.path.length > 0 ? `${issue.path.map(String).join('.')}: ${message}` : message;
|
|
228
|
+
}
|
|
170
229
|
/**
|
|
171
230
|
* Renders an argument-validation failure the way the MCP SDK renders its own,
|
|
172
231
|
* so the readable diagnostic — the offending key or field, and why it failed —
|
|
@@ -271,6 +330,14 @@ function buildArgumentRecoveryHint(def, error, args) {
|
|
|
271
330
|
* synthesizes (#445). {@link buildToolErrorResult} mirrors that hint into
|
|
272
331
|
* `content[]`, so it reaches format()-only clients with no extra work.
|
|
273
332
|
*
|
|
333
|
+
* An ordered pre-validation step wraps the parse. Before it,
|
|
334
|
+
* {@link prevalidateToolArguments} drops client-added keys (#453) and rewrites
|
|
335
|
+
* key aliases (#452); after a failure — and only then —
|
|
336
|
+
* {@link repairRepresentations} undoes a stringified array and the arguments
|
|
337
|
+
* are parsed once more (#234), the repair kept only if the author's own schema
|
|
338
|
+
* now accepts it. When nothing validates, the *original* rejection is thrown
|
|
339
|
+
* verbatim, built from the arguments that produced it.
|
|
340
|
+
*
|
|
274
341
|
* The single argument-rejection path. {@link createToolHandler} and the
|
|
275
342
|
* `runToolContract` test helper both route through it, so a test written to
|
|
276
343
|
* the helper pins the code, message, and `content[]` text a deployment
|
|
@@ -278,16 +345,26 @@ function buildArgumentRecoveryHint(def, error, args) {
|
|
|
278
345
|
* `ValidationError` — a handler's own validation, the output-schema parse —
|
|
279
346
|
* is a different failure and does not come through here.
|
|
280
347
|
*/
|
|
281
|
-
export function parseToolArguments(def, input) {
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
348
|
+
export function parseToolArguments(def, input, options = {}) {
|
|
349
|
+
const prepared = prevalidateToolArguments(def, input, options.input, options.context);
|
|
350
|
+
const parsed = def.input.safeParse(prepared);
|
|
351
|
+
if (parsed.success)
|
|
352
|
+
return parsed.data;
|
|
353
|
+
if (options.input?.coerce !== false) {
|
|
354
|
+
const repaired = repairRepresentations(prepared, parsed.error.issues);
|
|
355
|
+
if (repaired !== prepared) {
|
|
356
|
+
const retried = def.input.safeParse(repaired);
|
|
357
|
+
if (retried.success) {
|
|
358
|
+
countCoerced(def.name, options.context);
|
|
359
|
+
return retried.data;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
289
362
|
}
|
|
290
|
-
|
|
363
|
+
throw new McpError(JsonRpcErrorCode.InvalidParams, formatInputValidationMessage(def.name, parsed.error, prepared), {
|
|
364
|
+
issues: parsed.error.issues,
|
|
365
|
+
reason: INVALID_ARGUMENTS_REASON,
|
|
366
|
+
recovery: { hint: buildArgumentRecoveryHint(def, parsed.error, prepared) },
|
|
367
|
+
});
|
|
291
368
|
}
|
|
292
369
|
/**
|
|
293
370
|
* Builds an error `CallToolResult` from a raw thrown value. Classifies via
|
|
@@ -325,6 +402,17 @@ export function effectiveOutputSchema(def) {
|
|
|
325
402
|
return def.output;
|
|
326
403
|
return def.output.extend(def.enrichment);
|
|
327
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* A contract entry's `when` text, terminated so the entry that follows it —
|
|
407
|
+
* and the description's own trailing sentence — starts a new one (#389).
|
|
408
|
+
* Nothing validates a punctuation convention on `when`, and an entry authored
|
|
409
|
+
* as a fragment otherwise runs into whatever comes next. Punctuating at the
|
|
410
|
+
* join leaves the authored text alone, terminator or not.
|
|
411
|
+
*/
|
|
412
|
+
function terminateWhen(when) {
|
|
413
|
+
const text = when.trim();
|
|
414
|
+
return /[.?!]$/.test(text) ? text : `${text}.`;
|
|
415
|
+
}
|
|
328
416
|
/**
|
|
329
417
|
* The error envelope a tool can put on `structuredContent` when it fails,
|
|
330
418
|
* mirroring {@link buildToolErrorResult}'s runtime shape.
|
|
@@ -350,7 +438,7 @@ function toolErrorEnvelopeSchema(def) {
|
|
|
350
438
|
? z
|
|
351
439
|
.string()
|
|
352
440
|
.describe(`Machine-readable failure mode. Declared by this tool: ${contract
|
|
353
|
-
.map((entry) => `\`${entry.reason}\`: ${entry.when}`)
|
|
441
|
+
.map((entry) => `\`${entry.reason}\`: ${terminateWhen(entry.when)}`)
|
|
354
442
|
.join(' ')} Other values are possible when a failure originates below the handler.`)
|
|
355
443
|
.meta({ examples: reasons })
|
|
356
444
|
: z.string().describe('Machine-readable failure mode.');
|
|
@@ -558,6 +646,27 @@ export function buildToolSuccessResult(def, ctx, domainValidated, domainContent)
|
|
|
558
646
|
// ---------------------------------------------------------------------------
|
|
559
647
|
// Factory
|
|
560
648
|
// ---------------------------------------------------------------------------
|
|
649
|
+
/**
|
|
650
|
+
* The log level the definition declared for the failure that just unwound, or
|
|
651
|
+
* `undefined` to keep `error` (#380).
|
|
652
|
+
*
|
|
653
|
+
* The outer catch is the one place holding both the definition and the thrown
|
|
654
|
+
* error, so the reason-to-entry lookup happens here rather than inside
|
|
655
|
+
* `ErrorHandler`, which sees neither. Resolution is deliberately narrow: an
|
|
656
|
+
* `McpError` whose `data.reason` names a contract entry that declared a
|
|
657
|
+
* severity. A plain `Error`, a reason thrown below the handler that the
|
|
658
|
+
* contract never declared, and an entry with no severity all fall through to
|
|
659
|
+
* today's behavior. A cancellation is settled earlier — `asRequestCancelled`
|
|
660
|
+
* replaces the thrown value, so no declared reason reaches this point.
|
|
661
|
+
*/
|
|
662
|
+
function declaredSeverity(def, error) {
|
|
663
|
+
if (!(error instanceof McpError))
|
|
664
|
+
return undefined;
|
|
665
|
+
const reason = error.data?.reason;
|
|
666
|
+
if (typeof reason !== 'string')
|
|
667
|
+
return undefined;
|
|
668
|
+
return def.errors?.find((entry) => entry.reason === reason)?.severity;
|
|
669
|
+
}
|
|
561
670
|
/**
|
|
562
671
|
* Creates an MCP tool handler from a tool definition.
|
|
563
672
|
* The returned function is compatible with the MCP SDK's ToolCallback type.
|
|
@@ -571,7 +680,7 @@ export function buildToolSuccessResult(def, ctx, domainValidated, domainContent)
|
|
|
571
680
|
* - Formats response via `format` or JSON default
|
|
572
681
|
* - Catches errors and returns `isError: true`
|
|
573
682
|
*/
|
|
574
|
-
export function createToolHandler(def, services, notifiers) {
|
|
683
|
+
export function createToolHandler(def, services, notifiers, inputGate) {
|
|
575
684
|
return async (input, serverContext) => {
|
|
576
685
|
const request = resolveHandlerRequest(serverContext, services, notifiers);
|
|
577
686
|
const appContext = requestContextService.createRequestContext({
|
|
@@ -588,7 +697,10 @@ export function createToolHandler(def, services, notifiers) {
|
|
|
588
697
|
// to here (see `deferInputValidation`) so a rejection carries the
|
|
589
698
|
// structured error envelope; the message and `InvalidParams`
|
|
590
699
|
// classification match what the SDK produced before (#377).
|
|
591
|
-
const validatedInput = parseToolArguments(def, input
|
|
700
|
+
const validatedInput = parseToolArguments(def, input, {
|
|
701
|
+
context: appContext,
|
|
702
|
+
...(services.input && { input: services.input }),
|
|
703
|
+
});
|
|
592
704
|
// Read by the success-attributes thunk below, which the measurement
|
|
593
705
|
// evaluates after the callback settles.
|
|
594
706
|
let ctx;
|
|
@@ -598,7 +710,7 @@ export function createToolHandler(def, services, notifiers) {
|
|
|
598
710
|
// so a failure in any of them is a failed call — closing the span when
|
|
599
711
|
// the handler returned recorded those as successes (#346).
|
|
600
712
|
return await measureToolExecution(async (spanContext, recordOutput) => {
|
|
601
|
-
const handlerCtx = buildHandlerContext(request, services, spanContext, def.errors);
|
|
713
|
+
const handlerCtx = buildHandlerContext(request, services, spanContext, def.errors, inputGate);
|
|
602
714
|
ctx = handlerCtx;
|
|
603
715
|
try {
|
|
604
716
|
// Handler may return sync or async.
|
|
@@ -629,12 +741,16 @@ export function createToolHandler(def, services, notifiers) {
|
|
|
629
741
|
// `ctx.requestInput(...)` is protocol control flow, not a failure: return
|
|
630
742
|
// the `input_required` result untouched, with no span, log, or
|
|
631
743
|
// classification. The client (2026 era) or the SDK's legacy shim (2025
|
|
632
|
-
// era) fulfils it and re-invokes this handler.
|
|
744
|
+
// era) fulfils it and re-invokes this handler. A request this connection
|
|
745
|
+
// cannot serve never reaches here as a signal — `ctx.requestInput`
|
|
746
|
+
// throws the refusal instead, and it arrives below as an `McpError`.
|
|
633
747
|
if (isInputRequiredSignal(error))
|
|
634
748
|
return error.result;
|
|
749
|
+
const severity = declaredSeverity(def, error);
|
|
635
750
|
ErrorHandler.handleError(error, {
|
|
636
751
|
operation: `tool:${def.name}`,
|
|
637
752
|
context: appContext,
|
|
753
|
+
...(severity !== undefined && { severity }),
|
|
638
754
|
});
|
|
639
755
|
return classifyAndBuildToolErrorResult(error);
|
|
640
756
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolHandlerFactory.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,QAAQ,EAAkD,CAAC,EAAE,MAAM,KAAK,CAAC;AAGlF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAWrD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,CAAC,MAAe,EAAkB,EAAE,CAAC;IACpE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;CACxD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAsB,EACtB,eAAwC,EACxC,GAAY;IAEZ,IAAI,OAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,wBAAwB,CAAC,CAAC,eAAe,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACrB,MAAM,aAAa,CACjB,6BAA6B,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EACvG,SAAS,EACT,EAAE,KAAK,EAAE,WAAW,EAAE,CACvB,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAChD,OAAO,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAClF,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,IAAyC;IACpE,MAAM,IAAI,GAAI,IAAI,EAAE,QAA2C,EAAE,IAAI,CAAC;IACtE,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAsB,EACtB,OAAe,EACf,IAAyC;IAEzC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,OAAO,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,OAAO,EAAE,CAAC;IACnF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,iBAAiB,EAAE;YACjB,KAAK,EAAE;gBACL,IAAI;gBACJ,OAAO;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;aACpC;SACF;KACF,CAAC;AACJ,CAAC;AAKD,4EAA4E;AAC5E,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAErD,uFAAuF;AACvF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEhC;;;;;;;;;;;;;;GAcG;AACH,SAAS,cAAc,CAAC,IAAa,EAAE,IAAgC;IACrE,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;QACnD,MAAM,GAAI,MAAuC,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,2FAA2F;AAC3F,SAAS,kBAAkB,CAAC,MAA0B;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC,mBAAmB,QAAQ,EAAE,CAAC;AACtF,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAC1B,QAAiD;IAEjD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,kBAAkB,CAAC,KAAoB,EAAE,MAAe;IAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChF,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7C,OAAO,2BAA2B,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAgB,EAChB,KAAe,EACf,IAAa;IAEb,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;SACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;QACvF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7F,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,sDAAsD,QAAQ,KAAK,MAAM,EAAE,CAAC;AACrF,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;AACjE,CAAC;AAED,qEAAqE;AACrE,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,gDAAgD;AAChD,SAAS,SAAS,CAAC,KAAwB;IACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,KAAiC;IAC1D,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,yBAAyB,CAAC,GAAsB,EAAE,KAAe,EAAE,IAAa;IACvF,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;YACvE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9C,SAAS,CAAC,IAAI,CACZ,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACjF,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzC,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC1C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;YACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7C,SAAS,CAAC,IAAI,CACZ,OAAO,KAAK,MAAM;gBAChB,CAAC,CAAC,QAAQ,OAAO,OAAO,QAAQ,GAAG;gBACnC,CAAC,CAAC,QAAQ,OAAO,OAAO,QAAQ,SAAS,eAAe,CAAC,OAAO,CAAC,GAAG,CACvE,CAAC;YACF,SAAS;QACX,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,WAAW,IAAI,CAAC;QAAE,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;IAChF,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAgB,EAChB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,aAAa,EAC9B,4BAA4B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3D;YACE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,MAAM,EAAE,wBAAwB;YAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;SACxE,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAqC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAsB;IAC1D,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IACvC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAA2B,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,uBAAuB,CAAC,GAAsB;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,CAAC;aACE,MAAM,EAAE;aACR,QAAQ,CACP,yDAAyD,QAAQ;aAC9D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;aACpD,IAAI,CAAC,GAAG,CAAC,yEAAyE,CACtF;aACA,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAE5D,OAAO,CAAC,CAAC,WAAW,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC9E,IAAI,EAAE,CAAC;aACJ,WAAW,CAAC;YACX,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;YAC/B,QAAQ,EAAE,CAAC;iBACR,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;iBACjC,QAAQ,EAAE;iBACV,QAAQ,CAAC,sCAAsC,CAAC;YACnD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SAC5E,CAAC;aACD,QAAQ,EAAE;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAE,KAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;SACvE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvB,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAG,KAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC3E,CAAC;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtC,MAAM,IAAI,GACR,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC;aAChC,QAAQ,EAAE;aACV,QAAQ,CAAC,kDAAkD,CAAC;KAChE,CAA2B,CAAC;IAE7B,MAAM,aAAa,GAAG;QACpB,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAC5B,GAAG,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;KACzE,CAAC;IAEF,6EAA6E;IAC7E,sEAAsE;IACtE,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,KAAK,EAAE,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAChD,CAA2B,CAAC;AAC/B,CAAC;AAED,0EAA0E;AAC1E,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,OAAO,2CAA2C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,MAAgB;IACzC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,IAAI,IAAI,KAAK,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,uBAAuB,CAC9B,KAAsB,EACtB,OAA+C,EAC/C,MAA+B;IAE/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,8EAA8E;QAC9E,mEAAmE;QACnE,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;YAAE,SAAS;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,QAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,QAAQ;gBACX,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAC;gBACjE,MAAM,CAAC,IAAI,CACT,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;gBACF,MAAM;YACR,CAAC;YACD;gBACE,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,GAAY,EACZ,eAAwC,EACxC,aAA6B;IAE7B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACzD,GAAG,eAAe;QAClB,GAAG,MAAM;KACV,CAA4B,CAAC;IAC9B,MAAM,OAAO,GACX,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QACrC,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;QAC1E,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,iBAAiB;QACjB,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa;KAC7E,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAsB,EACtB,QAAyB,EACzB,SAA0B;IAK1B,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAiD,EAAE;QACnF,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YAC5D,aAAa,EAAE,oBAAoB,CAAC,OAAO,CAAC;YAC5C,SAAS,EAAE,mBAAmB;YAC9B,iBAAiB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,2BAA2B;YAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;YAED,wEAAwE;YACxE,kEAAkE;YAClE,6DAA6D;YAC7D,4DAA4D;YAC5D,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEtD,oEAAoE;YACpE,wCAAwC;YACxC,IAAI,GAAwB,CAAC;YAE7B,kEAAkE;YAClE,oEAAoE;YACpE,uEAAuE;YACvE,uEAAuE;YACvE,2DAA2D;YAC3D,OAAO,MAAM,oBAAoB,CAC/B,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE;gBAClC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnF,GAAG,GAAG,UAAU,CAAC;gBAEjB,IAAI,CAAC;oBACH,oCAAoC;oBACpC,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;oBAEpE,uDAAuD;oBACvD,oEAAoE;oBACpE,wDAAwD;oBACxD,YAAY,CAAC,aAAa,CAAC,CAAC;oBAE5B,qEAAqE;oBACrE,4EAA4E;oBAC5E,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAA4B,CAAC;oBACnF,OAAO,sBAAsB,CAC3B,GAAG,EACH,UAAU,EACV,eAAe,EACf,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CACpD,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,0DAA0D;oBAC1D,8DAA8D;oBAC9D,iDAAiD;oBACjD,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC,EACD,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,EACrC,cAAc,EACd,GAAG,EAAE;gBACH,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzD,OAAO,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;oBAClD,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;YACT,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,0EAA0E;YAC1E,+DAA+D;YAC/D,uEAAuE;YACvE,+CAA+C;YAC/C,IAAI,qBAAqB,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;YAEtD,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;gBAC9B,SAAS,EAAE,QAAQ,GAAG,CAAC,IAAI,EAAE;gBAC7B,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;YACH,OAAO,+BAA+B,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"toolHandlerFactory.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { RequestContext } from '../../../utils/internal/requestContext.js';
|
|
8
8
|
import type { DescribeOptions, ExportOptions, ExportResult, ExportTarget, ImportFromOptions, QueryOptions, QueryResult, RegisterRows, RegisterTableOptions, RegisterTableResult, RegisterViewOptions, RegisterViewResult, TableInfo } from '../types.js';
|
|
9
|
-
import type
|
|
9
|
+
import { type CanvasRegistry } from './CanvasRegistry.js';
|
|
10
10
|
import type { IDataCanvasProvider } from './IDataCanvasProvider.js';
|
|
11
11
|
/** Handle bound to a single canvas. Returned from {@link DataCanvas.acquire}. */
|
|
12
12
|
export declare class CanvasInstance {
|
|
@@ -38,6 +38,9 @@ export declare class CanvasInstance {
|
|
|
38
38
|
* Copy a table from another canvas the caller controls. The source canvas
|
|
39
39
|
* must belong to the caller's tenant — the registry validates that before
|
|
40
40
|
* the provider sees either id. Defaults `asName` to the source name.
|
|
41
|
+
*
|
|
42
|
+
* The source id is the one caller-supplied value here, so a malformed one is
|
|
43
|
+
* rejected as input rather than reported as an expired canvas (#327).
|
|
41
44
|
*/
|
|
42
45
|
importFrom(sourceCanvasId: string, sourceTableName: string, options?: ImportFromOptions): Promise<RegisterTableResult>;
|
|
43
46
|
/** Run a SQL query against the canvas. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasInstance.d.ts","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasInstance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"CanvasInstance.d.ts","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasInstance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,iFAAiF;AACjF,qBAAa,cAAc;IAOvB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAGzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,wFAAwF;IACxF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAElB;IACE,4EAA4E;IACnE,QAAQ,EAAE,MAAM;IACzB,wFAAwF;IAC/E,QAAQ,EAAE,MAAM,EACzB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACA,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,cAAc,EAIzC;IAED,sCAAsC;IAChC,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAiB9B;IAED;;;;OAIG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAG7B;IAED;;;;;;;OAOG;IACG,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAiB9B;IAED,0CAA0C;IACpC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBrE;IAED,wDAAwD;IAClD,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAGvB;IAED,kGAAkG;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAI9D;IAED,yEAAyE;IACnE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzC;IAED,kEAAkE;IAC5D,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAK7B;CACF"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* TTL-touch + tenant validation gate before delegating to the provider.
|
|
5
5
|
* @module src/services/canvas/core/CanvasInstance
|
|
6
6
|
*/
|
|
7
|
+
import { assertCanvasIdShape } from './CanvasRegistry.js';
|
|
7
8
|
/** Handle bound to a single canvas. Returned from {@link DataCanvas.acquire}. */
|
|
8
9
|
export class CanvasInstance {
|
|
9
10
|
canvasId;
|
|
@@ -55,8 +56,12 @@ export class CanvasInstance {
|
|
|
55
56
|
* Copy a table from another canvas the caller controls. The source canvas
|
|
56
57
|
* must belong to the caller's tenant — the registry validates that before
|
|
57
58
|
* the provider sees either id. Defaults `asName` to the source name.
|
|
59
|
+
*
|
|
60
|
+
* The source id is the one caller-supplied value here, so a malformed one is
|
|
61
|
+
* rejected as input rather than reported as an expired canvas (#327).
|
|
58
62
|
*/
|
|
59
63
|
async importFrom(sourceCanvasId, sourceTableName, options) {
|
|
64
|
+
assertCanvasIdShape(sourceCanvasId);
|
|
60
65
|
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
61
66
|
this.registry.touchWithTable(sourceCanvasId, this.tenantId, sourceTableName);
|
|
62
67
|
const asName = options?.asName ?? sourceTableName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasInstance.js","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasInstance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"CanvasInstance.js","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasInstance.ts"],"names":[],"mappings":"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"}
|