@withpica/mcp-server 2.97.5 → 2.98.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 +125 -0
- package/README.intro.md +1 -1
- package/README.md +7 -3
- 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/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +17 -20
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/agent-guide.d.ts.map +1 -1
- package/dist/resources/agent-guide.js +3 -1
- package/dist/resources/agent-guide.js.map +1 -1
- package/dist/resources/required-schemas.generated.d.ts +7 -5
- package/dist/resources/required-schemas.generated.d.ts.map +1 -1
- package/dist/resources/required-schemas.generated.js +14 -2
- 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 +8 -1
- package/dist/resources/required-schemas.source.js.map +1 -1
- package/dist/server-instructions.d.ts +2 -2
- package/dist/server-instructions.d.ts.map +1 -1
- package/dist/server-instructions.js +1 -1
- package/dist/skills/skills.generated.js +5 -5
- package/dist/skills/skills.generated.js.map +1 -1
- package/dist/tools/agreement-types.d.ts.map +1 -1
- package/dist/tools/agreement-types.js +3 -1
- package/dist/tools/agreement-types.js.map +1 -1
- package/dist/tools/agreements.d.ts.map +1 -1
- package/dist/tools/agreements.js +15 -6
- package/dist/tools/agreements.js.map +1 -1
- package/dist/tools/approvals.d.ts.map +1 -1
- package/dist/tools/approvals.js +14 -1
- package/dist/tools/approvals.js.map +1 -1
- package/dist/tools/arg-aliases.d.ts.map +1 -1
- package/dist/tools/arg-aliases.js +12 -0
- package/dist/tools/arg-aliases.js.map +1 -1
- package/dist/tools/audio-files.d.ts +39 -0
- package/dist/tools/audio-files.d.ts.map +1 -1
- package/dist/tools/audio-files.js +253 -12
- package/dist/tools/audio-files.js.map +1 -1
- package/dist/tools/catalog-enums.d.ts +20 -0
- package/dist/tools/catalog-enums.d.ts.map +1 -0
- package/dist/tools/catalog-enums.js +28 -0
- package/dist/tools/catalog-enums.js.map +1 -0
- package/dist/tools/credits.d.ts.map +1 -1
- package/dist/tools/credits.js +64 -4
- package/dist/tools/credits.js.map +1 -1
- package/dist/tools/custody-hints.js +2 -2
- package/dist/tools/custody-hints.js.map +1 -1
- package/dist/tools/custody.d.ts.map +1 -1
- package/dist/tools/custody.js +4 -1
- package/dist/tools/custody.js.map +1 -1
- package/dist/tools/deprecations.d.ts +2 -1
- package/dist/tools/deprecations.d.ts.map +1 -1
- package/dist/tools/deprecations.js +27 -11
- package/dist/tools/deprecations.js.map +1 -1
- package/dist/tools/directory.js +2 -2
- package/dist/tools/directory.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +13 -3
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/duplicates.d.ts.map +1 -1
- package/dist/tools/duplicates.js +66 -18
- package/dist/tools/duplicates.js.map +1 -1
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +36 -2
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +19 -0
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/licensing.d.ts.map +1 -1
- package/dist/tools/licensing.js +14 -9
- package/dist/tools/licensing.js.map +1 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +52 -12
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +28 -5
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/people.d.ts +5 -1
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +8 -1
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/purchases.d.ts +2 -3
- package/dist/tools/purchases.d.ts.map +1 -1
- package/dist/tools/purchases.js.map +1 -1
- package/dist/tools/recording-attribution-hints.js +1 -1
- package/dist/tools/recording-attribution-hints.js.map +1 -1
- package/dist/tools/recording-custody.d.ts +3 -1
- package/dist/tools/recording-custody.d.ts.map +1 -1
- package/dist/tools/recording-custody.js +8 -4
- package/dist/tools/recording-custody.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts +0 -6
- package/dist/tools/recovery-hints.d.ts.map +1 -1
- package/dist/tools/recovery-hints.js +73 -15
- package/dist/tools/recovery-hints.js.map +1 -1
- package/dist/tools/register.d.ts.map +1 -1
- package/dist/tools/register.js +2 -1
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/releases.d.ts.map +1 -1
- package/dist/tools/releases.js +7 -4
- package/dist/tools/releases.js.map +1 -1
- package/dist/tools/rights.d.ts +45 -0
- package/dist/tools/rights.d.ts.map +1 -0
- package/dist/tools/rights.js +302 -0
- package/dist/tools/rights.js.map +1 -0
- package/dist/tools/royalties.d.ts +24 -1
- package/dist/tools/royalties.d.ts.map +1 -1
- package/dist/tools/royalties.js +99 -66
- package/dist/tools/royalties.js.map +1 -1
- package/dist/tools/section-validation.d.ts +14 -0
- package/dist/tools/section-validation.d.ts.map +1 -0
- package/dist/tools/section-validation.js +68 -0
- package/dist/tools/section-validation.js.map +1 -0
- package/dist/tools/selections.d.ts +5 -2
- package/dist/tools/selections.d.ts.map +1 -1
- package/dist/tools/selections.js +10 -4
- package/dist/tools/selections.js.map +1 -1
- package/dist/tools/share-links.d.ts.map +1 -1
- package/dist/tools/share-links.js +32 -6
- package/dist/tools/share-links.js.map +1 -1
- package/dist/tools/share-send.d.ts.map +1 -1
- package/dist/tools/share-send.js +32 -7
- package/dist/tools/share-send.js.map +1 -1
- package/dist/tools/signed-split-sheet-preview.d.ts +43 -0
- package/dist/tools/signed-split-sheet-preview.d.ts.map +1 -0
- package/dist/tools/signed-split-sheet-preview.js +67 -0
- package/dist/tools/signed-split-sheet-preview.js.map +1 -0
- package/dist/tools/split-sheets.d.ts.map +1 -1
- package/dist/tools/split-sheets.js +3 -2
- package/dist/tools/split-sheets.js.map +1 -1
- package/dist/tools/works.d.ts +9 -1
- package/dist/tools/works.d.ts.map +1 -1
- package/dist/tools/works.js +194 -64
- package/dist/tools/works.js.map +1 -1
- package/dist/tools/write-receipt.d.ts +68 -0
- package/dist/tools/write-receipt.d.ts.map +1 -0
- package/dist/tools/write-receipt.js +64 -0
- package/dist/tools/write-receipt.js.map +1 -0
- package/package.json +4 -4
- package/scripts/build-required-schemas.ts +7 -1
- package/server.json +2 -2
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// Copyright (c) 2025-2026 Withpica Ltd. All rights reserved.
|
|
2
|
+
/**
|
|
3
|
+
* Programmable rights — MCP tools (ADR-321 §9, Phase 2).
|
|
4
|
+
*
|
|
5
|
+
* Agents propose, humans confirm. `pica_rights_propose` follows the
|
|
6
|
+
* duplicate-merge pattern (ADR-288): tier "destructive", approvalMode "human",
|
|
7
|
+
* resource scope `write:catalog` so a delegated agent can PROPOSE; the org
|
|
8
|
+
* owner approves out-of-band and `human-approval-executor` replays the frozen
|
|
9
|
+
* params through the same `proposeRightsRule` the route calls. Proposing never
|
|
10
|
+
* activates or confirms anything — each party confirms by email.
|
|
11
|
+
*
|
|
12
|
+
* `pica_rights_status` and `pica_rights_inspect` are reads over
|
|
13
|
+
* `GET /api/admin/rights/rules/{id}` and `GET /api/admin/works/{id}/rights`.
|
|
14
|
+
*/
|
|
15
|
+
import { ApiError } from "@withpica/mcp-sdk";
|
|
16
|
+
import { formatSuccess, formatValidationError } from "@withpica/mcp-utils";
|
|
17
|
+
import { typedError } from "./error-envelope.js";
|
|
18
|
+
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
19
|
+
/** The share-rule kinds the propose route accepts (programmable-rights-share-rule SHARE_RULE_KINDS). */
|
|
20
|
+
export const RIGHTS_SHARE_KINDS = [
|
|
21
|
+
"publisher",
|
|
22
|
+
"manager_commission",
|
|
23
|
+
"sold_share",
|
|
24
|
+
"other",
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Build the POST body from tool args — only the fields the route reads, so
|
|
28
|
+
* nothing unexpected is forwarded. The route re-validates everything.
|
|
29
|
+
*/
|
|
30
|
+
export function buildProposeBody(args) {
|
|
31
|
+
const body = { rule: args.rule };
|
|
32
|
+
for (const key of [
|
|
33
|
+
"recording_id",
|
|
34
|
+
"ownership",
|
|
35
|
+
"side",
|
|
36
|
+
"subject_person_id",
|
|
37
|
+
"kind",
|
|
38
|
+
"parties",
|
|
39
|
+
"effective_from",
|
|
40
|
+
"effective_to",
|
|
41
|
+
]) {
|
|
42
|
+
if (args[key] !== undefined)
|
|
43
|
+
body[key] = args[key];
|
|
44
|
+
}
|
|
45
|
+
return body;
|
|
46
|
+
}
|
|
47
|
+
/** Parse the `{ error: { code, message, details } }` body off an SDK ApiError. */
|
|
48
|
+
function parseApiErrorBody(err) {
|
|
49
|
+
const text = err.message.replace(/^API request failed: \d+ /, "");
|
|
50
|
+
try {
|
|
51
|
+
const parsed = JSON.parse(text);
|
|
52
|
+
return {
|
|
53
|
+
code: parsed.error?.code,
|
|
54
|
+
message: parsed.error?.message,
|
|
55
|
+
reasons: parsed.error?.details?.reasons,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return {};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** The one-line message for a successful proposal. Never says "active" unless it is. */
|
|
63
|
+
export function proposeMessage(data) {
|
|
64
|
+
if (data.locked) {
|
|
65
|
+
return "The rule is locked: the only party confirmed it themselves in this one step.";
|
|
66
|
+
}
|
|
67
|
+
const n = data.requests?.length ?? 0;
|
|
68
|
+
const informed = data.informed?.length ?? 0;
|
|
69
|
+
return (`Proposed — nothing is active yet. ${n} ${n === 1 ? "party has" : "parties have"} been asked to confirm by email; ` +
|
|
70
|
+
`the rule becomes active only when every one of them confirms.` +
|
|
71
|
+
(informed > 0
|
|
72
|
+
? ` ${informed} other ${informed === 1 ? "party was" : "parties were"} told, not asked.`
|
|
73
|
+
: "") +
|
|
74
|
+
" Check progress with pica_rights_status.");
|
|
75
|
+
}
|
|
76
|
+
/** The one-line message for a song's rights overview. Holds are PICA's rules. */
|
|
77
|
+
export function inspectMessage(data) {
|
|
78
|
+
const title = data.workTitle ? `"${data.workTitle}"` : "this song";
|
|
79
|
+
const n = data.holds?.length ?? 0;
|
|
80
|
+
if (n === 0) {
|
|
81
|
+
return `Rules for ${title}. Nothing would be held under PICA's rules right now (amounts are not computed yet).`;
|
|
82
|
+
}
|
|
83
|
+
return (`Rules for ${title}. ${n} ${n === 1 ? "reason" : "reasons"} money would be held under PICA's rules — ` +
|
|
84
|
+
`each names who can clear it. These are PICA's rules, not a society's; no amounts are computed yet.`);
|
|
85
|
+
}
|
|
86
|
+
export class RightsTools {
|
|
87
|
+
pica;
|
|
88
|
+
constructor(pica) {
|
|
89
|
+
this.pica = pica;
|
|
90
|
+
}
|
|
91
|
+
getTools() {
|
|
92
|
+
return [
|
|
93
|
+
{
|
|
94
|
+
definition: {
|
|
95
|
+
name: "pica_rights_propose",
|
|
96
|
+
// ADR-321 §9 / ADR-288 pattern — write:catalog (the propose route's
|
|
97
|
+
// resource scope) so a catalog-scoped delegated agent can PROPOSE;
|
|
98
|
+
// the human approval substitutes for destructive:*.
|
|
99
|
+
scope: "write:catalog",
|
|
100
|
+
audiences: ["stdio", "http", "public"],
|
|
101
|
+
tier: "destructive",
|
|
102
|
+
// Delegated-agent callers (OAuth / pica_grant_*) cannot run this
|
|
103
|
+
// directly: the org owner approves out-of-band and PICA replays the
|
|
104
|
+
// frozen params via human-approval-executor.
|
|
105
|
+
approvalMode: "human",
|
|
106
|
+
description: "Propose a programmable-rights rule on a song and email the people it affects to confirm it. " +
|
|
107
|
+
"It PROPOSES ONLY: it never activates or confirms anything on anyone's behalf, and it never moves money. " +
|
|
108
|
+
"Each party confirms (or declines) from their own email; the rule becomes active only when every party whose confirmation is needed has confirmed. " +
|
|
109
|
+
'Three kinds: `rule:"song"` — the composition rule, from the song\'s writer splits; ' +
|
|
110
|
+
"`rule:\"master\"` with `recording_id` and `ownership` — a recording's master rule. Ask the user who owns the master first: entering a recording doesn't make them its owner. A master locks only after every owner signs its master ownership sheet; " +
|
|
111
|
+
"`rule:\"share\"` — divides ONE party's share among people (e.g. a writer's publishing deal: writer B 8000 / publisher P 2000 of B's share; " +
|
|
112
|
+
"or a manager's commission with an `effective_to` end date). " +
|
|
113
|
+
"Shares are basis points: 100 = 1%, and a share rule's parties must sum to 10,000 (100% of that one party's share). " +
|
|
114
|
+
"A refusal (song not ready, parties don't add up) writes nothing and lists the reasons. " +
|
|
115
|
+
"For delegated agents (OAuth connectors / pica_grant_*) this tool does NOT execute directly: it creates a pending human approval and the org owner approves out-of-band — relay the returned message and poll pica_approval_status. " +
|
|
116
|
+
"Read the song's current rules first with pica_rights_inspect; follow a proposal with pica_rights_status.",
|
|
117
|
+
workflows: "infrastructure",
|
|
118
|
+
vernacular_kind: "specialist",
|
|
119
|
+
vernacular_reason: "Destructive-tier proposal that emails third parties; invoked by exact name after explicit user confirmation.",
|
|
120
|
+
inputSchema: {
|
|
121
|
+
type: "object",
|
|
122
|
+
properties: {
|
|
123
|
+
work_id: {
|
|
124
|
+
type: "string",
|
|
125
|
+
description: "The song (work) id (UUID) — find it with pica_search_all.",
|
|
126
|
+
},
|
|
127
|
+
rule: {
|
|
128
|
+
type: "string",
|
|
129
|
+
enum: ["song", "master", "share"],
|
|
130
|
+
description: '"song" = the composition rule; "master" = a recording\'s master rule (needs recording_id); "share" = divide one party\'s share.',
|
|
131
|
+
},
|
|
132
|
+
recording_id: {
|
|
133
|
+
type: "string",
|
|
134
|
+
description: 'The recording (UUID). Required for rule:"master" and for a share on side:"master"; omit for a composition share.',
|
|
135
|
+
},
|
|
136
|
+
ownership: {
|
|
137
|
+
type: "string",
|
|
138
|
+
enum: ["only_me", "me_and_others", "someone_else"],
|
|
139
|
+
description: 'rule:"master" only, required: the user\'s answer to "who owns the master of this recording?". Ask them — never assume. "someone_else" is refused with how to add the real owner; an agent can never lock "only_me" in one step.',
|
|
140
|
+
},
|
|
141
|
+
side: {
|
|
142
|
+
type: "string",
|
|
143
|
+
enum: ["composition", "master"],
|
|
144
|
+
description: 'Share rules only: which side the divided share sits on (default "composition").',
|
|
145
|
+
},
|
|
146
|
+
subject_person_id: {
|
|
147
|
+
type: "string",
|
|
148
|
+
description: "Share rules only: the person whose share is being divided (UUID) — e.g. the writer with the publishing deal.",
|
|
149
|
+
},
|
|
150
|
+
kind: {
|
|
151
|
+
type: "string",
|
|
152
|
+
enum: [...RIGHTS_SHARE_KINDS],
|
|
153
|
+
description: "Share rules only: publisher (a publishing deal), manager_commission (usually with effective_to), sold_share, or other.",
|
|
154
|
+
},
|
|
155
|
+
parties: {
|
|
156
|
+
type: "array",
|
|
157
|
+
description: "Share rules only: 1–20 people and their share_bp of the subject's share. Basis points: 100 = 1%; must sum to 10000.",
|
|
158
|
+
items: {
|
|
159
|
+
type: "object",
|
|
160
|
+
properties: {
|
|
161
|
+
person_id: {
|
|
162
|
+
type: "string",
|
|
163
|
+
description: "The person (UUID).",
|
|
164
|
+
},
|
|
165
|
+
share_bp: {
|
|
166
|
+
type: "integer",
|
|
167
|
+
description: "Their part of the subject's share in basis points (100 = 1%).",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
required: ["person_id", "share_bp"],
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
effective_from: {
|
|
174
|
+
type: "string",
|
|
175
|
+
description: "Share rules only: start date, YYYY-MM-DD.",
|
|
176
|
+
},
|
|
177
|
+
effective_to: {
|
|
178
|
+
type: "string",
|
|
179
|
+
description: "Share rules only, optional: end date, YYYY-MM-DD (e.g. when a manager's commission ends). The share reverts after it.",
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
required: ["work_id", "rule"],
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
executor: this.propose.bind(this),
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
definition: {
|
|
189
|
+
name: "pica_rights_status",
|
|
190
|
+
scope: "read:catalog",
|
|
191
|
+
audiences: ["stdio", "http", "public"],
|
|
192
|
+
tier: "read",
|
|
193
|
+
description: "One programmable-rights rule's state: proposed, active, superseded or withdrawn; each party and whether they have confirmed this exact version (by its fingerprint), " +
|
|
194
|
+
"with what happened to their confirm email while it is open (sent, held, failed, none, unknown — never assume it went); any open withdrawal (disputed); and its dates. Use after pica_rights_propose to see who is still to confirm. " +
|
|
195
|
+
"Take rule_id from pica_rights_propose's result or from pica_rights_inspect. Read-only; nothing here confirms anything.",
|
|
196
|
+
workflows: "infrastructure",
|
|
197
|
+
vernacular_kind: "specialist",
|
|
198
|
+
vernacular_reason: "Follow-up read keyed by a rule id from pica_rights_propose or pica_rights_inspect; the creator question routes to pica_rights_inspect.",
|
|
199
|
+
inputSchema: {
|
|
200
|
+
type: "object",
|
|
201
|
+
properties: {
|
|
202
|
+
rule_id: {
|
|
203
|
+
type: "string",
|
|
204
|
+
description: "The rule id (UUID) — from pica_rights_propose's ruleId or pica_rights_inspect.",
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
required: ["rule_id"],
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
executor: this.status.bind(this),
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
definition: {
|
|
214
|
+
name: "pica_rights_inspect",
|
|
215
|
+
scope: "read:catalog",
|
|
216
|
+
audiences: ["stdio", "http", "public"],
|
|
217
|
+
tier: "read",
|
|
218
|
+
description: "Use when the user asks: 'who gets paid on this song?', " +
|
|
219
|
+
"'is this song programmable?', 'who still needs to confirm the rule?', " +
|
|
220
|
+
"'what money would PICA hold on this song, and why?'. " +
|
|
221
|
+
"A song's programmable-rights rules on both sides — the composition and each recording's master — song rules and share rules (publishing deals, manager commissions), " +
|
|
222
|
+
"active and proposed, with version history, disputes (open withdrawals), and HOLDS: what money would be held and why, and who or what clears it. " +
|
|
223
|
+
"Amounts are not computed yet (a later phase), so holds name the reason and the extent (the whole payment, or one party's portion) but no sums. " +
|
|
224
|
+
"HONESTY: holds are PICA's own rules about when money is released, not a society's (PRS, MLC, PPL…) — say so; for what may be holding up society income use pica_royalties_blockers. " +
|
|
225
|
+
"To propose a rule use pica_rights_propose.",
|
|
226
|
+
workflows: "infrastructure",
|
|
227
|
+
vernacular_kind: "creator-entry",
|
|
228
|
+
inputSchema: {
|
|
229
|
+
type: "object",
|
|
230
|
+
properties: {
|
|
231
|
+
work_id: {
|
|
232
|
+
type: "string",
|
|
233
|
+
description: "The song (work) id (UUID) — find it with pica_search_all.",
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
required: ["work_id"],
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
executor: this.inspect.bind(this),
|
|
240
|
+
},
|
|
241
|
+
];
|
|
242
|
+
}
|
|
243
|
+
async propose(args) {
|
|
244
|
+
const workId = args.work_id;
|
|
245
|
+
if (typeof workId !== "string" || !UUID.test(workId)) {
|
|
246
|
+
return formatValidationError({
|
|
247
|
+
work_id: "must be the song's id (a UUID) — find it with pica_search_all",
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
if (args.rule !== "song" &&
|
|
251
|
+
args.rule !== "master" &&
|
|
252
|
+
args.rule !== "share") {
|
|
253
|
+
return formatValidationError({
|
|
254
|
+
rule: 'must be "song", "master" or "share"',
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
try {
|
|
258
|
+
const data = await this.pica.rights.propose(workId, buildProposeBody(args));
|
|
259
|
+
return formatSuccess(proposeMessage(data), data);
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
// A 422 is a refusal decided before anything was written — surface the
|
|
263
|
+
// reasons so the agent can tell the user what to fix.
|
|
264
|
+
if (err instanceof ApiError &&
|
|
265
|
+
(err.status === 422 || err.status === 400)) {
|
|
266
|
+
const body = parseApiErrorBody(err);
|
|
267
|
+
const code = err.status === 400
|
|
268
|
+
? "VALIDATION_ERROR"
|
|
269
|
+
: body.code === "NOT_CHECKED"
|
|
270
|
+
? "RIGHTS_NOT_CHECKED"
|
|
271
|
+
: "RIGHTS_NOT_READY";
|
|
272
|
+
return typedError(code, body.message ?? err.message, {
|
|
273
|
+
reasons: Array.isArray(body.reasons) ? body.reasons : [],
|
|
274
|
+
nothing_written: true,
|
|
275
|
+
retry_safe: false,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
throw err;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
async status(args) {
|
|
282
|
+
const ruleId = args.rule_id;
|
|
283
|
+
if (typeof ruleId !== "string" || !UUID.test(ruleId)) {
|
|
284
|
+
return formatValidationError({
|
|
285
|
+
rule_id: "must be a rule id (a UUID) — pica_rights_inspect lists a song's rules",
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
const data = await this.pica.rights.status(ruleId);
|
|
289
|
+
return formatSuccess("Rule status", data);
|
|
290
|
+
}
|
|
291
|
+
async inspect(args) {
|
|
292
|
+
const workId = args.work_id;
|
|
293
|
+
if (typeof workId !== "string" || !UUID.test(workId)) {
|
|
294
|
+
return formatValidationError({
|
|
295
|
+
work_id: "must be the song's id (a UUID) — find it with pica_search_all",
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
const data = await this.pica.rights.inspect(workId);
|
|
299
|
+
return formatSuccess(inspectMessage(data), data);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=rights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rights.js","sourceRoot":"","sources":["../../src/tools/rights.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,10 +40,33 @@ export declare class RoyaltiesTools {
|
|
|
40
40
|
}>;
|
|
41
41
|
private listPayments;
|
|
42
42
|
private getEarnings;
|
|
43
|
-
private
|
|
43
|
+
private getBlockers;
|
|
44
44
|
private listStatements;
|
|
45
45
|
private getStatement;
|
|
46
46
|
private listUnmatched;
|
|
47
47
|
private attributePayment;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The one-line message for a song's blockers. It never calls a song clear
|
|
51
|
+
* unless `state` is "clear" — the honesty rule in the tool description, made
|
|
52
|
+
* true in the text an agent reads first.
|
|
53
|
+
*/
|
|
54
|
+
export declare function songBlockersMessage(result: {
|
|
55
|
+
state?: string;
|
|
56
|
+
blockers?: unknown[];
|
|
57
|
+
unchecked?: Array<{
|
|
58
|
+
reason?: string;
|
|
59
|
+
}>;
|
|
60
|
+
}): string;
|
|
61
|
+
/** The one-line message for the catalogue roll-up. Same honesty rule. */
|
|
62
|
+
export declare function catalogueBlockersMessage(data: {
|
|
63
|
+
summary?: {
|
|
64
|
+
total?: number;
|
|
65
|
+
clear?: number;
|
|
66
|
+
blocked?: number;
|
|
67
|
+
unknown?: number;
|
|
68
|
+
unchecked?: unknown[];
|
|
69
|
+
};
|
|
70
|
+
total_listed?: number;
|
|
71
|
+
}): string;
|
|
49
72
|
//# sourceMappingURL=royalties.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"royalties.d.ts","sourceRoot":"","sources":["../../src/tools/royalties.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAI3E,qBAAa,cAAc;IACzB,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":"royalties.d.ts","sourceRoot":"","sources":["../../src/tools/royalties.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAI3E,qBAAa,cAAc;IACzB,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;YAwY3D,YAAY;YA2BZ,WAAW;YAWX,WAAW;YAaX,cAAc;YAiBd,YAAY;YAiBZ,aAAa;YA0Bb,gBAAgB;CAoB/B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxC,GAAG,MAAM,CAcT;AAED,yEAAyE;AACzE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;KACvB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAUT"}
|
package/dist/tools/royalties.js
CHANGED
|
@@ -62,7 +62,7 @@ export class RoyaltiesTools {
|
|
|
62
62
|
description: "Use when the user asks: 'how much did I earn?', 'what are my earnings?', 'did I get paid?', " +
|
|
63
63
|
"'how much has this song earned?', 'what's X earned?', 'what's this song worth?'. " +
|
|
64
64
|
"Detailed earnings summary with breakdown by source and tax category, plus recent payment records and pagination. " +
|
|
65
|
-
"For what's
|
|
65
|
+
"For what's holding a song's money up rather than what's paid (missing ISWC or IPI, no confirmed registration) use pica_royalties_blockers instead.",
|
|
66
66
|
workflows: "infrastructure",
|
|
67
67
|
vernacular_kind: "specialist",
|
|
68
68
|
vernacular_reason: "Specialist context; not yet covered by the Creator Question Atlas — pending telemetry-driven addition per ADR-226 Phase 4 substrate writes.",
|
|
@@ -90,44 +90,6 @@ export class RoyaltiesTools {
|
|
|
90
90
|
},
|
|
91
91
|
executor: this.getEarnings.bind(this),
|
|
92
92
|
},
|
|
93
|
-
{
|
|
94
|
-
definition: {
|
|
95
|
-
name: "pica_royalties_summary",
|
|
96
|
-
scope: "read:finances",
|
|
97
|
-
audiences: ["stdio", "http", "public"],
|
|
98
|
-
tier: "read",
|
|
99
|
-
description: "Use when the user asks: 'what royalties am I missing?', 'where should I register?', " +
|
|
100
|
-
"'what registrations are missing?', 'what am I missing?'. " +
|
|
101
|
-
"Royalty gap analysis — identifies missing registrations, unlinked credits, and payment gaps. " +
|
|
102
|
-
"Does NOT return earnings totals or payment amounts — for 'how much did I earn?' use pica_royalties_get instead.",
|
|
103
|
-
workflows: "infrastructure",
|
|
104
|
-
vernacular_kind: "creator-entry",
|
|
105
|
-
inputSchema: {
|
|
106
|
-
type: "object",
|
|
107
|
-
properties: {
|
|
108
|
-
priority: {
|
|
109
|
-
type: "string",
|
|
110
|
-
description: "Filter by priority: high, medium, low",
|
|
111
|
-
},
|
|
112
|
-
gap_type: {
|
|
113
|
-
type: "string",
|
|
114
|
-
description: "Filter by gap type: prs_missing, ppl_missing, mcps_missing, " +
|
|
115
|
-
"spotify_missing, isrc_missing, iswc_missing, tunecode_missing, " +
|
|
116
|
-
"payment_missing, credit_unlinked",
|
|
117
|
-
},
|
|
118
|
-
work_id: {
|
|
119
|
-
type: "string",
|
|
120
|
-
description: "Filter gaps for a specific work",
|
|
121
|
-
},
|
|
122
|
-
limit: {
|
|
123
|
-
type: "number",
|
|
124
|
-
description: "Number of gaps to return (default 20)",
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
executor: this.getGaps.bind(this),
|
|
130
|
-
},
|
|
131
93
|
{
|
|
132
94
|
definition: {
|
|
133
95
|
name: "pica_statements_list",
|
|
@@ -311,6 +273,64 @@ export class RoyaltiesTools {
|
|
|
311
273
|
},
|
|
312
274
|
executor: this.listUnmatched.bind(this),
|
|
313
275
|
},
|
|
276
|
+
{
|
|
277
|
+
definition: {
|
|
278
|
+
name: "pica_royalties_blockers",
|
|
279
|
+
scope: "read:catalog",
|
|
280
|
+
audiences: ["stdio", "http", "public"],
|
|
281
|
+
tier: "read",
|
|
282
|
+
description: "Use when the user asks: 'why isn't this song being paid?', " +
|
|
283
|
+
"'what's holding up my money?', 'why am I not getting paid for X?', " +
|
|
284
|
+
"'what's stopping my songs being paid?'. " +
|
|
285
|
+
"What in the record is likely holding up a song's society income (PRS, MLC, PPL and so on), " +
|
|
286
|
+
"each with the fix: missing ISWC, writers without an IPI or society membership, shares that " +
|
|
287
|
+
"don't total 100%, disputed credits, no confirmed registration, recordings without an ISRC. " +
|
|
288
|
+
"Pass work_id for one song; omit it for the whole catalogue (a summary plus the songs that aren't clear, paged). " +
|
|
289
|
+
"HONESTY RULES — follow them exactly: (1) say 'nothing is holding it up' ONLY when state is 'clear'; " +
|
|
290
|
+
"if state is 'unknown' or `unchecked` is non-empty, tell the user those areas could not be checked — never call it clear. " +
|
|
291
|
+
"(2) these are what the record shows, not the society's own reason; say so. " +
|
|
292
|
+
"(3) evidence 'record_shows' means not confirmed — e.g. 'no confirmed registration', never 'not registered'. " +
|
|
293
|
+
"For earnings amounts use pica_royalties_get.",
|
|
294
|
+
workflows: "infrastructure",
|
|
295
|
+
vernacular_kind: "creator-entry",
|
|
296
|
+
inputSchema: {
|
|
297
|
+
type: "object",
|
|
298
|
+
properties: {
|
|
299
|
+
work_id: {
|
|
300
|
+
type: "string",
|
|
301
|
+
format: "uuid",
|
|
302
|
+
description: "The song (work) to check — its id (UUID), not its title. Find the id with pica_search_all. Omit for the whole catalogue.",
|
|
303
|
+
},
|
|
304
|
+
code: {
|
|
305
|
+
type: "string",
|
|
306
|
+
enum: [
|
|
307
|
+
"no_iswc",
|
|
308
|
+
"no_writers",
|
|
309
|
+
"writer_shares_unknown",
|
|
310
|
+
"writer_shares_not_100",
|
|
311
|
+
"writer_person_deleted",
|
|
312
|
+
"writer_no_ipi",
|
|
313
|
+
"writer_no_society",
|
|
314
|
+
"credit_disputed",
|
|
315
|
+
"split_dispute_open",
|
|
316
|
+
"not_registered",
|
|
317
|
+
"recording_no_isrc",
|
|
318
|
+
],
|
|
319
|
+
description: "Catalogue only: list just the songs with this blocker.",
|
|
320
|
+
},
|
|
321
|
+
limit: {
|
|
322
|
+
type: "number",
|
|
323
|
+
description: "Catalogue only: songs per page, 1–200 (default 50).",
|
|
324
|
+
},
|
|
325
|
+
offset: {
|
|
326
|
+
type: "number",
|
|
327
|
+
description: "Catalogue only: songs to skip (default 0).",
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
executor: this.getBlockers.bind(this),
|
|
333
|
+
},
|
|
314
334
|
// UNVERIFIED (ADR-286 Task 8b): authored in a worktree that cannot build
|
|
315
335
|
// these packages; must compile + test in the main checkout before merge.
|
|
316
336
|
{
|
|
@@ -383,34 +403,17 @@ export class RoyaltiesTools {
|
|
|
383
403
|
});
|
|
384
404
|
return formatSuccess("Earnings summary", data);
|
|
385
405
|
}
|
|
386
|
-
async
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
workId: args.work_id,
|
|
391
|
-
limit: args.limit || 20,
|
|
392
|
-
});
|
|
393
|
-
const hints = [];
|
|
394
|
-
const gaps = Array.isArray(data) ? data : [];
|
|
395
|
-
const prsGaps = gaps.filter((g) => g.gap_type === "prs_missing");
|
|
396
|
-
if (prsGaps.length > 0) {
|
|
397
|
-
hints.push({
|
|
398
|
-
gap: "prs_missing",
|
|
399
|
-
suggestion: `Register ${prsGaps.length} work(s) with PRS (pica_works_inspect with sections: ["registration"])`,
|
|
400
|
-
count: prsGaps.length,
|
|
401
|
-
severity: "critical",
|
|
402
|
-
});
|
|
406
|
+
async getBlockers(args) {
|
|
407
|
+
if (args.work_id) {
|
|
408
|
+
const data = await this.pica.royalties.blockers(String(args.work_id));
|
|
409
|
+
return formatSuccess(songBlockersMessage(data), data);
|
|
403
410
|
}
|
|
404
|
-
const
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
severity: "important",
|
|
411
|
-
});
|
|
412
|
-
}
|
|
413
|
-
return formatSuccess(`Found ${gaps.length} royalty gaps`, data, hints);
|
|
411
|
+
const data = await this.pica.royalties.blockersCatalogue({
|
|
412
|
+
code: args.code,
|
|
413
|
+
limit: args.limit,
|
|
414
|
+
offset: args.offset,
|
|
415
|
+
});
|
|
416
|
+
return formatSuccess(catalogueBlockersMessage(data), data);
|
|
414
417
|
}
|
|
415
418
|
async listStatements(args) {
|
|
416
419
|
const data = await this.pica.statements.history({
|
|
@@ -467,4 +470,34 @@ export class RoyaltiesTools {
|
|
|
467
470
|
return formatSuccess(`Royalty payment ${args.royalty_payment_id} ${action}`, data);
|
|
468
471
|
}
|
|
469
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* The one-line message for a song's blockers. It never calls a song clear
|
|
475
|
+
* unless `state` is "clear" — the honesty rule in the tool description, made
|
|
476
|
+
* true in the text an agent reads first.
|
|
477
|
+
*/
|
|
478
|
+
export function songBlockersMessage(result) {
|
|
479
|
+
const n = result.blockers?.length ?? 0;
|
|
480
|
+
const gaps = (result.unchecked ?? [])
|
|
481
|
+
.map((u) => u.reason)
|
|
482
|
+
.filter(Boolean)
|
|
483
|
+
.join("; ");
|
|
484
|
+
if (result.state === "clear")
|
|
485
|
+
return "Nothing in the record looks like it's holding up money on this song.";
|
|
486
|
+
if (n > 0)
|
|
487
|
+
return (`${n} thing${n === 1 ? "" : "s"} in the record likely holding up money on this song (what the record shows, not the society's own reason).` +
|
|
488
|
+
(gaps ? ` Also could not check: ${gaps}.` : ""));
|
|
489
|
+
return `Nothing found so far, but this is NOT a clean bill — could not check: ${gaps || "some areas"}.`;
|
|
490
|
+
}
|
|
491
|
+
/** The one-line message for the catalogue roll-up. Same honesty rule. */
|
|
492
|
+
export function catalogueBlockersMessage(data) {
|
|
493
|
+
const s = data.summary ?? {};
|
|
494
|
+
const base = `${s.total ?? 0} songs: ${s.blocked ?? 0} with something likely holding up money, ${s.clear ?? 0} clear`;
|
|
495
|
+
const unknown = s.unknown
|
|
496
|
+
? `, ${s.unknown} not fully checked (not clear — say so)`
|
|
497
|
+
: "";
|
|
498
|
+
const low = s.unchecked?.length
|
|
499
|
+
? " Some areas could not be checked, so counts may be low."
|
|
500
|
+
: "";
|
|
501
|
+
return `${base}${unknown}.${low}`;
|
|
502
|
+
}
|
|
470
503
|
//# sourceMappingURL=royalties.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"royalties.js","sourceRoot":"","sources":["../../src/tools/royalties.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"royalties.js","sourceRoot":"","sources":["../../src/tools/royalties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ToolResult } from "./index.js";
|
|
2
|
+
/** The closed list of section names the schema declares, or null if none. */
|
|
3
|
+
export declare function declaredSectionNames(inputSchema: unknown): string[] | null;
|
|
4
|
+
/**
|
|
5
|
+
* Returns a VALIDATION_ERROR result naming the unknown section(s) and the
|
|
6
|
+
* valid ones, or `null` when the call may proceed (no `sections` sent, the
|
|
7
|
+
* tool declares no closed list, or every name is known).
|
|
8
|
+
*
|
|
9
|
+
* A bare string (`sections: "basic"`) is checked as a one-element list rather
|
|
10
|
+
* than coerced, so a typo there is refused too; other non-array shapes are
|
|
11
|
+
* left to the executor.
|
|
12
|
+
*/
|
|
13
|
+
export declare function rejectUnknownSections(toolName: string, inputSchema: unknown, args: Record<string, unknown> | undefined): ToolResult | null;
|
|
14
|
+
//# sourceMappingURL=section-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-validation.d.ts","sourceRoot":"","sources":["../../src/tools/section-validation.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAQ1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,UAAU,GAAG,IAAI,CA8BnB"}
|