agentfootprint 9.97.0 → 9.98.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/CHANGELOG.md +56 -0
- package/dist/artifacts/datasetResult.js +119 -0
- package/dist/artifacts/datasetResult.js.map +1 -0
- package/dist/artifacts/index.js +4 -1
- package/dist/artifacts/index.js.map +1 -1
- package/dist/esm/artifacts/datasetResult.d.ts +44 -0
- package/dist/esm/artifacts/datasetResult.js +114 -0
- package/dist/esm/artifacts/datasetResult.js.map +1 -0
- package/dist/esm/artifacts/index.d.ts +1 -0
- package/dist/esm/artifacts/index.js +1 -0
- package/dist/esm/artifacts/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrity/assertion/conflicts.d.ts +5 -32
- package/dist/esm/integrity/assertion/conflicts.js +6 -69
- package/dist/esm/integrity/assertion/conflicts.js.map +1 -1
- package/dist/esm/integrity/assertion/types.d.ts +8 -69
- package/dist/esm/integrity/assertion/types.js +0 -0
- package/dist/esm/integrity/assertion/types.js.map +1 -1
- package/dist/esm/lib/injection-engine/factories/defineMenuHint.js +3 -5
- package/dist/esm/lib/injection-engine/factories/defineMenuHint.js.map +1 -1
- package/dist/esm/lib/injection-engine/skillToolDescriptors.d.ts +4 -2
- package/dist/esm/lib/injection-engine/skillToolDescriptors.js +17 -8
- package/dist/esm/lib/injection-engine/skillToolDescriptors.js.map +1 -1
- package/dist/esm/lib/mcp/mcpClient.js +5 -97
- package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/mockMcpClient.d.ts +8 -4
- package/dist/esm/lib/mcp/mockMcpClient.js +6 -5
- package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/toolResult.d.ts +8 -0
- package/dist/esm/lib/mcp/toolResult.js +244 -0
- package/dist/esm/lib/mcp/toolResult.js.map +1 -0
- package/dist/esm/lib/mcp/types.d.ts +15 -0
- package/dist/esm/lib/semantics/check.d.ts +7 -1
- package/dist/esm/lib/semantics/check.js +16 -0
- package/dist/esm/lib/semantics/check.js.map +1 -1
- package/dist/esm/lib/semantics/cli.js +3 -0
- package/dist/esm/lib/semantics/cli.js.map +1 -1
- package/dist/esm/lib/semantics/projection.d.ts +15 -0
- package/dist/esm/lib/semantics/projection.js +186 -0
- package/dist/esm/lib/semantics/projection.js.map +1 -0
- package/dist/esm/lib/time-travel/index.d.ts +1 -1
- package/dist/esm/lib/time-travel/index.js.map +1 -1
- package/dist/esm/lib/time-travel/receipt.d.ts +5 -0
- package/dist/esm/lib/time-travel/receipt.js +2 -0
- package/dist/esm/lib/time-travel/receipt.js.map +1 -1
- package/dist/esm/lib/time-travel/requestMeasurement.d.ts +33 -0
- package/dist/esm/lib/time-travel/requestMeasurement.js +120 -0
- package/dist/esm/lib/time-travel/requestMeasurement.js.map +1 -0
- package/dist/esm/lib/time-travel/servedView.js +8 -1
- package/dist/esm/lib/time-travel/servedView.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/integrity/assertion/conflicts.js +6 -69
- package/dist/integrity/assertion/conflicts.js.map +1 -1
- package/dist/integrity/assertion/types.js +0 -0
- package/dist/integrity/assertion/types.js.map +1 -1
- package/dist/lib/injection-engine/factories/defineMenuHint.js +3 -5
- package/dist/lib/injection-engine/factories/defineMenuHint.js.map +1 -1
- package/dist/lib/injection-engine/skillToolDescriptors.js +17 -8
- package/dist/lib/injection-engine/skillToolDescriptors.js.map +1 -1
- package/dist/lib/mcp/mcpClient.js +5 -97
- package/dist/lib/mcp/mcpClient.js.map +1 -1
- package/dist/lib/mcp/mockMcpClient.js +6 -5
- package/dist/lib/mcp/mockMcpClient.js.map +1 -1
- package/dist/lib/mcp/toolResult.js +249 -0
- package/dist/lib/mcp/toolResult.js.map +1 -0
- package/dist/lib/semantics/check.js +16 -0
- package/dist/lib/semantics/check.js.map +1 -1
- package/dist/lib/semantics/cli.js +3 -0
- package/dist/lib/semantics/cli.js.map +1 -1
- package/dist/lib/semantics/projection.js +191 -0
- package/dist/lib/semantics/projection.js.map +1 -0
- package/dist/lib/time-travel/index.js.map +1 -1
- package/dist/lib/time-travel/receipt.js +2 -0
- package/dist/lib/time-travel/receipt.js.map +1 -1
- package/dist/lib/time-travel/requestMeasurement.js +124 -0
- package/dist/lib/time-travel/requestMeasurement.js.map +1 -0
- package/dist/lib/time-travel/servedView.js +8 -1
- package/dist/lib/time-travel/servedView.js.map +1 -1
- package/dist/types/artifacts/datasetResult.d.ts +45 -0
- package/dist/types/artifacts/datasetResult.d.ts.map +1 -0
- package/dist/types/artifacts/index.d.ts +1 -0
- package/dist/types/artifacts/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/integrity/assertion/conflicts.d.ts +5 -32
- package/dist/types/integrity/assertion/conflicts.d.ts.map +1 -1
- package/dist/types/integrity/assertion/types.d.ts +8 -69
- package/dist/types/integrity/assertion/types.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/factories/defineMenuHint.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/skillToolDescriptors.d.ts +4 -2
- package/dist/types/lib/injection-engine/skillToolDescriptors.d.ts.map +1 -1
- package/dist/types/lib/mcp/mcpClient.d.ts.map +1 -1
- package/dist/types/lib/mcp/mockMcpClient.d.ts +8 -4
- package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -1
- package/dist/types/lib/mcp/toolResult.d.ts +9 -0
- package/dist/types/lib/mcp/toolResult.d.ts.map +1 -0
- package/dist/types/lib/mcp/types.d.ts +15 -0
- package/dist/types/lib/mcp/types.d.ts.map +1 -1
- package/dist/types/lib/semantics/check.d.ts +7 -1
- package/dist/types/lib/semantics/check.d.ts.map +1 -1
- package/dist/types/lib/semantics/cli.d.ts.map +1 -1
- package/dist/types/lib/semantics/projection.d.ts +16 -0
- package/dist/types/lib/semantics/projection.d.ts.map +1 -0
- package/dist/types/lib/time-travel/index.d.ts +1 -1
- package/dist/types/lib/time-travel/index.d.ts.map +1 -1
- package/dist/types/lib/time-travel/receipt.d.ts +5 -0
- package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
- package/dist/types/lib/time-travel/requestMeasurement.d.ts +34 -0
- package/dist/types/lib/time-travel/requestMeasurement.d.ts.map +1 -0
- package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillToolDescriptors.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/skillToolDescriptors.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;AAGH,mDAAsD;AACtD,kDAAyC;
|
|
1
|
+
{"version":3,"file":"skillToolDescriptors.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/skillToolDescriptors.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
44
|
exports.mcpClient = void 0;
|
|
45
45
|
const toolExtras_js_1 = require("./toolExtras.js");
|
|
46
|
+
const toolResult_js_1 = require("./toolResult.js");
|
|
46
47
|
const gatewayTransport_js_1 = require("./gatewayTransport.js");
|
|
47
48
|
const throttleRetry_js_1 = require("./throttleRetry.js");
|
|
48
49
|
const connectionRefusals_js_1 = require("./connectionRefusals.js");
|
|
@@ -80,6 +81,7 @@ const DEFAULT_CLIENT_INFO = {
|
|
|
80
81
|
*/
|
|
81
82
|
async function mcpClient(opts) {
|
|
82
83
|
const name = opts.name ?? 'mcp';
|
|
84
|
+
const resultMode = (0, toolResult_js_1.resultModeOf)(opts.resultMode, name);
|
|
83
85
|
// Before anything connects: an option that names a behaviour which cannot
|
|
84
86
|
// happen on the chosen arm is a defect, not a preference.
|
|
85
87
|
(0, connectionRefusals_js_1.refuseConflictingOptions)(opts, name);
|
|
@@ -99,7 +101,7 @@ async function mcpClient(opts) {
|
|
|
99
101
|
const listed = opts.signal
|
|
100
102
|
? await connection.listTools(undefined, { signal: opts.signal })
|
|
101
103
|
: await connection.listTools();
|
|
102
|
-
return listed.tools.map((t) => wrapMcpTool(name, connection, t, opts.signal));
|
|
104
|
+
return listed.tools.map((t) => wrapMcpTool(name, connection, t, opts.signal, resultMode));
|
|
103
105
|
};
|
|
104
106
|
return {
|
|
105
107
|
name,
|
|
@@ -249,7 +251,7 @@ function loadHttpModule(transport) {
|
|
|
249
251
|
}
|
|
250
252
|
}
|
|
251
253
|
// ─── Tool wrapping ─────────────────────────────────────────────────
|
|
252
|
-
function wrapMcpTool(serverName, connection, mcp, signal) {
|
|
254
|
+
function wrapMcpTool(serverName, connection, mcp, signal, resultMode) {
|
|
253
255
|
const tool = {
|
|
254
256
|
schema: {
|
|
255
257
|
name: mcp.name,
|
|
@@ -283,103 +285,9 @@ function wrapMcpTool(serverName, connection, mcp, signal) {
|
|
|
283
285
|
const result = signal
|
|
284
286
|
? await connection.callTool(params, undefined, { signal })
|
|
285
287
|
: await connection.callTool(params);
|
|
286
|
-
return readToolResult(result, mcp.name, serverName);
|
|
288
|
+
return (0, toolResult_js_1.readToolResult)(result, mcp.name, serverName, resultMode);
|
|
287
289
|
},
|
|
288
290
|
};
|
|
289
291
|
return tool;
|
|
290
292
|
}
|
|
291
|
-
// ─── Reading a tools/call answer (both arms of the protocol) ───────
|
|
292
|
-
/**
|
|
293
|
-
* Turn a `tools/call` answer into the text the agent hands the model.
|
|
294
|
-
*
|
|
295
|
-
* Three cases, because the protocol has three and pretending otherwise is what
|
|
296
|
-
* broke on a server that answered the old way:
|
|
297
|
-
*
|
|
298
|
-
* 1. **content blocks** — today's shape. Text blocks are concatenated;
|
|
299
|
-
* non-text blocks (images, resources) are summarized with their type.
|
|
300
|
-
* `isError: true` becomes a thrown tool error, exactly as before.
|
|
301
|
-
* 2. **`toolResult`** — the 2024-10-07 shape, which carries no `content` and
|
|
302
|
-
* no `isError`. The value BECOMES the tool text: a string verbatim,
|
|
303
|
-
* anything else JSON-stringified. That conversion is stated here and in
|
|
304
|
-
* the docs rather than left to be inferred from a mangled answer.
|
|
305
|
-
* 3. **neither** — a corrective error naming the SHAPE that arrived (its
|
|
306
|
-
* type, or its keys) and never the payload: an unrecognised answer is
|
|
307
|
-
* still somebody's data, and a tool error is read by the model.
|
|
308
|
-
*
|
|
309
|
-
* **Order matters, and here is why the legacy check runs first.** The SDK's
|
|
310
|
-
* default result schema declares `content` with a default of `[]`, so a legacy
|
|
311
|
-
* `{ toolResult }` payload arrives here wearing an empty `content` it never
|
|
312
|
-
* sent. Reading that array first would answer a real result with an empty
|
|
313
|
-
* string — the same silence in a friendlier coat. So a `toolResult` beside an
|
|
314
|
-
* EMPTY `content` is read as the legacy answer it is. A NON-empty `content`
|
|
315
|
-
* always wins: a server that sent blocks meant the blocks.
|
|
316
|
-
*/
|
|
317
|
-
function readToolResult(result, toolName, serverName) {
|
|
318
|
-
if (isLegacyResult(result) && !hasNonEmptyContent(result)) {
|
|
319
|
-
return stringifyLegacyResult(result.toolResult);
|
|
320
|
-
}
|
|
321
|
-
if (hasContentBlocks(result)) {
|
|
322
|
-
const text = result.content
|
|
323
|
-
.map((c) => (c.type === 'text' && c.text ? c.text : `[${c.type}]`))
|
|
324
|
-
.join('\n');
|
|
325
|
-
if (result.isError) {
|
|
326
|
-
throw new Error(`MCP tool '${toolName}' (server '${serverName}') returned an error: ${text}`);
|
|
327
|
-
}
|
|
328
|
-
return text;
|
|
329
|
-
}
|
|
330
|
-
throw new Error(`MCP tool '${toolName}' (server '${serverName}') answered with a shape this client does ` +
|
|
331
|
-
`not understand: ${describeShape(result)}. A tools/call result carries either 'content' ` +
|
|
332
|
-
`blocks or a legacy 'toolResult'; this had neither.`);
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* The current arm. Checked on the wire value, not on the declared type — and
|
|
336
|
-
* defensively, because a `null` or a scalar is exactly the kind of answer that
|
|
337
|
-
* has to reach the corrective error rather than crash on the way to it.
|
|
338
|
-
*/
|
|
339
|
-
function hasContentBlocks(result) {
|
|
340
|
-
return Array.isArray(contentOf(result));
|
|
341
|
-
}
|
|
342
|
-
/** Blocks the server actually sent, as opposed to the schema's default `[]`. */
|
|
343
|
-
function hasNonEmptyContent(result) {
|
|
344
|
-
const content = contentOf(result);
|
|
345
|
-
return Array.isArray(content) && content.length > 0;
|
|
346
|
-
}
|
|
347
|
-
function contentOf(result) {
|
|
348
|
-
if (typeof result !== 'object' || result === null)
|
|
349
|
-
return undefined;
|
|
350
|
-
return result.content;
|
|
351
|
-
}
|
|
352
|
-
/** The 2024-10-07 arm — the key's PRESENCE is the signal; its value may be anything. */
|
|
353
|
-
function isLegacyResult(result) {
|
|
354
|
-
return typeof result === 'object' && result !== null && 'toolResult' in result;
|
|
355
|
-
}
|
|
356
|
-
/** A legacy `toolResult` as tool text: a string verbatim, anything else as JSON. */
|
|
357
|
-
function stringifyLegacyResult(value) {
|
|
358
|
-
if (typeof value === 'string')
|
|
359
|
-
return value;
|
|
360
|
-
if (value === undefined)
|
|
361
|
-
return '';
|
|
362
|
-
try {
|
|
363
|
-
return JSON.stringify(value) ?? String(value);
|
|
364
|
-
}
|
|
365
|
-
catch {
|
|
366
|
-
// Circular or otherwise unserializable — say what we can rather than
|
|
367
|
-
// throwing from a path whose whole job is to report an answer.
|
|
368
|
-
return String(value);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
/** Name a value's SHAPE for an error message. Never its contents. */
|
|
372
|
-
function describeShape(value) {
|
|
373
|
-
if (value === null)
|
|
374
|
-
return 'null';
|
|
375
|
-
if (Array.isArray(value))
|
|
376
|
-
return `an array of ${value.length} item(s)`;
|
|
377
|
-
if (typeof value !== 'object')
|
|
378
|
-
return `a ${typeof value}`;
|
|
379
|
-
const keys = Object.keys(value);
|
|
380
|
-
if (keys.length === 0)
|
|
381
|
-
return 'an object with no keys';
|
|
382
|
-
const shown = keys.slice(0, 8);
|
|
383
|
-
return `an object with keys [${shown.join(', ')}${keys.length > shown.length ? ', …' : ''}]`;
|
|
384
|
-
}
|
|
385
293
|
//# sourceMappingURL=mcpClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../../src/lib/mcp/mcpClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;;;
|
|
1
|
+
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../../src/lib/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
33
|
exports.mockMcpClient = void 0;
|
|
34
34
|
const toolExtras_js_1 = require("./toolExtras.js");
|
|
35
|
+
const toolResult_js_1 = require("./toolResult.js");
|
|
35
36
|
/**
|
|
36
37
|
* Build an in-memory `McpClient`. Useful when you want to develop
|
|
37
38
|
* against MCP semantics without spawning subprocesses, hitting the
|
|
@@ -40,6 +41,7 @@ const toolExtras_js_1 = require("./toolExtras.js");
|
|
|
40
41
|
*/
|
|
41
42
|
function mockMcpClient(options) {
|
|
42
43
|
const name = options.name ?? 'mock-mcp';
|
|
44
|
+
const resultMode = (0, toolResult_js_1.resultModeOf)(options.resultMode, name);
|
|
43
45
|
const toolMap = new Map(options.tools.map((t) => [t.name, t]));
|
|
44
46
|
let cache = null;
|
|
45
47
|
let closed = false;
|
|
@@ -48,7 +50,7 @@ function mockMcpClient(options) {
|
|
|
48
50
|
throw new Error(`mockMcpClient[${name}].${op}() called after close(). Construct a new client to reuse.`);
|
|
49
51
|
}
|
|
50
52
|
};
|
|
51
|
-
const buildTools = () => options.tools.map((mcp) => wrapMockTool(name, toolMap, mcp));
|
|
53
|
+
const buildTools = () => options.tools.map((mcp) => wrapMockTool(name, toolMap, mcp, resultMode));
|
|
52
54
|
return {
|
|
53
55
|
name,
|
|
54
56
|
async tools() {
|
|
@@ -71,7 +73,7 @@ function mockMcpClient(options) {
|
|
|
71
73
|
};
|
|
72
74
|
}
|
|
73
75
|
exports.mockMcpClient = mockMcpClient;
|
|
74
|
-
function wrapMockTool(serverName, toolMap, mcp) {
|
|
76
|
+
function wrapMockTool(serverName, toolMap, mcp, resultMode) {
|
|
75
77
|
const tool = {
|
|
76
78
|
schema: {
|
|
77
79
|
name: mcp.name,
|
|
@@ -94,10 +96,9 @@ function wrapMockTool(serverName, toolMap, mcp) {
|
|
|
94
96
|
// mutable Map could be supported later. For now `toolMap` is
|
|
95
97
|
// built once at factory time.
|
|
96
98
|
const handler = toolMap.get(mcp.name)?.handler;
|
|
97
|
-
if (!handler)
|
|
98
|
-
return '[mock result]';
|
|
99
99
|
try {
|
|
100
|
-
|
|
100
|
+
const result = handler ? await handler(argsObj) : '[mock result]';
|
|
101
|
+
return (0, toolResult_js_1.readToolResult)(typeof result === 'string' ? { content: [{ type: 'text', text: result }] } : result, mcp.name, serverName, resultMode);
|
|
101
102
|
}
|
|
102
103
|
catch (err) {
|
|
103
104
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockMcpClient.js","sourceRoot":"","sources":["../../../src/lib/mcp/mockMcpClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;AAGH,mDAAiD;
|
|
1
|
+
{"version":3,"file":"mockMcpClient.js","sourceRoot":"","sources":["../../../src/lib/mcp/mockMcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readToolResult = exports.resultModeOf = void 0;
|
|
4
|
+
/** Validate before opening a transport; a misspelled opt-in must not disappear. */
|
|
5
|
+
function resultModeOf(value, name) {
|
|
6
|
+
if (value === undefined)
|
|
7
|
+
return 'text';
|
|
8
|
+
if (value === 'text' || value === 'structured' || value === 'structured-or-json')
|
|
9
|
+
return value;
|
|
10
|
+
throw new Error(`mcpClient[${name}]: resultMode must be 'text', 'structured' or 'structured-or-json'.`);
|
|
11
|
+
}
|
|
12
|
+
exports.resultModeOf = resultModeOf;
|
|
13
|
+
/** Internal shared decoder for the real connection and curated mock. */
|
|
14
|
+
function readToolResult(result, toolName, serverName, mode = 'text') {
|
|
15
|
+
if (mode === 'text')
|
|
16
|
+
return readTextResult(result, toolName, serverName);
|
|
17
|
+
const prefix = `MCP tool '${toolName}' (server '${serverName}')`;
|
|
18
|
+
const invalid = () => new Error(`${prefix} did not provide valid structuredContent. ` +
|
|
19
|
+
(mode === 'structured-or-json'
|
|
20
|
+
? 'Expected a JSON object in structuredContent or, when absent, exactly one JSON-object text block. '
|
|
21
|
+
: 'Expected a JSON object in structuredContent. ') +
|
|
22
|
+
'Malformed, cyclic or over-limit data is refused; result data is not included in this error.');
|
|
23
|
+
if (typeof result !== 'object' || result === null)
|
|
24
|
+
throw invalid();
|
|
25
|
+
// Error status belongs to the tool, even if it also returned a usable object
|
|
26
|
+
// or a legacy arm. Never launder a failed call into successful data.
|
|
27
|
+
let isError;
|
|
28
|
+
try {
|
|
29
|
+
isError = ownValue(result, 'isError');
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
throw invalid();
|
|
33
|
+
}
|
|
34
|
+
if (isError === true) {
|
|
35
|
+
const diagnostic = errorDiagnostic(result);
|
|
36
|
+
throw new Error(diagnostic === undefined
|
|
37
|
+
? `${prefix} returned an error; its structured result was not read.`
|
|
38
|
+
: `${prefix} returned an error: ${diagnostic}`);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const structured = Object.getOwnPropertyDescriptor(result, 'structuredContent');
|
|
42
|
+
if (structured !== undefined) {
|
|
43
|
+
if (!('value' in structured) || !jsonObject(structured.value))
|
|
44
|
+
throw invalid();
|
|
45
|
+
return structured.value;
|
|
46
|
+
}
|
|
47
|
+
if (mode !== 'structured-or-json')
|
|
48
|
+
throw invalid();
|
|
49
|
+
const content = ownValue(result, 'content');
|
|
50
|
+
if (!Array.isArray(content) || content.length !== 1)
|
|
51
|
+
throw invalid();
|
|
52
|
+
const block = ownValue(content, '0');
|
|
53
|
+
if (typeof block !== 'object' || block === null || ownValue(block, 'type') !== 'text')
|
|
54
|
+
throw invalid();
|
|
55
|
+
const text = ownValue(block, 'text');
|
|
56
|
+
if (typeof text !== 'string' || text.length > 16_000_000)
|
|
57
|
+
throw invalid();
|
|
58
|
+
const parsed = JSON.parse(text);
|
|
59
|
+
if (!jsonObject(parsed))
|
|
60
|
+
throw invalid();
|
|
61
|
+
return parsed;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Parser and getter exceptions may echo source bytes. Keep the refusal
|
|
65
|
+
// authored here rather than forwarding arbitrary transport payloads.
|
|
66
|
+
throw invalid();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.readToolResult = readToolResult;
|
|
70
|
+
/** Tool-authored error text is corrective evidence, not a successful result.
|
|
71
|
+
* Read only own data properties; never inspect structuredContent, invoke a
|
|
72
|
+
* getter/toJSON or stringify a non-string diagnostic. Over-limit/malformed
|
|
73
|
+
* diagnostics use the generic refusal rather than partial advice. */
|
|
74
|
+
function errorDiagnostic(result) {
|
|
75
|
+
try {
|
|
76
|
+
const content = ownValue(result, 'content');
|
|
77
|
+
if (!Array.isArray(content))
|
|
78
|
+
return undefined;
|
|
79
|
+
const length = ownValue(content, 'length');
|
|
80
|
+
if (typeof length !== 'number' || length < 1 || length > 32)
|
|
81
|
+
return undefined;
|
|
82
|
+
const texts = [];
|
|
83
|
+
let chars = 0;
|
|
84
|
+
for (let index = 0; index < length; index++) {
|
|
85
|
+
const block = ownValue(content, String(index));
|
|
86
|
+
if (typeof block !== 'object' || block === null || ownValue(block, 'type') !== 'text')
|
|
87
|
+
return undefined;
|
|
88
|
+
const text = ownValue(block, 'text');
|
|
89
|
+
if (typeof text !== 'string')
|
|
90
|
+
return undefined;
|
|
91
|
+
chars += text.length + (index === 0 ? 0 : 1);
|
|
92
|
+
if (chars > 8_192)
|
|
93
|
+
return undefined;
|
|
94
|
+
texts.push(text);
|
|
95
|
+
}
|
|
96
|
+
const diagnostic = texts.join('\n');
|
|
97
|
+
return diagnostic.trim() ? diagnostic : undefined;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function ownValue(value, key) {
|
|
104
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
105
|
+
if (descriptor !== undefined && !('value' in descriptor))
|
|
106
|
+
throw new Error('Accessor is not JSON data');
|
|
107
|
+
return descriptor?.value;
|
|
108
|
+
}
|
|
109
|
+
/** Validate the JSON data domain without invoking toJSON/getters, converting
|
|
110
|
+
* unknown to null or dropping unsupported fields. No clone or normalization. */
|
|
111
|
+
function jsonObject(value) {
|
|
112
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
113
|
+
return false;
|
|
114
|
+
const ancestors = new Set();
|
|
115
|
+
let visited = 0;
|
|
116
|
+
function visit(item, depth) {
|
|
117
|
+
if (++visited > 1_000_000)
|
|
118
|
+
return false;
|
|
119
|
+
if (item === null || typeof item === 'string' || typeof item === 'boolean')
|
|
120
|
+
return true;
|
|
121
|
+
if (typeof item === 'number')
|
|
122
|
+
return Number.isFinite(item);
|
|
123
|
+
if (typeof item !== 'object' || depth >= 64 || ancestors.has(item))
|
|
124
|
+
return false;
|
|
125
|
+
const array = Array.isArray(item);
|
|
126
|
+
const prototype = Object.getPrototypeOf(item);
|
|
127
|
+
if (array ? prototype !== Array.prototype : prototype !== Object.prototype && prototype !== null)
|
|
128
|
+
return false;
|
|
129
|
+
ancestors.add(item);
|
|
130
|
+
try {
|
|
131
|
+
const keys = Reflect.ownKeys(item);
|
|
132
|
+
if (array && keys.length !== item.length + 1)
|
|
133
|
+
return false;
|
|
134
|
+
for (const key of keys) {
|
|
135
|
+
if (array && key === 'length')
|
|
136
|
+
continue;
|
|
137
|
+
if (typeof key !== 'string')
|
|
138
|
+
return false;
|
|
139
|
+
if (array && (!/^(0|[1-9]\d*)$/.test(key) || Number(key) >= item.length))
|
|
140
|
+
return false;
|
|
141
|
+
const descriptor = Object.getOwnPropertyDescriptor(item, key);
|
|
142
|
+
if (!descriptor.enumerable ||
|
|
143
|
+
!('value' in descriptor) ||
|
|
144
|
+
!visit(descriptor.value, depth + 1))
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
ancestors.delete(item);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return visit(value, 0);
|
|
154
|
+
}
|
|
155
|
+
// ─── Reading a tools/call answer (both arms of the protocol) ───────
|
|
156
|
+
/**
|
|
157
|
+
* Turn a `tools/call` answer into the text the agent hands the model.
|
|
158
|
+
*
|
|
159
|
+
* Three cases, because the protocol has three and pretending otherwise is what
|
|
160
|
+
* broke on a server that answered the old way:
|
|
161
|
+
*
|
|
162
|
+
* 1. **content blocks** — today's shape. Text blocks are concatenated;
|
|
163
|
+
* non-text blocks (images, resources) are summarized with their type.
|
|
164
|
+
* `isError: true` becomes a thrown tool error, exactly as before.
|
|
165
|
+
* 2. **`toolResult`** — the 2024-10-07 shape, which carries no `content` and
|
|
166
|
+
* no `isError`. The value BECOMES the tool text: a string verbatim,
|
|
167
|
+
* anything else JSON-stringified. That conversion is stated here and in
|
|
168
|
+
* the docs rather than left to be inferred from a mangled answer.
|
|
169
|
+
* 3. **neither** — a corrective error naming the SHAPE that arrived (its
|
|
170
|
+
* type, or its keys) and never the payload: an unrecognised answer is
|
|
171
|
+
* still somebody's data, and a tool error is read by the model.
|
|
172
|
+
*
|
|
173
|
+
* **Order matters, and here is why the legacy check runs first.** The SDK's
|
|
174
|
+
* default result schema declares `content` with a default of `[]`, so a legacy
|
|
175
|
+
* `{ toolResult }` payload arrives here wearing an empty `content` it never
|
|
176
|
+
* sent. Reading that array first would answer a real result with an empty
|
|
177
|
+
* string — the same silence in a friendlier coat. So a `toolResult` beside an
|
|
178
|
+
* EMPTY `content` is read as the legacy answer it is. A NON-empty `content`
|
|
179
|
+
* always wins: a server that sent blocks meant the blocks.
|
|
180
|
+
*/
|
|
181
|
+
function readTextResult(result, toolName, serverName) {
|
|
182
|
+
if (isLegacyResult(result) && !hasNonEmptyContent(result)) {
|
|
183
|
+
return stringifyLegacyResult(result.toolResult);
|
|
184
|
+
}
|
|
185
|
+
if (hasContentBlocks(result)) {
|
|
186
|
+
const text = result.content
|
|
187
|
+
.map((c) => (c.type === 'text' && c.text ? c.text : `[${c.type}]`))
|
|
188
|
+
.join('\n');
|
|
189
|
+
if (result.isError) {
|
|
190
|
+
throw new Error(`MCP tool '${toolName}' (server '${serverName}') returned an error: ${text}`);
|
|
191
|
+
}
|
|
192
|
+
return text;
|
|
193
|
+
}
|
|
194
|
+
throw new Error(`MCP tool '${toolName}' (server '${serverName}') answered with a shape this client does ` +
|
|
195
|
+
`not understand: ${describeShape(result)}. A tools/call result carries either 'content' ` +
|
|
196
|
+
`blocks or a legacy 'toolResult'; this had neither.`);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* The current arm. Checked on the wire value, not on the declared type — and
|
|
200
|
+
* defensively, because a `null` or a scalar is exactly the kind of answer that
|
|
201
|
+
* has to reach the corrective error rather than crash on the way to it.
|
|
202
|
+
*/
|
|
203
|
+
function hasContentBlocks(result) {
|
|
204
|
+
return Array.isArray(contentOf(result));
|
|
205
|
+
}
|
|
206
|
+
/** Blocks the server actually sent, as opposed to the schema's default `[]`. */
|
|
207
|
+
function hasNonEmptyContent(result) {
|
|
208
|
+
const content = contentOf(result);
|
|
209
|
+
return Array.isArray(content) && content.length > 0;
|
|
210
|
+
}
|
|
211
|
+
function contentOf(result) {
|
|
212
|
+
if (typeof result !== 'object' || result === null)
|
|
213
|
+
return undefined;
|
|
214
|
+
return result.content;
|
|
215
|
+
}
|
|
216
|
+
/** The 2024-10-07 arm — the key's PRESENCE is the signal; its value may be anything. */
|
|
217
|
+
function isLegacyResult(result) {
|
|
218
|
+
return typeof result === 'object' && result !== null && 'toolResult' in result;
|
|
219
|
+
}
|
|
220
|
+
/** A legacy `toolResult` as tool text: a string verbatim, anything else as JSON. */
|
|
221
|
+
function stringifyLegacyResult(value) {
|
|
222
|
+
if (typeof value === 'string')
|
|
223
|
+
return value;
|
|
224
|
+
if (value === undefined)
|
|
225
|
+
return '';
|
|
226
|
+
try {
|
|
227
|
+
return JSON.stringify(value) ?? String(value);
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// Circular or otherwise unserializable — say what we can rather than
|
|
231
|
+
// throwing from a path whose whole job is to report an answer.
|
|
232
|
+
return String(value);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/** Name a value's SHAPE for an error message. Never its contents. */
|
|
236
|
+
function describeShape(value) {
|
|
237
|
+
if (value === null)
|
|
238
|
+
return 'null';
|
|
239
|
+
if (Array.isArray(value))
|
|
240
|
+
return `an array of ${value.length} item(s)`;
|
|
241
|
+
if (typeof value !== 'object')
|
|
242
|
+
return `a ${typeof value}`;
|
|
243
|
+
const keys = Object.keys(value);
|
|
244
|
+
if (keys.length === 0)
|
|
245
|
+
return 'an object with no keys';
|
|
246
|
+
const shown = keys.slice(0, 8);
|
|
247
|
+
return `an object with keys [${shown.join(', ')}${keys.length > shown.length ? ', …' : ''}]`;
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=toolResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolResult.js","sourceRoot":"","sources":["../../../src/lib/mcp/toolResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ exports.checkSemantics = void 0;
|
|
|
33
33
|
const read_js_1 = require("../../core/agent/coverage/read.js");
|
|
34
34
|
const envelope_js_1 = require("./envelope.js");
|
|
35
35
|
const types_js_1 = require("./types.js");
|
|
36
|
+
const projection_js_1 = require("./projection.js");
|
|
36
37
|
const isPlainObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
37
38
|
/** True when a result states its boundary through ANY recognized door: a
|
|
38
39
|
* semantic envelope with `coverage`, a `coverage()` ledger, or an
|
|
@@ -103,6 +104,21 @@ function checkSemantics(entries) {
|
|
|
103
104
|
`nobody is keeping. Add one sample result (a mock return is enough).`,
|
|
104
105
|
});
|
|
105
106
|
}
|
|
107
|
+
if (entry.projections !== undefined) {
|
|
108
|
+
if (!Array.isArray(entry.projections))
|
|
109
|
+
throw new Error(`checkSemantics: tool '${entry.name}' projections must be an array of { before, after } fixtures.`);
|
|
110
|
+
entry.projections.forEach((pair, index) => {
|
|
111
|
+
if (!isPlainObject(pair) || !Object.hasOwn(pair, 'before') || !Object.hasOwn(pair, 'after'))
|
|
112
|
+
throw new Error(`checkSemantics: tool '${entry.name}' projection ${index + 1} requires before and after values.`);
|
|
113
|
+
for (const issue of (0, projection_js_1.projectionSemanticsIssues)((0, projection_js_1.snapshotProjectionSemantics)(pair.before), pair.after))
|
|
114
|
+
findings.push({
|
|
115
|
+
tool: entry.name,
|
|
116
|
+
...issue,
|
|
117
|
+
field: `projections[${index}].${issue.field}`,
|
|
118
|
+
severity: 'error',
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
106
122
|
results.forEach((result, resultIndex) => {
|
|
107
123
|
checkedResults += 1;
|
|
108
124
|
// A marker-bearing value with faults: every fault becomes a finding
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/lib/semantics/check.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AAEH,+DAAuE;AACvE,+CAAgE;AAChE,yCAAkE;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/lib/semantics/check.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AAEH,+DAAuE;AACvE,+CAAgE;AAChE,yCAAkE;AAClE,mDAIyB;AAmDzB,MAAM,aAAa,GAAG,CAAC,CAAU,EAAgC,EAAE,CACjE,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D;;oDAEoD;AACpD,SAAS,gBAAgB,CAAC,MAAe;IACvC,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;IACzD,OAAO,IAAA,4BAAkB,EAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA4B,EAAE,WAAmB;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,WAAqC,CAAC;IACxD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,4BAA4B;QACjF,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,UAAU;QACjB,WAAW;QACX,OAAO,EACL,SAAS,KAAK,CAAC,IAAI,kBAAkB,GAAG,uBAAuB,WAAW,GAAG,CAAC,GAAG;YACjF,kEAAkE,GAAG,WAAW;YAChF,CAAC,GAAG,KAAK,QAAQ;gBACf,CAAC,CAAC,oFAAoF;oBACpF,0CAA0C;gBAC5C,CAAC,CAAC,qFAAqF;oBACrF,sBAAsB,CAAC;YAC3B,kGAAkG;YAClG,0CAA0C;KAC7C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAyC;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,qBAAqB,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,KAAK,GAAG,GAAuC,CAAC;QACtD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,qBAAqB,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,yBAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,IAAI,2BAA2B,MAAM,CAAC,GAAG,CAAC,cAAc;gBACrF,kDAAkD,yBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC/E,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,IAAI,+CAA+C;gBAChF,uFAAuF,CAC1F,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,SAAS;gBAChB,OAAO,EACL,SAAS,KAAK,CAAC,IAAI,kBAAkB,GAAG,2CAA2C;oBACnF,sFAAsF;oBACtF,qEAAqE;aACxE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,IAAI,+DAA+D,CACnG,CAAC;YACJ,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;oBACzF,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,IAAI,gBACjC,KAAK,GAAG,CACV,oCAAoC,CACrC,CAAC;gBACJ,KAAK,MAAM,KAAK,IAAI,IAAA,yCAAyB,EAC3C,IAAA,2CAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,EACxC,IAAI,CAAC,KAAK,CACX;oBACC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,GAAG,KAAK;wBACR,KAAK,EAAE,eAAe,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;wBAC7C,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YACtC,cAAc,IAAI,CAAC,CAAC;YAEpB,oEAAoE;YACpE,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,WAAW;wBACX,OAAO,EAAE,SAAS,KAAK,CAAC,IAAI,oBAAoB,WAAW,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE;qBACpF,CAAC,CAAC;gBACL,CAAC;gBACD,oEAAoE;gBACpE,kEAAkE;gBAClE,uDAAuD;gBACvD,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;YAElC,wBAAwB;YACxB,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,IACE,GAAG,KAAK,WAAW;gBACnB,GAAG,KAAK,SAAS;gBACjB,GAAG,CAAC,KAAK,KAAK,SAAS;gBACvB,GAAG,CAAC,MAAM,KAAK,SAAS,EACxB,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE,QAAQ;oBACf,WAAW;oBACX,OAAO,EACL,SAAS,KAAK,CAAC,IAAI,oBAAoB,WAAW,GAAG,CAAC,sBAAsB;wBAC5E,gFAAgF;wBAChF,6EAA6E;wBAC7E,6CAA6C;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;QACjD,QAAQ;QACR,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,cAAc;KACf,CAAC;AACJ,CAAC;AA9HD,wCA8HC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/lib/semantics/cli.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAA8F;AAC9F,2CAAoD;AACpD,yCAA4C;AAO5C,MAAM,KAAK,GAAG;;;;;;;8CAOgC,yBAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;oEAOH,CAAC;AAErE;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAa;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,KAAK,IAAI;YACb,OAAO,IAAI,KAAK,QAAQ;YACxB,KAAK,CAAC,OAAO,CAAE,IAA4B,CAAC,KAAK,CAAC;YACpD,CAAC,CAAE,IAA6B,CAAC,KAAK;YACtC,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,KAAK,GAAG,GAA8B,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,wBAAwB,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,QAAQ,IAAI,KAAK;gBACnB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChB,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,OAAO,IAAI,4DAA4D;gBACnF,kFAAkF;gBAClF,qBAAqB,CACxB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI;YACJ,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAmD,EAAE;gBAC5E,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/lib/semantics/cli.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAA8F;AAC9F,2CAAoD;AACpD,yCAA4C;AAO5C,MAAM,KAAK,GAAG;;;;;;;8CAOgC,yBAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;oEAOH,CAAC;AAErE;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAa;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,KAAK,IAAI;YACb,OAAO,IAAI,KAAK,QAAQ;YACxB,KAAK,CAAC,OAAO,CAAE,IAA4B,CAAC,KAAK,CAAC;YACpD,CAAC,CAAE,IAA6B,CAAC,KAAK;YACtC,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,KAAK,GAAG,GAA8B,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,wBAAwB,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,QAAQ,IAAI,KAAK;gBACnB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChB,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,OAAO,IAAI,4DAA4D;gBACnF,kFAAkF;gBAClF,qBAAqB,CACxB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI;YACJ,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAmD,EAAE;gBAC5E,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;YACP,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAmD,EAAE;gBAC5E,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA7CD,wDA6CC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CACxC,IAAuB,EACvB,KAAqB;IACnB,sCAAsC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACnC,sCAAsC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;CACtC;IAED,IAAI,IAAwB,CAAC;IAC7B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,UAAU;YAAE,MAAM,GAAG,IAAI,CAAC;aACjC,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC;aAClC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC1C,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,MAAM,CAAC,iBAAiB,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,GAAG,CAAC;aACrC,CAAC;YACJ,EAAE,CAAC,MAAM,CAAC,8BAA8B,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,kEAAkE;QAClE,mEAAmE;QACnE,oEAAoE;QACpE,yDAAyD;QACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,kBAAkB,GAAC,CAAC;QACtD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,IAAA,yBAAc,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,mCAAmC,IAAI,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI;QAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;QAChD,EAAE,CAAC,MAAM,CAAC,IAAA,iCAAqB,EAAC,MAAM,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IACzB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,CAAC;AACX,CAAC;AApDD,oDAoDC"}
|