@collage-dam/mcp-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +56 -0
- package/CHANGELOG.md +90 -0
- package/LICENSE +21 -0
- package/README.md +512 -0
- package/dist/client.d.ts +497 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1162 -0
- package/dist/client.js.map +1 -0
- package/dist/conventions/confirmation.d.ts +89 -0
- package/dist/conventions/confirmation.d.ts.map +1 -0
- package/dist/conventions/confirmation.js +132 -0
- package/dist/conventions/confirmation.js.map +1 -0
- package/dist/conventions/dry-run/batch-executor.d.ts +36 -0
- package/dist/conventions/dry-run/batch-executor.d.ts.map +1 -0
- package/dist/conventions/dry-run/batch-executor.js +89 -0
- package/dist/conventions/dry-run/batch-executor.js.map +1 -0
- package/dist/conventions/dry-run/diff-renderer.d.ts +34 -0
- package/dist/conventions/dry-run/diff-renderer.d.ts.map +1 -0
- package/dist/conventions/dry-run/diff-renderer.js +158 -0
- package/dist/conventions/dry-run/diff-renderer.js.map +1 -0
- package/dist/conventions/dry-run/index.d.ts +13 -0
- package/dist/conventions/dry-run/index.d.ts.map +1 -0
- package/dist/conventions/dry-run/index.js +10 -0
- package/dist/conventions/dry-run/index.js.map +1 -0
- package/dist/conventions/dry-run/mutating-tool.d.ts +64 -0
- package/dist/conventions/dry-run/mutating-tool.d.ts.map +1 -0
- package/dist/conventions/dry-run/mutating-tool.js +88 -0
- package/dist/conventions/dry-run/mutating-tool.js.map +1 -0
- package/dist/conventions/dry-run/summary.d.ts +66 -0
- package/dist/conventions/dry-run/summary.d.ts.map +1 -0
- package/dist/conventions/dry-run/summary.js +185 -0
- package/dist/conventions/dry-run/summary.js.map +1 -0
- package/dist/conventions/dry-run/types.d.ts +597 -0
- package/dist/conventions/dry-run/types.d.ts.map +1 -0
- package/dist/conventions/dry-run/types.js +108 -0
- package/dist/conventions/dry-run/types.js.map +1 -0
- package/dist/conventions/dry-run/with-dry-run.d.ts +66 -0
- package/dist/conventions/dry-run/with-dry-run.d.ts.map +1 -0
- package/dist/conventions/dry-run/with-dry-run.js +219 -0
- package/dist/conventions/dry-run/with-dry-run.js.map +1 -0
- package/dist/conventions/env.d.ts +49 -0
- package/dist/conventions/env.d.ts.map +1 -0
- package/dist/conventions/env.js +84 -0
- package/dist/conventions/env.js.map +1 -0
- package/dist/conventions/errors.d.ts +68 -0
- package/dist/conventions/errors.d.ts.map +1 -0
- package/dist/conventions/errors.js +81 -0
- package/dist/conventions/errors.js.map +1 -0
- package/dist/conventions/logger.d.ts +28 -0
- package/dist/conventions/logger.d.ts.map +1 -0
- package/dist/conventions/logger.js +105 -0
- package/dist/conventions/logger.js.map +1 -0
- package/dist/conventions/pagination.d.ts +37 -0
- package/dist/conventions/pagination.d.ts.map +1 -0
- package/dist/conventions/pagination.js +53 -0
- package/dist/conventions/pagination.js.map +1 -0
- package/dist/conventions/rate-limiter.d.ts +54 -0
- package/dist/conventions/rate-limiter.d.ts.map +1 -0
- package/dist/conventions/rate-limiter.js +143 -0
- package/dist/conventions/rate-limiter.js.map +1 -0
- package/dist/conventions/response-budget.d.ts +66 -0
- package/dist/conventions/response-budget.d.ts.map +1 -0
- package/dist/conventions/response-budget.js +89 -0
- package/dist/conventions/response-budget.js.map +1 -0
- package/dist/conventions/schema-version.d.ts +27 -0
- package/dist/conventions/schema-version.d.ts.map +1 -0
- package/dist/conventions/schema-version.js +29 -0
- package/dist/conventions/schema-version.js.map +1 -0
- package/dist/conventions/state-store-redis.d.ts +32 -0
- package/dist/conventions/state-store-redis.d.ts.map +1 -0
- package/dist/conventions/state-store-redis.js +77 -0
- package/dist/conventions/state-store-redis.js.map +1 -0
- package/dist/conventions/state-store.d.ts +46 -0
- package/dist/conventions/state-store.d.ts.map +1 -0
- package/dist/conventions/state-store.js +105 -0
- package/dist/conventions/state-store.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +421 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/collection-audit.d.ts +13 -0
- package/dist/prompts/collection-audit.d.ts.map +1 -0
- package/dist/prompts/collection-audit.js +168 -0
- package/dist/prompts/collection-audit.js.map +1 -0
- package/dist/prompts/create-distribution.d.ts +15 -0
- package/dist/prompts/create-distribution.d.ts.map +1 -0
- package/dist/prompts/create-distribution.js +111 -0
- package/dist/prompts/create-distribution.js.map +1 -0
- package/dist/prompts/helpers.d.ts +20 -0
- package/dist/prompts/helpers.d.ts.map +1 -0
- package/dist/prompts/helpers.js +53 -0
- package/dist/prompts/helpers.js.map +1 -0
- package/dist/prompts/library-health-audit.d.ts +13 -0
- package/dist/prompts/library-health-audit.d.ts.map +1 -0
- package/dist/prompts/library-health-audit.js +131 -0
- package/dist/prompts/library-health-audit.js.map +1 -0
- package/dist/prompts/usage-insights.d.ts +13 -0
- package/dist/prompts/usage-insights.d.ts.map +1 -0
- package/dist/prompts/usage-insights.js +98 -0
- package/dist/prompts/usage-insights.js.map +1 -0
- package/dist/prompts/wrap-prompt-as-tool.d.ts +48 -0
- package/dist/prompts/wrap-prompt-as-tool.d.ts.map +1 -0
- package/dist/prompts/wrap-prompt-as-tool.js +61 -0
- package/dist/prompts/wrap-prompt-as-tool.js.map +1 -0
- package/dist/resources/asset-by-id.d.ts +4 -0
- package/dist/resources/asset-by-id.d.ts.map +1 -0
- package/dist/resources/asset-by-id.js +27 -0
- package/dist/resources/asset-by-id.js.map +1 -0
- package/dist/resources/collections.d.ts +5 -0
- package/dist/resources/collections.d.ts.map +1 -0
- package/dist/resources/collections.js +48 -0
- package/dist/resources/collections.js.map +1 -0
- package/dist/resources/custom-fields.d.ts +4 -0
- package/dist/resources/custom-fields.d.ts.map +1 -0
- package/dist/resources/custom-fields.js +30 -0
- package/dist/resources/custom-fields.js.map +1 -0
- package/dist/resources/folders.d.ts +5 -0
- package/dist/resources/folders.d.ts.map +1 -0
- package/dist/resources/folders.js +73 -0
- package/dist/resources/folders.js.map +1 -0
- package/dist/resources/helpers.d.ts +17 -0
- package/dist/resources/helpers.d.ts.map +1 -0
- package/dist/resources/helpers.js +59 -0
- package/dist/resources/helpers.js.map +1 -0
- package/dist/resources/portals.d.ts +5 -0
- package/dist/resources/portals.d.ts.map +1 -0
- package/dist/resources/portals.js +81 -0
- package/dist/resources/portals.js.map +1 -0
- package/dist/resources/recent-and-dashboard.d.ts +5 -0
- package/dist/resources/recent-and-dashboard.d.ts.map +1 -0
- package/dist/resources/recent-and-dashboard.js +42 -0
- package/dist/resources/recent-and-dashboard.js.map +1 -0
- package/dist/tools/asset-selection.d.ts +102 -0
- package/dist/tools/asset-selection.d.ts.map +1 -0
- package/dist/tools/asset-selection.js +133 -0
- package/dist/tools/asset-selection.js.map +1 -0
- package/dist/tools/audit/audit-folder-structure.d.ts +108 -0
- package/dist/tools/audit/audit-folder-structure.d.ts.map +1 -0
- package/dist/tools/audit/audit-folder-structure.js +260 -0
- package/dist/tools/audit/audit-folder-structure.js.map +1 -0
- package/dist/tools/audit/audit-naming-conventions.d.ts +83 -0
- package/dist/tools/audit/audit-naming-conventions.d.ts.map +1 -0
- package/dist/tools/audit/audit-naming-conventions.js +238 -0
- package/dist/tools/audit/audit-naming-conventions.js.map +1 -0
- package/dist/tools/audit/audit-tagging-hygiene.d.ts +77 -0
- package/dist/tools/audit/audit-tagging-hygiene.d.ts.map +1 -0
- package/dist/tools/audit/audit-tagging-hygiene.js +402 -0
- package/dist/tools/audit/audit-tagging-hygiene.js.map +1 -0
- package/dist/tools/audit/detect-duplicates.d.ts +62 -0
- package/dist/tools/audit/detect-duplicates.d.ts.map +1 -0
- package/dist/tools/audit/detect-duplicates.js +0 -0
- package/dist/tools/audit/detect-duplicates.js.map +1 -0
- package/dist/tools/audit/types.d.ts +526 -0
- package/dist/tools/audit/types.d.ts.map +1 -0
- package/dist/tools/audit/types.js +188 -0
- package/dist/tools/audit/types.js.map +1 -0
- package/dist/tools/bulk-move-assets.d.ts +78 -0
- package/dist/tools/bulk-move-assets.d.ts.map +1 -0
- package/dist/tools/bulk-move-assets.js +122 -0
- package/dist/tools/bulk-move-assets.js.map +1 -0
- package/dist/tools/bulk-normalize-filenames.d.ts +62 -0
- package/dist/tools/bulk-normalize-filenames.d.ts.map +1 -0
- package/dist/tools/bulk-normalize-filenames.js +237 -0
- package/dist/tools/bulk-normalize-filenames.js.map +1 -0
- package/dist/tools/bulk-rename-assets.d.ts +79 -0
- package/dist/tools/bulk-rename-assets.d.ts.map +1 -0
- package/dist/tools/bulk-rename-assets.js +139 -0
- package/dist/tools/bulk-rename-assets.js.map +1 -0
- package/dist/tools/bulk-tags.d.ts +107 -0
- package/dist/tools/bulk-tags.d.ts.map +1 -0
- package/dist/tools/bulk-tags.js +220 -0
- package/dist/tools/bulk-tags.js.map +1 -0
- package/dist/tools/client-adapters.d.ts +76 -0
- package/dist/tools/client-adapters.d.ts.map +1 -0
- package/dist/tools/client-adapters.js +648 -0
- package/dist/tools/client-adapters.js.map +1 -0
- package/dist/tools/collection-membership.d.ts +90 -0
- package/dist/tools/collection-membership.d.ts.map +1 -0
- package/dist/tools/collection-membership.js +195 -0
- package/dist/tools/collection-membership.js.map +1 -0
- package/dist/tools/create-collection.d.ts +63 -0
- package/dist/tools/create-collection.d.ts.map +1 -0
- package/dist/tools/create-collection.js +151 -0
- package/dist/tools/create-collection.js.map +1 -0
- package/dist/tools/create-folder.d.ts +46 -0
- package/dist/tools/create-folder.d.ts.map +1 -0
- package/dist/tools/create-folder.js +83 -0
- package/dist/tools/create-folder.js.map +1 -0
- package/dist/tools/create-share-link.d.ts +107 -0
- package/dist/tools/create-share-link.d.ts.map +1 -0
- package/dist/tools/create-share-link.js +239 -0
- package/dist/tools/create-share-link.js.map +1 -0
- package/dist/tools/get-asset-details.d.ts +401 -0
- package/dist/tools/get-asset-details.d.ts.map +1 -0
- package/dist/tools/get-asset-details.js +56 -0
- package/dist/tools/get-asset-details.js.map +1 -0
- package/dist/tools/get-collection.d.ts +126 -0
- package/dist/tools/get-collection.d.ts.map +1 -0
- package/dist/tools/get-collection.js +52 -0
- package/dist/tools/get-collection.js.map +1 -0
- package/dist/tools/get-embed-code.d.ts +195 -0
- package/dist/tools/get-embed-code.d.ts.map +1 -0
- package/dist/tools/get-embed-code.js +214 -0
- package/dist/tools/get-embed-code.js.map +1 -0
- package/dist/tools/insights/analyze-share-links.d.ts +159 -0
- package/dist/tools/insights/analyze-share-links.d.ts.map +1 -0
- package/dist/tools/insights/analyze-share-links.js +314 -0
- package/dist/tools/insights/analyze-share-links.js.map +1 -0
- package/dist/tools/insights/insight-cache.d.ts +36 -0
- package/dist/tools/insights/insight-cache.d.ts.map +1 -0
- package/dist/tools/insights/insight-cache.js +98 -0
- package/dist/tools/insights/insight-cache.js.map +1 -0
- package/dist/tools/insights/report-asset-activation.d.ts +149 -0
- package/dist/tools/insights/report-asset-activation.d.ts.map +1 -0
- package/dist/tools/insights/report-asset-activation.js +380 -0
- package/dist/tools/insights/report-asset-activation.js.map +1 -0
- package/dist/tools/insights/report-stale-assets.d.ts +120 -0
- package/dist/tools/insights/report-stale-assets.d.ts.map +1 -0
- package/dist/tools/insights/report-stale-assets.js +281 -0
- package/dist/tools/insights/report-stale-assets.js.map +1 -0
- package/dist/tools/insights/report-top-assets.d.ts +139 -0
- package/dist/tools/insights/report-top-assets.d.ts.map +1 -0
- package/dist/tools/insights/report-top-assets.js +407 -0
- package/dist/tools/insights/report-top-assets.js.map +1 -0
- package/dist/tools/list-categories.d.ts +127 -0
- package/dist/tools/list-categories.d.ts.map +1 -0
- package/dist/tools/list-categories.js +68 -0
- package/dist/tools/list-categories.js.map +1 -0
- package/dist/tools/list-collections.d.ts +127 -0
- package/dist/tools/list-collections.d.ts.map +1 -0
- package/dist/tools/list-collections.js +53 -0
- package/dist/tools/list-collections.js.map +1 -0
- package/dist/tools/list-custom-fields.d.ts +125 -0
- package/dist/tools/list-custom-fields.d.ts.map +1 -0
- package/dist/tools/list-custom-fields.js +51 -0
- package/dist/tools/list-custom-fields.js.map +1 -0
- package/dist/tools/list-share-links.d.ts +192 -0
- package/dist/tools/list-share-links.d.ts.map +1 -0
- package/dist/tools/list-share-links.js +92 -0
- package/dist/tools/list-share-links.js.map +1 -0
- package/dist/tools/list-workspaces.d.ts +88 -0
- package/dist/tools/list-workspaces.d.ts.map +1 -0
- package/dist/tools/list-workspaces.js +71 -0
- package/dist/tools/list-workspaces.js.map +1 -0
- package/dist/tools/move-asset.d.ts +48 -0
- package/dist/tools/move-asset.d.ts.map +1 -0
- package/dist/tools/move-asset.js +85 -0
- package/dist/tools/move-asset.js.map +1 -0
- package/dist/tools/rename-asset.d.ts +88 -0
- package/dist/tools/rename-asset.d.ts.map +1 -0
- package/dist/tools/rename-asset.js +100 -0
- package/dist/tools/rename-asset.js.map +1 -0
- package/dist/tools/rename-folder.d.ts +55 -0
- package/dist/tools/rename-folder.d.ts.map +1 -0
- package/dist/tools/rename-folder.js +101 -0
- package/dist/tools/rename-folder.js.map +1 -0
- package/dist/tools/revoke-share-link.d.ts +55 -0
- package/dist/tools/revoke-share-link.d.ts.map +1 -0
- package/dist/tools/revoke-share-link.js +77 -0
- package/dist/tools/revoke-share-link.js.map +1 -0
- package/dist/tools/search/facets.d.ts +34 -0
- package/dist/tools/search/facets.d.ts.map +1 -0
- package/dist/tools/search/facets.js +147 -0
- package/dist/tools/search/facets.js.map +1 -0
- package/dist/tools/search/filter-builder.d.ts +33 -0
- package/dist/tools/search/filter-builder.d.ts.map +1 -0
- package/dist/tools/search/filter-builder.js +111 -0
- package/dist/tools/search/filter-builder.js.map +1 -0
- package/dist/tools/search/search-assets.d.ts +41 -0
- package/dist/tools/search/search-assets.d.ts.map +1 -0
- package/dist/tools/search/search-assets.js +162 -0
- package/dist/tools/search/search-assets.js.map +1 -0
- package/dist/tools/search/search-collections.d.ts +35 -0
- package/dist/tools/search/search-collections.d.ts.map +1 -0
- package/dist/tools/search/search-collections.js +103 -0
- package/dist/tools/search/search-collections.js.map +1 -0
- package/dist/tools/search/types.d.ts +1047 -0
- package/dist/tools/search/types.d.ts.map +1 -0
- package/dist/tools/search/types.js +216 -0
- package/dist/tools/search/types.js.map +1 -0
- package/dist/tools/update-asset-metadata.d.ts +78 -0
- package/dist/tools/update-asset-metadata.d.ts.map +1 -0
- package/dist/tools/update-asset-metadata.js +203 -0
- package/dist/tools/update-asset-metadata.js.map +1 -0
- package/dist/tools/update-collection.d.ts +69 -0
- package/dist/tools/update-collection.d.ts.map +1 -0
- package/dist/tools/update-collection.js +142 -0
- package/dist/tools/update-collection.js.map +1 -0
- package/dist/tools/view-category-contents.d.ts +231 -0
- package/dist/tools/view-category-contents.d.ts.map +1 -0
- package/dist/tools/view-category-contents.js +97 -0
- package/dist/tools/view-category-contents.js.map +1 -0
- package/dist/types.d.ts +1326 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +288 -0
- package/dist/types.js.map +1 -0
- package/dist/typesense.d.ts +84 -0
- package/dist/typesense.d.ts.map +1 -0
- package/dist/typesense.js +243 -0
- package/dist/typesense.js.map +1 -0
- package/docs/api-field-verification.md +244 -0
- package/docs/deployment-runbook.md +446 -0
- package/docs/security-review.md +195 -0
- package/docs/typesense-filter-schema.md +262 -0
- package/docs/verified-endpoints.md +38 -0
- package/package.json +72 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// ── update_collection ────────────────────────────────────────────────
|
|
2
|
+
// Updates the metadata (name, description) on an existing Collage
|
|
3
|
+
// collection. Does NOT touch membership — use add_to_collection /
|
|
4
|
+
// remove_from_collection for that.
|
|
5
|
+
//
|
|
6
|
+
// Upstream surface:
|
|
7
|
+
// POST digital-assets/collection/update/{id}
|
|
8
|
+
// body: { name?, description?, workspace_id }
|
|
9
|
+
// returns: { data: { id, name, description, ... }, message }
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { MutatingTool, } from '../conventions/dry-run/index.js';
|
|
12
|
+
import { createToolError } from '../conventions/errors.js';
|
|
13
|
+
import { IdSchema } from '../types.js';
|
|
14
|
+
// ── Tool I/O Schema ──────────────────────────────────────────────────
|
|
15
|
+
export const UpdateCollectionInputSchema = z
|
|
16
|
+
.object({
|
|
17
|
+
collection_id: IdSchema,
|
|
18
|
+
name: z.string().min(1).max(255).optional(),
|
|
19
|
+
description: z.string().max(10_000).nullable().optional(),
|
|
20
|
+
})
|
|
21
|
+
.refine((input) => input.name !== undefined || input.description !== undefined, {
|
|
22
|
+
message: 'At least one of `name` or `description` must be provided to update_collection.',
|
|
23
|
+
});
|
|
24
|
+
export const UPDATE_COLLECTION_DESCRIPTION = 'Update name and/or description on a single Collage collection. Does NOT ' +
|
|
25
|
+
'modify membership — use add_to_collection / remove_from_collection for ' +
|
|
26
|
+
'that. Two-step: first call returns a preview plus a confirmation_token; ' +
|
|
27
|
+
'second call (with the token) applies the change and returns a per-item ' +
|
|
28
|
+
'ledger.';
|
|
29
|
+
export class UpdateCollectionTool extends MutatingTool {
|
|
30
|
+
name = 'update_collection';
|
|
31
|
+
chunkSize = 1;
|
|
32
|
+
client;
|
|
33
|
+
constructor(deps) {
|
|
34
|
+
super(deps);
|
|
35
|
+
this.client = deps.client;
|
|
36
|
+
}
|
|
37
|
+
async plan(input) {
|
|
38
|
+
const id = String(input.collection_id);
|
|
39
|
+
const snapshot = await this.client.getCollectionMetadata(id);
|
|
40
|
+
if (!snapshot.ok) {
|
|
41
|
+
throw new Error(`failed to read current metadata for collection ${id}: ${snapshot.error.code} — ${snapshot.error.message}`);
|
|
42
|
+
}
|
|
43
|
+
const before = {};
|
|
44
|
+
const after = {};
|
|
45
|
+
const fieldsChanged = [];
|
|
46
|
+
let nameOverwrite = false;
|
|
47
|
+
let descriptionOverwrite = false;
|
|
48
|
+
if (input.name !== undefined) {
|
|
49
|
+
before['name'] = snapshot.snapshot.name;
|
|
50
|
+
after['name'] = input.name;
|
|
51
|
+
if (snapshot.snapshot.name !== input.name) {
|
|
52
|
+
fieldsChanged.push('name');
|
|
53
|
+
if (snapshot.snapshot.name !== null &&
|
|
54
|
+
snapshot.snapshot.name !== '' &&
|
|
55
|
+
snapshot.snapshot.name !== input.name) {
|
|
56
|
+
nameOverwrite = true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (input.description !== undefined) {
|
|
61
|
+
before['description'] = snapshot.snapshot.description;
|
|
62
|
+
after['description'] = input.description;
|
|
63
|
+
if (snapshot.snapshot.description !== input.description) {
|
|
64
|
+
fieldsChanged.push('description');
|
|
65
|
+
if (snapshot.snapshot.description !== null &&
|
|
66
|
+
snapshot.snapshot.description !== '' &&
|
|
67
|
+
snapshot.snapshot.description !== input.description) {
|
|
68
|
+
descriptionOverwrite = true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const change = {
|
|
73
|
+
id,
|
|
74
|
+
operation: 'update',
|
|
75
|
+
before,
|
|
76
|
+
after,
|
|
77
|
+
metadata: {
|
|
78
|
+
...(input.name !== undefined ? { name: input.name } : {}),
|
|
79
|
+
...(input.description !== undefined
|
|
80
|
+
? { description: input.description }
|
|
81
|
+
: {}),
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
const riskFlags = [];
|
|
85
|
+
if (fieldsChanged.length === 0) {
|
|
86
|
+
riskFlags.push({
|
|
87
|
+
code: 'noop_collection_update',
|
|
88
|
+
severity: 'info',
|
|
89
|
+
message: 'all proposed values match current values (no-op)',
|
|
90
|
+
count: 1,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const overwriteCount = (nameOverwrite ? 1 : 0) + (descriptionOverwrite ? 1 : 0);
|
|
94
|
+
if (overwriteCount > 0) {
|
|
95
|
+
riskFlags.push({
|
|
96
|
+
code: 'collection_metadata_overwrite',
|
|
97
|
+
severity: 'warning',
|
|
98
|
+
message: 'will overwrite existing values on this collection',
|
|
99
|
+
count: overwriteCount,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
changes: [change],
|
|
104
|
+
riskFlags,
|
|
105
|
+
extraAggregates: {
|
|
106
|
+
fields_changed: fieldsChanged.length,
|
|
107
|
+
overwrites: overwriteCount,
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
apply = async (change) => {
|
|
112
|
+
const meta = (change.metadata ?? {});
|
|
113
|
+
const patch = {};
|
|
114
|
+
const fieldsUpdated = [];
|
|
115
|
+
if (meta.name !== undefined) {
|
|
116
|
+
patch.name = meta.name;
|
|
117
|
+
fieldsUpdated.push('name');
|
|
118
|
+
}
|
|
119
|
+
if (meta.description !== undefined) {
|
|
120
|
+
patch.description = meta.description;
|
|
121
|
+
fieldsUpdated.push('description');
|
|
122
|
+
}
|
|
123
|
+
if (fieldsUpdated.length === 0) {
|
|
124
|
+
return {
|
|
125
|
+
ok: false,
|
|
126
|
+
error: createToolError('VALIDATION', `change ${change.id} carries no metadata patch`),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
const result = await this.client.updateCollectionMetadata(change.id, patch);
|
|
130
|
+
if (!result.ok) {
|
|
131
|
+
return { ok: false, error: result.error };
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
ok: true,
|
|
135
|
+
result: { collection_id: change.id, fields_updated: fieldsUpdated },
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export function buildUpdateCollectionTool(deps) {
|
|
140
|
+
return new UpdateCollectionTool(deps);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=update-collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-collection.js","sourceRoot":"","sources":["../../src/tools/update-collection.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,kEAAkE;AAClE,kEAAkE;AAClE,mCAAmC;AACnC,EAAE;AACF,oBAAoB;AACpB,+CAA+C;AAC/C,kDAAkD;AAClD,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,GAKb,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAqB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,wEAAwE;AAExE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,aAAa,EAAE,QAAQ;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1D,CAAC;KACD,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EACtE;IACE,OAAO,EACL,gFAAgF;CACnF,CACF,CAAC;AAGJ,MAAM,CAAC,MAAM,6BAA6B,GACxC,0EAA0E;IAC1E,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,SAAS,CAAC;AAsCZ,MAAM,OAAO,oBAAqB,SAAQ,YAGzC;IACU,IAAI,GAAG,mBAAmB,CAAC;IACR,SAAS,GAAG,CAAC,CAAC;IAEzB,MAAM,CAAyB;IAEhD,YAAY,IAA0B;QACpC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,KAA4B;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,kDAAkD,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAC3G,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC1C,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,IACE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;oBAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE;oBAC7B,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EACrC,CAAC;oBACD,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YACtD,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;YACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxD,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAClC,IACE,QAAQ,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI;oBACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,KAAK,EAAE;oBACpC,QAAQ,CAAC,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EACnD,CAAC;oBACD,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAiB;YAC3B,EAAE;YACF,SAAS,EAAE,QAAQ;YACnB,MAAM;YACN,KAAK;YACL,QAAQ,EAAE;gBACR,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;oBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC;QAEF,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,kDAAkD;gBAC3D,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC;QACD,MAAM,cAAc,GAClB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,+BAA+B;gBACrC,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,mDAAmD;gBAC5D,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,SAAS;YACT,eAAe,EAAE;gBACf,cAAc,EAAE,aAAa,CAAC,MAAM;gBACpC,UAAU,EAAE,cAAc;aAC3B;SACF,CAAC;IACJ,CAAC;IAES,KAAK,GAAwC,KAAK,EAAE,MAAM,EAAE,EAAE;QACtE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAGlC,CAAC;QACF,MAAM,KAAK,GAAmD,EAAE,CAAC;QACjE,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,eAAe,CACpB,YAAY,EACZ,UAAU,MAAM,CAAC,EAAE,4BAA4B,CAChD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE;SACpE,CAAC;IACJ,CAAC,CAAC;CACH;AAED,MAAM,UAAU,yBAAyB,CACvC,IAA0B;IAE1B,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { CollageClient } from '../client.js';
|
|
3
|
+
export declare const ViewCategoryContentsInputSchema: z.ZodObject<{
|
|
4
|
+
category_id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
5
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
6
|
+
page_size: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
sort_by: z.ZodOptional<z.ZodEnum<["ASC", "DESC"]>>;
|
|
8
|
+
sort_value: z.ZodOptional<z.ZodString>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
category_id: string | number;
|
|
11
|
+
sort_by?: "ASC" | "DESC" | undefined;
|
|
12
|
+
sort_value?: string | undefined;
|
|
13
|
+
cursor?: string | undefined;
|
|
14
|
+
page_size?: number | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
category_id: string | number;
|
|
17
|
+
sort_by?: "ASC" | "DESC" | undefined;
|
|
18
|
+
sort_value?: string | undefined;
|
|
19
|
+
cursor?: string | undefined;
|
|
20
|
+
page_size?: number | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
export type ViewCategoryContentsInput = z.infer<typeof ViewCategoryContentsInputSchema>;
|
|
23
|
+
export declare const ViewCategoryContentsOutputSchema: z.ZodObject<{
|
|
24
|
+
category_id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
25
|
+
subcategories: z.ZodArray<z.ZodObject<{
|
|
26
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
27
|
+
workspace_id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
28
|
+
user_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
29
|
+
parent_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
30
|
+
folder_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
category_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
|
+
integration_type: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
created_at: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodString]>>>;
|
|
34
|
+
updated_at: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodString]>>>;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
workspace_id: string | number;
|
|
37
|
+
id: string | number;
|
|
38
|
+
folder_name?: string | null | undefined;
|
|
39
|
+
parent_id?: string | number | null | undefined;
|
|
40
|
+
user_id?: string | number | null | undefined;
|
|
41
|
+
created_at?: string | null | undefined;
|
|
42
|
+
updated_at?: string | null | undefined;
|
|
43
|
+
category_path?: string | null | undefined;
|
|
44
|
+
integration_type?: number | undefined;
|
|
45
|
+
}, {
|
|
46
|
+
workspace_id: string | number;
|
|
47
|
+
id: string | number;
|
|
48
|
+
folder_name?: string | null | undefined;
|
|
49
|
+
parent_id?: string | number | null | undefined;
|
|
50
|
+
user_id?: string | number | null | undefined;
|
|
51
|
+
created_at?: string | null | undefined;
|
|
52
|
+
updated_at?: string | null | undefined;
|
|
53
|
+
category_path?: string | null | undefined;
|
|
54
|
+
integration_type?: number | undefined;
|
|
55
|
+
}>, "many">;
|
|
56
|
+
assets: z.ZodArray<z.ZodObject<{
|
|
57
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
58
|
+
display_file_name: z.ZodOptional<z.ZodString>;
|
|
59
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
60
|
+
category_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
61
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
62
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
63
|
+
tag_name: z.ZodString;
|
|
64
|
+
}, "strip", z.ZodTypeAny, {
|
|
65
|
+
id: string | number;
|
|
66
|
+
tag_name: string;
|
|
67
|
+
}, {
|
|
68
|
+
id: string | number;
|
|
69
|
+
tag_name: string;
|
|
70
|
+
}>, "many">>;
|
|
71
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
72
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
73
|
+
display_file_name: z.ZodOptional<z.ZodString>;
|
|
74
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
75
|
+
category_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
76
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
77
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
78
|
+
tag_name: z.ZodString;
|
|
79
|
+
}, "strip", z.ZodTypeAny, {
|
|
80
|
+
id: string | number;
|
|
81
|
+
tag_name: string;
|
|
82
|
+
}, {
|
|
83
|
+
id: string | number;
|
|
84
|
+
tag_name: string;
|
|
85
|
+
}>, "many">>;
|
|
86
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
87
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
88
|
+
display_file_name: z.ZodOptional<z.ZodString>;
|
|
89
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
90
|
+
category_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
91
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
92
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
93
|
+
tag_name: z.ZodString;
|
|
94
|
+
}, "strip", z.ZodTypeAny, {
|
|
95
|
+
id: string | number;
|
|
96
|
+
tag_name: string;
|
|
97
|
+
}, {
|
|
98
|
+
id: string | number;
|
|
99
|
+
tag_name: string;
|
|
100
|
+
}>, "many">>;
|
|
101
|
+
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
102
|
+
next_cursor: z.ZodNullable<z.ZodString>;
|
|
103
|
+
total_estimate: z.ZodNullable<z.ZodNumber>;
|
|
104
|
+
request_id: z.ZodString;
|
|
105
|
+
}, "strip", z.ZodTypeAny, {
|
|
106
|
+
request_id: string;
|
|
107
|
+
category_id: string | number;
|
|
108
|
+
assets: z.objectOutputType<{
|
|
109
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
110
|
+
display_file_name: z.ZodOptional<z.ZodString>;
|
|
111
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
112
|
+
category_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
113
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
114
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
115
|
+
tag_name: z.ZodString;
|
|
116
|
+
}, "strip", z.ZodTypeAny, {
|
|
117
|
+
id: string | number;
|
|
118
|
+
tag_name: string;
|
|
119
|
+
}, {
|
|
120
|
+
id: string | number;
|
|
121
|
+
tag_name: string;
|
|
122
|
+
}>, "many">>;
|
|
123
|
+
}, z.ZodTypeAny, "passthrough">[];
|
|
124
|
+
next_cursor: string | null;
|
|
125
|
+
total_estimate: number | null;
|
|
126
|
+
subcategories: {
|
|
127
|
+
workspace_id: string | number;
|
|
128
|
+
id: string | number;
|
|
129
|
+
folder_name?: string | null | undefined;
|
|
130
|
+
parent_id?: string | number | null | undefined;
|
|
131
|
+
user_id?: string | number | null | undefined;
|
|
132
|
+
created_at?: string | null | undefined;
|
|
133
|
+
updated_at?: string | null | undefined;
|
|
134
|
+
category_path?: string | null | undefined;
|
|
135
|
+
integration_type?: number | undefined;
|
|
136
|
+
}[];
|
|
137
|
+
}, {
|
|
138
|
+
request_id: string;
|
|
139
|
+
category_id: string | number;
|
|
140
|
+
assets: z.objectInputType<{
|
|
141
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
142
|
+
display_file_name: z.ZodOptional<z.ZodString>;
|
|
143
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
144
|
+
category_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
145
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
146
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
147
|
+
tag_name: z.ZodString;
|
|
148
|
+
}, "strip", z.ZodTypeAny, {
|
|
149
|
+
id: string | number;
|
|
150
|
+
tag_name: string;
|
|
151
|
+
}, {
|
|
152
|
+
id: string | number;
|
|
153
|
+
tag_name: string;
|
|
154
|
+
}>, "many">>;
|
|
155
|
+
}, z.ZodTypeAny, "passthrough">[];
|
|
156
|
+
next_cursor: string | null;
|
|
157
|
+
total_estimate: number | null;
|
|
158
|
+
subcategories: {
|
|
159
|
+
workspace_id: string | number;
|
|
160
|
+
id: string | number;
|
|
161
|
+
folder_name?: string | null | undefined;
|
|
162
|
+
parent_id?: string | number | null | undefined;
|
|
163
|
+
user_id?: string | number | null | undefined;
|
|
164
|
+
created_at?: string | null | undefined;
|
|
165
|
+
updated_at?: string | null | undefined;
|
|
166
|
+
category_path?: string | null | undefined;
|
|
167
|
+
integration_type?: number | undefined;
|
|
168
|
+
}[];
|
|
169
|
+
}>;
|
|
170
|
+
export type ViewCategoryContentsOutput = z.infer<typeof ViewCategoryContentsOutputSchema>;
|
|
171
|
+
export type ViewCategoryContentsClient = Pick<CollageClient, 'listSubCategories' | 'listAssetsByCategory'>;
|
|
172
|
+
export declare const VIEW_CATEGORY_CONTENTS_DESCRIPTION: string;
|
|
173
|
+
export declare function buildViewCategoryContentsHandler(client: ViewCategoryContentsClient): (args: ViewCategoryContentsInput) => Promise<{
|
|
174
|
+
isError: boolean;
|
|
175
|
+
content: {
|
|
176
|
+
type: "text";
|
|
177
|
+
text: string;
|
|
178
|
+
}[];
|
|
179
|
+
structuredContent: {
|
|
180
|
+
error: {
|
|
181
|
+
code: "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "VALIDATION" | "RATE_LIMITED" | "UPSTREAM" | "CONFIRMATION_STALE" | "CONFIRMATION_MISSING" | "CONFIRMATION_STATE_DIVERGED" | "ENTITLEMENT" | "INTERNAL";
|
|
182
|
+
message: string;
|
|
183
|
+
retriable: boolean;
|
|
184
|
+
cause?: z.objectOutputType<{
|
|
185
|
+
upstream_status: z.ZodOptional<z.ZodNumber>;
|
|
186
|
+
request_id: z.ZodOptional<z.ZodString>;
|
|
187
|
+
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
188
|
+
};
|
|
189
|
+
request_id: string;
|
|
190
|
+
};
|
|
191
|
+
} | {
|
|
192
|
+
content: {
|
|
193
|
+
type: "text";
|
|
194
|
+
text: string;
|
|
195
|
+
}[];
|
|
196
|
+
structuredContent: {
|
|
197
|
+
request_id: string;
|
|
198
|
+
category_id: string | number;
|
|
199
|
+
assets: z.objectOutputType<{
|
|
200
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
201
|
+
display_file_name: z.ZodOptional<z.ZodString>;
|
|
202
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
203
|
+
category_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
204
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
205
|
+
id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
206
|
+
tag_name: z.ZodString;
|
|
207
|
+
}, "strip", z.ZodTypeAny, {
|
|
208
|
+
id: string | number;
|
|
209
|
+
tag_name: string;
|
|
210
|
+
}, {
|
|
211
|
+
id: string | number;
|
|
212
|
+
tag_name: string;
|
|
213
|
+
}>, "many">>;
|
|
214
|
+
}, z.ZodTypeAny, "passthrough">[];
|
|
215
|
+
next_cursor: string | null;
|
|
216
|
+
total_estimate: number | null;
|
|
217
|
+
subcategories: {
|
|
218
|
+
workspace_id: string | number;
|
|
219
|
+
id: string | number;
|
|
220
|
+
folder_name?: string | null | undefined;
|
|
221
|
+
parent_id?: string | number | null | undefined;
|
|
222
|
+
user_id?: string | number | null | undefined;
|
|
223
|
+
created_at?: string | null | undefined;
|
|
224
|
+
updated_at?: string | null | undefined;
|
|
225
|
+
category_path?: string | null | undefined;
|
|
226
|
+
integration_type?: number | undefined;
|
|
227
|
+
}[];
|
|
228
|
+
};
|
|
229
|
+
isError?: undefined;
|
|
230
|
+
}>;
|
|
231
|
+
//# sourceMappingURL=view-category-contents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-category-contents.d.ts","sourceRoot":"","sources":["../../src/tools/view-category-contents.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAalD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;EAM1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,aAAa,EACb,mBAAmB,GAAG,sBAAsB,CAC7C,CAAC;AAEF,eAAO,MAAM,kCAAkC,QAGc,CAAC;AAE9D,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,0BAA0B,IAEpB,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2E9C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// ── view_category_contents (read-only) ──────────────────────────────
|
|
2
|
+
// Lists the immediate sub-categories AND paginated assets inside a given
|
|
3
|
+
// category id. Backed by:
|
|
4
|
+
// - GET /digital-assets/category/sub-category-list (full child list)
|
|
5
|
+
// - GET /digital-assets/category/view-files-with-category (paginated)
|
|
6
|
+
//
|
|
7
|
+
// Sub-categories are returned in full on every call (folder children are
|
|
8
|
+
// typically small). Assets are upstream-paginated (1-based pages); we map
|
|
9
|
+
// our base64 offset cursor onto upstream page numbers the same way
|
|
10
|
+
// list_share_links does.
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import { buildPaginatedResponse, clampPageSize, decodeCursor, } from '../conventions/pagination.js';
|
|
13
|
+
import { CategorySchema, PaginatedAssetRowSchema, } from '../types.js';
|
|
14
|
+
export const ViewCategoryContentsInputSchema = z.object({
|
|
15
|
+
category_id: z.union([z.number().int().positive(), z.string().min(1)]),
|
|
16
|
+
cursor: z.string().optional(),
|
|
17
|
+
page_size: z.number().int().min(1).max(500).optional(),
|
|
18
|
+
sort_by: z.enum(['ASC', 'DESC']).optional(),
|
|
19
|
+
sort_value: z.string().optional(),
|
|
20
|
+
});
|
|
21
|
+
export const ViewCategoryContentsOutputSchema = z.object({
|
|
22
|
+
category_id: z.union([z.number(), z.string()]),
|
|
23
|
+
subcategories: z.array(CategorySchema),
|
|
24
|
+
assets: z.array(PaginatedAssetRowSchema),
|
|
25
|
+
next_cursor: z.string().nullable(),
|
|
26
|
+
total_estimate: z.number().nullable(),
|
|
27
|
+
request_id: z.string(),
|
|
28
|
+
});
|
|
29
|
+
export const VIEW_CATEGORY_CONTENTS_DESCRIPTION = 'Browse one folder. Returns the folder\'s immediate sub-folders (full ' +
|
|
30
|
+
'list) and a cursor-paginated page of assets that live directly inside ' +
|
|
31
|
+
'it. Pass `category_id` from `list_categories`. Read-only.';
|
|
32
|
+
export function buildViewCategoryContentsHandler(client) {
|
|
33
|
+
return async (args) => {
|
|
34
|
+
const pageSize = clampPageSize(args.page_size);
|
|
35
|
+
const offset = args.cursor !== undefined ? decodeCursor(args.cursor) : 0;
|
|
36
|
+
const page = Math.floor(offset / pageSize) + 1;
|
|
37
|
+
const subResult = await client.listSubCategories(args.category_id);
|
|
38
|
+
if (!subResult.ok) {
|
|
39
|
+
return {
|
|
40
|
+
isError: true,
|
|
41
|
+
content: [
|
|
42
|
+
{
|
|
43
|
+
type: 'text',
|
|
44
|
+
text: `view_category_contents failed: ${subResult.error.code} — ${subResult.error.message}`,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
structuredContent: {
|
|
48
|
+
error: subResult.error,
|
|
49
|
+
request_id: subResult.request_id,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const assetOpts = {};
|
|
54
|
+
if (args.sort_by !== undefined)
|
|
55
|
+
assetOpts.sortBy = args.sort_by;
|
|
56
|
+
if (args.sort_value !== undefined)
|
|
57
|
+
assetOpts.sortValue = args.sort_value;
|
|
58
|
+
const assetResult = await client.listAssetsByCategory(args.category_id, page, assetOpts);
|
|
59
|
+
if (!assetResult.ok) {
|
|
60
|
+
return {
|
|
61
|
+
isError: true,
|
|
62
|
+
content: [
|
|
63
|
+
{
|
|
64
|
+
type: 'text',
|
|
65
|
+
text: `view_category_contents failed: ${assetResult.error.code} — ${assetResult.error.message}`,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
structuredContent: {
|
|
69
|
+
error: assetResult.error,
|
|
70
|
+
request_id: assetResult.request_id,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const subcategories = subResult.data;
|
|
75
|
+
const assets = assetResult.data.assets;
|
|
76
|
+
const total = assetResult.data.total;
|
|
77
|
+
const paged = buildPaginatedResponse(assets, offset, pageSize, total);
|
|
78
|
+
const output = {
|
|
79
|
+
category_id: args.category_id,
|
|
80
|
+
subcategories,
|
|
81
|
+
assets: paged.items,
|
|
82
|
+
next_cursor: paged.next_cursor,
|
|
83
|
+
total_estimate: paged.total_estimate,
|
|
84
|
+
request_id: assetResult.request_id,
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
content: [
|
|
88
|
+
{
|
|
89
|
+
type: 'text',
|
|
90
|
+
text: JSON.stringify(output, null, 2),
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
structuredContent: output,
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=view-category-contents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-category-contents.js","sourceRoot":"","sources":["../../src/tools/view-category-contents.ts"],"names":[],"mappings":"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"}
|