@withpica/mcp-server 2.7.0 → 2.9.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/__mocks__/mppx-mcp-sdk-server.d.ts +6 -0
- package/dist/__mocks__/mppx-mcp-sdk-server.d.ts.map +1 -0
- package/dist/__mocks__/mppx-mcp-sdk-server.js +6 -0
- package/dist/__mocks__/mppx-mcp-sdk-server.js.map +1 -0
- package/dist/__mocks__/mppx-server.d.ts +12 -0
- package/dist/__mocks__/mppx-server.d.ts.map +1 -0
- package/dist/__mocks__/mppx-server.js +12 -0
- package/dist/__mocks__/mppx-server.js.map +1 -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/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 +9 -30
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +36 -12
- package/dist/config.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/index.js +24 -24
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts +4 -2
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +133 -54
- package/dist/resources/index.js.map +1 -1
- 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/server-instructions.d.ts +9 -0
- package/dist/server-instructions.d.ts.map +1 -0
- package/dist/server-instructions.js +34 -0
- package/dist/server-instructions.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +103 -14
- package/dist/server.js.map +1 -1
- 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 +387 -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 +363 -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 +124 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/app-tools.d.ts +21 -0
- package/dist/tools/app-tools.d.ts.map +1 -0
- package/dist/tools/app-tools.js +248 -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 +631 -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 +384 -0
- package/dist/tools/audio-files.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 +210 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/bulk.d.ts +16 -0
- package/dist/tools/bulk.d.ts.map +1 -0
- package/dist/tools/bulk.js +85 -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 +67 -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 +311 -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 +78 -0
- package/dist/tools/comparisons.js.map +1 -0
- package/dist/tools/credits.d.ts +17 -0
- package/dist/tools/credits.d.ts.map +1 -0
- package/dist/tools/credits.js +312 -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 +274 -0
- package/dist/tools/custody.js.map +1 -0
- package/dist/tools/dashboard.d.ts +19 -0
- package/dist/tools/dashboard.d.ts.map +1 -0
- package/dist/tools/dashboard.js +146 -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 +106 -0
- package/dist/tools/directory.js.map +1 -0
- 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 +18 -0
- package/dist/tools/disputes.d.ts.map +1 -0
- package/dist/tools/disputes.js +61 -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 +36 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/duplicates.d.ts +16 -0
- package/dist/tools/duplicates.d.ts.map +1 -0
- package/dist/tools/duplicates.js +87 -0
- package/dist/tools/duplicates.js.map +1 -0
- package/dist/tools/enrichment.d.ts +23 -0
- package/dist/tools/enrichment.d.ts.map +1 -0
- package/dist/tools/enrichment.js +220 -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 +175 -0
- package/dist/tools/exports.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 +203 -0
- package/dist/tools/import-documents.js.map +1 -0
- package/dist/tools/import.d.ts +30 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +455 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +67 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +448 -84
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/integrations.d.ts +15 -0
- package/dist/tools/integrations.d.ts.map +1 -0
- package/dist/tools/integrations.js +100 -0
- package/dist/tools/integrations.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 +431 -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 +116 -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 +1106 -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 +291 -0
- package/dist/tools/multimedia.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 +108 -0
- package/dist/tools/notes.js.map +1 -0
- package/dist/tools/notifications.d.ts +20 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +266 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/people.d.ts +5 -13
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +148 -109
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/projects.d.ts +19 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +140 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/publishers.d.ts +16 -0
- package/dist/tools/publishers.d.ts.map +1 -0
- package/dist/tools/publishers.js +69 -0
- package/dist/tools/publishers.js.map +1 -0
- package/dist/tools/purchases.d.ts +15 -0
- package/dist/tools/purchases.d.ts.map +1 -0
- package/dist/tools/purchases.js +63 -0
- package/dist/tools/purchases.js.map +1 -0
- package/dist/tools/recordings.d.ts +35 -35
- package/dist/tools/recordings.d.ts.map +1 -1
- package/dist/tools/recordings.js +136 -48
- package/dist/tools/recordings.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts +14 -0
- package/dist/tools/recovery-hints.d.ts.map +1 -0
- package/dist/tools/recovery-hints.js +277 -0
- package/dist/tools/recovery-hints.js.map +1 -0
- package/dist/tools/releases.d.ts +18 -0
- package/dist/tools/releases.d.ts.map +1 -0
- package/dist/tools/releases.js +128 -0
- package/dist/tools/releases.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 +257 -0
- package/dist/tools/royalties.js.map +1 -0
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +3 -3
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/send.d.ts +17 -0
- package/dist/tools/send.d.ts.map +1 -0
- package/dist/tools/send.js +185 -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 +115 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/settings.d.ts +18 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +96 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/share-links.d.ts +19 -0
- package/dist/tools/share-links.d.ts.map +1 -0
- package/dist/tools/share-links.js +121 -0
- package/dist/tools/share-links.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 +307 -0
- package/dist/tools/split-sheets.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 +134 -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 +141 -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 +156 -0
- package/dist/tools/uploads.js.map +1 -0
- package/dist/tools/works.d.ts +5 -13
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +219 -116
- package/dist/tools/works.js.map +1 -1
- package/package.json +1 -1
- package/dist/pica-sdk.d.ts +0 -1231
- package/dist/pica-sdk.d.ts.map +0 -1
- package/dist/pica-sdk.js +0 -1403
- package/dist/pica-sdk.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 -115
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/formatting.d.ts +0 -82
- package/dist/utils/formatting.d.ts.map +0 -1
- package/dist/utils/formatting.js +0 -125
- package/dist/utils/formatting.js.map +0 -1
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
import { formatAsText, formatSuccess, formatStructuredList, } 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
|
+
inputSchema: {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
category: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "Filter by category (e.g. instrument, equipment, studio, software)",
|
|
20
|
+
},
|
|
21
|
+
limit: {
|
|
22
|
+
type: "number",
|
|
23
|
+
description: "Max results (default 50)",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
executor: this.listAssets.bind(this),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
definition: {
|
|
32
|
+
name: "pica_physical_assets_inspect",
|
|
33
|
+
description: "Get details for a specific physical asset. Omit sections for everything. " +
|
|
34
|
+
"→ then: pica_physical_assets_update (modify), pica_physical_assets_export (for insurance)",
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
id: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Asset ID",
|
|
41
|
+
},
|
|
42
|
+
sections: {
|
|
43
|
+
type: "array",
|
|
44
|
+
items: {
|
|
45
|
+
type: "string",
|
|
46
|
+
enum: ["basic", "valuations", "market"],
|
|
47
|
+
},
|
|
48
|
+
description: "Which data sections to include. Omit for all sections.",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ["id"],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
executor: this.inspectAsset.bind(this),
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
definition: {
|
|
58
|
+
name: "pica_physical_assets_create",
|
|
59
|
+
description: "Register a new physical asset — instrument, amplifier, studio equipment, " +
|
|
60
|
+
"software license, or other. Tracks identity, condition, acquisition, " +
|
|
61
|
+
"valuation, photos, insurance, and status. Pair with pica_upload " +
|
|
62
|
+
"(accept: 'image') to capture photo evidence via a drop zone.",
|
|
63
|
+
inputSchema: {
|
|
64
|
+
type: "object",
|
|
65
|
+
properties: {
|
|
66
|
+
// ── Identity ──
|
|
67
|
+
name: {
|
|
68
|
+
type: "string",
|
|
69
|
+
description: "Asset name (e.g. 'Fender Stratocaster 1962')",
|
|
70
|
+
},
|
|
71
|
+
asset_type: {
|
|
72
|
+
type: "string",
|
|
73
|
+
description: "Asset type (required). Valid values: instrument, amplifier, studio_equipment, software_license, other",
|
|
74
|
+
},
|
|
75
|
+
category: {
|
|
76
|
+
type: "string",
|
|
77
|
+
description: "Free-text subcategory (e.g. 'guitar', 'keyboard', 'microphone', 'daw', 'plugin')",
|
|
78
|
+
},
|
|
79
|
+
make: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "Manufacturer (e.g. 'Fender', 'Neumann')",
|
|
82
|
+
},
|
|
83
|
+
model: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: "Model name (e.g. 'Stratocaster', 'U87')",
|
|
86
|
+
},
|
|
87
|
+
year: {
|
|
88
|
+
type: "number",
|
|
89
|
+
description: "Year of manufacture",
|
|
90
|
+
},
|
|
91
|
+
serial_number: {
|
|
92
|
+
type: "string",
|
|
93
|
+
description: "Serial number if available",
|
|
94
|
+
},
|
|
95
|
+
color: {
|
|
96
|
+
type: "string",
|
|
97
|
+
description: "Colour/finish",
|
|
98
|
+
},
|
|
99
|
+
description: {
|
|
100
|
+
type: "string",
|
|
101
|
+
description: "Freeform description",
|
|
102
|
+
},
|
|
103
|
+
// ── Condition ──
|
|
104
|
+
condition: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "Condition. Valid values: mint, excellent, very_good, good, fair, poor",
|
|
107
|
+
},
|
|
108
|
+
condition_notes: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: "Notes about the condition",
|
|
111
|
+
},
|
|
112
|
+
// ── Acquisition ──
|
|
113
|
+
acquired_at: {
|
|
114
|
+
type: "string",
|
|
115
|
+
description: "Acquisition date (YYYY-MM-DD)",
|
|
116
|
+
},
|
|
117
|
+
acquisition_method: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "How acquired. Valid values: purchased, gift, inherited, trade, rental, unknown",
|
|
120
|
+
},
|
|
121
|
+
acquisition_vendor: {
|
|
122
|
+
type: "string",
|
|
123
|
+
description: "Where it was bought (e.g. 'Denmark Street Music')",
|
|
124
|
+
},
|
|
125
|
+
acquisition_price: {
|
|
126
|
+
type: "number",
|
|
127
|
+
description: "Original purchase/acquisition price",
|
|
128
|
+
},
|
|
129
|
+
acquisition_currency: {
|
|
130
|
+
type: "string",
|
|
131
|
+
description: "Currency code for acquisition price (default: GBP)",
|
|
132
|
+
},
|
|
133
|
+
// ── Valuation ──
|
|
134
|
+
current_valuation: {
|
|
135
|
+
type: "number",
|
|
136
|
+
description: "Estimated current value",
|
|
137
|
+
},
|
|
138
|
+
valuation_currency: {
|
|
139
|
+
type: "string",
|
|
140
|
+
description: "Currency code for current valuation (default: GBP)",
|
|
141
|
+
},
|
|
142
|
+
valuation_source: {
|
|
143
|
+
type: "string",
|
|
144
|
+
description: "Source of valuation. Valid values: reverb_price_guide, blue_book, ebay_sold, manual, appraiser",
|
|
145
|
+
},
|
|
146
|
+
valuation_date: {
|
|
147
|
+
type: "string",
|
|
148
|
+
description: "Date of valuation (YYYY-MM-DD)",
|
|
149
|
+
},
|
|
150
|
+
valuation_notes: {
|
|
151
|
+
type: "string",
|
|
152
|
+
description: "Notes about the valuation",
|
|
153
|
+
},
|
|
154
|
+
reverb_listing_url: {
|
|
155
|
+
type: "string",
|
|
156
|
+
description: "Reverb listing URL for price reference",
|
|
157
|
+
},
|
|
158
|
+
ebay_item_url: {
|
|
159
|
+
type: "string",
|
|
160
|
+
description: "eBay item URL for price reference",
|
|
161
|
+
},
|
|
162
|
+
// ── Photos ──
|
|
163
|
+
photos: {
|
|
164
|
+
type: "array",
|
|
165
|
+
description: "Array of photo objects. Each: { url, uploaded_at, mime_type, size }",
|
|
166
|
+
items: {
|
|
167
|
+
type: "object",
|
|
168
|
+
additionalProperties: true,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
primary_photo_url: {
|
|
172
|
+
type: "string",
|
|
173
|
+
description: "URL of the primary photo to display",
|
|
174
|
+
},
|
|
175
|
+
// ── Status + Insurance ──
|
|
176
|
+
status: {
|
|
177
|
+
type: "string",
|
|
178
|
+
description: "Asset status. Valid values: active, sold, lost, stolen, disposed (default: active)",
|
|
179
|
+
},
|
|
180
|
+
insured: {
|
|
181
|
+
type: "boolean",
|
|
182
|
+
description: "Whether the asset is insured",
|
|
183
|
+
},
|
|
184
|
+
insurance_provider: {
|
|
185
|
+
type: "string",
|
|
186
|
+
description: "Insurance company name",
|
|
187
|
+
},
|
|
188
|
+
insurance_policy_number: {
|
|
189
|
+
type: "string",
|
|
190
|
+
description: "Insurance policy number",
|
|
191
|
+
},
|
|
192
|
+
insurance_coverage: {
|
|
193
|
+
type: "number",
|
|
194
|
+
description: "Insured coverage amount",
|
|
195
|
+
},
|
|
196
|
+
// ── Meta ──
|
|
197
|
+
notes: {
|
|
198
|
+
type: "string",
|
|
199
|
+
description: "General notes about the asset",
|
|
200
|
+
},
|
|
201
|
+
tags: {
|
|
202
|
+
type: "array",
|
|
203
|
+
description: "Freeform tags for organising assets",
|
|
204
|
+
items: { type: "string" },
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
required: ["name", "asset_type"],
|
|
208
|
+
additionalProperties: true,
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
executor: this.createAsset.bind(this),
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
definition: {
|
|
215
|
+
name: "pica_physical_assets_update",
|
|
216
|
+
description: "Update a physical asset — change any field including identity, condition, " +
|
|
217
|
+
"valuation, photos, insurance, or status. Pair with pica_upload " +
|
|
218
|
+
"(accept: 'image') to add more photo evidence.",
|
|
219
|
+
inputSchema: {
|
|
220
|
+
type: "object",
|
|
221
|
+
properties: {
|
|
222
|
+
id: { type: "string", description: "Asset ID" },
|
|
223
|
+
// All create fields are also updatable (optional)
|
|
224
|
+
name: { type: "string", description: "Asset name" },
|
|
225
|
+
asset_type: {
|
|
226
|
+
type: "string",
|
|
227
|
+
description: "Asset type. Valid values: instrument, amplifier, studio_equipment, software_license, other",
|
|
228
|
+
},
|
|
229
|
+
category: {
|
|
230
|
+
type: "string",
|
|
231
|
+
description: "Free-text subcategory",
|
|
232
|
+
},
|
|
233
|
+
make: { type: "string", description: "Manufacturer" },
|
|
234
|
+
model: { type: "string", description: "Model name" },
|
|
235
|
+
year: { type: "number", description: "Year of manufacture" },
|
|
236
|
+
serial_number: { type: "string", description: "Serial number" },
|
|
237
|
+
color: { type: "string", description: "Colour/finish" },
|
|
238
|
+
description: {
|
|
239
|
+
type: "string",
|
|
240
|
+
description: "Freeform description",
|
|
241
|
+
},
|
|
242
|
+
condition: {
|
|
243
|
+
type: "string",
|
|
244
|
+
description: "Condition. Valid values: mint, excellent, very_good, good, fair, poor",
|
|
245
|
+
},
|
|
246
|
+
condition_notes: {
|
|
247
|
+
type: "string",
|
|
248
|
+
description: "Notes about condition",
|
|
249
|
+
},
|
|
250
|
+
acquired_at: {
|
|
251
|
+
type: "string",
|
|
252
|
+
description: "Acquisition date (YYYY-MM-DD)",
|
|
253
|
+
},
|
|
254
|
+
acquisition_method: {
|
|
255
|
+
type: "string",
|
|
256
|
+
description: "How acquired. Valid values: purchased, gift, inherited, trade, rental, unknown",
|
|
257
|
+
},
|
|
258
|
+
acquisition_vendor: {
|
|
259
|
+
type: "string",
|
|
260
|
+
description: "Where bought",
|
|
261
|
+
},
|
|
262
|
+
acquisition_price: {
|
|
263
|
+
type: "number",
|
|
264
|
+
description: "Acquisition price",
|
|
265
|
+
},
|
|
266
|
+
acquisition_currency: {
|
|
267
|
+
type: "string",
|
|
268
|
+
description: "Currency code (default: GBP)",
|
|
269
|
+
},
|
|
270
|
+
current_valuation: {
|
|
271
|
+
type: "number",
|
|
272
|
+
description: "Current value",
|
|
273
|
+
},
|
|
274
|
+
valuation_currency: {
|
|
275
|
+
type: "string",
|
|
276
|
+
description: "Currency code (default: GBP)",
|
|
277
|
+
},
|
|
278
|
+
valuation_source: {
|
|
279
|
+
type: "string",
|
|
280
|
+
description: "Source of valuation. Valid values: reverb_price_guide, blue_book, ebay_sold, manual, appraiser",
|
|
281
|
+
},
|
|
282
|
+
valuation_date: {
|
|
283
|
+
type: "string",
|
|
284
|
+
description: "Date of valuation (YYYY-MM-DD)",
|
|
285
|
+
},
|
|
286
|
+
valuation_notes: {
|
|
287
|
+
type: "string",
|
|
288
|
+
description: "Notes about valuation",
|
|
289
|
+
},
|
|
290
|
+
reverb_listing_url: {
|
|
291
|
+
type: "string",
|
|
292
|
+
description: "Reverb listing URL",
|
|
293
|
+
},
|
|
294
|
+
ebay_item_url: { type: "string", description: "eBay item URL" },
|
|
295
|
+
photos: {
|
|
296
|
+
type: "array",
|
|
297
|
+
description: "Array of photo objects. Each: { url, uploaded_at, mime_type, size }",
|
|
298
|
+
items: { type: "object", additionalProperties: true },
|
|
299
|
+
},
|
|
300
|
+
primary_photo_url: {
|
|
301
|
+
type: "string",
|
|
302
|
+
description: "Primary photo URL",
|
|
303
|
+
},
|
|
304
|
+
status: {
|
|
305
|
+
type: "string",
|
|
306
|
+
description: "Asset status. Valid values: active, sold, lost, stolen, disposed",
|
|
307
|
+
},
|
|
308
|
+
insured: { type: "boolean", description: "Whether insured" },
|
|
309
|
+
insurance_provider: {
|
|
310
|
+
type: "string",
|
|
311
|
+
description: "Insurance company",
|
|
312
|
+
},
|
|
313
|
+
insurance_policy_number: {
|
|
314
|
+
type: "string",
|
|
315
|
+
description: "Insurance policy number",
|
|
316
|
+
},
|
|
317
|
+
insurance_coverage: {
|
|
318
|
+
type: "number",
|
|
319
|
+
description: "Coverage amount",
|
|
320
|
+
},
|
|
321
|
+
notes: { type: "string", description: "General notes" },
|
|
322
|
+
tags: {
|
|
323
|
+
type: "array",
|
|
324
|
+
description: "Freeform tags",
|
|
325
|
+
items: { type: "string" },
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
required: ["id"],
|
|
329
|
+
additionalProperties: true,
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
executor: this.updateAsset.bind(this),
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
definition: {
|
|
336
|
+
name: "pica_physical_assets_delete",
|
|
337
|
+
description: "Delete a physical asset by ID.",
|
|
338
|
+
inputSchema: {
|
|
339
|
+
type: "object",
|
|
340
|
+
properties: {
|
|
341
|
+
id: { type: "string", description: "Asset ID" },
|
|
342
|
+
},
|
|
343
|
+
required: ["id"],
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
executor: this.deleteAsset.bind(this),
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
definition: {
|
|
350
|
+
name: "pica_physical_assets_stats",
|
|
351
|
+
description: "Get summary statistics for all physical assets — total value, count by category, insurance coverage.",
|
|
352
|
+
inputSchema: { type: "object", properties: {} },
|
|
353
|
+
},
|
|
354
|
+
executor: this.assetStats.bind(this),
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
definition: {
|
|
358
|
+
name: "pica_physical_assets_export",
|
|
359
|
+
description: "Export all physical assets as a downloadable report.",
|
|
360
|
+
inputSchema: { type: "object", properties: {} },
|
|
361
|
+
},
|
|
362
|
+
executor: this.assetExport.bind(this),
|
|
363
|
+
},
|
|
364
|
+
// --- Production-asset links (ADR-156 operating principle #3) ---
|
|
365
|
+
// Typed edges between physical_assets and works/recordings with
|
|
366
|
+
// rich provenance. Works-side and recordings-side relationship
|
|
367
|
+
// enums deliberately diverge — works describe process, recordings
|
|
368
|
+
// describe physical performance. A guitar is "played on" a
|
|
369
|
+
// recording, not "played on" a composition. Unlink is soft
|
|
370
|
+
// (confidence='withdrawn') to preserve the audit trail.
|
|
371
|
+
{
|
|
372
|
+
definition: {
|
|
373
|
+
name: "pica_physical_assets_link_work",
|
|
374
|
+
description: "Link a physical asset to a work (composition). Works describe process — vocabulary captures how the asset was used in making the composition. " +
|
|
375
|
+
"Relationship enum: used_in_production | recorded_with | mastered_with | mixed_with. " +
|
|
376
|
+
"Evidence type (optional): user_declared | session_log | receipt | photo | document | imported | inferred. " +
|
|
377
|
+
"Returns the created link row with confidence='asserted'. " +
|
|
378
|
+
"→ for artefact-level claims (e.g. 'this guitar was played on this recording') use pica_physical_assets_link_recording instead.",
|
|
379
|
+
inputSchema: {
|
|
380
|
+
type: "object",
|
|
381
|
+
properties: {
|
|
382
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
383
|
+
workId: { type: "string", description: "Work ID to link to" },
|
|
384
|
+
relationship: {
|
|
385
|
+
type: "string",
|
|
386
|
+
enum: [
|
|
387
|
+
"used_in_production",
|
|
388
|
+
"recorded_with",
|
|
389
|
+
"mastered_with",
|
|
390
|
+
"mixed_with",
|
|
391
|
+
],
|
|
392
|
+
description: "How the asset relates to the work (default: used_in_production)",
|
|
393
|
+
},
|
|
394
|
+
evidenceType: {
|
|
395
|
+
type: "string",
|
|
396
|
+
enum: [
|
|
397
|
+
"user_declared",
|
|
398
|
+
"session_log",
|
|
399
|
+
"receipt",
|
|
400
|
+
"photo",
|
|
401
|
+
"document",
|
|
402
|
+
"imported",
|
|
403
|
+
"inferred",
|
|
404
|
+
],
|
|
405
|
+
description: "Evidence source backing this claim (optional)",
|
|
406
|
+
},
|
|
407
|
+
evidenceDocumentId: {
|
|
408
|
+
type: "string",
|
|
409
|
+
description: "Documents table ID if evidence is a stored file (optional)",
|
|
410
|
+
},
|
|
411
|
+
evidenceUrl: {
|
|
412
|
+
type: "string",
|
|
413
|
+
description: "External evidence URL (optional)",
|
|
414
|
+
},
|
|
415
|
+
notes: {
|
|
416
|
+
type: "string",
|
|
417
|
+
description: "Free-text context for the link (optional)",
|
|
418
|
+
},
|
|
419
|
+
},
|
|
420
|
+
required: ["assetId", "workId"],
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
executor: this.linkAssetToWork.bind(this),
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
definition: {
|
|
427
|
+
name: "pica_physical_assets_link_recording",
|
|
428
|
+
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. " +
|
|
429
|
+
"Relationship enum: instrument_played_on | master_tape_of | session_document_for | mixed_on | mastered_on | recorded_at. " +
|
|
430
|
+
"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. " +
|
|
431
|
+
"Evidence type (optional): user_declared | session_log | receipt | photo | document | imported | inferred. " +
|
|
432
|
+
"Returns the created link row with confidence='asserted'. " +
|
|
433
|
+
"→ for process-level claims against a composition use pica_physical_assets_link_work instead.",
|
|
434
|
+
inputSchema: {
|
|
435
|
+
type: "object",
|
|
436
|
+
properties: {
|
|
437
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
438
|
+
recordingId: {
|
|
439
|
+
type: "string",
|
|
440
|
+
description: "Recording ID to link to",
|
|
441
|
+
},
|
|
442
|
+
relationship: {
|
|
443
|
+
type: "string",
|
|
444
|
+
enum: [
|
|
445
|
+
"instrument_played_on",
|
|
446
|
+
"master_tape_of",
|
|
447
|
+
"session_document_for",
|
|
448
|
+
"mixed_on",
|
|
449
|
+
"mastered_on",
|
|
450
|
+
"recorded_at",
|
|
451
|
+
],
|
|
452
|
+
description: "How the asset relates to the recording (default: instrument_played_on)",
|
|
453
|
+
},
|
|
454
|
+
evidenceType: {
|
|
455
|
+
type: "string",
|
|
456
|
+
enum: [
|
|
457
|
+
"user_declared",
|
|
458
|
+
"session_log",
|
|
459
|
+
"receipt",
|
|
460
|
+
"photo",
|
|
461
|
+
"document",
|
|
462
|
+
"imported",
|
|
463
|
+
"inferred",
|
|
464
|
+
],
|
|
465
|
+
description: "Evidence source backing this claim (optional)",
|
|
466
|
+
},
|
|
467
|
+
evidenceDocumentId: {
|
|
468
|
+
type: "string",
|
|
469
|
+
description: "Documents table ID if evidence is a stored file (optional)",
|
|
470
|
+
},
|
|
471
|
+
evidenceUrl: {
|
|
472
|
+
type: "string",
|
|
473
|
+
description: "External evidence URL (optional)",
|
|
474
|
+
},
|
|
475
|
+
notes: {
|
|
476
|
+
type: "string",
|
|
477
|
+
description: "Free-text context for the link (optional)",
|
|
478
|
+
},
|
|
479
|
+
},
|
|
480
|
+
required: ["assetId", "recordingId"],
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
executor: this.linkAssetToRecording.bind(this),
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
definition: {
|
|
487
|
+
name: "pica_physical_assets_unlink_work",
|
|
488
|
+
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).",
|
|
489
|
+
inputSchema: {
|
|
490
|
+
type: "object",
|
|
491
|
+
properties: {
|
|
492
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
493
|
+
linkId: {
|
|
494
|
+
type: "string",
|
|
495
|
+
description: "ID of the work_production_assets row to withdraw",
|
|
496
|
+
},
|
|
497
|
+
},
|
|
498
|
+
required: ["assetId", "linkId"],
|
|
499
|
+
},
|
|
500
|
+
},
|
|
501
|
+
executor: this.unlinkWorkAsset.bind(this),
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
definition: {
|
|
505
|
+
name: "pica_physical_assets_unlink_recording",
|
|
506
|
+
description: "Soft-unlink a physical asset from a recording. Sets confidence to 'withdrawn'; the row is preserved for the audit trail.",
|
|
507
|
+
inputSchema: {
|
|
508
|
+
type: "object",
|
|
509
|
+
properties: {
|
|
510
|
+
assetId: { type: "string", description: "Physical asset ID" },
|
|
511
|
+
linkId: {
|
|
512
|
+
type: "string",
|
|
513
|
+
description: "ID of the recording_production_assets row to withdraw",
|
|
514
|
+
},
|
|
515
|
+
},
|
|
516
|
+
required: ["assetId", "linkId"],
|
|
517
|
+
},
|
|
518
|
+
},
|
|
519
|
+
executor: this.unlinkRecordingAsset.bind(this),
|
|
520
|
+
},
|
|
521
|
+
];
|
|
522
|
+
}
|
|
523
|
+
async listAssets(args) {
|
|
524
|
+
const assets = await this.pica.assets.list({
|
|
525
|
+
category: args.category,
|
|
526
|
+
limit: args.limit,
|
|
527
|
+
});
|
|
528
|
+
return formatStructuredList(Array.isArray(assets) ? assets : assets?.data || [], "asset");
|
|
529
|
+
}
|
|
530
|
+
async inspectAsset(args) {
|
|
531
|
+
const id = args.id;
|
|
532
|
+
const sections = args.sections;
|
|
533
|
+
const allSections = !sections || sections.length === 0;
|
|
534
|
+
const results = {};
|
|
535
|
+
const promises = [];
|
|
536
|
+
if (allSections || sections?.includes("basic")) {
|
|
537
|
+
promises.push((async () => {
|
|
538
|
+
try {
|
|
539
|
+
results.basic = await this.pica.assets.get(id);
|
|
540
|
+
}
|
|
541
|
+
catch (e) {
|
|
542
|
+
results.basic = {
|
|
543
|
+
error: e instanceof Error ? e.message : "Failed to fetch asset",
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
})());
|
|
547
|
+
}
|
|
548
|
+
if (allSections || sections?.includes("valuations")) {
|
|
549
|
+
promises.push((async () => {
|
|
550
|
+
try {
|
|
551
|
+
results.valuations = await this.pica.assets.valuations(id);
|
|
552
|
+
}
|
|
553
|
+
catch (e) {
|
|
554
|
+
results.valuations = {
|
|
555
|
+
error: e instanceof Error ? e.message : "Failed to fetch valuations",
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
})());
|
|
559
|
+
}
|
|
560
|
+
if (allSections || sections?.includes("market")) {
|
|
561
|
+
promises.push((async () => {
|
|
562
|
+
try {
|
|
563
|
+
results.market = await this.pica.assets.marketCheck(id);
|
|
564
|
+
}
|
|
565
|
+
catch (e) {
|
|
566
|
+
results.market = {
|
|
567
|
+
error: e instanceof Error ? e.message : "Failed to fetch market data",
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
})());
|
|
571
|
+
}
|
|
572
|
+
await Promise.all(promises);
|
|
573
|
+
const name = results.basic?.name || id;
|
|
574
|
+
return formatSuccess(`Asset: ${name}`, results);
|
|
575
|
+
}
|
|
576
|
+
async createAsset(args) {
|
|
577
|
+
const asset = await this.pica.assets.create(args);
|
|
578
|
+
return formatSuccess("Physical asset registered successfully", asset);
|
|
579
|
+
}
|
|
580
|
+
async updateAsset(args) {
|
|
581
|
+
const { id, ...updates } = args;
|
|
582
|
+
const asset = await this.pica.assets.update(id, updates);
|
|
583
|
+
return formatSuccess("Asset updated successfully", asset);
|
|
584
|
+
}
|
|
585
|
+
async deleteAsset(args) {
|
|
586
|
+
await this.pica.assets.delete(args.id);
|
|
587
|
+
return formatSuccess("Asset deleted successfully");
|
|
588
|
+
}
|
|
589
|
+
async assetStats(_args) {
|
|
590
|
+
const stats = await this.pica.assets.stats();
|
|
591
|
+
return formatAsText(stats);
|
|
592
|
+
}
|
|
593
|
+
async assetExport(_args) {
|
|
594
|
+
const result = await this.pica.assets.exportAll();
|
|
595
|
+
return formatAsText(result);
|
|
596
|
+
}
|
|
597
|
+
// --- Production-asset link handlers (ADR-156 op #3) ---
|
|
598
|
+
async linkAssetToWork(args) {
|
|
599
|
+
const assetId = args.assetId;
|
|
600
|
+
const result = await this.pica.assets.linkWork(assetId, {
|
|
601
|
+
workId: args.workId,
|
|
602
|
+
relationship: args.relationship,
|
|
603
|
+
evidenceType: args.evidenceType,
|
|
604
|
+
evidenceDocumentId: args.evidenceDocumentId,
|
|
605
|
+
evidenceUrl: args.evidenceUrl,
|
|
606
|
+
notes: args.notes,
|
|
607
|
+
});
|
|
608
|
+
return formatSuccess("Asset linked to work", result);
|
|
609
|
+
}
|
|
610
|
+
async linkAssetToRecording(args) {
|
|
611
|
+
const assetId = args.assetId;
|
|
612
|
+
const result = await this.pica.assets.linkRecording(assetId, {
|
|
613
|
+
recordingId: args.recordingId,
|
|
614
|
+
relationship: args.relationship,
|
|
615
|
+
evidenceType: args.evidenceType,
|
|
616
|
+
evidenceDocumentId: args.evidenceDocumentId,
|
|
617
|
+
evidenceUrl: args.evidenceUrl,
|
|
618
|
+
notes: args.notes,
|
|
619
|
+
});
|
|
620
|
+
return formatSuccess("Asset linked to recording", result);
|
|
621
|
+
}
|
|
622
|
+
async unlinkWorkAsset(args) {
|
|
623
|
+
await this.pica.assets.unlinkWork(args.assetId, args.linkId);
|
|
624
|
+
return formatSuccess("Work asset link withdrawn (confidence='withdrawn', row preserved for audit trail)");
|
|
625
|
+
}
|
|
626
|
+
async unlinkRecordingAsset(args) {
|
|
627
|
+
await this.pica.assets.unlinkRecording(args.assetId, args.linkId);
|
|
628
|
+
return formatSuccess("Recording asset link withdrawn (confidence='withdrawn', row preserved for audit trail)");
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
//# 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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"}
|