@spicrawl/mcp 0.1.6 → 0.1.8

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.
@@ -36,16 +36,16 @@ export declare const ActionSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<
36
36
  on_error: z.ZodOptional<z.ZodEnum<["fail", "skip"]>>;
37
37
  label: z.ZodOptional<z.ZodString>;
38
38
  }, "strict", z.ZodTypeAny, {
39
- type: "fill";
40
39
  value: string;
40
+ type: "fill";
41
41
  selector: string;
42
42
  timeout_ms?: number | undefined;
43
43
  on_error?: "fail" | "skip" | undefined;
44
44
  label?: string | undefined;
45
45
  secret?: boolean | undefined;
46
46
  }, {
47
- type: "fill";
48
47
  value: string;
48
+ type: "fill";
49
49
  selector: string;
50
50
  timeout_ms?: number | undefined;
51
51
  on_error?: "fail" | "skip" | undefined;
@@ -133,16 +133,16 @@ export declare const ActionSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<
133
133
  }, "strict", z.ZodTypeAny, {
134
134
  type: "select";
135
135
  selector: string;
136
- values?: string[] | undefined;
137
136
  value?: string | undefined;
137
+ values?: string[] | undefined;
138
138
  timeout_ms?: number | undefined;
139
139
  on_error?: "fail" | "skip" | undefined;
140
140
  label?: string | undefined;
141
141
  }, {
142
142
  type: "select";
143
143
  selector: string;
144
- values?: string[] | undefined;
145
144
  value?: string | undefined;
145
+ values?: string[] | undefined;
146
146
  timeout_ms?: number | undefined;
147
147
  on_error?: "fail" | "skip" | undefined;
148
148
  label?: string | undefined;
@@ -240,16 +240,16 @@ export declare const ActionsSchema: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUn
240
240
  on_error: z.ZodOptional<z.ZodEnum<["fail", "skip"]>>;
241
241
  label: z.ZodOptional<z.ZodString>;
242
242
  }, "strict", z.ZodTypeAny, {
243
- type: "fill";
244
243
  value: string;
244
+ type: "fill";
245
245
  selector: string;
246
246
  timeout_ms?: number | undefined;
247
247
  on_error?: "fail" | "skip" | undefined;
248
248
  label?: string | undefined;
249
249
  secret?: boolean | undefined;
250
250
  }, {
251
- type: "fill";
252
251
  value: string;
252
+ type: "fill";
253
253
  selector: string;
254
254
  timeout_ms?: number | undefined;
255
255
  on_error?: "fail" | "skip" | undefined;
@@ -337,16 +337,16 @@ export declare const ActionsSchema: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUn
337
337
  }, "strict", z.ZodTypeAny, {
338
338
  type: "select";
339
339
  selector: string;
340
- values?: string[] | undefined;
341
340
  value?: string | undefined;
341
+ values?: string[] | undefined;
342
342
  timeout_ms?: number | undefined;
343
343
  on_error?: "fail" | "skip" | undefined;
344
344
  label?: string | undefined;
345
345
  }, {
346
346
  type: "select";
347
347
  selector: string;
348
- values?: string[] | undefined;
349
348
  value?: string | undefined;
349
+ values?: string[] | undefined;
350
350
  timeout_ms?: number | undefined;
351
351
  on_error?: "fail" | "skip" | undefined;
352
352
  label?: string | undefined;
@@ -414,8 +414,8 @@ export declare const ActionsSchema: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUn
414
414
  wait_for_navigation?: boolean | undefined;
415
415
  until?: "load" | "domcontentloaded" | "networkidle" | undefined;
416
416
  } | {
417
- type: "fill";
418
417
  value: string;
418
+ type: "fill";
419
419
  selector: string;
420
420
  timeout_ms?: number | undefined;
421
421
  on_error?: "fail" | "skip" | undefined;
@@ -445,8 +445,8 @@ export declare const ActionsSchema: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUn
445
445
  } | {
446
446
  type: "select";
447
447
  selector: string;
448
- values?: string[] | undefined;
449
448
  value?: string | undefined;
449
+ values?: string[] | undefined;
450
450
  timeout_ms?: number | undefined;
451
451
  on_error?: "fail" | "skip" | undefined;
452
452
  label?: string | undefined;
@@ -476,8 +476,8 @@ export declare const ActionsSchema: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUn
476
476
  wait_for_navigation?: boolean | undefined;
477
477
  until?: "load" | "domcontentloaded" | "networkidle" | undefined;
478
478
  } | {
479
- type: "fill";
480
479
  value: string;
480
+ type: "fill";
481
481
  selector: string;
482
482
  timeout_ms?: number | undefined;
483
483
  on_error?: "fail" | "skip" | undefined;
@@ -507,8 +507,8 @@ export declare const ActionsSchema: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUn
507
507
  } | {
508
508
  type: "select";
509
509
  selector: string;
510
- values?: string[] | undefined;
511
510
  value?: string | undefined;
511
+ values?: string[] | undefined;
512
512
  timeout_ms?: number | undefined;
513
513
  on_error?: "fail" | "skip" | undefined;
514
514
  label?: string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { COMING_SOON, availableOnly, run } from "./common.js";
2
+ import { COMING_SOON, availableOnly, loose, run } from "./common.js";
3
3
  export const jobPath = (id) => `/v1/batch/${encodeURIComponent(id)}`;
4
4
  /** Appends a query string built from the defined entries of `q`. */
5
5
  function withQuery(path, q) {
@@ -42,6 +42,112 @@ export async function batchResults(client, job_id, { status, limit, cursor }) {
42
42
  return out;
43
43
  }
44
44
  const jobId = z.string().min(1).describe("The batch job id returned by spicrawl_batch_submit or spicrawl_batch_list.");
45
+ // -----------------------------------------------------------------------------
46
+ // Output schemas. Permissive on purpose (`loose` keeps unknown keys, fields the API
47
+ // may omit are optional/nullish): they document what an agent can rely on, and a new
48
+ // API field must never fail a call. Shapes follow docs/openapi.yaml (BatchJob etc.).
49
+ // -----------------------------------------------------------------------------
50
+ const count = (d) => z.number().optional().describe(d);
51
+ const batchProgress = loose({
52
+ total: count("Items in the job (grows when items are appended to an open job)."),
53
+ completed: count("Items in any terminal status (succeeded + failed + cancelled + skipped)."),
54
+ succeeded: count("Items that succeeded. Only these are charged."),
55
+ failed: count("Items that failed after all attempts; re-run them with spicrawl_batch_retry."),
56
+ cancelled: count("Items not run because the job was cancelled."),
57
+ skipped: count("Items skipped (for example after failure_threshold or credit_budget stopped the run)."),
58
+ remaining: count("Items not yet finished (total - completed)."),
59
+ percent_complete: count("completed / total x 100."),
60
+ credits_charged: count("Credits actually charged so far (whole credits, rounded down)."),
61
+ credits_charged_micro: count("Same as credits_charged in micro-credits (1 credit = 1,000,000)."),
62
+ bytes: count("Total response bytes of finished items."),
63
+ }).describe("Live item counters and the credits charged so far.");
64
+ /** The job object, identical across submit, list, status, cancel, close (and inside retry / add_items). */
65
+ const batchJob = loose({
66
+ id: z.string().describe("Job id. Pass it as `job_id` to the other spicrawl_batch_* tools."),
67
+ project_id: z.string().optional().describe("Project the API key belongs to."),
68
+ name: z.string().nullish().describe("The label given at submission, if any."),
69
+ status: z
70
+ .string()
71
+ .optional()
72
+ .describe("Lifecycle: queued, running, paused, cancelling, completed, failed or cancelled. Keep polling while queued/running/paused/cancelling; stop at completed, failed or cancelled."),
73
+ open: z.boolean().nullish().describe("True while the job accepts appended items (it will not complete until closed)."),
74
+ status_url: z.string().optional().describe("API path to poll for this job: /v1/batch/{id}."),
75
+ results_url: z.string().optional().describe("API path of the job's results: /v1/batch/{id}/results."),
76
+ params: z.record(z.unknown()).nullish().describe("The job-level scrape settings as stored."),
77
+ total_items: count("Number of items in the job."),
78
+ concurrency: count("Effective per-job concurrency after the server's clamping."),
79
+ priority: count("Effective scheduling priority."),
80
+ max_attempts: count("Effective attempts per item."),
81
+ failure_threshold: z.number().nullish().describe("Failed-item count that aborts the job, when set."),
82
+ estimated_credits: count("Credits reserved at submission (a hold, not a charge; compare with progress.credits_charged)."),
83
+ estimated_credits_micro: count("Same as estimated_credits in micro-credits."),
84
+ progress: batchProgress.optional(),
85
+ submitted_at: z.string().optional().describe("ISO-8601 time the job was accepted."),
86
+ started_at: z.string().nullish().describe("ISO-8601 time the first item started."),
87
+ finished_at: z.string().nullish().describe("ISO-8601 time the job reached a terminal status."),
88
+ cancel_requested_at: z.string().nullish().describe("ISO-8601 time a cancel was accepted."),
89
+ results_expire_at: z.string().nullish().describe("ISO-8601 deadline after which results answer 410 Gone."),
90
+ error_code: z.string().nullish().describe("Machine code of a job-level failure."),
91
+ error_message: z.string().nullish().describe("Human-readable job-level failure reason."),
92
+ warnings: z
93
+ .array(z.string())
94
+ .nullish()
95
+ .describe("Decisions made on the caller's behalf at submission (a clamped concurrency, items not yet queued)."),
96
+ });
97
+ const batchResultLine = loose({
98
+ seq: z.number().describe("0-based position in submission order; use it with spicrawl_batch_task_content."),
99
+ url: z.string().optional().describe("The target URL as submitted."),
100
+ external_id: z.string().nullish().describe("The external_id supplied for this item, if any."),
101
+ status: z.string().optional().describe("Terminal item status: succeeded, failed, cancelled or skipped."),
102
+ attempts: count("How many times the item was tried."),
103
+ http_status: z.number().nullish().describe("The target site's HTTP status (absent when no response was received)."),
104
+ request_id: z.string().nullish().describe("Id of the underlying request, for request history."),
105
+ credits_micro: count("Micro-credits charged for this item (0 unless succeeded)."),
106
+ bytes: count("Response size recorded for this item."),
107
+ duration_ms: count("Time spent on the item's final attempt, in milliseconds."),
108
+ result: loose({
109
+ content: z.string().nullish().describe("The item's document as raw JSON text (JSON-decode once to get the markdown, text or html). A prefix when truncated."),
110
+ bytes: count("Full size of the stored payload in bytes."),
111
+ truncated: z.boolean().nullish().describe("True when `content` is only a prefix."),
112
+ omitted: z.boolean().nullish().describe("True when no content was included because the page's size budget was spent; use a smaller `limit`."),
113
+ unavailable: z.string().nullish().describe("Why the payload could not be read at all."),
114
+ })
115
+ .nullish()
116
+ .describe("The payload inline. Absent while the job is running or when the item has none."),
117
+ result_url: z.string().nullish().describe("API path to fetch this item's content on its own."),
118
+ error: loose({
119
+ code: z.string().optional().describe("Stable machine error code; switch on this, not on text."),
120
+ retryable: z.boolean().optional().describe("True when running the item again may succeed."),
121
+ })
122
+ .nullish()
123
+ .describe("Why the item failed. Absent on success."),
124
+ finished_at: z.string().nullish().describe("ISO-8601 time the item reached its terminal status."),
125
+ });
126
+ const batchListOutput = loose({
127
+ batches: z.array(batchJob).describe("Jobs, newest first (empty when there are none)."),
128
+ next_cursor: z.string().nullish().describe("Pass back as `cursor` for the next page; absent on the last page."),
129
+ });
130
+ const batchResultsOutput = loose({
131
+ results: z.array(batchResultLine).describe("Finished items of the job, in seq order."),
132
+ next_cursor: z.string().nullish().describe("Pass back as `cursor` for the next page; absent on the last page."),
133
+ });
134
+ const batchTaskContentOutput = loose({
135
+ content: z
136
+ .unknown()
137
+ .optional()
138
+ .describe("The item's document when it is text (markdown, text or html) or any non-object JSON value. " +
139
+ "An item whose payload is a JSON object is returned as that object's own fields instead."),
140
+ });
141
+ const batchRetryOutput = loose({
142
+ job: batchJob.optional().describe("The job as it stands after the call."),
143
+ items_reset: z.number().optional().describe("Failed items reset to queued (0 means nothing had failed)."),
144
+ items_dispatched: z.number().optional().describe("Of those, how many reached the dispatch queue now; the rest are recovered automatically."),
145
+ });
146
+ const batchAddItemsOutput = loose({
147
+ job: batchJob.optional().describe("The job as it stands after the call."),
148
+ items_added: z.number().optional().describe("Items written to the job."),
149
+ items_dispatched: z.number().optional().describe("Of those, how many reached the dispatch queue now; do not re-add the rest."),
150
+ });
45
151
  // Shared scrape settings: a subset of the /v1/scrape request object, applied to
46
152
  // every item of the job (an item in `items` may override any of them).
47
153
  const sharedParams = {
@@ -155,6 +261,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
155
261
  .optional()
156
262
  .describe("Id of a registered webhook endpoint notified (with the job object) when the job completes."),
157
263
  },
264
+ outputSchema: batchJob,
158
265
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
159
266
  }, async (input) => {
160
267
  const body = sharedBody(input);
@@ -199,6 +306,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
199
306
  limit: z.number().int().min(1).max(200).optional().describe("Page size (default 50, max 200)."),
200
307
  cursor: z.string().optional().describe("`next_cursor` from a previous page, verbatim."),
201
308
  },
309
+ outputSchema: batchListOutput,
202
310
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
203
311
  }, async ({ status, limit, cursor }) => run(() => client.request("GET", withQuery("/v1/batch", { status, limit, cursor }))));
204
312
  // -------------------------------------------------------------------------
@@ -209,6 +317,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
209
317
  description: "Return one batch job with its status and progress (total/completed/succeeded/failed/remaining, credits charged). " +
210
318
  "Poll this after `spicrawl_batch_submit`; once status is `completed`, `failed` or `cancelled`, read `spicrawl_batch_results`.",
211
319
  inputSchema: { job_id: jobId },
320
+ outputSchema: batchJob,
212
321
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
213
322
  }, async ({ job_id }) => run(() => client.request("GET", jobPath(job_id))));
214
323
  // -------------------------------------------------------------------------
@@ -229,6 +338,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
229
338
  limit: z.number().int().min(1).max(5000).optional().describe("Page size (default 500, max 5000)."),
230
339
  cursor: z.string().optional().describe("`next_cursor` from a previous page, verbatim."),
231
340
  },
341
+ outputSchema: batchResultsOutput,
232
342
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
233
343
  }, async ({ job_id, status, limit, cursor }) => run(() => batchResults(client, job_id, { status, limit, cursor })));
234
344
  // -------------------------------------------------------------------------
@@ -244,6 +354,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
244
354
  job_id: jobId,
245
355
  seq: z.number().int().min(0).describe("The item's sequence number (0-based, submission order)."),
246
356
  },
357
+ outputSchema: batchTaskContentOutput,
247
358
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
248
359
  }, async ({ job_id, seq }) => run(() => client.request("GET", `${jobPath(job_id)}/tasks/${encodeURIComponent(String(seq))}/content`)));
249
360
  // -------------------------------------------------------------------------
@@ -255,6 +366,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
255
366
  "their results; items already running finish first, so the job comes back `cancelling` and moves to " +
256
367
  "`cancelled` when they drain. Cannot be undone — resubmit to run the URLs again. Returns the job object.",
257
368
  inputSchema: { job_id: jobId },
369
+ outputSchema: batchJob,
258
370
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
259
371
  }, async ({ job_id }) => run(() => client.request("POST", `${jobPath(job_id)}/cancel`)));
260
372
  // -------------------------------------------------------------------------
@@ -265,6 +377,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
265
377
  description: "Re-queue every FAILED item of a batch job so it runs again (succeeded items are untouched; a job with no " +
266
378
  "failures is returned unchanged). Returns `{ job, items_reset, items_dispatched }`.",
267
379
  inputSchema: { job_id: jobId },
380
+ outputSchema: batchRetryOutput,
268
381
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
269
382
  }, async ({ job_id }) => run(() => client.request("POST", `${jobPath(job_id)}/retry`)));
270
383
  // -------------------------------------------------------------------------
@@ -277,6 +390,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
277
390
  "if the job is closed or finished. Not idempotent: calling twice adds the URLs twice. " +
278
391
  "Returns `{ job, items_added, items_dispatched }`.",
279
392
  inputSchema: { job_id: jobId, ...itemsInput, ...shared },
393
+ outputSchema: batchAddItemsOutput,
280
394
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
281
395
  }, async (input) => {
282
396
  const body = sharedBody(input);
@@ -298,6 +412,7 @@ export const registerBatchTools = (server, client, { hideUnavailable }) => {
298
412
  description: "Stop an open batch job accepting items, so it completes once its queued work drains. " +
299
413
  "Idempotent (closing a closed job succeeds). Returns the job object.",
300
414
  inputSchema: { job_id: jobId },
415
+ outputSchema: batchJob,
301
416
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
302
417
  }, async ({ job_id }) => run(() => client.request("POST", `${jobPath(job_id)}/close`)));
303
418
  };
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { run } from "./common.js";
2
+ import { loose, run } from "./common.js";
3
3
  // Browser (CDP): GET /v1/browser is a WebSocket; MCP cannot carry it, so this
4
4
  // module mints a single-use token URL for the caller's own CDP client.
5
5
  // Remote browsers are coming soon and minting always fails today, so the tool is
@@ -50,6 +50,13 @@ export const registerBrowserTools = (server, client, { hideUnavailable }) => {
50
50
  .optional()
51
51
  .describe("Your own proxy, as http://user:pass@host:port. Replaces our pool, so proxy_country, proxy_region and sticky_key cannot be combined with it. Kept out of the returned URL."),
52
52
  },
53
+ // The success shape; today minting always fails (an error result carries no structuredContent).
54
+ outputSchema: loose({
55
+ url: z.string().describe("ws:// or wss:// connect URL carrying a single-use token (never the API key); use it as the CDP browser WebSocket endpoint."),
56
+ expires_at: z.string().optional().describe("When the token expires, RFC 3339 UTC (60 s after minting)."),
57
+ single_use: z.boolean().describe("Always true: the URL works for one connection."),
58
+ notes: z.array(z.string()).optional().describe("Usage notes for the connect URL."),
59
+ }),
53
60
  // Mints a token (state) and opens a browser that can go anywhere on the web.
54
61
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
55
62
  }, async (args) => run(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { z } from "zod";
1
+ import { z } from "zod";
2
2
  import { ILayerClient } from "../client.js";
3
3
  import type { SpicrawlMcpServer } from "../server.js";
4
4
  /** How the server was asked to present itself; every tools module receives the same value. */
@@ -27,6 +27,25 @@ export declare const COMING_SOON = "Coming soon: not available yet, do not send.
27
27
  * as optional and see `undefined`, exactly as when a caller leaves them out.
28
28
  */
29
29
  export declare function availableOnly<T extends z.ZodRawShape>(shape: T, hide: boolean): T;
30
+ /**
31
+ * A tool result that carries an object for the tool's `outputSchema`: `data` is the
32
+ * structuredContent, and `text` (default: `data` as pretty JSON) is the text block
33
+ * older clients read, so the two always describe the same result.
34
+ */
35
+ export declare function structured(data: Record<string, unknown>, text?: string): {
36
+ content: {
37
+ type: "text";
38
+ text: string;
39
+ }[];
40
+ structuredContent: Record<string, unknown>;
41
+ };
42
+ /**
43
+ * An output schema's object: the fields we know, and any others the API adds. Output
44
+ * schemas describe what an agent can rely on, not a closed list, so a new API field
45
+ * never fails a call (a bare raw shape would advertise `additionalProperties: false`).
46
+ * Declare each field `.optional()`/`.nullish()` unless the API always sends it.
47
+ */
48
+ export declare const loose: <T extends z.ZodRawShape>(shape: T) => z.ZodObject<T, "passthrough", z.ZodTypeAny, z.objectOutputType<T, z.ZodTypeAny, "passthrough">, z.objectInputType<T, z.ZodTypeAny, "passthrough">>;
30
49
  export type ImageBlock = {
31
50
  type: "image";
32
51
  data: string;
@@ -60,13 +79,6 @@ export declare function run(fn: () => Promise<unknown>, attach?: (data: unknown)
60
79
  })[];
61
80
  structuredContent: Record<string, unknown>;
62
81
  isError?: undefined;
63
- } | {
64
- content: (ImageBlock | ResourceBlock | {
65
- type: "text";
66
- text: string;
67
- })[];
68
- structuredContent?: undefined;
69
- isError?: undefined;
70
82
  } | {
71
83
  isError: boolean;
72
84
  content: {
@@ -1,3 +1,4 @@
1
+ import { z } from "zod";
1
2
  import { ILayerError } from "../client.js";
2
3
  /**
3
4
  * Leads the description of an argument for a feature that is not available yet (the
@@ -19,6 +20,24 @@ export function availableOnly(shape, hide) {
19
20
  return shape;
20
21
  return Object.fromEntries(Object.entries(shape).filter(([, schema]) => !schema.description?.startsWith(COMING_SOON)));
21
22
  }
23
+ /**
24
+ * A tool result that carries an object for the tool's `outputSchema`: `data` is the
25
+ * structuredContent, and `text` (default: `data` as pretty JSON) is the text block
26
+ * older clients read, so the two always describe the same result.
27
+ */
28
+ export function structured(data, text) {
29
+ return {
30
+ content: [{ type: "text", text: text ?? JSON.stringify(data, null, 2) }],
31
+ structuredContent: data,
32
+ };
33
+ }
34
+ /**
35
+ * An output schema's object: the fields we know, and any others the API adds. Output
36
+ * schemas describe what an agent can rely on, not a closed list, so a new API field
37
+ * never fails a call (a bare raw shape would advertise `additionalProperties: false`).
38
+ * Declare each field `.optional()`/`.nullish()` unless the API always sends it.
39
+ */
40
+ export const loose = (shape) => z.object(shape).passthrough();
22
41
  /**
23
42
  * Wraps a tool body so any ILayerError becomes an actionable MCP error result.
24
43
  *
@@ -35,8 +54,11 @@ export async function run(fn, attach, argNames) {
35
54
  }
36
55
  // MCP requires structuredContent to be a JSON object; an array, string or
37
56
  // null there makes the client reject the whole result (-32602). Some
38
- // endpoints (a batch item's stored payload) return exactly those, so only
39
- // objects get it. No tool declares an outputSchema, so omitting it is legal.
57
+ // endpoints (a batch item's stored payload, a docs page) return exactly
58
+ // those, so they travel as `{ content: <payload> }` in structuredContent
59
+ // (the shape a non-JSON body already has) while the text stays the payload
60
+ // itself. Every tool declares an outputSchema, and the SDK refuses a
61
+ // successful result that lacks structuredContent.
40
62
  if (isPlainObject(data)) {
41
63
  return {
42
64
  content: [{ type: "text", text: JSON.stringify(data, null, 2) }, ...blocks],
@@ -46,7 +68,10 @@ export async function run(fn, attach, argNames) {
46
68
  // A string is usually markdown or HTML: stringifying it would hand the agent
47
69
  // one quoted line of escaped newlines instead of the document.
48
70
  const text = typeof data === "string" ? data : (JSON.stringify(data, null, 2) ?? "");
49
- return { content: [{ type: "text", text }, ...blocks] };
71
+ return {
72
+ content: [{ type: "text", text }, ...blocks],
73
+ structuredContent: { content: data ?? null },
74
+ };
50
75
  }
51
76
  catch (err) {
52
77
  const message = err instanceof ILayerError
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"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"}