stitchkit 0.108.3 → 0.108.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/CHANGELOG.md +18 -0
- package/dist/agent-runtime/coding-tool-search-patch.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/coding-tools.js +1 -1
- package/dist/entrypoints/agent-runtime/harness.js +4 -3
- package/dist/entrypoints/agent-runtime/sandbox.js +1 -1
- package/dist/entrypoints/agent-runtime.js +7 -6
- package/dist/entrypoints/cli.js +6 -5
- package/dist/entrypoints/tools/connections.js +6 -1
- package/dist/entrypoints/tools/contract.js +2 -1
- package/dist/entrypoints/tools/invoker.js +5 -4
- package/dist/entrypoints/tools/mcp.js +6 -5
- package/dist/entrypoints/tools.js +9 -8
- package/dist/{index-fgq4w9bf.js → index-05s01c94.js} +4 -4
- package/dist/{index-cx2nh595.js → index-3wm2xp2a.js} +1 -1
- package/dist/{index-h7qms8f9.js → index-68y3n9j3.js} +3 -3
- package/dist/{index-6yxhe58g.js → index-cykxpxz5.js} +7 -0
- package/dist/{index-dm2fv45z.js → index-k4v2kq4q.js} +1 -1
- package/dist/{index-6y9t2fwz.js → index-kvvpw1kq.js} +2 -2
- package/dist/{index-2s6fpehp.js → index-ryv32myz.js} +1 -1
- package/dist/{index-tycmtxky.js → index-sjntc4az.js} +2 -1
- package/dist/index-t5sjh517.js +100 -0
- package/dist/{index-yz8x0hbx.js → index-tpk71wqn.js} +1 -1
- package/dist/{index-mep4sb48.js → index-x5xs71dw.js} +3 -3
- package/dist/tools/connections/runtime.d.ts.map +1 -1
- package/dist/tools/schema/coerce.d.ts.map +1 -1
- package/dist/tools/schema/json-schema-origin.d.ts +14 -0
- package/dist/tools/schema/json-schema-origin.d.ts.map +1 -0
- package/llms/agent-runtime-coding-tools.txt +1 -1
- package/llms/agent-runtime.txt +3 -2
- package/llms/cli.2.txt +1 -1
- package/llms/cli.txt +4 -0
- package/llms/tools.3.txt +1 -1
- package/llms-full.txt +10 -5
- package/llms.txt +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,24 @@ additive**; the first breaking change landed in 0.10.0. Grep the file for
|
|
|
15
15
|
|
|
16
16
|
## [Unreleased]
|
|
17
17
|
|
|
18
|
+
## [0.108.5] - 2026-10-10
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `stitchkit/cli` — JSON object and record flags now keep working after an MCP input schema is
|
|
23
|
+
restored through `z.fromJSONSchema`, including schemas with `propertyNames`, `minProperties` or
|
|
24
|
+
`maxProperties`. The CLI accepts both `--data '{"code":"007"}'` and
|
|
25
|
+
`--data='{"code":"007"}'`, preserves lexical strings and nested values, and still applies the
|
|
26
|
+
restored object guards before remote dispatch. Application transform pipes remain untouched.
|
|
27
|
+
|
|
28
|
+
## [0.108.4] - 2026-10-09
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- `stitchkit/agent-runtime/coding-tools` — `edit_file` now inserts `newText` literally when
|
|
33
|
+
`replaceAll: true`; JavaScript replacement tokens such as `$$`, `$&`, `` $` `` and `$'` no
|
|
34
|
+
longer rewrite the requested text. Single replacements already had this literal behavior.
|
|
35
|
+
|
|
18
36
|
## [0.108.3] - 2026-10-09
|
|
19
37
|
|
|
20
38
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-tool-search-patch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/coding-tool-search-patch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"coding-tool-search-patch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/coding-tool-search-patch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAgWhC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,GAC5B,SAAS,yBAAyB,EAAE,CAsBtC"}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
AgentCodingToolAuthorizationSchema2,
|
|
7
7
|
AgentCodingToolPathAuthorizationSchema2,
|
|
8
8
|
createAgentCodingTools2
|
|
9
|
-
} from "../../index-
|
|
9
|
+
} from "../../index-sjntc4az.js";
|
|
10
10
|
import"../../index-2kbysk9s.js";
|
|
11
11
|
import"../../index-dj1aycxw.js";
|
|
12
12
|
import"../../index-8ks9b85e.js";
|
|
@@ -5,14 +5,15 @@ import"../../index-8kzct1d6.js";
|
|
|
5
5
|
import {
|
|
6
6
|
composeAgentPrompt2,
|
|
7
7
|
createAgentRuntime2
|
|
8
|
-
} from "../../index-
|
|
8
|
+
} from "../../index-tpk71wqn.js";
|
|
9
9
|
import"../../index-qaet40b2.js";
|
|
10
10
|
import"../../index-mnkk1ffz.js";
|
|
11
11
|
import"../../index-fynr93w4.js";
|
|
12
|
-
import"../../index-
|
|
12
|
+
import"../../index-t5sjh517.js";
|
|
13
|
+
import"../../index-cykxpxz5.js";
|
|
13
14
|
import"../../index-ct75c3at.js";
|
|
14
15
|
import"../../index-q6crhe1n.js";
|
|
15
|
-
import"../../index-
|
|
16
|
+
import"../../index-k4v2kq4q.js";
|
|
16
17
|
import"../../index-c17xcx4k.js";
|
|
17
18
|
import"../../index-0gs4ymfj.js";
|
|
18
19
|
import"../../index-5w6t91ze.js";
|
|
@@ -111,22 +111,23 @@ import {
|
|
|
111
111
|
agentGoalStateSlot2,
|
|
112
112
|
agentTodoStateSlot2,
|
|
113
113
|
createAgentRuntime2
|
|
114
|
-
} from "../index-
|
|
114
|
+
} from "../index-tpk71wqn.js";
|
|
115
115
|
import {
|
|
116
116
|
AgentConversationSummarySchema2,
|
|
117
117
|
AgentConversationPageSchema2,
|
|
118
118
|
AgentConversationMessagePageSchema2
|
|
119
119
|
} from "../index-kqnd6a85.js";
|
|
120
120
|
import"../index-fynr93w4.js";
|
|
121
|
-
import"../index-
|
|
121
|
+
import"../index-t5sjh517.js";
|
|
122
|
+
import"../index-cykxpxz5.js";
|
|
122
123
|
import"../index-ct75c3at.js";
|
|
123
124
|
import"../index-q6crhe1n.js";
|
|
124
|
-
import"../index-
|
|
125
|
-
import"../index-
|
|
125
|
+
import"../index-k4v2kq4q.js";
|
|
126
|
+
import"../index-ryv32myz.js";
|
|
126
127
|
import {
|
|
127
128
|
mountAgent2,
|
|
128
129
|
buildToolManifest2
|
|
129
|
-
} from "../index-
|
|
130
|
+
} from "../index-68y3n9j3.js";
|
|
130
131
|
import {
|
|
131
132
|
createBoundedSinkManager
|
|
132
133
|
} from "../index-qaet40b2.js";
|
|
@@ -192,7 +193,7 @@ import {
|
|
|
192
193
|
import {
|
|
193
194
|
assertPositiveSafeInteger
|
|
194
195
|
} from "../index-0s4xebbg.js";
|
|
195
|
-
import"../index-
|
|
196
|
+
import"../index-3wm2xp2a.js";
|
|
196
197
|
import {
|
|
197
198
|
defineRuntimeTool2,
|
|
198
199
|
executableAgentRuntimeTools
|
package/dist/entrypoints/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import"../index-t5sjh517.js";
|
|
1
2
|
import {
|
|
2
3
|
coerceJsonArgs2
|
|
3
|
-
} from "../index-
|
|
4
|
+
} from "../index-cykxpxz5.js";
|
|
4
5
|
import {
|
|
5
6
|
defineCliCommand2,
|
|
6
7
|
DEFAULT_EXIT_CODES2,
|
|
@@ -15,12 +16,12 @@ import {
|
|
|
15
16
|
renderCliView2,
|
|
16
17
|
pollUntilDone2,
|
|
17
18
|
createCli2
|
|
18
|
-
} from "../index-
|
|
19
|
+
} from "../index-05s01c94.js";
|
|
19
20
|
import"../index-fynr93w4.js";
|
|
20
21
|
import"../index-ct75c3at.js";
|
|
21
22
|
import"../index-q6crhe1n.js";
|
|
22
|
-
import"../index-
|
|
23
|
-
import"../index-
|
|
23
|
+
import"../index-k4v2kq4q.js";
|
|
24
|
+
import"../index-ryv32myz.js";
|
|
24
25
|
import {
|
|
25
26
|
CliBuildSignatureSchema2,
|
|
26
27
|
cliManifestSigningPayload2,
|
|
@@ -43,7 +44,7 @@ import {
|
|
|
43
44
|
import {
|
|
44
45
|
writeFileAtomicSync2
|
|
45
46
|
} from "../index-07dcf2yn.js";
|
|
46
|
-
import"../index-
|
|
47
|
+
import"../index-3wm2xp2a.js";
|
|
47
48
|
import"../index-636mggad.js";
|
|
48
49
|
import {
|
|
49
50
|
argumentsDigest
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
withDefsDialect
|
|
5
5
|
} from "../../index-q6crhe1n.js";
|
|
6
6
|
import"../../index-fynr93w4.js";
|
|
7
|
+
import {
|
|
8
|
+
markJsonSchemaObjectGuards
|
|
9
|
+
} from "../../index-t5sjh517.js";
|
|
7
10
|
import {
|
|
8
11
|
withSignalDeadline
|
|
9
12
|
} from "../../index-9tqbxv5p.js";
|
|
@@ -856,8 +859,10 @@ function zodObjectFromJsonSchema(schema) {
|
|
|
856
859
|
if (!schema || Object.keys(schema).length === 0)
|
|
857
860
|
return z.looseObject({});
|
|
858
861
|
const parsed = z.fromJSONSchema(reconcileDefinitionKeyword(schema));
|
|
859
|
-
if (parsed instanceof z.ZodObject)
|
|
862
|
+
if (parsed instanceof z.ZodObject) {
|
|
863
|
+
markJsonSchemaObjectGuards(parsed);
|
|
860
864
|
return parsed;
|
|
865
|
+
}
|
|
861
866
|
return z.looseObject({});
|
|
862
867
|
}
|
|
863
868
|
function reconcileDefinitionKeyword(schema) {
|
|
@@ -9,7 +9,8 @@ import {
|
|
|
9
9
|
} from "../../index-0gxvns6s.js";
|
|
10
10
|
import {
|
|
11
11
|
coerceJsonArgs2
|
|
12
|
-
} from "../../index-
|
|
12
|
+
} from "../../index-cykxpxz5.js";
|
|
13
|
+
import"../../index-t5sjh517.js";
|
|
13
14
|
export {
|
|
14
15
|
AsyncOperationCancelResultSchema2 as AsyncOperationCancelResultSchema,
|
|
15
16
|
McpAnnotationsSchema2 as McpAnnotationsSchema,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import"../../index-fynr93w4.js";
|
|
2
|
-
import"../../index-
|
|
2
|
+
import"../../index-t5sjh517.js";
|
|
3
|
+
import"../../index-cykxpxz5.js";
|
|
3
4
|
import"../../index-ct75c3at.js";
|
|
4
5
|
import"../../index-q6crhe1n.js";
|
|
5
|
-
import"../../index-
|
|
6
|
-
import"../../index-
|
|
6
|
+
import"../../index-k4v2kq4q.js";
|
|
7
|
+
import"../../index-ryv32myz.js";
|
|
7
8
|
import {
|
|
8
9
|
createToolInvoker2
|
|
9
|
-
} from "../../index-
|
|
10
|
+
} from "../../index-kvvpw1kq.js";
|
|
10
11
|
export {
|
|
11
12
|
createToolInvoker2 as createToolInvoker
|
|
12
13
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import"../../index-ct75c3at.js";
|
|
2
2
|
import"../../index-fynr93w4.js";
|
|
3
|
-
import"../../index-
|
|
3
|
+
import"../../index-t5sjh517.js";
|
|
4
|
+
import"../../index-cykxpxz5.js";
|
|
4
5
|
import"../../index-q6crhe1n.js";
|
|
5
|
-
import"../../index-
|
|
6
|
-
import"../../index-
|
|
6
|
+
import"../../index-k4v2kq4q.js";
|
|
7
|
+
import"../../index-ryv32myz.js";
|
|
7
8
|
import {
|
|
8
9
|
RESOURCE_MIME_TYPE2,
|
|
9
10
|
EXT_APPS_BUNDLE_PLACEHOLDER2,
|
|
@@ -19,8 +20,8 @@ import {
|
|
|
19
20
|
createMcpHttpRoute2,
|
|
20
21
|
createStdioMcpServer2,
|
|
21
22
|
bindStdioProcessSignals2
|
|
22
|
-
} from "../../index-
|
|
23
|
-
import"../../index-
|
|
23
|
+
} from "../../index-x5xs71dw.js";
|
|
24
|
+
import"../../index-3wm2xp2a.js";
|
|
24
25
|
import"../../index-636mggad.js";
|
|
25
26
|
export {
|
|
26
27
|
EXT_APPS_BUNDLE_PLACEHOLDER2 as EXT_APPS_BUNDLE_PLACEHOLDER,
|
|
@@ -7,9 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
normalizeError2
|
|
9
9
|
} from "../index-fynr93w4.js";
|
|
10
|
+
import"../index-t5sjh517.js";
|
|
10
11
|
import {
|
|
11
12
|
coerceJsonArgs2
|
|
12
|
-
} from "../index-
|
|
13
|
+
} from "../index-cykxpxz5.js";
|
|
13
14
|
import"../index-ct75c3at.js";
|
|
14
15
|
import {
|
|
15
16
|
assertToolName,
|
|
@@ -22,15 +23,15 @@ import {
|
|
|
22
23
|
import {
|
|
23
24
|
ToolExecutionControlError2,
|
|
24
25
|
isToolExecutionControlError2
|
|
25
|
-
} from "../index-
|
|
26
|
+
} from "../index-k4v2kq4q.js";
|
|
26
27
|
import {
|
|
27
28
|
collectTools2
|
|
28
|
-
} from "../index-
|
|
29
|
+
} from "../index-ryv32myz.js";
|
|
29
30
|
import {
|
|
30
31
|
mountAgent2,
|
|
31
32
|
describeToolCatalog2,
|
|
32
33
|
buildToolManifest2
|
|
33
|
-
} from "../index-
|
|
34
|
+
} from "../index-68y3n9j3.js";
|
|
34
35
|
import"../index-m38ej7e5.js";
|
|
35
36
|
import {
|
|
36
37
|
ALL_TRANSPORTS2,
|
|
@@ -57,7 +58,7 @@ import {
|
|
|
57
58
|
createMcpHttpRoute2,
|
|
58
59
|
createStdioMcpServer2,
|
|
59
60
|
bindStdioProcessSignals2
|
|
60
|
-
} from "../index-
|
|
61
|
+
} from "../index-x5xs71dw.js";
|
|
61
62
|
import {
|
|
62
63
|
AsyncOperationCancelResultSchema2,
|
|
63
64
|
createAsyncOperationSnapshotSchema2,
|
|
@@ -71,7 +72,7 @@ import {
|
|
|
71
72
|
WaitTimeoutError,
|
|
72
73
|
runWaitOperation,
|
|
73
74
|
createCli2
|
|
74
|
-
} from "../index-
|
|
75
|
+
} from "../index-05s01c94.js";
|
|
75
76
|
import {
|
|
76
77
|
ManagedFilePathSchema2,
|
|
77
78
|
ManagedFileRefSchema2
|
|
@@ -95,7 +96,7 @@ import {
|
|
|
95
96
|
import"../index-1bx1xv1k.js";
|
|
96
97
|
import {
|
|
97
98
|
collectToolSurface
|
|
98
|
-
} from "../index-
|
|
99
|
+
} from "../index-3wm2xp2a.js";
|
|
99
100
|
import {
|
|
100
101
|
defineRuntimeTool2,
|
|
101
102
|
createRuntimeToolFactory2
|
|
@@ -105,7 +106,7 @@ import {
|
|
|
105
106
|
} from "../index-yk4g8805.js";
|
|
106
107
|
import {
|
|
107
108
|
createToolInvoker2
|
|
108
|
-
} from "../index-
|
|
109
|
+
} from "../index-kvvpw1kq.js";
|
|
109
110
|
import {
|
|
110
111
|
getTraceId2
|
|
111
112
|
} from "../index-y3nemndz.js";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./index-fynr93w4.js";
|
|
4
4
|
import {
|
|
5
5
|
coerceJsonArgs2
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-cykxpxz5.js";
|
|
7
7
|
import {
|
|
8
8
|
jsonSchemaFields
|
|
9
9
|
} from "./index-ct75c3at.js";
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
toolResultFromError,
|
|
17
17
|
toolErrorFromResult
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-k4v2kq4q.js";
|
|
19
19
|
import {
|
|
20
20
|
createToolRunner,
|
|
21
21
|
formatToolError
|
|
22
|
-
} from "./index-
|
|
22
|
+
} from "./index-ryv32myz.js";
|
|
23
23
|
import {
|
|
24
24
|
fetchGuarded,
|
|
25
25
|
readCapped
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
} from "./index-eemvahkc.js";
|
|
33
33
|
import {
|
|
34
34
|
collectToolSurface
|
|
35
|
-
} from "./index-
|
|
35
|
+
} from "./index-3wm2xp2a.js";
|
|
36
36
|
import {
|
|
37
37
|
formatZodError2
|
|
38
38
|
} from "./index-1eeqpadm.js";
|
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
toolResultFromError,
|
|
3
3
|
toolCauseFromResult,
|
|
4
4
|
isToolExecutionControlError2
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-k4v2kq4q.js";
|
|
6
6
|
import {
|
|
7
7
|
createToolRunner,
|
|
8
8
|
formatToolError
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-ryv32myz.js";
|
|
10
10
|
import {
|
|
11
11
|
AgentToolError2,
|
|
12
12
|
resolveToolDurability
|
|
13
13
|
} from "./index-c17xcx4k.js";
|
|
14
14
|
import {
|
|
15
15
|
collectToolSurface
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-3wm2xp2a.js";
|
|
17
17
|
import {
|
|
18
18
|
agentPresenterOf
|
|
19
19
|
} from "./index-636mggad.js";
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
jsonSchemaObjectCoercionMembers
|
|
3
|
+
} from "./index-t5sjh517.js";
|
|
1
4
|
import {
|
|
2
5
|
safeJsonParse
|
|
3
6
|
} from "./index-zsarb5xp.js";
|
|
@@ -76,6 +79,10 @@ function coerceValue(value, schema, path) {
|
|
|
76
79
|
if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault) {
|
|
77
80
|
return coerceValue(value, schema.unwrap(), path);
|
|
78
81
|
}
|
|
82
|
+
const guardedMembers = jsonSchemaObjectCoercionMembers(schema);
|
|
83
|
+
if (guardedMembers) {
|
|
84
|
+
return guardedMembers.reduce((current, member) => coerceValue(current, member, path), value);
|
|
85
|
+
}
|
|
79
86
|
let current = value;
|
|
80
87
|
if (typeof current === "string" && needsJsonCoercion(schema)) {
|
|
81
88
|
if (acceptsRawString(schema)) {
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "./index-q6crhe1n.js";
|
|
4
4
|
import {
|
|
5
5
|
toolErrorFromResult
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-k4v2kq4q.js";
|
|
7
7
|
import {
|
|
8
8
|
collectTools2,
|
|
9
9
|
createToolRunner
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-ryv32myz.js";
|
|
11
11
|
import {
|
|
12
12
|
AppError2
|
|
13
13
|
} from "./index-j9gxbztg.js";
|
|
@@ -925,7 +925,8 @@ async function editFile(config, limits, input) {
|
|
|
925
925
|
});
|
|
926
926
|
}
|
|
927
927
|
const replacements = input.replaceAll ? count : 1;
|
|
928
|
-
const
|
|
928
|
+
const literalReplacement = () => input.newText;
|
|
929
|
+
const changed = input.replaceAll ? source.replaceAll(input.oldText, literalReplacement) : source.replace(input.oldText, literalReplacement);
|
|
929
930
|
const bytes = Buffer.byteLength(changed);
|
|
930
931
|
const resultSha256 = sha256(changed);
|
|
931
932
|
if (bytes > limits.maxWriteBytes) {
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// src/tools/schema/json-schema-origin.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var JSON_SCHEMA_OBJECT_GUARD = Symbol.for("stitchkit.tools.json-schema-object-guard-origin.v1");
|
|
4
|
+
function mark(schema) {
|
|
5
|
+
if (Reflect.get(schema, JSON_SCHEMA_OBJECT_GUARD) === true)
|
|
6
|
+
return;
|
|
7
|
+
const marked = Reflect.defineProperty(schema, JSON_SCHEMA_OBJECT_GUARD, {
|
|
8
|
+
configurable: false,
|
|
9
|
+
enumerable: false,
|
|
10
|
+
value: true,
|
|
11
|
+
writable: false
|
|
12
|
+
});
|
|
13
|
+
if (!marked)
|
|
14
|
+
throw new Error("Cannot mark a restored JSON Schema object guard");
|
|
15
|
+
}
|
|
16
|
+
function markObjectGuard(schema) {
|
|
17
|
+
if (schema.in instanceof z.ZodTransform && schema.out instanceof z.ZodObject && schema.in.def.checks?.length) {
|
|
18
|
+
mark(schema);
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
function markJsonSchemaObjectGuards(schema) {
|
|
24
|
+
const visited = new WeakMap;
|
|
25
|
+
const visit = (current) => {
|
|
26
|
+
const known = visited.get(current);
|
|
27
|
+
if (known !== undefined)
|
|
28
|
+
return known;
|
|
29
|
+
visited.set(current, false);
|
|
30
|
+
if (current instanceof z.ZodPipe) {
|
|
31
|
+
const guarded = markObjectGuard(current);
|
|
32
|
+
visit(current.out);
|
|
33
|
+
visited.set(current, guarded);
|
|
34
|
+
return guarded;
|
|
35
|
+
}
|
|
36
|
+
if (current instanceof z.ZodObject) {
|
|
37
|
+
for (const field of Object.values(current.shape))
|
|
38
|
+
visit(field);
|
|
39
|
+
const catchall = current.def.catchall;
|
|
40
|
+
if (catchall)
|
|
41
|
+
visit(catchall);
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (current instanceof z.ZodArray) {
|
|
45
|
+
visit(current.element);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
if (current instanceof z.ZodTuple) {
|
|
49
|
+
for (const item of current.def.items)
|
|
50
|
+
visit(item);
|
|
51
|
+
if (current.def.rest)
|
|
52
|
+
visit(current.def.rest);
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
if (current instanceof z.ZodRecord) {
|
|
56
|
+
visit(current.keyType);
|
|
57
|
+
visit(current.valueType);
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (current instanceof z.ZodUnion) {
|
|
61
|
+
for (const option of current.def.options)
|
|
62
|
+
visit(option);
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (current instanceof z.ZodIntersection) {
|
|
66
|
+
const leftGuarded = visit(current.def.left);
|
|
67
|
+
const rightGuarded = visit(current.def.right);
|
|
68
|
+
const guarded = leftGuarded || rightGuarded;
|
|
69
|
+
if (guarded)
|
|
70
|
+
mark(current);
|
|
71
|
+
visited.set(current, guarded);
|
|
72
|
+
return guarded;
|
|
73
|
+
}
|
|
74
|
+
if (current instanceof z.ZodOptional || current instanceof z.ZodExactOptional || current instanceof z.ZodNullable || current instanceof z.ZodDefault || current instanceof z.ZodPrefault || current instanceof z.ZodNonOptional || current instanceof z.ZodCatch || current instanceof z.ZodReadonly || current instanceof z.ZodLazy) {
|
|
75
|
+
const guarded = visit(current.unwrap());
|
|
76
|
+
if (guarded)
|
|
77
|
+
mark(current);
|
|
78
|
+
visited.set(current, guarded);
|
|
79
|
+
return guarded;
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
};
|
|
83
|
+
visit(schema);
|
|
84
|
+
}
|
|
85
|
+
function jsonSchemaObjectCoercionMembers(schema) {
|
|
86
|
+
if (Reflect.get(schema, JSON_SCHEMA_OBJECT_GUARD) !== true)
|
|
87
|
+
return;
|
|
88
|
+
if (schema instanceof z.ZodPipe && schema.out instanceof z.ZodObject) {
|
|
89
|
+
return [schema.out];
|
|
90
|
+
}
|
|
91
|
+
if (schema instanceof z.ZodIntersection) {
|
|
92
|
+
return [schema.def.left, schema.def.right];
|
|
93
|
+
}
|
|
94
|
+
if (schema instanceof z.ZodOptional || schema instanceof z.ZodExactOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault || schema instanceof z.ZodPrefault || schema instanceof z.ZodNonOptional || schema instanceof z.ZodCatch || schema instanceof z.ZodReadonly || schema instanceof z.ZodLazy) {
|
|
95
|
+
return [schema.unwrap()];
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { markJsonSchemaObjectGuards, jsonSchemaObjectCoercionMembers };
|
|
@@ -13,15 +13,15 @@ import {
|
|
|
13
13
|
parseToolCallArguments,
|
|
14
14
|
toolResultFromError,
|
|
15
15
|
observed
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-k4v2kq4q.js";
|
|
17
17
|
import {
|
|
18
18
|
collectTools2,
|
|
19
19
|
createToolRunner,
|
|
20
20
|
formatToolError
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-ryv32myz.js";
|
|
22
22
|
import {
|
|
23
23
|
collectToolSurface
|
|
24
|
-
} from "./index-
|
|
24
|
+
} from "./index-3wm2xp2a.js";
|
|
25
25
|
import {
|
|
26
26
|
DEFAULT_CORS_ALLOW_HEADERS2,
|
|
27
27
|
DEFAULT_PROCESS_SIGNALS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAK,MAAM,KAAK,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAK,MAAM,KAAK,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAI7D,oEAAoE;AACpE,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,CAAC,EAAE,cAAc,KACrB,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtD,UAAU,cAAc;IACtB,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,EACD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,GAC9C,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,SAAS,CAQX;AAcD,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAElF,6EAA6E;AAC7E,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAIhF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACjC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,qBAAqB,EAC/C,SAAS,EAAE,0BAA0B,GACpC,qBAAqB,EAAE,CAczB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../../../src/tools/schema/coerce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../../../src/tools/schema/coerce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoLxB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Record which structural pipes came from the one foreign JSON Schema boundary.
|
|
4
|
+
* The walk runs once after `z.fromJSONSchema`; coercion later reads only this
|
|
5
|
+
* provenance and never guesses from a transform's public shape or metadata.
|
|
6
|
+
*/
|
|
7
|
+
export declare function markJsonSchemaObjectGuards(schema: z.core.$ZodType): void;
|
|
8
|
+
/**
|
|
9
|
+
* Schemas that can guide coercion at a proven foreign object boundary.
|
|
10
|
+
* Intersections need both branches: one carries the key guard, while another
|
|
11
|
+
* can carry nested object fields that also need recursive coercion.
|
|
12
|
+
*/
|
|
13
|
+
export declare function jsonSchemaObjectCoercionMembers(schema: z.core.$ZodType): readonly z.core.$ZodType[] | undefined;
|
|
14
|
+
//# sourceMappingURL=json-schema-origin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema-origin.d.ts","sourceRoot":"","sources":["../../../src/tools/schema/json-schema-origin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAiExE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GACtB,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAsBxC"}
|
|
@@ -21,7 +21,7 @@ artifact store is supplied, `read_output`.
|
|
|
21
21
|
|
|
22
22
|
| Export | Kind | Summary |
|
|
23
23
|
|--------|------|---------|
|
|
24
|
-
| `createAgentCodingTools` | function | construct direct host-authorized bounded file, listing, glob, search, exact-snippet edit, shell and artifact runtime-tool definitions; every ordinary refusal is a typed code with an instructive `hint`, and filesystem operations use Linux `/proc/self/fd` or the packaged macOS Node-API backend and otherwise fail closed |
|
|
24
|
+
| `createAgentCodingTools` | function | construct direct host-authorized bounded file, listing, glob, search, exact-snippet edit, shell and artifact runtime-tool definitions; `edit_file` inserts `newText` literally in both single and `replaceAll` modes; every ordinary refusal is a typed code with an instructive `hint`, and filesystem operations use Linux `/proc/self/fd` or the packaged macOS Node-API backend and otherwise fail closed |
|
|
25
25
|
| `AGENT_CODING_TOOL_NAMES` | const | the mounted tool names — `read_file`, `write_file`, `edit_file`, `list_directory`, `glob`, `search_files`, `run_command`, `read_output` |
|
|
26
26
|
| `AgentCodingToolDefinition` | _type_ | peer-free structural direct-tool shape accepted by the canonical runtime-tool surface |
|
|
27
27
|
| `AgentCodingToolConfig` | _type_ | absolute root, required operation authorization, optional async/sync `authorizePath({ path })` shared by direct file effects and discovery, finite executable alias map, exact child environment and optional limits |
|
package/llms/agent-runtime.txt
CHANGED
|
@@ -322,8 +322,9 @@ includes the exact workspace-relative `recoveryPath`; an absolute path outside t
|
|
|
322
322
|
suggested replacement. Applying the suggestion still passes the same descriptor-relative
|
|
323
323
|
containment and symlink checks.
|
|
324
324
|
|
|
325
|
-
`edit_file` replaces one exact snippet. `
|
|
326
|
-
|
|
325
|
+
`edit_file` replaces one exact snippet. It inserts `newText` literally in both single and
|
|
326
|
+
`replaceAll` modes, including JavaScript replacement tokens such as `$$`, `$&`, `` $` `` and `$'`.
|
|
327
|
+
`oldText` is itself the freshness guard for the region it changes, so the digest is the optional `expectedSha256` and an edit is one call; pass the digest
|
|
327
328
|
`read_file` returned when you want the whole-file guarantee, and read the `sha256` it returns to
|
|
328
329
|
chain the next edit without re-reading. The read, the occurrence count and the construction of the
|
|
329
330
|
new content all happen inside one per-target lock, so two concurrent edits of different snippets in
|
package/llms/cli.2.txt
CHANGED
|
@@ -269,7 +269,7 @@ SDK nor the `ai` peer.
|
|
|
269
269
|
| `parseCliArgs` | function | argv → typed tool args against a schema (advanced) |
|
|
270
270
|
| `routeCliArgv` | function | select the command out of argv without duplicating the global-option grammar (advanced) |
|
|
271
271
|
| `extractCliGlobalOptions` | function | lift the application's own global options out of argv before routing (advanced) |
|
|
272
|
-
| `coerceJsonArgs` | function | the second half of `parseCliArgs` — parse array/object values a consumer sends itself, without the `stitchkit/tools` barrel |
|
|
272
|
+
| `coerceJsonArgs` | function | the second half of `parseCliArgs` — parse array/object values a consumer sends itself, including discovered MCP object guards restored from JSON Schema, without the `stitchkit/tools` barrel |
|
|
273
273
|
| `CliArgumentError` | class | the refusal `parseCliArgs` and the view flags raise; a CLI reports it and exits `2` |
|
|
274
274
|
| `renderCliView` | function | compute an aggregate over a result (`--count-by`, `--sum`, `--top`, `--table`) — [guide](../guide/cli.md#aggregate-views) |
|
|
275
275
|
| `createCliProfileStore` | function | named `0600` credential profiles resolved by name, with the never-substitute rule built in — [guide](../guide/cli.md#named-profiles) |
|
package/llms/cli.txt
CHANGED
|
@@ -244,12 +244,16 @@ string, the schema says what it should be:
|
|
|
244
244
|
| `z.enum([...])` | `--size large` |
|
|
245
245
|
| `z.array(z.string())`| `--tag a --tag b` → `["a","b"]` |
|
|
246
246
|
| `z.object({...})` | `--opts '{"k":"v"}'` (JSON) or `--opts.k v` |
|
|
247
|
+
| `z.record(z.string(), z.unknown())` | `--data '{"code":"007"}'` (JSON) |
|
|
247
248
|
| `.optional()` / `.default()` | not required |
|
|
248
249
|
|
|
249
250
|
Primitive literals use the same coercion through optional, nullable and default wrappers and as
|
|
250
251
|
array elements. A literal set whose members have different primitive types stays lexical because
|
|
251
252
|
argv has no type tag: for `z.literal([7, '007'])`, `--value 007` remains the string `"007"` rather
|
|
252
253
|
than being guessed as the number `7`. The unchanged Zod schema makes the final admission decision.
|
|
254
|
+
Object and record JSON keeps the same behavior when a CLI discovers a tool through MCP. Restored
|
|
255
|
+
`propertyNames`, `minProperties` and `maxProperties` constraints still run before dispatch; CLI
|
|
256
|
+
coercion does not execute application transforms.
|
|
253
257
|
|
|
254
258
|
After a bare boolean flag, the next token is its value when it is exactly
|
|
255
259
|
`true` or `false` — `--active false` turns it off, as it reads. Any other word
|
package/llms/tools.3.txt
CHANGED
|
@@ -279,7 +279,7 @@ Advanced building blocks — the shared machinery the mounts are built on.
|
|
|
279
279
|
| `TransportCounts` | _type_ | per-transport counts (`{ HTTP, MCP, AGENT, CLI }`) |
|
|
280
280
|
| `ToolSurfaceProjection` | _type_ | the one readonly `{ services?, runtimeTools? }` container shared by full, MCP-only and introspection surfaces (`buildToolManifest`, `listToolNames`, `summarizeTransports` take `ToolSurfaceProjection<RuntimeToolDefinition>`) |
|
|
281
281
|
| `ToolManifestConfig` | _type_ | mixed surface plus required model-facing `transport` and presentation options |
|
|
282
|
-
| `coerceJsonArgs` | function | coerce JSON-stringified array/object tool arguments; throws a `ZodError` naming the field when a union that keeps a string member receives a string that parses to an array its array member accepts |
|
|
282
|
+
| `coerceJsonArgs` | function | coerce JSON-stringified array/object tool arguments, including object guards restored from JSON Schema; arbitrary transform pipes stay untouched; throws a `ZodError` naming the field when a union that keeps a string member receives a string that parses to an array its array member accepts |
|
|
283
283
|
| `flattenToolJsonSchema` | function | project structurally identifiable discriminated unions into conservative object joins; scalar collisions retain provable types, object/array collisions retain structural alternatives, and field descriptions retain discriminator labels plus availability/requiredness hints; the projection never executes validation |
|
|
284
284
|
| `ToolPresentationSchema` | _type_ | immutable model-facing JSON Schema document shared by tool transports |
|
|
285
285
|
| `MountableTool` | _type_ | one operation with separate executable CLI argument schema and model-facing presentation schema |
|
package/llms-full.txt
CHANGED
|
@@ -5511,8 +5511,9 @@ includes the exact workspace-relative `recoveryPath`; an absolute path outside t
|
|
|
5511
5511
|
suggested replacement. Applying the suggestion still passes the same descriptor-relative
|
|
5512
5512
|
containment and symlink checks.
|
|
5513
5513
|
|
|
5514
|
-
`edit_file` replaces one exact snippet. `
|
|
5515
|
-
|
|
5514
|
+
`edit_file` replaces one exact snippet. It inserts `newText` literally in both single and
|
|
5515
|
+
`replaceAll` modes, including JavaScript replacement tokens such as `$$`, `$&`, `` $` `` and `$'`.
|
|
5516
|
+
`oldText` is itself the freshness guard for the region it changes, so the digest is the optional `expectedSha256` and an edit is one call; pass the digest
|
|
5516
5517
|
`read_file` returned when you want the whole-file guarantee, and read the `sha256` it returns to
|
|
5517
5518
|
chain the next edit without re-reading. The read, the occurrence count and the construction of the
|
|
5518
5519
|
new content all happen inside one per-target lock, so two concurrent edits of different snippets in
|
|
@@ -9647,12 +9648,16 @@ string, the schema says what it should be:
|
|
|
9647
9648
|
| `z.enum([...])` | `--size large` |
|
|
9648
9649
|
| `z.array(z.string())`| `--tag a --tag b` → `["a","b"]` |
|
|
9649
9650
|
| `z.object({...})` | `--opts '{"k":"v"}'` (JSON) or `--opts.k v` |
|
|
9651
|
+
| `z.record(z.string(), z.unknown())` | `--data '{"code":"007"}'` (JSON) |
|
|
9650
9652
|
| `.optional()` / `.default()` | not required |
|
|
9651
9653
|
|
|
9652
9654
|
Primitive literals use the same coercion through optional, nullable and default wrappers and as
|
|
9653
9655
|
array elements. A literal set whose members have different primitive types stays lexical because
|
|
9654
9656
|
argv has no type tag: for `z.literal([7, '007'])`, `--value 007` remains the string `"007"` rather
|
|
9655
9657
|
than being guessed as the number `7`. The unchanged Zod schema makes the final admission decision.
|
|
9658
|
+
Object and record JSON keeps the same behavior when a CLI discovers a tool through MCP. Restored
|
|
9659
|
+
`propertyNames`, `minProperties` and `maxProperties` constraints still run before dispatch; CLI
|
|
9660
|
+
coercion does not execute application transforms.
|
|
9656
9661
|
|
|
9657
9662
|
After a bare boolean flag, the next token is its value when it is exactly
|
|
9658
9663
|
`true` or `false` — `--active false` turns it off, as it reads. Any other word
|
|
@@ -21843,7 +21848,7 @@ artifact store is supplied, `read_output`.
|
|
|
21843
21848
|
|
|
21844
21849
|
| Export | Kind | Summary |
|
|
21845
21850
|
|--------|------|---------|
|
|
21846
|
-
| `createAgentCodingTools` | function | construct direct host-authorized bounded file, listing, glob, search, exact-snippet edit, shell and artifact runtime-tool definitions; every ordinary refusal is a typed code with an instructive `hint`, and filesystem operations use Linux `/proc/self/fd` or the packaged macOS Node-API backend and otherwise fail closed |
|
|
21851
|
+
| `createAgentCodingTools` | function | construct direct host-authorized bounded file, listing, glob, search, exact-snippet edit, shell and artifact runtime-tool definitions; `edit_file` inserts `newText` literally in both single and `replaceAll` modes; every ordinary refusal is a typed code with an instructive `hint`, and filesystem operations use Linux `/proc/self/fd` or the packaged macOS Node-API backend and otherwise fail closed |
|
|
21847
21852
|
| `AGENT_CODING_TOOL_NAMES` | const | the mounted tool names — `read_file`, `write_file`, `edit_file`, `list_directory`, `glob`, `search_files`, `run_command`, `read_output` |
|
|
21848
21853
|
| `AgentCodingToolDefinition` | _type_ | peer-free structural direct-tool shape accepted by the canonical runtime-tool surface |
|
|
21849
21854
|
| `AgentCodingToolConfig` | _type_ | absolute root, required operation authorization, optional async/sync `authorizePath({ path })` shared by direct file effects and discovery, finite executable alias map, exact child environment and optional limits |
|
|
@@ -22368,7 +22373,7 @@ Advanced building blocks — the shared machinery the mounts are built on.
|
|
|
22368
22373
|
| `TransportCounts` | _type_ | per-transport counts (`{ HTTP, MCP, AGENT, CLI }`) |
|
|
22369
22374
|
| `ToolSurfaceProjection` | _type_ | the one readonly `{ services?, runtimeTools? }` container shared by full, MCP-only and introspection surfaces (`buildToolManifest`, `listToolNames`, `summarizeTransports` take `ToolSurfaceProjection<RuntimeToolDefinition>`) |
|
|
22370
22375
|
| `ToolManifestConfig` | _type_ | mixed surface plus required model-facing `transport` and presentation options |
|
|
22371
|
-
| `coerceJsonArgs` | function | coerce JSON-stringified array/object tool arguments; throws a `ZodError` naming the field when a union that keeps a string member receives a string that parses to an array its array member accepts |
|
|
22376
|
+
| `coerceJsonArgs` | function | coerce JSON-stringified array/object tool arguments, including object guards restored from JSON Schema; arbitrary transform pipes stay untouched; throws a `ZodError` naming the field when a union that keeps a string member receives a string that parses to an array its array member accepts |
|
|
22372
22377
|
| `flattenToolJsonSchema` | function | project structurally identifiable discriminated unions into conservative object joins; scalar collisions retain provable types, object/array collisions retain structural alternatives, and field descriptions retain discriminator labels plus availability/requiredness hints; the projection never executes validation |
|
|
22373
22378
|
| `ToolPresentationSchema` | _type_ | immutable model-facing JSON Schema document shared by tool transports |
|
|
22374
22379
|
| `MountableTool` | _type_ | one operation with separate executable CLI argument schema and model-facing presentation schema |
|
|
@@ -22887,7 +22892,7 @@ SDK nor the `ai` peer.
|
|
|
22887
22892
|
| `parseCliArgs` | function | argv → typed tool args against a schema (advanced) |
|
|
22888
22893
|
| `routeCliArgv` | function | select the command out of argv without duplicating the global-option grammar (advanced) |
|
|
22889
22894
|
| `extractCliGlobalOptions` | function | lift the application's own global options out of argv before routing (advanced) |
|
|
22890
|
-
| `coerceJsonArgs` | function | the second half of `parseCliArgs` — parse array/object values a consumer sends itself, without the `stitchkit/tools` barrel |
|
|
22895
|
+
| `coerceJsonArgs` | function | the second half of `parseCliArgs` — parse array/object values a consumer sends itself, including discovered MCP object guards restored from JSON Schema, without the `stitchkit/tools` barrel |
|
|
22891
22896
|
| `CliArgumentError` | class | the refusal `parseCliArgs` and the view flags raise; a CLI reports it and exits `2` |
|
|
22892
22897
|
| `renderCliView` | function | compute an aggregate over a result (`--count-by`, `--sum`, `--top`, `--table`) — [guide](../guide/cli.md#aggregate-views) |
|
|
22893
22898
|
| `createCliProfileStore` | function | named `0600` credential profiles resolved by name, with the never-substitute rule built in — [guide](../guide/cli.md#named-profiles) |
|
package/llms.txt
CHANGED
|
@@ -18,17 +18,17 @@ Load the slice for each entrypoint your code imports — `import … from 'stitc
|
|
|
18
18
|
- **stitchkit/tools/contract**: [llms/tools-contract.txt](llms/tools-contract.txt) 0.2 KB
|
|
19
19
|
- **stitchkit/tools/invoker**: [llms/tools-invoker.txt](llms/tools-invoker.txt) 0.2 KB
|
|
20
20
|
- **stitchkit/tools/connections**: [llms/tools-connections.txt](llms/tools-connections.txt) 3.7 KB
|
|
21
|
-
- **stitchkit/cli**: [llms/cli.txt](llms/cli.txt)
|
|
21
|
+
- **stitchkit/cli**: [llms/cli.txt](llms/cli.txt) 43.1 KB → [llms/cli.2.txt](llms/cli.2.txt) 20.2 KB
|
|
22
22
|
- **stitchkit/cli/publish**: [llms/cli-publish.txt](llms/cli-publish.txt) 1.5 KB
|
|
23
23
|
- **stitchkit/remote**: [llms/remote.txt](llms/remote.txt) 1.0 KB
|
|
24
24
|
- **stitchkit/contract**: [llms/contract.txt](llms/contract.txt) 31.9 KB
|
|
25
25
|
- **stitchkit/primitives**: [llms/primitives.txt](llms/primitives.txt) 11.7 KB
|
|
26
26
|
- **stitchkit/server**: [llms/server.txt](llms/server.txt) 45.3 KB → [llms/server.2.txt](llms/server.2.txt) 14.6 KB → [llms/server.3.txt](llms/server.3.txt) 45.6 KB → [llms/server.4.txt](llms/server.4.txt) 38.3 KB → [llms/server.5.txt](llms/server.5.txt) 22.1 KB
|
|
27
27
|
- **stitchkit/observability**: [llms/observability.txt](llms/observability.txt) 45.9 KB
|
|
28
|
-
- **stitchkit/agent-runtime**: [llms/agent-runtime.txt](llms/agent-runtime.txt) 37.
|
|
28
|
+
- **stitchkit/agent-runtime**: [llms/agent-runtime.txt](llms/agent-runtime.txt) 37.1 KB → [llms/agent-runtime.2.txt](llms/agent-runtime.2.txt) 46.7 KB → [llms/agent-runtime.3.txt](llms/agent-runtime.3.txt) 34.7 KB
|
|
29
29
|
- **stitchkit/agent-runtime/testing**: [llms/agent-runtime-testing.txt](llms/agent-runtime-testing.txt) 2.6 KB
|
|
30
30
|
- **stitchkit/agent-runtime/harness**: [llms/agent-runtime-harness.txt](llms/agent-runtime-harness.txt) 11.0 KB
|
|
31
|
-
- **stitchkit/agent-runtime/coding-tools**: [llms/agent-runtime-coding-tools.txt](llms/agent-runtime-coding-tools.txt)
|
|
31
|
+
- **stitchkit/agent-runtime/coding-tools**: [llms/agent-runtime-coding-tools.txt](llms/agent-runtime-coding-tools.txt) 5.0 KB
|
|
32
32
|
- **stitchkit/agent-runtime/browser**: [llms/agent-runtime-browser.txt](llms/agent-runtime-browser.txt) 3.8 KB
|
|
33
33
|
- **stitchkit/agent-runtime/openrouter**: [llms/agent-runtime-openrouter.txt](llms/agent-runtime-openrouter.txt) 1.1 KB
|
|
34
34
|
- **stitchkit/agent-runtime/sqlite/bun**: [llms/agent-runtime-sqlite-bun.txt](llms/agent-runtime-sqlite-bun.txt) 1.8 KB
|
package/package.json
CHANGED