@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 @@
|
|
|
1
|
+
{"version":3,"file":"client-adapters.js","sourceRoot":"","sources":["../../src/tools/client-adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MutatingTool, type ApplyFn, type MutatingToolDeps, type PlanResult } from '../conventions/dry-run/index.js';
|
|
3
|
+
import type { DryRunPlan } from '../conventions/dry-run/index.js';
|
|
4
|
+
import { type McpToolError } from '../conventions/errors.js';
|
|
5
|
+
/**
|
|
6
|
+
* Caller specifies exactly one of `asset_id` (single) or `asset_ids`
|
|
7
|
+
* (explicit list, ≤50). Bulk-via-selection is intentionally deferred to
|
|
8
|
+
* Phase 1.5 — this surface is for small, intentional edits.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CollectionMembershipInputSchema: z.ZodEffects<z.ZodObject<{
|
|
11
|
+
collection_id: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
12
|
+
asset_id: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
13
|
+
asset_ids: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
collection_id: string | number;
|
|
16
|
+
asset_ids?: (string | number)[] | undefined;
|
|
17
|
+
asset_id?: string | number | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
collection_id: string | number;
|
|
20
|
+
asset_ids?: (string | number)[] | undefined;
|
|
21
|
+
asset_id?: string | number | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
collection_id: string | number;
|
|
24
|
+
asset_ids?: (string | number)[] | undefined;
|
|
25
|
+
asset_id?: string | number | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
collection_id: string | number;
|
|
28
|
+
asset_ids?: (string | number)[] | undefined;
|
|
29
|
+
asset_id?: string | number | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
export type CollectionMembershipInput = z.infer<typeof CollectionMembershipInputSchema>;
|
|
32
|
+
export declare const ADD_TO_COLLECTION_DESCRIPTION: string;
|
|
33
|
+
export declare const REMOVE_FROM_COLLECTION_DESCRIPTION: string;
|
|
34
|
+
export interface CollectionMembershipItemResult {
|
|
35
|
+
collection_id: string;
|
|
36
|
+
asset_ids: string[];
|
|
37
|
+
operation: 'add' | 'remove';
|
|
38
|
+
}
|
|
39
|
+
export interface CollectionMembershipClient {
|
|
40
|
+
/**
|
|
41
|
+
* Read the current asset id list for a collection. Used for diff display
|
|
42
|
+
* and for filtering no-op edits in plan().
|
|
43
|
+
*/
|
|
44
|
+
getCollectionAssetIds(collectionId: string): Promise<{
|
|
45
|
+
ok: true;
|
|
46
|
+
asset_ids: string[];
|
|
47
|
+
} | {
|
|
48
|
+
ok: false;
|
|
49
|
+
error: McpToolError;
|
|
50
|
+
}>;
|
|
51
|
+
/** Add the given asset IDs to a collection. */
|
|
52
|
+
addAssetsToCollection(collectionId: string, assetIds: string[]): Promise<{
|
|
53
|
+
ok: true;
|
|
54
|
+
} | {
|
|
55
|
+
ok: false;
|
|
56
|
+
error: McpToolError;
|
|
57
|
+
}>;
|
|
58
|
+
/** Remove the given asset IDs from a collection. */
|
|
59
|
+
removeAssetsFromCollection(collectionId: string, assetIds: string[]): Promise<{
|
|
60
|
+
ok: true;
|
|
61
|
+
} | {
|
|
62
|
+
ok: false;
|
|
63
|
+
error: McpToolError;
|
|
64
|
+
}>;
|
|
65
|
+
}
|
|
66
|
+
type MembershipOp = 'add' | 'remove';
|
|
67
|
+
export interface CollectionMembershipDeps extends MutatingToolDeps<CollectionMembershipInput> {
|
|
68
|
+
client: CollectionMembershipClient;
|
|
69
|
+
}
|
|
70
|
+
declare abstract class CollectionMembershipTool extends MutatingTool<CollectionMembershipInput, CollectionMembershipItemResult> {
|
|
71
|
+
protected readonly chunkSize = 1;
|
|
72
|
+
protected abstract readonly op: MembershipOp;
|
|
73
|
+
protected readonly client: CollectionMembershipClient;
|
|
74
|
+
constructor(deps: CollectionMembershipDeps);
|
|
75
|
+
protected plan(input: CollectionMembershipInput): Promise<PlanResult>;
|
|
76
|
+
protected apply: ApplyFn<CollectionMembershipItemResult>;
|
|
77
|
+
}
|
|
78
|
+
export declare class AddToCollectionTool extends CollectionMembershipTool {
|
|
79
|
+
readonly name = "add_to_collection";
|
|
80
|
+
protected readonly op: MembershipOp;
|
|
81
|
+
}
|
|
82
|
+
export declare class RemoveFromCollectionTool extends CollectionMembershipTool {
|
|
83
|
+
readonly name = "remove_from_collection";
|
|
84
|
+
protected readonly op: MembershipOp;
|
|
85
|
+
}
|
|
86
|
+
export declare function buildAddToCollectionTool(deps: CollectionMembershipDeps): AddToCollectionTool;
|
|
87
|
+
export declare function buildRemoveFromCollectionTool(deps: CollectionMembershipDeps): RemoveFromCollectionTool;
|
|
88
|
+
export type CollectionMembershipPlan = DryRunPlan<CollectionMembershipInput>;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=collection-membership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-membership.d.ts","sourceRoot":"","sources":["../../src/tools/collection-membership.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
// ── add_to_collection / remove_from_collection ──────────────────────
|
|
2
|
+
// Two `MutatingTool` subclasses sharing a common schema, plan skeleton,
|
|
3
|
+
// and per-item executor. Each call adds or removes a single asset OR an
|
|
4
|
+
// explicit ID list (≤50). Bulk variants are deferred to Phase 1.5
|
|
5
|
+
// (`bulk_add_to_collection`, `bulk_remove_from_collection`).
|
|
6
|
+
//
|
|
7
|
+
// Upstream surface:
|
|
8
|
+
// POST digital-assets/collection/{id}/add-assets body: { assets_id: [...] }
|
|
9
|
+
// POST digital-assets/collection/{id}/remove-assets body: { assets_id: [...] }
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { MutatingTool, } from '../conventions/dry-run/index.js';
|
|
12
|
+
import { IdSchema } from '../types.js';
|
|
13
|
+
// ── Shared Input ─────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Caller specifies exactly one of `asset_id` (single) or `asset_ids`
|
|
16
|
+
* (explicit list, ≤50). Bulk-via-selection is intentionally deferred to
|
|
17
|
+
* Phase 1.5 — this surface is for small, intentional edits.
|
|
18
|
+
*/
|
|
19
|
+
export const CollectionMembershipInputSchema = z
|
|
20
|
+
.object({
|
|
21
|
+
collection_id: IdSchema,
|
|
22
|
+
asset_id: IdSchema.optional(),
|
|
23
|
+
asset_ids: z.array(IdSchema).min(1).max(50).optional(),
|
|
24
|
+
})
|
|
25
|
+
.refine((input) => {
|
|
26
|
+
const present = [
|
|
27
|
+
input.asset_id !== undefined,
|
|
28
|
+
input.asset_ids !== undefined,
|
|
29
|
+
].filter(Boolean).length;
|
|
30
|
+
return present === 1;
|
|
31
|
+
}, {
|
|
32
|
+
message: 'Provide exactly one of `asset_id` (single) or `asset_ids` (≤50 IDs).',
|
|
33
|
+
});
|
|
34
|
+
export const ADD_TO_COLLECTION_DESCRIPTION = 'Add a single asset (`asset_id`) OR an explicit ID list (`asset_ids`, ≤50) ' +
|
|
35
|
+
'to a Collage collection. Two-step: first call returns a preview plus a ' +
|
|
36
|
+
'confirmation_token; second call (with the token) applies the change. ' +
|
|
37
|
+
'Bulk-via-selection is deferred to Phase 1.5.';
|
|
38
|
+
export const REMOVE_FROM_COLLECTION_DESCRIPTION = 'Remove a single asset (`asset_id`) OR an explicit ID list (`asset_ids`, ' +
|
|
39
|
+
'≤50) from a Collage collection. Two-step preview/confirm flow. ' +
|
|
40
|
+
'Bulk-via-selection is deferred to Phase 1.5.';
|
|
41
|
+
class CollectionMembershipTool extends MutatingTool {
|
|
42
|
+
chunkSize = 1;
|
|
43
|
+
client;
|
|
44
|
+
constructor(deps) {
|
|
45
|
+
super(deps);
|
|
46
|
+
this.client = deps.client;
|
|
47
|
+
}
|
|
48
|
+
async plan(input) {
|
|
49
|
+
const collectionId = String(input.collection_id);
|
|
50
|
+
const requested = collectIds(input);
|
|
51
|
+
const current = await this.client.getCollectionAssetIds(collectionId);
|
|
52
|
+
if (!current.ok) {
|
|
53
|
+
throw new Error(`failed to read collection ${collectionId} membership: ${current.error.code} — ${current.error.message}`);
|
|
54
|
+
}
|
|
55
|
+
const currentSet = new Set(current.asset_ids);
|
|
56
|
+
let effectiveIds;
|
|
57
|
+
let alreadyMembers = 0;
|
|
58
|
+
let notMembers = 0;
|
|
59
|
+
if (this.op === 'add') {
|
|
60
|
+
effectiveIds = requested.filter((id) => {
|
|
61
|
+
if (currentSet.has(id)) {
|
|
62
|
+
alreadyMembers++;
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
effectiveIds = requested.filter((id) => {
|
|
70
|
+
if (!currentSet.has(id)) {
|
|
71
|
+
notMembers++;
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const before = { asset_ids: [...currentSet] };
|
|
78
|
+
const after = this.op === 'add'
|
|
79
|
+
? { asset_ids: dedupePreserveOrder([...currentSet, ...effectiveIds]) }
|
|
80
|
+
: {
|
|
81
|
+
asset_ids: [...currentSet].filter((id) => !new Set(effectiveIds).has(id)),
|
|
82
|
+
};
|
|
83
|
+
const change = {
|
|
84
|
+
id: collectionId,
|
|
85
|
+
operation: 'update',
|
|
86
|
+
before,
|
|
87
|
+
after,
|
|
88
|
+
metadata: {
|
|
89
|
+
op: this.op,
|
|
90
|
+
requested_ids: requested,
|
|
91
|
+
effective_ids: effectiveIds,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
const riskFlags = [];
|
|
95
|
+
if (effectiveIds.length === 0) {
|
|
96
|
+
riskFlags.push({
|
|
97
|
+
code: this.op === 'add' ? 'noop_add' : 'noop_remove',
|
|
98
|
+
severity: 'info',
|
|
99
|
+
message: this.op === 'add'
|
|
100
|
+
? 'all requested IDs are already in the collection (no-op)'
|
|
101
|
+
: 'none of the requested IDs are in the collection (no-op)',
|
|
102
|
+
count: requested.length,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (this.op === 'add' && alreadyMembers > 0) {
|
|
106
|
+
riskFlags.push({
|
|
107
|
+
code: 'already_member',
|
|
108
|
+
severity: 'info',
|
|
109
|
+
message: 'some requested IDs were already members and will be skipped',
|
|
110
|
+
count: alreadyMembers,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (this.op === 'remove' && notMembers > 0) {
|
|
114
|
+
riskFlags.push({
|
|
115
|
+
code: 'not_member',
|
|
116
|
+
severity: 'info',
|
|
117
|
+
message: 'some requested IDs were not in the collection and will be skipped',
|
|
118
|
+
count: notMembers,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
changes: [change],
|
|
123
|
+
riskFlags,
|
|
124
|
+
extraAggregates: {
|
|
125
|
+
requested: requested.length,
|
|
126
|
+
effective: effectiveIds.length,
|
|
127
|
+
skipped: requested.length - effectiveIds.length,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
apply = async (change) => {
|
|
132
|
+
const meta = (change.metadata ?? {});
|
|
133
|
+
const op = meta.op ?? this.op;
|
|
134
|
+
const effective = meta.effective_ids ?? [];
|
|
135
|
+
if (effective.length === 0) {
|
|
136
|
+
// No-op; report success with empty result so the ledger reflects intent.
|
|
137
|
+
return {
|
|
138
|
+
ok: true,
|
|
139
|
+
result: {
|
|
140
|
+
collection_id: change.id,
|
|
141
|
+
asset_ids: [],
|
|
142
|
+
operation: op,
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
const result = op === 'add'
|
|
147
|
+
? await this.client.addAssetsToCollection(change.id, effective)
|
|
148
|
+
: await this.client.removeAssetsFromCollection(change.id, effective);
|
|
149
|
+
if (!result.ok) {
|
|
150
|
+
return { ok: false, error: result.error };
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
ok: true,
|
|
154
|
+
result: {
|
|
155
|
+
collection_id: change.id,
|
|
156
|
+
asset_ids: effective,
|
|
157
|
+
operation: op,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
// ── Concrete Subclasses ──────────────────────────────────────────────
|
|
163
|
+
export class AddToCollectionTool extends CollectionMembershipTool {
|
|
164
|
+
name = 'add_to_collection';
|
|
165
|
+
op = 'add';
|
|
166
|
+
}
|
|
167
|
+
export class RemoveFromCollectionTool extends CollectionMembershipTool {
|
|
168
|
+
name = 'remove_from_collection';
|
|
169
|
+
op = 'remove';
|
|
170
|
+
}
|
|
171
|
+
export function buildAddToCollectionTool(deps) {
|
|
172
|
+
return new AddToCollectionTool(deps);
|
|
173
|
+
}
|
|
174
|
+
export function buildRemoveFromCollectionTool(deps) {
|
|
175
|
+
return new RemoveFromCollectionTool(deps);
|
|
176
|
+
}
|
|
177
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
178
|
+
function collectIds(input) {
|
|
179
|
+
if (input.asset_id !== undefined) {
|
|
180
|
+
return [String(input.asset_id)];
|
|
181
|
+
}
|
|
182
|
+
return dedupePreserveOrder((input.asset_ids ?? []).map((id) => String(id)));
|
|
183
|
+
}
|
|
184
|
+
function dedupePreserveOrder(ids) {
|
|
185
|
+
const seen = new Set();
|
|
186
|
+
const out = [];
|
|
187
|
+
for (const id of ids) {
|
|
188
|
+
if (!seen.has(id)) {
|
|
189
|
+
seen.add(id);
|
|
190
|
+
out.push(id);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return out;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=collection-membership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-membership.js","sourceRoot":"","sources":["../../src/tools/collection-membership.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MutatingTool, type ApplyFn, type MutatingToolDeps, type PlanResult } from '../conventions/dry-run/index.js';
|
|
3
|
+
import type { DryRunPlan } from '../conventions/dry-run/index.js';
|
|
4
|
+
import { type McpToolError } from '../conventions/errors.js';
|
|
5
|
+
export declare const CreateCollectionInputSchema: z.ZodObject<{
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
/**
|
|
9
|
+
* Optional starter asset IDs to seed the new collection with.
|
|
10
|
+
* Hard-capped at 50 — bulk add is deferred to Phase 1.5.
|
|
11
|
+
*/
|
|
12
|
+
asset_ids: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
name: string;
|
|
15
|
+
description?: string | null | undefined;
|
|
16
|
+
asset_ids?: (string | number)[] | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
name: string;
|
|
19
|
+
description?: string | null | undefined;
|
|
20
|
+
asset_ids?: (string | number)[] | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
export type CreateCollectionInput = z.infer<typeof CreateCollectionInputSchema>;
|
|
23
|
+
export declare const CREATE_COLLECTION_DESCRIPTION: string;
|
|
24
|
+
export interface CreateCollectionItemResult {
|
|
25
|
+
collection_id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
description: string | null;
|
|
28
|
+
asset_ids_added: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface CreateCollectionClient {
|
|
31
|
+
/** Create the collection. Returns the new collection id on success. */
|
|
32
|
+
createCollection(input: {
|
|
33
|
+
name: string;
|
|
34
|
+
description: string | null;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
ok: true;
|
|
37
|
+
collection_id: string;
|
|
38
|
+
} | {
|
|
39
|
+
ok: false;
|
|
40
|
+
error: McpToolError;
|
|
41
|
+
}>;
|
|
42
|
+
/** Add assets to a freshly-created collection. */
|
|
43
|
+
addAssetsToCollection(collectionId: string, assetIds: string[]): Promise<{
|
|
44
|
+
ok: true;
|
|
45
|
+
} | {
|
|
46
|
+
ok: false;
|
|
47
|
+
error: McpToolError;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
export interface CreateCollectionDeps extends MutatingToolDeps<CreateCollectionInput> {
|
|
51
|
+
client: CreateCollectionClient;
|
|
52
|
+
}
|
|
53
|
+
export declare class CreateCollectionTool extends MutatingTool<CreateCollectionInput, CreateCollectionItemResult> {
|
|
54
|
+
readonly name = "create_collection";
|
|
55
|
+
protected readonly chunkSize = 1;
|
|
56
|
+
private readonly client;
|
|
57
|
+
constructor(deps: CreateCollectionDeps);
|
|
58
|
+
protected plan(input: CreateCollectionInput): PlanResult;
|
|
59
|
+
protected apply: ApplyFn<CreateCollectionItemResult>;
|
|
60
|
+
}
|
|
61
|
+
export declare function buildCreateCollectionTool(deps: CreateCollectionDeps): CreateCollectionTool;
|
|
62
|
+
export type CreateCollectionPlan = DryRunPlan<CreateCollectionInput>;
|
|
63
|
+
//# sourceMappingURL=create-collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-collection.d.ts","sourceRoot":"","sources":["../../src/tools/create-collection.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK9E,eAAO,MAAM,2BAA2B;;;IAGtC;;;OAGG;;;;;;;;;;EAEH,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,6BAA6B,QAKO,CAAC;AAIlD,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,gBAAgB,CAAC,KAAK,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,GAAG,OAAO,CACP;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GACnC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CACrC,CAAC;IACF,kDAAkD;IAClD,qBAAqB,CACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CAC/D;AAID,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB,CAAC,qBAAqB,CAAC;IACnF,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,qBAAa,oBAAqB,SAAQ,YAAY,CACpD,qBAAqB,EACrB,0BAA0B,CAC3B;IACC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,mBAA4B,SAAS,KAAK;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,IAAI,EAAE,oBAAoB;IAKtC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,UAAU;IAqDxD,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAgElD;CACH;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,CAEtB;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// ── create_collection ────────────────────────────────────────────────
|
|
2
|
+
// Creates a new Collage collection (a.k.a. "collage") with a name, an
|
|
3
|
+
// optional description, and an optional starter asset list. Wraps the
|
|
4
|
+
// dry-run framework so every call is plan → preview → execute.
|
|
5
|
+
//
|
|
6
|
+
// Upstream surface:
|
|
7
|
+
// POST digital-assets/collection/create
|
|
8
|
+
// body: { name, description }
|
|
9
|
+
// returns: { data: { id, name, description, ... } }
|
|
10
|
+
// POST digital-assets/collection/{id}/add-assets
|
|
11
|
+
// body: { assets_id: number[] | string[] }
|
|
12
|
+
//
|
|
13
|
+
// The starter-asset list is capped at 50 IDs at the schema level; bulk
|
|
14
|
+
// adds are deferred to Phase 1.5 (`bulk_add_to_collection`).
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { MutatingTool, } from '../conventions/dry-run/index.js';
|
|
17
|
+
import { createToolError } from '../conventions/errors.js';
|
|
18
|
+
import { IdSchema } from '../types.js';
|
|
19
|
+
// ── Tool I/O Schema ──────────────────────────────────────────────────
|
|
20
|
+
export const CreateCollectionInputSchema = z.object({
|
|
21
|
+
name: z.string().min(1).max(255),
|
|
22
|
+
description: z.string().max(10_000).nullable().optional(),
|
|
23
|
+
/**
|
|
24
|
+
* Optional starter asset IDs to seed the new collection with.
|
|
25
|
+
* Hard-capped at 50 — bulk add is deferred to Phase 1.5.
|
|
26
|
+
*/
|
|
27
|
+
asset_ids: z.array(IdSchema).max(50).optional(),
|
|
28
|
+
});
|
|
29
|
+
export const CREATE_COLLECTION_DESCRIPTION = 'Create a new Collage collection with a name, optional description, and ' +
|
|
30
|
+
'an optional starter asset list (≤50 IDs). Two-step: first call returns ' +
|
|
31
|
+
'a preview plus a confirmation_token; second call (with the token) ' +
|
|
32
|
+
'executes the create and returns the new collection id plus a per-item ' +
|
|
33
|
+
'add ledger when starter assets were provided.';
|
|
34
|
+
export class CreateCollectionTool extends MutatingTool {
|
|
35
|
+
name = 'create_collection';
|
|
36
|
+
chunkSize = 1;
|
|
37
|
+
client;
|
|
38
|
+
constructor(deps) {
|
|
39
|
+
super(deps);
|
|
40
|
+
this.client = deps.client;
|
|
41
|
+
}
|
|
42
|
+
plan(input) {
|
|
43
|
+
const dedupedIds = dedupeIds(input.asset_ids ?? []);
|
|
44
|
+
const description = input.description ?? null;
|
|
45
|
+
const after = {
|
|
46
|
+
name: input.name,
|
|
47
|
+
description,
|
|
48
|
+
asset_ids: dedupedIds,
|
|
49
|
+
};
|
|
50
|
+
// Single change record for the create. The id is a placeholder until
|
|
51
|
+
// execute() learns the new collection's real id from the upstream
|
|
52
|
+
// response — frameworks expect every change to have a stable id, so we
|
|
53
|
+
// use a deterministic synthetic prefix that survives serialisation.
|
|
54
|
+
const change = {
|
|
55
|
+
id: 'new-collection',
|
|
56
|
+
operation: 'create',
|
|
57
|
+
before: null,
|
|
58
|
+
after,
|
|
59
|
+
metadata: {
|
|
60
|
+
name: input.name,
|
|
61
|
+
description,
|
|
62
|
+
asset_ids: dedupedIds,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
const riskFlags = [];
|
|
66
|
+
const extraAggregates = {
|
|
67
|
+
starter_assets: dedupedIds.length,
|
|
68
|
+
};
|
|
69
|
+
if (dedupedIds.length === 50) {
|
|
70
|
+
riskFlags.push({
|
|
71
|
+
code: 'starter_asset_cap',
|
|
72
|
+
severity: 'info',
|
|
73
|
+
message: 'Starter list is at the 50-asset cap; use bulk_add_to_collection in Phase 1.5 for larger seeds.',
|
|
74
|
+
count: dedupedIds.length,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if ((input.asset_ids ?? []).length !== dedupedIds.length) {
|
|
78
|
+
riskFlags.push({
|
|
79
|
+
code: 'duplicate_starter_ids',
|
|
80
|
+
severity: 'info',
|
|
81
|
+
message: 'duplicate IDs in starter list were collapsed',
|
|
82
|
+
count: (input.asset_ids ?? []).length - dedupedIds.length,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return { changes: [change], riskFlags, extraAggregates };
|
|
86
|
+
}
|
|
87
|
+
apply = async (change) => {
|
|
88
|
+
const meta = (change.metadata ?? {});
|
|
89
|
+
if (typeof meta.name !== 'string' || meta.name.length === 0) {
|
|
90
|
+
return {
|
|
91
|
+
ok: false,
|
|
92
|
+
error: createToolError('VALIDATION', `change ${change.id} missing collection name`),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const description = meta.description ?? null;
|
|
96
|
+
const created = await this.client.createCollection({
|
|
97
|
+
name: meta.name,
|
|
98
|
+
description,
|
|
99
|
+
});
|
|
100
|
+
if (!created.ok) {
|
|
101
|
+
return { ok: false, error: created.error };
|
|
102
|
+
}
|
|
103
|
+
const assetIds = meta.asset_ids ?? [];
|
|
104
|
+
if (assetIds.length === 0) {
|
|
105
|
+
return {
|
|
106
|
+
ok: true,
|
|
107
|
+
result: {
|
|
108
|
+
collection_id: created.collection_id,
|
|
109
|
+
name: meta.name,
|
|
110
|
+
description,
|
|
111
|
+
asset_ids_added: [],
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const added = await this.client.addAssetsToCollection(created.collection_id, assetIds);
|
|
116
|
+
if (!added.ok) {
|
|
117
|
+
// The collection itself was created — surface the partial failure as
|
|
118
|
+
// an UPSTREAM error so the caller can decide whether to retry the add.
|
|
119
|
+
return {
|
|
120
|
+
ok: false,
|
|
121
|
+
error: createToolError('UPSTREAM', `Collection ${created.collection_id} created, but adding ${assetIds.length} starter assets failed: ${added.error.message}`),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
ok: true,
|
|
126
|
+
result: {
|
|
127
|
+
collection_id: created.collection_id,
|
|
128
|
+
name: meta.name,
|
|
129
|
+
description,
|
|
130
|
+
asset_ids_added: assetIds,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function buildCreateCollectionTool(deps) {
|
|
136
|
+
return new CreateCollectionTool(deps);
|
|
137
|
+
}
|
|
138
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
139
|
+
function dedupeIds(ids) {
|
|
140
|
+
const seen = new Set();
|
|
141
|
+
const out = [];
|
|
142
|
+
for (const raw of ids) {
|
|
143
|
+
const id = String(raw);
|
|
144
|
+
if (!seen.has(id)) {
|
|
145
|
+
seen.add(id);
|
|
146
|
+
out.push(id);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=create-collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-collection.js","sourceRoot":"","sources":["../../src/tools/create-collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MutatingTool, type ApplyFn, type MutatingToolDeps, type PlanResult } from '../conventions/dry-run/index.js';
|
|
3
|
+
import type { DryRunPlan } from '../conventions/dry-run/index.js';
|
|
4
|
+
import { type McpToolError } from '../conventions/errors.js';
|
|
5
|
+
export declare const CreateFolderInputSchema: z.ZodObject<{
|
|
6
|
+
folder_name: z.ZodString;
|
|
7
|
+
parent_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
folder_name: string;
|
|
10
|
+
parent_id?: string | number | null | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
folder_name: string;
|
|
13
|
+
parent_id?: string | number | null | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export type CreateFolderInput = z.infer<typeof CreateFolderInputSchema>;
|
|
16
|
+
export declare const CREATE_FOLDER_DESCRIPTION: string;
|
|
17
|
+
export interface CreateFolderItemResult {
|
|
18
|
+
folder_id: string;
|
|
19
|
+
folder_name: string;
|
|
20
|
+
parent_id: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface CreateFolderClient {
|
|
23
|
+
createFolder(input: {
|
|
24
|
+
folder_name: string;
|
|
25
|
+
parent_id: string | number | null;
|
|
26
|
+
}): Promise<{
|
|
27
|
+
ok: true;
|
|
28
|
+
folder_id: string;
|
|
29
|
+
} | {
|
|
30
|
+
ok: false;
|
|
31
|
+
error: McpToolError;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
export interface CreateFolderDeps extends MutatingToolDeps<CreateFolderInput> {
|
|
35
|
+
client: CreateFolderClient;
|
|
36
|
+
}
|
|
37
|
+
export declare class CreateFolderTool extends MutatingTool<CreateFolderInput, CreateFolderItemResult> {
|
|
38
|
+
readonly name = "create_folder";
|
|
39
|
+
protected readonly chunkSize = 1;
|
|
40
|
+
private readonly client;
|
|
41
|
+
constructor(deps: CreateFolderDeps);
|
|
42
|
+
protected plan(input: CreateFolderInput): PlanResult;
|
|
43
|
+
protected apply: ApplyFn<CreateFolderItemResult>;
|
|
44
|
+
}
|
|
45
|
+
export type CreateFolderPlan = DryRunPlan<CreateFolderInput>;
|
|
46
|
+
//# sourceMappingURL=create-folder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-folder.d.ts","sourceRoot":"","sources":["../../src/tools/create-folder.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG9E,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,yBAAyB,QAIiC,CAAC;AAExE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,KAAK,EAAE;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KACnC,GAAG,OAAO,CACP;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC/B;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CACrC,CAAC;CACH;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB,CAAC,iBAAiB,CAAC;IAC3E,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,qBAAa,gBAAiB,SAAQ,YAAY,CAChD,iBAAiB,EACjB,sBAAsB,CACvB;IACC,QAAQ,CAAC,IAAI,mBAAmB;IAChC,mBAA4B,SAAS,KAAK;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAEhC,IAAI,EAAE,gBAAgB;IAKlC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU;IA+BpD,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CA6B9C;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC"}
|