@withpica/mcp-server 2.9.0 → 2.11.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 (43) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/dist/config.d.ts +9 -9
  3. package/dist/index.d.ts +1 -1
  4. package/dist/prompts/index.d.ts +34 -66
  5. package/dist/prompts/index.d.ts.map +1 -1
  6. package/dist/prompts/index.js +607 -320
  7. package/dist/prompts/index.js.map +1 -1
  8. package/dist/resources/index.d.ts +53 -53
  9. package/dist/server.d.ts +49 -49
  10. package/dist/tools/agreement-types.d.ts.map +1 -1
  11. package/dist/tools/agreement-types.js +19 -18
  12. package/dist/tools/agreement-types.js.map +1 -1
  13. package/dist/tools/app-tools.d.ts.map +1 -1
  14. package/dist/tools/app-tools.js +30 -8
  15. package/dist/tools/app-tools.js.map +1 -1
  16. package/dist/tools/audio-files.d.ts.map +1 -1
  17. package/dist/tools/audio-files.js +10 -2
  18. package/dist/tools/audio-files.js.map +1 -1
  19. package/dist/tools/collaborators.js +7 -7
  20. package/dist/tools/collaborators.js.map +1 -1
  21. package/dist/tools/custody.d.ts.map +1 -1
  22. package/dist/tools/custody.js +2 -1
  23. package/dist/tools/custody.js.map +1 -1
  24. package/dist/tools/enrichment.d.ts +3 -0
  25. package/dist/tools/enrichment.d.ts.map +1 -1
  26. package/dist/tools/enrichment.js +138 -2
  27. package/dist/tools/enrichment.js.map +1 -1
  28. package/dist/tools/exports.d.ts.map +1 -1
  29. package/dist/tools/exports.js +5 -1
  30. package/dist/tools/exports.js.map +1 -1
  31. package/dist/tools/import.d.ts +1 -0
  32. package/dist/tools/import.d.ts.map +1 -1
  33. package/dist/tools/import.js +150 -3
  34. package/dist/tools/import.js.map +1 -1
  35. package/dist/tools/index.d.ts +72 -88
  36. package/dist/tools/people.d.ts +38 -38
  37. package/dist/tools/recordings.d.ts +30 -30
  38. package/dist/tools/search.d.ts +20 -20
  39. package/dist/tools/uploads.d.ts.map +1 -1
  40. package/dist/tools/uploads.js +9 -2
  41. package/dist/tools/uploads.js.map +1 -1
  42. package/dist/tools/works.d.ts +38 -38
  43. package/package.json +1 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,222 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@withpica/mcp-server` will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ > **Rule of the road:** every version bump to this package MUST land with a
9
+ > matching entry here in the same commit. See the project's "npm publish
10
+ > discipline" memory entry for the enforcement rationale.
11
+
12
+ ## [Unreleased]
13
+
14
+ ## [2.11.0] — 2026-04-13
15
+
16
+ ### Changed
17
+
18
+ - **ADR-171: Prompts replaced with workflow-level skills.**
19
+ 11 prompts → 10 skills, each with decision trees, domain knowledge,
20
+ enrichment source priority, and the shared preamble (tone, prerequisite
21
+ check, summary pattern). Deployed as upgraded prompts; will convert to
22
+ MCP skills format when the spec extension ships.
23
+
24
+ New skills: `workspace-autopilot`, `establish-identity`,
25
+ `catalog-your-music`, `upload-and-analyse`, `close-the-loop`,
26
+ `manage-collaborators`, `establish-ownership`, `production-assets`,
27
+ `stay-connected`, `export-and-report`.
28
+
29
+ Retired prompts: `analyze-catalog`, `find-duplicates`,
30
+ `enrich-metadata`, `verify-works`, `assess-catalog-health`,
31
+ `audit-credits`, `new-catalog-setup`, `register-my-works`,
32
+ `prepare-for-sync`. Functionality folded into new skills —
33
+ see design spec for mapping.
34
+
35
+ - `workspace-autopilot` now routes through the full journey sequence
36
+ (identity → catalog → audio → gaps → collaborators → ownership →
37
+ notifications → exports) instead of the old 5-condition router.
38
+ - `close-the-loop` absorbs 7 former prompts and adds the enrichment
39
+ cascade decision tree (MLC first if IPI, MusicBrainz second, Spotify
40
+ third) and inline duplicate detection.
41
+ - `export-and-report` absorbs `analyze-catalog`, `register-my-works`,
42
+ and `prepare-for-sync` into a single export/report skill with CAR,
43
+ CWR, CSV, provenance, sync readiness, and carbon footprint paths.
44
+
45
+ ## [2.10.0] — 2026-04-11
46
+
47
+ ### Added
48
+
49
+ - **ADR-163: Tier B enrichment proposal review tools.**
50
+ - `pica_enrichment_proposals_list` — list pending proposals
51
+ awaiting review. Filters: `entity_type`, `entity_id`,
52
+ `rule_id`, `source`, `limit` (1..100, default 20), `offset`.
53
+ Only `status='pending'` rows are returned. Backed by
54
+ `GET /api/admin/enrichment-proposals`.
55
+ - `pica_enrichment_proposal_apply` — apply a pending proposal.
56
+ For update proposals, runs drift detection first: if the
57
+ entity has changed since the proposal was created, returns
58
+ `{ status: 'drift_detected', conflicts }` without writing.
59
+ Agents surface conflicts to the user before retrying with
60
+ `force=true`. For create proposals (`artist_title_to_youtube`),
61
+ a uniqueness check runs instead and cannot be forced. Backed
62
+ by `POST /api/admin/enrichment-proposals/:id/apply`.
63
+ - `pica_enrichment_proposal_reject` — reject a pending proposal
64
+ with an optional `resolution_note`. Content-hash suppression
65
+ (ADR-163) permanently blocks re-proposal of identical content
66
+ — no cooldown, no timer. Backed by
67
+ `POST /api/admin/enrichment-proposals/:id/reject`.
68
+
69
+ - **ADR-166: YouTube import as a recording-version source.**
70
+ - `pica_import_youtube_link` MCP tool wraps the Phase 3 orchestrator.
71
+ Takes a YouTube URL, returns a preview (items + classification +
72
+ work match), then `confirm: true` executes the import as a new
73
+ recording on an existing or newly-created work. Supports
74
+ `selectedVideoIds`, `targetWorkId`, and `overrideVersionType`
75
+ for fine-grained agent control. Landed in `78da58344`
76
+ (feat(adr-166): phase 4 — pica_import_youtube_link MCP tool + SDK
77
+ methods).
78
+
79
+ ### Changed
80
+
81
+ - `pica_cascade_health` outcome bucket list extended to include
82
+ the ADR-163 Phase 1 `proposed` and `suppressed` outcomes. Tool
83
+ description now reads `wrote / no_match / already_enriched /
84
+ error / proposed / suppressed`. Counters populate automatically
85
+ from `cascadeOutcomeCounter` — no schema change required for
86
+ existing `/api/admin/cascade-health` or
87
+ `/api/internal/cascade-health` consumers.
88
+
89
+ - Several mcp-server source files got minor reformatting from ADR-165's
90
+ flattener strip (removing `work_spotify_data` + `work_album_metadata`
91
+ fields from the Work shape) and ADR-166's cascade rule rewrites.
92
+ These are consumer-invisible at the MCP tool surface — the tools
93
+ still accept the same inputs and return the same outputs — but the
94
+ underlying `PicaClient.works` reads + writes now route through the
95
+ ADR-165 overlay. See the ADR-165 and ADR-166 implementation records
96
+ for details.
97
+
98
+ ### Fixed
99
+
100
+ - `pica_run_person_cascade` tool description had a dangling
101
+ `→ then: pica_people_inspect` chain with no parenthetical reason hint,
102
+ which the `composability-chains.test.ts` linter caught as a content
103
+ bug. Description updated to `→ then: pica_people_inspect (see what
104
+ the cascade wrote)`. Fixed in `3a2843636` (test(mcp-server): fix 10
105
+ pre-existing test failures across 8 suites).
106
+
107
+ ### Notes
108
+
109
+ - Backwards-compatible minor bump. Three new tools, one widened
110
+ description, no removals or signature changes.
111
+ - Depends on `@withpica/mcp-sdk@^1.4.0` for the new
112
+ `EnrichmentResource.listEnrichmentProposals` /
113
+ `applyEnrichmentProposal` / `rejectEnrichmentProposal` methods.
114
+ - Source additions landed across ADR-163 Phase 3d (`ff9cf265a`) and
115
+ Phase 6 (`ff97faa56`).
116
+ - Registry: https://www.npmjs.com/package/@withpica/mcp-server/v/2.10.0
117
+ - Published alongside `@withpica/mcp-sdk@1.4.0` and
118
+ `@withpica/mcp-server-business@1.3.0` in ADR-163 Phase 6.
119
+
120
+ ## [2.9.0] — 2026-04-11
121
+
122
+ ### Added
123
+
124
+ - **ADR-164 audit follow-up: three new cascade MCP tools**
125
+ - `pica_run_work_cascade(work_id)` — manually re-evaluate a work
126
+ against every ADR-164 cascade rule and fire those whose
127
+ preconditions are satisfied. Idempotent. Fire-and-forget. Backed by
128
+ `POST /api/admin/works/:id/cascade-run`.
129
+ - `pica_run_person_cascade(person_id)` — same for people. Fires
130
+ `ipi_to_mlc_works` (MLC writer/publisher splits),
131
+ `mbid_to_wikidata_crosswalk`, `isni_to_wikidata_crosswalk`,
132
+ `wikidata_to_awards`, `wikidata_to_biography`, and
133
+ `google_contact_suggest`. Backed by
134
+ `POST /api/admin/people/:id/cascade-run`.
135
+ - `pica_cascade_health` — snapshot of in-process cascade counters
136
+ (ADR-164 Decision 5). Org-auth twin of the operator-only
137
+ `/api/internal/cascade-health` endpoint. Returns per-rule failure
138
+ counts bucketed by reason + outcome totals. Process-global, not
139
+ persistent across serverless cold starts — treat as a spot-check.
140
+
141
+ ### Notes
142
+
143
+ - Source additions landed in `38901f281` (ADR-164 audit follow-ups).
144
+ Version bump + rebuilt dist + publish tagged in `edfbcb07b`.
145
+ - Minor bump per semver — new tools, no removed or renamed surface.
146
+ - Registry URL:
147
+ https://www.npmjs.com/package/@withpica/mcp-server/v/2.9.0
148
+ - Tarball verified post-publish by pulling
149
+ `withpica-mcp-server-2.9.0.tgz` from the registry and grepping for
150
+ all three new tool names in `package/dist/tools/enrichment.js`.
151
+
152
+ ## [2.8.0] — 2026-04-10
153
+
154
+ ### Changed
155
+
156
+ - **ADR-162: subscription-based billing, credit gating disabled.**
157
+ `withCreditGate` is now a pass-through — all tools are free for
158
+ active subscribers. The MPP (Micropayment Protocol) machinery is
159
+ retained in `@withpica/mcp-utils` for a future pay-per-credit
160
+ re-enable but is dormant. Version bump carried in `7c4f5d24a`
161
+ (`chore(adr-162): version bumps for npm publish`).
162
+
163
+ ## [2.7.0] — 2026-04-08
164
+
165
+ ### Added
166
+
167
+ - **ADR-158c custody tool release.** Six `pica_custody_*` tools go
168
+ live: claim, accept, decline, dispute, incoming list, history.
169
+ Version bump in `91dd1c275` (`chore(adr-158c): version bumps for
170
+ custody tool release (Phase 6b)`).
171
+
172
+ ## [2.6.2] — pre-2026-04-08
173
+
174
+ ### Fixed
175
+
176
+ - Stale version constant in the boot banner — the banner was still
177
+ reporting an older version after an earlier bump. Fixed in
178
+ `980dabc02` (`fix(mcp-server): correct stale version constant in
179
+ boot banner (2.6.2)`).
180
+
181
+ ## [2.6.1] — pre-2026-04-08
182
+
183
+ ### Fixed
184
+
185
+ - MCP server now emits `tools/list_changed` + `resources/list_changed`
186
+ notifications after sign-in and sign-out, so clients refresh the
187
+ tool list without a reconnect. Fixed in `f1ba2a211`.
188
+
189
+ ## [2.6.0] — 2026-04-07
190
+
191
+ ### Changed
192
+
193
+ - **ADR-155 launch — publish 6 packages.** Catalog server rebaselined
194
+ from the broken `3.0.0` publish (deprecated + unpublished from npm
195
+ because `file:` deps had been baked into the tarball, leaving every
196
+ fresh installer dead) to `2.6.0`. Five new sibling packages
197
+ (`@withpica/mcp-sdk`, `@withpica/mcp-utils`,
198
+ `@withpica/mcp-server-business`, `-enrichment`, `-settings`)
199
+ published at `1.0.0` alongside with real semver deps so `npm
200
+ install` actually resolves on user machines.
201
+ - `connect.withpica.com` leads with the no-api-key lobby-mode flow.
202
+ Landed in `e235aed40` (`feat(mcp): ADR-155 launch — publish 6
203
+ packages, lobby-mode connect copy`).
204
+
205
+ ## Pre-2.6.0 — pre-changelog era
206
+
207
+ Earlier versions (`2.0.0` through `2.5.x`) covered the pre-ADR-155
208
+ monolithic MCP server. Version history for that era is reconstructable
209
+ via `git log --follow -- mcp-server/package.json`. Notable milestones:
210
+
211
+ - `2.5.x` — MCP Apps prebuild script + ext-apps devDependency added
212
+ - `2.4.x` — build/publish polish, `.vercel/` excluded from tarball
213
+ - `~2.0.0` — ADR-149 agentic hardening (write tiers, ProposedAction,
214
+ confirmation, audit, annotations)
215
+
216
+ [Unreleased]: https://github.com/withpica/pica/compare/edfbcb07b...HEAD
217
+ [2.9.0]: https://github.com/withpica/pica/compare/7c4f5d24a...edfbcb07b
218
+ [2.8.0]: https://github.com/withpica/pica/compare/91dd1c275...7c4f5d24a
219
+ [2.7.0]: https://github.com/withpica/pica/compare/980dabc02...91dd1c275
220
+ [2.6.2]: https://github.com/withpica/pica/compare/f1ba2a211...980dabc02
221
+ [2.6.1]: https://github.com/withpica/pica/compare/e235aed40...f1ba2a211
222
+ [2.6.0]: https://github.com/withpica/pica/commit/e235aed40
package/dist/config.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  export interface ServerConfig {
2
- picaApiKey: string | null;
3
- picaApiUrl: string;
4
- serverName: string;
5
- version: string;
6
- debug: boolean;
7
- lobbyMode: boolean;
8
- credentialsPath: string;
9
- discoveryMode: boolean;
2
+ picaApiKey: string | null;
3
+ picaApiUrl: string;
4
+ serverName: string;
5
+ version: string;
6
+ debug: boolean;
7
+ lobbyMode: boolean;
8
+ credentialsPath: string;
9
+ discoveryMode: boolean;
10
10
  }
11
11
  export declare function loadConfig(): ServerConfig;
12
12
  export declare function validateConfig(config: ServerConfig): void;
13
- //# sourceMappingURL=config.d.ts.map
13
+ //# sourceMappingURL=config.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export {};
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=index.d.ts.map
@@ -1,78 +1,46 @@
1
1
  /**
2
- * Prompt Registry for MCP Server
3
- * Manages pre-configured prompts for common workflows
2
+ * Skill Registry for MCP Server
3
+ * Workflow-level skills with decision trees and domain knowledge.
4
+ * Deployed as upgraded prompts; will convert to MCP skills format
5
+ * when the spec extension ships (ADR-171).
4
6
  */
5
7
  export interface PromptDefinition {
6
- name: string;
7
- description: string;
8
- arguments?: Array<{
9
8
  name: string;
10
9
  description: string;
11
- required?: boolean;
12
- }>;
10
+ arguments?: Array<{
11
+ name: string;
12
+ description: string;
13
+ required?: boolean;
14
+ }>;
13
15
  }
14
16
  export interface PromptMessage {
15
- role: "user" | "assistant";
16
- content: {
17
- type: string;
18
- text: string;
19
- };
17
+ role: "user" | "assistant";
18
+ content: {
19
+ type: string;
20
+ text: string;
21
+ };
20
22
  }
21
23
  export interface PromptResult {
22
- messages: PromptMessage[];
24
+ messages: PromptMessage[];
23
25
  }
24
26
  export declare class PromptRegistry {
25
- /**
26
- * List all available prompts
27
- */
28
- listPrompts(): PromptDefinition[];
29
- /**
30
- * Get a prompt by name
31
- */
32
- getPrompt(name: string, args?: Record<string, any>): Promise<any>;
33
- /**
34
- * Analyze catalog prompt
35
- */
36
- private getAnalyzeCatalogPrompt;
37
- /**
38
- * Find duplicates prompt
39
- */
40
- private getFindDuplicatesPrompt;
41
- /**
42
- * Enrich metadata prompt
43
- */
44
- private getEnrichMetadataPrompt;
45
- /**
46
- * Verify works prompt
47
- */
48
- private getVerifyWorksPrompt;
49
- /**
50
- * Assess catalog health prompt
51
- */
52
- private getAssessCatalogHealthPrompt;
53
- /**
54
- * Audit credits prompt
55
- */
56
- private getAuditCreditsPrompt;
57
- /**
58
- * New catalog setup prompt — first-time onboarding
59
- */
60
- private getNewCatalogSetupPrompt;
61
- /**
62
- * Close the loop — check a specific work's gaps and offer to fix each one
63
- */
64
- private getCloseTheLoopPrompt;
65
- /**
66
- * Register my works — check registration status and prepare for PRO submission
67
- */
68
- private getRegisterMyWorksPrompt;
69
- /**
70
- * Workspace autopilot — assess state and route to the right workflow
71
- */
72
- private getWorkspaceAutopilotPrompt;
73
- /**
74
- * Prepare for sync — get catalog sync-ready
75
- */
76
- private getPrepareForSyncPrompt;
27
+ /**
28
+ * List all available skills
29
+ */
30
+ listPrompts(): PromptDefinition[];
31
+ /**
32
+ * Get a skill by name
33
+ */
34
+ getPrompt(name: string, args?: Record<string, any>): Promise<any>;
35
+ private getWorkspaceAutopilotSkill;
36
+ private getEstablishIdentitySkill;
37
+ private getCatalogYourMusicSkill;
38
+ private getUploadAndAnalyseSkill;
39
+ private getCloseTheLoopSkill;
40
+ private getManageCollaboratorsSkill;
41
+ private getEstablishOwnershipSkill;
42
+ private getProductionAssetsSkill;
43
+ private getStayConnectedSkill;
44
+ private getExportAndReportSkill;
77
45
  }
78
- //# sourceMappingURL=index.d.ts.map
46
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,qBAAa,cAAc;IACzB;;OAEG;IACH,WAAW,IAAI,gBAAgB,EAAE;IA6EjC;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAwCvE;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8B/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+B/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA+BpC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuC7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmChC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA+CnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAoChC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAkBD,qBAAa,cAAc;IACzB;;OAEG;IACH,WAAW,IAAI,gBAAgB,EAAE;IAuEjC;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAqCvE,OAAO,CAAC,0BAA0B;IA2ElC,OAAO,CAAC,yBAAyB;IAwDjC,OAAO,CAAC,wBAAwB;IAsEhC,OAAO,CAAC,wBAAwB;IA4DhC,OAAO,CAAC,oBAAoB;IA2F5B,OAAO,CAAC,2BAA2B;IAsEnC,OAAO,CAAC,0BAA0B;IA0ElC,OAAO,CAAC,wBAAwB;IA2DhC,OAAO,CAAC,qBAAqB;IA8D7B,OAAO,CAAC,uBAAuB;CA+EhC"}