@withpica/mcp-server 1.3.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/.claude/settings.local.json +5 -0
- package/CHANGELOG.md +1850 -0
- package/README.md +304 -0
- package/assets/fonts/GeistSans-Light.woff2 +0 -0
- package/assets/fonts/InstrumentSerif-Italic.woff2 +0 -0
- package/assets/fonts/InstrumentSerif-Regular.woff2 +0 -0
- 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/generated/shared-bundle.d.ts +5 -0
- package/dist/apps/generated/shared-bundle.d.ts.map +1 -0
- package/dist/apps/generated/shared-bundle.js +7 -0
- package/dist/apps/generated/shared-bundle.js.map +1 -0
- package/dist/apps/release.d.ts +2 -0
- package/dist/apps/release.d.ts.map +1 -0
- package/dist/apps/release.js +69 -0
- package/dist/apps/release.js.map +1 -0
- package/dist/apps/shared.d.ts +15 -0
- package/dist/apps/shared.d.ts.map +1 -0
- package/dist/apps/shared.js +480 -0
- package/dist/apps/shared.js.map +1 -0
- 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 +14 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +73 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +86 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +645 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/agent-guide.d.ts +15 -0
- package/dist/resources/agent-guide.d.ts.map +1 -0
- package/dist/resources/agent-guide.js +284 -0
- package/dist/resources/agent-guide.js.map +1 -0
- package/dist/resources/index.d.ts +66 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +510 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/llms-primer.d.ts +2 -0
- package/dist/resources/llms-primer.d.ts.map +1 -0
- package/dist/resources/llms-primer.js +68 -0
- package/dist/resources/llms-primer.js.map +1 -0
- package/dist/resources/required-schemas.generated.d.ts +455 -0
- package/dist/resources/required-schemas.generated.d.ts.map +1 -0
- package/dist/resources/required-schemas.generated.js +1041 -0
- package/dist/resources/required-schemas.generated.js.map +1 -0
- package/dist/resources/required-schemas.source.d.ts +53 -0
- package/dist/resources/required-schemas.source.d.ts.map +1 -0
- package/dist/resources/required-schemas.source.js +493 -0
- package/dist/resources/required-schemas.source.js.map +1 -0
- package/dist/resources/welcome.d.ts +14 -0
- package/dist/resources/welcome.d.ts.map +1 -0
- package/dist/resources/welcome.js +26 -0
- package/dist/resources/welcome.js.map +1 -0
- package/dist/server-instructions.d.ts +60 -0
- package/dist/server-instructions.d.ts.map +1 -0
- package/dist/server-instructions.js +93 -0
- package/dist/server-instructions.js.map +1 -0
- package/dist/server.d.ts +52 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +334 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/access-simulate.d.ts +23 -0
- package/dist/tools/access-simulate.d.ts.map +1 -0
- package/dist/tools/access-simulate.js +162 -0
- package/dist/tools/access-simulate.js.map +1 -0
- package/dist/tools/agent-identity.d.ts +36 -0
- package/dist/tools/agent-identity.d.ts.map +1 -0
- package/dist/tools/agent-identity.js +274 -0
- package/dist/tools/agent-identity.js.map +1 -0
- package/dist/tools/agreement-types.d.ts +27 -0
- package/dist/tools/agreement-types.d.ts.map +1 -0
- package/dist/tools/agreement-types.js +281 -0
- package/dist/tools/agreement-types.js.map +1 -0
- package/dist/tools/agreements.d.ts +20 -0
- package/dist/tools/agreements.d.ts.map +1 -0
- package/dist/tools/agreements.js +282 -0
- package/dist/tools/agreements.js.map +1 -0
- package/dist/tools/analytics.d.ts +20 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +130 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/app-tools.d.ts +15 -0
- package/dist/tools/app-tools.d.ts.map +1 -0
- package/dist/tools/app-tools.js +388 -0
- package/dist/tools/app-tools.js.map +1 -0
- package/dist/tools/assets.d.ts +25 -0
- package/dist/tools/assets.d.ts.map +1 -0
- package/dist/tools/assets.js +454 -0
- package/dist/tools/assets.js.map +1 -0
- package/dist/tools/audio-files.d.ts +20 -0
- package/dist/tools/audio-files.d.ts.map +1 -0
- package/dist/tools/audio-files.js +409 -0
- package/dist/tools/audio-files.js.map +1 -0
- package/dist/tools/audit.d.ts +19 -0
- package/dist/tools/audit.d.ts.map +1 -0
- package/dist/tools/audit.js +58 -0
- package/dist/tools/audit.js.map +1 -0
- package/dist/tools/auth.d.ts +22 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +212 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/bulk.d.ts +22 -0
- package/dist/tools/bulk.d.ts.map +1 -0
- package/dist/tools/bulk.js +164 -0
- package/dist/tools/bulk.js.map +1 -0
- package/dist/tools/calendar.d.ts +15 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +68 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/collaborators.d.ts +21 -0
- package/dist/tools/collaborators.d.ts.map +1 -0
- package/dist/tools/collaborators.js +381 -0
- package/dist/tools/collaborators.js.map +1 -0
- package/dist/tools/comparisons.d.ts +22 -0
- package/dist/tools/comparisons.d.ts.map +1 -0
- package/dist/tools/comparisons.js +80 -0
- package/dist/tools/comparisons.js.map +1 -0
- package/dist/tools/credits.d.ts +39 -0
- package/dist/tools/credits.d.ts.map +1 -0
- package/dist/tools/credits.js +541 -0
- package/dist/tools/credits.js.map +1 -0
- package/dist/tools/custody-hints.d.ts +16 -0
- package/dist/tools/custody-hints.d.ts.map +1 -0
- package/dist/tools/custody-hints.js +27 -0
- package/dist/tools/custody-hints.js.map +1 -0
- package/dist/tools/custody.d.ts +38 -0
- package/dist/tools/custody.d.ts.map +1 -0
- package/dist/tools/custody.js +281 -0
- package/dist/tools/custody.js.map +1 -0
- package/dist/tools/dashboard.d.ts +22 -0
- package/dist/tools/dashboard.d.ts.map +1 -0
- package/dist/tools/dashboard.js +258 -0
- package/dist/tools/dashboard.js.map +1 -0
- package/dist/tools/directory.d.ts +15 -0
- package/dist/tools/directory.d.ts.map +1 -0
- package/dist/tools/directory.js +107 -0
- package/dist/tools/directory.js.map +1 -0
- package/dist/tools/discovery.d.ts +49 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +851 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/disputes.d.ts +18 -0
- package/dist/tools/disputes.d.ts.map +1 -0
- package/dist/tools/disputes.js +62 -0
- package/dist/tools/disputes.js.map +1 -0
- package/dist/tools/documents.d.ts +15 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +37 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/duplicates.d.ts +25 -0
- package/dist/tools/duplicates.d.ts.map +1 -0
- package/dist/tools/duplicates.js +108 -0
- package/dist/tools/duplicates.js.map +1 -0
- package/dist/tools/enrichment.d.ts +56 -0
- package/dist/tools/enrichment.d.ts.map +1 -0
- package/dist/tools/enrichment.js +616 -0
- package/dist/tools/enrichment.js.map +1 -0
- package/dist/tools/exports.d.ts +19 -0
- package/dist/tools/exports.d.ts.map +1 -0
- package/dist/tools/exports.js +184 -0
- package/dist/tools/exports.js.map +1 -0
- package/dist/tools/feedback.d.ts +22 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +100 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/forbidden-keywords.d.ts +62 -0
- package/dist/tools/forbidden-keywords.d.ts.map +1 -0
- package/dist/tools/forbidden-keywords.js +99 -0
- package/dist/tools/forbidden-keywords.js.map +1 -0
- package/dist/tools/gap-hints.d.ts +53 -0
- package/dist/tools/gap-hints.d.ts.map +1 -0
- package/dist/tools/gap-hints.js +245 -0
- package/dist/tools/gap-hints.js.map +1 -0
- package/dist/tools/groups.d.ts +29 -0
- package/dist/tools/groups.d.ts.map +1 -0
- package/dist/tools/groups.js +186 -0
- package/dist/tools/groups.js.map +1 -0
- package/dist/tools/import-documents.d.ts +21 -0
- package/dist/tools/import-documents.d.ts.map +1 -0
- package/dist/tools/import-documents.js +206 -0
- package/dist/tools/import-documents.js.map +1 -0
- package/dist/tools/import.d.ts +31 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +610 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +293 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1182 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/integrations.d.ts +19 -0
- package/dist/tools/integrations.d.ts.map +1 -0
- package/dist/tools/integrations.js +120 -0
- package/dist/tools/integrations.js.map +1 -0
- package/dist/tools/labels.d.ts +20 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +48 -0
- package/dist/tools/labels.js.map +1 -0
- package/dist/tools/licensing.d.ts +40 -0
- package/dist/tools/licensing.d.ts.map +1 -0
- package/dist/tools/licensing.js +436 -0
- package/dist/tools/licensing.js.map +1 -0
- package/dist/tools/memory.d.ts +21 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +120 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/metadata.d.ts +15 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +1532 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/tools/multimedia.d.ts +19 -0
- package/dist/tools/multimedia.d.ts.map +1 -0
- package/dist/tools/multimedia.js +371 -0
- package/dist/tools/multimedia.js.map +1 -0
- package/dist/tools/my-reported-issues.d.ts +32 -0
- package/dist/tools/my-reported-issues.d.ts.map +1 -0
- package/dist/tools/my-reported-issues.js +123 -0
- package/dist/tools/my-reported-issues.js.map +1 -0
- package/dist/tools/notes.d.ts +21 -0
- package/dist/tools/notes.d.ts.map +1 -0
- package/dist/tools/notes.js +115 -0
- package/dist/tools/notes.js.map +1 -0
- package/dist/tools/notifications.d.ts +28 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +417 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/onboarding.d.ts +24 -0
- package/dist/tools/onboarding.d.ts.map +1 -0
- package/dist/tools/onboarding.js +81 -0
- package/dist/tools/onboarding.js.map +1 -0
- package/dist/tools/people.d.ts +254 -0
- package/dist/tools/people.d.ts.map +1 -0
- package/dist/tools/people.js +481 -0
- package/dist/tools/people.js.map +1 -0
- package/dist/tools/projects.d.ts +20 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +316 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/public-filter.d.ts +43 -0
- package/dist/tools/public-filter.d.ts.map +1 -0
- package/dist/tools/public-filter.js +356 -0
- package/dist/tools/public-filter.js.map +1 -0
- package/dist/tools/publishers.d.ts +30 -0
- package/dist/tools/publishers.d.ts.map +1 -0
- package/dist/tools/publishers.js +105 -0
- package/dist/tools/publishers.js.map +1 -0
- package/dist/tools/purchases.d.ts +27 -0
- package/dist/tools/purchases.d.ts.map +1 -0
- package/dist/tools/purchases.js +9 -0
- package/dist/tools/purchases.js.map +1 -0
- package/dist/tools/recording-attribution-hints.d.ts +24 -0
- package/dist/tools/recording-attribution-hints.d.ts.map +1 -0
- package/dist/tools/recording-attribution-hints.js +27 -0
- package/dist/tools/recording-attribution-hints.js.map +1 -0
- package/dist/tools/recordings.d.ts +96 -0
- package/dist/tools/recordings.d.ts.map +1 -0
- package/dist/tools/recordings.js +564 -0
- package/dist/tools/recordings.js.map +1 -0
- package/dist/tools/recovery-hints.d.ts +40 -0
- package/dist/tools/recovery-hints.d.ts.map +1 -0
- package/dist/tools/recovery-hints.js +827 -0
- package/dist/tools/recovery-hints.js.map +1 -0
- package/dist/tools/release-rich.d.ts +31 -0
- package/dist/tools/release-rich.d.ts.map +1 -0
- package/dist/tools/release-rich.js +245 -0
- package/dist/tools/release-rich.js.map +1 -0
- package/dist/tools/releases.d.ts +36 -0
- package/dist/tools/releases.d.ts.map +1 -0
- package/dist/tools/releases.js +649 -0
- package/dist/tools/releases.js.map +1 -0
- package/dist/tools/report-issue.d.ts +21 -0
- package/dist/tools/report-issue.d.ts.map +1 -0
- package/dist/tools/report-issue.js +101 -0
- package/dist/tools/report-issue.js.map +1 -0
- package/dist/tools/royalties.d.ts +23 -0
- package/dist/tools/royalties.d.ts.map +1 -0
- package/dist/tools/royalties.js +262 -0
- package/dist/tools/royalties.js.map +1 -0
- package/dist/tools/search.d.ts +30 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +115 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/send.d.ts +17 -0
- package/dist/tools/send.d.ts.map +1 -0
- package/dist/tools/send.js +188 -0
- package/dist/tools/send.js.map +1 -0
- package/dist/tools/sessions.d.ts +18 -0
- package/dist/tools/sessions.d.ts.map +1 -0
- package/dist/tools/sessions.js +153 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/settings.d.ts +23 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +365 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/share-links.d.ts +22 -0
- package/dist/tools/share-links.d.ts.map +1 -0
- package/dist/tools/share-links.js +188 -0
- package/dist/tools/share-links.js.map +1 -0
- package/dist/tools/signup.d.ts +26 -0
- package/dist/tools/signup.d.ts.map +1 -0
- package/dist/tools/signup.js +266 -0
- package/dist/tools/signup.js.map +1 -0
- package/dist/tools/split-sheets.d.ts +25 -0
- package/dist/tools/split-sheets.d.ts.map +1 -0
- package/dist/tools/split-sheets.js +309 -0
- package/dist/tools/split-sheets.js.map +1 -0
- package/dist/tools/storage-config.d.ts +13 -0
- package/dist/tools/storage-config.d.ts.map +1 -0
- package/dist/tools/storage-config.js +245 -0
- package/dist/tools/storage-config.js.map +1 -0
- package/dist/tools/subscription.d.ts +60 -0
- package/dist/tools/subscription.d.ts.map +1 -0
- package/dist/tools/subscription.js +440 -0
- package/dist/tools/subscription.js.map +1 -0
- package/dist/tools/sync-placements.d.ts +31 -0
- package/dist/tools/sync-placements.d.ts.map +1 -0
- package/dist/tools/sync-placements.js +431 -0
- package/dist/tools/sync-placements.js.map +1 -0
- package/dist/tools/team.d.ts +22 -0
- package/dist/tools/team.d.ts.map +1 -0
- package/dist/tools/team.js +144 -0
- package/dist/tools/team.js.map +1 -0
- package/dist/tools/telegram.d.ts +21 -0
- package/dist/tools/telegram.d.ts.map +1 -0
- package/dist/tools/telegram.js +144 -0
- package/dist/tools/telegram.js.map +1 -0
- package/dist/tools/uploads.d.ts +17 -0
- package/dist/tools/uploads.d.ts.map +1 -0
- package/dist/tools/uploads.js +165 -0
- package/dist/tools/uploads.js.map +1 -0
- package/dist/tools/works.d.ts +71 -0
- package/dist/tools/works.d.ts.map +1 -0
- package/dist/tools/works.js +694 -0
- package/dist/tools/works.js.map +1 -0
- package/package.json +54 -0
- package/scripts/build-required-schemas.ts +233 -0
- package/scripts/bundle-apps.ts +61 -0
- package/scripts/refresh-schema-mirror.ts +182 -0
- package/server.json +20 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
import { formatAsText, formatSuccess, formatStructuredList, withBillingGate, pushSectionError, PHYSICAL_ASSETS_WRITE_PROPERTIES, PHYSICAL_ASSETS_CREATE_REQUIRED, PHYSICAL_ASSETS_UPDATE_REQUIRED, } from "@withpica/mcp-utils";
|
|
3
|
+
export class AssetsTools {
|
|
4
|
+
pica;
|
|
5
|
+
constructor(pica) {
|
|
6
|
+
this.pica = pica;
|
|
7
|
+
}
|
|
8
|
+
getTools() {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
definition: {
|
|
12
|
+
name: "pica_physical_assets_query",
|
|
13
|
+
description: "Find physical assets — equipment, instruments, studio gear. Filter by category. → then: pica_physical_assets_inspect (details for a specific asset)",
|
|
14
|
+
workflows: "infrastructure",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
category: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Filter by category (e.g. instrument, equipment, studio, software)",
|
|
21
|
+
},
|
|
22
|
+
limit: {
|
|
23
|
+
type: "number",
|
|
24
|
+
description: "Max results (default 50)",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
executor: this.listAssets.bind(this),
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
definition: {
|
|
33
|
+
name: "pica_physical_assets_inspect",
|
|
34
|
+
description: "Get details for a specific physical asset. Omit sections for everything. " +
|
|
35
|
+
"Sections: basic, valuations, market, links (work + recording link rows " +
|
|
36
|
+
"written by pica_physical_assets_link_work / _link_recording with their " +
|
|
37
|
+
"relationship + evidence + confidence fields). " +
|
|
38
|
+
"→ then: pica_physical_assets_update (modify), pica_physical_assets_export (for insurance)",
|
|
39
|
+
workflows: "infrastructure",
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: "object",
|
|
42
|
+
properties: {
|
|
43
|
+
id: {
|
|
44
|
+
type: "string",
|
|
45
|
+
description: "Asset ID",
|
|
46
|
+
},
|
|
47
|
+
sections: {
|
|
48
|
+
type: "array",
|
|
49
|
+
items: {
|
|
50
|
+
type: "string",
|
|
51
|
+
enum: ["basic", "valuations", "market", "links"],
|
|
52
|
+
},
|
|
53
|
+
description: "Which data sections to include. Omit for all sections.",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
required: ["id"],
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
executor: this.inspectAsset.bind(this),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
definition: {
|
|
63
|
+
name: "pica_physical_assets_create",
|
|
64
|
+
description: "Register a new physical asset — instrument, equipment, software, " +
|
|
65
|
+
"studio space, or other (matches the physical_assets_asset_type_check " +
|
|
66
|
+
"DB constraint). Tracks identity, condition, acquisition, photos, and " +
|
|
67
|
+
"status as real columns. Valuation and insurance details belong inside " +
|
|
68
|
+
"`external_references` jsonb (see key enumeration on that field). " +
|
|
69
|
+
"Pair with pica_upload (accept: 'image') to capture photo evidence via " +
|
|
70
|
+
"a drop zone.",
|
|
71
|
+
workflows: "infrastructure",
|
|
72
|
+
inputSchema: {
|
|
73
|
+
type: "object",
|
|
74
|
+
properties: PHYSICAL_ASSETS_WRITE_PROPERTIES,
|
|
75
|
+
required: [...PHYSICAL_ASSETS_CREATE_REQUIRED],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
executor: withBillingGate(this.pica, "physical asset creation", this.createAsset.bind(this)),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
definition: {
|
|
82
|
+
name: "pica_physical_assets_update",
|
|
83
|
+
description: "Update a physical asset. All create fields are optional on update; " +
|
|
84
|
+
"`id` is required. Valuation and insurance changes go through " +
|
|
85
|
+
"`external_references` (current_valuation, valuation_source, " +
|
|
86
|
+
"reverb_listing_url, insurer, insured_value, etc.) — there is no " +
|
|
87
|
+
"top-level valuation column on physical_assets. Pair with pica_upload " +
|
|
88
|
+
"(accept: 'image') to add more photo evidence.",
|
|
89
|
+
workflows: "infrastructure",
|
|
90
|
+
inputSchema: {
|
|
91
|
+
type: "object",
|
|
92
|
+
properties: {
|
|
93
|
+
id: { type: "string", description: "Asset ID" },
|
|
94
|
+
...PHYSICAL_ASSETS_WRITE_PROPERTIES,
|
|
95
|
+
},
|
|
96
|
+
required: [...PHYSICAL_ASSETS_UPDATE_REQUIRED],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
executor: withBillingGate(this.pica, "physical asset update", this.updateAsset.bind(this)),
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
definition: {
|
|
103
|
+
name: "pica_physical_assets_delete",
|
|
104
|
+
description: "Delete a physical asset by ID.",
|
|
105
|
+
workflows: "infrastructure",
|
|
106
|
+
inputSchema: {
|
|
107
|
+
type: "object",
|
|
108
|
+
properties: {
|
|
109
|
+
id: { type: "string", description: "Asset ID" },
|
|
110
|
+
},
|
|
111
|
+
required: ["id"],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
executor: withBillingGate(this.pica, "physical asset deletion", this.deleteAsset.bind(this)),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
definition: {
|
|
118
|
+
name: "pica_physical_assets_stats",
|
|
119
|
+
description: "Get summary statistics for all physical assets — total value, count by category, insurance coverage.",
|
|
120
|
+
workflows: "infrastructure",
|
|
121
|
+
inputSchema: { type: "object", properties: {} },
|
|
122
|
+
},
|
|
123
|
+
executor: this.assetStats.bind(this),
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
definition: {
|
|
127
|
+
name: "pica_physical_assets_export",
|
|
128
|
+
description: "Export all physical assets as a downloadable report.",
|
|
129
|
+
workflows: "infrastructure",
|
|
130
|
+
inputSchema: { type: "object", properties: {} },
|
|
131
|
+
},
|
|
132
|
+
executor: this.assetExport.bind(this),
|
|
133
|
+
},
|
|
134
|
+
// --- Production-asset links (ADR-156 operating principle #3) ---
|
|
135
|
+
// Typed edges between physical_assets and works/recordings with
|
|
136
|
+
// rich provenance. Works-side and recordings-side relationship
|
|
137
|
+
// enums deliberately diverge — works describe process, recordings
|
|
138
|
+
// describe physical performance. A guitar is "played on" a
|
|
139
|
+
// recording, not "played on" a composition. Unlink is soft
|
|
140
|
+
// (confidence='withdrawn') to preserve the audit trail.
|
|
141
|
+
{
|
|
142
|
+
definition: {
|
|
143
|
+
name: "pica_physical_assets_link_work",
|
|
144
|
+
description: "Link a physical asset to a work (composition). Works describe process — vocabulary captures how the asset was used in making the composition. " +
|
|
145
|
+
"Relationship enum: used_in_production | recorded_with | mastered_with | mixed_with. " +
|
|
146
|
+
"Evidence type (optional): user_declared | session_log | receipt | photo | document | imported | inferred. " +
|
|
147
|
+
"Returns the created link row with confidence='asserted'. " +
|
|
148
|
+
"→ for artefact-level claims (e.g. 'this guitar was played on this recording') use pica_physical_assets_link_recording instead.",
|
|
149
|
+
workflows: "infrastructure",
|
|
150
|
+
inputSchema: {
|
|
151
|
+
type: "object",
|
|
152
|
+
properties: {
|
|
153
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
154
|
+
workId: { type: "string", description: "Work ID to link to" },
|
|
155
|
+
relationship: {
|
|
156
|
+
type: "string",
|
|
157
|
+
enum: [
|
|
158
|
+
"used_in_production",
|
|
159
|
+
"recorded_with",
|
|
160
|
+
"mastered_with",
|
|
161
|
+
"mixed_with",
|
|
162
|
+
],
|
|
163
|
+
description: "How the asset relates to the work (default: used_in_production)",
|
|
164
|
+
},
|
|
165
|
+
evidenceType: {
|
|
166
|
+
type: "string",
|
|
167
|
+
enum: [
|
|
168
|
+
"user_declared",
|
|
169
|
+
"session_log",
|
|
170
|
+
"receipt",
|
|
171
|
+
"photo",
|
|
172
|
+
"document",
|
|
173
|
+
"imported",
|
|
174
|
+
"inferred",
|
|
175
|
+
],
|
|
176
|
+
description: "Evidence source backing this claim (optional)",
|
|
177
|
+
},
|
|
178
|
+
evidenceDocumentId: {
|
|
179
|
+
type: "string",
|
|
180
|
+
description: "Documents table ID if evidence is a stored file (optional)",
|
|
181
|
+
},
|
|
182
|
+
evidenceUrl: {
|
|
183
|
+
type: "string",
|
|
184
|
+
description: "External evidence URL (optional)",
|
|
185
|
+
},
|
|
186
|
+
notes: {
|
|
187
|
+
type: "string",
|
|
188
|
+
description: "Free-text context for the link (optional)",
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
required: ["assetId", "workId"],
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
executor: withBillingGate(this.pica, "physical asset link", this.linkAssetToWork.bind(this)),
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
definition: {
|
|
198
|
+
name: "pica_physical_assets_link_recording",
|
|
199
|
+
description: "Link a physical asset to a recording (captured performance). Recordings describe artefact — vocabulary captures the physical relationship between the object and the captured moment. " +
|
|
200
|
+
"Relationship enum: instrument_played_on | master_tape_of | session_document_for | mixed_on | mastered_on | recorded_at. " +
|
|
201
|
+
"The master_tape_of relationship (many-to-one: safety copies, remasters, regional masters) lives here rather than as a recordings column so each physical master can carry its own provenance. " +
|
|
202
|
+
"Evidence type (optional): user_declared | session_log | receipt | photo | document | imported | inferred. " +
|
|
203
|
+
"Returns the created link row with confidence='asserted'. " +
|
|
204
|
+
"→ for process-level claims against a composition use pica_physical_assets_link_work instead.",
|
|
205
|
+
workflows: "infrastructure",
|
|
206
|
+
inputSchema: {
|
|
207
|
+
type: "object",
|
|
208
|
+
properties: {
|
|
209
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
210
|
+
recordingId: {
|
|
211
|
+
type: "string",
|
|
212
|
+
description: "Recording ID to link to",
|
|
213
|
+
},
|
|
214
|
+
relationship: {
|
|
215
|
+
type: "string",
|
|
216
|
+
enum: [
|
|
217
|
+
"instrument_played_on",
|
|
218
|
+
"master_tape_of",
|
|
219
|
+
"session_document_for",
|
|
220
|
+
"mixed_on",
|
|
221
|
+
"mastered_on",
|
|
222
|
+
"recorded_at",
|
|
223
|
+
],
|
|
224
|
+
description: "How the asset relates to the recording (default: instrument_played_on)",
|
|
225
|
+
},
|
|
226
|
+
evidenceType: {
|
|
227
|
+
type: "string",
|
|
228
|
+
enum: [
|
|
229
|
+
"user_declared",
|
|
230
|
+
"session_log",
|
|
231
|
+
"receipt",
|
|
232
|
+
"photo",
|
|
233
|
+
"document",
|
|
234
|
+
"imported",
|
|
235
|
+
"inferred",
|
|
236
|
+
],
|
|
237
|
+
description: "Evidence source backing this claim (optional)",
|
|
238
|
+
},
|
|
239
|
+
evidenceDocumentId: {
|
|
240
|
+
type: "string",
|
|
241
|
+
description: "Documents table ID if evidence is a stored file (optional)",
|
|
242
|
+
},
|
|
243
|
+
evidenceUrl: {
|
|
244
|
+
type: "string",
|
|
245
|
+
description: "External evidence URL (optional)",
|
|
246
|
+
},
|
|
247
|
+
notes: {
|
|
248
|
+
type: "string",
|
|
249
|
+
description: "Free-text context for the link (optional)",
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
required: ["assetId", "recordingId"],
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
executor: withBillingGate(this.pica, "physical asset link", this.linkAssetToRecording.bind(this)),
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
definition: {
|
|
259
|
+
name: "pica_physical_assets_unlink_work",
|
|
260
|
+
description: "Soft-unlink a physical asset from a work. Sets the link's confidence to 'withdrawn' rather than deleting the row, preserving the audit trail of retracted claims (rich provenance includes history, not just current state).",
|
|
261
|
+
workflows: "infrastructure",
|
|
262
|
+
inputSchema: {
|
|
263
|
+
type: "object",
|
|
264
|
+
properties: {
|
|
265
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
266
|
+
linkId: {
|
|
267
|
+
type: "string",
|
|
268
|
+
description: "ID of the work_production_assets row to withdraw",
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
required: ["assetId", "linkId"],
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
executor: withBillingGate(this.pica, "physical asset unlink", this.unlinkWorkAsset.bind(this)),
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
definition: {
|
|
278
|
+
name: "pica_physical_assets_unlink_recording",
|
|
279
|
+
description: "Soft-unlink a physical asset from a recording. Sets confidence to 'withdrawn'; the row is preserved for the audit trail.",
|
|
280
|
+
workflows: "infrastructure",
|
|
281
|
+
inputSchema: {
|
|
282
|
+
type: "object",
|
|
283
|
+
properties: {
|
|
284
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
285
|
+
linkId: {
|
|
286
|
+
type: "string",
|
|
287
|
+
description: "ID of the recording_production_assets row to withdraw",
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
required: ["assetId", "linkId"],
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
executor: withBillingGate(this.pica, "physical asset unlink", this.unlinkRecordingAsset.bind(this)),
|
|
294
|
+
},
|
|
295
|
+
];
|
|
296
|
+
}
|
|
297
|
+
async listAssets(args) {
|
|
298
|
+
const assets = await this.pica.assets.list({
|
|
299
|
+
category: args.category,
|
|
300
|
+
limit: args.limit,
|
|
301
|
+
});
|
|
302
|
+
return formatStructuredList(Array.isArray(assets) ? assets : assets?.data || [], "asset");
|
|
303
|
+
}
|
|
304
|
+
async inspectAsset(args) {
|
|
305
|
+
const id = args.id;
|
|
306
|
+
const sections = args.sections;
|
|
307
|
+
const allSections = !sections || sections.length === 0;
|
|
308
|
+
const results = {};
|
|
309
|
+
// ADR-224 — see works.ts for the full doctrine. Each section catch
|
|
310
|
+
// pushes to errors[] + emits stderr via pushSectionError; the flag
|
|
311
|
+
// governs whether the public response carries the structured shape
|
|
312
|
+
// (null + errors[]) or the legacy `{ error: msg }` object-replacement
|
|
313
|
+
// (which breaks the field's type contract — agents expecting
|
|
314
|
+
// `valuations: Valuation[]` got `valuations: { error }`).
|
|
315
|
+
const useStructured = process.env.ADR_224_STRUCTURED_ERRORS === "1";
|
|
316
|
+
const errors = [];
|
|
317
|
+
const TOOL_NAME = "pica_physical_assets_inspect";
|
|
318
|
+
const promises = [];
|
|
319
|
+
if (allSections || sections?.includes("basic")) {
|
|
320
|
+
promises.push((async () => {
|
|
321
|
+
try {
|
|
322
|
+
results.basic = await this.pica.assets.get(id);
|
|
323
|
+
}
|
|
324
|
+
catch (e) {
|
|
325
|
+
results.basic = useStructured
|
|
326
|
+
? null
|
|
327
|
+
: {
|
|
328
|
+
error: e instanceof Error ? e.message : "Failed to fetch asset",
|
|
329
|
+
};
|
|
330
|
+
pushSectionError(errors, TOOL_NAME, "basic", e, id);
|
|
331
|
+
}
|
|
332
|
+
})());
|
|
333
|
+
}
|
|
334
|
+
if (allSections || sections?.includes("valuations")) {
|
|
335
|
+
promises.push((async () => {
|
|
336
|
+
try {
|
|
337
|
+
results.valuations = await this.pica.assets.valuations(id);
|
|
338
|
+
}
|
|
339
|
+
catch (e) {
|
|
340
|
+
results.valuations = useStructured
|
|
341
|
+
? null
|
|
342
|
+
: {
|
|
343
|
+
error: e instanceof Error
|
|
344
|
+
? e.message
|
|
345
|
+
: "Failed to fetch valuations",
|
|
346
|
+
};
|
|
347
|
+
pushSectionError(errors, TOOL_NAME, "valuations", e, id);
|
|
348
|
+
}
|
|
349
|
+
})());
|
|
350
|
+
}
|
|
351
|
+
if (allSections || sections?.includes("market")) {
|
|
352
|
+
promises.push((async () => {
|
|
353
|
+
try {
|
|
354
|
+
results.market = await this.pica.assets.marketCheck(id);
|
|
355
|
+
}
|
|
356
|
+
catch (e) {
|
|
357
|
+
results.market = useStructured
|
|
358
|
+
? null
|
|
359
|
+
: {
|
|
360
|
+
error: e instanceof Error
|
|
361
|
+
? e.message
|
|
362
|
+
: "Failed to fetch market data",
|
|
363
|
+
};
|
|
364
|
+
pushSectionError(errors, TOOL_NAME, "market", e, id);
|
|
365
|
+
}
|
|
366
|
+
})());
|
|
367
|
+
}
|
|
368
|
+
if (allSections || sections?.includes("links")) {
|
|
369
|
+
// ADR-201 Phase 2: surface the junction-table rows that
|
|
370
|
+
// pica_physical_assets_link_work / _link_recording write. The two
|
|
371
|
+
// GET endpoints (admin/assets/[id]/{work,recording}-links) already
|
|
372
|
+
// existed but had no MCP read surface, so link rows were write-only.
|
|
373
|
+
promises.push((async () => {
|
|
374
|
+
try {
|
|
375
|
+
const [worksResult, recordingsResult] = await Promise.all([
|
|
376
|
+
this.pica.assets.listWorkLinks(id),
|
|
377
|
+
this.pica.assets.listRecordingLinks(id),
|
|
378
|
+
]);
|
|
379
|
+
results.links = {
|
|
380
|
+
works: worksResult?.data ?? worksResult ?? [],
|
|
381
|
+
recordings: recordingsResult?.data ?? recordingsResult ?? [],
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
catch (e) {
|
|
385
|
+
results.links = useStructured
|
|
386
|
+
? null
|
|
387
|
+
: {
|
|
388
|
+
error: e instanceof Error ? e.message : "Failed to fetch links",
|
|
389
|
+
};
|
|
390
|
+
pushSectionError(errors, TOOL_NAME, "links", e, id);
|
|
391
|
+
}
|
|
392
|
+
})());
|
|
393
|
+
}
|
|
394
|
+
await Promise.all(promises);
|
|
395
|
+
const name = results.basic?.name || id;
|
|
396
|
+
const enriched = useStructured ? { ...results, errors } : results;
|
|
397
|
+
return formatSuccess(`Asset: ${name}`, enriched);
|
|
398
|
+
}
|
|
399
|
+
async createAsset(args) {
|
|
400
|
+
const asset = await this.pica.assets.create(args);
|
|
401
|
+
return formatSuccess("Physical asset registered successfully", asset);
|
|
402
|
+
}
|
|
403
|
+
async updateAsset(args) {
|
|
404
|
+
const { id, ...updates } = args;
|
|
405
|
+
const asset = await this.pica.assets.update(id, updates);
|
|
406
|
+
return formatSuccess("Asset updated successfully", asset);
|
|
407
|
+
}
|
|
408
|
+
async deleteAsset(args) {
|
|
409
|
+
await this.pica.assets.delete(args.id);
|
|
410
|
+
return formatSuccess("Asset deleted successfully");
|
|
411
|
+
}
|
|
412
|
+
async assetStats(_args) {
|
|
413
|
+
const stats = await this.pica.assets.stats();
|
|
414
|
+
return formatAsText(stats);
|
|
415
|
+
}
|
|
416
|
+
async assetExport(_args) {
|
|
417
|
+
const result = await this.pica.assets.exportAll();
|
|
418
|
+
return formatAsText(result);
|
|
419
|
+
}
|
|
420
|
+
// --- Production-asset link handlers (ADR-156 op #3) ---
|
|
421
|
+
async linkAssetToWork(args) {
|
|
422
|
+
const assetId = args.assetId;
|
|
423
|
+
const result = await this.pica.assets.linkWork(assetId, {
|
|
424
|
+
workId: args.workId,
|
|
425
|
+
relationship: args.relationship,
|
|
426
|
+
evidenceType: args.evidenceType,
|
|
427
|
+
evidenceDocumentId: args.evidenceDocumentId,
|
|
428
|
+
evidenceUrl: args.evidenceUrl,
|
|
429
|
+
notes: args.notes,
|
|
430
|
+
});
|
|
431
|
+
return formatSuccess("Asset linked to work", result);
|
|
432
|
+
}
|
|
433
|
+
async linkAssetToRecording(args) {
|
|
434
|
+
const assetId = args.assetId;
|
|
435
|
+
const result = await this.pica.assets.linkRecording(assetId, {
|
|
436
|
+
recordingId: args.recordingId,
|
|
437
|
+
relationship: args.relationship,
|
|
438
|
+
evidenceType: args.evidenceType,
|
|
439
|
+
evidenceDocumentId: args.evidenceDocumentId,
|
|
440
|
+
evidenceUrl: args.evidenceUrl,
|
|
441
|
+
notes: args.notes,
|
|
442
|
+
});
|
|
443
|
+
return formatSuccess("Asset linked to recording", result);
|
|
444
|
+
}
|
|
445
|
+
async unlinkWorkAsset(args) {
|
|
446
|
+
await this.pica.assets.unlinkWork(args.assetId, args.linkId);
|
|
447
|
+
return formatSuccess("Work asset link withdrawn (confidence='withdrawn', row preserved for audit trail)");
|
|
448
|
+
}
|
|
449
|
+
async unlinkRecordingAsset(args) {
|
|
450
|
+
await this.pica.assets.unlinkRecording(args.assetId, args.linkId);
|
|
451
|
+
return formatSuccess("Recording asset link withdrawn (confidence='withdrawn', row preserved for audit trail)");
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
//# sourceMappingURL=assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio Files Tools - MCP tools for managing audio files and analysis
|
|
3
|
+
*/
|
|
4
|
+
import { PicaClient } from "@withpica/mcp-sdk";
|
|
5
|
+
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
6
|
+
export declare class AudioFilesTools {
|
|
7
|
+
private pica;
|
|
8
|
+
constructor(pica: PicaClient);
|
|
9
|
+
getTools(): Array<{
|
|
10
|
+
definition: ToolDefinition;
|
|
11
|
+
executor: ToolExecutor;
|
|
12
|
+
}>;
|
|
13
|
+
private queryAudioFiles;
|
|
14
|
+
private inspectAudioFile;
|
|
15
|
+
private analyzeAudioFile;
|
|
16
|
+
private presignedUpload;
|
|
17
|
+
private completeUpload;
|
|
18
|
+
private identifyAudioFile;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=audio-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-files.d.ts","sourceRoot":"","sources":["../../src/tools/audio-files.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAStE,qBAAa,eAAe;IAC1B,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;YAuS3D,eAAe;YAYf,gBAAgB;YA4DhB,gBAAgB;YAchB,eAAe;YAyBf,cAAc;YAgDd,iBAAiB;CA0BhC"}
|