@withpica/mcp-server 2.11.0 → 2.23.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +639 -1
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +3 -2
  4. package/dist/config.js.map +1 -1
  5. package/dist/prompts/index.d.ts +48 -16
  6. package/dist/prompts/index.d.ts.map +1 -1
  7. package/dist/prompts/index.js +320 -607
  8. package/dist/prompts/index.js.map +1 -1
  9. package/dist/tools/agreement-types.d.ts.map +1 -1
  10. package/dist/tools/agreement-types.js +14 -129
  11. package/dist/tools/agreement-types.js.map +1 -1
  12. package/dist/tools/agreements.d.ts.map +1 -1
  13. package/dist/tools/agreements.js +11 -109
  14. package/dist/tools/agreements.js.map +1 -1
  15. package/dist/tools/assets.d.ts.map +1 -1
  16. package/dist/tools/assets.js +17 -257
  17. package/dist/tools/assets.js.map +1 -1
  18. package/dist/tools/audit.d.ts +19 -0
  19. package/dist/tools/audit.d.ts.map +1 -0
  20. package/dist/tools/audit.js +57 -0
  21. package/dist/tools/audit.js.map +1 -0
  22. package/dist/tools/bulk.d.ts +7 -1
  23. package/dist/tools/bulk.d.ts.map +1 -1
  24. package/dist/tools/bulk.js +24 -2
  25. package/dist/tools/bulk.js.map +1 -1
  26. package/dist/tools/credits.d.ts.map +1 -1
  27. package/dist/tools/credits.js +27 -13
  28. package/dist/tools/credits.js.map +1 -1
  29. package/dist/tools/discovery.d.ts.map +1 -1
  30. package/dist/tools/discovery.js +25 -0
  31. package/dist/tools/discovery.js.map +1 -1
  32. package/dist/tools/enrichment.d.ts +47 -0
  33. package/dist/tools/enrichment.d.ts.map +1 -1
  34. package/dist/tools/enrichment.js +416 -19
  35. package/dist/tools/enrichment.js.map +1 -1
  36. package/dist/tools/index.d.ts.map +1 -1
  37. package/dist/tools/index.js +17 -0
  38. package/dist/tools/index.js.map +1 -1
  39. package/dist/tools/labels.d.ts +20 -0
  40. package/dist/tools/labels.d.ts.map +1 -0
  41. package/dist/tools/labels.js +47 -0
  42. package/dist/tools/labels.js.map +1 -0
  43. package/dist/tools/metadata.d.ts.map +1 -1
  44. package/dist/tools/metadata.js +93 -0
  45. package/dist/tools/metadata.js.map +1 -1
  46. package/dist/tools/multimedia.d.ts.map +1 -1
  47. package/dist/tools/multimedia.js +86 -11
  48. package/dist/tools/multimedia.js.map +1 -1
  49. package/dist/tools/notes.d.ts.map +1 -1
  50. package/dist/tools/notes.js +4 -1
  51. package/dist/tools/notes.js.map +1 -1
  52. package/dist/tools/people.d.ts +228 -4
  53. package/dist/tools/people.d.ts.map +1 -1
  54. package/dist/tools/people.js +238 -262
  55. package/dist/tools/people.js.map +1 -1
  56. package/dist/tools/projects.d.ts +1 -0
  57. package/dist/tools/projects.d.ts.map +1 -1
  58. package/dist/tools/projects.js +188 -17
  59. package/dist/tools/projects.js.map +1 -1
  60. package/dist/tools/publishers.d.ts +15 -1
  61. package/dist/tools/publishers.d.ts.map +1 -1
  62. package/dist/tools/publishers.js +43 -9
  63. package/dist/tools/publishers.js.map +1 -1
  64. package/dist/tools/recordings.d.ts +53 -2
  65. package/dist/tools/recordings.d.ts.map +1 -1
  66. package/dist/tools/recordings.js +185 -122
  67. package/dist/tools/recordings.js.map +1 -1
  68. package/dist/tools/recovery-hints.d.ts.map +1 -1
  69. package/dist/tools/recovery-hints.js +49 -0
  70. package/dist/tools/recovery-hints.js.map +1 -1
  71. package/dist/tools/releases.d.ts +19 -1
  72. package/dist/tools/releases.d.ts.map +1 -1
  73. package/dist/tools/releases.js +538 -32
  74. package/dist/tools/releases.js.map +1 -1
  75. package/dist/tools/sessions.d.ts.map +1 -1
  76. package/dist/tools/sessions.js +42 -8
  77. package/dist/tools/sessions.js.map +1 -1
  78. package/dist/tools/settings.d.ts +4 -0
  79. package/dist/tools/settings.d.ts.map +1 -1
  80. package/dist/tools/settings.js +155 -1
  81. package/dist/tools/settings.js.map +1 -1
  82. package/dist/tools/share-links.d.ts.map +1 -1
  83. package/dist/tools/share-links.js +19 -53
  84. package/dist/tools/share-links.js.map +1 -1
  85. package/dist/tools/split-sheets.d.ts.map +1 -1
  86. package/dist/tools/split-sheets.js +3 -42
  87. package/dist/tools/split-sheets.js.map +1 -1
  88. package/dist/tools/team.d.ts.map +1 -1
  89. package/dist/tools/team.js +9 -4
  90. package/dist/tools/team.js.map +1 -1
  91. package/dist/tools/works.d.ts +27 -1
  92. package/dist/tools/works.d.ts.map +1 -1
  93. package/dist/tools/works.js +119 -219
  94. package/dist/tools/works.js.map +1 -1
  95. package/package.json +3 -2
  96. package/server.json +2 -2
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
- import { formatAsText, formatSuccess, formatStructuredList, } from "@withpica/mcp-utils";
2
+ import { formatAsText, formatSuccess, formatStructuredList, PHYSICAL_ASSETS_WRITE_PROPERTIES, PHYSICAL_ASSETS_CREATE_REQUIRED, PHYSICAL_ASSETS_UPDATE_REQUIRED, } from "@withpica/mcp-utils";
3
3
  export class AssetsTools {
4
4
  pica;
5
5
  constructor(pica) {
@@ -56,156 +56,17 @@ export class AssetsTools {
56
56
  {
57
57
  definition: {
58
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.",
59
+ description: "Register a new physical asset — instrument, equipment, software, " +
60
+ "studio space, or other (matches the physical_assets_asset_type_check " +
61
+ "DB constraint). Tracks identity, condition, acquisition, photos, and " +
62
+ "status as real columns. Valuation and insurance details belong inside " +
63
+ "`external_references` jsonb (see key enumeration on that field). " +
64
+ "Pair with pica_upload (accept: 'image') to capture photo evidence via " +
65
+ "a drop zone.",
63
66
  inputSchema: {
64
67
  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,
68
+ properties: PHYSICAL_ASSETS_WRITE_PROPERTIES,
69
+ required: [...PHYSICAL_ASSETS_CREATE_REQUIRED],
209
70
  },
210
71
  },
211
72
  executor: this.createAsset.bind(this),
@@ -213,120 +74,19 @@ export class AssetsTools {
213
74
  {
214
75
  definition: {
215
76
  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 " +
77
+ description: "Update a physical asset. All create fields are optional on update; " +
78
+ "`id` is required. Valuation and insurance changes go through " +
79
+ "`external_references` (current_valuation, valuation_source, " +
80
+ "reverb_listing_url, insurer, insured_value, etc.) — there is no " +
81
+ "top-level valuation column on physical_assets. Pair with pica_upload " +
218
82
  "(accept: 'image') to add more photo evidence.",
219
83
  inputSchema: {
220
84
  type: "object",
221
85
  properties: {
222
86
  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
- },
87
+ ...PHYSICAL_ASSETS_WRITE_PROPERTIES,
327
88
  },
328
- required: ["id"],
329
- additionalProperties: true,
89
+ required: [...PHYSICAL_ASSETS_UPDATE_REQUIRED],
330
90
  },
331
91
  },
332
92
  executor: this.updateAsset.bind(this),
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Audit Tools — ADR-154 F6
3
+ *
4
+ * Lets agents read their own recent MCP tool executions from mcp_audit_log.
5
+ * Scoped to the caller's organisation; only mutating + destructive calls
6
+ * are recorded (read tools are not logged by default).
7
+ */
8
+ import { PicaClient } from "@withpica/mcp-sdk";
9
+ import { ToolDefinition, ToolExecutor } from "@withpica/mcp-utils";
10
+ export declare class AuditTools {
11
+ private pica;
12
+ constructor(pica: PicaClient);
13
+ getTools(): Array<{
14
+ definition: ToolDefinition;
15
+ executor: ToolExecutor;
16
+ }>;
17
+ private listAudit;
18
+ }
19
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,UAAU;IACrB,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;YA2C3D,SAAS;CAaxB"}
@@ -0,0 +1,57 @@
1
+ // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
+ import { formatStructuredList, } from "@withpica/mcp-utils";
3
+ export class AuditTools {
4
+ pica;
5
+ constructor(pica) {
6
+ this.pica = pica;
7
+ }
8
+ getTools() {
9
+ return [
10
+ {
11
+ definition: {
12
+ name: "pica_audit_list",
13
+ description: "List recent MCP tool executions for this workspace. Use to recall what AI actions have been taken — what was created, updated, deleted, or attempted. Only mutating and destructive calls are recorded; read-only queries are not. Scoped to the current organisation.",
14
+ inputSchema: {
15
+ type: "object",
16
+ properties: {
17
+ limit: {
18
+ type: "number",
19
+ description: "Max number of entries to return (default 25, max 100).",
20
+ },
21
+ since: {
22
+ type: "string",
23
+ description: "ISO 8601 timestamp — only return entries created at or after this time (e.g. '2026-04-01T00:00:00Z').",
24
+ },
25
+ tool_name: {
26
+ type: "string",
27
+ description: "Filter to a single tool by exact name (e.g. 'pica_works_create').",
28
+ },
29
+ risk_level: {
30
+ type: "string",
31
+ enum: ["safe", "mutating", "destructive"],
32
+ description: "Filter by risk classification.",
33
+ },
34
+ result_status: {
35
+ type: "string",
36
+ enum: ["success", "error", "confirmation_required"],
37
+ description: "Filter by execution outcome.",
38
+ },
39
+ },
40
+ },
41
+ },
42
+ executor: this.listAudit.bind(this),
43
+ },
44
+ ];
45
+ }
46
+ async listAudit(args) {
47
+ const entries = await this.pica.audit.list({
48
+ limit: typeof args.limit === "number" ? args.limit : undefined,
49
+ since: typeof args.since === "string" ? args.since : undefined,
50
+ tool_name: typeof args.tool_name === "string" ? args.tool_name : undefined,
51
+ risk_level: typeof args.risk_level === "string" ? args.risk_level : undefined,
52
+ result_status: typeof args.result_status === "string" ? args.result_status : undefined,
53
+ });
54
+ return formatStructuredList(entries, "audit_entry");
55
+ }
56
+ }
57
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAW7D,OAAO,EAIL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,UAAU;IACb,IAAI,CAAa;IAEzB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EACT,wQAAwQ;oBAC1Q,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,wDAAwD;6BAC3D;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,uGAAuG;6BAC1G;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,mEAAmE;6BACtE;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC;gCACzC,WAAW,EAAE,gCAAgC;6BAC9C;4BACD,aAAa,EAAE;gCACb,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,uBAAuB,CAAC;gCACnD,WAAW,EAAE,8BAA8B;6BAC5C;yBACF;qBACF;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aACpC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAyB;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACzC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC9D,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC9D,SAAS,EACP,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACjE,UAAU,EACR,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACnE,aAAa,EACX,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;SAC1E,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,5 +1,11 @@
1
1
  /**
2
- * Bulk Operations Tools - MCP tools for batch updates
2
+ * Bulk Operations Tools MCP tools for batch updates.
3
+ *
4
+ * ADR-174 Phase 2 item 2 follow-up: `pica_works_bulk_update.updates`
5
+ * validates against `WORK_WRITE_PROPERTIES` — the same canonical source
6
+ * of truth that gates `pica_works_update`. Without this, bulk update is
7
+ * the last surface that still accepts any key (the silent-data-loss
8
+ * vector the audit flagged at row 25).
3
9
  */
4
10
  import { PicaClient } from "@withpica/mcp-sdk";
5
11
  import { ToolDefinition, ToolExecutor } from "./index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/tools/bulk.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,SAAS;IACpB,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;YA0D3D,eAAe;YAkBf,qBAAqB;CAmBpC"}
1
+ {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/tools/bulk.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAWtE,qBAAa,SAAS;IACpB,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;YA+D3D,eAAe;YA8Bf,qBAAqB;CAmBpC"}
@@ -1,5 +1,12 @@
1
1
  // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
2
  import { formatSuccess, formatValidationError } from "@withpica/mcp-utils";
3
+ import { WORK_WRITE_PROPERTIES } from "./works.js";
4
+ /**
5
+ * Set of legal keys for the bulk `updates` object. Mirrors the
6
+ * `pica_works_update` schema exactly — if it's not writable singly,
7
+ * it's not writable in bulk either.
8
+ */
9
+ const BULK_UPDATE_ALLOWED_KEYS = new Set(Object.keys(WORK_WRITE_PROPERTIES));
3
10
  export class BulkTools {
4
11
  pica;
5
12
  constructor(pica) {
@@ -10,7 +17,10 @@ export class BulkTools {
10
17
  {
11
18
  definition: {
12
19
  name: "pica_works_bulk_update",
13
- description: "Batch update multiple works at once (status, type, or other fields)",
20
+ description: "Batch update multiple works at once. The `updates` object validates against the same " +
21
+ "schema as `pica_works_update` — only real `works` columns are accepted. " +
22
+ "Phantom keys (label, upc, album_name, album_art_url, album_release_date, track_number, " +
23
+ "spotify_url) are rejected with the same redirect hints as the single-update tool.",
14
24
  inputSchema: {
15
25
  type: "object",
16
26
  properties: {
@@ -21,7 +31,9 @@ export class BulkTools {
21
31
  },
22
32
  updates: {
23
33
  type: "object",
24
- description: "Fields to update on all works (e.g. { status: 'verified', work_type: 'composition' })",
34
+ description: "Fields to apply to every work in `work_ids`. Same schema as `pica_works_update` " +
35
+ "minus the `id` field. Every key must be a real `works` column.",
36
+ properties: WORK_WRITE_PROPERTIES,
25
37
  },
26
38
  },
27
39
  required: ["work_ids", "updates"],
@@ -68,6 +80,16 @@ export class BulkTools {
68
80
  updates: "must contain at least one field",
69
81
  });
70
82
  }
83
+ // ADR-174 Phase 2 — every key must be a real `works` column. Without
84
+ // this runtime check, an agent could still call the tool with a
85
+ // phantom key (e.g. upc) and the HTTP backstop would 400 per row —
86
+ // wasteful and opaque. Fail fast at the tool boundary instead.
87
+ const invalidKeys = Object.keys(args.updates).filter((k) => !BULK_UPDATE_ALLOWED_KEYS.has(k));
88
+ if (invalidKeys.length > 0) {
89
+ return formatValidationError({
90
+ updates: `unknown field(s): ${invalidKeys.join(", ")}. Allowed fields match pica_works_update: ${[...BULK_UPDATE_ALLOWED_KEYS].sort().join(", ")}`,
91
+ });
92
+ }
71
93
  const result = await this.pica.bulk.updateWorks(args.work_ids, args.updates);
72
94
  return formatSuccess(`Bulk updated ${args.work_ids.length} works`, result);
73
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../src/tools/bulk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../src/tools/bulk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"credits.d.ts","sourceRoot":"","sources":["../../src/tools/credits.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AActE,qBAAa,YAAY;IACvB,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;YA4I3D,UAAU;YAeV,WAAW;YA2BX,aAAa;CA+L5B"}
1
+ {"version":3,"file":"credits.d.ts","sourceRoot":"","sources":["../../src/tools/credits.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AActE,qBAAa,YAAY;IACvB,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;YAyJ3D,UAAU;YAeV,WAAW;YA2BX,aAAa;CAoM5B"}
@@ -43,7 +43,8 @@ export class CreditsTools {
43
43
  name: "pica_credits_update",
44
44
  description: "Set credits on a work. Replaces all existing credits. Splits must total 100%. " +
45
45
  "15 roles: writer, composer, arranger, lyricist, producer, performer, engineer, mixer, mastering, owner, vocalist, instrumentalist, conductor, programmer, remixer. " +
46
- "Supports publisher fields (publisher_name, publisher_ipi, publisher_split_percentage) and territory/rights metadata. " +
46
+ "For publishing credits, pass publisher_id (resolve a publisher name/IPI to an id via pica_publishers_query, or create one via pica_publishers_create). " +
47
+ "Supports territory/rights metadata plus is_primary / notes / attestation_status. " +
47
48
  "IMPORTANT: After updating, call pica_credits_list to verify the credits actually persisted — silent failures are possible if roles are invalid. " +
48
49
  "→ then: pica_credits_list (verify saved), pica_works_inspect (check progress)",
49
50
  inputSchema: {
@@ -65,7 +66,7 @@ export class CreditsTools {
65
66
  },
66
67
  role: {
67
68
  type: "string",
68
- description: "Role: writer, composer, arranger, lyricist, producer, performer, engineer, mixer, mastering, owner, vocalist, instrumentalist, conductor, programmer, remixer",
69
+ description: "Role (stored as credit_type on work_credits). One of: writer, composer, arranger, lyricist, producer, performer, engineer, mixer, mastering, owner, vocalist, instrumentalist, conductor, programmer, remixer.",
69
70
  enum: [
70
71
  "writer",
71
72
  "composer",
@@ -86,15 +87,11 @@ export class CreditsTools {
86
87
  },
87
88
  splits: {
88
89
  type: "number",
89
- description: "Percentage split (0-100). All splits must total 100%.",
90
+ description: "Percentage split (0-100), stored as writer_split_percentage on work_credits. All splits across the credits array must total 100%.",
90
91
  },
91
- publisher_name: {
92
+ publisher_id: {
92
93
  type: "string",
93
- description: "Publisher name for this credit (optional for publishing credits)",
94
- },
95
- publisher_ipi: {
96
- type: "string",
97
- description: "Publisher's IPI number (9-11 digits)",
94
+ description: "Publisher UUID on global_publishers. Resolve a publisher name or IPI to an id via pica_publishers_query, or create one via pica_publishers_create. Required when publisher_split_percentage is set.",
98
95
  },
99
96
  publisher_split_percentage: {
100
97
  type: "number",
@@ -123,6 +120,19 @@ export class CreditsTools {
123
120
  type: "string",
124
121
  description: "When rights end (ISO date). Null = perpetual.",
125
122
  },
123
+ is_primary: {
124
+ type: "boolean",
125
+ description: "Mark this credit as the primary attribution for the person on this work.",
126
+ },
127
+ notes: {
128
+ type: "string",
129
+ description: "Free-text notes about this credit (e.g., recording-session context, contribution specifics).",
130
+ },
131
+ attestation_status: {
132
+ type: "string",
133
+ enum: ["pending", "attested", "disputed", "declined"],
134
+ description: "Attestation status. Default: pending. Service-managed fields attested_at / attested_by are set by the attestation workflow, not this tool.",
135
+ },
126
136
  },
127
137
  required: ["person_id", "role", "splits"],
128
138
  },
@@ -193,10 +203,8 @@ export class CreditsTools {
193
203
  role: c.role,
194
204
  splits: c.splits || 0,
195
205
  };
196
- if (c.publisher_name)
197
- credit.publisher_name = c.publisher_name;
198
- if (c.publisher_ipi)
199
- credit.publisher_ipi = c.publisher_ipi;
206
+ if (c.publisher_id)
207
+ credit.publisher_id = c.publisher_id;
200
208
  if (c.publisher_split_percentage !== undefined)
201
209
  credit.publisher_split_percentage = c.publisher_split_percentage;
202
210
  if (c.territory)
@@ -207,6 +215,12 @@ export class CreditsTools {
207
215
  credit.start_date = c.start_date;
208
216
  if (c.end_date)
209
217
  credit.end_date = c.end_date;
218
+ if (c.is_primary !== undefined)
219
+ credit.is_primary = c.is_primary;
220
+ if (c.notes !== undefined)
221
+ credit.notes = c.notes;
222
+ if (c.attestation_status)
223
+ credit.attestation_status = c.attestation_status;
210
224
  return credit;
211
225
  });
212
226
  const publishingCredits = allCredits.filter((c) => PUBLISHING_ROLES.has(String(c.role || "writer")