@withpica/mcp-server 2.91.1 → 2.93.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/CHANGELOG.md +147 -0
- package/dist/lib/changelog.generated.d.ts +2 -2
- package/dist/lib/changelog.generated.d.ts.map +1 -1
- package/dist/lib/changelog.generated.js +2 -2
- package/dist/lib/changelog.generated.js.map +1 -1
- package/dist/prompts/creator-question-atlas.d.ts.map +1 -1
- package/dist/prompts/creator-question-atlas.js +23 -0
- package/dist/prompts/creator-question-atlas.js.map +1 -1
- package/dist/resources/agent-guide.d.ts +1 -1
- package/dist/resources/agent-guide.d.ts.map +1 -1
- package/dist/resources/agent-guide.js +1 -1
- package/dist/resources/required-schemas.generated.d.ts +3 -11
- package/dist/resources/required-schemas.generated.d.ts.map +1 -1
- package/dist/resources/required-schemas.generated.js +5 -14
- package/dist/resources/required-schemas.generated.js.map +1 -1
- package/dist/resources/required-schemas.source.d.ts.map +1 -1
- package/dist/resources/required-schemas.source.js +0 -10
- package/dist/resources/required-schemas.source.js.map +1 -1
- package/dist/skills/skills.generated.js +3 -3
- package/dist/skills/skills.generated.js.map +1 -1
- package/dist/tools/credits.d.ts.map +1 -1
- package/dist/tools/credits.js +16 -3
- package/dist/tools/credits.js.map +1 -1
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +20 -3
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/deprecations.d.ts +15 -1
- package/dist/tools/deprecations.d.ts.map +1 -1
- package/dist/tools/deprecations.js +41 -56
- package/dist/tools/deprecations.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +10 -6
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/duplicates.d.ts +2 -0
- package/dist/tools/duplicates.d.ts.map +1 -1
- package/dist/tools/duplicates.js +10 -2
- package/dist/tools/duplicates.js.map +1 -1
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +27 -12
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +32 -3
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/integrity-hints.d.ts +44 -0
- package/dist/tools/integrity-hints.d.ts.map +1 -0
- package/dist/tools/integrity-hints.js +33 -0
- package/dist/tools/integrity-hints.js.map +1 -0
- package/dist/tools/integrity.d.ts +32 -0
- package/dist/tools/integrity.d.ts.map +1 -0
- package/dist/tools/integrity.js +194 -0
- package/dist/tools/integrity.js.map +1 -0
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +30 -69
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/notes.d.ts +4 -2
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +14 -25
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/people.d.ts +12 -0
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +29 -2
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/projects.d.ts +4 -2
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +5 -24
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/recordings.d.ts.map +1 -1
- package/dist/tools/recordings.js +29 -3
- package/dist/tools/recordings.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts.map +1 -1
- package/dist/tools/recovery-hints.js +14 -0
- package/dist/tools/recovery-hints.js.map +1 -1
- package/dist/tools/releases.d.ts.map +1 -1
- package/dist/tools/releases.js +24 -3
- package/dist/tools/releases.js.map +1 -1
- package/dist/tools/royalties.d.ts +15 -5
- package/dist/tools/royalties.d.ts.map +1 -1
- package/dist/tools/royalties.js +12 -43
- package/dist/tools/royalties.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +20 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/sessions.d.ts +4 -2
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +4 -46
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/share-links.d.ts +3 -2
- package/dist/tools/share-links.d.ts.map +1 -1
- package/dist/tools/share-links.js +5 -28
- package/dist/tools/share-links.js.map +1 -1
- package/dist/tools/sharing.js +1 -1
- package/dist/tools/sharing.js.map +1 -1
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +111 -15
- package/dist/tools/works.js.map +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,153 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
> matching entry here in the same commit. See the project's "npm publish
|
|
10
10
|
> discipline" memory entry for the enforcement rationale.
|
|
11
11
|
|
|
12
|
+
## [2.93.0] - 2026-07-12
|
|
13
|
+
|
|
14
|
+
### Removed
|
|
15
|
+
|
|
16
|
+
- **WS5 removal sweep — 6 zero-traffic deprecated aliases DELETED** after a
|
|
17
|
+
30-day prod-telemetry gate (`agent_events`): `pica_projects_get`,
|
|
18
|
+
`pica_notes_get`, `pica_sessions_list`, `pica_sessions_get`,
|
|
19
|
+
`pica_statements_get`, `pica_share_links_list`. Each had 0 calls in the last
|
|
20
|
+
30 days in production. Their standalone `ToolDefinition`, `TOOL_METADATA`,
|
|
21
|
+
cost-model, discovery, and required-schemas rows were all removed; the shared
|
|
22
|
+
executors (getProject, getNote, listSessions, getSession, getStatement,
|
|
23
|
+
listShareLinks) stay because they back the canonical `_query` / `_inspect`
|
|
24
|
+
tools. The 10 deprecated aliases that still carry live traffic
|
|
25
|
+
(`pica_releases_list/_get`, `pica_releases_attach_track_by_identifier`,
|
|
26
|
+
`pica_releases_bulk_attach_tracks`, `pica_projects_list`, `pica_notes_list`,
|
|
27
|
+
`pica_documents_list/_read`, `pica_statements_list`,
|
|
28
|
+
`pica_recording_credits_bulk_update`) STAY callable — their `removal_target`
|
|
29
|
+
is consciously extended from 2.93.0 to 2.95.0 so the "expire loudly" lint
|
|
30
|
+
does not block this publish. Re-run the traffic gate before 2.95.0.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- **Royalty / statement read tools re-scoped to finance visibility.** The
|
|
35
|
+
`pica_royalties_*` read tools (`_list`, `_get`, `_summary`, `_unmatched`) and
|
|
36
|
+
the `pica_statements_query` / `_inspect` / `_list` reads move from
|
|
37
|
+
`read:catalog` to `read:finances`; `pica_royalties_attribute` moves from
|
|
38
|
+
`write:catalog` to `write:finances`. This aligns the MCP tool declaration
|
|
39
|
+
with the backing routes' `callerHasFinanceAccess` gate (#1623) and the proxy
|
|
40
|
+
bearer-write floor — gated callers are now filtered from `tools/list` at
|
|
41
|
+
discovery instead of getting a 403 after calling. `read:finances` /
|
|
42
|
+
`write:finances` are admin-tier (not user-grantable); admin satisfies both.
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
|
|
46
|
+
- **`dossier` section on `pica_works_inspect`.** `sections: ["dossier"]`
|
|
47
|
+
returns the full song dossier — everything PICA holds about a song
|
|
48
|
+
(recordings, releases, composition credits, people, provenance, AI
|
|
49
|
+
disclosure, consent) in one structured payload, via
|
|
50
|
+
`WorksResource.dossier()` (SDK 3.7.0). Rendered as a compact one-line text
|
|
51
|
+
summary plus the full JSON under `structuredContent.data.dossier`. Opt-in
|
|
52
|
+
only (never part of the default all-sections response, as it is a heavy
|
|
53
|
+
superset); a downloadable PDF of the same dossier is available from the web
|
|
54
|
+
UI. Not a new tool — folded onto the existing inspect tool per the
|
|
55
|
+
tool-surface-consolidation preference so it rides the batched OpenAI
|
|
56
|
+
resubmission rather than forcing a new one.
|
|
57
|
+
|
|
58
|
+
## [2.92.0] - 2026-07-09
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
|
|
62
|
+
- **`pica_find_duplicates` (works) surfaces fuzzy near-title duplicate groups**
|
|
63
|
+
(WS4 agentic fixes, 2026-07-10). The backing service adds a conservative
|
|
64
|
+
Levenshtein pass (≥85% on version-stripped base titles ≥5 chars,
|
|
65
|
+
exclusion-aware, only among works no exact key grouped); groups arrive
|
|
66
|
+
labelled `match_kind: "fuzzy_title"` with a `similarity` score (exact-key
|
|
67
|
+
groups are labelled `match_kind: "exact"`), and fuzzy groups get a
|
|
68
|
+
confidence-honest decision question ("look very similar … are they the same
|
|
69
|
+
song?") with the safe default unchanged at "keep them separate". No
|
|
70
|
+
inputSchema change — the fields are additive on the existing response.
|
|
71
|
+
- **`pica_catalog_health_plan` / `pica_catalog_health_fix` can now carry two
|
|
72
|
+
new action shapes** (WS4): `merge_pair` with `preview.grain: "release"`
|
|
73
|
+
(duplicate releases by normalized UPC, survivor = oldest, applied via the
|
|
74
|
+
same engine as `pica_merge_duplicates`) and `normalize_work_splits`
|
|
75
|
+
(work-collaborator splits summing ≠ 100 proportionally rescaled to exactly
|
|
76
|
+
100.00 — propose-only, per-collaborator before→after preview, live-row
|
|
77
|
+
recompute + post-apply verification at apply time). Replaces the previously
|
|
78
|
+
un-appliable work-grain `set_splits_to_template` emission. Tool descriptions
|
|
79
|
+
updated; schemas unchanged.
|
|
80
|
+
|
|
81
|
+
- **`pica_people_create` / `pica_people_update` gain `affiliation_kind` on
|
|
82
|
+
`society_affiliations` items and a new `origin_countries` field** (ADR-292).
|
|
83
|
+
`affiliation_kind` distinguishes a society the person is a current _member_
|
|
84
|
+
of from their home-country _origin_ society for that code (defaults to
|
|
85
|
+
`member`). `origin_countries` is an array of ISO 3166-1 alpha-2 heritage
|
|
86
|
+
countries — the creator's self-identified origin, stored on a real
|
|
87
|
+
`public.people` column and sanitized server-side.
|
|
88
|
+
|
|
89
|
+
- **New tool `pica_integrity_waive`** (registration integrity floor, PR
|
|
90
|
+
#1595). Waives a registration-integrity gap the user has confirmed is
|
|
91
|
+
intentional or unresolvable (cover writer, deceased collaborator,
|
|
92
|
+
unreleased demo) — requires explicit user confirmation, and waivers are
|
|
93
|
+
reversible. Completes the integrity-assess surface the write-tool
|
|
94
|
+
pressure hints and dashboard-briefing nag point at.
|
|
95
|
+
|
|
96
|
+
- **`pica_works_create` / `pica_recordings_create` gain a `create_twin`
|
|
97
|
+
flag + twin completion hints** (auto-twin, commit 689298e3c). The
|
|
98
|
+
backing create routes auto-mint the twin entity (work↔recording);
|
|
99
|
+
agents can now opt out via `create_twin: false`, and when a twin WAS
|
|
100
|
+
minted the executor appends a completion hint ("also created the
|
|
101
|
+
linked <recording|work> <id> — pass create_twin: false to skip").
|
|
102
|
+
Backed by the SDK's new `requestWithEnvelope()` so the routes'
|
|
103
|
+
`twin`/`twin_error` sibling fields survive the response unwrap.
|
|
104
|
+
|
|
105
|
+
### Fixed
|
|
106
|
+
|
|
107
|
+
- **`pica_enrichment_proposals_list` failed 100% of real calls with
|
|
108
|
+
`UNEXPECTED_RESPONSE_SHAPE`** (since 2026-06-10; ops_issues
|
|
109
|
+
18f25b41/20c76911). The route returns `{success, data: {proposals,
|
|
110
|
+
count, filters}}` and the SDK narrows to `.data`, so the tool receives
|
|
111
|
+
the OBJECT — the `Array.isArray` guard rejected every real response.
|
|
112
|
+
The tool now unwraps `.proposals` (guard retained for genuinely bad
|
|
113
|
+
shapes). The `pica_enrichment_proposals_bulk_reject` dry-run filter preview had
|
|
114
|
+
the sibling bug (normalised via a `.data` key that never exists —
|
|
115
|
+
always previewed 0 ids) and is fixed in the same stroke.
|
|
116
|
+
- **`pica_releases_detach_track` reported "preview — call again with
|
|
117
|
+
confirm:true" AFTER the delete executed** (ops_issue 0137b1b8,
|
|
118
|
+
user_feedback e6320d08). The tool checked `result.data.confirmed` on a
|
|
119
|
+
response the SDK had already unwrapped — always undefined — so an
|
|
120
|
+
executed destructive mutation rendered as a pending preview. Now checks
|
|
121
|
+
the unwrapped `{confirmed, preview|removed}` shape; both paths render
|
|
122
|
+
correctly.
|
|
123
|
+
- **`pica_notes_list` / `pica_notes_query` silently returned an empty
|
|
124
|
+
list on every call** (same envelope-unwrap class, found in the sweep).
|
|
125
|
+
`GET /admin/notes` nests `{data, count, pagination}` under `data`; the
|
|
126
|
+
tool's bare-array check discarded the object. Now unwraps the inner
|
|
127
|
+
`data` array.
|
|
128
|
+
|
|
129
|
+
### Changed
|
|
130
|
+
|
|
131
|
+
- Deprecation `removal_target` on the 16 ADR-149/tool-consolidation aliases
|
|
132
|
+
in `TOOL_ALIASES` / `TOOL_METADATA` extended from `2.92.0` to `2.93.0` —
|
|
133
|
+
this release reaches `2.92.0`, so the prior target would have tripped the
|
|
134
|
+
ADR-180 deprecation-expiry lint. No removal decision made; purely
|
|
135
|
+
housekeeping to keep the aliases alive one more minor.
|
|
136
|
+
|
|
137
|
+
## [2.91.2] - 2026-07-09
|
|
138
|
+
|
|
139
|
+
### Added
|
|
140
|
+
|
|
141
|
+
- **WS3 "Confident Recall" — ambiguity signalling on `pica_search_all`.** When the top fuzzy matches
|
|
142
|
+
are too close to call, the response carries an additive `ambiguity` block
|
|
143
|
+
(`ambiguous: true`, the close candidates with confidences, and guidance)
|
|
144
|
+
and the text content leads with an "⚠ AMBIGUOUS MATCH" banner — the agent
|
|
145
|
+
is told to ask the user which entity they mean instead of acting on a
|
|
146
|
+
guess. Absent on clear wins; identifier-exact lookups (ISRC/ISWC/IPI)
|
|
147
|
+
never signal.
|
|
148
|
+
- **`pica_people_inspect` gains a `connections` section** — the one-call
|
|
149
|
+
org-catalog neighbourhood of a person: works, recordings, releases, and
|
|
150
|
+
agreements as `{kind, id, name, via}` with per-kind counts and a capped
|
|
151
|
+
flag. Answers "everything connected to X" / "what have I done with X"
|
|
152
|
+
without stitching sections. Creator Question Atlas backing added;
|
|
153
|
+
`pica_graph_traverse` (global graph, identifier-only) cross-references it.
|
|
154
|
+
- **Accent parity, last mile.** The releases free-text query and the
|
|
155
|
+
collaborator/contributor searches now match accent-insensitively
|
|
156
|
+
("fez" finds "Féz"), completing the parity the catalog entity searches
|
|
157
|
+
gained on 2026-07-06.
|
|
158
|
+
|
|
12
159
|
## [2.91.1] - 2026-07-08
|
|
13
160
|
|
|
14
161
|
### Added
|