@withpica/mcp-server 2.29.0 → 2.31.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 (91) hide show
  1. package/CHANGELOG.md +152 -1
  2. package/dist/__mocks__/mppx-mcp-sdk-server.d.ts +4 -4
  3. package/dist/__mocks__/mppx-server.d.ts +7 -7
  4. package/dist/server.d.ts.map +1 -1
  5. package/dist/server.js +6 -1
  6. package/dist/server.js.map +1 -1
  7. package/dist/tools/agreement-types.d.ts.map +1 -1
  8. package/dist/tools/agreement-types.js +6 -6
  9. package/dist/tools/agreement-types.js.map +1 -1
  10. package/dist/tools/agreements.d.ts.map +1 -1
  11. package/dist/tools/agreements.js +15 -8
  12. package/dist/tools/agreements.js.map +1 -1
  13. package/dist/tools/app-tools.d.ts +0 -6
  14. package/dist/tools/app-tools.d.ts.map +1 -1
  15. package/dist/tools/app-tools.js +117 -23
  16. package/dist/tools/app-tools.js.map +1 -1
  17. package/dist/tools/assets.d.ts.map +1 -1
  18. package/dist/tools/assets.js +35 -9
  19. package/dist/tools/assets.js.map +1 -1
  20. package/dist/tools/audio-files.d.ts.map +1 -1
  21. package/dist/tools/audio-files.js +13 -3
  22. package/dist/tools/audio-files.js.map +1 -1
  23. package/dist/tools/audit.js +1 -1
  24. package/dist/tools/audit.js.map +1 -1
  25. package/dist/tools/bulk.d.ts.map +1 -1
  26. package/dist/tools/bulk.js +59 -4
  27. package/dist/tools/bulk.js.map +1 -1
  28. package/dist/tools/collaborators.d.ts.map +1 -1
  29. package/dist/tools/collaborators.js +74 -11
  30. package/dist/tools/collaborators.js.map +1 -1
  31. package/dist/tools/credits.d.ts.map +1 -1
  32. package/dist/tools/credits.js +26 -2
  33. package/dist/tools/credits.js.map +1 -1
  34. package/dist/tools/custody.d.ts.map +1 -1
  35. package/dist/tools/custody.js +8 -8
  36. package/dist/tools/custody.js.map +1 -1
  37. package/dist/tools/dashboard.d.ts.map +1 -1
  38. package/dist/tools/dashboard.js +8 -8
  39. package/dist/tools/dashboard.js.map +1 -1
  40. package/dist/tools/directory.js +1 -1
  41. package/dist/tools/directory.js.map +1 -1
  42. package/dist/tools/discovery.d.ts +2 -2
  43. package/dist/tools/discovery.d.ts.map +1 -1
  44. package/dist/tools/discovery.js +10 -7
  45. package/dist/tools/discovery.js.map +1 -1
  46. package/dist/tools/documents.js +1 -1
  47. package/dist/tools/documents.js.map +1 -1
  48. package/dist/tools/enrichment.d.ts.map +1 -1
  49. package/dist/tools/enrichment.js +5 -5
  50. package/dist/tools/enrichment.js.map +1 -1
  51. package/dist/tools/exports.d.ts.map +1 -1
  52. package/dist/tools/exports.js +4 -4
  53. package/dist/tools/exports.js.map +1 -1
  54. package/dist/tools/index.d.ts +109 -4
  55. package/dist/tools/index.d.ts.map +1 -1
  56. package/dist/tools/index.js +134 -4
  57. package/dist/tools/index.js.map +1 -1
  58. package/dist/tools/memory.js +1 -1
  59. package/dist/tools/memory.js.map +1 -1
  60. package/dist/tools/metadata.d.ts.map +1 -1
  61. package/dist/tools/metadata.js +20 -2
  62. package/dist/tools/metadata.js.map +1 -1
  63. package/dist/tools/my-reported-issues.js +5 -5
  64. package/dist/tools/my-reported-issues.js.map +1 -1
  65. package/dist/tools/people.d.ts.map +1 -1
  66. package/dist/tools/people.js +4 -4
  67. package/dist/tools/people.js.map +1 -1
  68. package/dist/tools/public-filter.d.ts +43 -0
  69. package/dist/tools/public-filter.d.ts.map +1 -0
  70. package/dist/tools/public-filter.js +382 -0
  71. package/dist/tools/public-filter.js.map +1 -0
  72. package/dist/tools/recordings.d.ts +6 -2
  73. package/dist/tools/recordings.d.ts.map +1 -1
  74. package/dist/tools/recordings.js +53 -8
  75. package/dist/tools/recordings.js.map +1 -1
  76. package/dist/tools/releases.js +3 -3
  77. package/dist/tools/releases.js.map +1 -1
  78. package/dist/tools/settings.js +2 -2
  79. package/dist/tools/settings.js.map +1 -1
  80. package/dist/tools/share-links.d.ts +3 -0
  81. package/dist/tools/share-links.d.ts.map +1 -1
  82. package/dist/tools/share-links.js +97 -1
  83. package/dist/tools/share-links.js.map +1 -1
  84. package/dist/tools/split-sheets.d.ts.map +1 -1
  85. package/dist/tools/split-sheets.js +38 -4
  86. package/dist/tools/split-sheets.js.map +1 -1
  87. package/dist/tools/works.d.ts.map +1 -1
  88. package/dist/tools/works.js +158 -76
  89. package/dist/tools/works.js.map +1 -1
  90. package/package.json +2 -2
  91. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Public discovery filter — ADR-202.
3
+ *
4
+ * Filters and sanitizes ToolDefinitions for the unauthenticated
5
+ * /api/mcp/discover endpoint. Default-exclude: a tool not classified
6
+ * here is dropped from the public surface.
7
+ */
8
+ import type { ToolDefinition, ToolMetadata } from "./index.js";
9
+ export interface PublicToolDefinition {
10
+ name: string;
11
+ description: string;
12
+ inputSchema: ToolDefinition["inputSchema"];
13
+ annotations?: ToolDefinition["annotations"];
14
+ }
15
+ export interface FilterOptions {
16
+ /** Look up risk metadata for a given tool name. */
17
+ metadataLookup: (name: string) => ToolMetadata | undefined;
18
+ /** When true (Phase 1 default), drop any tool whose risk is not "safe". */
19
+ readOnlyOnly?: boolean;
20
+ }
21
+ /**
22
+ * Apply ADR-202 filtering to a list of ToolDefinitions.
23
+ *
24
+ * Order of operations:
25
+ * 1. Drop META_TOOL_EXCLUDE
26
+ * 2. Drop CLASS_C_EXCLUDE
27
+ * 3. Drop anything not in CLASS_A_ALLOWLIST and not in CLASS_B_SANITIZED
28
+ * (default-exclude)
29
+ * 4. If readOnlyOnly: drop tools whose risk metadata is not "safe"
30
+ * 5. Replace description for CLASS_B_SANITIZED entries
31
+ * 6. Strip executor reference (return PublicToolDefinition only)
32
+ */
33
+ export declare function filterToolsForPublicDiscovery(tools: ToolDefinition[], options: FilterOptions): PublicToolDefinition[];
34
+ /** Returns the first forbidden keyword found in a string, or null. */
35
+ export declare function findForbiddenKeyword(text: string): string | null;
36
+ export declare const _internal: {
37
+ CLASS_A_ALLOWLIST: ReadonlySet<string>;
38
+ CLASS_B_SANITIZED: Readonly<Record<string, string>>;
39
+ CLASS_C_EXCLUDE: ReadonlySet<string>;
40
+ META_TOOL_EXCLUDE: ReadonlySet<string>;
41
+ FORBIDDEN_KEYWORD_FRAGMENTS: readonly string[];
42
+ };
43
+ //# sourceMappingURL=public-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-filter.d.ts","sourceRoot":"","sources":["../../src/tools/public-filter.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+V/D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IAC3D,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,aAAa,GACrB,oBAAoB,EAAE,CA2BxB;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE;AAID,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
@@ -0,0 +1,382 @@
1
+ // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
+ // ── Class C: explicit exclude (Phase 1: empty per ADR-202 sign-off 2026-04-27) ──
3
+ const CLASS_C_EXCLUDE = new Set([]);
4
+ // ── Class B: include name, sanitized description ──
5
+ // The source-of-truth descriptions in the per-domain tool files name third-party
6
+ // services (MLC / ISNI / MusicBrainz / Spotify / YouTube / Discogs / ACRCloud /
7
+ // Librosa / Groq) or internal architecture (cascade engine / Tier A/B / identity
8
+ // graph / CAR scoring). The strings here are rewrites that preserve capability
9
+ // signal without leaking the algorithm or vendor binding.
10
+ const CLASS_B_SANITIZED = {
11
+ // Reclassified from Class C → B per 2026-04-27 sign-off
12
+ pica_graph_traverse: "Traverse identifier-based connections from any external identifier. Returns connected works, recordings, and people across the catalog.",
13
+ pica_run_work_cascade: "Re-run metadata enrichment for a work to fill gaps from external sources.",
14
+ pica_run_person_cascade: "Re-run metadata enrichment for a person to fill gaps from external identity sources.",
15
+ pica_cascade_health: "Snapshot of recent metadata-enrichment activity — outcome counts and recent failures.",
16
+ pica_export_catalog_asset_report: "Generate a catalog asset report — a structured summary of catalog completeness and provenance.",
17
+ pica_car_preview: "Preview a catalog asset report inline before generating the full export.",
18
+ // Original Class B
19
+ pica_resolve_work: "Resolve a work against external metadata sources. Returns structured proposals and applied updates.",
20
+ pica_resolve_person: "Resolve a person against external identity sources. Returns structured proposals and applied updates.",
21
+ pica_resolve_recording: "Resolve a recording against external metadata sources. Returns structured proposals and applied updates.",
22
+ pica_enrichment_candidates: "Find catalog entries that are good candidates for metadata enrichment.",
23
+ pica_enrichment_compare: "Compare what external sources say about a catalog entry, side by side.",
24
+ pica_registrations_compare: "Compare a work's registration status across society and platform records.",
25
+ pica_enrichment_propose: "Propose a metadata enrichment from agent research; goes to a review queue.",
26
+ pica_enrichment_proposals_list: "List pending metadata-enrichment proposals awaiting review.",
27
+ pica_enrichment_proposal_apply: "Apply a previously proposed metadata enrichment.",
28
+ pica_enrichment_proposal_reject: "Reject a previously proposed metadata enrichment.",
29
+ pica_audio_analyze: "Analyze an audio file for tempo, key, energy, and lyric transcription.",
30
+ pica_audio_identify: "Identify a track via audio fingerprinting. Returns matched metadata with confidence score.",
31
+ pica_documents_analyse: "Analyse a document with AI. Extracts structured fields from invoices, statements, contracts.",
32
+ pica_import_streaming_link: "Import a work or recording from a public streaming-service link.",
33
+ pica_import_from_spotify: "Import a work or recording from a Spotify link.",
34
+ pica_import_youtube_link: "Import a recording from a YouTube link.",
35
+ pica_multimedia_import_url: "Import multimedia from a public URL.",
36
+ pica_multimedia_link_youtube: "Link a YouTube video to a work.",
37
+ pica_ingest_statement: "Ingest a royalty statement document into the catalog.",
38
+ };
39
+ // ── Class A: explicit allowlist, descriptions ship as-is ──
40
+ // Every Class A tool is enumerated here. New tools added to ToolRegistry must
41
+ // also be added to this list (or to CLASS_B_SANITIZED / CLASS_C_EXCLUDE) to
42
+ // appear on the public surface — default-exclude.
43
+ const CLASS_A_ALLOWLIST = new Set([
44
+ // Works
45
+ "pica_works_query",
46
+ "pica_works_inspect",
47
+ "pica_works_create",
48
+ "pica_works_update",
49
+ "pica_works_delete",
50
+ "pica_works_verify",
51
+ "pica_works_bulk_delete",
52
+ "pica_works_bulk_update",
53
+ // People
54
+ "pica_people_query",
55
+ "pica_people_inspect",
56
+ "pica_people_create",
57
+ "pica_people_update",
58
+ "pica_people_delete",
59
+ "pica_people_bulk_update_roles",
60
+ // Recordings
61
+ "pica_recordings_query",
62
+ "pica_recordings_inspect",
63
+ "pica_recordings_create",
64
+ "pica_recordings_update",
65
+ "pica_recordings_delete",
66
+ // Credits (work_credits)
67
+ "pica_credits_list",
68
+ "pica_credits_update",
69
+ // Agreements
70
+ "pica_agreements_query",
71
+ "pica_agreements_inspect",
72
+ "pica_agreements_create",
73
+ "pica_agreements_update",
74
+ "pica_agreements_delete",
75
+ "pica_agreements_link_work",
76
+ // Agreement types & templates
77
+ "pica_agreement_types_query",
78
+ "pica_agreement_types_inspect",
79
+ "pica_agreement_types_create",
80
+ "pica_agreement_types_update",
81
+ "pica_agreement_types_delete",
82
+ "pica_agreement_templates_render",
83
+ "pica_agreement_templates_duplicate",
84
+ "pica_agreement_templates_set_default",
85
+ // Splits
86
+ "pica_split_sheet_list",
87
+ "pica_split_sheet_get",
88
+ "pica_split_sheet_generate",
89
+ "pica_split_sheet_send",
90
+ "pica_recording_splits_list",
91
+ "pica_recording_splits_create",
92
+ "pica_recording_splits_verify",
93
+ // Royalties & statements
94
+ "pica_royalties_list",
95
+ "pica_royalties_get",
96
+ "pica_royalties_summary",
97
+ "pica_statements_list",
98
+ "pica_statements_get",
99
+ // Disputes
100
+ "pica_disputes_list",
101
+ // Custody (chain/ trade-secret service backs these — names + read-side
102
+ // descriptions are publicly used product language; algorithm stays sealed)
103
+ "pica_custody_list",
104
+ "pica_custody_history",
105
+ "pica_custody_claim",
106
+ "pica_custody_respond",
107
+ "pica_custody_resolve_pending",
108
+ "pica_custody_reconcile",
109
+ // Search & discovery substrate
110
+ "pica_search_all",
111
+ "pica_catalog_stats",
112
+ "pica_search_for_sync",
113
+ "pica_submit_license_enquiry",
114
+ "pica_claim_credit",
115
+ "pica_claim_custody",
116
+ "pica_claim_artist",
117
+ "pica_discoveries_query",
118
+ "pica_discoveries_review",
119
+ // Dashboard
120
+ "pica_dashboard_attention",
121
+ "pica_dashboard_briefing",
122
+ "pica_dashboard_pulse",
123
+ // MCP Apps cards (UI-only render, safe)
124
+ "pica_upload",
125
+ "pica_download",
126
+ // Audio (analyze + identify are Class B; the rest are A)
127
+ "pica_audio_query",
128
+ "pica_audio_inspect",
129
+ "pica_audio_presigned_upload",
130
+ "pica_audio_complete_upload",
131
+ // Multimedia (import_url + link_youtube are Class B; the rest are A)
132
+ "pica_multimedia_search",
133
+ "pica_multimedia_create",
134
+ "pica_multimedia_link_work",
135
+ // Uploads
136
+ "pica_upload_file",
137
+ "pica_upload_complete",
138
+ // Exports (CAR is Class B; the rest are A)
139
+ "pica_export_catalog_csv",
140
+ "pica_export_song_registration",
141
+ "pica_export_industry_ready",
142
+ "pica_export_ai_consent",
143
+ // Calendar
144
+ "pica_calendar_events",
145
+ // Duplicates
146
+ "pica_find_duplicates",
147
+ "pica_merge_duplicates",
148
+ // Projects
149
+ "pica_projects_list",
150
+ "pica_projects_get",
151
+ "pica_projects_create",
152
+ "pica_projects_update",
153
+ "pica_projects_delete",
154
+ "pica_projects_attach_works",
155
+ // Releases
156
+ "pica_releases_list",
157
+ "pica_releases_get",
158
+ "pica_releases_create",
159
+ "pica_releases_update",
160
+ "pica_releases_attach_track",
161
+ "pica_releases_list_tracks",
162
+ "pica_releases_detach_track",
163
+ "pica_releases_reorder_tracks",
164
+ "pica_releases_attach_recording_with_work",
165
+ "pica_releases_bulk_attach_tracks",
166
+ "pica_releases_move_track",
167
+ "pica_releases_attach_track_by_identifier",
168
+ "pica_releases_create_with_tracks",
169
+ "pica_releases_completeness_check",
170
+ // Sessions
171
+ "pica_sessions_list",
172
+ "pica_sessions_get",
173
+ "pica_sessions_create",
174
+ "pica_sessions_types",
175
+ // Notes
176
+ "pica_notes_list",
177
+ "pica_notes_get",
178
+ "pica_notes_create",
179
+ "pica_notes_delete",
180
+ // Physical assets
181
+ "pica_physical_assets_query",
182
+ "pica_physical_assets_inspect",
183
+ "pica_physical_assets_create",
184
+ "pica_physical_assets_update",
185
+ "pica_physical_assets_delete",
186
+ "pica_physical_assets_stats",
187
+ "pica_physical_assets_export",
188
+ "pica_physical_assets_link_work",
189
+ "pica_physical_assets_link_recording",
190
+ "pica_physical_assets_unlink_work",
191
+ "pica_physical_assets_unlink_recording",
192
+ // Analytics
193
+ "pica_carbon_footprint",
194
+ "pica_carbon_live",
195
+ "pica_provenance_stats",
196
+ "pica_provenance_work",
197
+ "pica_provenance_certificate",
198
+ "pica_catalog_diligence",
199
+ // Import (streaming/spotify/youtube/ingest_statement are Class B; the rest are A)
200
+ "pica_import_analyze",
201
+ "pica_import_validate",
202
+ "pica_import_execute",
203
+ "pica_import_fields",
204
+ "pica_import_template",
205
+ "pica_import_documents_query",
206
+ "pica_import_documents_inspect",
207
+ // Notifications
208
+ "pica_notifications_list",
209
+ "pica_notify_person",
210
+ "pica_notifications_mark_read",
211
+ // Collaborators
212
+ "pica_collaborators_invite",
213
+ "pica_collaborators_invites_list",
214
+ "pica_collaborators_invite_resend",
215
+ "pica_collaborators_incoming_list",
216
+ "pica_collaborators_accept",
217
+ "pica_collaborators_dispute",
218
+ "pica_collaborators_invite_bulk",
219
+ // Send hub
220
+ "pica_send_message",
221
+ "pica_send_query",
222
+ "pica_send_resend",
223
+ // Share links
224
+ "pica_share_links_list",
225
+ "pica_share_links_create",
226
+ // Telegram
227
+ "pica_telegram_status",
228
+ "pica_telegram_connect",
229
+ "pica_notify_user",
230
+ "pica_notify_user_at",
231
+ "pica_notify_user_list_pending",
232
+ "pica_notify_user_cancel",
233
+ // Publishers / labels
234
+ "pica_publishers_query",
235
+ "pica_publishers_create",
236
+ "pica_labels_query",
237
+ // Licensing
238
+ "pica_list_license_enquiries",
239
+ "pica_get_license_enquiry",
240
+ "pica_update_license_enquiry_status",
241
+ // Team
242
+ "pica_team_list",
243
+ "pica_team_get",
244
+ "pica_team_invite",
245
+ "pica_team_update_role",
246
+ "pica_team_remove",
247
+ // Audit
248
+ "pica_audit_list",
249
+ // Memory
250
+ "pica_memory_list",
251
+ "pica_memory_search",
252
+ "pica_memory_save",
253
+ "pica_memory_delete",
254
+ // Settings
255
+ "pica_storage_status",
256
+ "pica_organisation_profile",
257
+ "pica_user_profile",
258
+ "pica_directory_settings",
259
+ "pica_integrations_status",
260
+ "pica_get_privacy_settings",
261
+ "pica_update_privacy_settings",
262
+ "pica_export_my_data",
263
+ "pica_delete_my_account",
264
+ "pica_update_my_identity",
265
+ "pica_update_organisation_profile",
266
+ // Feedback / report-issue
267
+ "pica_submit_feedback",
268
+ "pica_report_issue",
269
+ "pica_my_reported_issues",
270
+ // Agent identity
271
+ "pica_create_agent_identity",
272
+ "pica_issue_agent_grant",
273
+ "pica_list_my_agent_grants",
274
+ "pica_revoke_agent_grant",
275
+ "pica_get_agent_activity",
276
+ ]);
277
+ // ── Meta-tools — never on the public surface ──
278
+ // pica_discover / pica_tool_details / pica_execute only make sense once
279
+ // authenticated; pica_sign_in / pica_sign_out are stdio-lobby tools.
280
+ const META_TOOL_EXCLUDE = new Set([
281
+ "pica_discover",
282
+ "pica_tool_details",
283
+ "pica_execute",
284
+ "pica_sign_in",
285
+ "pica_sign_out",
286
+ ]);
287
+ // ── Forbidden keywords (AC-4 in ADR-202) ──
288
+ // Sanitized descriptions must not contain these substrings (case-insensitive).
289
+ //
290
+ // Two classes of keywords:
291
+ // 1. Vendor / data-source names that betray our integration architecture
292
+ // (MLC source-of-truth, ISNI cascade source, MusicBrainz identity source,
293
+ // Wikidata identity gap-fill, Discogs match source, ACRCloud fingerprint
294
+ // vendor, Librosa/Groq/Whisper analysis libs).
295
+ // 2. Internal architecture terms (cascade engine, Tier A/B, identity graph,
296
+ // CAR scoring methodology, ADR numbers).
297
+ //
298
+ // Notably absent: "Spotify" and "YouTube". Those are entry-point platforms
299
+ // customers see in tool names like `pica_import_from_spotify` and
300
+ // `pica_multimedia_link_youtube` — hiding them in descriptions would gut the
301
+ // utility-signal of those tools without protecting any algorithm. They are
302
+ // public product surface, not source-weighting strategy.
303
+ //
304
+ // "CAR" alone is too short to forbid — use "CAR scoring" to allow the product
305
+ // name "Catalog Asset Report" while still flagging methodology references.
306
+ const FORBIDDEN_KEYWORD_FRAGMENTS = [
307
+ "MLC",
308
+ "ISNI",
309
+ "MusicBrainz",
310
+ "Wikidata",
311
+ "Discogs",
312
+ "ACRCloud",
313
+ "Librosa",
314
+ "Groq",
315
+ "Whisper",
316
+ "cascade",
317
+ "Tier A",
318
+ "Tier B",
319
+ "ADR-164",
320
+ "ADR-179",
321
+ "identity graph",
322
+ "identity-graph",
323
+ "CAR scoring",
324
+ ];
325
+ /**
326
+ * Apply ADR-202 filtering to a list of ToolDefinitions.
327
+ *
328
+ * Order of operations:
329
+ * 1. Drop META_TOOL_EXCLUDE
330
+ * 2. Drop CLASS_C_EXCLUDE
331
+ * 3. Drop anything not in CLASS_A_ALLOWLIST and not in CLASS_B_SANITIZED
332
+ * (default-exclude)
333
+ * 4. If readOnlyOnly: drop tools whose risk metadata is not "safe"
334
+ * 5. Replace description for CLASS_B_SANITIZED entries
335
+ * 6. Strip executor reference (return PublicToolDefinition only)
336
+ */
337
+ export function filterToolsForPublicDiscovery(tools, options) {
338
+ const readOnlyOnly = options.readOnlyOnly ?? true;
339
+ const result = [];
340
+ for (const tool of tools) {
341
+ if (META_TOOL_EXCLUDE.has(tool.name))
342
+ continue;
343
+ if (CLASS_C_EXCLUDE.has(tool.name))
344
+ continue;
345
+ const isB = tool.name in CLASS_B_SANITIZED;
346
+ const isA = CLASS_A_ALLOWLIST.has(tool.name);
347
+ if (!isA && !isB)
348
+ continue; // default-exclude
349
+ if (readOnlyOnly) {
350
+ const meta = options.metadataLookup(tool.name);
351
+ if (meta?.risk !== "safe")
352
+ continue;
353
+ }
354
+ const description = isB ? CLASS_B_SANITIZED[tool.name] : tool.description;
355
+ result.push({
356
+ name: tool.name,
357
+ description,
358
+ inputSchema: tool.inputSchema,
359
+ annotations: tool.annotations,
360
+ });
361
+ }
362
+ return result;
363
+ }
364
+ /** Returns the first forbidden keyword found in a string, or null. */
365
+ export function findForbiddenKeyword(text) {
366
+ const lower = text.toLowerCase();
367
+ for (const fragment of FORBIDDEN_KEYWORD_FRAGMENTS) {
368
+ if (lower.includes(fragment.toLowerCase()))
369
+ return fragment;
370
+ }
371
+ return null;
372
+ }
373
+ // Internal exports for test introspection only — consumers use
374
+ // filterToolsForPublicDiscovery + findForbiddenKeyword.
375
+ export const _internal = {
376
+ CLASS_A_ALLOWLIST,
377
+ CLASS_B_SANITIZED,
378
+ CLASS_C_EXCLUDE,
379
+ META_TOOL_EXCLUDE,
380
+ FORBIDDEN_KEYWORD_FRAGMENTS,
381
+ };
382
+ //# sourceMappingURL=public-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-filter.js","sourceRoot":"","sources":["../../src/tools/public-filter.ts"],"names":[],"mappings":"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"}
@@ -26,13 +26,17 @@
26
26
  * docs/audits/2026-04-14-mcp-db-reconciliation.md §3:
27
27
  * duration_ms, preview_url, album_art_url, spotify_url,
28
28
  * spotify_track_uri, spotify_track_id, youtube_video_id, youtube_url,
29
- * apple_music_url, deezer_track_id, mlc_recording_id, mlc_song_code,
30
- * isrc_prefix.
29
+ * apple_music_url, deezer_track_id, mlc_recording_id, mlc_song_code.
31
30
  *
32
31
  * Most of these are populated by the enrichment cascade on streaming
33
32
  * import; exposing them lets agents seed or override that data
34
33
  * deliberately rather than discovering — surprised — that the field
35
34
  * they thought they set was silently absent.
35
+ *
36
+ * `isrc_prefix` is intentionally NOT in this set — column is GENERATED
37
+ * ALWAYS in `public.recordings` (left(replace(isrc,'-',''),5)). Caught
38
+ * by ADR-198 Phase 1 contract — every write attempt 500'd with PG
39
+ * 428C9 "cannot insert non-DEFAULT value into generated column".
36
40
  */
37
41
  import { PicaClient } from "@withpica/mcp-sdk";
38
42
  import { ToolDefinition, ToolExecutor } from "./index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/tools/recordings.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkJvE,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IA4HzE;;OAEG;YACW,eAAe;IAkC7B;;OAEG;YACW,gBAAgB;IA2G9B;;;;;;;;OAQG;YACW,eAAe;IAU7B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,eAAe;CAM9B;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/tools/recordings.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,UAAU,EAAuB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAQtE;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6IvE,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAwIzE;;OAEG;YACW,eAAe;IAkC7B;;OAEG;YACW,gBAAgB;IAmH9B;;;;;;;;OAQG;YACW,eAAe;IAU7B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,eAAe;CAM9B;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,5 +1,46 @@
1
1
  // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
- import { formatSuccess, formatStructuredList, } from "@withpica/mcp-utils";
2
+ /**
3
+ * Recordings Tools — MCP tools for managing recordings.
4
+ *
5
+ * ADR-149 Phase 5b: Consolidated to query+inspect pattern.
6
+ * - pica_recordings_query replaces pica_recordings_list + pica_recordings_by_work
7
+ * - pica_recordings_inspect replaces pica_recordings_get (with sections support)
8
+ *
9
+ * ADR-174 Phase 2 item 3 reconciliation: the write surface covers only
10
+ * real columns on `public.recordings`. Phantom fields previously
11
+ * accepted via `additionalProperties: true` are gone; agents that
12
+ * tried to set them silently dropped data on the way to Postgres.
13
+ *
14
+ * Two pre-flight surprises documented inline below:
15
+ *
16
+ * 1. `title` is a legacy alias for `recording_title`. The HTTP route
17
+ * translates before the service sees the payload (POST since the
18
+ * route was written, PATCH only since ADR-174). The tool keeps
19
+ * `title` as the input field name for caller ergonomics; the
20
+ * description marks the rename explicitly.
21
+ *
22
+ * 2. Duration lives in `duration_ms` on recordings (works carry
23
+ * `duration_seconds`). Agents conflating the two get a 400 with
24
+ * a redirect from the route allow-list.
25
+ *
26
+ * Add-candidates surfaced per the audit at
27
+ * docs/audits/2026-04-14-mcp-db-reconciliation.md §3:
28
+ * duration_ms, preview_url, album_art_url, spotify_url,
29
+ * spotify_track_uri, spotify_track_id, youtube_video_id, youtube_url,
30
+ * apple_music_url, deezer_track_id, mlc_recording_id, mlc_song_code.
31
+ *
32
+ * Most of these are populated by the enrichment cascade on streaming
33
+ * import; exposing them lets agents seed or override that data
34
+ * deliberately rather than discovering — surprised — that the field
35
+ * they thought they set was silently absent.
36
+ *
37
+ * `isrc_prefix` is intentionally NOT in this set — column is GENERATED
38
+ * ALWAYS in `public.recordings` (left(replace(isrc,'-',''),5)). Caught
39
+ * by ADR-198 Phase 1 contract — every write attempt 500'd with PG
40
+ * 428C9 "cannot insert non-DEFAULT value into generated column".
41
+ */
42
+ import { EntityNotFoundError } from "@withpica/mcp-sdk";
43
+ import { formatSuccess, formatStructuredList, withBillingGate, } from "@withpica/mcp-utils";
3
44
  /**
4
45
  * Canonical write-schema for `recordings`. Every property must
5
46
  * correspond to a real column on `public.recordings` (or be the
@@ -65,10 +106,6 @@ const RECORDING_WRITE_PROPERTIES = {
65
106
  type: "string",
66
107
  description: "Where the ISRC came from (e.g. 'spotify', 'mlc', 'manual', 'ppl', 'apple_music', 'youtube_music', 'soundcloud', 'disco').",
67
108
  },
68
- isrc_prefix: {
69
- type: "string",
70
- description: "First five characters of the ISRC, used for label-prefix intelligence. Auto-derived in most write paths; settable for backfills.",
71
- },
72
109
  musicbrainz_recording_id: {
73
110
  type: "string",
74
111
  description: "MusicBrainz recording UUID",
@@ -228,7 +265,7 @@ export class RecordingsTools {
228
265
  required: ["title", "artist_name", "version_type"],
229
266
  },
230
267
  },
231
- executor: this.createRecording.bind(this),
268
+ executor: withBillingGate(this.pica, "recording creation", this.createRecording.bind(this)),
232
269
  },
233
270
  {
234
271
  definition: {
@@ -249,7 +286,7 @@ export class RecordingsTools {
249
286
  required: ["id"],
250
287
  },
251
288
  },
252
- executor: this.updateRecording.bind(this),
289
+ executor: withBillingGate(this.pica, "recording update", this.updateRecording.bind(this)),
253
290
  },
254
291
  {
255
292
  definition: {
@@ -266,7 +303,7 @@ export class RecordingsTools {
266
303
  required: ["id"],
267
304
  },
268
305
  },
269
- executor: this.deleteRecording.bind(this),
306
+ executor: withBillingGate(this.pica, "recording deletion", this.deleteRecording.bind(this)),
270
307
  },
271
308
  ];
272
309
  }
@@ -323,6 +360,14 @@ export class RecordingsTools {
323
360
  }
324
361
  }
325
362
  catch (error) {
363
+ // 404 on the primary entity is a hard error — propagate so the
364
+ // agent sees an explicit not-found signal instead of a 200 with
365
+ // a partial-empty payload (ADR-198 verification 2026-04-26 —
366
+ // pica_recordings_inspect was hallucinating into the void on
367
+ // missing route handlers / missing recordings).
368
+ if (error instanceof EntityNotFoundError) {
369
+ throw error;
370
+ }
326
371
  result.recording_error =
327
372
  error instanceof Error ? error.message : "Failed to fetch recording";
328
373
  }