stitchkit 0.53.2 → 0.55.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.
Files changed (125) hide show
  1. package/README.md +4 -1
  2. package/dist/browser/socket-io.d.ts +11 -1
  3. package/dist/browser/socket-io.d.ts.map +1 -1
  4. package/dist/cli.d.ts +2 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +15 -8
  7. package/dist/contract/define.d.ts +27 -0
  8. package/dist/contract/define.d.ts.map +1 -1
  9. package/dist/contract/file-ref.d.ts +13 -0
  10. package/dist/contract/file-ref.d.ts.map +1 -0
  11. package/dist/contract/index.d.ts +2 -1
  12. package/dist/contract/index.d.ts.map +1 -1
  13. package/dist/contract/index.js +21 -17
  14. package/dist/files/boundary.d.ts +52 -0
  15. package/dist/files/boundary.d.ts.map +1 -0
  16. package/dist/files.d.ts +3 -0
  17. package/dist/files.d.ts.map +1 -0
  18. package/dist/files.js +16 -0
  19. package/dist/{index-c78w2y09.js → index-0gv7k0ra.js} +515 -156
  20. package/dist/index-1bx83sw4.js +4 -0
  21. package/dist/index-1k16zv57.js +269 -0
  22. package/dist/index-6k1937bx.js +20 -0
  23. package/dist/{index-bmnhqtya.js → index-7eq9va6e.js} +1 -4
  24. package/dist/{index-yxpe3phd.js → index-cby4ar3v.js} +1 -18
  25. package/dist/index-h60df7rj.js +110 -0
  26. package/dist/{index-yez419px.js → index-js7yexng.js} +19 -6
  27. package/dist/index-k4dftwf7.js +66 -0
  28. package/dist/{index-pdv1mjjr.js → index-npye5kt7.js} +30 -59
  29. package/dist/{index-yydqk4fh.js → index-pzc32v75.js} +90 -3
  30. package/dist/{index-e1es808r.js → index-qh4xevf5.js} +1 -1
  31. package/dist/{index-gvha32jh.js → index-qx84bqzk.js} +2 -2
  32. package/dist/{index-pfqjb5xy.js → index-rgd18hx3.js} +23 -5
  33. package/dist/index-sbdmyz75.js +18 -0
  34. package/dist/{index-173tvqcp.js → index-v4bbq3p4.js} +9 -114
  35. package/dist/index.js +162 -35
  36. package/dist/node.js +30 -27
  37. package/dist/observability/event.d.ts +2 -16
  38. package/dist/observability/event.d.ts.map +1 -1
  39. package/dist/observability/index.js +28 -25
  40. package/dist/react.js +2 -2
  41. package/dist/realtime/contract.d.ts +9 -0
  42. package/dist/realtime/contract.d.ts.map +1 -1
  43. package/dist/realtime/index.d.ts +2 -1
  44. package/dist/realtime/index.d.ts.map +1 -1
  45. package/dist/realtime/request.d.ts +21 -0
  46. package/dist/realtime/request.d.ts.map +1 -0
  47. package/dist/realtime/socket.d.ts +3 -0
  48. package/dist/realtime/socket.d.ts.map +1 -1
  49. package/dist/remote.d.ts +9 -0
  50. package/dist/remote.d.ts.map +1 -0
  51. package/dist/remote.js +79 -0
  52. package/dist/server/context-contribution.d.ts +10 -0
  53. package/dist/server/context-contribution.d.ts.map +1 -0
  54. package/dist/server/context.d.ts.map +1 -1
  55. package/dist/server/index.d.ts +2 -1
  56. package/dist/server/index.d.ts.map +1 -1
  57. package/dist/server/index.js +133 -88
  58. package/dist/server/lifecycle.d.ts +4 -0
  59. package/dist/server/lifecycle.d.ts.map +1 -0
  60. package/dist/server/middleware/auth.d.ts +35 -7
  61. package/dist/server/middleware/auth.d.ts.map +1 -1
  62. package/dist/server/process-signal-common.d.ts +6 -0
  63. package/dist/server/process-signal-common.d.ts.map +1 -0
  64. package/dist/server/process-signals.d.ts.map +1 -1
  65. package/dist/server/types.d.ts +1 -1
  66. package/dist/server/types.d.ts.map +1 -1
  67. package/dist/testing/surface-conformance.d.ts +47 -0
  68. package/dist/testing/surface-conformance.d.ts.map +1 -0
  69. package/dist/testing/surface-manifest.d.ts +156 -0
  70. package/dist/testing/surface-manifest.d.ts.map +1 -0
  71. package/dist/testing.d.ts +2 -0
  72. package/dist/testing.d.ts.map +1 -1
  73. package/dist/testing.js +366 -3
  74. package/dist/tools/agent.d.ts.map +1 -1
  75. package/dist/tools/async-operation.d.ts +168 -0
  76. package/dist/tools/async-operation.d.ts.map +1 -0
  77. package/dist/tools/cli-args.d.ts +1 -1
  78. package/dist/tools/cli-args.d.ts.map +1 -1
  79. package/dist/tools/cli-command.d.ts +29 -0
  80. package/dist/tools/cli-command.d.ts.map +1 -0
  81. package/dist/tools/cli-format.d.ts +2 -2
  82. package/dist/tools/cli-format.d.ts.map +1 -1
  83. package/dist/tools/cli-wait.d.ts +11 -2
  84. package/dist/tools/cli-wait.d.ts.map +1 -1
  85. package/dist/tools/cli.d.ts +13 -6
  86. package/dist/tools/cli.d.ts.map +1 -1
  87. package/dist/tools/define-download-tool.d.ts +18 -0
  88. package/dist/tools/define-download-tool.d.ts.map +1 -0
  89. package/dist/tools/define-upload-tool.d.ts +16 -0
  90. package/dist/tools/define-upload-tool.d.ts.map +1 -0
  91. package/dist/tools/define-view-file-tool.d.ts +10 -0
  92. package/dist/tools/define-view-file-tool.d.ts.map +1 -0
  93. package/dist/tools/define-wait-tool.d.ts +22 -0
  94. package/dist/tools/define-wait-tool.d.ts.map +1 -0
  95. package/dist/tools/download-core.d.ts +20 -0
  96. package/dist/tools/download-core.d.ts.map +1 -0
  97. package/dist/tools/execute.d.ts +3 -1
  98. package/dist/tools/execute.d.ts.map +1 -1
  99. package/dist/tools/lifecycle.d.ts +4 -0
  100. package/dist/tools/lifecycle.d.ts.map +1 -0
  101. package/dist/tools/mcp-round.d.ts +0 -1
  102. package/dist/tools/mcp-round.d.ts.map +1 -1
  103. package/dist/tools/mcp-stdio-signals.d.ts +33 -0
  104. package/dist/tools/mcp-stdio-signals.d.ts.map +1 -0
  105. package/dist/tools/mount-download.d.ts +10 -4
  106. package/dist/tools/mount-download.d.ts.map +1 -1
  107. package/dist/tools/mount-upload.d.ts +4 -2
  108. package/dist/tools/mount-upload.d.ts.map +1 -1
  109. package/dist/tools/mount-wait.d.ts.map +1 -1
  110. package/dist/tools/native-definition.d.ts +15 -0
  111. package/dist/tools/native-definition.d.ts.map +1 -0
  112. package/dist/tools/runtime-tool.d.ts +5 -4
  113. package/dist/tools/runtime-tool.d.ts.map +1 -1
  114. package/dist/tools/surface.d.ts.map +1 -1
  115. package/dist/tools/upload-core.d.ts +4 -0
  116. package/dist/tools/upload-core.d.ts.map +1 -0
  117. package/dist/tools/view-file.d.ts +84 -23
  118. package/dist/tools/view-file.d.ts.map +1 -1
  119. package/dist/tools/wait-core.d.ts +16 -2
  120. package/dist/tools/wait-core.d.ts.map +1 -1
  121. package/dist/tools.d.ts +12 -3
  122. package/dist/tools.d.ts.map +1 -1
  123. package/dist/tools.js +827 -495
  124. package/llms-full.txt +720 -53
  125. package/package.json +10 -2
@@ -0,0 +1,168 @@
1
+ import { type ZodObject, type ZodType, z } from 'zod';
2
+ import type { ContractDef, EndpointDef, EndpointToolAnnotations } from '../contract';
3
+ import type { Handlers } from '../server/types';
4
+ import { type RuntimeToolDefinition, type RuntimeToolDefinitionWithOutput, type RuntimeToolHandlerContext, type RuntimeToolTransport } from './runtime-tool';
5
+ export declare const AsyncOperationCancelResultSchema: z.ZodDiscriminatedUnion<[ZodObject<{
6
+ outcome: z.ZodLiteral<"accepted">;
7
+ }, z.core.$strip>, ZodObject<{
8
+ outcome: z.ZodLiteral<"already_terminal">;
9
+ }, z.core.$strip>, ZodObject<{
10
+ outcome: z.ZodLiteral<"rejected">;
11
+ reason: z.ZodString;
12
+ }, z.core.$strip>], "outcome">;
13
+ export type AsyncOperationCancelResult = z.infer<typeof AsyncOperationCancelResultSchema>;
14
+ export type AsyncOperationCapability = 'start' | 'status' | 'wait' | 'cancel' | 'result' | 'artifacts';
15
+ export declare function createAsyncOperationSnapshotSchema<TProgress extends ZodType | undefined = undefined, TFailure extends ZodType = ZodType>(config: {
16
+ progress?: TProgress;
17
+ failure: TFailure;
18
+ }): z.ZodDiscriminatedUnion<[ZodObject<{
19
+ progress: z.ZodOptional<ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
20
+ phase: z.ZodLiteral<"pending">;
21
+ } | {
22
+ progress?: undefined;
23
+ phase: z.ZodLiteral<"pending">;
24
+ }, z.core.$strip>, ZodObject<{
25
+ progress: z.ZodOptional<ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
26
+ phase: z.ZodLiteral<"running">;
27
+ } | {
28
+ progress?: undefined;
29
+ phase: z.ZodLiteral<"running">;
30
+ }, z.core.$strip>, ZodObject<{
31
+ progress: z.ZodOptional<ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
32
+ phase: z.ZodLiteral<"succeeded">;
33
+ } | {
34
+ progress?: undefined;
35
+ phase: z.ZodLiteral<"succeeded">;
36
+ }, z.core.$strip>, ZodObject<{
37
+ progress: z.ZodOptional<ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
38
+ phase: z.ZodLiteral<"failed">;
39
+ failure: TFailure;
40
+ } | {
41
+ progress?: undefined;
42
+ phase: z.ZodLiteral<"failed">;
43
+ failure: TFailure;
44
+ }, z.core.$strip>, ZodObject<{
45
+ progress: z.ZodOptional<ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
46
+ phase: z.ZodLiteral<"cancelled">;
47
+ } | {
48
+ progress?: undefined;
49
+ phase: z.ZodLiteral<"cancelled">;
50
+ }, z.core.$strip>], "phase">;
51
+ export interface AsyncOperationIdentity {
52
+ serviceName: string;
53
+ action: string;
54
+ scope?: string;
55
+ meta?: Record<string, unknown>;
56
+ }
57
+ export interface AsyncOperationCancelCapability<TId extends ZodObject, TState extends ZodType> {
58
+ handler: (state: z.output<TState>, context: RuntimeToolHandlerContext<TId>) => z.output<typeof AsyncOperationCancelResultSchema> | Promise<z.output<typeof AsyncOperationCancelResultSchema>>;
59
+ }
60
+ export interface AsyncOperationOutputCapability<TId extends ZodObject, TState extends ZodType, TOutput extends ZodType> {
61
+ output: TOutput;
62
+ handler: (state: z.output<TState>, context: RuntimeToolHandlerContext<TId>) => z.output<TOutput> | Promise<z.output<TOutput>>;
63
+ }
64
+ export interface RuntimeAsyncOperationConfig<TStartInput extends ZodObject, TId extends ZodObject, TState extends ZodType, TSnapshot extends ZodType, TCancel extends AsyncOperationCancelCapability<TId, TState> = never, TResult extends AsyncOperationOutputCapability<TId, TState, ZodType> = never, TArtifacts extends AsyncOperationOutputCapability<TId, TState, ZodType> = never> {
65
+ mode: 'runtime-only';
66
+ /** Provider-safe prefix used for the generated capability names. */
67
+ name: string;
68
+ description: string;
69
+ identity: AsyncOperationIdentity;
70
+ startInput: TStartInput;
71
+ id: TId;
72
+ state: TState;
73
+ snapshot: TSnapshot;
74
+ start: (input: z.output<TStartInput>, context: RuntimeToolHandlerContext<TStartInput>) => z.output<TId> | Promise<z.output<TId>>;
75
+ /** Mandatory resource authorization, repeated before every follow-up callback. */
76
+ authorize: (id: z.output<TId>, capability: Exclude<AsyncOperationCapability, 'start'>, context: RuntimeToolHandlerContext<TId>) => void | Promise<void>;
77
+ inspect: (id: z.output<TId>, context: RuntimeToolHandlerContext<TId>) => z.output<TState> | Promise<z.output<TState>>;
78
+ classify: (state: z.output<TState>, context: RuntimeToolHandlerContext<TId>) => z.output<TSnapshot> | Promise<z.output<TSnapshot>>;
79
+ cancel?: TCancel;
80
+ result?: TResult;
81
+ artifacts?: TArtifacts;
82
+ names?: Partial<Record<AsyncOperationCapability, string>>;
83
+ descriptions?: Partial<Record<AsyncOperationCapability, string>>;
84
+ scopes?: Partial<Record<AsyncOperationCapability, string>>;
85
+ annotations?: Partial<Record<AsyncOperationCapability, EndpointToolAnnotations>>;
86
+ transports?: Partial<Record<AsyncOperationCapability, readonly RuntimeToolTransport[]>>;
87
+ backoff?: number[];
88
+ defaultTimeout?: number;
89
+ timeoutFromId?: (id: z.output<TId>) => number | undefined;
90
+ }
91
+ export type AsyncOperationStartDefinition<TInput extends ZodObject, TId extends ZodObject> = RuntimeToolDefinitionWithOutput<TInput, TId>;
92
+ export type AsyncOperationFollowDefinition<TId extends ZodObject, TOutput extends ZodType> = RuntimeToolDefinitionWithOutput<TId, TOutput>;
93
+ export type RuntimeAsyncOperation<TStartInput extends ZodObject, TId extends ZodObject, TSnapshot extends ZodType, TCancel, TResult, TArtifacts> = {
94
+ start: AsyncOperationStartDefinition<TStartInput, TId>;
95
+ status: AsyncOperationFollowDefinition<TId, TSnapshot>;
96
+ wait: AsyncOperationFollowDefinition<TId, TSnapshot>;
97
+ runtimeTools: readonly RuntimeToolDefinition[];
98
+ schemas: {
99
+ id: TId;
100
+ snapshot: TSnapshot;
101
+ cancelResult: typeof AsyncOperationCancelResultSchema;
102
+ };
103
+ } & ([TCancel] extends [never] ? object : {
104
+ cancel: AsyncOperationFollowDefinition<TId, typeof AsyncOperationCancelResultSchema>;
105
+ }) & ([TResult] extends [never] ? object : TResult extends {
106
+ output: infer TOutput extends ZodType;
107
+ } ? {
108
+ result: AsyncOperationFollowDefinition<TId, TOutput>;
109
+ } : object) & ([TArtifacts] extends [never] ? object : TArtifacts extends {
110
+ output: infer TOutput extends ZodType;
111
+ } ? {
112
+ artifacts: AsyncOperationFollowDefinition<TId, TOutput>;
113
+ } : object);
114
+ /** Define a pathless async-operation surface. It never creates an HTTP route. */
115
+ export declare function defineAsyncOperation<TStartInput extends ZodObject, TId extends ZodObject, TState extends ZodType, TSnapshot extends ZodType, TCancel extends AsyncOperationCancelCapability<TId, TState> = never, TResult extends AsyncOperationOutputCapability<TId, TState, ZodType> = never, TArtifacts extends AsyncOperationOutputCapability<TId, TState, ZodType> = never>(config: RuntimeAsyncOperationConfig<TStartInput, TId, TState, TSnapshot, TCancel, TResult, TArtifacts>): RuntimeAsyncOperation<TStartInput, TId, TSnapshot, TCancel, TResult, TArtifacts>;
116
+ export type ContractAsyncOperationKeys<TEndpoints extends Record<string, EndpointDef>> = keyof TEndpoints & string;
117
+ type EndpointInputSchema<TEndpoint> = TEndpoint extends {
118
+ input: infer TSchema extends ZodType;
119
+ } ? TSchema : never;
120
+ type EndpointOutputSchema<TEndpoint> = TEndpoint extends {
121
+ output: infer TSchema extends ZodType;
122
+ } ? TSchema : never;
123
+ type TypesEqual<TLeft, TRight> = [TLeft] extends [TRight] ? [TRight] extends [TLeft] ? true : false : false;
124
+ type SchemasEquivalent<TLeft extends ZodType, TRight extends ZodType> = TypesEqual<z.input<TLeft>, z.input<TRight>> extends true ? TypesEqual<z.output<TLeft>, z.output<TRight>> : false;
125
+ export type ContractAsyncOperationStartKey<TEndpoints extends Record<string, EndpointDef>> = {
126
+ [TKey in keyof TEndpoints]: EndpointOutputSchema<TEndpoints[TKey]> extends never ? never : TKey;
127
+ }[keyof TEndpoints] & string;
128
+ export type ContractAsyncOperationFollowKey<TEndpoints extends Record<string, EndpointDef>, TStart extends ContractAsyncOperationStartKey<TEndpoints>> = {
129
+ [TKey in keyof TEndpoints]: EndpointInputSchema<TEndpoints[TKey]> extends infer TInput extends ZodType ? EndpointOutputSchema<TEndpoints[TStart]> extends infer TId extends ZodType ? SchemasEquivalent<TInput, TId> extends true ? TKey : never : never : never;
130
+ }[keyof TEndpoints] & string;
131
+ export type ContractAsyncOperationWaitKey<TEndpoints extends Record<string, EndpointDef>, TStart extends ContractAsyncOperationStartKey<TEndpoints>, TStatus extends ContractAsyncOperationFollowKey<TEndpoints, TStart>> = {
132
+ [TKey in keyof TEndpoints]: TKey extends ContractAsyncOperationFollowKey<TEndpoints, TStart> ? EndpointOutputSchema<TEndpoints[TKey]> extends infer TOutput extends ZodType ? EndpointOutputSchema<TEndpoints[TStatus]> extends infer TSnapshot extends ZodType ? SchemasEquivalent<TOutput, TSnapshot> extends true ? TKey : never : never : never : never;
133
+ }[keyof TEndpoints] & string;
134
+ export interface ContractAsyncOperationConfig<TEndpoints extends Record<string, EndpointDef>, TScope extends string, TStart extends ContractAsyncOperationStartKey<TEndpoints> = ContractAsyncOperationStartKey<TEndpoints>, TStatus extends ContractAsyncOperationFollowKey<TEndpoints, TStart> = ContractAsyncOperationFollowKey<TEndpoints, TStart>> {
135
+ mode: 'contract-backed';
136
+ contract: ContractDef<TEndpoints, TScope>;
137
+ capabilities: {
138
+ start: TStart;
139
+ status: TStatus;
140
+ wait: ContractAsyncOperationWaitKey<TEndpoints, TStart, TStatus>;
141
+ cancel?: ContractAsyncOperationFollowKey<TEndpoints, TStart>;
142
+ result?: ContractAsyncOperationFollowKey<TEndpoints, TStart>;
143
+ artifacts?: ContractAsyncOperationFollowKey<TEndpoints, TStart>;
144
+ };
145
+ handlers: Handlers<TEndpoints>;
146
+ }
147
+ /**
148
+ * Bind a dedicated contract's already-declared methods as one async operation.
149
+ * The returned handlers go straight to `implement`; no schema or HTTP route is copied.
150
+ */
151
+ export declare function bindContractAsyncOperation<TEndpoints extends Record<string, EndpointDef>, TScope extends string, const TStart extends ContractAsyncOperationStartKey<TEndpoints>, const TStatus extends ContractAsyncOperationFollowKey<TEndpoints, TStart>>(config: ContractAsyncOperationConfig<TEndpoints, TScope, TStart, TStatus>): {
152
+ contract: ContractDef<TEndpoints, TScope>;
153
+ handlers: Handlers<TEndpoints, import("..").HandlerContext<undefined, undefined>>;
154
+ capabilities: {
155
+ start: TStart;
156
+ status: TStatus;
157
+ wait: { [TKey in keyof TEndpoints]: TKey extends ContractAsyncOperationFollowKey<TEndpoints, TStart> ? EndpointOutputSchema<TEndpoints[TKey]> extends infer TOutput extends ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> ? EndpointOutputSchema<TEndpoints[TStatus]> extends infer TSnapshot extends ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> ? SchemasEquivalent<TOutput, TSnapshot> extends true ? TKey : never : never : never : never; }[keyof TEndpoints];
158
+ cancel?: ContractAsyncOperationFollowKey<TEndpoints, TStart> | undefined;
159
+ result?: ContractAsyncOperationFollowKey<TEndpoints, TStart> | undefined;
160
+ artifacts?: ContractAsyncOperationFollowKey<TEndpoints, TStart> | undefined;
161
+ };
162
+ schemas: {
163
+ id: ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
164
+ snapshot: ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
165
+ };
166
+ };
167
+ export {};
168
+ //# sourceMappingURL=async-operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-operation.d.ts","sourceRoot":"","sources":["../../src/tools/async-operation.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  import { z } from 'zod';
21
21
  /** CLI-behaviour flags, parsed out of argv before the tool arguments. */
22
22
  export interface CliRunOptions {
23
- /** `--json` — emit raw JSON on stdout for piping. */
23
+ /** `--json` — emit compact success/error JSON records for scripts. */
24
24
  json: boolean;
25
25
  /** `--wait` — block-poll an async result to a terminal state. */
26
26
  wait: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../../src/tools/cli-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,+BAA+B;IAC/B,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,KAAK,SAAS,GACV,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,CAAC;AAEZ,UAAU,SAAS;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAOD,eAAO,MAAM,oBAAoB,aAA+C,CAAC;AAEjF,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAuED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAI1F;AA8FD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAC7B,MAAM,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACvE,aAAa,CA+Kf"}
1
+ {"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../../src/tools/cli-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,IAAI,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,+BAA+B;IAC/B,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,KAAK,SAAS,GACV,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,CAAC;AAEZ,UAAU,SAAS;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAOD,eAAO,MAAM,oBAAoB,aAA+C,CAAC;AAEjF,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAuED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAI1F;AA8FD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAC7B,MAAM,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACvE,aAAa,CA+Kf"}
@@ -0,0 +1,29 @@
1
+ import type { ZodObject, ZodType, z } from 'zod';
2
+ import type { CliRunOptions } from './cli-args';
3
+ import type { CliWriters } from './cli-format';
4
+ import { type ToolResult } from './execute';
5
+ export interface CliCommandContext<TInput extends ZodObject> extends CliWriters {
6
+ input: z.output<TInput>;
7
+ options: Readonly<CliRunOptions>;
8
+ }
9
+ export interface CliCommandDefinitionBase<TInput extends ZodObject> {
10
+ name: string;
11
+ description: string;
12
+ input: TInput;
13
+ }
14
+ export interface CliCommandDefinitionWithOutput<TInput extends ZodObject, TOutput extends ZodType> extends CliCommandDefinitionBase<TInput> {
15
+ output: TOutput;
16
+ handler: (context: CliCommandContext<TInput>) => z.output<TOutput> | Promise<z.output<TOutput>>;
17
+ }
18
+ export interface CliCommandDefinitionWithoutOutput<TInput extends ZodObject> extends CliCommandDefinitionBase<TInput> {
19
+ output?: never;
20
+ handler: (context: CliCommandContext<TInput>) => void | Promise<void>;
21
+ }
22
+ export type CliCommandDefinition = CliCommandDefinitionWithOutput<ZodObject, ZodType> | CliCommandDefinitionWithoutOutput<ZodObject>;
23
+ /** Typed identity helper for one transport-local executable command. */
24
+ export declare function defineCliCommand<TInput extends ZodObject, TOutput extends ZodType>(definition: CliCommandDefinitionWithOutput<TInput, TOutput>): CliCommandDefinitionWithOutput<TInput, TOutput>;
25
+ export declare function defineCliCommand<TInput extends ZodObject>(definition: CliCommandDefinitionWithoutOutput<TInput>): CliCommandDefinitionWithoutOutput<TInput>;
26
+ export declare function cliCommandPresentationSchema(definition: CliCommandDefinition): Record<string, unknown>;
27
+ /** Execute a CLI-only definition without inventing a tool operation identity. */
28
+ export declare function executeCliCommand(definition: CliCommandDefinition, rawArgs: Record<string, unknown>, options: CliRunOptions, writers: CliWriters, coerceJson: boolean): Promise<ToolResult>;
29
+ //# sourceMappingURL=cli-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-command.d.ts","sourceRoot":"","sources":["../../src/tools/cli-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,WAAW,CAAC;AAGjE,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,SAAS,CAAE,SAAQ,UAAU;IAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB,CAAC,MAAM,SAAS,SAAS;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,8BAA8B,CAC7C,MAAM,SAAS,SAAS,EACxB,OAAO,SAAS,OAAO,CACvB,SAAQ,wBAAwB,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,CACP,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAC/B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,iCAAiC,CAAC,MAAM,SAAS,SAAS,CACzE,SAAQ,wBAAwB,CAAC,MAAM,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,oBAAoB,GAC5B,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,GAClD,iCAAiC,CAAC,SAAS,CAAC,CAAC;AAEjD,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,SAAS,EAAE,OAAO,SAAS,OAAO,EAChF,UAAU,EAAE,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1D,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,SAAS,EACvD,UAAU,EAAE,iCAAiC,CAAC,MAAM,CAAC,GACpD,iCAAiC,CAAC,MAAM,CAAC,CAAC;AAK7C,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,oBAAoB,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED,iFAAiF;AACjF,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,UAAU,CAAC,CAmCrB"}
@@ -4,7 +4,7 @@
4
4
  * Output is JSON — the CLI's audience is agents (Skills via Bash), scripts and
5
5
  * `| jq`, for which structured JSON is the right shape, not a hand-formatted
6
6
  * table. The default is pretty-printed (indented, the same shape an MCP tool
7
- * returns); `--json` switches to a compact single line for piping.
7
+ * returns); `--json` switches success and error records to one compact line.
8
8
  *
9
9
  * stdout is reserved for that result; an error goes to stderr as the same
10
10
  * model-facing `{ error, details, _hint }` object the MCP / agent transports
@@ -24,7 +24,7 @@ export interface CliWriters {
24
24
  stderr: (text: string) => void;
25
25
  }
26
26
  export interface EmitOptions {
27
- /** Compact single-line JSON (for `| jq` / scripts); otherwise pretty-printed. */
27
+ /** Compact single-line success/error JSON; otherwise pretty-printed. */
28
28
  json: boolean;
29
29
  toolName: string;
30
30
  errorHint?: ErrorHintFn;
@@ -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,WAUhC,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,iFAAiF;IACjF,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,CAeR"}
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,CAgBR"}
@@ -17,6 +17,13 @@ export interface CliWaitConfig {
17
17
  tool: string;
18
18
  /** Done when this returns `true` for a poll result. */
19
19
  done: (result: unknown) => boolean;
20
+ /**
21
+ * Terminal domain failure. A `true` result stops polling and turns the
22
+ * otherwise-successful tool payload into a `WAIT_FAILED` CLI failure. Checked
23
+ * before `done`, including for the initial result, so contradictory
24
+ * predicates fail closed.
25
+ */
26
+ failed?: (result: unknown) => boolean;
20
27
  /** Backoff schedule in seconds; the last entry repeats. Default `[2,3,5,5,8,10]`. */
21
28
  backoff?: number[];
22
29
  /** Max seconds before giving up. Default `600`. */
@@ -34,12 +41,14 @@ export interface PollParams {
34
41
  onTick?: (attempt: number, elapsedSec: number) => void;
35
42
  /** Injectable sleep for tests. */
36
43
  sleepFn?: (ms: number) => Promise<void>;
44
+ /** Explicit caller cancellation. Process SIGINT wiring remains application-owned. */
45
+ signal?: AbortSignal;
37
46
  }
38
47
  /**
39
48
  * Poll `wait.tool` until `wait.done` or the timeout. Returns the last poll
40
49
  * result; returns the initial result untouched when the initial call failed,
41
- * already satisfies `done`, or yields no poll target. A timeout produces a
42
- * `TIMEOUT` failed `ToolResult`.
50
+ * already satisfies `done`, or yields no poll target. A terminal result matched
51
+ * by `failed` produces `WAIT_FAILED`; a timeout produces `TIMEOUT`.
43
52
  */
44
53
  export declare function pollUntilDone(params: PollParams): Promise<ToolResult>;
45
54
  //# sourceMappingURL=cli-wait.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-wait.d.ts","sourceRoot":"","sources":["../../src/tools/cli-wait.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACnC,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,wEAAwE;IACxE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/E,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CA0B3E"}
1
+ {"version":3,"file":"cli-wait.d.ts","sourceRoot":"","sources":["../../src/tools/cli-wait.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACnC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,wEAAwE;IACxE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/E,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,qFAAqF;IACrF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAuC3E"}
@@ -1,25 +1,36 @@
1
1
  import type { ServiceDef, StitchLogger } from '../server/types';
2
+ import { type CliCommandDefinition } from './cli-command';
2
3
  import { type ExitCodeMap } from './cli-format';
3
4
  import { type CliWaitConfig } from './cli-wait';
4
5
  import { type ErrorHintFn, type ToolCallHooks, type ToolLifecycle } from './execute';
6
+ import type { RuntimeToolDefinition } from './runtime-tool';
7
+ export type CliSurfaceSource<TAuth, TValue> = readonly TValue[] | ((auth: Awaited<TAuth> | undefined) => readonly TValue[]);
5
8
  export interface CliConfig<TAuth = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {
6
9
  /** Program name — shown in help and unknown-command messages. */
7
10
  name: string;
8
11
  /** Program version — printed by `--version`. */
9
12
  version: string;
10
13
  /** Contract services exposed as commands — may depend on the resolved identity. */
11
- services: ServiceDef[] | ((auth: Awaited<TAuth> | undefined) => ServiceDef[]);
14
+ services?: CliSurfaceSource<TAuth, ServiceDef>;
15
+ /** Pathless managed operations. CLI exposure always requires `transports: ['CLI']`. */
16
+ runtimeTools?: CliSurfaceSource<TAuth, RuntimeToolDefinition>;
17
+ /** CLI-only executable commands, dispatched before auth and managed surface factories. */
18
+ commands?: readonly CliCommandDefinition[];
12
19
  /**
13
20
  * Identity for the single CLI invocation — resolved ONCE at startup (from an
14
21
  * env var / token file), like a stdio MCP server, not per call. A value or a
15
22
  * promise of one.
16
23
  */
17
24
  auth?: TAuth | Promise<TAuth>;
25
+ /** Lazily resolve identity only when a managed command/surface actually needs it. */
26
+ resolveAuth?: () => TAuth | Promise<TAuth>;
18
27
  /**
19
28
  * Context merged into every handler. Typed against the app's context shape
20
29
  * when the CLI is built via `createToolkit<AppContext>()`.
21
30
  */
22
31
  context?: (auth: Awaited<TAuth> | undefined) => TContext;
32
+ /** Explicit cancellation for this invocation; applications may bind SIGINT to it. */
33
+ signal?: AbortSignal;
23
34
  /** Tool-call observability hooks — `afterToolCall` fires for every result,
24
35
  * `onToolError` for the raw value behind a thrown one. */
25
36
  hooks?: ToolCallHooks;
@@ -74,10 +85,6 @@ export interface CliConfig<TAuth = unknown, TContext extends Record<string, unkn
74
85
  /** Read piped stdin — default reads when not a TTY; injectable for tests. */
75
86
  stdin?: () => Promise<string | null>;
76
87
  }
77
- /**
78
- * Build and run a CLI from contract services, then exit. Parses `process.argv`
79
- * (or `config.argv`), routes to a command, executes it through the shared tool
80
- * pipeline and writes the result. Resolves identity once up front.
81
- */
88
+ /** Build and run one mixed contract/runtime/native CLI surface, then exit. */
82
89
  export declare function createCli<TAuth = unknown, TContext extends Record<string, unknown> = Record<string, unknown>>(config: CliConfig<TAuth, TContext>): Promise<void>;
83
90
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/tools/cli.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAsB,KAAK,WAAW,EAAc,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAGnB,MAAM,WAAW,CAAC;AAMnB,MAAM,WAAW,SAAS,CACxB,KAAK,GAAG,OAAO,EACf,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElE,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,KAAK,UAAU,EAAE,CAAC,CAAC;IAC9E;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,KAAK,QAAQ,CAAC;IACzD;+DAC2D;IAC3D,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,oEAAoE;IACpE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gEAAgE;IAChE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC;AAsLD;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,KAAK,GAAG,OAAO,EACf,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkMnD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/tools/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ZodObject, z } from 'zod';
2
+ import { ManagedFileRefSchema } from '../contract';
3
+ import type { ManagedFileBoundary } from '../files/boundary';
4
+ import { type ManagedNativeToolConfig } from './native-definition';
5
+ import { type RuntimeToolDefinitionWithOutput, type RuntimeToolHandlerContext, type RuntimeToolPresenters } from './runtime-tool';
6
+ export interface DefineDownloadToolConfig<TInput extends ZodObject> extends ManagedNativeToolConfig {
7
+ input: TInput;
8
+ resolveUrl: (input: z.output<TInput>, context: RuntimeToolHandlerContext<TInput>) => string | null | Promise<string | null>;
9
+ files: ManagedFileBoundary;
10
+ pathFromInput?: (input: z.output<TInput>) => string | undefined;
11
+ allowPrivateHosts?: boolean;
12
+ maxBytes?: number;
13
+ timeoutMs?: number;
14
+ present?: RuntimeToolPresenters<z.output<typeof ManagedFileRefSchema>>;
15
+ }
16
+ /** Define one guarded managed download operation. */
17
+ export declare function defineDownloadTool<TInput extends ZodObject>(config: DefineDownloadToolConfig<TInput>): RuntimeToolDefinitionWithOutput<TInput, typeof ManagedFileRefSchema>;
18
+ //# sourceMappingURL=define-download-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-download-tool.d.ts","sourceRoot":"","sources":["../../src/tools/define-download-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAY,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,wBAAwB,CAAC,MAAM,SAAS,SAAS,CAChE,SAAQ,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CACV,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,yBAAyB,CAAC,MAAM,CAAC,KACvC,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;CACxE;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,SAAS,EACzD,MAAM,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACvC,+BAA+B,CAAC,MAAM,EAAE,OAAO,oBAAoB,CAAC,CAiCtE"}
@@ -0,0 +1,16 @@
1
+ import { type ZodType, z } from 'zod';
2
+ import type { ManagedFileBoundary, ManagedFileSource } from '../files/boundary';
3
+ import { type ManagedNativeToolConfig } from './native-definition';
4
+ import { type RuntimeToolDefinitionWithOutput, type RuntimeToolHandlerContext, type RuntimeToolPresenters } from './runtime-tool';
5
+ export declare const UploadToolInputSchema: z.ZodObject<{
6
+ path: z.ZodString;
7
+ }, z.core.$strip>;
8
+ export interface DefineUploadToolConfig<TOutput extends ZodType> extends ManagedNativeToolConfig {
9
+ output: TOutput;
10
+ files: ManagedFileBoundary;
11
+ upload: (source: ManagedFileSource, context: RuntimeToolHandlerContext<typeof UploadToolInputSchema>) => z.output<TOutput> | Promise<z.output<TOutput>>;
12
+ present?: RuntimeToolPresenters<z.output<TOutput>>;
13
+ }
14
+ /** Define one managed local-file upload operation. */
15
+ export declare function defineUploadTool<TOutput extends ZodType>(config: DefineUploadToolConfig<TOutput>): RuntimeToolDefinitionWithOutput<typeof UploadToolInputSchema, TOutput>;
16
+ //# sourceMappingURL=define-upload-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-upload-tool.d.ts","sourceRoot":"","sources":["../../src/tools/define-upload-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,OAAO,CAC7D,SAAQ,uBAAuB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,CACN,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,yBAAyB,CAAC,OAAO,qBAAqB,CAAC,KAC7D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACpD;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,OAAO,EACtD,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,+BAA+B,CAAC,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAkBxE"}
@@ -0,0 +1,10 @@
1
+ import type { z } from 'zod';
2
+ import { type ManagedNativeToolConfig } from './native-definition';
3
+ import { type RuntimeToolDefinitionWithOutput, type RuntimeToolPresenters } from './runtime-tool';
4
+ import { ViewFileInputSchema, type ViewFileOptions, ViewFileOutputSchema } from './view-file';
5
+ export interface DefineViewFileToolConfig extends ManagedNativeToolConfig, ViewFileOptions {
6
+ present?: RuntimeToolPresenters<z.output<typeof ViewFileOutputSchema>>;
7
+ }
8
+ /** Define one protected managed multimodal media-inspection operation. */
9
+ export declare function defineViewFileTool(config: DefineViewFileToolConfig): RuntimeToolDefinitionWithOutput<typeof ViewFileInputSchema, typeof ViewFileOutputSchema>;
10
+ //# sourceMappingURL=define-view-file-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-view-file-tool.d.ts","sourceRoot":"","sources":["../../src/tools/define-view-file-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAIL,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,mBAAmB,EACnB,KAAK,eAAe,EACpB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB,EAAE,eAAe;IACxF,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;CACxE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,GAC/B,+BAA+B,CAAC,OAAO,mBAAmB,EAAE,OAAO,oBAAoB,CAAC,CAwC1F"}
@@ -0,0 +1,22 @@
1
+ import type { ZodObject, ZodType, z } from 'zod';
2
+ import { type ManagedNativeToolConfig } from './native-definition';
3
+ import { type RuntimeToolDefinitionWithOutput, type RuntimeToolHandlerContext, type RuntimeToolPresenters } from './runtime-tool';
4
+ export interface ManagedWaitRender {
5
+ text: string;
6
+ isError: boolean;
7
+ }
8
+ export interface DefineWaitToolConfig<TInput extends ZodObject, TState extends ZodType> extends ManagedNativeToolConfig {
9
+ input: TInput;
10
+ state: TState;
11
+ poll: (input: z.output<TInput>, context: RuntimeToolHandlerContext<TInput>) => unknown | Promise<unknown>;
12
+ done: (state: z.output<TState>) => boolean;
13
+ timeoutFromInput?: (input: z.output<TInput>) => number | undefined;
14
+ backoff?: number[];
15
+ defaultTimeout?: number;
16
+ /** Optional pure MCP renderer; `isError` also classifies terminal domain failure. */
17
+ render?: (state: z.output<TState>, timedOut: boolean) => ManagedWaitRender;
18
+ present?: RuntimeToolPresenters<z.output<TState>>;
19
+ }
20
+ /** Define one managed wait operation for `runtimeTools` and/or Agent tools. */
21
+ export declare function defineWaitTool<TInput extends ZodObject, TState extends ZodType>(config: DefineWaitToolConfig<TInput, TState>): RuntimeToolDefinitionWithOutput<TInput, TState>;
22
+ //# sourceMappingURL=define-wait-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-wait-tool.d.ts","sourceRoot":"","sources":["../../src/tools/define-wait-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAEjD,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAGL,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM,SAAS,SAAS,EAAE,MAAM,SAAS,OAAO,CACpF,SAAQ,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CACJ,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,yBAAyB,CAAC,MAAM,CAAC,KACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;IAC3C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,KAAK,iBAAiB,CAAC;IAC3E,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CACnD;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,MAAM,SAAS,SAAS,EAAE,MAAM,SAAS,OAAO,EAC7E,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,+BAA+B,CAAC,MAAM,EAAE,MAAM,CAAC,CA4DjD"}
@@ -0,0 +1,20 @@
1
+ import type { ManagedFileRef } from '../contract/file-ref';
2
+ import type { ManagedFileBoundary } from '../files/boundary';
3
+ /** Expected, caller-safe download failure; unexpected runtime errors still throw raw. */
4
+ export declare class DownloadOperationError extends Error {
5
+ readonly code: 'DOWNLOAD_HTTP_ERROR' | 'DOWNLOAD_TOO_LARGE';
6
+ readonly status: number;
7
+ constructor(code: 'DOWNLOAD_HTTP_ERROR' | 'DOWNLOAD_TOO_LARGE', message: string, status: number);
8
+ }
9
+ export interface DownloadOperationConfig {
10
+ url: string;
11
+ files: ManagedFileBoundary;
12
+ path?: string;
13
+ allowPrivateHosts?: boolean;
14
+ maxBytes?: number;
15
+ timeoutMs?: number;
16
+ signal?: AbortSignal;
17
+ }
18
+ /** Fetch and persist one URL without owning tool registration or presentation. */
19
+ export declare function runDownloadOperation(config: DownloadOperationConfig): Promise<ManagedFileRef>;
20
+ //# sourceMappingURL=download-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-core.d.ts","sourceRoot":"","sources":["../../src/tools/download-core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAkB7D,yFAAyF;AACzF,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,IAAI,EAAE,qBAAqB,GAAG,oBAAoB;aAElD,MAAM,EAAE,MAAM;IAHhC,YACkB,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,EAClE,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAI/B;CACF;AAwBD,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,kFAAkF;AAClF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,cAAc,CAAC,CA6BzB"}
@@ -1,5 +1,5 @@
1
1
  import type { ZodType, z } from 'zod';
2
- import { AppError, type RuntimeContext, type TransportSource } from '../contract';
2
+ import { AppError, type McpCallContext, type RuntimeContext, type TransportSource } from '../contract';
3
3
  import type { OperationIdentity } from '../server/types';
4
4
  export type ToolResult = {
5
5
  ok: true;
@@ -15,6 +15,8 @@ type ToolFailure = Extract<ToolResult, {
15
15
  }>;
16
16
  export interface ToolCallContext {
17
17
  source: TransportSource;
18
+ /** Validated metadata for an MCP call; absent on every other transport. */
19
+ mcp?: McpCallContext;
18
20
  [key: string]: unknown;
19
21
  }
20
22
  export interface BeforeToolCallOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ToolLifecycle } from './execute';
2
+ /** Compose tool lifecycle hooks without inventing HTTP-only phases. */
3
+ export declare function composeToolLifecycle(...hooks: readonly (ToolLifecycle | undefined)[]): ToolLifecycle;
4
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,uEAAuE;AACvE,wBAAgB,oBAAoB,CAClC,GAAG,KAAK,EAAE,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,GAC/C,aAAa,CAcf"}
@@ -16,7 +16,6 @@ export interface McpRoundState {
16
16
  round: number;
17
17
  accepted: Record<string, unknown>;
18
18
  }
19
- export type McpRoundOutcome = 'input_required' | 'declined' | 'cancelled' | 'invalid' | 'complete';
20
19
  export interface McpRoundRuntime {
21
20
  codec: RequestStateCodec<McpRoundState>;
22
21
  maxRounds: number;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-round.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-round.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,mBAAmB,EAIxB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,UAAU,GACV,WAAW,GACX,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,UAAU,GAAG,CAChB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,cAAc,GAAG,mBAAmB,CAAA;CAAE,CAAC;AAsHzE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD,IAAI,CA6BN;AAsBD,qFAAqF;AACrF,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,cAAc,CAAC;CACvD,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmK9B"}
1
+ {"version":3,"file":"mcp-round.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-round.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,mBAAmB,EAIxB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,UAAU,GAAG,CAChB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,cAAc,GAAG,mBAAmB,CAAA;CAAE,CAAC;AAsHzE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD,IAAI,CA6BN;AAsBD,qFAAqF;AACrF,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,cAAc,CAAC;CACvD,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmK9B"}
@@ -0,0 +1,33 @@
1
+ import type { ProcessSignalName, SignalSource } from '../server/process-signals';
2
+ import type { McpStdioHandle } from './mcp-stdio';
3
+ export type StdioProcessSignalsErrorPhase = 'prepare' | 'close' | 'complete';
4
+ export interface StdioProcessSignalsOptions {
5
+ /** Defaults to `['SIGINT', 'SIGTERM']`; duplicates are ignored. */
6
+ signals?: readonly ProcessSignalName[];
7
+ signalSource?: SignalSource;
8
+ /** Runs before the transport closes. Failure is reported and close still runs. */
9
+ onClose?: (signal: ProcessSignalName) => void | Promise<void>;
10
+ /** Runs after the official stdio handle has closed. */
11
+ onComplete?: () => void | Promise<void>;
12
+ onError?: (phase: StdioProcessSignalsErrorPhase, error: unknown) => void;
13
+ /** A later signal cannot force stdio close, so it always means escalation. */
14
+ onRepeatedSignal?: (signal: ProcessSignalName) => void;
15
+ /** Called when another listener prevents restoration of the default disposition. */
16
+ onEscalationBlocked?: (signal: ProcessSignalName) => void;
17
+ }
18
+ export interface StdioProcessSignalsBinding {
19
+ /** Resolves after close, or `undefined` when an idle binding is removed. */
20
+ readonly promise: Promise<void>;
21
+ /** Remove listeners. Idempotent; does not cancel an already-running close. */
22
+ close(): void;
23
+ }
24
+ export type StdioCloseTarget = Pick<McpStdioHandle, 'close'>;
25
+ /**
26
+ * Bind process signals to one close-only stdio MCP handle.
27
+ *
28
+ * Unlike managed HTTP shutdown, stdio exposes no deadline or force method. A
29
+ * later signal therefore removes this binding and restores the signal's default
30
+ * disposition instead of pretending an AbortSignal can affect `close()`.
31
+ */
32
+ export declare function bindStdioProcessSignals(handle: StdioCloseTarget, options?: StdioProcessSignalsOptions): StdioProcessSignalsBinding;
33
+ //# sourceMappingURL=mcp-stdio-signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-stdio-signals.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-stdio-signals.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,6BAA6B,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7E,MAAM,WAAW,0BAA0B;IACzC,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kFAAkF;IAClF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA0B;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAI7D;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,0BAA+B,GACvC,0BAA0B,CAkG5B"}