stitchkit 0.113.0 → 0.113.2
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 +14 -0
- package/dist/contract/errors.d.ts +1 -0
- package/dist/contract/errors.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/browser.js +2 -2
- package/dist/entrypoints/agent-runtime/coding-tools.js +4 -4
- package/dist/entrypoints/agent-runtime/harness.js +7 -7
- package/dist/entrypoints/agent-runtime/realtime.js +2 -2
- package/dist/entrypoints/agent-runtime/sandbox.js +4 -4
- package/dist/entrypoints/agent-runtime/sqlite/bun.js +6 -6
- package/dist/entrypoints/agent-runtime/sqlite/node.js +6 -6
- package/dist/entrypoints/agent-runtime/testing.js +6 -6
- package/dist/entrypoints/agent-runtime.js +13 -13
- package/dist/entrypoints/application/grammy.js +1 -1
- package/dist/entrypoints/application.js +2 -2
- package/dist/entrypoints/cli.js +10 -10
- package/dist/entrypoints/contract.js +2 -2
- package/dist/entrypoints/files.js +1 -1
- package/dist/entrypoints/index.js +5 -5
- package/dist/entrypoints/node.js +7 -7
- package/dist/entrypoints/observability.js +1 -1
- package/dist/entrypoints/realtime.js +3 -3
- package/dist/entrypoints/remote.js +1 -1
- package/dist/entrypoints/server.js +8 -8
- package/dist/entrypoints/testing.js +3 -3
- package/dist/entrypoints/tools/connections.js +8 -8
- package/dist/entrypoints/tools/contract.js +2 -2
- package/dist/entrypoints/tools/invoker.js +7 -7
- package/dist/entrypoints/tools/mcp.js +9 -9
- package/dist/entrypoints/tools.js +15 -15
- package/dist/{index-yjnmac9b.js → index-09dyy94r.js} +1 -1
- package/dist/{index-zm1k7hhv.js → index-0gbn42hr.js} +3 -3
- package/dist/{index-86sxnvpr.js → index-0pfk3c1p.js} +1 -1
- package/dist/{index-eddzs589.js → index-2s7wv547.js} +3 -3
- package/dist/{index-h1spd9kv.js → index-4e36ts8b.js} +1 -1
- package/dist/{index-556g5hsh.js → index-5gmrx6sc.js} +1 -1
- package/dist/{index-2qymcsq2.js → index-5zxe0f3h.js} +3 -3
- package/dist/{index-5jjda9a4.js → index-6ez1r4j2.js} +4 -4
- package/dist/{index-8asb62xn.js → index-7ysby53h.js} +1 -1
- package/dist/{index-ppf5nerp.js → index-8swt2h9y.js} +1 -1
- package/dist/{index-z4ga1fa1.js → index-a31p9ekx.js} +6 -6
- package/dist/{index-k8fbzggr.js → index-awbed0mk.js} +1 -1
- package/dist/{index-nk1mh535.js → index-bv51s0f4.js} +1 -1
- package/dist/{index-54q2mghq.js → index-cn7xenet.js} +5 -5
- package/dist/{index-epmnrnth.js → index-dsa676h8.js} +24 -7
- package/dist/{index-fynr93w4.js → index-e40rzw1m.js} +1 -1
- package/dist/{index-ykdcnq1f.js → index-grn4brx1.js} +1 -1
- package/dist/{index-4dh3hfs7.js → index-kvga921h.js} +4 -4
- package/dist/{index-j9gxbztg.js → index-pd578538.js} +1 -0
- package/dist/{index-dsxrcseb.js → index-ptjx84pr.js} +2 -2
- package/dist/{index-jy9wq8tp.js → index-rbzq0q16.js} +1 -1
- package/dist/{index-pvh3z03x.js → index-shg5xc9t.js} +1 -1
- package/dist/{index-xmgjtkvr.js → index-sps9s3aj.js} +1 -1
- package/dist/{index-jgwqc38k.js → index-vf9c59t3.js} +2 -2
- package/dist/{index-pzw0fpek.js → index-vgtzdykw.js} +1 -1
- package/dist/{index-gpbk7yse.js → index-xtc8k5n9.js} +172 -117
- package/dist/{index-k0zfcxf5.js → index-z8fnfj42.js} +1 -1
- package/dist/{index-gz9jf461.js → index-zbs0g0v2.js} +1 -1
- package/dist/tools/cli/command-shape.d.ts +4 -0
- package/dist/tools/cli/command-shape.d.ts.map +1 -0
- package/dist/tools/cli/format.d.ts.map +1 -1
- package/dist/tools/cli/help.d.ts.map +1 -1
- package/dist/tools/cli/invoke.d.ts +1 -1
- package/dist/tools/cli/invoke.d.ts.map +1 -1
- package/dist/tools/cli/managed-surface.d.ts +3 -2
- package/dist/tools/cli/managed-surface.d.ts.map +1 -1
- package/dist/tools/cli/policy.d.ts +2 -0
- package/dist/tools/cli/policy.d.ts.map +1 -1
- package/dist/tools/cli/run-managed.d.ts.map +1 -1
- package/dist/tools/cli/session.d.ts +0 -1
- package/dist/tools/cli/session.d.ts.map +1 -1
- package/dist/tools/cli/unavailable.d.ts +10 -0
- package/dist/tools/cli/unavailable.d.ts.map +1 -0
- package/dist/tools/connections/runtime.d.ts +1 -1
- package/dist/tools/schema/json-schema-origin.d.ts +6 -5
- package/dist/tools/schema/json-schema-origin.d.ts.map +1 -1
- package/llms/cli.2.txt +15 -4
- package/llms/cli.txt +31 -2
- package/llms/server.4.txt +1 -1
- package/llms/tools-connections.txt +1 -1
- package/llms-full.txt +48 -8
- package/llms.txt +2 -2
- package/package.json +1 -1
package/llms/cli.2.txt
CHANGED
|
@@ -149,9 +149,10 @@ One unconvertible schema does not take the connection down. The tool
|
|
|
149
149
|
is skipped and **named** (`onSkippedTool`, or a stderr line by default), so a
|
|
150
150
|
surface of two hundred tools is not lost to one.
|
|
151
151
|
|
|
152
|
-
**A discovered schema
|
|
153
|
-
coerced and parsed against the schema the server advertised
|
|
154
|
-
|
|
152
|
+
**A discovered schema leaves unions and string formats to its server.** The arguments are
|
|
153
|
+
coerced and parsed against the schema the server advertised. Reported structural failures
|
|
154
|
+
(a missing field, wrong scalar type, unknown key or enum value) and bounds stay local.
|
|
155
|
+
A union in that schema is not judged
|
|
155
156
|
here: a server's presentation may join a discriminated union into one object whose
|
|
156
157
|
shared field is an unlabelled `anyOf` (a stitchkit server with `flattenUnionInput`
|
|
157
158
|
does), and judged against that, a wrong value could only be refused with every branch
|
|
@@ -159,6 +160,16 @@ listed. The value goes to the server, which holds the original schema, and its r
|
|
|
159
160
|
names the one wrong field — `blocks.0.data.artifactId: expected string` rather than
|
|
160
161
|
`No union branch matched — branch 1 … and 6 more branches`.
|
|
161
162
|
|
|
163
|
+
String formats and patterns also lose the author's error messages in JSON Schema. A
|
|
164
|
+
restored `date-time`, email, UUID or regex check would substitute Zod's generic wording.
|
|
165
|
+
Those `invalid_format` refusals go to the remote instead: a bare `2026-10-12` reaches
|
|
166
|
+
the original datetime schema, whose answer can explain that a full UTC timestamp such
|
|
167
|
+
as `2026-10-12T00:00:00Z` is required. This also applies inside arrays, objects and
|
|
168
|
+
record keys. A mixed refusal retains only its reported local reasons; a record-key
|
|
169
|
+
wrapper stays local when it contains any of those reasons. A schema authored locally
|
|
170
|
+
keeps its complete verdict, including custom errors and refinements. No second parse
|
|
171
|
+
invents checks that the first parse did not reach. See [ADR 0272](../decisions/0272-a-restored-string-format-is-judged-by-its-server.md).
|
|
172
|
+
|
|
162
173
|
MCP connection limits follow the operation phase. `initialize`, the initialized
|
|
163
174
|
notification, `tools/list` and legacy endpoint discovery use `limits.discovery`;
|
|
164
175
|
`tools/call` uses `limits.call`. A mounted call's handshake still uses discovery
|
|
@@ -279,7 +290,7 @@ SDK nor the `ai` peer.
|
|
|
279
290
|
|
|
280
291
|
| Export | Kind | Summary |
|
|
281
292
|
|--------|------|---------|
|
|
282
|
-
| `createCli` | function | build and run a CLI from contracts — [guide](../guide/cli.md) |
|
|
293
|
+
| `createCli` | function | build and run a CLI from contracts; a runtime catalogue field conflicting with reserved/global argv options disables only that entry, retained in help with its reason; invocation returns `CLI_COMMAND_UNAVAILABLE` before side effects — [guide](../guide/cli.md#when-one-runtime-command-cannot-be-represented-in-argv) |
|
|
283
294
|
| `defineCliCommand` | function | define one Zod-typed CLI-only executable command with optional validated-result presentation/exit policy |
|
|
284
295
|
| `parseCliArgs` | function | argv → typed tool args against a schema; inline `--field:=JSON` assigns a whole JSON value, including null, while ordinary string flags remain lexical; named array options together with bare positionals require an explicit `positionals` policy (advanced) |
|
|
285
296
|
| `routeCliArgv` | function | select the command out of argv without duplicating the global-option grammar (advanced) |
|
package/llms/cli.txt
CHANGED
|
@@ -490,13 +490,42 @@ command name — validated against the declared schema, and kept out of every
|
|
|
490
490
|
operation's arguments: `handoff_read` above receives `{ handoffId: 'u' }` and
|
|
491
491
|
nothing else. The values reach `resolveAuth(globals)`, `context(auth, globals)`
|
|
492
492
|
and a native command's `globals`. An invalid value is an argument error naming
|
|
493
|
-
the flag
|
|
494
|
-
|
|
493
|
+
the flag. An application global that collides with a framework option is refused
|
|
494
|
+
at startup. Field collisions in authored commands are configuration errors;
|
|
495
|
+
runtime catalogue entries are isolated as described below. Past a bare
|
|
495
496
|
`--` every token is a literal, so a positional value that reads like a global
|
|
496
497
|
survives intact.
|
|
497
498
|
|
|
498
499
|
Both help levels list them under `Application options:`.
|
|
499
500
|
|
|
501
|
+
## When one runtime command cannot be represented in argv
|
|
502
|
+
|
|
503
|
+
A `runtimeTools` catalogue can change independently of the CLI application. An
|
|
504
|
+
entry whose input declares a framework option such as `json`, or a field shadowed
|
|
505
|
+
by an application global such as `caller`, cannot receive that field through argv.
|
|
506
|
+
Only that entry becomes unavailable. Other commands still run, and top-level,
|
|
507
|
+
filtered and command-specific help retain the entry and its full reason:
|
|
508
|
+
|
|
509
|
+
```text
|
|
510
|
+
inspect Inspect an operation [unavailable]
|
|
511
|
+
Unavailable: [stitchkit] CLI command "inspect" declares field(s) shadowed by application global options: caller
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
Calling it returns `CLI_COMMAND_UNAVAILABLE`, `retryable: false`, and the same
|
|
515
|
+
reason in `details.message` on stderr; the default exit code is 1. `--json`
|
|
516
|
+
compacts the error as usual; `exitCodes` and `errorHint` apply. The refusal precedes
|
|
517
|
+
command argument parsing, stdin, context, hooks and the handler; `--dry-run` cannot
|
|
518
|
+
turn it into success. A known unavailable `--wait` target returns the same refusal;
|
|
519
|
+
an unknown target keeps `NOT_FOUND`.
|
|
520
|
+
|
|
521
|
+
This isolates only reserved/global **field** conflicts in `runtimeTools`.
|
|
522
|
+
Native commands and contract-defined `services` still fail at startup for those
|
|
523
|
+
conflicts. Duplicate or reserved command names and invalid local aliases,
|
|
524
|
+
positionals or passthrough policies remain configuration errors for every entry.
|
|
525
|
+
`createCliInvoker` receives globals and command input separately and has no argv
|
|
526
|
+
projection, so its own `caller` or `json` input stays callable without renaming.
|
|
527
|
+
See [ADR 0273](../decisions/0273-a-runtime-cli-field-conflict-is-one-commands-unavailability.md).
|
|
528
|
+
|
|
500
529
|
## When the managed surface cannot resolve
|
|
501
530
|
|
|
502
531
|
A CLI whose commands come from a running server declares them with a factory,
|
package/llms/server.4.txt
CHANGED
|
@@ -553,7 +553,7 @@ core never models them (ADR 0002). But stitchkit itself emits a set of its own:
|
|
|
553
553
|
`FILE_INSPECTION_REJECTED`, `FILE_TOO_LARGE`, `FILE_EXISTS`,
|
|
554
554
|
`REALTIME_CONTRACT_VIOLATION`, `APPLICATION_NOT_ACCEPTING`, `NOT_IMPLEMENTED`,
|
|
555
555
|
`WAIT_TIMEOUT`,
|
|
556
|
-
`WAIT_FAILED`, `DOWNLOAD_NOT_FOUND`, `VIEW_HTTP_ERROR`,
|
|
556
|
+
`WAIT_FAILED`, `CLI_COMMAND_UNAVAILABLE`, `DOWNLOAD_NOT_FOUND`, `VIEW_HTTP_ERROR`,
|
|
557
557
|
`CONNECTION_TIMEOUT`, `CONNECTION_RESPONSE_TOO_LARGE`,
|
|
558
558
|
`CONNECTION_REQUEST_FAILED`, `UPSTREAM_TOOL_ERROR`,
|
|
559
559
|
`OPERATION_NOT_SUCCEEDED`, `STREAM_ITEM_INVALID`, `STREAM_FRAME_TOO_LARGE`,
|
|
@@ -27,7 +27,7 @@ and approval path.
|
|
|
27
27
|
| `ConnectionPhase` / `ConnectionOperation` / `ConnectionFailureContext` | _type_ | closed operation/phase vocabulary and measured read context for existing typed connection errors |
|
|
28
28
|
| `ConnectionTimeoutError` / `ConnectionResponseTooLargeError` | class | bounded operation refusal, with phase, operation and finite observed bytes; safe tool projection retains the raw cause locally |
|
|
29
29
|
| `defineOpenApiConnection` | function | declare one OpenAPI document (object, JSON text or JSON URL) as a tool surface |
|
|
30
|
-
| `mountConnections` | function | discover every connection and return readonly `RuntimeToolDefinition`s for `mountAgent`;
|
|
30
|
+
| `mountConnections` | function | discover every connection and return readonly `RuntimeToolDefinition`s for `mountAgent`; reported structural failures and bounds stay local, while unions and string-format/pattern refusals (including inside record keys) are judged by the server that owns the original schema (ADR 0266, ADR 0272) |
|
|
31
31
|
| `ConnectionAuthorizationRequiredError` | class | typed reauthorization signal raised on `401` with credentials resolved again on the next call |
|
|
32
32
|
| `ConnectionBudgetExceededError` | class | the mount would expose more foreign tools than its declared budget |
|
|
33
33
|
| `ConnectionRequestError` | class | any non-`2xx` connection response other than the reauthorization signal |
|
package/llms-full.txt
CHANGED
|
@@ -10289,13 +10289,42 @@ command name — validated against the declared schema, and kept out of every
|
|
|
10289
10289
|
operation's arguments: `handoff_read` above receives `{ handoffId: 'u' }` and
|
|
10290
10290
|
nothing else. The values reach `resolveAuth(globals)`, `context(auth, globals)`
|
|
10291
10291
|
and a native command's `globals`. An invalid value is an argument error naming
|
|
10292
|
-
the flag
|
|
10293
|
-
|
|
10292
|
+
the flag. An application global that collides with a framework option is refused
|
|
10293
|
+
at startup. Field collisions in authored commands are configuration errors;
|
|
10294
|
+
runtime catalogue entries are isolated as described below. Past a bare
|
|
10294
10295
|
`--` every token is a literal, so a positional value that reads like a global
|
|
10295
10296
|
survives intact.
|
|
10296
10297
|
|
|
10297
10298
|
Both help levels list them under `Application options:`.
|
|
10298
10299
|
|
|
10300
|
+
## When one runtime command cannot be represented in argv
|
|
10301
|
+
|
|
10302
|
+
A `runtimeTools` catalogue can change independently of the CLI application. An
|
|
10303
|
+
entry whose input declares a framework option such as `json`, or a field shadowed
|
|
10304
|
+
by an application global such as `caller`, cannot receive that field through argv.
|
|
10305
|
+
Only that entry becomes unavailable. Other commands still run, and top-level,
|
|
10306
|
+
filtered and command-specific help retain the entry and its full reason:
|
|
10307
|
+
|
|
10308
|
+
```text
|
|
10309
|
+
inspect Inspect an operation [unavailable]
|
|
10310
|
+
Unavailable: [stitchkit] CLI command "inspect" declares field(s) shadowed by application global options: caller
|
|
10311
|
+
```
|
|
10312
|
+
|
|
10313
|
+
Calling it returns `CLI_COMMAND_UNAVAILABLE`, `retryable: false`, and the same
|
|
10314
|
+
reason in `details.message` on stderr; the default exit code is 1. `--json`
|
|
10315
|
+
compacts the error as usual; `exitCodes` and `errorHint` apply. The refusal precedes
|
|
10316
|
+
command argument parsing, stdin, context, hooks and the handler; `--dry-run` cannot
|
|
10317
|
+
turn it into success. A known unavailable `--wait` target returns the same refusal;
|
|
10318
|
+
an unknown target keeps `NOT_FOUND`.
|
|
10319
|
+
|
|
10320
|
+
This isolates only reserved/global **field** conflicts in `runtimeTools`.
|
|
10321
|
+
Native commands and contract-defined `services` still fail at startup for those
|
|
10322
|
+
conflicts. Duplicate or reserved command names and invalid local aliases,
|
|
10323
|
+
positionals or passthrough policies remain configuration errors for every entry.
|
|
10324
|
+
`createCliInvoker` receives globals and command input separately and has no argv
|
|
10325
|
+
projection, so its own `caller` or `json` input stays callable without renaming.
|
|
10326
|
+
See [ADR 0273](../decisions/0273-a-runtime-cli-field-conflict-is-one-commands-unavailability.md).
|
|
10327
|
+
|
|
10299
10328
|
## When the managed surface cannot resolve
|
|
10300
10329
|
|
|
10301
10330
|
A CLI whose commands come from a running server declares them with a factory,
|
|
@@ -10900,9 +10929,10 @@ One unconvertible schema does not take the connection down. The tool
|
|
|
10900
10929
|
is skipped and **named** (`onSkippedTool`, or a stderr line by default), so a
|
|
10901
10930
|
surface of two hundred tools is not lost to one.
|
|
10902
10931
|
|
|
10903
|
-
**A discovered schema
|
|
10904
|
-
coerced and parsed against the schema the server advertised
|
|
10905
|
-
|
|
10932
|
+
**A discovered schema leaves unions and string formats to its server.** The arguments are
|
|
10933
|
+
coerced and parsed against the schema the server advertised. Reported structural failures
|
|
10934
|
+
(a missing field, wrong scalar type, unknown key or enum value) and bounds stay local.
|
|
10935
|
+
A union in that schema is not judged
|
|
10906
10936
|
here: a server's presentation may join a discriminated union into one object whose
|
|
10907
10937
|
shared field is an unlabelled `anyOf` (a stitchkit server with `flattenUnionInput`
|
|
10908
10938
|
does), and judged against that, a wrong value could only be refused with every branch
|
|
@@ -10910,6 +10940,16 @@ listed. The value goes to the server, which holds the original schema, and its r
|
|
|
10910
10940
|
names the one wrong field — `blocks.0.data.artifactId: expected string` rather than
|
|
10911
10941
|
`No union branch matched — branch 1 … and 6 more branches`.
|
|
10912
10942
|
|
|
10943
|
+
String formats and patterns also lose the author's error messages in JSON Schema. A
|
|
10944
|
+
restored `date-time`, email, UUID or regex check would substitute Zod's generic wording.
|
|
10945
|
+
Those `invalid_format` refusals go to the remote instead: a bare `2026-10-12` reaches
|
|
10946
|
+
the original datetime schema, whose answer can explain that a full UTC timestamp such
|
|
10947
|
+
as `2026-10-12T00:00:00Z` is required. This also applies inside arrays, objects and
|
|
10948
|
+
record keys. A mixed refusal retains only its reported local reasons; a record-key
|
|
10949
|
+
wrapper stays local when it contains any of those reasons. A schema authored locally
|
|
10950
|
+
keeps its complete verdict, including custom errors and refinements. No second parse
|
|
10951
|
+
invents checks that the first parse did not reach. See [ADR 0272](../decisions/0272-a-restored-string-format-is-judged-by-its-server.md).
|
|
10952
|
+
|
|
10913
10953
|
MCP connection limits follow the operation phase. `initialize`, the initialized
|
|
10914
10954
|
notification, `tools/list` and legacy endpoint discovery use `limits.discovery`;
|
|
10915
10955
|
`tools/call` uses `limits.call`. A mounted call's handshake still uses discovery
|
|
@@ -13057,7 +13097,7 @@ core never models them (ADR 0002). But stitchkit itself emits a set of its own:
|
|
|
13057
13097
|
`FILE_INSPECTION_REJECTED`, `FILE_TOO_LARGE`, `FILE_EXISTS`,
|
|
13058
13098
|
`REALTIME_CONTRACT_VIOLATION`, `APPLICATION_NOT_ACCEPTING`, `NOT_IMPLEMENTED`,
|
|
13059
13099
|
`WAIT_TIMEOUT`,
|
|
13060
|
-
`WAIT_FAILED`, `DOWNLOAD_NOT_FOUND`, `VIEW_HTTP_ERROR`,
|
|
13100
|
+
`WAIT_FAILED`, `CLI_COMMAND_UNAVAILABLE`, `DOWNLOAD_NOT_FOUND`, `VIEW_HTTP_ERROR`,
|
|
13061
13101
|
`CONNECTION_TIMEOUT`, `CONNECTION_RESPONSE_TOO_LARGE`,
|
|
13062
13102
|
`CONNECTION_REQUEST_FAILED`, `UPSTREAM_TOOL_ERROR`,
|
|
13063
13103
|
`OPERATION_NOT_SUCCEEDED`, `STREAM_ITEM_INVALID`, `STREAM_FRAME_TOO_LARGE`,
|
|
@@ -23103,7 +23143,7 @@ and approval path.
|
|
|
23103
23143
|
| `ConnectionPhase` / `ConnectionOperation` / `ConnectionFailureContext` | _type_ | closed operation/phase vocabulary and measured read context for existing typed connection errors |
|
|
23104
23144
|
| `ConnectionTimeoutError` / `ConnectionResponseTooLargeError` | class | bounded operation refusal, with phase, operation and finite observed bytes; safe tool projection retains the raw cause locally |
|
|
23105
23145
|
| `defineOpenApiConnection` | function | declare one OpenAPI document (object, JSON text or JSON URL) as a tool surface |
|
|
23106
|
-
| `mountConnections` | function | discover every connection and return readonly `RuntimeToolDefinition`s for `mountAgent`;
|
|
23146
|
+
| `mountConnections` | function | discover every connection and return readonly `RuntimeToolDefinition`s for `mountAgent`; reported structural failures and bounds stay local, while unions and string-format/pattern refusals (including inside record keys) are judged by the server that owns the original schema (ADR 0266, ADR 0272) |
|
|
23107
23147
|
| `ConnectionAuthorizationRequiredError` | class | typed reauthorization signal raised on `401` with credentials resolved again on the next call |
|
|
23108
23148
|
| `ConnectionBudgetExceededError` | class | the mount would expose more foreign tools than its declared budget |
|
|
23109
23149
|
| `ConnectionRequestError` | class | any non-`2xx` connection response other than the reauthorization signal |
|
|
@@ -23582,7 +23622,7 @@ SDK nor the `ai` peer.
|
|
|
23582
23622
|
|
|
23583
23623
|
| Export | Kind | Summary |
|
|
23584
23624
|
|--------|------|---------|
|
|
23585
|
-
| `createCli` | function | build and run a CLI from contracts — [guide](../guide/cli.md) |
|
|
23625
|
+
| `createCli` | function | build and run a CLI from contracts; a runtime catalogue field conflicting with reserved/global argv options disables only that entry, retained in help with its reason; invocation returns `CLI_COMMAND_UNAVAILABLE` before side effects — [guide](../guide/cli.md#when-one-runtime-command-cannot-be-represented-in-argv) |
|
|
23586
23626
|
| `defineCliCommand` | function | define one Zod-typed CLI-only executable command with optional validated-result presentation/exit policy |
|
|
23587
23627
|
| `parseCliArgs` | function | argv → typed tool args against a schema; inline `--field:=JSON` assigns a whole JSON value, including null, while ordinary string flags remain lexical; named array options together with bare positionals require an explicit `positionals` policy (advanced) |
|
|
23588
23628
|
| `routeCliArgv` | function | select the command out of argv without duplicating the global-option grammar (advanced) |
|
package/llms.txt
CHANGED
|
@@ -17,8 +17,8 @@ Load the slice for each entrypoint your code imports — `import … from 'stitc
|
|
|
17
17
|
- **stitchkit/tools/mcp**: [llms/tools-mcp.txt](llms/tools-mcp.txt) 1.8 KB
|
|
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
|
-
- **stitchkit/tools/connections**: [llms/tools-connections.txt](llms/tools-connections.txt) 3.
|
|
21
|
-
- **stitchkit/cli**: [llms/cli.txt](llms/cli.txt)
|
|
20
|
+
- **stitchkit/tools/connections**: [llms/tools-connections.txt](llms/tools-connections.txt) 3.9 KB
|
|
21
|
+
- **stitchkit/cli**: [llms/cli.txt](llms/cli.txt) 47.0 KB → [llms/cli.2.txt](llms/cli.2.txt) 22.5 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
|
package/package.json
CHANGED