@withpica/mcp-server 2.11.0 → 2.22.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 +617 -1
- package/dist/config.d.ts +9 -9
- package/dist/index.d.ts +1 -1
- package/dist/prompts/index.d.ts +66 -34
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +320 -607
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts +53 -53
- package/dist/server.d.ts +49 -49
- package/dist/tools/agreement-types.d.ts.map +1 -1
- package/dist/tools/agreement-types.js +14 -129
- package/dist/tools/agreement-types.js.map +1 -1
- package/dist/tools/agreements.d.ts.map +1 -1
- package/dist/tools/agreements.js +11 -109
- package/dist/tools/agreements.js.map +1 -1
- package/dist/tools/assets.d.ts.map +1 -1
- package/dist/tools/assets.js +17 -257
- package/dist/tools/assets.js.map +1 -1
- package/dist/tools/bulk.d.ts +7 -1
- package/dist/tools/bulk.d.ts.map +1 -1
- package/dist/tools/bulk.js +24 -2
- package/dist/tools/bulk.js.map +1 -1
- package/dist/tools/credits.d.ts.map +1 -1
- package/dist/tools/credits.js +27 -13
- package/dist/tools/credits.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +8 -0
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/enrichment.d.ts +47 -0
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +416 -19
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/index.d.ts +88 -72
- package/dist/tools/labels.d.ts +20 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +47 -0
- package/dist/tools/labels.js.map +1 -0
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +37 -0
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/multimedia.d.ts.map +1 -1
- package/dist/tools/multimedia.js +86 -11
- package/dist/tools/multimedia.js.map +1 -1
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +4 -1
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/people.d.ts +38 -38
- package/dist/tools/projects.d.ts +1 -0
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +188 -17
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/publishers.d.ts +15 -1
- package/dist/tools/publishers.d.ts.map +1 -1
- package/dist/tools/publishers.js +43 -9
- package/dist/tools/publishers.js.map +1 -1
- package/dist/tools/recordings.d.ts +30 -30
- package/dist/tools/recovery-hints.d.ts.map +1 -1
- package/dist/tools/recovery-hints.js +49 -0
- package/dist/tools/recovery-hints.js.map +1 -1
- package/dist/tools/releases.d.ts +14 -1
- package/dist/tools/releases.d.ts.map +1 -1
- package/dist/tools/releases.js +247 -36
- package/dist/tools/releases.js.map +1 -1
- package/dist/tools/search.d.ts +20 -20
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +42 -8
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/settings.d.ts +1 -0
- package/dist/tools/settings.d.ts.map +1 -1
- package/dist/tools/settings.js +51 -1
- package/dist/tools/settings.js.map +1 -1
- package/dist/tools/share-links.d.ts.map +1 -1
- package/dist/tools/share-links.js +19 -53
- package/dist/tools/share-links.js.map +1 -1
- package/dist/tools/split-sheets.d.ts.map +1 -1
- package/dist/tools/split-sheets.js +3 -42
- package/dist/tools/split-sheets.js.map +1 -1
- package/dist/tools/team.d.ts.map +1 -1
- package/dist/tools/team.js +9 -4
- package/dist/tools/team.js.map +1 -1
- package/dist/tools/works.d.ts +38 -38
- package/package.json +1 -1
|
@@ -125,7 +125,19 @@ export const RECOVERY_HINTS = {
|
|
|
125
125
|
},
|
|
126
126
|
],
|
|
127
127
|
// ── enrichment tools ──
|
|
128
|
+
//
|
|
129
|
+
// ADR-179 Phase 1 (2026-04-17): the five per-source `pica_enrich_work_*`
|
|
130
|
+
// tools were folded into `pica_resolve_work`. Every call now returns
|
|
131
|
+
// `TOOL_DEPRECATED` (jsonrpc -32070) with a suggested replacement call.
|
|
132
|
+
// The NO_MATCH / MISSING_INPUT hints below are dead code today but stay
|
|
133
|
+
// in the registry until the tools are removed in the next minor so
|
|
134
|
+
// they don't disappear from `pica_tool_details` mid-version.
|
|
128
135
|
pica_enrich_work_spotify: [
|
|
136
|
+
{
|
|
137
|
+
error_code: "TOOL_DEPRECATED",
|
|
138
|
+
suggestion: "deprecated — use pica_resolve_work with sources: ['spotify']",
|
|
139
|
+
next_tool: "pica_resolve_work",
|
|
140
|
+
},
|
|
129
141
|
{
|
|
130
142
|
error_code: "NO_MATCH",
|
|
131
143
|
suggestion: "no Spotify match — try MusicBrainz",
|
|
@@ -138,6 +150,11 @@ export const RECOVERY_HINTS = {
|
|
|
138
150
|
},
|
|
139
151
|
],
|
|
140
152
|
pica_enrich_work_musicbrainz: [
|
|
153
|
+
{
|
|
154
|
+
error_code: "TOOL_DEPRECATED",
|
|
155
|
+
suggestion: "deprecated — use pica_resolve_work with sources: ['musicbrainz']",
|
|
156
|
+
next_tool: "pica_resolve_work",
|
|
157
|
+
},
|
|
141
158
|
{
|
|
142
159
|
error_code: "NO_MATCH",
|
|
143
160
|
suggestion: "no MusicBrainz match — try MLC",
|
|
@@ -145,6 +162,11 @@ export const RECOVERY_HINTS = {
|
|
|
145
162
|
},
|
|
146
163
|
],
|
|
147
164
|
pica_enrich_work_mlc: [
|
|
165
|
+
{
|
|
166
|
+
error_code: "TOOL_DEPRECATED",
|
|
167
|
+
suggestion: "deprecated — use pica_resolve_work with sources: ['mlc']",
|
|
168
|
+
next_tool: "pica_resolve_work",
|
|
169
|
+
},
|
|
148
170
|
{
|
|
149
171
|
error_code: "NO_MATCH",
|
|
150
172
|
suggestion: "no MLC match — try Discogs",
|
|
@@ -157,6 +179,11 @@ export const RECOVERY_HINTS = {
|
|
|
157
179
|
},
|
|
158
180
|
],
|
|
159
181
|
pica_enrich_work_discogs: [
|
|
182
|
+
{
|
|
183
|
+
error_code: "TOOL_DEPRECATED",
|
|
184
|
+
suggestion: "deprecated — use pica_resolve_work with sources: ['discogs']",
|
|
185
|
+
next_tool: "pica_resolve_work",
|
|
186
|
+
},
|
|
160
187
|
{
|
|
161
188
|
error_code: "NO_MATCH",
|
|
162
189
|
suggestion: "no Discogs match — try adding identifiers manually",
|
|
@@ -164,13 +191,30 @@ export const RECOVERY_HINTS = {
|
|
|
164
191
|
},
|
|
165
192
|
],
|
|
166
193
|
pica_enrich_work_youtube: [
|
|
194
|
+
{
|
|
195
|
+
error_code: "TOOL_DEPRECATED",
|
|
196
|
+
suggestion: "deprecated — use pica_resolve_work with sources: ['youtube']",
|
|
197
|
+
next_tool: "pica_resolve_work",
|
|
198
|
+
},
|
|
167
199
|
{
|
|
168
200
|
error_code: "NO_MATCH",
|
|
169
201
|
suggestion: "no YouTube data — ensure a YouTube video is linked",
|
|
170
202
|
next_tool: "pica_multimedia_link_youtube",
|
|
171
203
|
},
|
|
172
204
|
],
|
|
205
|
+
//
|
|
206
|
+
// ADR-179 Phase 2 (2026-04-17): the two per-source `pica_people_enrich_*`
|
|
207
|
+
// tools were folded into `pica_resolve_person`. Every call now returns
|
|
208
|
+
// `TOOL_DEPRECATED` (jsonrpc -32070) with a suggested replacement call.
|
|
209
|
+
// The NO_MATCH hints below are dead code today but stay in the registry
|
|
210
|
+
// until the tools are removed in the next minor so they don't disappear
|
|
211
|
+
// from `pica_tool_details` mid-version.
|
|
173
212
|
pica_people_enrich_isni: [
|
|
213
|
+
{
|
|
214
|
+
error_code: "TOOL_DEPRECATED",
|
|
215
|
+
suggestion: "deprecated — use pica_resolve_person with sources: ['isni']",
|
|
216
|
+
next_tool: "pica_resolve_person",
|
|
217
|
+
},
|
|
174
218
|
{
|
|
175
219
|
error_code: "NO_MATCH",
|
|
176
220
|
suggestion: "no ISNI match — try MusicBrainz",
|
|
@@ -178,6 +222,11 @@ export const RECOVERY_HINTS = {
|
|
|
178
222
|
},
|
|
179
223
|
],
|
|
180
224
|
pica_people_enrich_musicbrainz: [
|
|
225
|
+
{
|
|
226
|
+
error_code: "TOOL_DEPRECATED",
|
|
227
|
+
suggestion: "deprecated — use pica_resolve_person with sources: ['musicbrainz']",
|
|
228
|
+
next_tool: "pica_resolve_person",
|
|
229
|
+
},
|
|
181
230
|
{
|
|
182
231
|
error_code: "NO_MATCH",
|
|
183
232
|
suggestion: "no MusicBrainz match — try adding identifiers manually",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-hints.js","sourceRoot":"","sources":["../../src/tools/recovery-hints.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recovery-hints.js","sourceRoot":"","sources":["../../src/tools/recovery-hints.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/releases.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Releases Tools — manage releases (albums, EPs, singles with release
|
|
2
|
+
* Releases Tools — manage releases (albums, EPs, singles with release
|
|
3
|
+
* dates, labels, distributors, UPCs, and artwork).
|
|
4
|
+
*
|
|
5
|
+
* ADR-174 Decision 3 reconciliation: label and distributor are
|
|
6
|
+
* FK-modelled via `label_organization_id` / `distributor_organization_id`
|
|
7
|
+
* to `organisations`. Agents resolve a name to an ID via
|
|
8
|
+
* `pica_labels_query` (ADR-174) or `pica_search_all` before calling
|
|
9
|
+
* create/update. Freetext `label` was removed; it never corresponded to a
|
|
10
|
+
* real column on `releases`.
|
|
3
11
|
*/
|
|
4
12
|
import { PicaClient } from "@withpica/mcp-sdk";
|
|
5
13
|
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
@@ -10,6 +18,11 @@ export declare class ReleasesTools {
|
|
|
10
18
|
definition: ToolDefinition;
|
|
11
19
|
executor: ToolExecutor;
|
|
12
20
|
}>;
|
|
21
|
+
private attachTrack;
|
|
22
|
+
private listTracks;
|
|
23
|
+
private detachTrack;
|
|
24
|
+
private reorderTracks;
|
|
25
|
+
private attachRecordingWithWork;
|
|
13
26
|
private listReleases;
|
|
14
27
|
private getRelease;
|
|
15
28
|
private createRelease;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AA0EtE,qBAAa,aAAa;IACxB,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;YA2N3D,WAAW;YAUX,UAAU;YAKV,WAAW;YAYX,aAAa;YAQb,uBAAuB;YAcvB,YAAY;YAQZ,UAAU;YAKV,aAAa;YAMb,aAAa;CAK5B"}
|
package/dist/tools/releases.js
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
1
|
// Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
|
|
2
2
|
import { formatSuccess, formatStructuredList } from "@withpica/mcp-utils";
|
|
3
|
+
/**
|
|
4
|
+
* Canonical write-schema for `releases`. Every property below must
|
|
5
|
+
* correspond to a real column on `public.releases`. Keep this list
|
|
6
|
+
* tight — reintroducing a phantom field is the exact regression
|
|
7
|
+
* ADR-174 Phase 2 exists to prevent.
|
|
8
|
+
*/
|
|
9
|
+
const RELEASE_WRITE_PROPERTIES = {
|
|
10
|
+
title: {
|
|
11
|
+
type: "string",
|
|
12
|
+
description: "Release title",
|
|
13
|
+
},
|
|
14
|
+
release_date: {
|
|
15
|
+
type: "string",
|
|
16
|
+
description: "Release date (YYYY-MM-DD)",
|
|
17
|
+
},
|
|
18
|
+
release_type: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Release type",
|
|
21
|
+
enum: ["album", "ep", "single", "compilation"],
|
|
22
|
+
},
|
|
23
|
+
pre_release_date: {
|
|
24
|
+
type: "string",
|
|
25
|
+
description: "Pre-release / announcement date (YYYY-MM-DD)",
|
|
26
|
+
},
|
|
27
|
+
upc: {
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Universal Product Code (UPC/EAN barcode)",
|
|
30
|
+
},
|
|
31
|
+
catalog_number: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Label catalog number",
|
|
34
|
+
},
|
|
35
|
+
label_organization_id: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "organisations.id of the label (must be an org with org_type='label'). " +
|
|
38
|
+
"Resolve a label name to an ID via pica_labels_query first — never pass a free-text name.",
|
|
39
|
+
},
|
|
40
|
+
distributor_organization_id: {
|
|
41
|
+
type: "string",
|
|
42
|
+
description: "organisations.id of the distributor. Resolve a distributor name via pica_search_all first.",
|
|
43
|
+
},
|
|
44
|
+
artwork_url: {
|
|
45
|
+
type: "string",
|
|
46
|
+
description: "Album artwork URL",
|
|
47
|
+
},
|
|
48
|
+
spotify_album_uri: {
|
|
49
|
+
type: "string",
|
|
50
|
+
description: "Spotify album URI (e.g. spotify:album:…)",
|
|
51
|
+
},
|
|
52
|
+
spotify_url: {
|
|
53
|
+
type: "string",
|
|
54
|
+
description: "Spotify album web URL",
|
|
55
|
+
},
|
|
56
|
+
apple_music_url: {
|
|
57
|
+
type: "string",
|
|
58
|
+
description: "Apple Music album URL",
|
|
59
|
+
},
|
|
60
|
+
other_urls: {
|
|
61
|
+
type: "object",
|
|
62
|
+
description: "DSP URLs keyed by service name (e.g. { tidal: '…', deezer: '…' })",
|
|
63
|
+
additionalProperties: { type: "string" },
|
|
64
|
+
},
|
|
65
|
+
notes: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "Internal notes",
|
|
68
|
+
},
|
|
69
|
+
};
|
|
3
70
|
export class ReleasesTools {
|
|
4
71
|
pica;
|
|
5
72
|
constructor(pica) {
|
|
@@ -10,7 +77,7 @@ export class ReleasesTools {
|
|
|
10
77
|
{
|
|
11
78
|
definition: {
|
|
12
79
|
name: "pica_releases_list",
|
|
13
|
-
description: "List releases — albums, EPs, and singles with release dates, labels, and UPCs.",
|
|
80
|
+
description: "List releases — albums, EPs, and singles with release dates, labels, distributors, and UPCs.",
|
|
14
81
|
inputSchema: {
|
|
15
82
|
type: "object",
|
|
16
83
|
properties: {
|
|
@@ -40,69 +107,213 @@ export class ReleasesTools {
|
|
|
40
107
|
{
|
|
41
108
|
definition: {
|
|
42
109
|
name: "pica_releases_create",
|
|
43
|
-
description: "Create a new release — set
|
|
110
|
+
description: "Create a new release — set title, dates, type, catalog number, " +
|
|
111
|
+
"label/distributor organisation IDs, artwork, DSP URLs, and notes. " +
|
|
112
|
+
"For label_organization_id use pica_labels_query first to resolve a name to an ID " +
|
|
113
|
+
"(freetext label names are not accepted — the DB stores label as an FK to organisations).",
|
|
114
|
+
inputSchema: {
|
|
115
|
+
type: "object",
|
|
116
|
+
properties: RELEASE_WRITE_PROPERTIES,
|
|
117
|
+
required: ["title"],
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
executor: this.createRelease.bind(this),
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
definition: {
|
|
124
|
+
name: "pica_releases_update",
|
|
125
|
+
description: "Update release details — any field in the release write schema. " +
|
|
126
|
+
"For label_organization_id use pica_labels_query first to resolve a name to an ID.",
|
|
44
127
|
inputSchema: {
|
|
45
128
|
type: "object",
|
|
46
129
|
properties: {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
130
|
+
id: { type: "string", description: "Release ID" },
|
|
131
|
+
...RELEASE_WRITE_PROPERTIES,
|
|
132
|
+
},
|
|
133
|
+
required: ["id"],
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
executor: this.updateRelease.bind(this),
|
|
137
|
+
},
|
|
138
|
+
// ADR-173: release-track primitives + compound workflow
|
|
139
|
+
{
|
|
140
|
+
definition: {
|
|
141
|
+
name: "pica_releases_attach_track",
|
|
142
|
+
description: "Attach a recording and/or work to a release at a specific (disc, track) position. " +
|
|
143
|
+
"At least one of recording_id or work_id must be provided. Idempotent on " +
|
|
144
|
+
"(release_id, disc_number, track_number) — a second call at the same position " +
|
|
145
|
+
"updates the existing row rather than creating a duplicate. " +
|
|
146
|
+
"→ then: pica_releases_list_tracks (verify tracklist), pica_releases_reorder_tracks (change order)",
|
|
147
|
+
inputSchema: {
|
|
148
|
+
type: "object",
|
|
149
|
+
properties: {
|
|
150
|
+
release_id: { type: "string", description: "Release ID" },
|
|
151
|
+
recording_id: {
|
|
52
152
|
type: "string",
|
|
53
|
-
description: "
|
|
153
|
+
description: "Recording ID (optional — at least one of recording_id or work_id must be provided)",
|
|
54
154
|
},
|
|
55
|
-
|
|
155
|
+
work_id: {
|
|
56
156
|
type: "string",
|
|
57
|
-
description: "
|
|
157
|
+
description: "Work ID (optional — omit for licensed-masters releases where no composition record exists)",
|
|
58
158
|
},
|
|
59
|
-
|
|
60
|
-
type: "
|
|
61
|
-
description: "
|
|
159
|
+
track_number: {
|
|
160
|
+
type: "number",
|
|
161
|
+
description: "Position on disc (1-based)",
|
|
62
162
|
},
|
|
63
|
-
|
|
64
|
-
type: "
|
|
65
|
-
description: "
|
|
163
|
+
disc_number: {
|
|
164
|
+
type: "number",
|
|
165
|
+
description: "Disc number (default 1)",
|
|
66
166
|
},
|
|
67
167
|
},
|
|
68
|
-
required: ["
|
|
168
|
+
required: ["release_id", "track_number"],
|
|
69
169
|
},
|
|
70
170
|
},
|
|
71
|
-
executor: this.
|
|
171
|
+
executor: this.attachTrack.bind(this),
|
|
72
172
|
},
|
|
73
173
|
{
|
|
74
174
|
definition: {
|
|
75
|
-
name: "
|
|
76
|
-
description: "
|
|
175
|
+
name: "pica_releases_list_tracks",
|
|
176
|
+
description: "List tracks on a release in (disc_number, track_number) order with " +
|
|
177
|
+
"inlined title, artist, ISRC, and duration from the linked recording and work. " +
|
|
178
|
+
"→ then: pica_releases_reorder_tracks (change order), pica_recordings_inspect (deep-dive a track)",
|
|
77
179
|
inputSchema: {
|
|
78
180
|
type: "object",
|
|
79
181
|
properties: {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
182
|
+
release_id: { type: "string", description: "Release ID" },
|
|
183
|
+
},
|
|
184
|
+
required: ["release_id"],
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
executor: this.listTracks.bind(this),
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
definition: {
|
|
191
|
+
name: "pica_releases_detach_track",
|
|
192
|
+
description: "Remove a track from a release by position. Soft-confirmation: call without " +
|
|
193
|
+
"confirm:true to see a preview of the row that would be removed, then call " +
|
|
194
|
+
"again with confirm:true to execute.",
|
|
195
|
+
inputSchema: {
|
|
196
|
+
type: "object",
|
|
197
|
+
properties: {
|
|
198
|
+
release_id: { type: "string", description: "Release ID" },
|
|
199
|
+
track_number: {
|
|
200
|
+
type: "number",
|
|
201
|
+
description: "Position on disc (1-based)",
|
|
85
202
|
},
|
|
86
|
-
|
|
87
|
-
type: "
|
|
88
|
-
description: "
|
|
203
|
+
disc_number: {
|
|
204
|
+
type: "number",
|
|
205
|
+
description: "Disc number (default 1)",
|
|
89
206
|
},
|
|
90
|
-
|
|
91
|
-
type: "
|
|
92
|
-
description: "
|
|
207
|
+
confirm: {
|
|
208
|
+
type: "boolean",
|
|
209
|
+
description: "Set to true to execute the detach after reviewing the preview",
|
|
93
210
|
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
211
|
+
},
|
|
212
|
+
required: ["release_id", "track_number"],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
executor: this.detachTrack.bind(this),
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
definition: {
|
|
219
|
+
name: "pica_releases_reorder_tracks",
|
|
220
|
+
description: "Reorder tracks on a release atomically. Pass the full new order as an array " +
|
|
221
|
+
"of { track_id, track_number, disc_number } — the entire reorder commits or " +
|
|
222
|
+
"rolls back as one transaction. Duplicate (disc_number, track_number) pairs " +
|
|
223
|
+
"in the payload are rejected before any DB write.",
|
|
224
|
+
inputSchema: {
|
|
225
|
+
type: "object",
|
|
226
|
+
properties: {
|
|
227
|
+
release_id: { type: "string", description: "Release ID" },
|
|
228
|
+
new_order: {
|
|
229
|
+
type: "array",
|
|
230
|
+
description: "New ordering of tracks. Every existing track should appear here.",
|
|
231
|
+
items: {
|
|
232
|
+
type: "object",
|
|
233
|
+
properties: {
|
|
234
|
+
track_id: {
|
|
235
|
+
type: "string",
|
|
236
|
+
description: "release_tracks.id",
|
|
237
|
+
},
|
|
238
|
+
track_number: { type: "number" },
|
|
239
|
+
disc_number: {
|
|
240
|
+
type: "number",
|
|
241
|
+
description: "Default 1",
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
required: ["track_id", "track_number"],
|
|
245
|
+
},
|
|
97
246
|
},
|
|
98
247
|
},
|
|
99
|
-
required: ["
|
|
248
|
+
required: ["release_id", "new_order"],
|
|
100
249
|
},
|
|
101
250
|
},
|
|
102
|
-
executor: this.
|
|
251
|
+
executor: this.reorderTracks.bind(this),
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
definition: {
|
|
255
|
+
name: "pica_releases_attach_recording_with_work",
|
|
256
|
+
description: "Attach a recording to a release at a specific position, automatically " +
|
|
257
|
+
"pulling the recording's linked work (if any) onto the same track row. " +
|
|
258
|
+
"Saves agents the recordings.work_id lookup that pica_releases_attach_track " +
|
|
259
|
+
"would otherwise require. Idempotent on (release_id, disc_number, track_number).",
|
|
260
|
+
inputSchema: {
|
|
261
|
+
type: "object",
|
|
262
|
+
properties: {
|
|
263
|
+
release_id: { type: "string", description: "Release ID" },
|
|
264
|
+
recording_id: { type: "string", description: "Recording ID" },
|
|
265
|
+
track_number: {
|
|
266
|
+
type: "number",
|
|
267
|
+
description: "Position on disc (1-based)",
|
|
268
|
+
},
|
|
269
|
+
disc_number: {
|
|
270
|
+
type: "number",
|
|
271
|
+
description: "Disc number (default 1)",
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
required: ["release_id", "recording_id", "track_number"],
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
executor: this.attachRecordingWithWork.bind(this),
|
|
103
278
|
},
|
|
104
279
|
];
|
|
105
280
|
}
|
|
281
|
+
async attachTrack(args) {
|
|
282
|
+
const track = await this.pica.releases.attachTrack(args.release_id, {
|
|
283
|
+
recording_id: args.recording_id ?? null,
|
|
284
|
+
work_id: args.work_id ?? null,
|
|
285
|
+
track_number: args.track_number,
|
|
286
|
+
disc_number: args.disc_number,
|
|
287
|
+
});
|
|
288
|
+
return formatSuccess("Track attached to release", track);
|
|
289
|
+
}
|
|
290
|
+
async listTracks(args) {
|
|
291
|
+
const tracks = await this.pica.releases.listTracks(args.release_id);
|
|
292
|
+
return formatSuccess("Release tracks retrieved", tracks);
|
|
293
|
+
}
|
|
294
|
+
async detachTrack(args) {
|
|
295
|
+
const result = await this.pica.releases.detachTrack(args.release_id, {
|
|
296
|
+
track_number: args.track_number,
|
|
297
|
+
disc_number: args.disc_number,
|
|
298
|
+
confirm: args.confirm,
|
|
299
|
+
});
|
|
300
|
+
const message = result?.data?.confirmed
|
|
301
|
+
? "Track detached from release"
|
|
302
|
+
: "Preview of track to be detached — call again with confirm:true to execute";
|
|
303
|
+
return formatSuccess(message, result);
|
|
304
|
+
}
|
|
305
|
+
async reorderTracks(args) {
|
|
306
|
+
const tracks = await this.pica.releases.reorderTracks(args.release_id, args.new_order);
|
|
307
|
+
return formatSuccess("Release tracks reordered", tracks);
|
|
308
|
+
}
|
|
309
|
+
async attachRecordingWithWork(args) {
|
|
310
|
+
const track = await this.pica.releases.attachRecordingWithWork(args.release_id, {
|
|
311
|
+
recording_id: args.recording_id,
|
|
312
|
+
track_number: args.track_number,
|
|
313
|
+
disc_number: args.disc_number,
|
|
314
|
+
});
|
|
315
|
+
return formatSuccess("Recording attached to release with work", track);
|
|
316
|
+
}
|
|
106
317
|
async listReleases(args) {
|
|
107
318
|
const result = await this.pica.releases.list({
|
|
108
319
|
limit: args.limit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"AAAA,6DAA6D;
|
|
1
|
+
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/search.d.ts
CHANGED
|
@@ -7,24 +7,24 @@
|
|
|
7
7
|
import { PicaClient } from "@withpica/mcp-sdk";
|
|
8
8
|
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
9
9
|
export declare class SearchTools {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
10
|
+
private pica;
|
|
11
|
+
constructor(pica: PicaClient);
|
|
12
|
+
getTools(): Array<{
|
|
13
|
+
definition: ToolDefinition;
|
|
14
|
+
executor: ToolExecutor;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Unified search via chain service — single request, all entity types,
|
|
18
|
+
* fuzzy matching with pg_trgm, ranked by similarity.
|
|
19
|
+
*/
|
|
20
|
+
private searchAll;
|
|
21
|
+
/**
|
|
22
|
+
* Get catalog statistics (uses dedicated SQL count endpoint, no pagination limits)
|
|
23
|
+
*/
|
|
24
|
+
private getCatalogStats;
|
|
25
|
+
/**
|
|
26
|
+
* Traverse the global identity graph from any identifier
|
|
27
|
+
*/
|
|
28
|
+
private graphTraverse;
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=search.d.ts.map
|
|
30
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE,qBAAa,aAAa;IACxB,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;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE,qBAAa,aAAa;IACxB,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;YAkI3D,YAAY;YAQZ,UAAU;YAKV,aAAa;YAWb,eAAe;CAM9B"}
|
package/dist/tools/sessions.js
CHANGED
|
@@ -48,33 +48,67 @@ export class SessionsTools {
|
|
|
48
48
|
type: "string",
|
|
49
49
|
description: "Session title (e.g. 'Vocal recording — Track 3')",
|
|
50
50
|
},
|
|
51
|
+
description: {
|
|
52
|
+
type: "string",
|
|
53
|
+
description: "Freeform description of the session.",
|
|
54
|
+
},
|
|
51
55
|
session_type_id: {
|
|
52
56
|
type: "string",
|
|
53
|
-
description: "Session type UUID — get valid IDs from pica_sessions_types",
|
|
57
|
+
description: "Session type UUID — get valid IDs from pica_sessions_types.",
|
|
54
58
|
},
|
|
55
59
|
start_time: {
|
|
56
60
|
type: "string",
|
|
57
|
-
description: "ISO 8601 datetime",
|
|
61
|
+
description: "ISO 8601 datetime.",
|
|
58
62
|
},
|
|
59
63
|
end_time: {
|
|
60
64
|
type: "string",
|
|
61
|
-
description: "ISO 8601 datetime",
|
|
65
|
+
description: "ISO 8601 datetime.",
|
|
66
|
+
},
|
|
67
|
+
timezone: {
|
|
68
|
+
type: "string",
|
|
69
|
+
description: "IANA timezone (e.g. 'Europe/London'). Defaults to Europe/London.",
|
|
70
|
+
},
|
|
71
|
+
is_all_day: {
|
|
72
|
+
type: "boolean",
|
|
73
|
+
description: "Mark the session as all-day (skips start/end time-of-day semantics). Default false.",
|
|
62
74
|
},
|
|
63
75
|
location: {
|
|
64
76
|
type: "string",
|
|
65
|
-
description: "Studio or location name",
|
|
77
|
+
description: "Studio or location name.",
|
|
66
78
|
},
|
|
67
|
-
|
|
79
|
+
location_url: {
|
|
68
80
|
type: "string",
|
|
69
|
-
description: "
|
|
81
|
+
description: "URL for virtual sessions (e.g. Zoom / Google Meet link).",
|
|
70
82
|
},
|
|
71
83
|
work_id: {
|
|
72
84
|
type: "string",
|
|
73
|
-
description: "Work this session was for (optional)",
|
|
85
|
+
description: "Work this session was for (optional).",
|
|
86
|
+
},
|
|
87
|
+
recording_id: {
|
|
88
|
+
type: "string",
|
|
89
|
+
description: "Recording this session was for (optional).",
|
|
90
|
+
},
|
|
91
|
+
status: {
|
|
92
|
+
type: "string",
|
|
93
|
+
enum: ["scheduled", "in_progress", "completed", "cancelled"],
|
|
94
|
+
description: "Initial session status. Default 'scheduled'. Use PATCH actions to transition later.",
|
|
95
|
+
},
|
|
96
|
+
notes: {
|
|
97
|
+
type: "string",
|
|
98
|
+
description: "Session notes — what happened, what was achieved.",
|
|
99
|
+
},
|
|
100
|
+
metadata: {
|
|
101
|
+
type: "object",
|
|
102
|
+
description: "Freeform jsonb bag for session-specific extras.",
|
|
103
|
+
additionalProperties: true,
|
|
104
|
+
},
|
|
105
|
+
participants: {
|
|
106
|
+
type: "array",
|
|
107
|
+
description: "Participants to attach on create. Each element: { personId?, userId?, role? }.",
|
|
108
|
+
items: { type: "object", additionalProperties: true },
|
|
74
109
|
},
|
|
75
110
|
},
|
|
76
111
|
required: ["title", "start_time", "end_time"],
|
|
77
|
-
additionalProperties: true,
|
|
78
112
|
},
|
|
79
113
|
},
|
|
80
114
|
executor: this.createSession.bind(this),
|