@contenthero/mcp 0.4.11 → 0.4.13
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/dist/format.d.ts +232 -27
- package/dist/format.d.ts.map +1 -1
- package/dist/index.js +4460 -43
- package/dist/server.d.ts +51 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/widget/generation.d.ts +2 -2
- package/dist/widget/generation.d.ts.map +1 -1
- package/dist/widget-uri.d.ts +20 -1
- package/dist/widget-uri.d.ts.map +1 -1
- package/package.json +6 -5
- package/dist/client.js +0 -54
- package/dist/client.js.map +0 -1
- package/dist/format.js +0 -1518
- package/dist/format.js.map +0 -1
- package/dist/groups.js +0 -142
- package/dist/groups.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/models.js +0 -166
- package/dist/models.js.map +0 -1
- package/dist/server.js +0 -3285
- package/dist/server.js.map +0 -1
- package/dist/widget/generation.js +0 -4
- package/dist/widget/generation.js.map +0 -1
- package/dist/widget-uri.js +0 -12
- package/dist/widget-uri.js.map +0 -1
package/dist/format.d.ts
CHANGED
|
@@ -87,35 +87,193 @@ export type GeneratedAttachment = {
|
|
|
87
87
|
/** Where a deep link points when no client base url was threaded through. */
|
|
88
88
|
export declare const DEFAULT_APP_URL = "https://app.contenthero.ai";
|
|
89
89
|
export declare function studioUrlFor(baseUrl: string, outputId: string, index: number, total: number): string;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
/**
|
|
91
|
+
* What the widget is handed, for ANY media this server produces.
|
|
92
|
+
*
|
|
93
|
+
* ## ⭐⭐⭐ ONE BUILDER, BECAUSE "WHAT DOES THE WIDGET SHOW" IS ONE QUESTION
|
|
94
|
+
*
|
|
95
|
+
* The payload used to be derivable only from a `Generation`, so every tool that produced media by another
|
|
96
|
+
* route had no way to render at all. `generate_audio` and `edit_audio` returned plain text, which is why
|
|
97
|
+
* audio has been invisible in a chat for this entire feature. That was not a decision anybody made; it is
|
|
98
|
+
* what happens when the only door into the widget is shaped like one caller.
|
|
99
|
+
*
|
|
100
|
+
* ⚠️ Everything past `outputId`, `contentType` and `urls` is OPTIONAL, because a caller that genuinely has
|
|
101
|
+
* no model, prompt or aspect must be able to render rather than invent them. The widget already renders
|
|
102
|
+
* nothing for a null chip.
|
|
103
|
+
*/
|
|
104
|
+
export interface MediaWidgetItem {
|
|
105
|
+
url: string;
|
|
106
|
+
/** A still for a video, so a tile shows something before anyone presses play. */
|
|
107
|
+
posterUrl?: string | null;
|
|
108
|
+
/** The reference a person copies and the API accepts: `<outputId>` or `<outputId>-<n>`, one-based. */
|
|
109
|
+
name: string;
|
|
110
|
+
contentType: 'image' | 'video' | 'audio';
|
|
111
|
+
/** `"W:H"`. Null for audio, and null when nothing measured it. */
|
|
112
|
+
displayAspect?: string | null;
|
|
113
|
+
/**
|
|
114
|
+
* Where this thing lives IN THE PRODUCT.
|
|
115
|
+
*
|
|
116
|
+
* ⛔ **NOT `studioUrl`, WHICH IS WHAT IT WAS CALLED AND WHAT MADE THE THINKING WRONG.** Naming a field
|
|
117
|
+
* after one destination made "does an export belong in the studio detail view" sound like a question
|
|
118
|
+
* worth answering; it is not, because an export belongs to the editor and canvas. Whoever builds the
|
|
119
|
+
* payload knows where its media lives, so they supply the link and the widget just opens it.
|
|
120
|
+
*
|
|
121
|
+
* ⚠️ Optional. Absent means there is nowhere to go, and the Open button does not render.
|
|
122
|
+
*/
|
|
123
|
+
openUrl?: string;
|
|
124
|
+
/**
|
|
125
|
+
* The token the API accepts for this item: `<outputId>` or `<outputId>-<n>`, one-based.
|
|
126
|
+
*
|
|
127
|
+
* ## ⛔⛔ ITS ABSENCE IS WHAT HIDES ANIMATE, EDIT AND RECREATE
|
|
128
|
+
*
|
|
129
|
+
* Those verbs all end in a tool call that has to NAME this thing: `referenceImages` takes "a URL or a
|
|
130
|
+
* previous output id". A project export has an exportId, which no generate tool resolves, so offering to
|
|
131
|
+
* animate one produces a message the agent cannot act on and a person cannot tell was never going to
|
|
132
|
+
* work. Download is always offered, because a file is always a file.
|
|
133
|
+
*
|
|
134
|
+
* ⚠️ This was already wrong for audio the moment it started rendering: Recreate emitted `model:` and
|
|
135
|
+
* `prompt:` with nothing after them, from a payload that carries neither.
|
|
136
|
+
*/
|
|
137
|
+
reference?: string;
|
|
138
|
+
/** Per-item chip, for a mixed set where the items do not share one model. */
|
|
139
|
+
modelName?: string | null;
|
|
140
|
+
modelBrandColor?: string | null;
|
|
141
|
+
modelIconKey?: string | null;
|
|
142
|
+
/**
|
|
143
|
+
* ⭐⭐⭐ **THE SMALL PICTURE, WHICH IS WHAT A TILE MUST PAINT.**
|
|
144
|
+
*
|
|
145
|
+
* The tile used to point `<img src>` at `url`, the master. Masters are 1.7 to 2.9 MB, so ten tiles is
|
|
146
|
+
* about 25 MB over a browser's ~6 connections per origin: measured as five to ten minutes of Laurel
|
|
147
|
+
* skeletons, with some tiles never arriving at all.
|
|
148
|
+
*
|
|
149
|
+
* ⛔⛔ **PAINTING ONLY. NEVER SAVED, NEVER DOWNLOADED.** A preview is 1600px at WebP quality 80. Handing
|
|
150
|
+
* it to someone who asked to download their asset is a silent quality downgrade, so Download stays on
|
|
151
|
+
* `url` and the detail view uses this only as its first paint before the master arrives.
|
|
152
|
+
*
|
|
153
|
+
* Null when no derivative exists, in which case the master is the only address there is.
|
|
154
|
+
*/
|
|
155
|
+
previewUrl?: string | null;
|
|
156
|
+
/**
|
|
157
|
+
* Which library this came from, so the widget knows whether Recreate applies.
|
|
158
|
+
*
|
|
159
|
+
* ⚠️ Only a CREATION was ever generated. Offering "generate this again" on an upload or a stock clip is
|
|
160
|
+
* an action the agent cannot carry out, which is the same defect as offering Animate on an export.
|
|
161
|
+
*/
|
|
162
|
+
source?: 'creations' | 'uploads' | 'stock' | null;
|
|
163
|
+
/**
|
|
164
|
+
* ⛔⛔ THERE IS NO PER-ITEM `prompt` HERE, AND ITS ABSENCE IS DELIBERATE.
|
|
165
|
+
*
|
|
166
|
+
* It was, so Recreate could quote it. A prompt is the largest field on an item, and `show_media` carries
|
|
167
|
+
* up to a hundred: measured, sixty items cost 165 KB of context with prompts embedded, against a tool
|
|
168
|
+
* whose whole justification is that its cost does not grow with the count.
|
|
169
|
+
*
|
|
170
|
+
* ⭐ Recreate names the ITEM instead and lets the agent read its settings, which is the rule this file
|
|
171
|
+
* already applies to urls: "the messages name an output id, not a url". A reference is 36 characters and
|
|
172
|
+
* resolves to everything, including a prompt too long to have embedded safely anyway.
|
|
173
|
+
*
|
|
174
|
+
* ⚠️ `modelId` STAYS. It is about twenty characters, it does not grow, and it lets the message say which
|
|
175
|
+
* model without a lookup. Its reader is the agent, which needs the token; the chip is the opposite case
|
|
176
|
+
* and renders nothing rather than an id.
|
|
177
|
+
*/
|
|
178
|
+
modelId?: string | null;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* What the widget is handed, for ANY media this server produces.
|
|
182
|
+
*
|
|
183
|
+
* ## ⭐⭐⭐ A SET OF ITEMS, AND A GENERATION IS THE SPECIAL CASE WHERE THEY SHARE A SHAPE
|
|
184
|
+
*
|
|
185
|
+
* The payload used to BE a generation: one `outputId`, one `contentType`, one model chip, one prompt and
|
|
186
|
+
* one aspect ratio shared by every tile. That shape is why nothing but a generation could render. Ten
|
|
187
|
+
* library items from ten different generations do not fit it, and neither does an upload, an import or a
|
|
188
|
+
* project export.
|
|
189
|
+
*
|
|
190
|
+
* ⭐ Generalizing to items costs nothing at the call site and removes the whole class: a generation is now
|
|
191
|
+
* "items that happen to share a model, a prompt and a shape", which is a property of the data rather than
|
|
192
|
+
* a mode anyone has to select. The widget derives its layout from that property.
|
|
193
|
+
*
|
|
194
|
+
* ⚠️ Everything shared is OPTIONAL, because a caller that genuinely has no model, prompt or aspect must be
|
|
195
|
+
* able to render rather than invent them. The widget renders no chip for a null name.
|
|
196
|
+
*/
|
|
197
|
+
export interface MediaWidgetInput {
|
|
198
|
+
/** The generation these items came from, when they came from one. Absent for a mixed set. */
|
|
199
|
+
outputId?: string;
|
|
200
|
+
items: readonly MediaWidgetItem[];
|
|
201
|
+
/** Shared chip, when every item shares it. */
|
|
202
|
+
modelId?: string;
|
|
203
|
+
modelDisplayName?: string | null;
|
|
204
|
+
modelBrandColor?: string | null;
|
|
205
|
+
modelIconKey?: string | null;
|
|
206
|
+
prompt?: string | null;
|
|
207
|
+
/** Shared shape, when every item shares it. Its presence is what makes the layout a ROW. */
|
|
208
|
+
displayAspect?: string | null;
|
|
209
|
+
/** Shared medium, when every item shares it. */
|
|
210
|
+
contentType?: 'image' | 'video' | 'audio';
|
|
211
|
+
}
|
|
212
|
+
export declare function mediaWidgetData(input: MediaWidgetInput): {
|
|
213
|
+
outputId: string | null;
|
|
214
|
+
contentType: "image" | "audio" | "video" | null;
|
|
93
215
|
modelId: string;
|
|
94
216
|
/**
|
|
95
217
|
* ⛔⛔ **NULL WHEN THERE IS NOTHING TO NAME, AND THE WIDGET MUST RENDER NO CHIP.**
|
|
96
218
|
*
|
|
97
|
-
* This used to be `displayName ??
|
|
98
|
-
*
|
|
99
|
-
*
|
|
219
|
+
* This used to be `displayName ?? modelId`, fed by a catalog fetch with a `catch` that returned the id.
|
|
220
|
+
* The id reads like a label, so a failed fetch showed as a chip flickering between kebab case and title
|
|
221
|
+
* case rather than as a failure. The name now arrives on the row.
|
|
222
|
+
*/
|
|
223
|
+
modelName: string | null;
|
|
224
|
+
modelBrandColor: string | null;
|
|
225
|
+
modelIconKey: string | null;
|
|
226
|
+
displayAspect: string | null;
|
|
227
|
+
/** Verbatim. Some prompts are JSON-shaped because the person authored one; that object IS the prompt. */
|
|
228
|
+
prompt: string | null;
|
|
229
|
+
items: {
|
|
230
|
+
url: string;
|
|
231
|
+
posterUrl: string | null;
|
|
232
|
+
name: string;
|
|
233
|
+
contentType: "image" | "audio" | "video";
|
|
234
|
+
displayAspect: string | null;
|
|
235
|
+
openUrl: string | null;
|
|
236
|
+
reference: string | null;
|
|
237
|
+
modelName: string | null;
|
|
238
|
+
modelBrandColor: string | null;
|
|
239
|
+
modelIconKey: string | null;
|
|
240
|
+
previewUrl: string | null;
|
|
241
|
+
source: "creations" | "uploads" | "stock" | null;
|
|
242
|
+
modelId: string | null;
|
|
243
|
+
}[];
|
|
244
|
+
};
|
|
245
|
+
/** A generation's widget payload. A thin adapter over {@link mediaWidgetData}, not a second builder. */
|
|
246
|
+
export declare function generationWidgetData(gen: Generation, posterUrls?: readonly (string | null)[], baseUrl?: string): {
|
|
247
|
+
outputId: string | null;
|
|
248
|
+
contentType: "image" | "audio" | "video" | null;
|
|
249
|
+
modelId: string;
|
|
250
|
+
/**
|
|
251
|
+
* ⛔⛔ **NULL WHEN THERE IS NOTHING TO NAME, AND THE WIDGET MUST RENDER NO CHIP.**
|
|
100
252
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
253
|
+
* This used to be `displayName ?? modelId`, fed by a catalog fetch with a `catch` that returned the id.
|
|
254
|
+
* The id reads like a label, so a failed fetch showed as a chip flickering between kebab case and title
|
|
255
|
+
* case rather than as a failure. The name now arrives on the row.
|
|
103
256
|
*/
|
|
104
257
|
modelName: string | null;
|
|
105
|
-
/** Hex brand accent from the registry, or null. The widget colors its chip with it. */
|
|
106
258
|
modelBrandColor: string | null;
|
|
107
|
-
/** Brand family key (e.g. `"openai"`) for choosing a glyph. NOT the model id. */
|
|
108
259
|
modelIconKey: string | null;
|
|
109
|
-
/** `"W:H"`, or null for audio. Drives the column count and the tile's own shape. */
|
|
110
260
|
displayAspect: string | null;
|
|
111
261
|
/** Verbatim. Some prompts are JSON-shaped because the person authored one; that object IS the prompt. */
|
|
112
262
|
prompt: string | null;
|
|
113
|
-
|
|
263
|
+
items: {
|
|
114
264
|
url: string;
|
|
115
265
|
posterUrl: string | null;
|
|
116
266
|
name: string;
|
|
117
|
-
|
|
118
|
-
|
|
267
|
+
contentType: "image" | "audio" | "video";
|
|
268
|
+
displayAspect: string | null;
|
|
269
|
+
openUrl: string | null;
|
|
270
|
+
reference: string | null;
|
|
271
|
+
modelName: string | null;
|
|
272
|
+
modelBrandColor: string | null;
|
|
273
|
+
modelIconKey: string | null;
|
|
274
|
+
previewUrl: string | null;
|
|
275
|
+
source: "creations" | "uploads" | "stock" | null;
|
|
276
|
+
modelId: string | null;
|
|
119
277
|
}[];
|
|
120
278
|
};
|
|
121
279
|
export declare function completedResult(gen: Generation, attachments?: GeneratedAttachment[], posterUrls?: readonly (string | null)[],
|
|
@@ -166,7 +324,21 @@ export interface PendingShape {
|
|
|
166
324
|
*/
|
|
167
325
|
export declare function pendingResult(outputId: string, pollAfterSeconds?: number, shape?: PendingShape): CallToolResult;
|
|
168
326
|
/** Synchronous audio result (already complete on submit). */
|
|
169
|
-
|
|
327
|
+
/**
|
|
328
|
+
* Synchronous audio: already complete when the call returns.
|
|
329
|
+
*
|
|
330
|
+
* ## ⛔⛔⛔ THIS RENDERED NOTHING FOR THE ENTIRE LIFE OF THE WIDGET
|
|
331
|
+
*
|
|
332
|
+
* Audio has a first-class MCP block AND the widget plays it, and neither reached anyone, because this
|
|
333
|
+
* builder returned plain text and `generate_audio` was never added to the hand-maintained list of tools
|
|
334
|
+
* that declare a widget. Nobody decided audio should be invisible; it is what an allowlist does to
|
|
335
|
+
* anything nobody remembered to add.
|
|
336
|
+
*
|
|
337
|
+
* ⚠️ No model name, brand or aspect here: a synchronous result carries none of them, and inventing them
|
|
338
|
+
* would be worse than a chip that renders nothing. Audio has no shape, so `displayAspect` is genuinely
|
|
339
|
+
* null rather than unknown.
|
|
340
|
+
*/
|
|
341
|
+
export declare function audioResult(result: GenerateResult | EditAudioResult, baseUrl?: string): CallToolResult;
|
|
170
342
|
/**
|
|
171
343
|
* In-place clip enhancement: ONE JOB PER SOURCE, so the agent gets every outputId.
|
|
172
344
|
*
|
|
@@ -256,20 +428,42 @@ export declare function folderContentsResult(folder: {
|
|
|
256
428
|
/** One studio output's detail, with its variations. */
|
|
257
429
|
export declare function mediaResult(m: MediaItem): CallToolResult;
|
|
258
430
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
* video/audio/errors). This just assembles the result. See get-context §9.5.
|
|
431
|
+
* One inlined image, or the reason there is none.
|
|
432
|
+
*
|
|
433
|
+
* ⭐⭐⭐ **THE REASON TRAVELS WITH THE SLOT, BECAUSE A COUNT IS NOT A DIAGNOSIS.** "0 image(s) attached" was
|
|
434
|
+
* true for a week across two unrelated defects and could not distinguish either from a network blip.
|
|
264
435
|
*/
|
|
265
|
-
export
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
436
|
+
export interface InlinedImageSlot {
|
|
437
|
+
image: {
|
|
438
|
+
data: string;
|
|
439
|
+
mimeType: string;
|
|
440
|
+
} | null;
|
|
441
|
+
skipped?: string;
|
|
442
|
+
/** Machine-readable cause, so advice about the CALL is said once rather than once per item. */
|
|
443
|
+
reason?: string;
|
|
444
|
+
}
|
|
445
|
+
export declare function mediaBatchResult(result: MediaBatchResult, images: InlinedImageSlot[], baseUrl?: string): CallToolResult;
|
|
446
|
+
export declare function mediaDisplayResult(result: MediaBatchResult, baseUrl?: string): CallToolResult;
|
|
269
447
|
/** Phase 1 of an upload: the signed URL + the PUT-then-complete instructions. */
|
|
270
448
|
export declare function mediaUploadResult(r: CreateMediaUploadResult): CallToolResult;
|
|
271
449
|
/** A finalized upload or import: a first-class media output. */
|
|
272
|
-
|
|
450
|
+
/**
|
|
451
|
+
* Media the person's own bytes just became.
|
|
452
|
+
*
|
|
453
|
+
* ## ⭐ AN UPLOAD IS NEW MEDIA IN THEIR LIBRARY, SO IT DISPLAYS
|
|
454
|
+
*
|
|
455
|
+
* The rule is that a tool returning newly created or newly acquired media shows it, and an upload is the
|
|
456
|
+
* second. Confirmation is the value: a thumbnail says the right file landed, where a line of text says
|
|
457
|
+
* only that something did.
|
|
458
|
+
*
|
|
459
|
+
* ⛔ This could not render at all until the API started returning `contentType`. Guessing image from a
|
|
460
|
+
* url's extension is what renders a video as a broken image, so text was the honest answer while the type
|
|
461
|
+
* was unknown, and it remains the answer for a `document`, which has no element.
|
|
462
|
+
*
|
|
463
|
+
* ⚠️ Referenceable, unlike an export: `outputId` is exactly what `generate_*` accepts, which is what the
|
|
464
|
+
* prose has always told the caller.
|
|
465
|
+
*/
|
|
466
|
+
export declare function uploadedMediaResult(r: UploadedMedia, baseUrl?: string): CallToolResult;
|
|
273
467
|
/**
|
|
274
468
|
* The result of an import, which may have created nothing.
|
|
275
469
|
*
|
|
@@ -287,7 +481,7 @@ export declare function uploadedMediaResult(r: UploadedMedia): CallToolResult;
|
|
|
287
481
|
* Saying "already imported" without naming what it is would send someone hunting for a library item that
|
|
288
482
|
* does not exist. That is the exact confusion this whole fix came from.
|
|
289
483
|
*/
|
|
290
|
-
export declare function importedMediaResult(r: ImportedMedia): CallToolResult;
|
|
484
|
+
export declare function importedMediaResult(r: ImportedMedia, baseUrl?: string): CallToolResult;
|
|
291
485
|
export declare function balanceResult(b: Balance): CallToolResult;
|
|
292
486
|
/** List of the account's saved reference elements. */
|
|
293
487
|
export declare function elementListResult(items: Element[]): CallToolResult;
|
|
@@ -399,7 +593,18 @@ export declare function projectCreatedResult(p: ProjectDetail): CallToolResult;
|
|
|
399
593
|
export declare function projectDeletedResult(projectId: string): CallToolResult;
|
|
400
594
|
/** The canvas layer-type catalog (types + editable props) as readable text + the JSON. */
|
|
401
595
|
export declare function layerTypesResult(cat: LayerTypeCatalog): CallToolResult;
|
|
402
|
-
/**
|
|
596
|
+
/**
|
|
597
|
+
* An export, DISPLAYED. Separate from {@link exportJobResult} by name, not by a flag.
|
|
598
|
+
*
|
|
599
|
+
* ## ⛔⛔ ONLY THE TOOL THAT STARTED THE EXPORT KNOWS ITS FORMAT
|
|
600
|
+
*
|
|
601
|
+
* `get_export` polls by exportId alone, so it cannot know whether the file is an mp4 or a pptx and can
|
|
602
|
+
* never render one. Leaving both paths inside one builder made the completeness guard read `get_export` as
|
|
603
|
+
* a tool that emits a widget, which it does not, and an invariant that has to be argued with is not one.
|
|
604
|
+
* Two names, each true on its own.
|
|
605
|
+
*/
|
|
606
|
+
export declare function completedExportResult(job: ExportJob, format: string, baseUrl?: string): CallToolResult;
|
|
607
|
+
/** An export, REPORTED. No widget: a poll does not know the format, so it cannot draw the file. */
|
|
403
608
|
export declare function exportJobResult(job: ExportJob): CallToolResult;
|
|
404
609
|
/** The export-format catalog as readable text + JSON. */
|
|
405
610
|
export declare function exportFormatsResult(cat: ExportFormatCatalog): CallToolResult;
|
package/dist/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|