stitchkit 0.91.1 → 0.92.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 +104 -0
- package/dist/agent-runtime-coding-tools.js +3 -3
- package/dist/agent-runtime-harness.js +6 -6
- package/dist/agent-runtime-sandbox.js +3 -3
- package/dist/agent-runtime.js +9 -9
- package/dist/cli.d.ts +6 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +371 -50
- package/dist/contract/define.d.ts +84 -2
- package/dist/contract/define.d.ts.map +1 -1
- package/dist/contract/index.d.ts +1 -1
- package/dist/contract/index.d.ts.map +1 -1
- package/dist/{index-qrbdq8jk.js → index-2c2bjw3s.js} +3 -3
- package/dist/{index-ya611vx3.js → index-7n145nbe.js} +183 -109
- package/dist/{index-bh70rk41.js → index-bx75zwt7.js} +3 -3
- package/dist/{index-709nh7z7.js → index-cxqhvq21.js} +2 -1
- package/dist/{index-13cjtmrw.js → index-e0znv5gn.js} +31 -8
- package/dist/{index-f4p4b8f6.js → index-e42wzzz5.js} +3 -3
- package/dist/{index-13e1k7v9.js → index-f477k430.js} +1 -1
- package/dist/{index-qjeyx5t2.js → index-fq77yfzc.js} +1 -1
- package/dist/{index-fenaekmk.js → index-h9etkkyk.js} +37 -27
- package/dist/{index-1qvdwnp2.js → index-mzvgxp0n.js} +2 -2
- package/dist/{index-zsqy3xfn.js → index-n0f51dfn.js} +4 -4
- package/dist/{index-bv7mytab.js → index-sr93cwf9.js} +1 -1
- package/dist/{index-vsbzgd7b.js → index-tmwcrptx.js} +1 -0
- package/dist/{index-b971qjes.js → index-v5573g1k.js} +1 -1
- package/dist/{index-8z9we758.js → index-vjpvjqpn.js} +1 -1
- package/dist/{index-bx6yq2m4.js → index-vk3kq9sb.js} +1 -1
- package/dist/{index-137jjs4v.js → index-yewwh1w4.js} +1 -1
- package/dist/{index-mqhjmadk.js → index-yn8remb1.js} +61 -57
- package/dist/index.js +4 -4
- package/dist/internal/atomic-file.d.ts +21 -0
- package/dist/internal/atomic-file.d.ts.map +1 -0
- package/dist/internal/errors.d.ts +10 -0
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/node.js +5 -5
- package/dist/observability/audit.d.ts +5 -1
- package/dist/observability/audit.d.ts.map +1 -1
- package/dist/observability/changes.d.ts.map +1 -1
- package/dist/observability/context.d.ts +27 -6
- package/dist/observability/context.d.ts.map +1 -1
- package/dist/observability/event.d.ts +34 -6
- package/dist/observability/event.d.ts.map +1 -1
- package/dist/observability/index.d.ts +2 -1
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +51 -7
- package/dist/observability/work.d.ts +55 -0
- package/dist/observability/work.d.ts.map +1 -0
- package/dist/remote.js +3 -3
- package/dist/server/context-contribution.d.ts.map +1 -1
- package/dist/server/index.js +7 -7
- package/dist/server/types.d.ts +20 -6
- package/dist/server/types.d.ts.map +1 -1
- package/dist/testing/surface-manifest.d.ts.map +1 -1
- package/dist/testing.js +9 -7
- package/dist/tool-invoker.js +6 -6
- package/dist/tools/cli-checkpoint.d.ts +24 -0
- package/dist/tools/cli-checkpoint.d.ts.map +1 -0
- package/dist/tools/cli-format.d.ts +10 -0
- package/dist/tools/cli-format.d.ts.map +1 -1
- package/dist/tools/cli-invoke.d.ts +118 -0
- package/dist/tools/cli-invoke.d.ts.map +1 -0
- package/dist/tools/cli-manifest.d.ts +6 -9
- package/dist/tools/cli-manifest.d.ts.map +1 -1
- package/dist/tools/cli-signature.d.ts +81 -0
- package/dist/tools/cli-signature.d.ts.map +1 -0
- package/dist/tools/cli-stream.d.ts +93 -0
- package/dist/tools/cli-stream.d.ts.map +1 -0
- package/dist/tools/cli-update.d.ts +62 -0
- package/dist/tools/cli-update.d.ts.map +1 -1
- package/dist/tools/cli.d.ts +4 -13
- package/dist/tools/cli.d.ts.map +1 -1
- package/dist/tools/connections/index.js +2 -2
- package/dist/tools/execute.d.ts +21 -0
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/mcp-progress.d.ts +46 -0
- package/dist/tools/mcp-progress.d.ts.map +1 -0
- package/dist/tools/mcp-round-policy.d.ts +25 -1
- package/dist/tools/mcp-round-policy.d.ts.map +1 -1
- package/dist/tools/mcp-round.d.ts +20 -1
- package/dist/tools/mcp-round.d.ts.map +1 -1
- package/dist/tools/mcp-trace.d.ts +9 -1
- package/dist/tools/mcp-trace.d.ts.map +1 -1
- package/dist/tools/mount-wait.d.ts.map +1 -1
- package/dist/tools.js +160 -51
- package/llms-full.txt +358 -8
- package/package.json +1 -1
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
export { createDimensionsProjector, createObservability, type DimensionsProjector, type DimensionsProjectorConfig, type HttpRequestCompletion, type HttpRequestObserver, type Observability, type ObservabilityConfig, type ObservabilityDrainBound, type ProjectedDimensions, type RequestEventSinkConfig, type RequestObservabilityConfig, type SinkDrop, type SinkDropReason, type SinkError, } from './audit.js';
|
|
10
10
|
export { type BoundedLoggerBounds, type BoundedLoggerOptions, createBoundedLogger, DEFAULT_REDACT_PATHS, } from './bounded-logger.js';
|
|
11
11
|
export { auditChanges } from './changes.js';
|
|
12
|
-
export { type DimensionCollision, getRequestContext, getTraceId, getUserId, type RequestContext, runWithRequestContext, type SetRequestDimensionsOptions, setRequestDimensions, setRequestEndpoint, setRequestError, setRequestUser, type WrapRequestContextOptions, wrapInRequestContext, } from './context.js';
|
|
12
|
+
export { type DimensionCollision, getRequestContext, getTraceId, getUserId, type RequestContext, type RequestContextKind, runWithRequestContext, type SetRequestDimensionsOptions, setRequestDimensions, setRequestEndpoint, setRequestError, setRequestUser, type WrapRequestContextOptions, wrapInRequestContext, } from './context.js';
|
|
13
13
|
export type { RequestEvent } from './event.js';
|
|
14
14
|
export { type JsonValue, measureSize, redact, type SanitizeOptions, type SizeMeasure, sanitizePayload, truncatePreview, } from './sanitize.js';
|
|
15
15
|
export { createSpooledSink, type SpooledSink, type SpooledSinkConfig, type SpoolRecovery, } from './spool.js';
|
|
16
16
|
export { type ObservabilityDrainReport, ObservabilityDrainReportSchema, type ObservabilitySinkStatus, ObservabilitySinkStatusSchema, type ObservabilityStatus, ObservabilityStatusSchema, } from './status.js';
|
|
17
17
|
export { childSpan, createTraceContext, formatTraceparent, parseTraceparent, resolvePropagationContext, resolveTraceContext, type TraceContext, } from './trace.js';
|
|
18
|
+
export { type RunUnitOfWorkOptions, runUnitOfWork } from './work.js';
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,KAAK,yBAAyB,EAC9B,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EACL,KAAK,SAAS,EACd,WAAW,EACX,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,KAAK,yBAAyB,EAC9B,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EACL,KAAK,SAAS,EACd,WAAW,EACX,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -23,11 +23,11 @@ import {
|
|
|
23
23
|
setRequestError,
|
|
24
24
|
setRequestUser,
|
|
25
25
|
wrapInRequestContext
|
|
26
|
-
} from "../index-
|
|
26
|
+
} from "../index-tmwcrptx.js";
|
|
27
27
|
import"../index-f9mb610r.js";
|
|
28
28
|
import {
|
|
29
29
|
recordedErrorMessage
|
|
30
|
-
} from "../index-
|
|
30
|
+
} from "../index-e0znv5gn.js";
|
|
31
31
|
import"../index-0a349c33.js";
|
|
32
32
|
import"../index-rxfy4cq7.js";
|
|
33
33
|
import"../index-6k1937bx.js";
|
|
@@ -141,8 +141,10 @@ function createObservability(config) {
|
|
|
141
141
|
}
|
|
142
142
|
return {
|
|
143
143
|
source: context.source,
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
kind: context.kind ?? "request",
|
|
145
|
+
...context.name !== undefined && { name: context.name },
|
|
146
|
+
...context.method !== undefined && { method: context.method },
|
|
147
|
+
...context.path !== undefined && { path: context.path },
|
|
146
148
|
...context.serviceName !== undefined && {
|
|
147
149
|
serviceName: context.serviceName
|
|
148
150
|
},
|
|
@@ -153,9 +155,9 @@ function createObservability(config) {
|
|
|
153
155
|
traceId: context.trace.traceId,
|
|
154
156
|
spanId: context.trace.spanId,
|
|
155
157
|
parentSpanId: context.trace.parentSpanId,
|
|
156
|
-
ok: !cancelled && statusCode < 400,
|
|
158
|
+
ok: !cancelled && (statusCode !== undefined ? statusCode < 400 : context.error === undefined),
|
|
157
159
|
...cancelled && { outcome: "cancelled" },
|
|
158
|
-
statusCode,
|
|
160
|
+
...statusCode !== undefined && { statusCode },
|
|
159
161
|
durationMs,
|
|
160
162
|
...!cancelled && {
|
|
161
163
|
errorCode: context.error?.code,
|
|
@@ -188,6 +190,7 @@ function createObservability(config) {
|
|
|
188
190
|
const toolPhase = mcp?.outcome === "input_required" ? "input-round" : "operation";
|
|
189
191
|
toolManager?.submit(() => ({
|
|
190
192
|
source: context.source,
|
|
193
|
+
kind: "request",
|
|
191
194
|
method: "TOOL",
|
|
192
195
|
httpMethod: endpoint.method,
|
|
193
196
|
path: `/${context.source}/${toolName}`,
|
|
@@ -372,9 +375,11 @@ function createBoundedLogger(options) {
|
|
|
372
375
|
var READ_METHODS = new Set(["GET", "HEAD", "OPTIONS"]);
|
|
373
376
|
var SECURITY_STATUSES = new Set([401, 403]);
|
|
374
377
|
function auditChanges(event) {
|
|
375
|
-
if (SECURITY_STATUSES.has(event.statusCode))
|
|
378
|
+
if (event.statusCode !== undefined && SECURITY_STATUSES.has(event.statusCode))
|
|
376
379
|
return true;
|
|
377
380
|
const verb = event.httpMethod ?? event.method;
|
|
381
|
+
if (verb === undefined)
|
|
382
|
+
return true;
|
|
378
383
|
return !READ_METHODS.has(verb.toUpperCase());
|
|
379
384
|
}
|
|
380
385
|
// src/observability/spool.ts
|
|
@@ -493,6 +498,44 @@ function code(error) {
|
|
|
493
498
|
return typeof value === "string" ? value : undefined;
|
|
494
499
|
}
|
|
495
500
|
var isMissing = (error) => code(error) === "ENOENT";
|
|
501
|
+
// src/observability/work.ts
|
|
502
|
+
async function runUnitOfWork(options, body) {
|
|
503
|
+
const context = {
|
|
504
|
+
trace: resolvePropagationContext(options.traceparent === undefined ? undefined : { traceparent: options.traceparent }, undefined),
|
|
505
|
+
source: options.source ?? "job",
|
|
506
|
+
kind: "job",
|
|
507
|
+
name: options.name,
|
|
508
|
+
startedAt: process.hrtime.bigint(),
|
|
509
|
+
...options.dimensions !== undefined && { dimensions: { ...options.dimensions } }
|
|
510
|
+
};
|
|
511
|
+
const startedAtMs = Date.now();
|
|
512
|
+
return runWithRequestContext(context, async () => {
|
|
513
|
+
try {
|
|
514
|
+
const value = await body();
|
|
515
|
+
complete(options.observability, context, startedAtMs);
|
|
516
|
+
return value;
|
|
517
|
+
} catch (error) {
|
|
518
|
+
context.error ??= {
|
|
519
|
+
...errorCodeOf(error) !== undefined && { code: errorCodeOf(error) },
|
|
520
|
+
message: error instanceof Error ? error.message : String(error)
|
|
521
|
+
};
|
|
522
|
+
complete(options.observability, context, startedAtMs);
|
|
523
|
+
throw error;
|
|
524
|
+
}
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
function errorCodeOf(error) {
|
|
528
|
+
if (typeof error !== "object" || error === null)
|
|
529
|
+
return;
|
|
530
|
+
const code2 = Reflect.get(error, "code");
|
|
531
|
+
return typeof code2 === "string" ? code2 : undefined;
|
|
532
|
+
}
|
|
533
|
+
function complete(observability, context, startedAtMs) {
|
|
534
|
+
observability?.request?.complete({
|
|
535
|
+
context,
|
|
536
|
+
durationMs: Date.now() - startedAtMs
|
|
537
|
+
});
|
|
538
|
+
}
|
|
496
539
|
export {
|
|
497
540
|
wrapInRequestContext,
|
|
498
541
|
truncatePreview,
|
|
@@ -502,6 +545,7 @@ export {
|
|
|
502
545
|
setRequestDimensions,
|
|
503
546
|
sanitizePayload,
|
|
504
547
|
runWithRequestContext,
|
|
548
|
+
runUnitOfWork,
|
|
505
549
|
resolveTraceContext,
|
|
506
550
|
resolvePropagationContext,
|
|
507
551
|
redact,
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A unit of work that is not a request.
|
|
3
|
+
*
|
|
4
|
+
* An agent loop started fire-and-forget, a scheduled broadcast, a scenario
|
|
5
|
+
* engine tick: each has a beginning, a duration and an outcome, and none of
|
|
6
|
+
* them arrived over a transport. The context they run in was shaped for
|
|
7
|
+
* requests and required `method` and `path`, so work without a transport either
|
|
8
|
+
* invented them — `method: 'AGENT'`, which is not a verb but the absence of one
|
|
9
|
+
* written into the field for verbs — or ran with no context at all, in which
|
|
10
|
+
* case `setRequestDimensions` was a silent no-op and nothing it did was
|
|
11
|
+
* audited.
|
|
12
|
+
*
|
|
13
|
+
* `runUnitOfWork` gives that work the same treatment a request gets: one
|
|
14
|
+
* context, one completion record, written by the same hand into the same sink.
|
|
15
|
+
* What it deliberately does NOT do is fill the transport fields. A job has no
|
|
16
|
+
* verb, no path and no HTTP status, and the honest record of that is their
|
|
17
|
+
* absence — moving the invention from the consumer into the framework would
|
|
18
|
+
* have been the same lie with a better address.
|
|
19
|
+
*/
|
|
20
|
+
import type { TransportSource } from '../contract/index.js';
|
|
21
|
+
import type { Observability } from './audit.js';
|
|
22
|
+
export interface RunUnitOfWorkOptions {
|
|
23
|
+
/**
|
|
24
|
+
* What the work is — `agent-loop`, `broadcast-send`, `scenario-tick`. A
|
|
25
|
+
* request is named by its method and path; this is how a job is named, and
|
|
26
|
+
* it is the field a dashboard groups by.
|
|
27
|
+
*/
|
|
28
|
+
name: string;
|
|
29
|
+
/**
|
|
30
|
+
* Where the completion record goes — the value `createObservability`
|
|
31
|
+
* returned. Without it the work still gets a context (so trace ids, dimensions
|
|
32
|
+
* and the bounded logger behave), and nothing is recorded.
|
|
33
|
+
*/
|
|
34
|
+
observability?: Observability;
|
|
35
|
+
/**
|
|
36
|
+
* Surface attribution. Defaults to `job`, which is not a transport and does
|
|
37
|
+
* not claim to be one; pass `agent` or a name of your own where the work
|
|
38
|
+
* belongs to a surface you already report under.
|
|
39
|
+
*/
|
|
40
|
+
source?: TransportSource;
|
|
41
|
+
/** Continue an existing trace — the `traceparent` of whatever scheduled this. */
|
|
42
|
+
traceparent?: string;
|
|
43
|
+
/** Domain dimensions known before the work starts; `setRequestDimensions` adds more. */
|
|
44
|
+
dimensions?: Record<string, string>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Run `body` as one audited unit of work.
|
|
48
|
+
*
|
|
49
|
+
* The record is written whether the body returns or throws, and the throw is
|
|
50
|
+
* re-thrown: observing work must not change what the work does. A failure is
|
|
51
|
+
* recorded as `ok: false` with the error's own code when it has one, which is
|
|
52
|
+
* the same thing a failed request's row says, minus the status a job never had.
|
|
53
|
+
*/
|
|
54
|
+
export declare function runUnitOfWork<T>(options: RunUnitOfWorkOptions, body: () => Promise<T>): Promise<T>;
|
|
55
|
+
//# sourceMappingURL=work.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/observability/work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CA8BZ"}
|
package/dist/remote.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createClient
|
|
3
|
-
} from "./index-
|
|
4
|
-
import"./index-
|
|
3
|
+
} from "./index-yewwh1w4.js";
|
|
4
|
+
import"./index-v5573g1k.js";
|
|
5
5
|
import {
|
|
6
6
|
ApiError
|
|
7
7
|
} from "./index-3xwxfj4z.js";
|
|
8
|
-
import"./index-
|
|
8
|
+
import"./index-e0znv5gn.js";
|
|
9
9
|
import {
|
|
10
10
|
mergeMeta,
|
|
11
11
|
resolveRouteParamsSchema
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-contribution.d.ts","sourceRoot":"","sources":["../../src/server/context-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,kGAAkG;AAClG,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"context-contribution.d.ts","sourceRoot":"","sources":["../../src/server/context-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,kGAAkG;AAClG,eAAO,MAAM,6BAA6B,aAgBxC,CAAC;AA0BH;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuCzB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,IAAI,CAEN"}
|
package/dist/server/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
sseRoute,
|
|
14
14
|
streamingRoute,
|
|
15
15
|
webSocketLane
|
|
16
|
-
} from "../index-
|
|
16
|
+
} from "../index-n0f51dfn.js";
|
|
17
17
|
import"../index-y91ry9h2.js";
|
|
18
18
|
import {
|
|
19
19
|
withDeadline
|
|
@@ -25,13 +25,13 @@ import {
|
|
|
25
25
|
ShutdownStatusSchema,
|
|
26
26
|
createServerLifecycle
|
|
27
27
|
} from "../index-3z73fh2c.js";
|
|
28
|
-
import"../index-
|
|
28
|
+
import"../index-f477k430.js";
|
|
29
29
|
import"../index-2qzskm8h.js";
|
|
30
30
|
import {
|
|
31
31
|
inputIsQuery,
|
|
32
32
|
parseSSE,
|
|
33
33
|
streamSSE
|
|
34
|
-
} from "../index-
|
|
34
|
+
} from "../index-v5573g1k.js";
|
|
35
35
|
import {
|
|
36
36
|
composeAuthHooks,
|
|
37
37
|
createAuthHook,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
signJwt,
|
|
45
45
|
verifyJwt,
|
|
46
46
|
verifyPkce
|
|
47
|
-
} from "../index-
|
|
47
|
+
} from "../index-sr93cwf9.js";
|
|
48
48
|
import {
|
|
49
49
|
deriveCodeChallenge
|
|
50
50
|
} from "../index-hr4tzbwq.js";
|
|
@@ -61,14 +61,14 @@ import {
|
|
|
61
61
|
defineMultipartStream,
|
|
62
62
|
implement,
|
|
63
63
|
implementRegistry
|
|
64
|
-
} from "../index-
|
|
64
|
+
} from "../index-cxqhvq21.js";
|
|
65
65
|
import {
|
|
66
66
|
isWithinDir,
|
|
67
67
|
realPathWithinDir
|
|
68
68
|
} from "../index-sbdmyz75.js";
|
|
69
69
|
import {
|
|
70
70
|
getTraceId
|
|
71
|
-
} from "../index-
|
|
71
|
+
} from "../index-tmwcrptx.js";
|
|
72
72
|
import {
|
|
73
73
|
extractIp,
|
|
74
74
|
generateTraceId,
|
|
@@ -82,7 +82,7 @@ import {
|
|
|
82
82
|
formatZodError,
|
|
83
83
|
normalizeError,
|
|
84
84
|
zodIssues
|
|
85
|
-
} from "../index-
|
|
85
|
+
} from "../index-e0znv5gn.js";
|
|
86
86
|
import {
|
|
87
87
|
DEFAULT_CONTRACT_STREAM_FRAME_BYTES,
|
|
88
88
|
joinRoutePath,
|
package/dist/server/types.d.ts
CHANGED
|
@@ -12,16 +12,30 @@ type InferParams<E> = Prop<E, 'params'> extends ZodType<infer P> ? P : E extends
|
|
|
12
12
|
} ? keyof PathParams<TPath> extends never ? undefined : PathParams<TPath> : undefined;
|
|
13
13
|
type InferInput<E> = Prop<E, 'input'> extends ZodType<infer I> ? I : undefined;
|
|
14
14
|
type InferOutput<E> = Prop<E, 'output'> extends ZodType<infer O> ? O : never;
|
|
15
|
-
type
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}[];
|
|
20
|
-
} ? {
|
|
15
|
+
type McpInputOf<R> = R extends readonly {
|
|
16
|
+
key: string;
|
|
17
|
+
schema: ZodType;
|
|
18
|
+
}[] ? {
|
|
21
19
|
mcpInput?: {
|
|
22
20
|
[Request in R[number] as Request['key']]: Request['schema'] extends ZodType<infer I> ? I : never;
|
|
23
21
|
};
|
|
24
22
|
} : unknown;
|
|
23
|
+
/**
|
|
24
|
+
* `ctx.mcpInput`, from either form of the declaration.
|
|
25
|
+
*
|
|
26
|
+
* A resolver is a function, so the first branch cannot see through it — and a
|
|
27
|
+
* dynamic tool losing its typed `mcpInput` would be a real cost, not a detail.
|
|
28
|
+
* The second branch reads the resolver's own return type instead, so a resolver
|
|
29
|
+
* declared to return a precise tuple types the handler exactly as a static list
|
|
30
|
+
* does. One that returns the wide `EndpointMcpInputRequired[]` types it as the
|
|
31
|
+
* wide record, which is the truth about what it promised.
|
|
32
|
+
*/
|
|
33
|
+
type InferMcpInput<E> = Prop<E, 'mcp'> extends {
|
|
34
|
+
inputRequired: infer R;
|
|
35
|
+
} ? R extends readonly {
|
|
36
|
+
key: string;
|
|
37
|
+
schema: ZodType;
|
|
38
|
+
}[] ? McpInputOf<R> : R extends (call: never) => infer P ? McpInputOf<Awaited<P>> : unknown : unknown;
|
|
25
39
|
/**
|
|
26
40
|
* What an endpoint's handler must return: the `Response` itself for a `raw`
|
|
27
41
|
* endpoint, the output type when there is an output schema, nothing otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACtE,KAAK,WAAW,CAAC,CAAC,IAChB,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GACtC,CAAC,GACD,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,KAAK,SAAS,MAAM,CAAA;CAAE,GAC5C,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,KAAK,GACnC,SAAS,GACT,UAAU,CAAC,KAAK,CAAC,GACnB,SAAS,CAAC;AAClB,KAAK,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC/E,KAAK,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7E,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-manifest.d.ts","sourceRoot":"","sources":["../../src/testing/surface-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAqB,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,KAAK,yBAAyB,EAI9B,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EAC1B,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"surface-manifest.d.ts","sourceRoot":"","sources":["../../src/testing/surface-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.js
CHANGED
|
@@ -28,19 +28,19 @@ import {
|
|
|
28
28
|
import {
|
|
29
29
|
createClient,
|
|
30
30
|
createClients
|
|
31
|
-
} from "./index-
|
|
31
|
+
} from "./index-yewwh1w4.js";
|
|
32
32
|
import {
|
|
33
33
|
RealtimeRequestDisconnectedError,
|
|
34
34
|
RealtimeRequestInvalidAcknowledgementError,
|
|
35
35
|
RealtimeRequestTimeoutError
|
|
36
36
|
} from "./index-2qzskm8h.js";
|
|
37
|
-
import"./index-
|
|
37
|
+
import"./index-v5573g1k.js";
|
|
38
38
|
import"./index-3xwxfj4z.js";
|
|
39
39
|
import {
|
|
40
40
|
compareCodepoints,
|
|
41
41
|
serializeCanonicalJson
|
|
42
42
|
} from "./index-0j3vcp5m.js";
|
|
43
|
-
import"./index-
|
|
43
|
+
import"./index-e0znv5gn.js";
|
|
44
44
|
import {
|
|
45
45
|
joinRoutePath
|
|
46
46
|
} from "./index-0a349c33.js";
|
|
@@ -50,8 +50,9 @@ import"./index-zcgf3gqf.js";
|
|
|
50
50
|
import {
|
|
51
51
|
mcpProjectionCandidate,
|
|
52
52
|
prepareProjectedMcpTools,
|
|
53
|
-
projectToolSurface
|
|
54
|
-
|
|
53
|
+
projectToolSurface,
|
|
54
|
+
staticInputRounds
|
|
55
|
+
} from "./index-h9etkkyk.js";
|
|
55
56
|
import {
|
|
56
57
|
toJsonSchema
|
|
57
58
|
} from "./index-cby4ar3v.js";
|
|
@@ -1597,12 +1598,13 @@ function operationFrom(kind, source) {
|
|
|
1597
1598
|
};
|
|
1598
1599
|
}
|
|
1599
1600
|
function operationFingerprint(source) {
|
|
1601
|
+
const declaredRounds = source.mcp ? staticInputRounds(source.mcp) : undefined;
|
|
1600
1602
|
const mcp = source.mcp ? {
|
|
1601
|
-
inputRequired:
|
|
1603
|
+
inputRequired: declaredRounds ? declaredRounds.map((request) => ({
|
|
1602
1604
|
key: request.key,
|
|
1603
1605
|
message: request.message,
|
|
1604
1606
|
schema: schemaDigest(request.schema, "input")
|
|
1605
|
-
}))
|
|
1607
|
+
})) : "resolved-per-call"
|
|
1606
1608
|
} : null;
|
|
1607
1609
|
return serializeSurfaceValue({
|
|
1608
1610
|
method: source.method,
|
package/dist/tool-invoker.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createToolInvoker
|
|
3
|
-
} from "./index-
|
|
4
|
-
import"./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
3
|
+
} from "./index-bx75zwt7.js";
|
|
4
|
+
import"./index-mzvgxp0n.js";
|
|
5
|
+
import"./index-yn8remb1.js";
|
|
6
|
+
import"./index-tmwcrptx.js";
|
|
7
7
|
import"./index-f9mb610r.js";
|
|
8
|
-
import"./index-
|
|
8
|
+
import"./index-e0znv5gn.js";
|
|
9
9
|
import"./index-0a349c33.js";
|
|
10
10
|
import"./index-rxfy4cq7.js";
|
|
11
11
|
import"./index-6k1937bx.js";
|
|
12
12
|
import"./index-zcgf3gqf.js";
|
|
13
13
|
import"./index-7zbps32p.js";
|
|
14
|
-
import"./index-
|
|
14
|
+
import"./index-h9etkkyk.js";
|
|
15
15
|
import"./index-cby4ar3v.js";
|
|
16
16
|
import"./index-2vtcmrj9.js";
|
|
17
17
|
import"./index-kzfs85xp.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** One recorded line: what it was, and what running it produced. */
|
|
2
|
+
export interface CliCheckpointEntry {
|
|
3
|
+
digest: string;
|
|
4
|
+
answer: unknown;
|
|
5
|
+
}
|
|
6
|
+
export interface CliCheckpoint {
|
|
7
|
+
entries: Record<string, CliCheckpointEntry>;
|
|
8
|
+
digestOf(line: {
|
|
9
|
+
command: string;
|
|
10
|
+
args: Record<string, unknown>;
|
|
11
|
+
}): string;
|
|
12
|
+
record(id: string, digest: string, answer: unknown): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Read a checkpoint, or start an empty one.
|
|
16
|
+
*
|
|
17
|
+
* A file that cannot be parsed starts an empty checkpoint rather than throwing:
|
|
18
|
+
* the alternative is a batch that refuses to run because of a corrupted record
|
|
19
|
+
* of a previous run, which is worse than doing the work again.
|
|
20
|
+
*/
|
|
21
|
+
export declare function readCliCheckpoint(path: string): CliCheckpoint;
|
|
22
|
+
/** Persist the checkpoint atomically. */
|
|
23
|
+
export declare function writeCliCheckpoint(path: string, checkpoint: CliCheckpoint): void;
|
|
24
|
+
//# sourceMappingURL=cli-checkpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-checkpoint.d.ts","sourceRoot":"","sources":["../../src/tools/cli-checkpoint.ts"],"names":[],"mappings":"AAmBA,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM,CAAC;IAC3E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3D;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAgB7D;AAED,yCAAyC;AACzC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI,CAMhF"}
|
|
@@ -35,5 +35,15 @@ export interface EmitOptions {
|
|
|
35
35
|
* on stdout (pretty by default, compact with `--json`), exit `0`. Failure → the
|
|
36
36
|
* error JSON on stderr, exit per the code map (unknown code → `1`).
|
|
37
37
|
*/
|
|
38
|
+
/**
|
|
39
|
+
* The exit code a result earns, without writing anything.
|
|
40
|
+
*
|
|
41
|
+
* Extracted so a caller that runs an operation in process — a stdin loop, a
|
|
42
|
+
* resumable batch — gets the SAME code the printed path gives, from the same
|
|
43
|
+
* table, rather than re-deriving one from the error code and drifting. It was
|
|
44
|
+
* computed inside `emitResult`, which meant the only way to learn it was to
|
|
45
|
+
* print.
|
|
46
|
+
*/
|
|
47
|
+
export declare function cliExitCode(result: ToolResult, exitCodes?: ExitCodeMap): number;
|
|
38
48
|
export declare function emitResult(result: ToolResult, writers: CliWriters, opts: EmitOptions): number;
|
|
39
49
|
//# sourceMappingURL=cli-format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-format.d.ts","sourceRoot":"","sources":["../../src/tools/cli-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGzD,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAWhC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,GAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"cli-format.d.ts","sourceRoot":"","sources":["../../src/tools/cli-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGzD,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAWhC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,CAY/E;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,GAChB,MAAM,CAeR"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Running one already-parsed operation, in this process.
|
|
3
|
+
*
|
|
4
|
+
* The most common way an agent drives a CLI is not one command — it is a
|
|
5
|
+
* stream: a JSON line per operation, an answer per line. The framework owned
|
|
6
|
+
* the parsing, the routing, the JSON mode, the exit codes and the error shape,
|
|
7
|
+
* and handed out no way to say "run this parsed call and give me its result".
|
|
8
|
+
* So a consumer's stream loop spawned the binary again per line: three
|
|
9
|
+
* conversions of the same data (arguments back into `--flag value` strings,
|
|
10
|
+
* nested objects through `JSON.stringify` into an argv slot, the result parsed
|
|
11
|
+
* back out of stdout text) plus a process start each time — measured at 0.15 s,
|
|
12
|
+
* which is thirty seconds for a two-hundred-line manifest before any work
|
|
13
|
+
* happens. The ban on nesting one stream inside another existed for the same
|
|
14
|
+
* reason and disappears with it.
|
|
15
|
+
*
|
|
16
|
+
* `createCliInvoker` compiles the managed surface once and executes against it.
|
|
17
|
+
* `createCli` is built on this same function, so the stream and the command
|
|
18
|
+
* line cannot answer differently: one surface, one runner, one exit table.
|
|
19
|
+
*
|
|
20
|
+
* Native commands (`config.commands`) are deliberately outside it. They write
|
|
21
|
+
* to stdout and stderr by construction — that is what they are — and an
|
|
22
|
+
* operation that prints is not an operation whose result can be returned.
|
|
23
|
+
*/
|
|
24
|
+
import type { ZodObject, z } from 'zod';
|
|
25
|
+
import type { ServiceDef, StitchLogger } from '../server/types.js';
|
|
26
|
+
import { type ExitCodeMap } from './cli-format.js';
|
|
27
|
+
import { type CliCommandPresentation, type CliPresentationPolicyConfig } from './cli-policy.js';
|
|
28
|
+
import { type ErrorHintFn, type ToolCallHooks, type ToolLifecycle, type ToolResult } from './execute.js';
|
|
29
|
+
import { type MountableTool } from './mount.js';
|
|
30
|
+
import type { RuntimeToolDefinition } from './runtime-tool.js';
|
|
31
|
+
export type CliSurfaceSource<TAuth, TValue> = readonly TValue[] | ((auth: Awaited<TAuth> | undefined) => readonly TValue[]);
|
|
32
|
+
/**
|
|
33
|
+
* What an invocation needs to exist: the surface, the identity behind it and
|
|
34
|
+
* the policies every call runs under. Everything about a terminal — argv,
|
|
35
|
+
* writers, `--wait`, downloads — belongs to `CliConfig`, which extends this.
|
|
36
|
+
*/
|
|
37
|
+
export interface CliInvokerConfig<TAuth = unknown, TContext extends Record<string, unknown> = Record<string, unknown>, TGlobals extends ZodObject = ZodObject> extends CliPresentationPolicyConfig {
|
|
38
|
+
/** Program name — used in diagnostics. */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Contract services exposed as commands — may depend on the resolved identity. */
|
|
41
|
+
services?: CliSurfaceSource<TAuth, ServiceDef>;
|
|
42
|
+
/** Pathless managed operations. CLI exposure always requires `transports: ['CLI']`. */
|
|
43
|
+
runtimeTools?: CliSurfaceSource<TAuth, RuntimeToolDefinition>;
|
|
44
|
+
auth?: TAuth | Promise<TAuth>;
|
|
45
|
+
resolveAuth?: (globals: z.output<TGlobals>) => TAuth | Promise<TAuth>;
|
|
46
|
+
globalOptions?: TGlobals;
|
|
47
|
+
context?: (auth: Awaited<TAuth> | undefined, globals: z.output<TGlobals>) => TContext;
|
|
48
|
+
signal?: AbortSignal;
|
|
49
|
+
hooks?: ToolCallHooks;
|
|
50
|
+
lifecycle?: ToolLifecycle;
|
|
51
|
+
logger?: StitchLogger;
|
|
52
|
+
coerceJsonArgs?: boolean;
|
|
53
|
+
errorHint?: ErrorHintFn;
|
|
54
|
+
exitCodes?: ExitCodeMap;
|
|
55
|
+
passthrough?: Record<string, string>;
|
|
56
|
+
}
|
|
57
|
+
/** What one parsed invocation produced — never printed, never exited on. */
|
|
58
|
+
export interface CliInvocationResult {
|
|
59
|
+
ok: boolean;
|
|
60
|
+
/** The exit code the printed path would give this same result. */
|
|
61
|
+
exitCode: number;
|
|
62
|
+
/** The validated handler output, on success. */
|
|
63
|
+
data?: unknown;
|
|
64
|
+
/** The refusal, in the shape the CLI prints on failure. */
|
|
65
|
+
error?: {
|
|
66
|
+
code: string;
|
|
67
|
+
message: string;
|
|
68
|
+
details?: unknown;
|
|
69
|
+
hint?: string;
|
|
70
|
+
retryable?: boolean;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/** One resolved managed command. */
|
|
74
|
+
export interface CliInvokerCommand {
|
|
75
|
+
name: string;
|
|
76
|
+
description: string;
|
|
77
|
+
}
|
|
78
|
+
/** The compiled surface: what can be run, and how to run it. */
|
|
79
|
+
export interface CliInvoker {
|
|
80
|
+
/** Every managed command, in surface order. */
|
|
81
|
+
readonly commands: readonly CliInvokerCommand[];
|
|
82
|
+
/**
|
|
83
|
+
* Run one parsed call. Never writes, never exits. An unknown command is a
|
|
84
|
+
* `NOT_FOUND` result rather than a throw, because a stream must answer the
|
|
85
|
+
* line that was wrong and keep reading the ones that follow.
|
|
86
|
+
*/
|
|
87
|
+
invoke(command: string, args: Record<string, unknown>): Promise<CliInvocationResult>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Shape a `ToolResult` into an invocation result — the same error body the CLI
|
|
91
|
+
* prints, and the same exit code, produced without printing either.
|
|
92
|
+
*/
|
|
93
|
+
export declare function cliInvocationResult(result: ToolResult, toolName: string, config: {
|
|
94
|
+
errorHint?: ErrorHintFn;
|
|
95
|
+
exitCodes?: ExitCodeMap;
|
|
96
|
+
}): CliInvocationResult;
|
|
97
|
+
/**
|
|
98
|
+
* Compile the managed surface and return a dispatcher over it.
|
|
99
|
+
*
|
|
100
|
+
* Identity resolves once, not per call: a stream of two hundred operations must
|
|
101
|
+
* not resolve auth two hundred times, and a CLI invocation speaks as one
|
|
102
|
+
* identity by construction.
|
|
103
|
+
*/
|
|
104
|
+
export declare function createCliInvoker<TAuth = unknown, TContext extends Record<string, unknown> = Record<string, unknown>, TGlobals extends ZodObject = ZodObject>(config: CliInvokerConfig<TAuth, TContext, TGlobals>, globals?: Record<string, unknown>): Promise<CliInvoker>;
|
|
105
|
+
/**
|
|
106
|
+
* Walk the declared surface into executable tools and their presentation.
|
|
107
|
+
*
|
|
108
|
+
* Shared with `createCli`, which starts from its native commands rather than an
|
|
109
|
+
* empty map — the uniqueness and shape checks have to see both halves, or a
|
|
110
|
+
* managed command could silently shadow a native one.
|
|
111
|
+
*/
|
|
112
|
+
export declare function buildCliSurface<TAuth, TContext extends Record<string, unknown>, TGlobals extends ZodObject>(config: CliInvokerConfig<TAuth, TContext, TGlobals>, auth: Awaited<TAuth> | undefined, nativeHelp: Map<string, CliCommandPresentation>, applicationGlobalNames: ReadonlySet<string>, assertShape?: (name: string, descriptor: CliCommandPresentation, exists: boolean, passthroughField: string | undefined, globalNames: ReadonlySet<string>) => void): {
|
|
113
|
+
tools: Map<string, MountableTool>;
|
|
114
|
+
help: Map<string, CliCommandPresentation>;
|
|
115
|
+
};
|
|
116
|
+
/** How a managed tool presents itself — the same shape a native command builds. */
|
|
117
|
+
export declare function managedCliDescriptor(tool: MountableTool): Omit<CliCommandPresentation, 'aliases' | 'positionals'>;
|
|
118
|
+
//# sourceMappingURL=cli-invoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-invoke.d.ts","sourceRoot":"","sources":["../../src/tools/cli-invoke.ts"],"names":[],"mappings":"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"}
|