@easysociable/cli 0.1.16 → 0.1.17
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 +134 -121
- package/dist/easysociable.js.map +1 -1
- package/package.json +2 -2
package/dist/easysociable.js
CHANGED
|
@@ -14621,9 +14621,9 @@ function convertBaseSchema(schema, ctx) {
|
|
|
14621
14621
|
zodSchema = z.record(keySchema, valueSchema);
|
|
14622
14622
|
break;
|
|
14623
14623
|
}
|
|
14624
|
-
const
|
|
14624
|
+
const objectSchema2 = z.object(shape).passthrough();
|
|
14625
14625
|
const recordSchema = z.looseRecord(keySchema, valueSchema);
|
|
14626
|
-
zodSchema = z.intersection(
|
|
14626
|
+
zodSchema = z.intersection(objectSchema2, recordSchema);
|
|
14627
14627
|
break;
|
|
14628
14628
|
}
|
|
14629
14629
|
if (schema.patternProperties) {
|
|
@@ -14653,13 +14653,13 @@ function convertBaseSchema(schema, ctx) {
|
|
|
14653
14653
|
}
|
|
14654
14654
|
break;
|
|
14655
14655
|
}
|
|
14656
|
-
const
|
|
14656
|
+
const objectSchema = z.object(shape);
|
|
14657
14657
|
if (schema.additionalProperties === false) {
|
|
14658
|
-
zodSchema =
|
|
14658
|
+
zodSchema = objectSchema.strict();
|
|
14659
14659
|
} else if (typeof schema.additionalProperties === "object") {
|
|
14660
|
-
zodSchema =
|
|
14660
|
+
zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx));
|
|
14661
14661
|
} else {
|
|
14662
|
-
zodSchema =
|
|
14662
|
+
zodSchema = objectSchema.passthrough();
|
|
14663
14663
|
}
|
|
14664
14664
|
break;
|
|
14665
14665
|
}
|
|
@@ -31439,6 +31439,19 @@ var init_validate_tool_input = __esm({
|
|
|
31439
31439
|
});
|
|
31440
31440
|
|
|
31441
31441
|
// ../../packages/mcp-common/src/server.ts
|
|
31442
|
+
function mapAnnotations(tool) {
|
|
31443
|
+
const isReadOnly = tool.effect === "read-only" || tool.effect === "explicit-owned-account-read";
|
|
31444
|
+
const isDestructive = tool.effect === "explicit-approval" || tool.name.startsWith("delete_") || tool.name.startsWith("trash_");
|
|
31445
|
+
const isIdempotent = isReadOnly || tool.name.startsWith("archive_") || tool.name.startsWith("restore_") || tool.name.startsWith("attest_");
|
|
31446
|
+
return {
|
|
31447
|
+
title: tool.title,
|
|
31448
|
+
readOnlyHint: isReadOnly,
|
|
31449
|
+
destructiveHint: isDestructive,
|
|
31450
|
+
idempotentHint: isIdempotent,
|
|
31451
|
+
openWorldHint: false,
|
|
31452
|
+
effect: tool.effect
|
|
31453
|
+
};
|
|
31454
|
+
}
|
|
31442
31455
|
function createMcpServer(options) {
|
|
31443
31456
|
const server = new Server(
|
|
31444
31457
|
{ name: options.name, version: options.version },
|
|
@@ -31450,7 +31463,8 @@ function createMcpServer(options) {
|
|
|
31450
31463
|
title: tool.title,
|
|
31451
31464
|
description: tool.description,
|
|
31452
31465
|
inputSchema: tool.inputSchema,
|
|
31453
|
-
|
|
31466
|
+
outputSchema: tool.outputSchema,
|
|
31467
|
+
annotations: mapAnnotations(tool)
|
|
31454
31468
|
}))
|
|
31455
31469
|
}));
|
|
31456
31470
|
server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
|
|
@@ -31758,67 +31772,67 @@ var init_src4 = __esm({
|
|
|
31758
31772
|
{
|
|
31759
31773
|
name: "list_templates",
|
|
31760
31774
|
title: "List templates",
|
|
31761
|
-
description: "List public template catalog summaries from Gateway (filterable
|
|
31775
|
+
description: "List public template catalog summaries from Gateway (filterable by platform, role, density, canvasPreset). For Slideshow page template selection, prefer recommend_slideshow_templates. Alternatives: Use get_template to inspect specific slot requirements. Read-only catalog query.",
|
|
31762
31776
|
effect: "read-only",
|
|
31763
31777
|
inputSchema: {
|
|
31764
31778
|
type: "object",
|
|
31765
31779
|
properties: {
|
|
31766
|
-
platforms: { type: "array", items: { type: "string" } },
|
|
31767
|
-
roles: { type: "array", items: { type: "string" } },
|
|
31768
|
-
contentFamily: { type: "string" },
|
|
31769
|
-
contentArchetypes: { type: "array", items: { type: "string" } },
|
|
31770
|
-
density: { type: "string" },
|
|
31771
|
-
canvasPreset: { type: "string" },
|
|
31772
|
-
requiresImage: { type: "boolean" },
|
|
31773
|
-
locale: { type: "string" },
|
|
31774
|
-
q: { type: "string" },
|
|
31775
|
-
limit: { type: "number" },
|
|
31776
|
-
cursor: { type: "string" },
|
|
31777
|
-
all: { type: "boolean" }
|
|
31780
|
+
platforms: { type: "array", items: { type: "string" }, description: "Platform filter: tiktok | linkedin | instagram | threads | xiaohongshu" },
|
|
31781
|
+
roles: { type: "array", items: { type: "string" }, description: "Narrative role filter: hook | value | rehook | cta" },
|
|
31782
|
+
contentFamily: { type: "string", description: "Content family filter." },
|
|
31783
|
+
contentArchetypes: { type: "array", items: { type: "string" }, description: "Content archetypes list." },
|
|
31784
|
+
density: { type: "string", description: "Density filter: sparse | normal | dense" },
|
|
31785
|
+
canvasPreset: { type: "string", description: "Aspect ratio preset (e.g. 9:16, 4:5, 1:1, 3:4)." },
|
|
31786
|
+
requiresImage: { type: "boolean", description: "Filter templates that require an image slot." },
|
|
31787
|
+
locale: { type: "string", description: "Language/locale code (e.g. en, zh-CN)." },
|
|
31788
|
+
q: { type: "string", description: "Search term matching template name or description." },
|
|
31789
|
+
limit: { type: "number", description: "Max items per page." },
|
|
31790
|
+
cursor: { type: "string", description: "Pagination cursor from previous nextCursor." },
|
|
31791
|
+
all: { type: "boolean", description: "Fetch all matching templates across pages." }
|
|
31778
31792
|
},
|
|
31779
31793
|
additionalProperties: false
|
|
31780
31794
|
},
|
|
31781
|
-
outputSchema: { type: "object", properties: { templates: { type: "array" }, nextCursor: { type: ["string", "null"] } } }
|
|
31795
|
+
outputSchema: { type: "object", properties: { templates: { type: "array", description: "Template summaries." }, nextCursor: { type: ["string", "null"], description: "Cursor for next page." } } }
|
|
31782
31796
|
},
|
|
31783
31797
|
{
|
|
31784
31798
|
name: "get_template",
|
|
31785
31799
|
title: "Get template",
|
|
31786
|
-
description: "Get one published template detail including the public slots[] table (key
|
|
31800
|
+
description: "Get one published template detail including the public slots[] table (key, type, required, constraints). Use slots to bind slide copy in create_slideshow_run or inspect template constraints. Alternatives: Use list_templates to browse catalog. Read-only catalog query.",
|
|
31787
31801
|
effect: "read-only",
|
|
31788
31802
|
inputSchema: {
|
|
31789
31803
|
type: "object",
|
|
31790
|
-
properties: { templateId: { type: "string" } },
|
|
31804
|
+
properties: { templateId: { type: "string", description: "The unique published template identifier to retrieve." } },
|
|
31791
31805
|
required: ["templateId"],
|
|
31792
31806
|
additionalProperties: false
|
|
31793
31807
|
},
|
|
31794
31808
|
outputSchema: {
|
|
31795
31809
|
type: "object",
|
|
31796
31810
|
properties: {
|
|
31797
|
-
id: { type: "string" },
|
|
31798
|
-
slots: { type: "array" }
|
|
31811
|
+
id: { type: "string", description: "Published template ID." },
|
|
31812
|
+
slots: { type: "array", description: "Public slots table." }
|
|
31799
31813
|
}
|
|
31800
31814
|
}
|
|
31801
31815
|
},
|
|
31802
31816
|
{
|
|
31803
31817
|
name: "list_gradients",
|
|
31804
31818
|
title: "List gradients",
|
|
31805
|
-
description: "List or search platform gradient recipe summaries by keyword query or tag
|
|
31819
|
+
description: "List or search platform gradient recipe summaries by keyword query or tag. Call to discover gradient presets before styling cards. Alternatives: Use get_gradient to retrieve full CSS declaration for a specific gradientId. Read-only platform catalog query.",
|
|
31806
31820
|
effect: "read-only",
|
|
31807
31821
|
inputSchema: {
|
|
31808
31822
|
type: "object",
|
|
31809
31823
|
properties: {
|
|
31810
|
-
tag: { type: "string" },
|
|
31811
|
-
q: { type: "string" },
|
|
31812
|
-
limit: { type: "number" }
|
|
31824
|
+
tag: { type: "string", description: "Style tag filter (e.g. vibrant, subtle, dark, pastel)." },
|
|
31825
|
+
q: { type: "string", description: "Search term matching gradient name or tone." },
|
|
31826
|
+
limit: { type: "number", description: "Max items to return (prefer small limit for token budget)." }
|
|
31813
31827
|
},
|
|
31814
31828
|
additionalProperties: false
|
|
31815
31829
|
},
|
|
31816
|
-
outputSchema: { type: "object", properties: { gradients: { type: "array" } } }
|
|
31830
|
+
outputSchema: { type: "object", properties: { gradients: { type: "array", description: "Array of gradient summaries." } } }
|
|
31817
31831
|
},
|
|
31818
31832
|
{
|
|
31819
31833
|
name: "get_gradient",
|
|
31820
31834
|
title: "Get gradient",
|
|
31821
|
-
description: "Retrieve the full gradient CSS recipe (
|
|
31835
|
+
description: "Retrieve the full gradient CSS recipe (linear angle, color stops, and semantic token values) for a specific gradient by gradientId. Call after list_gradients to materialize background styles or decorative surfaces on cards. Alternatives: Use list_gradients to search available recipes. Read-only platform catalog lookup. Returns full gradient recipe object.",
|
|
31822
31836
|
effect: "read-only",
|
|
31823
31837
|
inputSchema: {
|
|
31824
31838
|
type: "object",
|
|
@@ -31828,12 +31842,12 @@ var init_src4 = __esm({
|
|
|
31828
31842
|
required: ["gradientId"],
|
|
31829
31843
|
additionalProperties: false
|
|
31830
31844
|
},
|
|
31831
|
-
outputSchema: { type: "object", properties: {} }
|
|
31845
|
+
outputSchema: { type: "object", properties: { id: { type: "string", description: "Gradient preset identifier." }, css: { type: "string", description: "Full CSS linear-gradient declaration." } } }
|
|
31832
31846
|
},
|
|
31833
31847
|
{
|
|
31834
31848
|
name: "search_icons",
|
|
31835
31849
|
title: "Search icons",
|
|
31836
|
-
description: "Search the internal Template Icon Catalog (
|
|
31850
|
+
description: "Search the internal safe Template Icon Catalog (curated Iconify collections) by keyword, collection, or visual style. Use when designing templates or adding icon decorations. Select \u22648 candidates and confirm choice before materializing. Alternatives: Call get_icon once an iconId is selected to generate the immutable asset. Read-only catalog search; does not consume quota.",
|
|
31837
31851
|
effect: "read-only",
|
|
31838
31852
|
inputSchema: {
|
|
31839
31853
|
type: "object",
|
|
@@ -31846,12 +31860,12 @@ var init_src4 = __esm({
|
|
|
31846
31860
|
required: ["query"],
|
|
31847
31861
|
additionalProperties: false
|
|
31848
31862
|
},
|
|
31849
|
-
outputSchema: { type: "object", properties: { icons: { type: "array" } } }
|
|
31863
|
+
outputSchema: { type: "object", properties: { icons: { type: "array", description: "Candidate icons array with id, name, and previewSvg." } } }
|
|
31850
31864
|
},
|
|
31851
31865
|
{
|
|
31852
31866
|
name: "get_icon",
|
|
31853
31867
|
title: "Get / materialize icon",
|
|
31854
|
-
description: "
|
|
31868
|
+
description: "Materialize an immutable TemplateIconAsset via Gateway from a confirmed iconId. Call after confirming a candidate from search_icons. Requires idempotencyKey to prevent duplicate creation. Idempotent: repeated calls with identical keys return the existing asset without consuming extra quota. Returns canonical SVG string, iconAssetId, and contentHash.",
|
|
31855
31869
|
effect: "local-write-job",
|
|
31856
31870
|
inputSchema: {
|
|
31857
31871
|
type: "object",
|
|
@@ -31865,28 +31879,28 @@ var init_src4 = __esm({
|
|
|
31865
31879
|
outputSchema: {
|
|
31866
31880
|
type: "object",
|
|
31867
31881
|
properties: {
|
|
31868
|
-
iconAssetId: { type: "string" },
|
|
31869
|
-
canonicalSvg: { type: "string" },
|
|
31870
|
-
contentHash: { type: "string" }
|
|
31882
|
+
iconAssetId: { type: "string", description: "Permanent immutable icon asset ID." },
|
|
31883
|
+
canonicalSvg: { type: "string", description: "Optimized sanitized SVG code." },
|
|
31884
|
+
contentHash: { type: "string", description: "SHA-256 hash of the SVG content." }
|
|
31871
31885
|
}
|
|
31872
31886
|
}
|
|
31873
31887
|
},
|
|
31874
31888
|
{
|
|
31875
31889
|
name: "list_drafts",
|
|
31876
31890
|
title: "List authoring drafts",
|
|
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
|
|
31891
|
+
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 discover draft IDs before updating or publishing. Alternatives: Use get_template_draft when you have a draftId to inspect full layer AST. Read-only query scoped to account owner.",
|
|
31878
31892
|
effect: "read-only",
|
|
31879
31893
|
inputSchema: {
|
|
31880
31894
|
type: "object",
|
|
31881
31895
|
properties: {},
|
|
31882
31896
|
additionalProperties: false
|
|
31883
31897
|
},
|
|
31884
|
-
outputSchema: { type: "object", properties: { drafts: { type: "array" } } }
|
|
31898
|
+
outputSchema: { type: "object", properties: { drafts: { type: "array", description: "Array of draft summary objects." } } }
|
|
31885
31899
|
},
|
|
31886
31900
|
{
|
|
31887
31901
|
name: "create_draft",
|
|
31888
31902
|
title: "Create authoring draft",
|
|
31889
|
-
description: "Initialize a new Page Template draft for authoring. Returns draftId and
|
|
31903
|
+
description: "Initialize a new Page Template draft for authoring with custom layout, layers, and slot contracts. Use when authoring a new slide template from scratch. Do NOT use to edit an existing draft (use update_template_draft) or browse public templates (use list_templates). Requires workspace owner authorization. Returns created TemplateDraft record with draftId and interactive authoringStudioUrl for real-time visual canvas editing.",
|
|
31890
31904
|
effect: "local-write-job",
|
|
31891
31905
|
inputSchema: {
|
|
31892
31906
|
type: "object",
|
|
@@ -31900,12 +31914,12 @@ var init_src4 = __esm({
|
|
|
31900
31914
|
required: ["name"],
|
|
31901
31915
|
additionalProperties: false
|
|
31902
31916
|
},
|
|
31903
|
-
outputSchema: { type: "object", properties: { id: { type: "string" }, authoringStudioUrl: { type: "string" } } }
|
|
31917
|
+
outputSchema: { type: "object", properties: { id: { type: "string", description: "Unique draft ID." }, authoringStudioUrl: { type: "string", description: "Direct browser link to Studio visual canvas editor." } } }
|
|
31904
31918
|
},
|
|
31905
31919
|
{
|
|
31906
31920
|
name: "get_draft",
|
|
31907
31921
|
title: "Get authoring draft",
|
|
31908
|
-
description: "Fetch
|
|
31922
|
+
description: "Fetch complete authoring draft details by draftId, including full layer AST, slot contract definitions, theme bindings, and validation error logs. Call before update_template_draft or publish_template_draft to inspect draft structure and check validation status. Alternatives: Use list_template_drafts to discover draftIds. Read-only query scoped to draft owner. Returns full TemplateDraft AST entity.",
|
|
31909
31923
|
effect: "read-only",
|
|
31910
31924
|
inputSchema: {
|
|
31911
31925
|
type: "object",
|
|
@@ -31915,31 +31929,31 @@ var init_src4 = __esm({
|
|
|
31915
31929
|
required: ["draftId"],
|
|
31916
31930
|
additionalProperties: false
|
|
31917
31931
|
},
|
|
31918
|
-
outputSchema: { type: "object", properties: { id: { type: "string" } } }
|
|
31932
|
+
outputSchema: { type: "object", properties: { id: { type: "string", description: "Draft ID." }, name: { type: "string", description: "Draft name." }, authoringSource: { type: "object", description: "Layer AST and slots." } } }
|
|
31919
31933
|
},
|
|
31920
31934
|
{
|
|
31921
31935
|
name: "update_draft",
|
|
31922
31936
|
title: "Update authoring draft",
|
|
31923
|
-
description: "Update
|
|
31937
|
+
description: "Update layer AST, slot definitions, selection metadata, or theme tokens of an existing template authoring draft by draftId. Call iteratively to refine draft layout and slot contracts during authoring. Do NOT use to create new drafts (use create_template_draft), view draft AST (use get_template_draft), or release to public catalog (use publish_template_draft). Requires draft owner authorization. Performs safe partial patch: unmentioned properties remain untouched. Automatically triggers layout rule validation on save; returns validation warnings if constraints are breached. Returns updated TemplateDraft record with latest validation status and AST snapshot.",
|
|
31924
31938
|
effect: "local-write-job",
|
|
31925
31939
|
inputSchema: {
|
|
31926
31940
|
type: "object",
|
|
31927
31941
|
properties: {
|
|
31928
31942
|
draftId: { type: "string", description: "The unique draft identifier to update." },
|
|
31929
31943
|
name: { type: "string", description: "Updated template title." },
|
|
31930
|
-
authoringSource: { type: "object", additionalProperties: true, description: "Updated template AST layout structure." },
|
|
31944
|
+
authoringSource: { type: "object", additionalProperties: true, description: "Updated template AST layout structure and slot bindings." },
|
|
31931
31945
|
selectionMetadata: { type: "object", additionalProperties: true, description: "Updated platform and family metadata." },
|
|
31932
31946
|
theme: { type: "object", additionalProperties: true, description: "Updated theme tokens." }
|
|
31933
31947
|
},
|
|
31934
31948
|
required: ["draftId"],
|
|
31935
31949
|
additionalProperties: false
|
|
31936
31950
|
},
|
|
31937
|
-
outputSchema: { type: "object", properties: { id: { type: "string" } } }
|
|
31951
|
+
outputSchema: { type: "object", properties: { id: { type: "string", description: "Draft ID." }, validationStatus: { type: "string", description: "Validation status: valid | warnings | errors" } } }
|
|
31938
31952
|
},
|
|
31939
31953
|
{
|
|
31940
31954
|
name: "delete_draft",
|
|
31941
31955
|
title: "Delete authoring draft",
|
|
31942
|
-
description: "Permanently
|
|
31956
|
+
description: "Permanently delete a template authoring draft by draftId. Call only when abandoning a draft that should be permanently destroyed. If the draft is complete and ready for production, call publish_template_draft instead. Destructive operation requiring explicit user confirmation: draft canvas data, layer AST, and unpublished revisions cannot be recovered. Returns deletion confirmation record.",
|
|
31943
31957
|
effect: "explicit-approval",
|
|
31944
31958
|
inputSchema: {
|
|
31945
31959
|
type: "object",
|
|
@@ -31949,12 +31963,12 @@ var init_src4 = __esm({
|
|
|
31949
31963
|
required: ["draftId"],
|
|
31950
31964
|
additionalProperties: false
|
|
31951
31965
|
},
|
|
31952
|
-
outputSchema: { type: "object", properties: {} }
|
|
31966
|
+
outputSchema: { type: "object", properties: { draftId: { type: "string", description: "Deleted draft ID." }, deleted: { type: "boolean", description: "True if deletion confirmed." } } }
|
|
31953
31967
|
},
|
|
31954
31968
|
{
|
|
31955
31969
|
name: "publish_draft",
|
|
31956
31970
|
title: "Publish authoring draft",
|
|
31957
|
-
description: "Validate and publish an authoring draft into the
|
|
31971
|
+
description: "Validate and publish an authoring draft into the public or workspace template catalog. Call when draft design and slot contracts are finalized and ready for instantiation in slideshow runs. If still editing or fixing layout rules, use update_template_draft. To inspect validation before publishing, use get_template_draft. Promotes draft to an immutable published template. Validates AST against layout rules; fails if required slots or constraints are violated. Returns published Template entity with public templateId, slots table, and catalog status.",
|
|
31958
31972
|
effect: "local-write-job",
|
|
31959
31973
|
inputSchema: {
|
|
31960
31974
|
type: "object",
|
|
@@ -31964,7 +31978,7 @@ var init_src4 = __esm({
|
|
|
31964
31978
|
required: ["draftId"],
|
|
31965
31979
|
additionalProperties: false
|
|
31966
31980
|
},
|
|
31967
|
-
outputSchema: { type: "object", properties: { id: { type: "string" }, status: { type: "string" } } }
|
|
31981
|
+
outputSchema: { type: "object", properties: { id: { type: "string", description: "Published template ID." }, status: { type: "string", description: "Catalog status (published)." }, slots: { type: "array", description: "Public slots table." } } }
|
|
31968
31982
|
},
|
|
31969
31983
|
{
|
|
31970
31984
|
name: "create_preview_job",
|
|
@@ -31984,29 +31998,29 @@ var init_src4 = __esm({
|
|
|
31984
31998
|
{
|
|
31985
31999
|
name: "import_template_image",
|
|
31986
32000
|
title: "Import template image",
|
|
31987
|
-
description: "Upload
|
|
32001
|
+
description: "Upload and attach a transient image asset specifically to a template draft canvas. Call while authoring a template draft in canvas studio to place background or sample imagery. Do NOT use for general workspace media library assets, logos, and photos (use import_image instead). Requires draft owner authorization and idempotencyKey. Idempotent: duplicate uploads with identical idempotencyKey return the existing asset. Returns created template image asset with imageId, dimensions, and public CDN preview URL.",
|
|
31988
32002
|
effect: "local-write-job",
|
|
31989
32003
|
inputSchema: {
|
|
31990
32004
|
type: "object",
|
|
31991
32005
|
properties: {
|
|
31992
|
-
draftId: { type: "string" },
|
|
31993
|
-
fileName: { type: "string" },
|
|
31994
|
-
mimeType: { type: "string", description: "image/jpeg | image/png | image/webp" },
|
|
31995
|
-
dataBase64: { type: "string" },
|
|
31996
|
-
provider: { type: "string", description: "pinterest | unsplash | pexels | user_upload | generated" },
|
|
31997
|
-
rightsStatus: { type: "string", description: "rights_unknown | licensed_for_publish | user_owned | generated" },
|
|
31998
|
-
idempotencyKey: { type: "string" },
|
|
31999
|
-
sourceUrl: { type: "string" },
|
|
32000
|
-
externalId: { type: "string" },
|
|
32001
|
-
creator: { type: "string" },
|
|
32002
|
-
license: { type: "string" },
|
|
32003
|
-
attribution: { type: "string" },
|
|
32004
|
-
searchQuery: { type: "string" }
|
|
32006
|
+
draftId: { type: "string", description: "The unique template draft ID this image is attached to." },
|
|
32007
|
+
fileName: { type: "string", description: "Original image filename (e.g. background.jpg)." },
|
|
32008
|
+
mimeType: { type: "string", description: "MIME type: image/jpeg | image/png | image/webp" },
|
|
32009
|
+
dataBase64: { type: "string", description: "Base64-encoded image binary string." },
|
|
32010
|
+
provider: { type: "string", description: "Asset origin provider: pinterest | unsplash | pexels | user_upload | generated" },
|
|
32011
|
+
rightsStatus: { type: "string", description: "Rights ownership status: rights_unknown | licensed_for_publish | user_owned | generated" },
|
|
32012
|
+
idempotencyKey: { type: "string", description: "Unique idempotency key to prevent duplicate image creation." },
|
|
32013
|
+
sourceUrl: { type: "string", description: "Optional source URL if fetched from web." },
|
|
32014
|
+
externalId: { type: "string", description: "Optional external asset ID from provider." },
|
|
32015
|
+
creator: { type: "string", description: "Optional author or photographer attribution name." },
|
|
32016
|
+
license: { type: "string", description: "Optional license type identifier." },
|
|
32017
|
+
attribution: { type: "string", description: "Optional human-readable attribution string." },
|
|
32018
|
+
searchQuery: { type: "string", description: "Optional search keyword that discovered this image." }
|
|
32005
32019
|
},
|
|
32006
32020
|
required: ["draftId", "fileName", "mimeType", "dataBase64", "provider", "rightsStatus", "idempotencyKey"],
|
|
32007
32021
|
additionalProperties: false
|
|
32008
32022
|
},
|
|
32009
|
-
outputSchema: { type: "object", properties: { imageId: { type: "string" }, url: { type: "string" } } }
|
|
32023
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Created template image ID." }, url: { type: "string", description: "Public delivery URL." } } }
|
|
32010
32024
|
}
|
|
32011
32025
|
];
|
|
32012
32026
|
TemplateGatewayMcpBackend = class {
|
|
@@ -32173,18 +32187,17 @@ var init_src4 = __esm({
|
|
|
32173
32187
|
function meta3() {
|
|
32174
32188
|
return { requestId: `mcp_${Date.now().toString(36)}`, runtimeVersion: "0.0.0", schemaVersion: 1, toolContractVersion: "2026-08-12" };
|
|
32175
32189
|
}
|
|
32176
|
-
var
|
|
32190
|
+
var slideshowToolRegistry, slideshowResourceTemplates, SlideshowMcpBackend;
|
|
32177
32191
|
var init_src5 = __esm({
|
|
32178
32192
|
"../../packages/slideshow-mcp-adapter/src/index.ts"() {
|
|
32179
32193
|
"use strict";
|
|
32180
32194
|
init_src3();
|
|
32181
32195
|
init_src2();
|
|
32182
|
-
objectSchema = { type: "object", properties: {}, additionalProperties: true };
|
|
32183
32196
|
slideshowToolRegistry = [
|
|
32184
32197
|
{
|
|
32185
32198
|
name: "list_runs",
|
|
32186
32199
|
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.
|
|
32200
|
+
description: "List owner-scoped Slideshow Runs with optional platform, lifecycle status, or search query filters. Returns run metadata, platform target, page counts, revision numbers, and timestamps. Call to browse existing carousels or find a runId before inspection, updating, or archiving. Alternatives: Use get_slideshow_run when you already have a specific runId to fetch full slide content. Behavior: Read-only query scoped to current authenticated workspace owner.",
|
|
32188
32201
|
effect: "read-only",
|
|
32189
32202
|
inputSchema: {
|
|
32190
32203
|
type: "object",
|
|
@@ -32199,12 +32212,12 @@ var init_src5 = __esm({
|
|
|
32199
32212
|
},
|
|
32200
32213
|
additionalProperties: true
|
|
32201
32214
|
},
|
|
32202
|
-
outputSchema:
|
|
32215
|
+
outputSchema: { type: "object", properties: { runs: { type: "array", description: "Array of slideshow run summary items." }, total: { type: "number", description: "Total count of matching runs." } } }
|
|
32203
32216
|
},
|
|
32204
32217
|
{
|
|
32205
32218
|
name: "recommend_templates",
|
|
32206
32219
|
title: "Recommend slideshow page templates",
|
|
32207
|
-
description: "
|
|
32220
|
+
description: "Recommend curated template options for each slide in a slideshow before run creation based on narrative page contracts (role, density, image requirement). Demotes recently used layout families to prevent visual monotony and guarantees diversity across slides. Call immediately before create_slideshow_run to select templateId per slide. Alternatives: Use list_templates to browse raw catalog. Behavior: Read-only stateless layout intelligence query.",
|
|
32208
32221
|
effect: "read-only",
|
|
32209
32222
|
inputSchema: {
|
|
32210
32223
|
type: "object",
|
|
@@ -32231,12 +32244,12 @@ var init_src5 = __esm({
|
|
|
32231
32244
|
required: ["platform", "pages"],
|
|
32232
32245
|
additionalProperties: true
|
|
32233
32246
|
},
|
|
32234
|
-
outputSchema:
|
|
32247
|
+
outputSchema: { type: "object", properties: { recommendations: { type: "array", description: "Ranked template recommendations per page." }, gaps: { type: "array", description: "Pages requiring more templates." } } }
|
|
32235
32248
|
},
|
|
32236
32249
|
{
|
|
32237
32250
|
name: "create_run",
|
|
32238
32251
|
title: "Create slideshow run",
|
|
32239
|
-
description: "Create a durable multi-page Slideshow Run from a structured
|
|
32252
|
+
description: "Create a durable multi-page Slideshow Run from a structured ContentPack (specifying platform, pages array with bound templateId and slot text values). Call recommend_slideshow_templates first to select templates. Do NOT use to edit an existing run (use update_slideshow_run instead). Requires workspace owner write authorization. Returns created SlideshowRun record with generated runId, initial revision (1), and authoringStudioUrl for interactive browser review and PNG download.",
|
|
32240
32253
|
effect: "local-write-job",
|
|
32241
32254
|
inputSchema: {
|
|
32242
32255
|
type: "object",
|
|
@@ -32249,12 +32262,12 @@ var init_src5 = __esm({
|
|
|
32249
32262
|
required: ["pack"],
|
|
32250
32263
|
additionalProperties: true
|
|
32251
32264
|
},
|
|
32252
|
-
outputSchema:
|
|
32265
|
+
outputSchema: { type: "object", properties: { runId: { type: "string", description: "Unique identifier of the created run." }, revision: { type: "number", description: "Initial revision number (1)." }, studioUrl: { type: "string", description: "Studio preview and download URL." } } }
|
|
32253
32266
|
},
|
|
32254
32267
|
{
|
|
32255
32268
|
name: "get_run",
|
|
32256
32269
|
title: "Get slideshow run",
|
|
32257
|
-
description: "Retrieve full details of
|
|
32270
|
+
description: "Retrieve full details of an existing Slideshow Run by runId, including complete slide pages, bound template IDs, slot contents, brand theme snapshot, current revision number, and studio review URL. Call before update_slideshow_run to inspect current slide contents and capture baseRevision for concurrency locking. Alternatives: Use list_slideshow_runs to discover runIds. Read-only query scoped to authenticated workspace owner.",
|
|
32258
32271
|
effect: "read-only",
|
|
32259
32272
|
inputSchema: {
|
|
32260
32273
|
type: "object",
|
|
@@ -32264,24 +32277,24 @@ var init_src5 = __esm({
|
|
|
32264
32277
|
required: ["runId"],
|
|
32265
32278
|
additionalProperties: true
|
|
32266
32279
|
},
|
|
32267
|
-
outputSchema:
|
|
32280
|
+
outputSchema: { type: "object", properties: { runId: { type: "string", description: "Unique run identifier." }, revision: { type: "number", description: "Current revision number." }, pages: { type: "array", description: "Slide pages array." }, studioUrl: { type: "string", description: "Studio review URL." } } }
|
|
32268
32281
|
},
|
|
32269
32282
|
{
|
|
32270
32283
|
name: "update_run",
|
|
32271
32284
|
title: "Update slideshow run",
|
|
32272
|
-
description: "
|
|
32285
|
+
description: "Partially update slide copy, slot bindings, layout, styling, or brand settings of an existing Slideshow Run by runId. Call get_slideshow_run first to obtain current revision and slide data. Do NOT use to create new runs (use create_slideshow_run) or delete runs (use delete_slideshow_run). Safe partial patch: unspecified fields are preserved. Requires baseRevision for optimistic concurrency locking; on revision mismatch returns 409 Conflict (no auto-merge), requiring a fresh get_slideshow_run. To patch a single slide, provide pageIndex (0-indexed) with slots, layout, or style. To update entire deck, provide pack. Returns updated SlideshowRun with incremented revision number.",
|
|
32273
32286
|
effect: "local-write-job",
|
|
32274
32287
|
inputSchema: {
|
|
32275
32288
|
type: "object",
|
|
32276
32289
|
properties: {
|
|
32277
32290
|
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." },
|
|
32291
|
+
baseRevision: { type: "integer", minimum: 1, description: "Current revision number for optimistic concurrency locking to prevent overwrite races. Must match latest revision from get_slideshow_run." },
|
|
32292
|
+
pack: { type: "object", description: "Updated complete content-pack.v1 structure. Overrides entire slide deck when provided." },
|
|
32293
|
+
brandId: { type: "string", description: "Updated Brand ID styling reference applied across slides." },
|
|
32281
32294
|
brandProfileId: { type: "string", description: "Optional legacy brand profile ID." },
|
|
32282
32295
|
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." },
|
|
32296
|
+
pageIndex: { type: "integer", minimum: 0, description: "Index of a single slide page to patch (0-indexed). Must be paired with slots, layout, style, or decorations." },
|
|
32297
|
+
slots: { type: "object", description: "Key-value map of slot text/image overrides for the specified pageIndex." },
|
|
32285
32298
|
layout: { type: "object", description: "Layout adjustments for the specified pageIndex." },
|
|
32286
32299
|
style: { type: "object", description: "Style token adjustments for the specified pageIndex." },
|
|
32287
32300
|
decorations: { type: "array", description: "Visual decorations list for the specified pageIndex." }
|
|
@@ -32289,12 +32302,12 @@ var init_src5 = __esm({
|
|
|
32289
32302
|
required: ["runId"],
|
|
32290
32303
|
additionalProperties: true
|
|
32291
32304
|
},
|
|
32292
|
-
outputSchema:
|
|
32305
|
+
outputSchema: { type: "object", properties: { runId: { type: "string", description: "Run identifier." }, revision: { type: "number", description: "Incremented revision number." }, studioUrl: { type: "string", description: "Studio review URL." } } }
|
|
32293
32306
|
},
|
|
32294
32307
|
{
|
|
32295
32308
|
name: "archive_run",
|
|
32296
32309
|
title: "Archive slideshow run",
|
|
32297
|
-
description: "
|
|
32310
|
+
description: "Soft-hide an active Slideshow Run from default workspace lists and pickers without deleting slide data or review URLs. Use to declutter the workspace after campaign completion. Do NOT use for permanent destruction; use delete_slideshow_run instead. Idempotent state change, fully reversible via restore_slideshow_run. Preserves all slide records, rendered assets, and external links. Returns updated SlideshowRun with status set to archived.",
|
|
32298
32311
|
effect: "local-write-job",
|
|
32299
32312
|
inputSchema: {
|
|
32300
32313
|
type: "object",
|
|
@@ -32304,12 +32317,12 @@ var init_src5 = __esm({
|
|
|
32304
32317
|
required: ["runId"],
|
|
32305
32318
|
additionalProperties: true
|
|
32306
32319
|
},
|
|
32307
|
-
outputSchema:
|
|
32320
|
+
outputSchema: { type: "object", properties: { runId: { type: "string", description: "Run identifier." }, status: { type: "string", description: "Updated status (archived)." } } }
|
|
32308
32321
|
},
|
|
32309
32322
|
{
|
|
32310
32323
|
name: "restore_run",
|
|
32311
32324
|
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.",
|
|
32325
|
+
description: "Restore a previously archived or trashed Slideshow Run back to active workspace status, restoring it to the default projects view. Use to reactivate an archived or trashed carousel project. Alternatives: Use get_slideshow_run to inspect run contents before restoring. Idempotent state change. Returns restored SlideshowRun record visible in default workspace listings.",
|
|
32313
32326
|
effect: "local-write-job",
|
|
32314
32327
|
inputSchema: {
|
|
32315
32328
|
type: "object",
|
|
@@ -32319,12 +32332,12 @@ var init_src5 = __esm({
|
|
|
32319
32332
|
required: ["runId"],
|
|
32320
32333
|
additionalProperties: true
|
|
32321
32334
|
},
|
|
32322
|
-
outputSchema:
|
|
32335
|
+
outputSchema: { type: "object", properties: { runId: { type: "string", description: "Run identifier." }, status: { type: "string", description: "Restored status (active)." } } }
|
|
32323
32336
|
},
|
|
32324
32337
|
{
|
|
32325
32338
|
name: "delete_run",
|
|
32326
32339
|
title: "Delete slideshow run",
|
|
32327
|
-
description: "
|
|
32340
|
+
description: "Move a Slideshow Run to trash or permanently remove it from the workspace along with its slide page records. Use only when a run is obsolete and permanently discarded. Alternatives: If you only want to hide the run from active lists while preserving review links and data, use archive_slideshow_run instead. Destructive operation requiring explicit user confirmation. Invalidates studio review URLs. Returns deletion confirmation record.",
|
|
32328
32341
|
effect: "explicit-approval",
|
|
32329
32342
|
inputSchema: {
|
|
32330
32343
|
type: "object",
|
|
@@ -32334,7 +32347,7 @@ var init_src5 = __esm({
|
|
|
32334
32347
|
required: ["runId"],
|
|
32335
32348
|
additionalProperties: true
|
|
32336
32349
|
},
|
|
32337
|
-
outputSchema:
|
|
32350
|
+
outputSchema: { type: "object", properties: { runId: { type: "string", description: "Deleted run identifier." }, deleted: { type: "boolean", description: "True if deletion confirmed." } } }
|
|
32338
32351
|
}
|
|
32339
32352
|
];
|
|
32340
32353
|
slideshowResourceTemplates = [
|
|
@@ -32441,15 +32454,15 @@ var init_src6 = __esm({
|
|
|
32441
32454
|
{
|
|
32442
32455
|
name: "list_brands",
|
|
32443
32456
|
title: "List brands",
|
|
32444
|
-
description: "List owner-scoped Brands with typography tokens, color palettes, and logos.
|
|
32457
|
+
description: "List owner-scoped Brands with typography tokens, color palettes, and logos. Call to discover available brand identities before creating or styling slideshow runs. Alternatives: Use get_brand when you have a specific brandId to inspect full tokens. Read-only query scoped to current workspace owner. Returns array of Brand summaries.",
|
|
32445
32458
|
effect: "read-only",
|
|
32446
32459
|
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
32447
|
-
outputSchema: { type: "object", properties: {} }
|
|
32460
|
+
outputSchema: { type: "object", properties: { brands: { type: "array", description: "Array of brand kit summaries." } } }
|
|
32448
32461
|
},
|
|
32449
32462
|
{
|
|
32450
32463
|
name: "get_brand",
|
|
32451
32464
|
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
|
|
32465
|
+
description: "Fetch a complete Brand profile by brandId, including typography tokens, 4-color palette (primary, secondary, accent, surface), logoAssetId, and baseRevision. Call before generating or updating branded slides to inject brand styles and capture baseRevision. Alternatives: Use list_brands to discover brandIds. Read-only query scoped to workspace owner. Returns full Brand entity.",
|
|
32453
32466
|
effect: "read-only",
|
|
32454
32467
|
inputSchema: {
|
|
32455
32468
|
type: "object",
|
|
@@ -32459,12 +32472,12 @@ var init_src6 = __esm({
|
|
|
32459
32472
|
required: ["brandId"],
|
|
32460
32473
|
additionalProperties: false
|
|
32461
32474
|
},
|
|
32462
|
-
outputSchema: { type: "object", properties: {} }
|
|
32475
|
+
outputSchema: { type: "object", properties: { brandId: { type: "string", description: "Brand ID." }, revision: { type: "number", description: "Current revision number." }, typography: { type: "object", description: "Typography settings." }, colors: { type: "object", description: "Color palette." } } }
|
|
32463
32476
|
},
|
|
32464
32477
|
{
|
|
32465
32478
|
name: "create_brand",
|
|
32466
32479
|
title: "Create brand",
|
|
32467
|
-
description: "Create a new owner-scoped Brand kit defining typography, color palette, handle, and optional logo asset.
|
|
32480
|
+
description: "Create a new owner-scoped Brand kit defining typography, color palette, handle, and optional logo asset. Call before creating slideshow runs to establish consistent visual identity. Do NOT use to edit an existing brand; use update_brand instead. Requires workspace owner authorization. Persists initial brand record with revision 1. Returns created Brand entity with brandId and initial revision.",
|
|
32468
32481
|
effect: "local-write-job",
|
|
32469
32482
|
inputSchema: {
|
|
32470
32483
|
type: "object",
|
|
@@ -32479,18 +32492,18 @@ var init_src6 = __esm({
|
|
|
32479
32492
|
required: ["name"],
|
|
32480
32493
|
additionalProperties: false
|
|
32481
32494
|
},
|
|
32482
|
-
outputSchema: { type: "object", properties: {} }
|
|
32495
|
+
outputSchema: { type: "object", properties: { brandId: { type: "string", description: "Created brand ID." }, revision: { type: "number", description: "Initial revision (1)." } } }
|
|
32483
32496
|
},
|
|
32484
32497
|
{
|
|
32485
32498
|
name: "update_brand",
|
|
32486
32499
|
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.",
|
|
32500
|
+
description: "Patch visual styles, typography, or metadata of an existing Brand by brandId. Call after get_brand to modify palette or fonts. Do NOT use to create new brands (use create_brand) or to delete (use delete_brand). Requires baseRevision for optimistic concurrency locking to prevent overwrite races; on revision mismatch returns 409 Conflict. Safe partial patch: unspecified styling tokens are preserved. Returns updated Brand with incremented revision.",
|
|
32488
32501
|
effect: "local-write-job",
|
|
32489
32502
|
inputSchema: {
|
|
32490
32503
|
type: "object",
|
|
32491
32504
|
properties: {
|
|
32492
32505
|
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." },
|
|
32506
|
+
baseRevision: { type: "integer", minimum: 1, description: "Current revision number for optimistic concurrency lock. Must match latest revision from get_brand." },
|
|
32494
32507
|
name: { type: "string", description: "Updated brand name." },
|
|
32495
32508
|
displayName: { type: "string", description: "Updated display name." },
|
|
32496
32509
|
handle: { type: "string", description: "Updated social handle." },
|
|
@@ -32501,12 +32514,12 @@ var init_src6 = __esm({
|
|
|
32501
32514
|
required: ["brandId", "baseRevision"],
|
|
32502
32515
|
additionalProperties: false
|
|
32503
32516
|
},
|
|
32504
|
-
outputSchema: { type: "object", properties: {} }
|
|
32517
|
+
outputSchema: { type: "object", properties: { brandId: { type: "string", description: "Brand ID." }, revision: { type: "number", description: "Incremented revision number." } } }
|
|
32505
32518
|
},
|
|
32506
32519
|
{
|
|
32507
32520
|
name: "archive_brand",
|
|
32508
32521
|
title: "Archive brand",
|
|
32509
|
-
description: "Archive an active Brand to soft-hide it from default pickers and list queries without losing styling tokens.
|
|
32522
|
+
description: "Archive an active Brand to soft-hide it from default pickers and list queries without losing styling tokens. Call to declutter workspace brands. Do NOT use for permanent deletion; use delete_brand instead. Idempotent state transition, fully reversible via restore_brand. Existing slideshow runs referencing this brand continue to display correctly. Returns updated Brand with status set to archived.",
|
|
32510
32523
|
effect: "local-write-job",
|
|
32511
32524
|
inputSchema: {
|
|
32512
32525
|
type: "object",
|
|
@@ -32516,12 +32529,12 @@ var init_src6 = __esm({
|
|
|
32516
32529
|
required: ["brandId"],
|
|
32517
32530
|
additionalProperties: false
|
|
32518
32531
|
},
|
|
32519
|
-
outputSchema: { type: "object", properties: {} }
|
|
32532
|
+
outputSchema: { type: "object", properties: { brandId: { type: "string", description: "Brand ID." }, status: { type: "string", description: "Updated status (archived)." } } }
|
|
32520
32533
|
},
|
|
32521
32534
|
{
|
|
32522
32535
|
name: "restore_brand",
|
|
32523
32536
|
title: "Restore brand",
|
|
32524
|
-
description: "Restore a previously archived or trashed Brand back to active status
|
|
32537
|
+
description: "Restore a previously archived or trashed Brand back to active status. Call to unhide a brand and make it immediately selectable in brand selectors and default list queries. Alternatives: Use get_brand to inspect tokens before restoring. Idempotent state transition. Returns restored Brand with status set to active.",
|
|
32525
32538
|
effect: "local-write-job",
|
|
32526
32539
|
inputSchema: {
|
|
32527
32540
|
type: "object",
|
|
@@ -32531,12 +32544,12 @@ var init_src6 = __esm({
|
|
|
32531
32544
|
required: ["brandId"],
|
|
32532
32545
|
additionalProperties: false
|
|
32533
32546
|
},
|
|
32534
|
-
outputSchema: { type: "object", properties: {} }
|
|
32547
|
+
outputSchema: { type: "object", properties: { brandId: { type: "string", description: "Brand ID." }, status: { type: "string", description: "Restored status (active)." } } }
|
|
32535
32548
|
},
|
|
32536
32549
|
{
|
|
32537
32550
|
name: "delete_brand",
|
|
32538
32551
|
title: "Delete brand",
|
|
32539
|
-
description: "Move a Brand to trash
|
|
32552
|
+
description: "Move a Brand to trash for deletion. Call only when a brand kit is obsolete and permanently discarded. Alternatives: If existing runs still use this brand theme, prefer archive_brand to preserve styling safely. Destructive operation requiring explicit confirmation. Dependent design workflows may lose default brand styling. Returns deletion confirmation record.",
|
|
32540
32553
|
effect: "explicit-approval",
|
|
32541
32554
|
inputSchema: {
|
|
32542
32555
|
type: "object",
|
|
@@ -32546,7 +32559,7 @@ var init_src6 = __esm({
|
|
|
32546
32559
|
required: ["brandId"],
|
|
32547
32560
|
additionalProperties: false
|
|
32548
32561
|
},
|
|
32549
|
-
outputSchema: { type: "object", properties: {} }
|
|
32562
|
+
outputSchema: { type: "object", properties: { brandId: { type: "string", description: "Deleted brand ID." }, deleted: { type: "boolean", description: "True if deletion confirmed." } } }
|
|
32550
32563
|
}
|
|
32551
32564
|
];
|
|
32552
32565
|
rename = (tool, names) => ({ ...tool, name: names[tool.name] ?? tool.name });
|
|
@@ -32556,7 +32569,7 @@ var init_src6 = __esm({
|
|
|
32556
32569
|
{
|
|
32557
32570
|
name: "list_images",
|
|
32558
32571
|
title: "List images",
|
|
32559
|
-
description: "List owner-scoped image assets in the media library with optional search query q. Returns image IDs, CDN URLs,
|
|
32572
|
+
description: "List owner-scoped image assets in the media library with optional search query q. Returns image IDs, CDN URLs, dimensions, and rights status for slot assignment. Call to browse media assets or discover imageId before slot binding. Alternatives: Use get_image to fetch full metadata for a specific imageId. Read-only query scoped to workspace owner.",
|
|
32560
32573
|
effect: "read-only",
|
|
32561
32574
|
inputSchema: {
|
|
32562
32575
|
type: "object",
|
|
@@ -32565,12 +32578,12 @@ var init_src6 = __esm({
|
|
|
32565
32578
|
},
|
|
32566
32579
|
additionalProperties: false
|
|
32567
32580
|
},
|
|
32568
|
-
outputSchema: { type: "object", properties: {} }
|
|
32581
|
+
outputSchema: { type: "object", properties: { images: { type: "array", description: "Array of image asset records." } } }
|
|
32569
32582
|
},
|
|
32570
32583
|
{
|
|
32571
32584
|
name: "get_image",
|
|
32572
32585
|
title: "Get image",
|
|
32573
|
-
description: "Fetch metadata and public R2/CDN delivery URL for a specific image asset by imageId.
|
|
32586
|
+
description: "Fetch metadata and public R2/CDN delivery URL for a specific image asset by imageId. Call to inspect dimensions, content hash, and rightsStatus before binding to slide slots. Alternatives: Use list_images to search assets across media library. Read-only query scoped to workspace owner. Returns full Image entity.",
|
|
32574
32587
|
effect: "read-only",
|
|
32575
32588
|
inputSchema: {
|
|
32576
32589
|
type: "object",
|
|
@@ -32580,12 +32593,12 @@ var init_src6 = __esm({
|
|
|
32580
32593
|
required: ["imageId"],
|
|
32581
32594
|
additionalProperties: false
|
|
32582
32595
|
},
|
|
32583
|
-
outputSchema: { type: "object", properties: {} }
|
|
32596
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Image asset ID." }, url: { type: "string", description: "Public delivery URL." }, rightsStatus: { type: "string", description: "Rights status." } } }
|
|
32584
32597
|
},
|
|
32585
32598
|
{
|
|
32586
32599
|
name: "import_image",
|
|
32587
32600
|
title: "Import image",
|
|
32588
|
-
description: "Upload
|
|
32601
|
+
description: "Upload a new image file into the permanent workspace media library, storing the binary asset on Cloudflare R2 and registering metadata in Directus. Call to add reusable media assets (logos, photos, graphics) for use across slideshow runs and brands. Do NOT use for transient template draft canvas images (use import_template_image instead). Requires workspace write permissions. Returns created Image record with generated imageId and public delivery URL.",
|
|
32589
32602
|
effect: "local-write-job",
|
|
32590
32603
|
inputSchema: {
|
|
32591
32604
|
type: "object",
|
|
@@ -32598,12 +32611,12 @@ var init_src6 = __esm({
|
|
|
32598
32611
|
},
|
|
32599
32612
|
additionalProperties: false
|
|
32600
32613
|
},
|
|
32601
|
-
outputSchema: { type: "object", properties: {} }
|
|
32614
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Created image ID." }, url: { type: "string", description: "Public delivery URL." } } }
|
|
32602
32615
|
},
|
|
32603
32616
|
{
|
|
32604
32617
|
name: "update_image",
|
|
32605
32618
|
title: "Update image",
|
|
32606
|
-
description: "Update metadata for an existing
|
|
32619
|
+
description: "Update metadata fields (such as human-readable name or rightsStatus) for an existing image asset by imageId. Call to rename images or change categorization tags. Do NOT use to record legal commercial compliance attestations (use attest_image instead) or to replace image binary pixels (use import_image to upload a new asset). Requires workspace owner authorization. Safe partial update: only provided fields are modified. Returns updated Image asset record.",
|
|
32607
32620
|
effect: "local-write-job",
|
|
32608
32621
|
inputSchema: {
|
|
32609
32622
|
type: "object",
|
|
@@ -32615,28 +32628,28 @@ var init_src6 = __esm({
|
|
|
32615
32628
|
required: ["imageId"],
|
|
32616
32629
|
additionalProperties: false
|
|
32617
32630
|
},
|
|
32618
|
-
outputSchema: { type: "object", properties: {} }
|
|
32631
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Image asset ID." }, name: { type: "string", description: "Updated title." }, rightsStatus: { type: "string", description: "Updated rights status." } } }
|
|
32619
32632
|
},
|
|
32620
32633
|
{
|
|
32621
32634
|
name: "attest_image",
|
|
32622
32635
|
title: "Attest image rights",
|
|
32623
|
-
description: "Record legal
|
|
32636
|
+
description: "Record an immutable legal copyright or commercial rights ownership attestation for an image asset. Call before multi-platform export to satisfy commercial compliance requirements. Do NOT use to edit metadata like title or tags (use update_image instead) or upload images (use import_image). Not required for personal or draft-only runs. Requires workspace owner authorization. Writes a permanent audit log record bound to imageId. Re-attesting with a new statementVersion creates a new timestamped attestation record without revoking prior history. Returns attestation confirmation object.",
|
|
32624
32637
|
effect: "local-write-job",
|
|
32625
32638
|
inputSchema: {
|
|
32626
32639
|
type: "object",
|
|
32627
32640
|
properties: {
|
|
32628
32641
|
imageId: { type: "string", description: "The unique image asset identifier to attest." },
|
|
32629
|
-
statementVersion: { type: "string", description: "Legal attestation terms version accepted (e.g. v1)." }
|
|
32642
|
+
statementVersion: { type: "string", description: "Legal attestation terms version accepted (e.g. v1). Returns 400 if invalid or empty." }
|
|
32630
32643
|
},
|
|
32631
32644
|
required: ["imageId"],
|
|
32632
32645
|
additionalProperties: false
|
|
32633
32646
|
},
|
|
32634
|
-
outputSchema: { type: "object", properties: {} }
|
|
32647
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Image asset ID." }, statementVersion: { type: "string", description: "Recorded statement version." }, attestedAt: { type: "string", description: "ISO timestamp of attestation." } } }
|
|
32635
32648
|
},
|
|
32636
32649
|
{
|
|
32637
32650
|
name: "archive_image",
|
|
32638
32651
|
title: "Archive image",
|
|
32639
|
-
description: "Archive an image asset to soft-hide it from active media pickers without deleting binary storage.
|
|
32652
|
+
description: "Archive an image asset to soft-hide it from active media pickers without deleting binary files from storage. Call to declutter media library when an image is retired from active use. For permanent deletion, use delete_image instead. Idempotent state transition, fully reversible via restore_image. Slides and carousels currently referencing this image continue to display and render without disruption. Returns updated Image record with status set to archived.",
|
|
32640
32653
|
effect: "local-write-job",
|
|
32641
32654
|
inputSchema: {
|
|
32642
32655
|
type: "object",
|
|
@@ -32646,12 +32659,12 @@ var init_src6 = __esm({
|
|
|
32646
32659
|
required: ["imageId"],
|
|
32647
32660
|
additionalProperties: false
|
|
32648
32661
|
},
|
|
32649
|
-
outputSchema: { type: "object", properties: {} }
|
|
32662
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Image asset ID." }, status: { type: "string", description: "Updated status (archived)." } } }
|
|
32650
32663
|
},
|
|
32651
32664
|
{
|
|
32652
32665
|
name: "restore_image",
|
|
32653
32666
|
title: "Restore image",
|
|
32654
|
-
description: "Restore
|
|
32667
|
+
description: "Restore a previously archived or trashed image asset back to active status in the workspace media library. Call to unhide a retired asset and make it selectable again in slide slot editors. Alternatives: Use get_image to inspect asset details before restoring. Idempotent state transition. Returns restored Image record visible in default media queries.",
|
|
32655
32668
|
effect: "local-write-job",
|
|
32656
32669
|
inputSchema: {
|
|
32657
32670
|
type: "object",
|
|
@@ -32661,12 +32674,12 @@ var init_src6 = __esm({
|
|
|
32661
32674
|
required: ["imageId"],
|
|
32662
32675
|
additionalProperties: false
|
|
32663
32676
|
},
|
|
32664
|
-
outputSchema: { type: "object", properties: {} }
|
|
32677
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Image asset ID." }, status: { type: "string", description: "Restored status (active)." } } }
|
|
32665
32678
|
},
|
|
32666
32679
|
{
|
|
32667
32680
|
name: "delete_image",
|
|
32668
32681
|
title: "Delete image",
|
|
32669
|
-
description: "Move an image asset to trash for deletion.
|
|
32682
|
+
description: "Move an image asset to trash for permanent removal. Call only when an image is obsolete, copyrighted without license, or marked for permanent deletion. If existing slides still use this image, prefer archive_image to hide it safely without breaking slide renders. Destructive operation requiring explicit user confirmation. May cause slide render failures if imageId is bound to active slides. Returns deletion confirmation record.",
|
|
32670
32683
|
effect: "explicit-approval",
|
|
32671
32684
|
inputSchema: {
|
|
32672
32685
|
type: "object",
|
|
@@ -32676,7 +32689,7 @@ var init_src6 = __esm({
|
|
|
32676
32689
|
required: ["imageId"],
|
|
32677
32690
|
additionalProperties: false
|
|
32678
32691
|
},
|
|
32679
|
-
outputSchema: { type: "object", properties: {} }
|
|
32692
|
+
outputSchema: { type: "object", properties: { imageId: { type: "string", description: "Deleted image asset ID." }, deleted: { type: "boolean", description: "True if deletion confirmed." } } }
|
|
32680
32693
|
}
|
|
32681
32694
|
];
|
|
32682
32695
|
unifiedToolRegistry = [...templateTools, ...slideshowTools, ...brandTools, ...imageTools];
|