@clipwright/mcp-server 0.39.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -159,7 +159,7 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
159
159
  - `list_workflows` — read workflow methods and current availability. Free.
160
160
  - `get_workflow` — read one method's required inputs, script rules, evidence and limitations. Free.
161
161
  - `prepare_workflow_plan` — create with a complete document, or save with both `plan_id` and `base_version`. Free; starts no run.
162
- - `plan_reference_remake` — the server compiles a reference ad's profile and your exact script into a new plan; its warnings name what the plan does not reproduce. Free; starts no run and generates nothing.
162
+ - `plan_reference_remake` — the server compiles a reference ad's analysis (`analysis_id`, or the profile itself) and your exact script into a new plan; its warnings name what the plan does not reproduce. Free; starts no run and generates nothing.
163
163
  - `get_workflow_plan` — read the current owned plan, revision and readiness. Free.
164
164
  - `approve_workflow_plan` — explicitly approve a chosen revision and content digest. Free; starts no run.
165
165
  - `quote_workflow_plan` — quote the approved revision without spending credits.
@@ -172,6 +172,9 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
172
172
  credits.
173
173
  - `list_template_sounds` — the sounds `make_ugc` templates play, by beat: where
174
174
  each beat plays, its default and every name `template_sounds` takes. Free.
175
+ - `list_moves` — the catalogue of moves, motion and graphics to put on lines of
176
+ a script as `moves` of `make_ugc`, `make_faceless` and `plan_reference_remake`:
177
+ what each does for the viewer, the lines it suits and its credits. Free.
175
178
  - `list_actors` — ready-made faces with stable ids and verified formats. Free.
176
179
  - `quote_ugc` — estimated duration and price, plus a warning when `make_ugc`
177
180
  with the same input would be refused for money or access. Free.
@@ -181,12 +184,17 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
181
184
  Free.
182
185
  - `send_feedback` — tell Clipwright what is missing, confusing, wrong or slow,
183
186
  optionally about a run; we read every one. Free.
187
+ - `describe_tool` — the full guidance of a tool, or of one of its fields, which
188
+ the tool list gives in short. Free.
184
189
  - `make_ugc` — **renders a clip; this is the call that costs money.** Returns a
185
190
  `run_id` immediately instead of blocking, because a render takes minutes.
186
191
  - `get_run` — status of a run. Free; poll it every few seconds.
187
192
  - `get_run_shots` — the shots of a finished video: the span, kind, description
188
193
  and preview link of each, with the narration words and their timing. Free and
189
194
  read-only. A run with no shots to show answers with the reason instead.
195
+ - `delete_run_media` — delete the files of a finished run: they stop opening at
196
+ once and are erased from storage after 7 days; the run and its charge stay.
197
+ Refused while another unfinished run uses them. Free.
190
198
  - `quote_revision` — price of a revision of a faceless video: what it would
191
199
  change and what it costs. Free.
192
200
  - `revise_run` — **starts a revision: a new run that renders the video again
@@ -218,6 +226,9 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
218
226
  remote: PUT the file with curl, then use the `upload_id`. Free.
219
227
  - `get_upload` — one upload with a fresh url, its size and `usable_until`;
220
228
  after `create_upload` it confirms the PUT. Free.
229
+ - `delete_upload` — delete an upload: no tool takes it from then on, and its
230
+ file is erased from storage after 7 days. Refused while an unfinished run uses
231
+ it. Free.
221
232
  - `create_asset` — save a picture or an MP4 clip as an account asset, kept
222
233
  until you delete it: from a `run_id`, an `upload_id`, a public `url` (a clip
223
234
  with `kind: "video"`), `base64`, a presigned `put`, and a local `path` on
@@ -237,8 +248,10 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
237
248
  pacing and what we cannot draw. Returns at once; poll
238
249
  `get_reference_analysis`. 70 credits held and charged once it succeeds; a
239
250
  failed analysis costs nothing. 10 new analyses per hour.
240
- - `get_reference_analysis` — the state of an analysis, with the profile and its
241
- warnings once it succeeded. Free.
251
+ - `get_reference_analysis` — the state of an analysis, with its breakdown and
252
+ warnings once it succeeded, and `next`: `plan_reference_remake` with its
253
+ `analysis_id`, for a video like the reference. The profile and the frame
254
+ links come with `include: ["profile", "frames"]`. Free.
242
255
  - `quote_creator_profile` — price of a creator profile for a link: 20 credits,
243
256
  or 0 when a profile of the same creator from the last hour would answer. Free.
244
257
  - `analyze_creator` — profile the creator behind an Instagram or TikTok profile
@@ -249,9 +262,23 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
249
262
  nothing. 30 new profiles per hour.
250
263
  - `get_creator_profile` — the state of a creator profile, with its videos and
251
264
  warnings once it succeeded. Free.
265
+ - `delete_creator_profile` — delete a finished creator profile at once; the run
266
+ that made it and its charge stay. Free.
267
+ - `quote_trends` — price of a trend search: 20 credits, or 0 when a search of
268
+ the same query from the last hour would answer. Free.
269
+ - `find_trends` — reels that took off on a topic: keywords on TikTok and
270
+ Instagram in one ranking by default (`platform: mix`), or on one of them, up
271
+ to 10 reels per platform posted within `posted_within_days`, one per creator,
272
+ ranked by the reel's views over its creator's median views. `language`
273
+ filters the TikTok reels only. Waits for the result; an unfinished one is read
274
+ by repeating the call, free. 20 credits held and charged once it succeeds,
275
+ also when a mix reaches only one platform (`warnings[]` names the other); a
276
+ search that finds no reel costs nothing. 10 new searches per hour.
252
277
  - `quote_actor` — price of a personal actor before creating one. Free.
253
278
  - `create_actor` — **creates a personal actor from a description; this costs
254
- money.** Each requested format is a separate charged image. Returns a `run_id`
279
+ money.** Each requested format is a separate charged image. With `portrait`
280
+ (your own 9:16 image asset) that image becomes the actor's portrait at no
281
+ charge, and only the other formats are charged. Returns a `run_id`
255
282
  immediately; poll `get_run` until `succeeded`, then pass `created_actor.actor_id`
256
283
  to `make_ugc` as `actor_id`.
257
284
  - `quote_faceless` — price of a faceless video before making one. Free.
@@ -266,6 +293,11 @@ rate. [Watch it](https://clipwright.io/mcp#examples).
266
293
  with it stay as they are. Free.
267
294
  - `get_actor_defaults`, `set_actor_defaults` — read and save an actor's B-roll
268
295
  default. It is stored only: today's talking-actor videos do not use it. Free.
296
+ - `extract_brand` — reads a public site's colours, fonts, logo and corners into
297
+ a proposed `design` with readable text, for you to confirm. Free.
298
+ - `brand_kit` — without `design`, reads the account's saved design and the looks
299
+ and faces to pick from; with `design`, saves it so a series keeps one look.
300
+ A video that names no `design` or `template_theme` draws in the kit. Free.
269
301
 
270
302
  Call `quote_ugc` before `make_ugc`: the quote is where the contract tells you
271
303
  what it will and will not honor. Anything the API cannot deliver comes back in
package/SKILL.md CHANGED
@@ -114,13 +114,18 @@ For a source build, the command is `node` with the absolute path to
114
114
  | `CLIPWRIGHT_API_URL` | no | Defaults to `https://api.clipwright.io`; set it only for another environment. |
115
115
 
116
116
  After a restart, confirm that `tools/list`
117
- returns 48 tools: `make_ugc`, `get_run`, `get_run_shots`, `quote_revision`, `revise_run`, `quote_candidate`, `create_candidate`,
117
+ returns 57 tools: `make_ugc`, `get_run`, `get_run_shots`, `delete_run_media`, `quote_revision`, `revise_run`, `quote_candidate`, `create_candidate`,
118
118
  `list_generation_models`, `quote_image`, `generate_image`, `quote_video`, `generate_video`, `quote_ugc`, `list_actors`,
119
- `list_voices`, `list_template_sounds`, `upload_image`, `create_upload`, `get_upload`, `create_asset`, `list_assets`, `get_asset`, `update_asset`,
119
+ `list_voices`, `list_template_sounds`, `list_moves`, `upload_image`, `create_upload`, `get_upload`, `delete_upload`, `create_asset`, `list_assets`, `get_asset`, `update_asset`,
120
120
  `delete_asset`, `quote_analysis`, `analyze_reference`, `get_reference_analysis`, `quote_creator_profile`, `analyze_creator`,
121
- `get_creator_profile`, `get_account`, `list_prices`, `create_actor`, `quote_actor`, `delete_actor`, `get_actor_defaults`,
122
- `set_actor_defaults`, `quote_faceless`, `make_faceless`, `list_workflows`, `get_workflow`, `prepare_workflow_plan`,
123
- `plan_reference_remake`, `get_workflow_plan`, `approve_workflow_plan`, `quote_workflow_plan`, `run_workflow_plan`, `send_feedback`.
121
+ `get_creator_profile`, `delete_creator_profile`, `quote_trends`, `find_trends`, `get_account`, `list_prices`, `create_actor`, `quote_actor`, `delete_actor`, `get_actor_defaults`,
122
+ `set_actor_defaults`, `extract_brand`, `brand_kit`, `quote_faceless`, `make_faceless`, `list_workflows`, `get_workflow`, `prepare_workflow_plan`,
123
+ `plan_reference_remake`, `get_workflow_plan`, `approve_workflow_plan`, `quote_workflow_plan`, `run_workflow_plan`, `send_feedback`,
124
+ `describe_tool`.
125
+
126
+ The tool list gives each tool and field in short. Before the first use of a
127
+ tool or field, read its full guidance with `describe_tool` (free), for example
128
+ `describe_tool({tool: "quote_ugc", field: "templates"})`.
124
129
 
125
130
  When no tool does the job, or an answer is confusing or wrong, file it with
126
131
  `send_feedback` (free) instead of rephrasing the request and giving up.
@@ -225,6 +230,7 @@ quote or `list_prices`, never from memory or this page: they change.
225
230
  | A personal actor | `quote_actor` | `create_actor` | `get_run` | `created_actor.actor_id` |
226
231
  | A reading of a reference reel | `quote_analysis` | `analyze_reference` | `get_reference_analysis` | `reference_profile` or `data` |
227
232
  | A creator's latest 12 videos with x to their median | `quote_creator_profile` | `analyze_creator` | `get_creator_profile` | `profile` |
233
+ | Reels that took off on a topic | `quote_trends` | `find_trends` | `find_trends` again | `result.reels` |
228
234
  | A revision of a faceless video | `quote_revision` | `revise_run` | `get_run` | `video_url` |
229
235
  | A new picture or clip for one shot | `quote_candidate` | `create_candidate` | `get_run` | `candidate.preview_url` |
230
236
  | A plan from a workflow method | `quote_workflow_plan` | `run_workflow_plan` | `get_run` | `workflow` |
@@ -5,11 +5,6 @@ type Schema = {
5
5
  };
6
6
  /** Fields an agent copies from another answer or tool, advertised by pointer instead of by schema. */
7
7
  export declare const COPIED_FIELDS: Record<string, Record<string, string>>;
8
- /** Field descriptions keep their first sentences up to this many characters; deeper ones keep fewer. */
9
- export declare const FIELD_DESCRIPTION_CHARS = 160;
10
- export declare const NESTED_DESCRIPTION_CHARS = 60;
11
- /** Tools whose field descriptions stay whole: quote_ugc's carry the templates catalog, the snap rule and the script limits. */
12
- export declare const WHOLE_FIELD_DESCRIPTIONS: Set<string>;
13
8
  /** The paid tools whose input is their free quote's plus a few fields; the quote, read first, keeps the field descriptions. */
14
9
  export declare const PAID_TWINS: Record<string, string>;
15
10
  /** The paid tool's fields its quote lacks, or undefined when the quote's fields differ from the paid tool's. */
@@ -19,14 +14,22 @@ export declare function findTwins(tools: readonly Tool[]): Map<string, {
19
14
  of: string;
20
15
  plus: string[];
21
16
  }>;
22
- /** A description cut after its last whole sentence that fits, or after a whole word. */
23
- export declare function shorten(text: string, limit: number): string;
24
17
  /** Repeated subschemas move to `$defs` once, largest saving first; each copy becomes a `$ref`. Nodes in `keep` stay in place. */
25
18
  export declare function hoistRepeats(schema: Schema, keep?: ReadonlySet<Schema>): Schema;
26
19
  /** A twin's field as its types only, so a client building the call sends the right types; the quote describes it and lists its values. */
27
20
  export declare function typeShape(field: unknown): unknown;
21
+ /** A tool's listed text: its short text and the price line its full text ends with, or the full text when it has none. */
22
+ export declare function listedDescription(tool: Pick<Tool, "name" | "description">): string | undefined;
23
+ /** Every description a tool's schema holds, by field path (`a.b`, `a[]` for items), for describe_tool. */
24
+ export declare function fieldTexts(node: Schema, path?: string, into?: Record<string, string>): Record<string, string>;
25
+ /** describe_tool's answer: a tool's full description and field guidance as the server registered them, or one field's (with its subfields). */
26
+ export declare function describeTool(tools: readonly Tool[], name: string, field?: string): {
27
+ tool: string;
28
+ description: string;
29
+ fields: Record<string, string>;
30
+ } | undefined;
28
31
  /** The advertised list for the tools the SDK lists; the hosted server builds a server per request, so the last answer is kept. */
29
32
  export declare function advertisedTools(tools: readonly Tool[]): Tool[];
30
- /** Wraps the SDK's tools/list answer; call after every tool is registered. */
31
- export declare function advertiseSlimTools(server: McpServer): void;
33
+ /** Wraps the SDK's tools/list answer; call after every tool is registered. Answers the SDK's own list, which describe_tool reads. */
34
+ export declare function advertiseSlimTools(server: McpServer): () => Promise<Tool[]>;
32
35
  export {};
@@ -1,3 +1,5 @@
1
+ import { priceLine } from "@clipwright/core";
2
+ import { LISTED_DESCRIPTIONS, LISTED_FIELDS } from "./listed-texts.js";
1
3
  /** Fields an agent copies from another answer or tool, advertised by pointer instead of by schema. */
2
4
  export const COPIED_FIELDS = {
3
5
  prepare_workflow_plan: {
@@ -7,13 +9,16 @@ export const COPIED_FIELDS = {
7
9
  },
8
10
  plan_reference_remake: {
9
11
  "/properties/reference_profile": "The reference_profile field of a succeeded get_reference_analysis answer, passed unchanged.",
12
+ "/properties/moves": "The moves array of quote_ugc input.",
13
+ "/properties/motion_style": "The motion_style object of quote_ugc input.",
10
14
  },
15
+ brand_kit: { "/properties/design": "The design object of quote_ugc input." },
16
+ // The style list and when to use each are describe_tool's: listed whole they cost the bytes tools/list lacks (#1123).
17
+ quote_ugc: { "/properties/motion_style": "Free drawing style of captions, templates and scenes; describe_tool quote_ugc motion_style " +
18
+ "lists the styles and spans." },
11
19
  };
12
- /** Field descriptions keep their first sentences up to this many characters; deeper ones keep fewer. */
13
- export const FIELD_DESCRIPTION_CHARS = 160;
14
- export const NESTED_DESCRIPTION_CHARS = 60;
15
- /** Tools whose field descriptions stay whole: quote_ugc's carry the templates catalog, the snap rule and the script limits. */
16
- export const WHOLE_FIELD_DESCRIPTIONS = new Set(["quote_ugc"]);
20
+ /** A field text that starts by marking the field unusable stays listed whole: the renderer ignores it, or the server refuses it. */
21
+ const MARKED_FIELD = /^(NOT HONORED YET|REJECTED for now):/;
17
22
  const MAP_KEYWORDS = ["properties", "patternProperties", "$defs", "definitions", "dependentSchemas"];
18
23
  const ONE_KEYWORDS = ["items", "additionalProperties", "not", "if", "then", "else", "contains", "propertyNames", "unevaluatedProperties", "unevaluatedItems"];
19
24
  const LIST_KEYWORDS = ["anyOf", "oneOf", "allOf", "prefixItems"];
@@ -50,6 +55,7 @@ const withoutDescriptions = (schema) => JSON.stringify(schema, (key, value) => (
50
55
  export const PAID_TWINS = {
51
56
  make_ugc: "quote_ugc", revise_run: "quote_revision", generate_video: "quote_video", generate_image: "quote_image",
52
57
  create_actor: "quote_actor", make_faceless: "quote_faceless", create_candidate: "quote_candidate", analyze_reference: "quote_analysis",
58
+ find_trends: "quote_trends",
53
59
  };
54
60
  /** The paid tool's fields its quote lacks, or undefined when the quote's fields differ from the paid tool's. */
55
61
  export function twinExtras(paid, quote) {
@@ -73,14 +79,6 @@ export function findTwins(tools) {
73
79
  }
74
80
  return twins;
75
81
  }
76
- /** A description cut after its last whole sentence that fits, or after a whole word. */
77
- export function shorten(text, limit) {
78
- if (text.length <= limit)
79
- return text;
80
- const head = text.slice(0, limit);
81
- const end = Math.max(head.lastIndexOf(". "), head.lastIndexOf(".\n"), head.lastIndexOf("; "));
82
- return end >= limit / 3 ? head.slice(0, end + 1) : `${head.replace(/\s+\S*$/, "")}…`;
83
- }
84
82
  /** Repeated subschemas move to `$defs` once, largest saving first; each copy becomes a `$ref`. Nodes in `keep` stay in place. */
85
83
  export function hoistRepeats(schema, keep = new Set()) {
86
84
  const { $defs: existing, ...root } = schema;
@@ -162,59 +160,99 @@ function pointer(root, path) {
162
160
  }
163
161
  function advertise(tools) {
164
162
  const twins = findTwins(tools);
165
- const described = new Set();
166
- // A text a whole-described tool gives a field is said there and nowhere else, whatever the order of the list.
167
- const kept = new Set();
168
- for (const tool of tools.filter(entry => WHOLE_FIELD_DESCRIPTIONS.has(entry.name))) {
169
- walk(tool.inputSchema, 0, (node, depth) => { if (depth === 1 && typeof node.description === "string")
170
- kept.add(node.description); });
171
- }
172
163
  return tools.map(tool => {
173
164
  const twin = twins.get(tool.name);
174
165
  const schema = structuredClone(tool.inputSchema);
175
- // A pointer is the field's only description, so no dedup, cut or $defs move touches it.
166
+ // A pointer or a listed text is the field's only description, so no cut or $defs move touches it.
176
167
  const pointers = new Set();
177
168
  for (const [path, description] of Object.entries(COPIED_FIELDS[tool.name] ?? {})) {
178
169
  const [container, key] = pointer(schema, path);
179
- const node = { type: "object", description };
170
+ // The field's types stay, so a client still sends an array as an array.
171
+ const node = { ...typeShape(child(container, key)), description };
180
172
  pointers.add(node);
181
173
  put(container, key, node);
182
174
  }
175
+ const listed = new Set();
176
+ for (const [key, description] of Object.entries(LISTED_FIELDS[tool.name] ?? {})) {
177
+ const [container, at] = pointer(schema, `/properties/${key}`);
178
+ const node = child(container, at);
179
+ node.description = description;
180
+ listed.add(node);
181
+ }
183
182
  if (twin !== undefined && isSchema(schema.properties)) {
184
183
  schema.properties = Object.fromEntries(Object.entries(schema.properties).map(([key, field]) => [key, typeShape(field)]));
185
184
  // Open at the root to save bytes: the server parses the call against the full schema and names an unknown field.
186
185
  delete schema.additionalProperties;
187
186
  }
188
187
  delete schema.$schema;
189
- const own = new Set();
190
- const keepFields = WHOLE_FIELD_DESCRIPTIONS.has(tool.name);
191
188
  walk(schema, 0, (node, depth) => {
192
189
  if (node.maximum === Number.MAX_SAFE_INTEGER)
193
190
  delete node.maximum;
194
191
  if (node.minimum === -Number.MAX_SAFE_INTEGER)
195
192
  delete node.minimum;
193
+ // Constraints any JSON object meets, a format no JSON Schema defines (its pattern stays), and a pattern a date-time format states (#1045).
194
+ if (node.format === "starts_with" && typeof node.pattern === "string")
195
+ delete node.format;
196
+ if (isSchema(node.propertyNames) && Object.keys(node.propertyNames).join() === "type" && node.propertyNames.type === "string")
197
+ delete node.propertyNames;
198
+ if (isSchema(node.additionalProperties) && Object.keys(node.additionalProperties).length === 0)
199
+ delete node.additionalProperties;
200
+ if (node.format === "date-time" && typeof node.pattern === "string")
201
+ delete node.pattern;
196
202
  // The root still refuses unknown fields; a nested one is refused by the server, which names it.
197
203
  if (depth > 0 && node.additionalProperties === false)
198
204
  delete node.additionalProperties;
199
- if (depth === 0 || typeof node.description !== "string")
200
- return;
201
- if ((keepFields && depth === 1) || pointers.has(node))
205
+ // Any other field text is describe_tool's (#1142): names, types and values are listed, guidance is read on demand.
206
+ if (depth === 0 || typeof node.description !== "string" || pointers.has(node) || listed.has(node))
202
207
  return;
203
- if (described.has(node.description) || kept.has(node.description)) {
208
+ if (depth > 1 || !MARKED_FIELD.test(node.description))
204
209
  delete node.description;
205
- return;
206
- }
207
- own.add(node.description);
208
- node.description = shorten(node.description, depth === 1 ? FIELD_DESCRIPTION_CHARS : NESTED_DESCRIPTION_CHARS);
209
210
  });
210
- for (const text of own)
211
- described.add(text);
212
211
  const { execution, ...rest } = tool;
213
- const description = twin === undefined ? tool.description : withTwinNote(tool.description ?? "", twin);
212
+ const body = listedDescription(tool);
213
+ const description = twin === undefined ? body : withTwinNote(body ?? "", twin);
214
214
  return { ...rest, ...(execution === undefined || execution.taskSupport === "forbidden" ? {} : { execution }),
215
215
  ...(description === undefined ? {} : { description }), inputSchema: hoistRepeats(schema, pointers) };
216
216
  });
217
217
  }
218
+ /** A tool's listed text: its short text and the price line its full text ends with, or the full text when it has none. */
219
+ export function listedDescription(tool) {
220
+ const short = LISTED_DESCRIPTIONS[tool.name];
221
+ if (short === undefined)
222
+ return tool.description;
223
+ const price = priceLine(tool.name);
224
+ return price !== null && tool.description?.endsWith(price) ? `${short} ${price}` : short;
225
+ }
226
+ /** Every description a tool's schema holds, by field path (`a.b`, `a[]` for items), for describe_tool. */
227
+ export function fieldTexts(node, path = "", into = {}) {
228
+ if (path !== "" && typeof node.description === "string" && !(into[path]?.split("\n").includes(node.description) ?? false)) {
229
+ into[path] = into[path] === undefined ? node.description : `${into[path]}\n${node.description}`;
230
+ }
231
+ for (const [keyword, value] of Object.entries(node)) {
232
+ if (MAP_KEYWORDS.includes(keyword) && isSchema(value)) {
233
+ for (const [key, sub] of Object.entries(value)) {
234
+ if (isSchema(sub))
235
+ fieldTexts(sub, keyword === "properties" ? (path === "" ? key : `${path}.${key}`) : `${keyword}.${key}`, into);
236
+ }
237
+ }
238
+ else if (ONE_KEYWORDS.includes(keyword) && isSchema(value))
239
+ fieldTexts(value, keyword === "items" ? `${path}[]` : path, into);
240
+ else if (LIST_KEYWORDS.includes(keyword) && Array.isArray(value))
241
+ for (const branch of value)
242
+ if (isSchema(branch))
243
+ fieldTexts(branch, path, into);
244
+ }
245
+ return into;
246
+ }
247
+ /** describe_tool's answer: a tool's full description and field guidance as the server registered them, or one field's (with its subfields). */
248
+ export function describeTool(tools, name, field) {
249
+ const tool = tools.find(entry => entry.name === name);
250
+ if (tool === undefined)
251
+ return undefined;
252
+ const fields = Object.entries(fieldTexts(tool.inputSchema))
253
+ .filter(([path]) => field === undefined || path === field || path.startsWith(`${field}.`) || path.startsWith(`${field}[]`));
254
+ return { tool: name, description: tool.description ?? "", fields: Object.fromEntries(fields) };
255
+ }
218
256
  let cached;
219
257
  /** The advertised list for the tools the SDK lists; the hosted server builds a server per request, so the last answer is kept. */
220
258
  export function advertisedTools(tools) {
@@ -223,7 +261,7 @@ export function advertisedTools(tools) {
223
261
  cached = { key, tools: advertise(tools) };
224
262
  return structuredClone(cached.tools);
225
263
  }
226
- /** Wraps the SDK's tools/list answer; call after every tool is registered. */
264
+ /** Wraps the SDK's tools/list answer; call after every tool is registered. Answers the SDK's own list, which describe_tool reads. */
227
265
  export function advertiseSlimTools(server) {
228
266
  // The SDK offers no hook into its tools/list answer, so the registered handler is wrapped in its private map.
229
267
  const handlers = server.server._requestHandlers;
@@ -234,5 +272,8 @@ export function advertiseSlimTools(server) {
234
272
  const answer = await list(request, extra);
235
273
  return { ...answer, tools: advertisedTools(answer.tools) };
236
274
  });
275
+ // Every tool is registered by now, so one server's list never changes: built once, on the first read.
276
+ let full;
277
+ return () => (full ??= list({ method: "tools/list", params: {} }, {}).then(answer => answer.tools));
237
278
  }
238
279
  //# sourceMappingURL=advertised-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"advertised-schema.js","sourceRoot":"","sources":["../src/advertised-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advertised-schema.js","sourceRoot":"","sources":["../src/advertised-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvE,sGAAsG;AACtG,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,qBAAqB,EAAE;QACrB,kFAAkF,EAChF,mDAAmD;QACrD,kFAAkF,EAChF,6DAA6D;QAC/D,oEAAoE,EAClE,6FAA6F;KAChG;IACD,qBAAqB,EAAE;QACrB,+BAA+B,EAC7B,6FAA6F;QAC/F,mBAAmB,EAAE,qCAAqC;QAC1D,0BAA0B,EAAE,6CAA6C;KAC1E;IACD,SAAS,EAAE,EAAE,oBAAoB,EAAE,uCAAuC,EAAE;IAC5E,sHAAsH;IACtH,SAAS,EAAE,EAAE,0BAA0B,EAAE,6FAA6F;YACpI,6BAA6B,EAAE;CAClC,CAAC;AACF,oIAAoI;AACpI,MAAM,YAAY,GAAG,sCAAsC,CAAC;AAE5D,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;AACrG,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;AAC9J,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AACjE,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE3H,oGAAoG;AACpG,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,KAAK,GAAqD,EAAE,CAAC;IACnE,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;aACvH,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACzF,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACzJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,KAAK,GAAG,CAAC,SAA6B,EAAE,GAAoB,EAAW,EAAE,CAAE,SAA8C,CAAC,GAAG,CAAC,CAAC;AACrI,MAAM,GAAG,GAAG,CAAC,SAA6B,EAAE,GAAoB,EAAE,KAAc,EAAQ,EAAE;IACvF,SAA8C,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC/D,CAAC,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY,EAAE,KAAa,EAAE,KAA4C;IACrF,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAU,EAAE,CACtD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAc,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,aAAa,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjJ,+HAA+H;AAC/H,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa;IACjH,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB;IACtI,WAAW,EAAE,cAAc;CAC5B,CAAC;AAEF,gHAAgH;AAChH,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,KAAW;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAW,CAAC,CAAC;IAC7G,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAW,CAAC;IAC/E,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAW,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;WAChG,IAAI,CAAC,SAAS,CAAE,CAAC,GAAI,CAAC,QAAQ,IAAI,EAAE,CAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxI,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iIAAiI;AACjI,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAI,GAAwB,IAAI,GAAG,EAAE;IAChF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC5C,MAAM,IAAI,GAAW,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,KAAsF,EAAQ,EAAE;QAC5G,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE;YAClC,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACpC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC;oBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,CAAC;QACX,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,IAAI,QAAQ,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAC,CAAC;YAClI,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACrE,IAAI,IAAwB,EAAE,IAAI,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChF,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;gBAAC,IAAI,GAAG,KAAK,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC;YAAC,CAAC;QAC/D,CAAC;QACD,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,IAAI,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACpE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,0IAA0I;AAC1I,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,IAAI,OAAO,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAChG,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,0FAA0F;IAC1F,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,OAAO,CAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5I,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,IAAoC,EAAU,EAAE,CACzF,6BAA6B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AAEjI,SAAS,OAAO,CAAC,IAAY,EAAE,IAAY;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,GAAY,IAAI,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAAE,IAAI,GAAI,IAA4C,EAAE,CAAC,GAAG,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IACxH,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,KAAsB;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAW,CAAC;QAC3D,kGAAkG;QAClG,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/C,wEAAwE;YACxE,MAAM,IAAI,GAAG,EAAE,GAAI,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAY,EAAE,WAAW,EAAE,CAAC;YAC9E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAChF,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAW,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzH,iHAAiH;YACjH,OAAO,MAAM,CAAC,oBAAoB,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,gBAAgB;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClE,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;YACnE,2IAA2I;YAC3I,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;YAC1F,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,aAAa,CAAC;YACzJ,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC;YACjI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;YACzF,gGAAgG;YAChG,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC;YACvF,mHAAmH;YACnH,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC1G,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/E,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YAC1G,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAwB,EAAE,CAAC;IAChI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0HAA0H;AAC1H,MAAM,UAAU,iBAAiB,CAAC,IAAwC;IACxE,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3F,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAA2B,EAAE;IACnF,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1H,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,IAAI,QAAQ,CAAC,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACpI,CAAC;QACH,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC3H,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,MAAM,MAAM,IAAI,KAAK;gBAAE,IAAI,QAAQ,CAAC,MAAM,CAAC;oBAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+IAA+I;AAC/I,MAAM,UAAU,YAAY,CAAC,KAAsB,EAAE,IAAY,EAAE,KAAc;IAE/E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAqB,CAAC,CAAC;SAClE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;IAC9H,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,IAAI,MAAkD,CAAC;AACvD,kIAAkI;AAClI,MAAM,UAAU,eAAe,CAAC,KAAsB;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG;QAAE,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IACnE,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAGD,qIAAqI;AACrI,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,8GAA8G;IAC9G,MAAM,QAAQ,GAAI,MAAM,CAAC,MAAqE,CAAC,gBAAgB,CAAC;IAChH,MAAM,IAAI,GAAG,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9H,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,sGAAsG;IACtG,IAAI,IAAiC,CAAC;IACtC,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtG,CAAC"}
package/dist/format.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { RUN_WAIT_MAX_SECONDS } from "@clipwright/core";
1
+ import { RUN_WAIT_MAX_SECONDS, type Skill } from "@clipwright/core";
2
2
  import type { WorkflowRunRead, WorkflowLaunchRead } from '@clipwright/core/workflows';
3
3
  /** The longest a `get_run` holds its answer; the API holds it (#1036). */
4
4
  export { RUN_WAIT_MAX_SECONDS };
@@ -19,6 +19,11 @@ export declare function formatFailure(error: unknown): McpToolResponse;
19
19
  /** Tool body with API refusals expanded for the agent; shared by every tool so */
20
20
  /** no tool can forget the `try`. */
21
21
  export declare function withFailureReport(body: () => Promise<McpToolResponse>): Promise<McpToolResponse>;
22
+ /** What each run kind delivers and where a succeeded read names it: a picture's run is never "the video". */
23
+ export declare const PENDING_RESULTS: Readonly<Record<Skill, {
24
+ noun: string;
25
+ field: string;
26
+ }>>;
22
27
  /** Pure `get_run` formatter. Terminal answers carry both `status` and `state`; */
23
28
  /** an unknown terminal state falls into IN_PROGRESS by design. */
24
29
  export declare function formatGetRun(run: WorkflowRunRead, receipt?: WorkflowLaunchRead['receipt']): McpToolResponse;
package/dist/format.js CHANGED
@@ -25,6 +25,16 @@ export async function withFailureReport(body) {
25
25
  return formatFailure(error);
26
26
  }
27
27
  }
28
+ /** What each run kind delivers and where a succeeded read names it: a picture's run is never "the video". */
29
+ export const PENDING_RESULTS = {
30
+ make_ugc: { noun: "video", field: "video_url" },
31
+ make_faceless: { noun: "video", field: "video_url" },
32
+ revise_long_form: { noun: "video", field: "video_url" },
33
+ generate_image: { noun: "image", field: "generation.url" },
34
+ generate_video: { noun: "clip", field: "generation.url" },
35
+ edit_shot: { noun: "shot candidate", field: "candidate" },
36
+ create_actor: { noun: "actor", field: "created_actor.actor_id" },
37
+ };
28
38
  /** Pure `get_run` formatter. Terminal answers carry both `status` and `state`; */
29
39
  /** an unknown terminal state falls into IN_PROGRESS by design. */
30
40
  export function formatGetRun(run, receipt) {
@@ -85,7 +95,8 @@ export function formatGetRun(run, receipt) {
85
95
  ],
86
96
  };
87
97
  }
88
- // Non-terminal (or unknown terminal) state: the same imperative format as make_ugc.
98
+ // Non-terminal (or unknown terminal) state: the same imperative format for every run, naming what this run delivers (#1172).
99
+ const pending = PENDING_RESULTS[run.skill] ?? { noun: "result", field: "a succeeded state" };
89
100
  return {
90
101
  content: [
91
102
  {
@@ -96,12 +107,12 @@ export function formatGetRun(run, receipt) {
96
107
  run_id: run.run_id,
97
108
  state: run.state,
98
109
  ...runMoney(run),
99
- video_url: null,
110
+ ...(pending.field === "video_url" ? { video_url: null } : {}),
100
111
  warnings: run.warnings,
101
- next_action: "Video is NOT ready. Call get_run with poll.arguments (run_id=" +
112
+ next_action: `The ${pending.noun} is NOT ready. Call get_run with poll.arguments (run_id=` +
102
113
  run.run_id +
103
114
  `, wait_seconds=${RUN_WAIT_MAX_SECONDS}): it waits up to ${RUN_WAIT_MAX_SECONDS} s for the run to end. Repeat until state is 'succeeded' or 'failed'. ` +
104
- "Do NOT tell the user the video is done until you have a video_url.",
115
+ `Do NOT tell the user the ${pending.noun} is done until you have ${pending.field}.`,
105
116
  poll: { tool: "get_run", arguments: { run_id: run.run_id, wait_seconds: RUN_WAIT_MAX_SECONDS }, retry_after_seconds: RUN_RETRY_AFTER_SECONDS },
106
117
  }),
107
118
  },
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** A tool's text in tools/list, before its price line; a tool not named lists its full text. */
2
+ export declare const LISTED_DESCRIPTIONS: Record<string, string>;
3
+ /** A top field's text in tools/list; a field not named keeps its first words. */
4
+ export declare const LISTED_FIELDS: Record<string, Record<string, string>>;