@easysociable/cli 0.1.15 → 0.1.16
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/easysociable.js +429 -52
- package/dist/easysociable.js.map +1 -1
- package/package.json +2 -2
package/dist/easysociable.js
CHANGED
|
@@ -31818,11 +31818,13 @@ var init_src4 = __esm({
|
|
|
31818
31818
|
{
|
|
31819
31819
|
name: "get_gradient",
|
|
31820
31820
|
title: "Get gradient",
|
|
31821
|
-
description: "
|
|
31821
|
+
description: "Retrieve the full gradient CSS recipe (color stops, linear angle, and semantic tokens) for a specific gradient by gradientId. Use this after selecting a gradient from list_gradients to apply background styling or surface decoration to cards.",
|
|
31822
31822
|
effect: "read-only",
|
|
31823
31823
|
inputSchema: {
|
|
31824
31824
|
type: "object",
|
|
31825
|
-
properties: {
|
|
31825
|
+
properties: {
|
|
31826
|
+
gradientId: { type: "string", description: "The unique identifier of the gradient preset (e.g. grad_warm_sunset)." }
|
|
31827
|
+
},
|
|
31826
31828
|
required: ["gradientId"],
|
|
31827
31829
|
additionalProperties: false
|
|
31828
31830
|
},
|
|
@@ -31836,10 +31838,10 @@ var init_src4 = __esm({
|
|
|
31836
31838
|
inputSchema: {
|
|
31837
31839
|
type: "object",
|
|
31838
31840
|
properties: {
|
|
31839
|
-
query: { type: "string" },
|
|
31840
|
-
collection: { type: "string" },
|
|
31841
|
-
style: { type: "string", description: "outline | solid | any" },
|
|
31842
|
-
limit: { type: "number" }
|
|
31841
|
+
query: { type: "string", description: "Search term for icon meaning or keyword (e.g. arrow, checkmark, star)." },
|
|
31842
|
+
collection: { type: "string", description: "Optional icon collection filter (e.g. lucide, tabler)." },
|
|
31843
|
+
style: { type: "string", description: "Icon rendering style: outline | solid | any" },
|
|
31844
|
+
limit: { type: "number", description: "Max number of candidates to return (default 8; prefer small limits for token budget)." }
|
|
31843
31845
|
},
|
|
31844
31846
|
required: ["query"],
|
|
31845
31847
|
additionalProperties: false
|
|
@@ -31854,8 +31856,8 @@ var init_src4 = __esm({
|
|
|
31854
31856
|
inputSchema: {
|
|
31855
31857
|
type: "object",
|
|
31856
31858
|
properties: {
|
|
31857
|
-
iconId: { type: "string", description: "e.g. lucide:arrow-right" },
|
|
31858
|
-
idempotencyKey: { type: "string" }
|
|
31859
|
+
iconId: { type: "string", description: "Canonical icon identifier confirmed from search_icons (e.g. lucide:arrow-right)." },
|
|
31860
|
+
idempotencyKey: { type: "string", description: "Unique idempotency key to prevent duplicate icon asset creation." }
|
|
31859
31861
|
},
|
|
31860
31862
|
required: ["iconId", "idempotencyKey"],
|
|
31861
31863
|
additionalProperties: false
|
|
@@ -31872,7 +31874,7 @@ var init_src4 = __esm({
|
|
|
31872
31874
|
{
|
|
31873
31875
|
name: "list_drafts",
|
|
31874
31876
|
title: "List authoring drafts",
|
|
31875
|
-
description: "List template authoring drafts for the current owner.",
|
|
31877
|
+
description: "List all template authoring drafts for the current account owner. Returns draft summaries with validation status, name, and timestamps. Use to resume an authoring session or find draft IDs before updating or publishing.",
|
|
31876
31878
|
effect: "read-only",
|
|
31877
31879
|
inputSchema: {
|
|
31878
31880
|
type: "object",
|
|
@@ -31884,16 +31886,16 @@ var init_src4 = __esm({
|
|
|
31884
31886
|
{
|
|
31885
31887
|
name: "create_draft",
|
|
31886
31888
|
title: "Create authoring draft",
|
|
31887
|
-
description: "
|
|
31889
|
+
description: "Initialize a new Page Template draft for authoring. Returns draftId and an interactive authoringStudioUrl for real-time visual canvas editing before publishing. Call this to create custom template layouts.",
|
|
31888
31890
|
effect: "local-write-job",
|
|
31889
31891
|
inputSchema: {
|
|
31890
31892
|
type: "object",
|
|
31891
31893
|
properties: {
|
|
31892
|
-
name: { type: "string" },
|
|
31893
|
-
source: { type: "object", additionalProperties: true },
|
|
31894
|
-
authoringSource: { type: "object", additionalProperties: true },
|
|
31895
|
-
selectionMetadata: { type: "object", additionalProperties: true },
|
|
31896
|
-
theme: { type: "object", additionalProperties: true }
|
|
31894
|
+
name: { type: "string", description: "Human-readable title for the template draft." },
|
|
31895
|
+
source: { type: "object", additionalProperties: true, description: "Optional initial canvas source tree." },
|
|
31896
|
+
authoringSource: { type: "object", additionalProperties: true, description: "Template AST structure including layer hierarchy and visual slots." },
|
|
31897
|
+
selectionMetadata: { type: "object", additionalProperties: true, description: "Aspect ratio and categorization metadata (platforms, layout family, intent)." },
|
|
31898
|
+
theme: { type: "object", additionalProperties: true, description: "Default theme overrides (palette, typography tokens)." }
|
|
31897
31899
|
},
|
|
31898
31900
|
required: ["name"],
|
|
31899
31901
|
additionalProperties: false
|
|
@@ -31903,11 +31905,13 @@ var init_src4 = __esm({
|
|
|
31903
31905
|
{
|
|
31904
31906
|
name: "get_draft",
|
|
31905
31907
|
title: "Get authoring draft",
|
|
31906
|
-
description: "Fetch
|
|
31908
|
+
description: "Fetch full authoring draft detail by draftId including layer canvas tree, slot contracts, theme bindings, and validation errors. Call this to inspect or validate a draft prior to updating or publishing.",
|
|
31907
31909
|
effect: "read-only",
|
|
31908
31910
|
inputSchema: {
|
|
31909
31911
|
type: "object",
|
|
31910
|
-
properties: {
|
|
31912
|
+
properties: {
|
|
31913
|
+
draftId: { type: "string", description: "The unique draft identifier to retrieve." }
|
|
31914
|
+
},
|
|
31911
31915
|
required: ["draftId"],
|
|
31912
31916
|
additionalProperties: false
|
|
31913
31917
|
},
|
|
@@ -31916,16 +31920,16 @@ var init_src4 = __esm({
|
|
|
31916
31920
|
{
|
|
31917
31921
|
name: "update_draft",
|
|
31918
31922
|
title: "Update authoring draft",
|
|
31919
|
-
description: "Update authoring draft
|
|
31923
|
+
description: "Update properties of an existing authoring draft. Modifies layer nodes, slot definitions, selection metadata, or theme tokens. Re-validates layout rules upon save. Call this to iteratively refine draft designs.",
|
|
31920
31924
|
effect: "local-write-job",
|
|
31921
31925
|
inputSchema: {
|
|
31922
31926
|
type: "object",
|
|
31923
31927
|
properties: {
|
|
31924
|
-
draftId: { type: "string" },
|
|
31925
|
-
name: { type: "string" },
|
|
31926
|
-
authoringSource: { type: "object", additionalProperties: true },
|
|
31927
|
-
selectionMetadata: { type: "object", additionalProperties: true },
|
|
31928
|
-
theme: { type: "object", additionalProperties: true }
|
|
31928
|
+
draftId: { type: "string", description: "The unique draft identifier to update." },
|
|
31929
|
+
name: { type: "string", description: "Updated template title." },
|
|
31930
|
+
authoringSource: { type: "object", additionalProperties: true, description: "Updated template AST layout structure." },
|
|
31931
|
+
selectionMetadata: { type: "object", additionalProperties: true, description: "Updated platform and family metadata." },
|
|
31932
|
+
theme: { type: "object", additionalProperties: true, description: "Updated theme tokens." }
|
|
31929
31933
|
},
|
|
31930
31934
|
required: ["draftId"],
|
|
31931
31935
|
additionalProperties: false
|
|
@@ -31935,11 +31939,13 @@ var init_src4 = __esm({
|
|
|
31935
31939
|
{
|
|
31936
31940
|
name: "delete_draft",
|
|
31937
31941
|
title: "Delete authoring draft",
|
|
31938
|
-
description: "Permanently delete
|
|
31942
|
+
description: "Permanently discard and delete a template authoring draft. Destructive operation requiring confirmation: draft canvas data and unpublished changes cannot be recovered.",
|
|
31939
31943
|
effect: "explicit-approval",
|
|
31940
31944
|
inputSchema: {
|
|
31941
31945
|
type: "object",
|
|
31942
|
-
properties: {
|
|
31946
|
+
properties: {
|
|
31947
|
+
draftId: { type: "string", description: "The unique draft identifier to permanently delete." }
|
|
31948
|
+
},
|
|
31943
31949
|
required: ["draftId"],
|
|
31944
31950
|
additionalProperties: false
|
|
31945
31951
|
},
|
|
@@ -31948,11 +31954,13 @@ var init_src4 = __esm({
|
|
|
31948
31954
|
{
|
|
31949
31955
|
name: "publish_draft",
|
|
31950
31956
|
title: "Publish authoring draft",
|
|
31951
|
-
description: "
|
|
31957
|
+
description: "Validate and publish an authoring draft into the immutable public or workspace template catalog. Once published, the template becomes immutable and can be instantiated into multi-page slideshow runs.",
|
|
31952
31958
|
effect: "local-write-job",
|
|
31953
31959
|
inputSchema: {
|
|
31954
31960
|
type: "object",
|
|
31955
|
-
properties: {
|
|
31961
|
+
properties: {
|
|
31962
|
+
draftId: { type: "string", description: "The unique draft identifier to validate and publish." }
|
|
31963
|
+
},
|
|
31956
31964
|
required: ["draftId"],
|
|
31957
31965
|
additionalProperties: false
|
|
31958
31966
|
},
|
|
@@ -31961,11 +31969,13 @@ var init_src4 = __esm({
|
|
|
31961
31969
|
{
|
|
31962
31970
|
name: "create_preview_job",
|
|
31963
31971
|
title: "Create preview job",
|
|
31964
|
-
description: "
|
|
31972
|
+
description: "Request an asynchronous server-side render preview image of a template draft for thumbnail generation. For interactive real-time visual authoring, prefer opening the authoringStudioUrl in browser.",
|
|
31965
31973
|
effect: "local-write-job",
|
|
31966
31974
|
inputSchema: {
|
|
31967
31975
|
type: "object",
|
|
31968
|
-
properties: {
|
|
31976
|
+
properties: {
|
|
31977
|
+
draftId: { type: "string", description: "The unique draft identifier to generate a render preview for." }
|
|
31978
|
+
},
|
|
31969
31979
|
required: ["draftId"],
|
|
31970
31980
|
additionalProperties: false
|
|
31971
31981
|
},
|
|
@@ -32171,14 +32181,161 @@ var init_src5 = __esm({
|
|
|
32171
32181
|
init_src2();
|
|
32172
32182
|
objectSchema = { type: "object", properties: {}, additionalProperties: true };
|
|
32173
32183
|
slideshowToolRegistry = [
|
|
32174
|
-
{
|
|
32175
|
-
|
|
32176
|
-
|
|
32177
|
-
|
|
32178
|
-
|
|
32179
|
-
|
|
32180
|
-
|
|
32181
|
-
|
|
32184
|
+
{
|
|
32185
|
+
name: "list_runs",
|
|
32186
|
+
title: "List slideshow runs",
|
|
32187
|
+
description: "List owner-scoped Slideshow Runs with optional platform, status, or search query filters. Returns run metadata, platform, page counts, and timestamps. Follow pagination to inspect existing carousel projects and draft runs.",
|
|
32188
|
+
effect: "read-only",
|
|
32189
|
+
inputSchema: {
|
|
32190
|
+
type: "object",
|
|
32191
|
+
properties: {
|
|
32192
|
+
q: { type: "string", description: "Search term matching run title, topic, or content text." },
|
|
32193
|
+
platform: { type: "string", description: "Target platform filter: tiktok | linkedin | instagram | threads | xiaohongshu" },
|
|
32194
|
+
profileId: { type: "string", description: "Optional profile filter." },
|
|
32195
|
+
brandProfileId: { type: "string", description: "Optional legacy brand profile filter." },
|
|
32196
|
+
brandId: { type: "string", description: "Filter runs styled with a specific Brand ID." },
|
|
32197
|
+
contentSlug: { type: "string", description: "Filter runs generated from a specific content topic slug." },
|
|
32198
|
+
status: { type: "string", description: "Lifecycle status filter: draft | active | archived | trash" }
|
|
32199
|
+
},
|
|
32200
|
+
additionalProperties: true
|
|
32201
|
+
},
|
|
32202
|
+
outputSchema: objectSchema
|
|
32203
|
+
},
|
|
32204
|
+
{
|
|
32205
|
+
name: "recommend_templates",
|
|
32206
|
+
title: "Recommend slideshow page templates",
|
|
32207
|
+
description: "Before create_run: send the Page Contracts (role, density, slotSummary per page) and get a shortlist per page with reasons. Recently used Layout Families are demoted and one unused family is always kept. Pick one templateId per page yourself; gaps list pages needing more templates.",
|
|
32208
|
+
effect: "read-only",
|
|
32209
|
+
inputSchema: {
|
|
32210
|
+
type: "object",
|
|
32211
|
+
properties: {
|
|
32212
|
+
platform: { type: "string", description: "Target platform: tiktok | linkedin | instagram | threads | xiaohongshu" },
|
|
32213
|
+
canvasPreset: { type: "string", description: "Target aspect ratio preset (e.g. 9:16, 4:5, 1:1, 3:4)." },
|
|
32214
|
+
pages: {
|
|
32215
|
+
type: "array",
|
|
32216
|
+
description: "Ordered list of page contracts describing narrative role and slot requirements.",
|
|
32217
|
+
items: {
|
|
32218
|
+
type: "object",
|
|
32219
|
+
properties: {
|
|
32220
|
+
role: { type: "string", description: "Narrative role: hook | value | rehook | cta" },
|
|
32221
|
+
density: { type: "string", description: "Content density: sparse | normal | dense" },
|
|
32222
|
+
slotSummary: { type: "object", description: "Slot keys expected on this page." },
|
|
32223
|
+
requiresImage: { type: "boolean", description: "Whether this page must have an image slot." }
|
|
32224
|
+
},
|
|
32225
|
+
required: ["role"]
|
|
32226
|
+
}
|
|
32227
|
+
},
|
|
32228
|
+
k: { type: "integer", minimum: 2, maximum: 5, description: "Number of template recommendations to return per page (2 to 5)." },
|
|
32229
|
+
seed: { type: "string", description: "Optional deterministic randomization seed for layout family rotation." }
|
|
32230
|
+
},
|
|
32231
|
+
required: ["platform", "pages"],
|
|
32232
|
+
additionalProperties: true
|
|
32233
|
+
},
|
|
32234
|
+
outputSchema: objectSchema
|
|
32235
|
+
},
|
|
32236
|
+
{
|
|
32237
|
+
name: "create_run",
|
|
32238
|
+
title: "Create slideshow run",
|
|
32239
|
+
description: "Create a durable multi-page Slideshow Run from a structured content-pack.v1 (pages with role, templateId, and filled slot copy). Returns runId and interactive Studio review URL for browser preview and PNG pack download.",
|
|
32240
|
+
effect: "local-write-job",
|
|
32241
|
+
inputSchema: {
|
|
32242
|
+
type: "object",
|
|
32243
|
+
properties: {
|
|
32244
|
+
pack: { type: "object", description: "content-pack.v1 payload containing schemaVersion, platform, and pages array with bound templateId and slots content." },
|
|
32245
|
+
brandId: { type: "string", description: "Optional Brand ID to apply brand kit typography, colors, and logo to all slides." },
|
|
32246
|
+
brandProfileId: { type: "string", description: "Optional legacy brand profile ID." },
|
|
32247
|
+
contentSlug: { type: "string", description: "Optional content topic identifier for tracking in Content Engine." }
|
|
32248
|
+
},
|
|
32249
|
+
required: ["pack"],
|
|
32250
|
+
additionalProperties: true
|
|
32251
|
+
},
|
|
32252
|
+
outputSchema: objectSchema
|
|
32253
|
+
},
|
|
32254
|
+
{
|
|
32255
|
+
name: "get_run",
|
|
32256
|
+
title: "Get slideshow run",
|
|
32257
|
+
description: "Retrieve full details of a Slideshow Run by runId, including page list, bound template IDs, filled slot content, theme snapshot, and studio edit URL.",
|
|
32258
|
+
effect: "read-only",
|
|
32259
|
+
inputSchema: {
|
|
32260
|
+
type: "object",
|
|
32261
|
+
properties: {
|
|
32262
|
+
runId: { type: "string", description: "The unique Slideshow Run identifier to retrieve." }
|
|
32263
|
+
},
|
|
32264
|
+
required: ["runId"],
|
|
32265
|
+
additionalProperties: true
|
|
32266
|
+
},
|
|
32267
|
+
outputSchema: objectSchema
|
|
32268
|
+
},
|
|
32269
|
+
{
|
|
32270
|
+
name: "update_run",
|
|
32271
|
+
title: "Update slideshow run",
|
|
32272
|
+
description: "Update slide copy, slot bindings, theme overrides, or presentation preferences of an existing Slideshow Run. Uses optimistic concurrency revision lock to prevent overwrite conflicts.",
|
|
32273
|
+
effect: "local-write-job",
|
|
32274
|
+
inputSchema: {
|
|
32275
|
+
type: "object",
|
|
32276
|
+
properties: {
|
|
32277
|
+
runId: { type: "string", description: "The unique Slideshow Run identifier to update." },
|
|
32278
|
+
baseRevision: { type: "integer", minimum: 1, description: "Current revision number for optimistic concurrency locking to prevent overwrite races." },
|
|
32279
|
+
pack: { type: "object", description: "Updated complete content-pack.v1 structure." },
|
|
32280
|
+
brandId: { type: "string", description: "Updated Brand ID styling reference." },
|
|
32281
|
+
brandProfileId: { type: "string", description: "Optional legacy brand profile ID." },
|
|
32282
|
+
contentSlug: { type: "string", description: "Updated content topic slug." },
|
|
32283
|
+
pageIndex: { type: "integer", minimum: 0, description: "Index of a single slide page to patch (0-indexed)." },
|
|
32284
|
+
slots: { type: "object", description: "Key-value map of slot overrides for the specified pageIndex." },
|
|
32285
|
+
layout: { type: "object", description: "Layout adjustments for the specified pageIndex." },
|
|
32286
|
+
style: { type: "object", description: "Style token adjustments for the specified pageIndex." },
|
|
32287
|
+
decorations: { type: "array", description: "Visual decorations list for the specified pageIndex." }
|
|
32288
|
+
},
|
|
32289
|
+
required: ["runId"],
|
|
32290
|
+
additionalProperties: true
|
|
32291
|
+
},
|
|
32292
|
+
outputSchema: objectSchema
|
|
32293
|
+
},
|
|
32294
|
+
{
|
|
32295
|
+
name: "archive_run",
|
|
32296
|
+
title: "Archive slideshow run",
|
|
32297
|
+
description: "Archive a Slideshow Run to declutter the workspace and hide it from default project lists while keeping all generated slides and review URLs intact. Reversible via restore_slideshow_run.",
|
|
32298
|
+
effect: "local-write-job",
|
|
32299
|
+
inputSchema: {
|
|
32300
|
+
type: "object",
|
|
32301
|
+
properties: {
|
|
32302
|
+
runId: { type: "string", description: "The unique Slideshow Run identifier to archive." }
|
|
32303
|
+
},
|
|
32304
|
+
required: ["runId"],
|
|
32305
|
+
additionalProperties: true
|
|
32306
|
+
},
|
|
32307
|
+
outputSchema: objectSchema
|
|
32308
|
+
},
|
|
32309
|
+
{
|
|
32310
|
+
name: "restore_run",
|
|
32311
|
+
title: "Restore slideshow run",
|
|
32312
|
+
description: "Restore a previously archived or trashed Slideshow Run back to active workspace status, restoring it to the default projects view.",
|
|
32313
|
+
effect: "local-write-job",
|
|
32314
|
+
inputSchema: {
|
|
32315
|
+
type: "object",
|
|
32316
|
+
properties: {
|
|
32317
|
+
runId: { type: "string", description: "The unique Slideshow Run identifier to restore." }
|
|
32318
|
+
},
|
|
32319
|
+
required: ["runId"],
|
|
32320
|
+
additionalProperties: true
|
|
32321
|
+
},
|
|
32322
|
+
outputSchema: objectSchema
|
|
32323
|
+
},
|
|
32324
|
+
{
|
|
32325
|
+
name: "delete_run",
|
|
32326
|
+
title: "Delete slideshow run",
|
|
32327
|
+
description: "Permanently delete a Slideshow Run and its associated slide page records. Destructive operation requiring explicit user confirmation; studio review link will become invalid.",
|
|
32328
|
+
effect: "explicit-approval",
|
|
32329
|
+
inputSchema: {
|
|
32330
|
+
type: "object",
|
|
32331
|
+
properties: {
|
|
32332
|
+
runId: { type: "string", description: "The unique Slideshow Run identifier to permanently delete." }
|
|
32333
|
+
},
|
|
32334
|
+
required: ["runId"],
|
|
32335
|
+
additionalProperties: true
|
|
32336
|
+
},
|
|
32337
|
+
outputSchema: objectSchema
|
|
32338
|
+
}
|
|
32182
32339
|
];
|
|
32183
32340
|
slideshowResourceTemplates = [
|
|
32184
32341
|
{ uriTemplate: "slideshow://runs/{runId}", name: "Slideshow Run", description: "Owner-scoped Run JSON snapshot", mimeType: "application/json" }
|
|
@@ -32281,26 +32438,246 @@ var init_src6 = __esm({
|
|
|
32281
32438
|
delete_run: "delete_slideshow_run"
|
|
32282
32439
|
};
|
|
32283
32440
|
brandTools = [
|
|
32284
|
-
{
|
|
32285
|
-
|
|
32286
|
-
|
|
32287
|
-
|
|
32288
|
-
|
|
32289
|
-
|
|
32290
|
-
|
|
32441
|
+
{
|
|
32442
|
+
name: "list_brands",
|
|
32443
|
+
title: "List brands",
|
|
32444
|
+
description: "List owner-scoped Brands with typography tokens, color palettes, and logos. Use to discover available brand identities before creating or styling slideshow runs.",
|
|
32445
|
+
effect: "read-only",
|
|
32446
|
+
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
32447
|
+
outputSchema: { type: "object", properties: {} }
|
|
32448
|
+
},
|
|
32449
|
+
{
|
|
32450
|
+
name: "get_brand",
|
|
32451
|
+
title: "Get brand",
|
|
32452
|
+
description: "Fetch a complete Brand profile by brandId, including typography tokens, 4-color palette (primary, secondary, accent, surface), logoAssetId, and baseRevision. Call this before generating branded slides to inject brand styles.",
|
|
32453
|
+
effect: "read-only",
|
|
32454
|
+
inputSchema: {
|
|
32455
|
+
type: "object",
|
|
32456
|
+
properties: {
|
|
32457
|
+
brandId: { type: "string", description: "The unique identifier of the brand to retrieve." }
|
|
32458
|
+
},
|
|
32459
|
+
required: ["brandId"],
|
|
32460
|
+
additionalProperties: false
|
|
32461
|
+
},
|
|
32462
|
+
outputSchema: { type: "object", properties: {} }
|
|
32463
|
+
},
|
|
32464
|
+
{
|
|
32465
|
+
name: "create_brand",
|
|
32466
|
+
title: "Create brand",
|
|
32467
|
+
description: "Create a new owner-scoped Brand kit defining typography, color palette, handle, and optional logo asset. Returns the created Brand entity with revision 1. Best invoked before creating slideshow runs to establish consistent visual identity.",
|
|
32468
|
+
effect: "local-write-job",
|
|
32469
|
+
inputSchema: {
|
|
32470
|
+
type: "object",
|
|
32471
|
+
properties: {
|
|
32472
|
+
name: { type: "string", description: "Canonical brand name (e.g. Acme Corp)." },
|
|
32473
|
+
displayName: { type: "string", description: "User-facing display name." },
|
|
32474
|
+
handle: { type: "string", description: "Social media handle (e.g. @acme)." },
|
|
32475
|
+
typography: { type: "object", description: "Typography settings (headingFont, bodyFont)." },
|
|
32476
|
+
colors: { type: "object", description: "Color palette tokens (primary, secondary, accent, surface, text)." },
|
|
32477
|
+
logoAssetId: { type: "string", description: "Optional image asset ID for brand logo." }
|
|
32478
|
+
},
|
|
32479
|
+
required: ["name"],
|
|
32480
|
+
additionalProperties: false
|
|
32481
|
+
},
|
|
32482
|
+
outputSchema: { type: "object", properties: {} }
|
|
32483
|
+
},
|
|
32484
|
+
{
|
|
32485
|
+
name: "update_brand",
|
|
32486
|
+
title: "Update brand",
|
|
32487
|
+
description: "Patch visual styles or metadata of an existing Brand. Requires baseRevision for optimistic concurrency locking to prevent overwrite races. Returns updated Brand with incremented revision.",
|
|
32488
|
+
effect: "local-write-job",
|
|
32489
|
+
inputSchema: {
|
|
32490
|
+
type: "object",
|
|
32491
|
+
properties: {
|
|
32492
|
+
brandId: { type: "string", description: "The unique identifier of the brand to update." },
|
|
32493
|
+
baseRevision: { type: "integer", minimum: 1, description: "Current revision number for optimistic concurrency lock." },
|
|
32494
|
+
name: { type: "string", description: "Updated brand name." },
|
|
32495
|
+
displayName: { type: "string", description: "Updated display name." },
|
|
32496
|
+
handle: { type: "string", description: "Updated social handle." },
|
|
32497
|
+
typography: { type: "object", description: "Updated typography configuration." },
|
|
32498
|
+
colors: { type: "object", description: "Updated color palette tokens." },
|
|
32499
|
+
logoAssetId: { type: "string", description: "Updated logo asset ID." }
|
|
32500
|
+
},
|
|
32501
|
+
required: ["brandId", "baseRevision"],
|
|
32502
|
+
additionalProperties: false
|
|
32503
|
+
},
|
|
32504
|
+
outputSchema: { type: "object", properties: {} }
|
|
32505
|
+
},
|
|
32506
|
+
{
|
|
32507
|
+
name: "archive_brand",
|
|
32508
|
+
title: "Archive brand",
|
|
32509
|
+
description: "Archive an active Brand to soft-hide it from default pickers and list queries without losing styling tokens. Reversible via restore_brand. Existing slideshow runs referencing this brand continue to display correctly.",
|
|
32510
|
+
effect: "local-write-job",
|
|
32511
|
+
inputSchema: {
|
|
32512
|
+
type: "object",
|
|
32513
|
+
properties: {
|
|
32514
|
+
brandId: { type: "string", description: "The unique identifier of the brand to archive." }
|
|
32515
|
+
},
|
|
32516
|
+
required: ["brandId"],
|
|
32517
|
+
additionalProperties: false
|
|
32518
|
+
},
|
|
32519
|
+
outputSchema: { type: "object", properties: {} }
|
|
32520
|
+
},
|
|
32521
|
+
{
|
|
32522
|
+
name: "restore_brand",
|
|
32523
|
+
title: "Restore brand",
|
|
32524
|
+
description: "Restore a previously archived or trashed Brand back to active status, making it immediately selectable in brand selectors and default list queries.",
|
|
32525
|
+
effect: "local-write-job",
|
|
32526
|
+
inputSchema: {
|
|
32527
|
+
type: "object",
|
|
32528
|
+
properties: {
|
|
32529
|
+
brandId: { type: "string", description: "The unique identifier of the brand to restore." }
|
|
32530
|
+
},
|
|
32531
|
+
required: ["brandId"],
|
|
32532
|
+
additionalProperties: false
|
|
32533
|
+
},
|
|
32534
|
+
outputSchema: { type: "object", properties: {} }
|
|
32535
|
+
},
|
|
32536
|
+
{
|
|
32537
|
+
name: "delete_brand",
|
|
32538
|
+
title: "Delete brand",
|
|
32539
|
+
description: "Move a Brand to trash/pending deletion. Requires confirmation because dependent design workflows may lose default brand styling. Can be recovered with restore_brand.",
|
|
32540
|
+
effect: "explicit-approval",
|
|
32541
|
+
inputSchema: {
|
|
32542
|
+
type: "object",
|
|
32543
|
+
properties: {
|
|
32544
|
+
brandId: { type: "string", description: "The unique identifier of the brand to move to trash." }
|
|
32545
|
+
},
|
|
32546
|
+
required: ["brandId"],
|
|
32547
|
+
additionalProperties: false
|
|
32548
|
+
},
|
|
32549
|
+
outputSchema: { type: "object", properties: {} }
|
|
32550
|
+
}
|
|
32291
32551
|
];
|
|
32292
32552
|
rename = (tool, names) => ({ ...tool, name: names[tool.name] ?? tool.name });
|
|
32293
32553
|
templateTools = templateToolRegistry.map((tool) => rename(tool, templateNames));
|
|
32294
32554
|
slideshowTools = slideshowToolRegistry.filter((tool) => !removedTools.has(tool.name)).map((tool) => rename(tool, slideshowNames));
|
|
32295
32555
|
imageTools = [
|
|
32296
|
-
{
|
|
32297
|
-
|
|
32298
|
-
|
|
32299
|
-
|
|
32300
|
-
|
|
32301
|
-
|
|
32302
|
-
|
|
32303
|
-
|
|
32556
|
+
{
|
|
32557
|
+
name: "list_images",
|
|
32558
|
+
title: "List images",
|
|
32559
|
+
description: "List owner-scoped image assets in the media library with optional search query q. Returns image IDs, CDN URLs, mime types, and rights status for slot assignment.",
|
|
32560
|
+
effect: "read-only",
|
|
32561
|
+
inputSchema: {
|
|
32562
|
+
type: "object",
|
|
32563
|
+
properties: {
|
|
32564
|
+
q: { type: "string", description: "Search term matching image name or provenance source." }
|
|
32565
|
+
},
|
|
32566
|
+
additionalProperties: false
|
|
32567
|
+
},
|
|
32568
|
+
outputSchema: { type: "object", properties: {} }
|
|
32569
|
+
},
|
|
32570
|
+
{
|
|
32571
|
+
name: "get_image",
|
|
32572
|
+
title: "Get image",
|
|
32573
|
+
description: "Fetch metadata and public R2/CDN delivery URL for a specific image asset by imageId. Use to inspect dimensions and rightsStatus before binding to slide slots.",
|
|
32574
|
+
effect: "read-only",
|
|
32575
|
+
inputSchema: {
|
|
32576
|
+
type: "object",
|
|
32577
|
+
properties: {
|
|
32578
|
+
imageId: { type: "string", description: "The unique image asset identifier to retrieve." }
|
|
32579
|
+
},
|
|
32580
|
+
required: ["imageId"],
|
|
32581
|
+
additionalProperties: false
|
|
32582
|
+
},
|
|
32583
|
+
outputSchema: { type: "object", properties: {} }
|
|
32584
|
+
},
|
|
32585
|
+
{
|
|
32586
|
+
name: "import_image",
|
|
32587
|
+
title: "Import image",
|
|
32588
|
+
description: "Upload and register an image into the permanent account media library (persisted to R2 + Directus metadata). For transient draft canvas images only, use import_template_image instead.",
|
|
32589
|
+
effect: "local-write-job",
|
|
32590
|
+
inputSchema: {
|
|
32591
|
+
type: "object",
|
|
32592
|
+
properties: {
|
|
32593
|
+
file: { type: "string", description: "Base64-encoded image data or local file path." },
|
|
32594
|
+
sourceUrl: { type: "string", description: "Original source URL if importing from web/unsplash/pinterest." },
|
|
32595
|
+
filename: { type: "string", description: "Original filename with extension (e.g. header.png)." },
|
|
32596
|
+
name: { type: "string", description: "Human-readable asset title in media library." },
|
|
32597
|
+
rightsStatus: { type: "string", description: "Rights ownership status: licensed_for_publish | user_owned | generated | rights_unknown" }
|
|
32598
|
+
},
|
|
32599
|
+
additionalProperties: false
|
|
32600
|
+
},
|
|
32601
|
+
outputSchema: { type: "object", properties: {} }
|
|
32602
|
+
},
|
|
32603
|
+
{
|
|
32604
|
+
name: "update_image",
|
|
32605
|
+
title: "Update image",
|
|
32606
|
+
description: "Update metadata for an existing media library asset by imageId (e.g. rename asset or update rightsStatus). Does not re-upload binary content.",
|
|
32607
|
+
effect: "local-write-job",
|
|
32608
|
+
inputSchema: {
|
|
32609
|
+
type: "object",
|
|
32610
|
+
properties: {
|
|
32611
|
+
imageId: { type: "string", description: "The unique image asset identifier to update." },
|
|
32612
|
+
name: { type: "string", description: "Updated human-readable asset title." },
|
|
32613
|
+
rightsStatus: { type: "string", description: "Updated rights status: licensed_for_publish | user_owned | generated" }
|
|
32614
|
+
},
|
|
32615
|
+
required: ["imageId"],
|
|
32616
|
+
additionalProperties: false
|
|
32617
|
+
},
|
|
32618
|
+
outputSchema: { type: "object", properties: {} }
|
|
32619
|
+
},
|
|
32620
|
+
{
|
|
32621
|
+
name: "attest_image",
|
|
32622
|
+
title: "Attest image rights",
|
|
32623
|
+
description: "Record legal ownership or commercial rights attestation for an image asset (statementVersion). Recommended before multi-platform export to ensure commercial compliance.",
|
|
32624
|
+
effect: "local-write-job",
|
|
32625
|
+
inputSchema: {
|
|
32626
|
+
type: "object",
|
|
32627
|
+
properties: {
|
|
32628
|
+
imageId: { type: "string", description: "The unique image asset identifier to attest." },
|
|
32629
|
+
statementVersion: { type: "string", description: "Legal attestation terms version accepted (e.g. v1)." }
|
|
32630
|
+
},
|
|
32631
|
+
required: ["imageId"],
|
|
32632
|
+
additionalProperties: false
|
|
32633
|
+
},
|
|
32634
|
+
outputSchema: { type: "object", properties: {} }
|
|
32635
|
+
},
|
|
32636
|
+
{
|
|
32637
|
+
name: "archive_image",
|
|
32638
|
+
title: "Archive image",
|
|
32639
|
+
description: "Archive an image asset to soft-hide it from active media pickers without deleting binary storage. Reversible via restore_image. Slides referencing this image remain intact.",
|
|
32640
|
+
effect: "local-write-job",
|
|
32641
|
+
inputSchema: {
|
|
32642
|
+
type: "object",
|
|
32643
|
+
properties: {
|
|
32644
|
+
imageId: { type: "string", description: "The unique image asset identifier to archive." }
|
|
32645
|
+
},
|
|
32646
|
+
required: ["imageId"],
|
|
32647
|
+
additionalProperties: false
|
|
32648
|
+
},
|
|
32649
|
+
outputSchema: { type: "object", properties: {} }
|
|
32650
|
+
},
|
|
32651
|
+
{
|
|
32652
|
+
name: "restore_image",
|
|
32653
|
+
title: "Restore image",
|
|
32654
|
+
description: "Restore an archived image asset back to active status in the media library, making it selectable in slot editors and list queries.",
|
|
32655
|
+
effect: "local-write-job",
|
|
32656
|
+
inputSchema: {
|
|
32657
|
+
type: "object",
|
|
32658
|
+
properties: {
|
|
32659
|
+
imageId: { type: "string", description: "The unique image asset identifier to restore." }
|
|
32660
|
+
},
|
|
32661
|
+
required: ["imageId"],
|
|
32662
|
+
additionalProperties: false
|
|
32663
|
+
},
|
|
32664
|
+
outputSchema: { type: "object", properties: {} }
|
|
32665
|
+
},
|
|
32666
|
+
{
|
|
32667
|
+
name: "delete_image",
|
|
32668
|
+
title: "Delete image",
|
|
32669
|
+
description: "Move an image asset to trash for deletion. Requires confirmation because slides referencing this image asset may fail to render properly.",
|
|
32670
|
+
effect: "explicit-approval",
|
|
32671
|
+
inputSchema: {
|
|
32672
|
+
type: "object",
|
|
32673
|
+
properties: {
|
|
32674
|
+
imageId: { type: "string", description: "The unique image asset identifier to move to trash." }
|
|
32675
|
+
},
|
|
32676
|
+
required: ["imageId"],
|
|
32677
|
+
additionalProperties: false
|
|
32678
|
+
},
|
|
32679
|
+
outputSchema: { type: "object", properties: {} }
|
|
32680
|
+
}
|
|
32304
32681
|
];
|
|
32305
32682
|
unifiedToolRegistry = [...templateTools, ...slideshowTools, ...brandTools, ...imageTools];
|
|
32306
32683
|
unifiedResourceTemplates = slideshowResourceTemplates;
|