@withpica/mcp-server 2.5.4 → 2.6.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/dist/apps/download.d.ts +2 -0
- package/dist/apps/download.d.ts.map +1 -0
- package/dist/apps/download.js +125 -0
- package/dist/apps/download.js.map +1 -0
- package/dist/apps/shared.d.ts +11 -0
- package/dist/apps/shared.d.ts.map +1 -1
- package/dist/apps/shared.js +212 -0
- package/dist/apps/shared.js.map +1 -1
- package/dist/apps/upload.d.ts +2 -0
- package/dist/apps/upload.d.ts.map +1 -0
- package/dist/apps/upload.js +280 -0
- package/dist/apps/upload.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -1
- package/dist/config.js.map +1 -1
- package/dist/resources/index.d.ts +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +39 -8
- package/dist/resources/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -6
- package/dist/server.js.map +1 -1
- package/dist/tools/agreement-types.d.ts +1 -1
- package/dist/tools/agreement-types.d.ts.map +1 -1
- package/dist/tools/agreement-types.js +2 -2
- package/dist/tools/agreement-types.js.map +1 -1
- package/dist/tools/agreements.d.ts +1 -1
- package/dist/tools/agreements.d.ts.map +1 -1
- package/dist/tools/agreements.js +2 -2
- package/dist/tools/agreements.js.map +1 -1
- package/dist/tools/analytics.d.ts +1 -1
- package/dist/tools/analytics.d.ts.map +1 -1
- package/dist/tools/analytics.js +1 -1
- package/dist/tools/analytics.js.map +1 -1
- package/dist/tools/app-tools.d.ts +8 -5
- package/dist/tools/app-tools.d.ts.map +1 -1
- package/dist/tools/app-tools.js +215 -54
- package/dist/tools/app-tools.js.map +1 -1
- package/dist/tools/assets.d.ts +1 -1
- package/dist/tools/assets.d.ts.map +1 -1
- package/dist/tools/assets.js +215 -14
- package/dist/tools/assets.js.map +1 -1
- package/dist/tools/audio-files.d.ts +1 -1
- package/dist/tools/audio-files.d.ts.map +1 -1
- package/dist/tools/audio-files.js +2 -2
- package/dist/tools/audio-files.js.map +1 -1
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +8 -3
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/bulk.d.ts +1 -1
- package/dist/tools/bulk.d.ts.map +1 -1
- package/dist/tools/bulk.js +1 -1
- package/dist/tools/bulk.js.map +1 -1
- package/dist/tools/calendar.d.ts +1 -1
- package/dist/tools/calendar.d.ts.map +1 -1
- package/dist/tools/calendar.js +1 -1
- package/dist/tools/calendar.js.map +1 -1
- package/dist/tools/collaborators.d.ts +1 -1
- package/dist/tools/collaborators.d.ts.map +1 -1
- package/dist/tools/collaborators.js +1 -1
- package/dist/tools/collaborators.js.map +1 -1
- package/dist/tools/comparisons.d.ts +1 -1
- package/dist/tools/comparisons.d.ts.map +1 -1
- package/dist/tools/comparisons.js +1 -1
- package/dist/tools/comparisons.js.map +1 -1
- package/dist/tools/credits.d.ts +1 -1
- package/dist/tools/credits.d.ts.map +1 -1
- package/dist/tools/credits.js +2 -2
- package/dist/tools/credits.js.map +1 -1
- package/dist/tools/dashboard.d.ts +1 -1
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +1 -1
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/directory.d.ts +1 -1
- package/dist/tools/directory.d.ts.map +1 -1
- package/dist/tools/directory.js +1 -1
- package/dist/tools/directory.js.map +1 -1
- package/dist/tools/discovery.d.ts +28 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +560 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/disputes.d.ts +1 -1
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +1 -1
- package/dist/tools/disputes.js.map +1 -1
- package/dist/tools/documents.d.ts +1 -1
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +1 -1
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/duplicates.d.ts +1 -1
- package/dist/tools/duplicates.d.ts.map +1 -1
- package/dist/tools/duplicates.js +5 -3
- package/dist/tools/duplicates.js.map +1 -1
- package/dist/tools/enrichment.d.ts +1 -1
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +3 -3
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/exports.d.ts +1 -1
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/exports.js +2 -2
- package/dist/tools/exports.js.map +1 -1
- package/dist/tools/import-documents.d.ts +1 -1
- package/dist/tools/import-documents.d.ts.map +1 -1
- package/dist/tools/import-documents.js +1 -1
- package/dist/tools/import-documents.js.map +1 -1
- package/dist/tools/import.d.ts +1 -1
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +1 -1
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/index.d.ts +8 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +43 -16
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/integrations.d.ts +1 -1
- package/dist/tools/integrations.d.ts.map +1 -1
- package/dist/tools/integrations.js +1 -1
- package/dist/tools/integrations.js.map +1 -1
- package/dist/tools/licensing.d.ts +1 -1
- package/dist/tools/licensing.d.ts.map +1 -1
- package/dist/tools/licensing.js +1 -1
- package/dist/tools/licensing.js.map +1 -1
- package/dist/tools/memory.d.ts +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/memory.js +1 -1
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +15 -3
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/multimedia.d.ts +1 -1
- package/dist/tools/multimedia.d.ts.map +1 -1
- package/dist/tools/multimedia.js +1 -1
- package/dist/tools/multimedia.js.map +1 -1
- package/dist/tools/notes.d.ts +1 -1
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +1 -1
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/notifications.d.ts +1 -1
- package/dist/tools/notifications.d.ts.map +1 -1
- package/dist/tools/notifications.js +1 -1
- package/dist/tools/notifications.js.map +1 -1
- package/dist/tools/people.d.ts +1 -1
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +2 -2
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/projects.d.ts +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +1 -1
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/publishers.d.ts +1 -1
- package/dist/tools/publishers.d.ts.map +1 -1
- package/dist/tools/publishers.js +1 -1
- package/dist/tools/publishers.js.map +1 -1
- package/dist/tools/purchases.d.ts +1 -1
- package/dist/tools/purchases.d.ts.map +1 -1
- package/dist/tools/purchases.js +1 -1
- package/dist/tools/purchases.js.map +1 -1
- package/dist/tools/recordings.d.ts +1 -1
- package/dist/tools/recordings.d.ts.map +1 -1
- package/dist/tools/recordings.js +1 -1
- package/dist/tools/recordings.js.map +1 -1
- package/dist/tools/releases.d.ts +1 -1
- package/dist/tools/releases.d.ts.map +1 -1
- package/dist/tools/releases.js +1 -1
- package/dist/tools/releases.js.map +1 -1
- package/dist/tools/royalties.d.ts +1 -1
- package/dist/tools/royalties.d.ts.map +1 -1
- package/dist/tools/royalties.js +1 -1
- package/dist/tools/royalties.js.map +1 -1
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +1 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/send.d.ts +1 -1
- package/dist/tools/send.d.ts.map +1 -1
- package/dist/tools/send.js +1 -1
- package/dist/tools/send.js.map +1 -1
- package/dist/tools/sessions.d.ts +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +1 -1
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/settings.d.ts +1 -1
- package/dist/tools/settings.d.ts.map +1 -1
- package/dist/tools/settings.js +1 -1
- package/dist/tools/settings.js.map +1 -1
- package/dist/tools/share-links.d.ts +1 -1
- package/dist/tools/share-links.d.ts.map +1 -1
- package/dist/tools/share-links.js +1 -1
- package/dist/tools/share-links.js.map +1 -1
- package/dist/tools/split-sheets.d.ts +1 -1
- package/dist/tools/split-sheets.d.ts.map +1 -1
- package/dist/tools/split-sheets.js +1 -1
- package/dist/tools/split-sheets.js.map +1 -1
- package/dist/tools/team.d.ts +1 -1
- package/dist/tools/team.d.ts.map +1 -1
- package/dist/tools/team.js +1 -1
- package/dist/tools/team.js.map +1 -1
- package/dist/tools/telegram.d.ts +1 -1
- package/dist/tools/telegram.d.ts.map +1 -1
- package/dist/tools/telegram.js +1 -1
- package/dist/tools/telegram.js.map +1 -1
- package/dist/tools/uploads.d.ts +1 -1
- package/dist/tools/uploads.d.ts.map +1 -1
- package/dist/tools/uploads.js +1 -1
- package/dist/tools/uploads.js.map +1 -1
- package/dist/tools/works.d.ts +1 -1
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +1 -1
- package/dist/tools/works.js.map +1 -1
- package/package.json +3 -1
- package/.mcpregistry_github_token +0 -1
- package/.mcpregistry_registry_token +0 -1
- package/dist/apps/briefing.d.ts +0 -2
- package/dist/apps/briefing.d.ts.map +0 -1
- package/dist/apps/briefing.js +0 -308
- package/dist/apps/briefing.js.map +0 -1
- package/dist/pica-sdk.d.ts +0 -1181
- package/dist/pica-sdk.d.ts.map +0 -1
- package/dist/pica-sdk.js +0 -1419
- package/dist/pica-sdk.js.map +0 -1
- package/dist/tools/health.d.ts +0 -17
- package/dist/tools/health.d.ts.map +0 -1
- package/dist/tools/health.js +0 -67
- package/dist/tools/health.js.map +0 -1
- package/dist/tools/pica-score.d.ts +0 -15
- package/dist/tools/pica-score.d.ts.map +0 -1
- package/dist/tools/pica-score.js +0 -28
- package/dist/tools/pica-score.js.map +0 -1
- package/dist/tools/registration.d.ts +0 -16
- package/dist/tools/registration.d.ts.map +0 -1
- package/dist/tools/registration.js +0 -50
- package/dist/tools/registration.js.map +0 -1
- package/dist/utils/audit.d.ts +0 -28
- package/dist/utils/audit.d.ts.map +0 -1
- package/dist/utils/audit.js +0 -28
- package/dist/utils/audit.js.map +0 -1
- package/dist/utils/confirmation.d.ts +0 -12
- package/dist/utils/confirmation.d.ts.map +0 -1
- package/dist/utils/confirmation.js +0 -78
- package/dist/utils/confirmation.js.map +0 -1
- package/dist/utils/credentials.d.ts +0 -11
- package/dist/utils/credentials.d.ts.map +0 -1
- package/dist/utils/credentials.js +0 -47
- package/dist/utils/credentials.js.map +0 -1
- package/dist/utils/credit-gate.d.ts +0 -17
- package/dist/utils/credit-gate.d.ts.map +0 -1
- package/dist/utils/credit-gate.js +0 -100
- package/dist/utils/credit-gate.js.map +0 -1
- package/dist/utils/enrichment-format.d.ts +0 -31
- package/dist/utils/enrichment-format.d.ts.map +0 -1
- package/dist/utils/enrichment-format.js +0 -69
- package/dist/utils/enrichment-format.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -29
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -139
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/formatting.d.ts +0 -64
- package/dist/utils/formatting.d.ts.map +0 -1
- package/dist/utils/formatting.js +0 -153
- package/dist/utils/formatting.js.map +0 -1
- package/dist/utils/mpp.d.ts +0 -63
- package/dist/utils/mpp.d.ts.map +0 -1
- package/dist/utils/mpp.js +0 -137
- package/dist/utils/mpp.js.map +0 -1
- package/dist/utils/notify-parties.d.ts +0 -35
- package/dist/utils/notify-parties.d.ts.map +0 -1
- package/dist/utils/notify-parties.js +0 -59
- package/dist/utils/notify-parties.js.map +0 -1
- package/server.json +0 -30
package/dist/tools/app-tools.js
CHANGED
|
@@ -1,87 +1,248 @@
|
|
|
1
1
|
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
import { ExportTools } from "./exports.js";
|
|
3
|
+
function formatBytes(bytes) {
|
|
4
|
+
if (bytes == null || isNaN(bytes))
|
|
5
|
+
return "";
|
|
6
|
+
if (bytes < 1024)
|
|
7
|
+
return `${bytes} B`;
|
|
8
|
+
if (bytes < 1024 * 1024)
|
|
9
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
10
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
11
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
12
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
|
|
13
|
+
}
|
|
2
14
|
export class AppTools {
|
|
3
15
|
pica;
|
|
16
|
+
exportTools;
|
|
4
17
|
constructor(pica) {
|
|
5
18
|
this.pica = pica;
|
|
19
|
+
this.exportTools = new ExportTools(pica);
|
|
6
20
|
}
|
|
7
21
|
getTools() {
|
|
8
22
|
return [
|
|
9
23
|
{
|
|
10
24
|
definition: {
|
|
11
|
-
name: "
|
|
12
|
-
description: "
|
|
13
|
-
"
|
|
14
|
-
"
|
|
25
|
+
name: "pica_upload",
|
|
26
|
+
description: "Open a file upload card for the user to drop files in. Use when the user " +
|
|
27
|
+
"has files on their device that PICA needs — audio, photos, documents, stems, " +
|
|
28
|
+
"session files, anything. Returns metadata for each uploaded file " +
|
|
29
|
+
"(id, url, mime_type, size) so you can link them to works, recordings, " +
|
|
30
|
+
"assets, agreements, or wherever they belong. Alternative for programmatic " +
|
|
31
|
+
"uploads: call pica_upload_file + pica_upload_complete directly.",
|
|
32
|
+
inputSchema: {
|
|
33
|
+
type: "object",
|
|
34
|
+
properties: {
|
|
35
|
+
accept: {
|
|
36
|
+
type: "string",
|
|
37
|
+
enum: ["image", "audio", "video", "document", "any"],
|
|
38
|
+
description: "Filter the file picker. 'audio' routes through pica_audio_presigned_upload " +
|
|
39
|
+
"for automatic BPM/key analysis. Defaults to 'any'.",
|
|
40
|
+
},
|
|
41
|
+
purpose: {
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "Human-readable hint shown in the card heading (e.g. 'session stems', " +
|
|
44
|
+
"'rights evidence', 'gear photos'). Does not affect how files are stored.",
|
|
45
|
+
},
|
|
46
|
+
max_files: {
|
|
47
|
+
type: "number",
|
|
48
|
+
description: "Maximum number of files. Defaults to unlimited.",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
_meta: {
|
|
53
|
+
ui: { resourceUri: "ui://pica/upload" },
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
executor: this.upload.bind(this),
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
definition: {
|
|
60
|
+
name: "pica_download",
|
|
61
|
+
description: "Open a download card for a file PICA has produced. Use after any export " +
|
|
62
|
+
"tool (pica_export_catalog_csv, pica_export_catalog_asset_report, " +
|
|
63
|
+
"pica_export_industry_ready, pica_export_song_registration, pica_export_ai_consent, " +
|
|
64
|
+
"etc.) to deliver the file directly to the user's device. The card shows file " +
|
|
65
|
+
"name, size, type, and a download button.",
|
|
15
66
|
inputSchema: {
|
|
16
67
|
type: "object",
|
|
17
|
-
properties: {
|
|
68
|
+
properties: {
|
|
69
|
+
url: {
|
|
70
|
+
type: "string",
|
|
71
|
+
description: "Presigned download URL (required)",
|
|
72
|
+
},
|
|
73
|
+
filename: {
|
|
74
|
+
type: "string",
|
|
75
|
+
description: "Suggested filename for the download (required)",
|
|
76
|
+
},
|
|
77
|
+
mime_type: {
|
|
78
|
+
type: "string",
|
|
79
|
+
description: "MIME type (e.g. 'application/pdf', 'text/csv')",
|
|
80
|
+
},
|
|
81
|
+
size: {
|
|
82
|
+
type: "number",
|
|
83
|
+
description: "File size in bytes, if known",
|
|
84
|
+
},
|
|
85
|
+
description: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "Short description of what the file contains",
|
|
88
|
+
},
|
|
89
|
+
expires_at: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "ISO timestamp when the presigned URL expires. Card warns user if download isn't started before then.",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
required: ["url", "filename"],
|
|
18
95
|
},
|
|
19
96
|
_meta: {
|
|
20
|
-
ui: { resourceUri: "ui://pica/
|
|
97
|
+
ui: { resourceUri: "ui://pica/download" },
|
|
21
98
|
},
|
|
22
99
|
},
|
|
23
|
-
executor: this.
|
|
100
|
+
executor: this.download.bind(this),
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
definition: {
|
|
104
|
+
name: "pica_car_preview",
|
|
105
|
+
description: "Generate a Catalog Asset Report (CAR) PDF/ZIP and deliver it via the download card. " +
|
|
106
|
+
"Thin orchestration wrapper around pica_export_catalog_asset_report — runs the same " +
|
|
107
|
+
"credit-gated export (5 credits) then returns a download-shaped payload that renders " +
|
|
108
|
+
"in the ui://pica/download card. " +
|
|
109
|
+
"IMPORTANT: Before calling, confirm verbally with the user that the catalog data is " +
|
|
110
|
+
"accurate and they attest to its completeness. The 'lending' format is a " +
|
|
111
|
+
"legally-weighted export — the user must verbally attest before this tool is called. " +
|
|
112
|
+
"Attestation does not happen inside the card; it happens in conversation.",
|
|
113
|
+
inputSchema: {
|
|
114
|
+
type: "object",
|
|
115
|
+
properties: {
|
|
116
|
+
format: {
|
|
117
|
+
type: "string",
|
|
118
|
+
enum: ["assessment", "lending"],
|
|
119
|
+
description: "Stage of the export. 'assessment' is an internal/preview run; 'lending' is " +
|
|
120
|
+
"the legally-weighted version (requires verbal user attestation before calling). " +
|
|
121
|
+
"Defaults to 'assessment'.",
|
|
122
|
+
},
|
|
123
|
+
sections: {
|
|
124
|
+
type: "object",
|
|
125
|
+
description: "Which sections to include. Ownership is always included. Same shape as " +
|
|
126
|
+
"pica_export_catalog_asset_report.",
|
|
127
|
+
properties: {
|
|
128
|
+
valuation: { type: "boolean" },
|
|
129
|
+
assets: { type: "boolean" },
|
|
130
|
+
agreements: { type: "boolean" },
|
|
131
|
+
intelligence: { type: "boolean" },
|
|
132
|
+
audio: { type: "boolean" },
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
_meta: {
|
|
138
|
+
ui: { resourceUri: "ui://pica/download" },
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
executor: this.carPreview.bind(this),
|
|
24
142
|
},
|
|
25
143
|
];
|
|
26
144
|
}
|
|
27
|
-
async
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
145
|
+
async carPreview(args) {
|
|
146
|
+
const format = args.format ?? "assessment";
|
|
147
|
+
// Reuse the credit-gated executor from ExportTools so we don't double-charge
|
|
148
|
+
// and gate semantics stay in one place.
|
|
149
|
+
const carTool = this.exportTools
|
|
150
|
+
.getTools()
|
|
151
|
+
.find((t) => t.definition.name === "pica_export_catalog_asset_report");
|
|
152
|
+
if (!carTool) {
|
|
153
|
+
throw new Error("pica_export_catalog_asset_report not found — ExportTools wiring changed");
|
|
154
|
+
}
|
|
155
|
+
// Credit-gate refusal throws before returning, so any non-throwing result
|
|
156
|
+
// here is a success envelope from formatSuccess(summary, data).
|
|
157
|
+
const carResult = await carTool.executor({ sections: args.sections });
|
|
158
|
+
let data = null;
|
|
159
|
+
try {
|
|
160
|
+
const text = carResult.content?.[0]?.text ?? "";
|
|
161
|
+
const parsed = JSON.parse(text);
|
|
162
|
+
data = parsed?.data ?? parsed;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
data = null;
|
|
166
|
+
}
|
|
167
|
+
if (!data || (!data.download_url && !data.url)) {
|
|
168
|
+
// Success envelope without a URL means the underlying tool changed its
|
|
169
|
+
// output shape — fail loudly instead of silently leaking the raw result.
|
|
170
|
+
throw new Error("pica_car_preview: underlying export returned success without a download URL");
|
|
171
|
+
}
|
|
172
|
+
const url = data.download_url ?? data.url;
|
|
173
|
+
const filename = data.filename ??
|
|
174
|
+
(url.split("/").pop()?.split("?")[0] || "catalog-asset-report.pdf");
|
|
175
|
+
const size = data.file_size_bytes ?? data.size ?? null;
|
|
176
|
+
const mime_type = data.mime_type ??
|
|
177
|
+
(filename.endsWith(".zip") ? "application/zip" : "application/pdf");
|
|
178
|
+
const expires_at = data.expires_at ?? null;
|
|
179
|
+
const workCount = data.work_count ?? data.works_included ?? null;
|
|
180
|
+
const description = `catalog asset report${workCount ? ` — ${workCount} works` : ""}, ${format} format`;
|
|
181
|
+
const sizeLabel = size != null ? ` (${formatBytes(size)})` : "";
|
|
182
|
+
const text_summary = `catalog asset report ready: ${filename}${sizeLabel}\nformat: ${format}\ndirect link: ${url}`;
|
|
183
|
+
return {
|
|
184
|
+
content: [
|
|
185
|
+
{
|
|
186
|
+
type: "text",
|
|
187
|
+
text: JSON.stringify({
|
|
188
|
+
text_summary,
|
|
189
|
+
file: {
|
|
190
|
+
url,
|
|
191
|
+
filename,
|
|
192
|
+
mime_type,
|
|
193
|
+
size,
|
|
194
|
+
description,
|
|
195
|
+
expires_at,
|
|
196
|
+
},
|
|
197
|
+
}),
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
async upload(args) {
|
|
203
|
+
const accept = args.accept ?? "any";
|
|
204
|
+
const purpose = args.purpose ?? null;
|
|
205
|
+
const max_files = args.max_files ?? null;
|
|
206
|
+
const textSummary = "ready to receive files — drop them here or dictate paths if i have file access";
|
|
37
207
|
return {
|
|
38
208
|
content: [
|
|
39
209
|
{
|
|
40
210
|
type: "text",
|
|
41
211
|
text: JSON.stringify({
|
|
42
212
|
text_summary: textSummary,
|
|
43
|
-
|
|
44
|
-
attention: Array.isArray(attention) ? attention : [],
|
|
45
|
-
pulse: pulse || null,
|
|
213
|
+
config: { accept, purpose, max_files },
|
|
46
214
|
}),
|
|
47
215
|
},
|
|
48
216
|
],
|
|
49
217
|
};
|
|
50
218
|
}
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
lines.push(`- ${pulse.works_needing_attention} works need attention`);
|
|
79
|
-
}
|
|
80
|
-
if (pulse.upcoming_deadlines) {
|
|
81
|
-
lines.push(`- ${pulse.upcoming_deadlines} upcoming deadlines`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return lines.join("\n");
|
|
219
|
+
async download(args) {
|
|
220
|
+
const url = args.url;
|
|
221
|
+
const filename = args.filename;
|
|
222
|
+
const mime_type = args.mime_type ?? "application/octet-stream";
|
|
223
|
+
const size = args.size ?? null;
|
|
224
|
+
const description = args.description ?? null;
|
|
225
|
+
const expires_at = args.expires_at ?? null;
|
|
226
|
+
const sizeLabel = size != null ? ` (${formatBytes(size)})` : "";
|
|
227
|
+
const textSummary = `download ready: ${filename}${sizeLabel}\ndirect link: ${url}`;
|
|
228
|
+
return {
|
|
229
|
+
content: [
|
|
230
|
+
{
|
|
231
|
+
type: "text",
|
|
232
|
+
text: JSON.stringify({
|
|
233
|
+
text_summary: textSummary,
|
|
234
|
+
file: {
|
|
235
|
+
url,
|
|
236
|
+
filename,
|
|
237
|
+
mime_type,
|
|
238
|
+
size,
|
|
239
|
+
description,
|
|
240
|
+
expires_at,
|
|
241
|
+
},
|
|
242
|
+
}),
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
};
|
|
85
246
|
}
|
|
86
247
|
}
|
|
87
248
|
//# sourceMappingURL=app-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-tools.js","sourceRoot":"","sources":["../../src/tools/app-tools.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAW7D,MAAM,OAAO,QAAQ;IACX,IAAI,CAAa;
|
|
1
|
+
{"version":3,"file":"app-tools.js","sourceRoot":"","sources":["../../src/tools/app-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/assets.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Physical Assets Tools - MCP tools for managing equipment, instruments, and studio gear
|
|
3
3
|
*/
|
|
4
|
-
import { PicaClient } from "
|
|
4
|
+
import { PicaClient } from "@withpica/mcp-sdk";
|
|
5
5
|
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
6
6
|
export declare class AssetsTools {
|
|
7
7
|
private pica;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAoY3D,UAAU;YAWV,YAAY;YA6DZ,WAAW;YAOX,WAAW;YAQX,WAAW;YAOX,UAAU;YAOV,WAAW;CAM1B"}
|