@warlock.js/ai-tools 5.31.0 → 5.33.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 (75) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/index.cjs +327 -60
  3. package/cjs/index.cjs.map +1 -1
  4. package/esm/contracts/http.type.d.mts +4 -5
  5. package/esm/contracts/http.type.d.mts.map +1 -1
  6. package/esm/contracts/index.d.mts +2 -1
  7. package/esm/contracts/mcp-serve.type.d.mts +97 -37
  8. package/esm/contracts/mcp-serve.type.d.mts.map +1 -1
  9. package/esm/contracts/mcp.type.d.mts +29 -19
  10. package/esm/contracts/mcp.type.d.mts.map +1 -1
  11. package/esm/contracts/utility.type.d.mts +7 -8
  12. package/esm/contracts/utility.type.d.mts.map +1 -1
  13. package/esm/contracts/web.type.d.mts +9 -10
  14. package/esm/contracts/web.type.d.mts.map +1 -1
  15. package/esm/errors.d.mts +31 -26
  16. package/esm/errors.d.mts.map +1 -1
  17. package/esm/http/http-request.d.mts +2 -3
  18. package/esm/http/http-request.d.mts.map +1 -1
  19. package/esm/http/http-request.mjs +7 -5
  20. package/esm/http/http-request.mjs.map +1 -1
  21. package/esm/index.d.mts +6 -2
  22. package/esm/index.mjs +2 -1
  23. package/esm/mcp/client.mjs +2 -1
  24. package/esm/mcp/client.mjs.map +1 -1
  25. package/esm/mcp/index.d.mts +5 -4
  26. package/esm/mcp/index.d.mts.map +1 -1
  27. package/esm/mcp/index.mjs +2 -1
  28. package/esm/mcp/index.mjs.map +1 -1
  29. package/esm/mcp/json-schema-to-standard.d.mts +1 -3
  30. package/esm/mcp/json-schema-to-standard.d.mts.map +1 -1
  31. package/esm/mcp/protocol.d.mts +1 -2
  32. package/esm/mcp/protocol.d.mts.map +1 -1
  33. package/esm/mcp/result.d.mts +17 -0
  34. package/esm/mcp/result.d.mts.map +1 -0
  35. package/esm/mcp/result.mjs +85 -0
  36. package/esm/mcp/result.mjs.map +1 -0
  37. package/esm/mcp/serve-http.mjs +64 -25
  38. package/esm/mcp/serve-http.mjs.map +1 -1
  39. package/esm/mcp/serve-requests.mjs +62 -0
  40. package/esm/mcp/serve-requests.mjs.map +1 -0
  41. package/esm/mcp/serve.d.mts +5 -5
  42. package/esm/mcp/serve.d.mts.map +1 -1
  43. package/esm/mcp/serve.mjs +97 -18
  44. package/esm/mcp/serve.mjs.map +1 -1
  45. package/esm/mcp/transport.d.mts +4 -5
  46. package/esm/mcp/transport.d.mts.map +1 -1
  47. package/esm/mcp/transport.mjs +12 -6
  48. package/esm/mcp/transport.mjs.map +1 -1
  49. package/esm/mcp/transport.type.d.mts +2 -2
  50. package/esm/mcp/transport.type.d.mts.map +1 -1
  51. package/esm/register.d.mts +3 -4
  52. package/esm/register.d.mts.map +1 -1
  53. package/esm/utility/calculator.d.mts +1 -3
  54. package/esm/utility/calculator.d.mts.map +1 -1
  55. package/esm/utility/date-time.d.mts +3 -5
  56. package/esm/utility/date-time.d.mts.map +1 -1
  57. package/esm/utility/date-time.mjs +2 -1
  58. package/esm/utility/date-time.mjs.map +1 -1
  59. package/esm/utility/index.d.mts +2 -1
  60. package/esm/utility/index.mjs +1 -1
  61. package/esm/web/fetch-url.d.mts +2 -3
  62. package/esm/web/fetch-url.d.mts.map +1 -1
  63. package/esm/web/fetch-url.mjs +2 -1
  64. package/esm/web/fetch-url.mjs.map +1 -1
  65. package/esm/web/index.d.mts +2 -1
  66. package/esm/web/index.mjs +1 -1
  67. package/esm/web/web-search.d.mts +2 -3
  68. package/esm/web/web-search.d.mts.map +1 -1
  69. package/esm/web/web-search.mjs +3 -4
  70. package/esm/web/web-search.mjs.map +1 -1
  71. package/llms-full.txt +122 -3
  72. package/llms.txt +1 -1
  73. package/package.json +2 -2
  74. package/skills/connect-mcp-server/SKILL.md +15 -0
  75. package/skills/expose-as-mcp-server/SKILL.md +107 -3
@@ -8,13 +8,13 @@
8
8
  * default policy allows only `"GET"`; mutating methods are opt-in via
9
9
  * {@link HttpRequestOptions.allowMethods}.
10
10
  */
11
- type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
11
+ export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
12
12
  /**
13
13
  * Construction options for `ai.tools.http`. These bound what the model
14
14
  * is allowed to do — the model supplies the per-call URL / method /
15
15
  * body within these rails.
16
16
  */
17
- interface HttpRequestOptions {
17
+ export interface HttpRequestOptions {
18
18
  /**
19
19
  * Override the tool name exposed to the LLM.
20
20
  *
@@ -68,7 +68,7 @@ interface HttpRequestOptions {
68
68
  /**
69
69
  * The validated input shape the model passes to `http_request`.
70
70
  */
71
- interface HttpRequestInput {
71
+ export interface HttpRequestInput {
72
72
  /**
73
73
  * HTTP method. Must be one of {@link HttpRequestOptions.allowMethods}
74
74
  * (defaults to `"GET"` when omitted).
@@ -90,7 +90,7 @@ interface HttpRequestInput {
90
90
  /**
91
91
  * The `http_request` tool's output.
92
92
  */
93
- interface HttpRequestResult {
93
+ export interface HttpRequestResult {
94
94
  /** HTTP status code of the response. */
95
95
  status: number;
96
96
  /** Response headers, lower-cased keys. */
@@ -104,5 +104,4 @@ interface HttpRequestResult {
104
104
  truncated: boolean;
105
105
  }
106
106
  //#endregion
107
- export { HttpMethod, HttpRequestInput, HttpRequestOptions, HttpRequestResult };
108
107
  //# sourceMappingURL=http.type.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/http.type.ts"],"mappings":";;AAUA;;;;AAAsB;AAOtB;;;KAPY,UAAA;;;;;;UAOK,kBAAA;EAqCf;;;;;EA/BA,IAAA;EAiDe;;;;EA5Cf,OAAA;EAiDS;;;;;;EA1CT,YAAA,GAAe,UAAA;EA4DA;;;;;EAtDf,UAAA;EA0DS;;;;AAOA;;;;;;EAtDT,mBAAA;;EAEA,OAAA,GAAU,MAAM;;;;;;EAMhB,SAAA;;;;;;EAMA,QAAA;AAAA;;;;UAMe,gBAAA;;;;;EAKf,MAAA,GAAS,UAAA;;;;;EAKT,GAAA;;EAEA,OAAA,GAAU,MAAM;;;;;EAKhB,IAAA;AAAA;;;;UAMe,iBAAA;;EAEf,MAAA;;EAEA,OAAA,EAAS,MAAM;;;;;EAKf,IAAA;;EAEA,SAAA;AAAA"}
1
+ {"version":3,"file":"http.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/http.type.ts"],"mappings":";;;;;;;;;;YAUY;;;;;;iBAOK;;;;;;EAMf;;;;;EAKA;;;;;;;EAOA,eAAe;;;;;;EAMf;;;;;;;;;;;EAWA;;EAEA,UAAU;;;;;;EAMV;;;;;;EAMA;;;;;iBAMe;;;;;EAKf,SAAS;;;;;EAKT;;EAEA,UAAU;;;;;EAKV;;;;;iBAMe;;EAEf;;EAEA,SAAS;;;;;EAKT;;EAEA"}
@@ -2,4 +2,5 @@ import { FetchUrlExtract, FetchUrlInput, FetchUrlOptions, FetchUrlResult, Search
2
2
  import { HttpMethod, HttpRequestInput, HttpRequestOptions, HttpRequestResult } from "./http.type.mjs";
3
3
  import { CalculatorInput, CalculatorOptions, CalculatorResult, DateTimeInput, DateTimeOp, DateTimeOptions, DateTimeResult } from "./utility.type.mjs";
4
4
  import { JsonRpcError, JsonRpcId, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse, JsonRpcVersion, McpClient, McpClientOptions, McpContentBlock, McpToolCallResult, McpToolDescriptor, McpTransport } from "./mcp.type.mjs";
5
- import { McpGroupedToolSource, McpHttpAuth, McpHttpRequestInfo, McpHttpServeHandle, McpHttpServeTransport, McpPromptArgument, McpPromptMessage, McpServeCallContext, McpServeHandle, McpServeOptions, McpServePrompt, McpServeResource, McpServeSource, McpServeTransport, McpServer, McpToolSource } from "./mcp-serve.type.mjs";
5
+ import { McpBeforeCall, McpCallRefusal, McpGroupedToolSource, McpHttpAuth, McpHttpRequestInfo, McpHttpServeHandle, McpHttpServeTransport, McpPromptArgument, McpPromptMessage, McpServeCallContext, McpServeHandle, McpServeOptions, McpServePrompt, McpServeResource, McpServeSource, McpServeToolContext, McpServeTransport, McpServer, McpStdioServeTransport, McpToolSource } from "./mcp-serve.type.mjs";
6
+ export type { CalculatorInput, CalculatorOptions, CalculatorResult, DateTimeInput, DateTimeOp, DateTimeOptions, DateTimeResult, FetchUrlExtract, FetchUrlInput, FetchUrlOptions, FetchUrlResult, HttpMethod, HttpRequestInput, HttpRequestOptions, HttpRequestResult, JsonRpcError, JsonRpcId, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse, JsonRpcVersion, McpBeforeCall, McpCallRefusal, McpClient, McpClientOptions, McpContentBlock, McpGroupedToolSource, McpHttpAuth, McpHttpRequestInfo, McpHttpServeHandle, McpHttpServeTransport, McpPromptArgument, McpPromptMessage, McpServeCallContext, McpServeHandle, McpServeOptions, McpServePrompt, McpServeResource, McpServeSource, McpServeToolContext, McpServeTransport, McpServer, McpStdioServeTransport, McpToolCallResult, McpToolDescriptor, McpToolSource, McpTransport, SearchProvider, WebSearchInput, WebSearchOptions, WebSearchResult, WebSearchResultItem };
@@ -1,6 +1,5 @@
1
- import { McpContentBlock } from "./mcp.type.mjs";
1
+ import { JsonRpcId, McpContentBlock, McpToolCallResult } from "./mcp.type.mjs";
2
2
  import { JsonSchemaTarget, ToolContract, ToolRequestContext } from "@warlock.js/ai";
3
-
4
3
  //#region ../../packages/ai-tools/src/contracts/mcp-serve.type.d.ts
5
4
  /**
6
5
  * Type contracts for `ai.mcp.serve(source, options)` — exposing local
@@ -12,7 +11,7 @@ import { JsonSchemaTarget, ToolContract, ToolRequestContext } from "@warlock.js/
12
11
  * One set of tools: an object that can enumerate its `ToolContract`s (a
13
12
  * built agent / supervisor / orchestrator / workspace), or a literal array.
14
13
  */
15
- type McpToolSource = {
14
+ export type McpToolSource = {
16
15
  tools(): ToolContract[];
17
16
  } | ToolContract[];
18
17
  /**
@@ -23,8 +22,9 @@ type McpToolSource = {
23
22
  * @example
24
23
  * { groups: { github: githubAgent, files: [readFile, writeFile] } }
25
24
  */
26
- type McpGroupedToolSource = {
27
- /** Tool sets keyed by group name. */groups: Record<string, McpToolSource>;
25
+ export type McpGroupedToolSource = {
26
+ /** Tool sets keyed by group name. */
27
+ groups: Record<string, McpToolSource>;
28
28
  };
29
29
  /**
30
30
  * What `ai.mcp.serve` exposes as tools — one tool set, or several named
@@ -32,22 +32,24 @@ type McpGroupedToolSource = {
32
32
  * {@link import("../errors").McpServeError} (`type: "collision"`) when
33
33
  * `serve()` is called.
34
34
  */
35
- type McpServeSource = McpToolSource | McpGroupedToolSource;
35
+ export type McpServeSource = McpToolSource | McpGroupedToolSource;
36
36
  /**
37
37
  * Normalised metadata of an inbound HTTP request, handed to a custom
38
38
  * {@link McpHttpAuth.authorize} hook. Tools receive the same headers on
39
39
  * `ctx.request` (see `ToolRequestContext` in `@warlock.js/ai`).
40
40
  */
41
- type McpHttpRequestInfo = ToolRequestContext & {
42
- /** The HTTP method, upper-case (`"POST"`, `"GET"`, …). */method: string; /** The request path, without the query string. */
41
+ export type McpHttpRequestInfo = ToolRequestContext & {
42
+ /** The HTTP method, upper-case (`"POST"`, `"GET"`, …). */
43
+ method: string;
44
+ /** The request path, without the query string. */
43
45
  path: string;
44
46
  };
45
47
  /**
46
48
  * Authentication for an HTTP-served MCP endpoint. At least one of
47
- * `bearer` / `authorize` is required; when both are set, a request must
48
- * pass both. A request that fails gets HTTP 401 before its body is read.
49
+ * `bearer` / `authorize` / `authenticate` is required; all configured checks
50
+ * must pass, in that order. A request that fails gets HTTP 401 before its body is read.
49
51
  */
50
- type McpHttpAuth = {
52
+ export type McpHttpAuth = {
51
53
  /**
52
54
  * Accepted bearer token(s), matched against
53
55
  * `Authorization: Bearer <token>`. Compared in constant time over
@@ -62,6 +64,12 @@ type McpHttpAuth = {
62
64
  * request (fails closed).
63
65
  */
64
66
  authorize?: (request: McpHttpRequestInfo) => boolean | Promise<boolean>;
67
+ /**
68
+ * Resolve the caller after Host/Origin, bearer and authorize checks.
69
+ * Undefined or a thrown/rejected error denies with 401 and a Bearer challenge.
70
+ * Any other value becomes context.principal (including null or false).
71
+ */
72
+ authenticate?: (request: McpHttpRequestInfo) => unknown | Promise<unknown>;
65
73
  };
66
74
  /**
67
75
  * Serve over the MCP Streamable HTTP transport.
@@ -69,8 +77,9 @@ type McpHttpAuth = {
69
77
  * Binds `127.0.0.1` by default. Binding any non-loopback address
70
78
  * requires `auth`; `start()` throws otherwise.
71
79
  */
72
- type McpHttpServeTransport = {
73
- /** Streamable HTTP transport. */type: "http";
80
+ export type McpHttpServeTransport = {
81
+ /** Streamable HTTP transport. */
82
+ type: "http";
74
83
  /**
75
84
  * Interface to bind. Loopback (`127.0.0.1`, `::1`, `localhost`) needs
76
85
  * no auth; anything else (`0.0.0.0`, a LAN address) requires `auth`.
@@ -90,7 +99,8 @@ type McpHttpServeTransport = {
90
99
  *
91
100
  * @default "/mcp"
92
101
  */
93
- path?: string; /** Bearer token(s) and/or a custom authorize hook. Required off loopback. */
102
+ path?: string;
103
+ /** Bearer, authorize and/or authenticate checks. Required off loopback. */
94
104
  auth?: McpHttpAuth;
95
105
  /**
96
106
  * Extra browser origins allowed to call the endpoint, as full origins
@@ -128,25 +138,52 @@ type McpHttpServeTransport = {
128
138
  * - `"stdio"` — serve JSON-RPC over this process's stdin/stdout.
129
139
  * - `"http"` — serve MCP Streamable HTTP (see {@link McpHttpServeTransport}).
130
140
  */
131
- type McpServeTransport = {
141
+ export type McpServeTransport = McpStdioServeTransport | McpHttpServeTransport;
142
+ /** Local caller identity for the stdio connection. */
143
+ export type McpStdioServeTransport = {
132
144
  type: "stdio";
133
- } | McpHttpServeTransport;
145
+ /** Static trusted identity; never read from tool arguments. */
146
+ principal?: unknown;
147
+ /** Per-request identity provider; takes precedence over principal when set. */
148
+ principalProvider?: (context: McpServeCallContext) => unknown | Promise<unknown>;
149
+ };
134
150
  /**
135
151
  * Per-call context handed to resource readers and prompt builders (tools
136
152
  * receive the same data on their `ToolContext`).
137
153
  */
138
- type McpServeCallContext = {
139
- /** The inbound HTTP request; absent over stdio. */request?: McpHttpRequestInfo; /** Aborted when an HTTP server's `close()` gives up draining. */
154
+ export type McpServeCallContext = {
155
+ /** The inbound HTTP request; absent over stdio. */
156
+ request?: McpHttpRequestInfo;
157
+ /** JSON-RPC request id; populated by the serving boundary. */
158
+ requestId?: JsonRpcId;
159
+ /** Caller identity from HTTP authenticate or the stdio transport options. */
160
+ principal?: unknown;
161
+ /** Aborted on cancellation, client disconnect or server shutdown. */
140
162
  signal?: AbortSignal;
141
163
  };
164
+ /** Context supplied to beforeCall after successful tool input validation. */
165
+ export type McpServeToolContext = McpServeCallContext & {
166
+ requestId: JsonRpcId;
167
+ };
168
+ /** Native MCP error result returned by a beforeCall policy hook. */
169
+ export type McpCallRefusal = McpToolCallResult & {
170
+ isError: true;
171
+ };
172
+ /** Validate policy before execute; a refusal bypasses result serialization. */
173
+ export type McpBeforeCall = (context: McpServeToolContext, tool: ToolContract, input: unknown) => void | McpCallRefusal | Promise<void | McpCallRefusal>;
142
174
  /**
143
175
  * A static MCP resource served by `resources/list` + `resources/read`.
144
176
  */
145
- type McpServeResource = {
146
- /** Unique resource URI, e.g. `"docs://handbook"`. */uri: string; /** Resource name. */
147
- name: string; /** Optional display title. */
148
- title?: string; /** Optional description. */
149
- description?: string; /** Optional MIME type, echoed on the read result. */
177
+ export type McpServeResource = {
178
+ /** Unique resource URI, e.g. `"docs://handbook"`. */
179
+ uri: string;
180
+ /** Resource name. */
181
+ name: string;
182
+ /** Optional display title. */
183
+ title?: string;
184
+ /** Optional description. */
185
+ description?: string;
186
+ /** Optional MIME type, echoed on the read result. */
150
187
  mimeType?: string;
151
188
  /**
152
189
  * Produce the resource's contents. A string is sent as `text`; bytes
@@ -155,23 +192,32 @@ type McpServeResource = {
155
192
  read(context: McpServeCallContext): string | Uint8Array | Promise<string | Uint8Array>;
156
193
  };
157
194
  /** One declared argument of an {@link McpServePrompt}. */
158
- type McpPromptArgument = {
159
- /** Argument name. */name: string; /** Optional description shown to the user. */
160
- description?: string; /** When `true`, `prompts/get` without it answers an invalid-params error. */
195
+ export type McpPromptArgument = {
196
+ /** Argument name. */
197
+ name: string;
198
+ /** Optional description shown to the user. */
199
+ description?: string;
200
+ /** When `true`, `prompts/get` without it answers an invalid-params error. */
161
201
  required?: boolean;
162
202
  };
163
203
  /** One message of a prompt returned by `prompts/get`. */
164
- type McpPromptMessage = {
165
- /** Who speaks the message. */role: "user" | "assistant"; /** The content block (`{ type: "text", text }` for plain text). */
204
+ export type McpPromptMessage = {
205
+ /** Who speaks the message. */
206
+ role: "user" | "assistant";
207
+ /** The content block (`{ type: "text", text }` for plain text). */
166
208
  content: McpContentBlock;
167
209
  };
168
210
  /**
169
211
  * A prompt template served by `prompts/list` + `prompts/get`.
170
212
  */
171
- type McpServePrompt = {
172
- /** Unique prompt name. */name: string; /** Optional display title. */
173
- title?: string; /** Optional description. */
174
- description?: string; /** Declared arguments. */
213
+ export type McpServePrompt = {
214
+ /** Unique prompt name. */
215
+ name: string;
216
+ /** Optional display title. */
217
+ title?: string;
218
+ /** Optional description. */
219
+ description?: string;
220
+ /** Declared arguments. */
175
221
  arguments?: McpPromptArgument[];
176
222
  /**
177
223
  * Build the prompt. A string becomes one `user` text message.
@@ -184,7 +230,7 @@ type McpServePrompt = {
184
230
  * Options for `ai.mcp.serve(source, options)` (Direction B: local
185
231
  * primitive → MCP server other clients can consume).
186
232
  */
187
- interface McpServeOptions {
233
+ export interface McpServeOptions {
188
234
  /** Server name advertised in the `initialize` response. */
189
235
  name: string;
190
236
  /**
@@ -207,6 +253,21 @@ interface McpServeOptions {
207
253
  * @default "draft-2020-12"
208
254
  */
209
255
  schemaTarget?: JsonSchemaTarget;
256
+ /**
257
+ * Opt in to native MCP result detection for objects containing `content`,
258
+ * `isError`, `structuredContent` or `_meta`. Other values still become text.
259
+ * Override per tool with `meta.mcpResults: "native" | "text"`.
260
+ * Explicit `mcpResult()` values always pass through after validation.
261
+ *
262
+ * @default "text"
263
+ */
264
+ results?: "text" | "native";
265
+ /**
266
+ * Runs after schema validation and before invocation. Input is the validated
267
+ * value and should be treated as read-only. Return an isError:true native
268
+ * result to refuse; throw to answer with a JSON-RPC invalid-params error.
269
+ */
270
+ beforeCall?: McpBeforeCall;
210
271
  /**
211
272
  * Prefix each tool of a grouped source (`{ groups: { … } }`) with its
212
273
  * group name. `true` exposes `<group>_<tool>`; a function builds the
@@ -224,7 +285,7 @@ interface McpServeOptions {
224
285
  * What a started server resolves with. Over HTTP, `url` is the full
225
286
  * endpoint (`http://127.0.0.1:53211/mcp`); over stdio it is absent.
226
287
  */
227
- interface McpServeHandle {
288
+ export interface McpServeHandle {
228
289
  /** The endpoint URL (HTTP only). */
229
290
  url?: string;
230
291
  /**
@@ -235,14 +296,14 @@ interface McpServeHandle {
235
296
  close(): Promise<void>;
236
297
  }
237
298
  /** The handle of an HTTP-served MCP endpoint — `url` is always set. */
238
- interface McpHttpServeHandle extends McpServeHandle {
299
+ export interface McpHttpServeHandle extends McpServeHandle {
239
300
  /** The endpoint URL, e.g. `http://127.0.0.1:53211/mcp`. */
240
301
  url: string;
241
302
  }
242
303
  /**
243
304
  * A `ai.mcp.serve` server. Nothing listens until `start()`.
244
305
  */
245
- interface McpServer<THandle extends McpServeHandle = McpServeHandle> {
306
+ export interface McpServer<THandle extends McpServeHandle = McpServeHandle> {
246
307
  /**
247
308
  * Begin serving. Over HTTP, resolves once the port is bound with
248
309
  * `{ url, close }`. Calling it again while running resolves the same
@@ -253,5 +314,4 @@ interface McpServer<THandle extends McpServeHandle = McpServeHandle> {
253
314
  stop(): Promise<void>;
254
315
  }
255
316
  //#endregion
256
- export { McpGroupedToolSource, McpHttpAuth, McpHttpRequestInfo, McpHttpServeHandle, McpHttpServeTransport, McpPromptArgument, McpPromptMessage, McpServeCallContext, McpServeHandle, McpServeOptions, McpServePrompt, McpServeResource, McpServeSource, McpServeTransport, McpServer, McpToolSource };
257
317
  //# sourceMappingURL=mcp-serve.type.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-serve.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/mcp-serve.type.ts"],"mappings":";;;;;;AAcA;;;;;;;;KAAY,aAAA;EAAkB,KAAA,IAAS,YAAA;AAAA,IAAmB,YAAY;;;;;;;AAYhC;AAStC;KAXY,oBAAA;uCAEV,MAAA,EAAQ,MAAM,SAAS,aAAA;AAAA;AAgBzB;;;;;;AAAA,KAPY,cAAA,GAAiB,aAAA,GAAgB,oBAAoB;;AAW3D;AAQN;;;KAZY,kBAAA,GAAqB,kBAAkB;EAoBjD,0DAlBA,MAAA,UAwBsB;EAtBtB,IAAA;AAAA;;AAsB8D;AAShE;;;KAvBY,WAAA;EAyBV;;;;;;;EAjBA,MAAA;EA6DA;;;AAOc;AAShB;EAvEE,SAAA,IAAa,OAAA,EAAS,kBAAA,eAAiC,OAAO;AAAA;;AAuES;AAMzE;;;;KApEY,qBAAA;EAsEA,iCApEV,IAAA;EAsES;;AAAW;AAMtB;;;EArEE,IAAA;EAoF6C;;;;;;EA7E7C,IAAA;EAoEA;;;;;EA9DA,IAAA,WAuE6C;EArE7C,IAAA,GAAO,WAAW;EAqEyD;;AAAU;AAIvF;;;;;EAhEE,cAAA;EAsEA;;AAAQ;AAIV;;;EAnEE,YAAA;EAqEA;;;;AAEwB;EAjExB,YAAA;EAuEwB;;;;;;EAhExB,cAAA;AAAA;;;;;;;KASU,iBAAA;EAAsB,IAAA;AAAA,IAAkB,qBAAqB;;;;;KAM7D,mBAAA;EAkEwC,mDAhElD,OAAA,GAAU,kBAAA,EAgEwD;EA9DlE,MAAA,GAAS,WAAW;AAAA;;;;KAMV,gBAAA;EAiGA,qDA/FV,GAAA,UA+FwB;EA7FxB,IAAA,UAmEA;EAjEA,KAAA,WAuEY;EArEZ,WAAA,WA6Ee;EA3Ef,QAAA;EAmF8B;;;;EA9E9B,IAAA,CAAK,OAAA,EAAS,mBAAA,YAA+B,UAAA,GAAa,OAAA,UAAiB,UAAA;AAAA;;KAIjE,iBAAA;EAqFK,qBAnFf,IAAA;EAEA,WAAA,WAmFA;EAjFA,QAAA;AAAA;;KAIU,gBAAA;EAuFK,8BArFf,IAAA;EAEA,OAAA,EAAS,eAAe;AAAA;AA2F1B;;;AAAA,KArFY,cAAA;EAqFgD,0BAnF1D,IAAA,UAyFS;EAvFT,KAAA,WAyFe;EAvFf,WAAA,WA+EyB;EA7EzB,SAAA,GAAY,iBAAA;EA6E8C;;;;;EAvE1D,GAAA,CACE,IAAA,EAAM,MAAA,kBACN,OAAA,EAAS,mBAAA,YACC,gBAAA,KAAqB,OAAA,UAAiB,gBAAA;AAAA;AA4EnC;;;;AAAA,UArEA,eAAA;;EAEf,IAAA;;;;;;EAMA,OAAA;;;;;;EAMA,SAAA,GAAY,iBAAA;;;;;;;;EAQZ,YAAA,GAAe,gBAAA;;;;;;;;EAQf,eAAA,eAA8B,KAAA,UAAe,QAAA;;EAE7C,SAAA,GAAY,gBAAA;;EAEZ,OAAA,GAAU,cAAA;AAAA;;;;;UAOK,cAAA;;EAEf,GAAA;;;;;;EAMA,KAAA,IAAS,OAAO;AAAA;;UAID,kBAAA,SAA2B,cAAc;;EAExD,GAAG;AAAA;;;;UAMY,SAAA,iBAA0B,cAAA,GAAiB,cAAA;;;;;;EAM1D,KAAA,IAAS,OAAA,CAAQ,OAAA;;EAEjB,IAAA,IAAQ,OAAA;AAAA"}
1
+ {"version":3,"file":"mcp-serve.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/mcp-serve.type.ts"],"mappings":";;;;;;;;;;;;;YAcY;EAAkB,SAAS;IAAmB;;;;;;;;;YAU9C;;EAEV,QAAQ,eAAe;;;;;;;;YASb,iBAAiB,gBAAgB;;;;;;YAOjC,qBAAqB;;EAE/B;;EAEA;;;;;;;YAQU;;;;;;;;EAQV;;;;;;EAMA,aAAa,SAAS,iCAAiC;;;;;;EAMvD,gBAAgB,SAAS,iCAAiC;;;;;;;;YAShD;;EAEV;;;;;;;EAOA;;;;;;;EAOA;;;;;;EAMA;;EAEA,OAAO;;;;;;;;;EASP;;;;;;;EAOA;;;;;;EAMA;;;;;;;EAOA;;;;;;;;YASU,oBAAoB,yBAAyB;;YAG7C;EACV;;EAEA;;EAEA,qBAAqB,SAAS,kCAAkC;;;;;;YAOtD;;EAEV,UAAU;;EAEV,YAAY;;EAEZ;;EAEA,SAAS;;;YAIC,sBAAsB;EAAwB,WAAW;;;YAGzD,iBAAiB;EAAsB;;;YAGvC,iBACV,SAAS,qBACT,MAAM,cACN,0BACU,iBAAiB,eAAe;;;;YAKhC;;EAEV;;EAEA;;EAEA;;EAEA;;EAEA;;;;;EAKA,KAAK,SAAS,+BAA+B,aAAa,iBAAiB;;;YAIjE;;EAEV;;EAEA;;EAEA;;;YAIU;;EAEV;;EAEA,SAAS;;;;;YAMC;;EAEV;;EAEA;;EAEA;;EAEA,YAAY;;;;;;EAMZ,IACE,MAAM,wBACN,SAAS,+BACC,qBAAqB,iBAAiB;;;;;;iBAOnC;;EAEf;;;;;;EAMA;;;;;;EAMA,YAAY;;;;;;;;EAQZ,eAAe;;;;;;;;;EASf;;;;;;EAMA,aAAa;;;;;;;;EAQb,8BAA8B,eAAe;;EAE7C,YAAY;;EAEZ,UAAU;;;;;;iBAOK;;EAEf;;;;;;EAMA,SAAS;;;iBAIM,2BAA2B;;EAE1C;;;;;iBAMe,UAAU,gBAAgB,iBAAiB;;;;;;EAM1D,SAAS,QAAQ;;EAEjB,QAAQ"}
@@ -1,5 +1,4 @@
1
1
  import { ToolContract } from "@warlock.js/ai";
2
-
3
2
  //#region ../../packages/ai-tools/src/contracts/mcp.type.d.ts
4
3
  /**
5
4
  * Type contracts for the Model Context Protocol surface — the
@@ -19,9 +18,12 @@ import { ToolContract } from "@warlock.js/ai";
19
18
  * `node:readline`; no dependency).
20
19
  * - `"http"` — Streamable HTTP transport against `url`.
21
20
  */
22
- type McpTransport = {
23
- /** stdio transport — a spawned child process. */type: "stdio"; /** Executable to spawn (e.g. `"npx"`). */
24
- command: string; /** Arguments passed to `command`. */
21
+ export type McpTransport = {
22
+ /** stdio transport — a spawned child process. */
23
+ type: "stdio";
24
+ /** Executable to spawn (e.g. `"npx"`). */
25
+ command: string;
26
+ /** Arguments passed to `command`. */
25
27
  args?: string[];
26
28
  /**
27
29
  * Additional environment for the child. Explicit values override the
@@ -30,15 +32,18 @@ type McpTransport = {
30
32
  */
31
33
  env?: Record<string, string>;
32
34
  } | {
33
- /** Streamable HTTP transport. */type: "http"; /** The server endpoint URL. */
34
- url: string; /** Static headers sent with every request (e.g. auth). */
35
+ /** Streamable HTTP transport. */
36
+ type: "http";
37
+ /** The server endpoint URL. */
38
+ url: string;
39
+ /** Static headers sent with every request (e.g. auth). */
35
40
  headers?: Record<string, string>;
36
41
  };
37
42
  /**
38
43
  * Options for the `ai.mcp(server, options)` client (Direction A:
39
44
  * external server → local agent tools).
40
45
  */
41
- interface McpClientOptions {
46
+ export interface McpClientOptions {
42
47
  /**
43
48
  * Prefix prepended to each remote tool name to avoid colliding with
44
49
  * local tools, e.g. `"github."`. The author owns uniqueness — there
@@ -71,7 +76,7 @@ interface McpClientOptions {
71
76
  /**
72
77
  * The client handle returned by `ai.mcp(server, options)`.
73
78
  */
74
- interface McpClient {
79
+ export interface McpClient {
75
80
  /**
76
81
  * Lazily run the `initialize` handshake + `tools/list`, mapping each
77
82
  * remote tool to a {@link ToolContract}. Cached after the first call.
@@ -81,13 +86,13 @@ interface McpClient {
81
86
  close(): Promise<void>;
82
87
  }
83
88
  /** The JSON-RPC version literal every message carries. */
84
- type JsonRpcVersion = "2.0";
89
+ export type JsonRpcVersion = "2.0";
85
90
  /** A JSON-RPC id — a string or number (we never send notifications with `null`). */
86
- type JsonRpcId = string | number;
91
+ export type JsonRpcId = string | number;
87
92
  /**
88
93
  * A JSON-RPC request: a method invocation that expects a response.
89
94
  */
90
- interface JsonRpcRequest<TParams = unknown> {
95
+ export interface JsonRpcRequest<TParams = unknown> {
91
96
  jsonrpc: JsonRpcVersion;
92
97
  id: JsonRpcId;
93
98
  /** The RPC method name, e.g. `"tools/list"`. */
@@ -98,7 +103,7 @@ interface JsonRpcRequest<TParams = unknown> {
98
103
  /**
99
104
  * A JSON-RPC notification: a method invocation with no response.
100
105
  */
101
- interface JsonRpcNotification<TParams = unknown> {
106
+ export interface JsonRpcNotification<TParams = unknown> {
102
107
  jsonrpc: JsonRpcVersion;
103
108
  /** The RPC method name. */
104
109
  method: string;
@@ -108,7 +113,7 @@ interface JsonRpcNotification<TParams = unknown> {
108
113
  /**
109
114
  * A JSON-RPC error object, carried in an error response.
110
115
  */
111
- interface JsonRpcError {
116
+ export interface JsonRpcError {
112
117
  /** Numeric error code per the JSON-RPC spec. */
113
118
  code: number;
114
119
  /** Human-readable error message. */
@@ -119,7 +124,7 @@ interface JsonRpcError {
119
124
  /**
120
125
  * A JSON-RPC response — exactly one of `result` / `error` is present.
121
126
  */
122
- interface JsonRpcResponse<TResult = unknown> {
127
+ export interface JsonRpcResponse<TResult = unknown> {
123
128
  jsonrpc: JsonRpcVersion;
124
129
  id: JsonRpcId;
125
130
  /** Present on success. */
@@ -130,19 +135,21 @@ interface JsonRpcResponse<TResult = unknown> {
130
135
  /**
131
136
  * Any inbound JSON-RPC message the transport may surface.
132
137
  */
133
- type JsonRpcMessage = JsonRpcRequest | JsonRpcNotification | JsonRpcResponse;
138
+ export type JsonRpcMessage = JsonRpcRequest | JsonRpcNotification | JsonRpcResponse;
134
139
  /**
135
140
  * One tool descriptor as returned by an MCP server's `tools/list`. Its
136
141
  * `inputSchema` is a JSON Schema object the client converts into a
137
142
  * Standard Schema for the adapted {@link ToolContract}.
138
143
  */
139
- interface McpToolDescriptor {
144
+ export interface McpToolDescriptor {
140
145
  /** The remote tool's name (before any `namePrefix`). */
141
146
  name: string;
142
147
  /** Human-readable description forwarded to the LLM. */
143
148
  description?: string;
144
149
  /** JSON Schema for the tool's arguments. */
145
150
  inputSchema?: Record<string, unknown>;
151
+ /** JSON Schema for structured results, when declared by the server. */
152
+ outputSchema?: Record<string, unknown>;
146
153
  }
147
154
  /**
148
155
  * One content block in an MCP `tools/call` result. MCP's wire field is
@@ -150,7 +157,7 @@ interface McpToolDescriptor {
150
157
  * `kind` for a content variant, the client maps it onto `type` so our
151
158
  * shapes only ever expose `type`.
152
159
  */
153
- interface McpContentBlock {
160
+ export interface McpContentBlock {
154
161
  /** The content variant (`"text"`, `"image"`, `"resource"`, …). */
155
162
  type: string;
156
163
  /** Text payload, present for `type: "text"`. */
@@ -163,12 +170,15 @@ interface McpContentBlock {
163
170
  * tool-level failure the client rethrows so `tool()` wraps it as a
164
171
  * {@link import("@warlock.js/ai").ToolExecutionError}.
165
172
  */
166
- interface McpToolCallResult {
173
+ export interface McpToolCallResult {
167
174
  /** Ordered content blocks produced by the tool. */
168
175
  content: McpContentBlock[];
169
176
  /** True when the call represents a tool-level error. */
170
177
  isError?: boolean;
178
+ /** Structured tool output (governed by the tool's outputSchema, if present). */
179
+ structuredContent?: Record<string, unknown>;
180
+ /** Protocol metadata forwarded without interpretation. */
181
+ _meta?: Record<string, unknown>;
171
182
  }
172
183
  //#endregion
173
- export { JsonRpcError, JsonRpcId, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse, JsonRpcVersion, McpClient, McpClientOptions, McpContentBlock, McpToolCallResult, McpToolDescriptor, McpTransport };
174
184
  //# sourceMappingURL=mcp.type.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/mcp.type.ts"],"mappings":";;;;;AAqBA;;;;;;;;;;;;;;AAqBsB;AAOtB;KA5BY,YAAA;mDAGN,IAAA,WA+BJ;EA7BI,OAAA,UA+BM;EA7BN,IAAA;EAiDJ;;;AAAoB;AAMtB;EAjDM,GAAA,GAAM,MAAA;AAAA;EAsDO,iCAlDb,IAAA,UAoDK;EAlDL,GAAA,UAkDY;EAhDZ,OAAA,GAAU,MAAM;AAAA;;;;;UAOL,gBAAA;EAqDL;;;;AAAc;EA/CxB,UAAA;EAkDmB;EAhDnB,MAAA,IAAU,QAAA;EAgDS;AAAA;AAKrB;;;EA/CE,SAAA;EAiDI;;;;;;;;;;;;;EAnCJ,MAAA,GAAS,WAAW;AAAA;;;;UAML,SAAA;EAwCf;;;;EAnCA,KAAA,IAAS,OAAA,CAAQ,YAAA;EAuCD;EArChB,KAAA,IAAS,OAAA;AAAA;;KAYC,cAAA;;KAGA,SAAA;;;;UAKK,cAAA;EACf,OAAA,EAAS,cAAA;EACT,EAAA,EAAI,SAAA;EAiC0B;EA/B9B,MAAA;EAiCI;EA/BJ,MAAA,GAAS,OAAA;AAAA;;;;UAMM,mBAAA;EACf,OAAA,EAAS,cAAA;EAwBT;EAtBA,MAAA;EAwBA;EAtBA,MAAA,GAAS,OAAO;AAAA;;;AAwBI;UAlBL,YAAA;EAwBS;EAtBxB,IAAA;EAsB2B;EApB3B,OAAA;EAoBkE;EAlBlE,IAAA;AAAA;;;;UAMe,eAAA;EACf,OAAA,EAAS,cAAA;EACT,EAAA,EAAI,SAAA;EAiB4B;EAfhC,MAAA,GAAS,OAAA;EAqBW;EAnBpB,KAAA,GAAQ,YAAA;AAAA;;;;KAME,cAAA,GAAiB,cAAA,GAAiB,mBAAA,GAAsB,eAAA;AAsBpE;;;;;AAAA,UAfiB,iBAAA;EAqBd;EAnBD,IAAA;EAmBc;EAjBd,WAAA;EAyBgC;EAvBhC,WAAA,GAAc,MAAM;AAAA;;;;;AA2Bb;;UAlBQ,eAAA;;EAEf,IAAA;;EAEA,IAAA;;GAEC,KAAA;AAAA;;;;;;UAQc,iBAAA;;EAEf,OAAA,EAAS,eAAe;;EAExB,OAAA;AAAA"}
1
+ {"version":3,"file":"mcp.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/mcp.type.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;YAqBY;;EAGN;;EAEA;;EAEA;;;;;;EAMA,MAAM;;;EAIN;;EAEA;;EAEA,UAAU;;;;;;iBAOC;;;;;;EAMf;;EAEA,UAAU;;;;;;EAMV;;;;;;;;;;;;;;EAcA,SAAS;;;;;iBAMM;;;;;EAKf,SAAS,QAAQ;;EAEjB,SAAS;;;YAYC;;YAGA;;;;iBAKK,eAAe;EAC9B,SAAS;EACT,IAAI;;EAEJ;;EAEA,SAAS;;;;;iBAMM,oBAAoB;EACnC,SAAS;;EAET;;EAEA,SAAS;;;;;iBAMM;;EAEf;;EAEA;;EAEA;;;;;iBAMe,gBAAgB;EAC/B,SAAS;EACT,IAAI;;EAEJ,SAAS;;EAET,QAAQ;;;;;YAME,iBAAiB,iBAAiB,sBAAsB;;;;;;iBAOnD;;EAEf;;EAEA;;EAEA,cAAc;;EAEd,eAAe;;;;;;;;iBASA;;EAEf;;EAEA;;GAEC;;;;;;;iBAQc;;EAEf,SAAS;;EAET;;EAEA,oBAAoB;;EAEpB,QAAQ"}
@@ -7,7 +7,7 @@
7
7
  /**
8
8
  * Construction options for `ai.tools.calculator`.
9
9
  */
10
- interface CalculatorOptions {
10
+ export interface CalculatorOptions {
11
11
  /**
12
12
  * Override the tool name exposed to the LLM.
13
13
  *
@@ -18,14 +18,14 @@ interface CalculatorOptions {
18
18
  /**
19
19
  * The validated input shape the model passes to `calculator`.
20
20
  */
21
- interface CalculatorInput {
21
+ export interface CalculatorInput {
22
22
  /** An arithmetic expression to evaluate, e.g. `"(3 + 4) * 2"`. */
23
23
  expression: string;
24
24
  }
25
25
  /**
26
26
  * The `calculator` tool's output.
27
27
  */
28
- interface CalculatorResult {
28
+ export interface CalculatorResult {
29
29
  /** The numeric result of evaluating the expression. */
30
30
  result: number;
31
31
  }
@@ -37,11 +37,11 @@ interface CalculatorResult {
37
37
  * - `"diff"` — difference between two instants, in `unit`.
38
38
  * - `"format"` — render `iso` per `format`.
39
39
  */
40
- type DateTimeOp = "now" | "add" | "diff" | "format";
40
+ export type DateTimeOp = "now" | "add" | "diff" | "format";
41
41
  /**
42
42
  * Construction options for `ai.tools.dateTime`.
43
43
  */
44
- interface DateTimeOptions {
44
+ export interface DateTimeOptions {
45
45
  /**
46
46
  * Override the tool name exposed to the LLM.
47
47
  *
@@ -59,7 +59,7 @@ interface DateTimeOptions {
59
59
  * The validated input shape the model passes to `date_time`. Which
60
60
  * fields are required depends on `op` (validated at the seal layer).
61
61
  */
62
- interface DateTimeInput {
62
+ export interface DateTimeInput {
63
63
  /** Which date-time operation to perform. */
64
64
  op: DateTimeOp;
65
65
  /** ISO-8601 instant the operation acts on (`add` / `diff` / `format`). */
@@ -84,7 +84,7 @@ interface DateTimeInput {
84
84
  /**
85
85
  * The `date_time` tool's output.
86
86
  */
87
- interface DateTimeResult {
87
+ export interface DateTimeResult {
88
88
  /**
89
89
  * The result, rendered as a string — an ISO instant, a formatted
90
90
  * date, or a stringified numeric difference depending on `op`.
@@ -92,5 +92,4 @@ interface DateTimeResult {
92
92
  value: string;
93
93
  }
94
94
  //#endregion
95
- export { CalculatorInput, CalculatorOptions, CalculatorResult, DateTimeInput, DateTimeOp, DateTimeOptions, DateTimeResult };
96
95
  //# sourceMappingURL=utility.type.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utility.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/utility.type.ts"],"mappings":";;AASA;;;;AAMM;AAMN;;AANM,UANW,iBAAA;EAcL;AAAA;AAMZ;;;EAdE,IAAI;AAAA;AA2BN;;;AAAA,UArBiB,eAAA;EAqBK;EAnBpB,UAAU;AAAA;;;AAoCK;UA9BA,gBAAA;EAqCa;EAnC5B,MAAM;AAAA;;;;;;;;;KAWI,UAAA;;AA4CJ;AAMR;UA7CiB,eAAA;;;AAkDV;;;EA5CL,IAAA;;;;;;EAMA,eAAe;AAAA;;;;;UAOA,aAAA;;EAEf,EAAA,EAAI,UAAU;;EAEd,GAAA;;;;;;EAMA,IAAA;;EAEA,EAAA;;EAEA,MAAA;;EAEA,IAAA;;EAEA,QAAA;;EAEA,MAAA;AAAA;;;;UAMe,cAAA;;;;;EAKf,KAAK;AAAA"}
1
+ {"version":3,"file":"utility.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/utility.type.ts"],"mappings":";;;;;;;;;iBASiB;;;;;;EAMf;;;;;iBAMe;;EAEf;;;;;iBAMe;;EAEf;;;;;;;;;;YAWU;;;;iBAKK;;;;;;EAMf;;;;;;EAMA;;;;;;iBAOe;;EAEf,IAAI;;EAEJ;;;;;;EAMA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;iBAMe;;;;;EAKf"}
@@ -11,11 +11,11 @@
11
11
  *
12
12
  * Uses `type` as the discriminator everywhere downstream — never `kind`.
13
13
  */
14
- type SearchProvider = "tavily" | "brave" | "serpapi";
14
+ export type SearchProvider = "tavily" | "brave" | "serpapi";
15
15
  /**
16
16
  * Construction options for {@link SearchProvider}-backed web search.
17
17
  */
18
- interface WebSearchOptions {
18
+ export interface WebSearchOptions {
19
19
  /** Which optional search backend to use. Its SDK/HTTP key is a lazy peer. */
20
20
  provider: SearchProvider;
21
21
  /**
@@ -40,7 +40,7 @@ interface WebSearchOptions {
40
40
  /**
41
41
  * The validated input shape the model passes to the web-search tool.
42
42
  */
43
- interface WebSearchInput {
43
+ export interface WebSearchInput {
44
44
  /** The search query. */
45
45
  query: string;
46
46
  /** Per-call cap on results, clamped into `[1, options.maxResults]`. */
@@ -50,7 +50,7 @@ interface WebSearchInput {
50
50
  * A single web-search hit. `score` is provider-supplied relevance when
51
51
  * the backend returns one (Tavily does; some others do not).
52
52
  */
53
- interface WebSearchResultItem {
53
+ export interface WebSearchResultItem {
54
54
  /** Page / document title. */
55
55
  title: string;
56
56
  /** Canonical URL of the result. */
@@ -63,7 +63,7 @@ interface WebSearchResultItem {
63
63
  /**
64
64
  * The web-search tool's output — the ranked list of hits.
65
65
  */
66
- interface WebSearchResult {
66
+ export interface WebSearchResult {
67
67
  /** Ranked results, best-first. */
68
68
  results: WebSearchResultItem[];
69
69
  }
@@ -76,11 +76,11 @@ interface WebSearchResult {
76
76
  * - `"html"` — the raw response body, untouched.
77
77
  * - `"markdown"` — readability extraction converted to Markdown.
78
78
  */
79
- type FetchUrlExtract = "text" | "html" | "markdown";
79
+ export type FetchUrlExtract = "text" | "html" | "markdown";
80
80
  /**
81
81
  * Construction options for `ai.tools.fetchUrl`.
82
82
  */
83
- interface FetchUrlOptions {
83
+ export interface FetchUrlOptions {
84
84
  /**
85
85
  * Override the tool name exposed to the LLM.
86
86
  *
@@ -126,14 +126,14 @@ interface FetchUrlOptions {
126
126
  /**
127
127
  * The validated input shape the model passes to `fetch_url`.
128
128
  */
129
- interface FetchUrlInput {
129
+ export interface FetchUrlInput {
130
130
  /** The absolute URL to fetch. */
131
131
  url: string;
132
132
  }
133
133
  /**
134
134
  * The `fetch_url` tool's output.
135
135
  */
136
- interface FetchUrlResult {
136
+ export interface FetchUrlResult {
137
137
  /** The URL that was fetched (after any redirects the platform followed). */
138
138
  url: string;
139
139
  /** HTTP status code of the final response. */
@@ -144,5 +144,4 @@ interface FetchUrlResult {
144
144
  truncated: boolean;
145
145
  }
146
146
  //#endregion
147
- export { FetchUrlExtract, FetchUrlInput, FetchUrlOptions, FetchUrlResult, SearchProvider, WebSearchInput, WebSearchOptions, WebSearchResult, WebSearchResultItem };
148
147
  //# sourceMappingURL=web.type.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/web.type.ts"],"mappings":";;AAaA;;;;AAA0B;AAK1B;;;;;;AAL0B,KAAd,cAAA;;;;UAKK,gBAAA;EA0BA;EAxBf,QAAA,EAAU,cAAc;;;AA4Bd;AAOZ;EA9BE,MAAA;;;;;;;EAOA,UAAA;EA+BK;AAMP;;;;EA/BE,IAAA;AAAA;;;;UAMe,cAAA;EA4CA;EA1Cf,KAAA;;EAEA,UAAU;AAAA;;;;;UAOK,mBAAA;EA0Ef;EAxEA,KAAA;EAwEmB;EAtEnB,GAAA;EA4E4B;EA1E5B,OAAA;EA4EG;EA1EH,KAAA;AAAA;;;;UAMe,eAAA;EA8Ef;EA5EA,OAAA,EAAS,mBAAmB;AAAA;;AAgFnB;;;;;;;;KApEC,eAAA;;;;UAKK,eAAA;;;;;;EAMf,IAAA;;;;;;EAMA,QAAA;;;;;;EAMA,SAAA;;;;;;EAMA,OAAA,GAAU,eAAe;;;;;;EAMzB,UAAA;;;;;;;;;;;EAWA,mBAAA;AAAA;;;;UAMe,aAAA;;EAEf,GAAG;AAAA;;;;UAMY,cAAA;;EAEf,GAAA;;EAEA,MAAA;;EAEA,OAAA;;EAEA,SAAA;AAAA"}
1
+ {"version":3,"file":"web.type.d.mts","names":[],"sources":["../../../../../../../../packages/ai-tools/src/contracts/web.type.ts"],"mappings":";;;;;;;;;;;;;YAaY;;;;iBAKK;;EAEf,UAAU;;;;;EAKV;;;;;;;EAOA;;;;;;EAMA;;;;;iBAMe;;EAEf;;EAEA;;;;;;iBAOe;;EAEf;;EAEA;;EAEA;;EAEA;;;;;iBAMe;;EAEf,SAAS;;;;;;;;;;;YAYC;;;;iBAKK;;;;;;EAMf;;;;;;EAMA;;;;;;EAMA;;;;;;EAMA,UAAU;;;;;;EAMV;;;;;;;;;;;EAWA;;;;;iBAMe;;EAEf;;;;;iBAMe;;EAEf;;EAEA;;EAEA;;EAEA"}