@withpica/mcp-server 2.39.0 → 2.40.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 (189) hide show
  1. package/CHANGELOG.md +109 -11
  2. package/dist/resources/agent-guide.d.ts +15 -0
  3. package/dist/resources/agent-guide.d.ts.map +1 -0
  4. package/dist/resources/agent-guide.js +120 -0
  5. package/dist/resources/agent-guide.js.map +1 -0
  6. package/dist/resources/index.d.ts.map +1 -1
  7. package/dist/resources/index.js +64 -0
  8. package/dist/resources/index.js.map +1 -1
  9. package/dist/resources/required-schemas.generated.d.ts +128 -0
  10. package/dist/resources/required-schemas.generated.d.ts.map +1 -0
  11. package/dist/resources/required-schemas.generated.js +344 -0
  12. package/dist/resources/required-schemas.generated.js.map +1 -0
  13. package/dist/resources/required-schemas.source.d.ts +53 -0
  14. package/dist/resources/required-schemas.source.d.ts.map +1 -0
  15. package/dist/resources/required-schemas.source.js +127 -0
  16. package/dist/resources/required-schemas.source.js.map +1 -0
  17. package/dist/tools/agent-identity.d.ts.map +1 -1
  18. package/dist/tools/agent-identity.js +5 -0
  19. package/dist/tools/agent-identity.js.map +1 -1
  20. package/dist/tools/agreement-types.d.ts.map +1 -1
  21. package/dist/tools/agreement-types.js +8 -0
  22. package/dist/tools/agreement-types.js.map +1 -1
  23. package/dist/tools/agreements.d.ts.map +1 -1
  24. package/dist/tools/agreements.js +6 -0
  25. package/dist/tools/agreements.js.map +1 -1
  26. package/dist/tools/analytics.d.ts.map +1 -1
  27. package/dist/tools/analytics.js +6 -0
  28. package/dist/tools/analytics.js.map +1 -1
  29. package/dist/tools/app-tools.d.ts.map +1 -1
  30. package/dist/tools/app-tools.js +3 -0
  31. package/dist/tools/app-tools.js.map +1 -1
  32. package/dist/tools/assets.d.ts.map +1 -1
  33. package/dist/tools/assets.js +11 -0
  34. package/dist/tools/assets.js.map +1 -1
  35. package/dist/tools/audio-files.d.ts.map +1 -1
  36. package/dist/tools/audio-files.js +6 -0
  37. package/dist/tools/audio-files.js.map +1 -1
  38. package/dist/tools/audit.d.ts +1 -1
  39. package/dist/tools/audit.d.ts.map +1 -1
  40. package/dist/tools/audit.js +2 -1
  41. package/dist/tools/audit.js.map +1 -1
  42. package/dist/tools/auth.d.ts.map +1 -1
  43. package/dist/tools/auth.js +2 -0
  44. package/dist/tools/auth.js.map +1 -1
  45. package/dist/tools/bulk.d.ts.map +1 -1
  46. package/dist/tools/bulk.js +2 -0
  47. package/dist/tools/bulk.js.map +1 -1
  48. package/dist/tools/calendar.d.ts.map +1 -1
  49. package/dist/tools/calendar.js +1 -0
  50. package/dist/tools/calendar.js.map +1 -1
  51. package/dist/tools/collaborators.d.ts.map +1 -1
  52. package/dist/tools/collaborators.js +7 -0
  53. package/dist/tools/collaborators.js.map +1 -1
  54. package/dist/tools/comparisons.d.ts.map +1 -1
  55. package/dist/tools/comparisons.js +2 -0
  56. package/dist/tools/comparisons.js.map +1 -1
  57. package/dist/tools/credits.d.ts.map +1 -1
  58. package/dist/tools/credits.js +3 -0
  59. package/dist/tools/credits.js.map +1 -1
  60. package/dist/tools/custody.d.ts.map +1 -1
  61. package/dist/tools/custody.js +6 -0
  62. package/dist/tools/custody.js.map +1 -1
  63. package/dist/tools/dashboard.d.ts.map +1 -1
  64. package/dist/tools/dashboard.js +8 -0
  65. package/dist/tools/dashboard.js.map +1 -1
  66. package/dist/tools/directory.d.ts.map +1 -1
  67. package/dist/tools/directory.js +1 -0
  68. package/dist/tools/directory.js.map +1 -1
  69. package/dist/tools/discovery.d.ts.map +1 -1
  70. package/dist/tools/discovery.js +3 -0
  71. package/dist/tools/discovery.js.map +1 -1
  72. package/dist/tools/disputes.d.ts.map +1 -1
  73. package/dist/tools/disputes.js +1 -0
  74. package/dist/tools/disputes.js.map +1 -1
  75. package/dist/tools/documents.d.ts.map +1 -1
  76. package/dist/tools/documents.js +1 -0
  77. package/dist/tools/documents.js.map +1 -1
  78. package/dist/tools/duplicates.d.ts.map +1 -1
  79. package/dist/tools/duplicates.js +2 -0
  80. package/dist/tools/duplicates.js.map +1 -1
  81. package/dist/tools/enrichment.d.ts.map +1 -1
  82. package/dist/tools/enrichment.js +11 -0
  83. package/dist/tools/enrichment.js.map +1 -1
  84. package/dist/tools/exports.d.ts.map +1 -1
  85. package/dist/tools/exports.js +5 -0
  86. package/dist/tools/exports.js.map +1 -1
  87. package/dist/tools/feedback.d.ts.map +1 -1
  88. package/dist/tools/feedback.js +1 -0
  89. package/dist/tools/feedback.js.map +1 -1
  90. package/dist/tools/import-documents.d.ts.map +1 -1
  91. package/dist/tools/import-documents.js +3 -0
  92. package/dist/tools/import-documents.js.map +1 -1
  93. package/dist/tools/import.d.ts.map +1 -1
  94. package/dist/tools/import.js +8 -0
  95. package/dist/tools/import.js.map +1 -1
  96. package/dist/tools/index.d.ts +21 -0
  97. package/dist/tools/index.d.ts.map +1 -1
  98. package/dist/tools/index.js.map +1 -1
  99. package/dist/tools/integrations.d.ts.map +1 -1
  100. package/dist/tools/integrations.js +1 -0
  101. package/dist/tools/integrations.js.map +1 -1
  102. package/dist/tools/labels.d.ts.map +1 -1
  103. package/dist/tools/labels.js +1 -0
  104. package/dist/tools/labels.js.map +1 -1
  105. package/dist/tools/licensing.d.ts.map +1 -1
  106. package/dist/tools/licensing.js +5 -0
  107. package/dist/tools/licensing.js.map +1 -1
  108. package/dist/tools/memory.d.ts.map +1 -1
  109. package/dist/tools/memory.js +4 -0
  110. package/dist/tools/memory.js.map +1 -1
  111. package/dist/tools/multimedia.d.ts.map +1 -1
  112. package/dist/tools/multimedia.js +5 -0
  113. package/dist/tools/multimedia.js.map +1 -1
  114. package/dist/tools/my-reported-issues.d.ts.map +1 -1
  115. package/dist/tools/my-reported-issues.js +1 -0
  116. package/dist/tools/my-reported-issues.js.map +1 -1
  117. package/dist/tools/notes.d.ts.map +1 -1
  118. package/dist/tools/notes.js +4 -0
  119. package/dist/tools/notes.js.map +1 -1
  120. package/dist/tools/notifications.d.ts.map +1 -1
  121. package/dist/tools/notifications.js +6 -0
  122. package/dist/tools/notifications.js.map +1 -1
  123. package/dist/tools/onboarding.d.ts.map +1 -1
  124. package/dist/tools/onboarding.js +1 -0
  125. package/dist/tools/onboarding.js.map +1 -1
  126. package/dist/tools/people.d.ts.map +1 -1
  127. package/dist/tools/people.js +5 -0
  128. package/dist/tools/people.js.map +1 -1
  129. package/dist/tools/projects.d.ts.map +1 -1
  130. package/dist/tools/projects.js +6 -0
  131. package/dist/tools/projects.js.map +1 -1
  132. package/dist/tools/publishers.d.ts.map +1 -1
  133. package/dist/tools/publishers.js +2 -0
  134. package/dist/tools/publishers.js.map +1 -1
  135. package/dist/tools/recordings.d.ts.map +1 -1
  136. package/dist/tools/recordings.js +5 -0
  137. package/dist/tools/recordings.js.map +1 -1
  138. package/dist/tools/release-rich.d.ts.map +1 -1
  139. package/dist/tools/release-rich.js +1 -0
  140. package/dist/tools/release-rich.js.map +1 -1
  141. package/dist/tools/releases.d.ts.map +1 -1
  142. package/dist/tools/releases.js +14 -0
  143. package/dist/tools/releases.js.map +1 -1
  144. package/dist/tools/report-issue.d.ts.map +1 -1
  145. package/dist/tools/report-issue.js +1 -0
  146. package/dist/tools/report-issue.js.map +1 -1
  147. package/dist/tools/royalties.d.ts.map +1 -1
  148. package/dist/tools/royalties.js +5 -0
  149. package/dist/tools/royalties.js.map +1 -1
  150. package/dist/tools/search.d.ts.map +1 -1
  151. package/dist/tools/search.js +3 -0
  152. package/dist/tools/search.js.map +1 -1
  153. package/dist/tools/send.d.ts.map +1 -1
  154. package/dist/tools/send.js +3 -0
  155. package/dist/tools/send.js.map +1 -1
  156. package/dist/tools/sessions.d.ts.map +1 -1
  157. package/dist/tools/sessions.js +4 -0
  158. package/dist/tools/sessions.js.map +1 -1
  159. package/dist/tools/settings.d.ts.map +1 -1
  160. package/dist/tools/settings.js +9 -0
  161. package/dist/tools/settings.js.map +1 -1
  162. package/dist/tools/share-links.d.ts.map +1 -1
  163. package/dist/tools/share-links.js +5 -0
  164. package/dist/tools/share-links.js.map +1 -1
  165. package/dist/tools/signup.d.ts.map +1 -1
  166. package/dist/tools/signup.js +1 -0
  167. package/dist/tools/signup.js.map +1 -1
  168. package/dist/tools/split-sheets.d.ts.map +1 -1
  169. package/dist/tools/split-sheets.js +7 -0
  170. package/dist/tools/split-sheets.js.map +1 -1
  171. package/dist/tools/subscription.d.ts.map +1 -1
  172. package/dist/tools/subscription.js +2 -0
  173. package/dist/tools/subscription.js.map +1 -1
  174. package/dist/tools/team.d.ts.map +1 -1
  175. package/dist/tools/team.js +5 -0
  176. package/dist/tools/team.js.map +1 -1
  177. package/dist/tools/telegram.d.ts.map +1 -1
  178. package/dist/tools/telegram.js +3 -0
  179. package/dist/tools/telegram.js.map +1 -1
  180. package/dist/tools/uploads.d.ts.map +1 -1
  181. package/dist/tools/uploads.js +2 -0
  182. package/dist/tools/uploads.js.map +1 -1
  183. package/dist/tools/works.d.ts.map +1 -1
  184. package/dist/tools/works.js +7 -0
  185. package/dist/tools/works.js.map +1 -1
  186. package/package.json +7 -3
  187. package/scripts/build-required-schemas.ts +233 -0
  188. package/scripts/refresh-schema-mirror.ts +182 -0
  189. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -11,6 +11,104 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [2.40.0] - 2026-04-30
15
+
16
+ ### Changed
17
+
18
+ - **ADR-214 W4 — `workflows` field is now required on `ToolDefinition`.**
19
+ Flips the optional `workflows?: WorkflowTag | WorkflowTag[]` field
20
+ introduced in W1 to a required `workflows: WorkflowTag | WorkflowTag[]`.
21
+ TypeScript compilation now enforces that every new tool authored
22
+ declares its workflow membership at the source site — no escape
23
+ hatch except the explicit `"infrastructure"` opt-out. Drift
24
+ prevention mechanism #1 from ADR-214 §"Drift prevention" is now
25
+ fully load-bearing. `lint-required-schemas.ts` hardened: the
26
+ parallel-window warning for untagged tools becomes a hard error
27
+ (defence-in-depth in case a tool somehow reaches the registry
28
+ without a `workflows` field at runtime).
29
+
30
+ ### Added
31
+
32
+ - **ADR-214 W2 — agent-guide + required-fields schema resources.**
33
+ Two new resource families on the catalog `mcp-server`:
34
+ - `pica://docs/agent-guide` — workflow narrative for agents. Visible
35
+ in both lobby and authenticated modes; content branches on
36
+ `lobbyMode`. Lobby variant (~865 bytes) covers the signup → magic
37
+ link flow + what unlocks. Authenticated variant (~4.3 KB) lists the
38
+ five core workflows (register a work, add a recording, add audio,
39
+ add recording credits, enrich metadata) with verbatim tool sequences
40
+ and 8 common gotchas — verified against the live tool registry on
41
+ 2026-04-30.
42
+ - `pica://schemas/work-required`, `pica://schemas/recording-required`,
43
+ `pica://schemas/work-credits-required`,
44
+ `pica://schemas/recording-credits-required`,
45
+ `pica://schemas/person-required` — JSON contracts derived at build
46
+ time from each tool's `inputSchema` (in `ToolRegistry`) joined with
47
+ `schema-mirror.json` for live CHECK constraint enums. Authenticated
48
+ mode only.
49
+ - **Build-time generator + schema mirror.**
50
+ - `mcp-server/scripts/build-required-schemas.ts` — runs as part of
51
+ `npm run prebuild` (chained after `bundle-apps.ts`); reads
52
+ `required-schemas.source.ts` + `ToolRegistry` + `schema-mirror.json`
53
+ and emits the deterministic `required-schemas.generated.ts`
54
+ (committed to git so PR diffs surface drift, per
55
+ `feedback_type_regen_cumulative_drift`).
56
+ - `mcp-server/src/resources/schema-mirror.json` — committed snapshot
57
+ of CHECK constraint enums for `works`, `recordings`, `work_credits`,
58
+ `recording_credits`, `audio_files`. Refresh via
59
+ `mcp-server/scripts/refresh-schema-mirror.ts` (humans only; CI never
60
+ auto-regenerates).
61
+ - **Inverse-coverage CI lint (`scripts/lint-required-schemas.ts`).**
62
+ Walks `ToolRegistry` and `REQUIRED_SCHEMAS_SOURCE` from both
63
+ directions: every tool whose `workflows` field tags it for a workflow
64
+ must appear in the source file; every source reference must resolve
65
+ to a real tool. During the parallel-development window (W1 still in
66
+ flight), tools missing the `workflows` field emit a single summary
67
+ warning (per coordinator decision Stage 1 §R2). Once W4 makes the
68
+ field required, the warning becomes an error.
69
+ - **Agent-guide drift lint (`scripts/lint-agent-guide.ts`).** Greps
70
+ every `pica_*` token in `agent-guide.ts` against `ToolRegistry` (in
71
+ both `discoveryMode` settings, so meta-tools like `pica_discover` are
72
+ resolvable). Catches stale references after tool renames.
73
+ - **Meta-tests** for both lints (per `feedback_meta_test_load_bearing`):
74
+ 3 / 3 regressions caught and reverted before ship — see
75
+ `docs/follow-ups/2026-04-30-adr214-w2-meta-test-outcomes.md`.
76
+
77
+ ### Changed
78
+
79
+ - `mcp-server/package.json` — `prebuild` now chains
80
+ `bundle-apps.ts && build-required-schemas.ts`. New scripts
81
+ `lint:required-schemas` and `lint:agent-guide` added; both wired into
82
+ `prepublishOnly` after the existing checks.
83
+ - `mcp-server/src/resources/index.ts` — registers 6 new URIs across
84
+ `listResources()` (1 in the lobby branch, 5 in the authenticated
85
+ branch) and `readResource()` (1 case for the agent-guide variant
86
+ branch, 5 cases for the schema URIs).
87
+
88
+ ### Dependencies
89
+
90
+ - `pg` + `@types/pg` added as devDependencies (used only by
91
+ `refresh-schema-mirror.ts` for direct Postgres CHECK-constraint pulls
92
+ against staging).
93
+
94
+ ### Internal
95
+
96
+ - **ADR-214 W1 — `WorkflowTag` type + optional `workflows` field on tool
97
+ definitions.** Adds a union type
98
+ (`"work-required" | "recording-required" | "work-credits-required"
99
+ | "recording-credits-required" | "person-required" | "infrastructure"`)
100
+ and a `workflows?: WorkflowTag | WorkflowTag[]` field to
101
+ `ToolDefinition` at `mcp-server/src/tools/index.ts`. All 231 tools now
102
+ carry the field — 8 catalog-core tools (`pica_works_create`,
103
+ `pica_works_update`, `pica_recordings_create`,
104
+ `pica_recordings_update`, `pica_people_create`, `pica_people_update`,
105
+ `pica_credits_update`, `pica_recording_credits_update`) reference one
106
+ or more Phase 1 workflows; the remaining 223 carry
107
+ `"infrastructure"`. Field is optional in W1 to keep the rollout
108
+ additive; W4 (post-merge of W1 + W2 resource scaffolding) flips it to
109
+ required so every future tool is forced to declare its workflow at
110
+ compile time. No runtime behaviour change in this release.
111
+
14
112
  ## [2.39.0] - 2026-04-30
15
113
 
16
114
  ### Added
@@ -85,7 +183,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
85
183
  with track-list expand and inline streaming embeds is queued under
86
184
  the ADR-200 Phase 1.x backlog.
87
185
  - **`structuredContent`** envelope — `{ title, markdown, cover_base64,
88
- cover_mime_type, resource_link_uri }`. Apps clients prefer this over
186
+ cover_mime_type, resource_link_uri }`. Apps clients prefer this over
89
187
  re-decoding the image content block; non-Apps clients ignore it.
90
188
 
91
189
  ### Notes
@@ -162,15 +260,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
162
260
  hints via the new `buildRecordingAttributionHints(recording)` helper
163
261
  (`mcp-server/src/tools/recording-attribution-hints.ts`). Mirror of
164
262
  `buildCustodyHints` for works:
165
- - `recording_ownership_unset` — fires when `ownership_percentage IS NULL`.
166
- Suggests `pica_recordings_update ownership_percentage:N`.
167
- - `recording_no_credits` — always fires (we never know credits from a
168
- single fresh row). Suggests the new `pica_recording_credits_update`.
169
- - `recording_master_unclaimed` — fires when `ownership_percentage IS NULL`.
170
- Alternative path for multi-party master claims via `pica_custody_claim`.
171
- NULL-only triggers: `0` is "explicit zero", no hint. Negative-path
172
- covered by jest at `recording-attribution-hints.test.ts` per
173
- `feedback_meta_test_load_bearing.md`.
263
+ - `recording_ownership_unset` — fires when `ownership_percentage IS NULL`.
264
+ Suggests `pica_recordings_update ownership_percentage:N`.
265
+ - `recording_no_credits` — always fires (we never know credits from a
266
+ single fresh row). Suggests the new `pica_recording_credits_update`.
267
+ - `recording_master_unclaimed` — fires when `ownership_percentage IS NULL`.
268
+ Alternative path for multi-party master claims via `pica_custody_claim`.
269
+ NULL-only triggers: `0` is "explicit zero", no hint. Negative-path
270
+ covered by jest at `recording-attribution-hints.test.ts` per
271
+ `feedback_meta_test_load_bearing.md`.
174
272
  - **ADR-213 Primitive B — `pica_recording_credits_update`.** First-party
175
273
  recording-side write tool; closes the work/recording credit-write
176
274
  asymmetry. Writes to `recording_credits` (NOT the trade-secret
@@ -259,7 +357,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
259
357
  missing (HTTP-discovery without bearer scope), or when the SDK response
260
358
  is missing `billing_slice` (older server pre-Phase-1), the fetcher
261
359
  emits a conservative `{ billing_state: "trial", trial_days_remaining:
262
- null, current_tier: null, capacity_pct: 0 }` rather than fabricating
360
+ null, current_tier: null, capacity_pct: 0 }` rather than fabricating
263
361
  "active" — the agent never sees misleading "active" billing for an
264
362
  uninitialized context.
265
363
 
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ADR-214 — workflow narrative for agents.
3
+ *
4
+ * Two markdown constants. ResourceRegistry serves AGENT_GUIDE_LOBBY when
5
+ * config.lobbyMode || !pica, AGENT_GUIDE_AUTHENTICATED otherwise.
6
+ *
7
+ * Tool sequences are verbatim from ADR-214 Decision section "Top
8
+ * workflows" — audit-verified 2026-04-30 against the live ToolRegistry.
9
+ *
10
+ * Edits to this file are linted by scripts/lint-agent-guide.ts: every
11
+ * `pica_*` token must resolve to a real tool in ToolRegistry.
12
+ */
13
+ export declare const AGENT_GUIDE_AUTHENTICATED = "# pica \u2014 agent guide\n\npica manages a music catalog: works (compositions), recordings (masters),\npeople (writers, performers, publishers), credits, agreements, exports.\nmulti-tenant per organisation; every write is org-scoped automatically.\n\nyou are signed in. ~227 tools are available. five core workflows below\ncover most of the surface; for anything not listed, fall back to\n`pica_discover` (mode: list_categories \u2192 list_tools) \u2192 `pica_tool_details`.\n\n## top workflows\n\n### register a new work\n1. `pica_works_create` \u2014 title required; iswc settable inline.\n2. `pica_credits_update` \u2014 batch; attach writer/composer credits.\n writer_split_percentage values must sum to 100 across all writer rows.\n see `pica://schemas/work-required` and `pica://schemas/work-credits-required`.\n\n### add a recording to an existing work\n- `pica_recordings_create` \u2014 title + artist_name + version_type required\n (version_type defaults to `master`). isrc and duration_ms are inline.\n- see `pica://schemas/recording-required`.\n\n### add audio to a recording\n1. `pica_audio_presigned_upload` \u2014 returns a signed url + token.\n2. uploader (browser, curl, sdk) PUTs the file to that url.\n3. `pica_audio_complete_upload` \u2014 registers the upload in the catalog.\n4. (optional) `pica_audio_analyze` \u2014 async; extracts bpm, key, mood, and\n transcribes lyrics via whisper.\n5. `pica_audio_inspect` (sections: [\"analysis\", \"status\"]) \u2014 poll for\n analysis results when you called step 4.\n\n### add recording credits\n- `pica_recording_credits_update` \u2014 batch. role enum is DISTINCT from\n work credits (MainArtist / FeaturedArtist / Producer / Engineer / etc.).\n- person_id is OPTIONAL \u2014 credits can carry just credited_name when the\n person isn't in the catalog yet.\n- see `pica://schemas/recording-credits-required`.\n\n### enrich existing metadata\n1. `pica_resolve_work` / `pica_resolve_person` / `pica_resolve_recording` \u2014\n tier A identifier matches apply directly; tier B fuzzy matches queue\n as proposals.\n2. `pica_enrichment_proposals_list` \u2014 view pending proposals.\n3. `pica_enrichment_proposal_apply` \u2014 commit a proposal you've reviewed.\n\n## common gotchas\n\n- **duration units differ.** `works.duration_seconds` (integer seconds);\n `recordings.duration_ms` (integer milliseconds);\n `audio_files.duration_seconds` (seconds again).\n- **no standalone identifier-assign tool.** iswc on works, isrc on\n recordings, ipi/pro/ppl/mcps numbers on people \u2014 all inline at create\n or update. there is no separate identifier tool family; don't search\n for one.\n- **two write surfaces for work collaborators.** `pica_credits_update`\n is canonical (writer/publisher splits + attestation). `work_collaborators`\n is a simpler legacy surface still used by some flows.\n- **recording credits are a separate surface** with a different role\n enum. use `pica_recording_credits_update`, not `pica_credits_update`.\n- **people identifier sprawl.** inline columns: `cae_ipi_number`,\n `ipn_number`, `prs_number`, `ppl_number`, `pro_member_number`,\n `mcps_member_number`. satellite (settable through the same create/update\n call): `isni`, `musicbrainz_id`, `wikidata_id`, `discogs_artist_id`,\n `imdb_id`, `viaf_id`, `deezer_artist_id`. treat as one inline surface.\n- **audio analysis is async + explicit.** `pica_audio_complete_upload`\n does NOT auto-trigger analysis. call `pica_audio_analyze` and poll.\n- **lyrics from analysis don't auto-write back to `works.lyrics`.**\n whisper transcripts land on the analysis row; copy is a separate step.\n- **org scoping + duplicate prevention.** every write is scoped to the\n caller's organisation. iswc and isrc duplicates are blocked at write.\n\n## schema resources (pre-flight before each workflow)\n\n- `pica://schemas/work-required` \u2014 backs `pica_works_create`.\n- `pica://schemas/recording-required` \u2014 backs `pica_recordings_create`.\n- `pica://schemas/work-credits-required` \u2014 backs `pica_credits_update`.\n- `pica://schemas/recording-credits-required` \u2014 backs `pica_recording_credits_update`.\n- `pica://schemas/person-required` \u2014 backs `pica_people_create`.\n\neach schema returns a json contract: required fields, recommended fields,\nCHECK enum values, companion-call orchestration, and an example payload.\n";
14
+ export declare const AGENT_GUIDE_LOBBY = "# pica \u2014 sign in to begin\n\nyou are in lobby mode. three tools are available; the rest unlock after\nsign-in.\n\n## lobby tools\n- `pica_signup_start` \u2014 create a new organisation and get a magic link\n for first-time setup.\n- `pica_sign_in` \u2014 request a magic link for an existing user.\n- `pica_sign_out` \u2014 drop session.\n\n## to sign in\n1. ask the user for an email address.\n2. call `pica_signup_start` (new user) or `pica_sign_in` (returning).\n3. user clicks the magic link. on the next request, the catalog tool\n surface unlocks automatically \u2014 no config to refresh.\n\n## what unlocks after sign-in\n~227 tools across catalog (works, recordings, people, credits),\nenrichment, exports, agreements, multimedia, analytics, and audio. five\nrequired-fields schema resources at `pica://schemas/<workflow>-required`.\nthe full agent-guide replaces this lobby content.\n";
15
+ //# sourceMappingURL=agent-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-guide.d.ts","sourceRoot":"","sources":["../../src/resources/agent-guide.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,yBAAyB,2zIAkFrC,CAAC;AAEF,eAAO,MAAM,iBAAiB,24BAsB7B,CAAC"}
@@ -0,0 +1,120 @@
1
+ // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
+ /**
3
+ * ADR-214 — workflow narrative for agents.
4
+ *
5
+ * Two markdown constants. ResourceRegistry serves AGENT_GUIDE_LOBBY when
6
+ * config.lobbyMode || !pica, AGENT_GUIDE_AUTHENTICATED otherwise.
7
+ *
8
+ * Tool sequences are verbatim from ADR-214 Decision section "Top
9
+ * workflows" — audit-verified 2026-04-30 against the live ToolRegistry.
10
+ *
11
+ * Edits to this file are linted by scripts/lint-agent-guide.ts: every
12
+ * `pica_*` token must resolve to a real tool in ToolRegistry.
13
+ */
14
+ export const AGENT_GUIDE_AUTHENTICATED = `# pica — agent guide
15
+
16
+ pica manages a music catalog: works (compositions), recordings (masters),
17
+ people (writers, performers, publishers), credits, agreements, exports.
18
+ multi-tenant per organisation; every write is org-scoped automatically.
19
+
20
+ you are signed in. ~227 tools are available. five core workflows below
21
+ cover most of the surface; for anything not listed, fall back to
22
+ \`pica_discover\` (mode: list_categories → list_tools) → \`pica_tool_details\`.
23
+
24
+ ## top workflows
25
+
26
+ ### register a new work
27
+ 1. \`pica_works_create\` — title required; iswc settable inline.
28
+ 2. \`pica_credits_update\` — batch; attach writer/composer credits.
29
+ writer_split_percentage values must sum to 100 across all writer rows.
30
+ see \`pica://schemas/work-required\` and \`pica://schemas/work-credits-required\`.
31
+
32
+ ### add a recording to an existing work
33
+ - \`pica_recordings_create\` — title + artist_name + version_type required
34
+ (version_type defaults to \`master\`). isrc and duration_ms are inline.
35
+ - see \`pica://schemas/recording-required\`.
36
+
37
+ ### add audio to a recording
38
+ 1. \`pica_audio_presigned_upload\` — returns a signed url + token.
39
+ 2. uploader (browser, curl, sdk) PUTs the file to that url.
40
+ 3. \`pica_audio_complete_upload\` — registers the upload in the catalog.
41
+ 4. (optional) \`pica_audio_analyze\` — async; extracts bpm, key, mood, and
42
+ transcribes lyrics via whisper.
43
+ 5. \`pica_audio_inspect\` (sections: ["analysis", "status"]) — poll for
44
+ analysis results when you called step 4.
45
+
46
+ ### add recording credits
47
+ - \`pica_recording_credits_update\` — batch. role enum is DISTINCT from
48
+ work credits (MainArtist / FeaturedArtist / Producer / Engineer / etc.).
49
+ - person_id is OPTIONAL — credits can carry just credited_name when the
50
+ person isn't in the catalog yet.
51
+ - see \`pica://schemas/recording-credits-required\`.
52
+
53
+ ### enrich existing metadata
54
+ 1. \`pica_resolve_work\` / \`pica_resolve_person\` / \`pica_resolve_recording\` —
55
+ tier A identifier matches apply directly; tier B fuzzy matches queue
56
+ as proposals.
57
+ 2. \`pica_enrichment_proposals_list\` — view pending proposals.
58
+ 3. \`pica_enrichment_proposal_apply\` — commit a proposal you've reviewed.
59
+
60
+ ## common gotchas
61
+
62
+ - **duration units differ.** \`works.duration_seconds\` (integer seconds);
63
+ \`recordings.duration_ms\` (integer milliseconds);
64
+ \`audio_files.duration_seconds\` (seconds again).
65
+ - **no standalone identifier-assign tool.** iswc on works, isrc on
66
+ recordings, ipi/pro/ppl/mcps numbers on people — all inline at create
67
+ or update. there is no separate identifier tool family; don't search
68
+ for one.
69
+ - **two write surfaces for work collaborators.** \`pica_credits_update\`
70
+ is canonical (writer/publisher splits + attestation). \`work_collaborators\`
71
+ is a simpler legacy surface still used by some flows.
72
+ - **recording credits are a separate surface** with a different role
73
+ enum. use \`pica_recording_credits_update\`, not \`pica_credits_update\`.
74
+ - **people identifier sprawl.** inline columns: \`cae_ipi_number\`,
75
+ \`ipn_number\`, \`prs_number\`, \`ppl_number\`, \`pro_member_number\`,
76
+ \`mcps_member_number\`. satellite (settable through the same create/update
77
+ call): \`isni\`, \`musicbrainz_id\`, \`wikidata_id\`, \`discogs_artist_id\`,
78
+ \`imdb_id\`, \`viaf_id\`, \`deezer_artist_id\`. treat as one inline surface.
79
+ - **audio analysis is async + explicit.** \`pica_audio_complete_upload\`
80
+ does NOT auto-trigger analysis. call \`pica_audio_analyze\` and poll.
81
+ - **lyrics from analysis don't auto-write back to \`works.lyrics\`.**
82
+ whisper transcripts land on the analysis row; copy is a separate step.
83
+ - **org scoping + duplicate prevention.** every write is scoped to the
84
+ caller's organisation. iswc and isrc duplicates are blocked at write.
85
+
86
+ ## schema resources (pre-flight before each workflow)
87
+
88
+ - \`pica://schemas/work-required\` — backs \`pica_works_create\`.
89
+ - \`pica://schemas/recording-required\` — backs \`pica_recordings_create\`.
90
+ - \`pica://schemas/work-credits-required\` — backs \`pica_credits_update\`.
91
+ - \`pica://schemas/recording-credits-required\` — backs \`pica_recording_credits_update\`.
92
+ - \`pica://schemas/person-required\` — backs \`pica_people_create\`.
93
+
94
+ each schema returns a json contract: required fields, recommended fields,
95
+ CHECK enum values, companion-call orchestration, and an example payload.
96
+ `;
97
+ export const AGENT_GUIDE_LOBBY = `# pica — sign in to begin
98
+
99
+ you are in lobby mode. three tools are available; the rest unlock after
100
+ sign-in.
101
+
102
+ ## lobby tools
103
+ - \`pica_signup_start\` — create a new organisation and get a magic link
104
+ for first-time setup.
105
+ - \`pica_sign_in\` — request a magic link for an existing user.
106
+ - \`pica_sign_out\` — drop session.
107
+
108
+ ## to sign in
109
+ 1. ask the user for an email address.
110
+ 2. call \`pica_signup_start\` (new user) or \`pica_sign_in\` (returning).
111
+ 3. user clicks the magic link. on the next request, the catalog tool
112
+ surface unlocks automatically — no config to refresh.
113
+
114
+ ## what unlocks after sign-in
115
+ ~227 tools across catalog (works, recordings, people, credits),
116
+ enrichment, exports, agreements, multimedia, analytics, and audio. five
117
+ required-fields schema resources at \`pica://schemas/<workflow>-required\`.
118
+ the full agent-guide replaces this lobby content.
119
+ `;
120
+ //# sourceMappingURL=agent-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../../src/resources/agent-guide.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFxC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAM5C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,MAAM,CAAC,CAAe;gBAElB,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,YAAY;IAK1D;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IAqGrC;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyH7C;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;YACW,YAAY;IA4B1B;;OAEG;YACW,aAAa;IA4B3B;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,eAAe;IAoD7B;;OAEG;YACW,gBAAgB;IAc9B;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;YACW,eAAe;CAa9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAY/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAM5C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,MAAM,CAAC,CAAe;gBAElB,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,YAAY;IAK1D;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IA+IrC;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA4J7C;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;YACW,YAAY;IA4B1B;;OAEG;YACW,aAAa;IA4B3B;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,eAAe;IAoD7B;;OAEG;YACW,gBAAgB;IAc9B;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;YACW,eAAe;CAa9B"}
@@ -3,6 +3,8 @@ import { ResourceError } from "@withpica/mcp-utils";
3
3
  import { readFileSync } from "fs";
4
4
  import { join } from "path";
5
5
  import { WITHPICA_PRIMER } from "./llms-primer.js";
6
+ import { AGENT_GUIDE_AUTHENTICATED, AGENT_GUIDE_LOBBY, } from "./agent-guide.js";
7
+ import { REQUIRED_SCHEMAS } from "./required-schemas.generated.js";
6
8
  import { UPLOAD_HTML } from "../apps/upload.js";
7
9
  import { DOWNLOAD_HTML } from "../apps/download.js";
8
10
  import { RELEASE_HTML } from "../apps/release.js";
@@ -25,6 +27,12 @@ export class ResourceRegistry {
25
27
  description: "Getting started guide — how to sign in and what you can do",
26
28
  mimeType: "text/markdown",
27
29
  },
30
+ {
31
+ uri: "pica://docs/agent-guide",
32
+ name: "Agent Guide — How to Use PICA",
33
+ description: "Workflow-by-workflow guide for agents — what tools to call in what order, common gotchas, pointers to schema resources. Lobby mode returns a sign-in-focused variant; authenticated mode returns the full workflow map.",
34
+ mimeType: "text/markdown",
35
+ },
28
36
  ];
29
37
  if (this.config?.lobbyMode || !this.pica) {
30
38
  return resources;
@@ -89,6 +97,31 @@ export class ResourceRegistry {
89
97
  name: "Release Card",
90
98
  description: "Release rich-render card — cover art + markdown summary (ADR-208 Phase 3 Primitive D, Phase 3 stub)",
91
99
  mimeType: "text/html;profile=mcp-app",
100
+ }, {
101
+ uri: "pica://schemas/work-required",
102
+ name: "Required Fields — Register a Work",
103
+ description: "Required + recommended fields, CHECK enums, and companion-call orchestration for pica_works_create. Read before calling the work-create workflow.",
104
+ mimeType: "application/json",
105
+ }, {
106
+ uri: "pica://schemas/recording-required",
107
+ name: "Required Fields — Register a Recording",
108
+ description: "Required + recommended fields, CHECK enums, and companion-call orchestration for pica_recordings_create.",
109
+ mimeType: "application/json",
110
+ }, {
111
+ uri: "pica://schemas/work-credits-required",
112
+ name: "Required Fields — Attach Work Credits",
113
+ description: "Per-row required fields and CHECK enums for pica_credits_update (writer/composer/publisher splits, sum to 100).",
114
+ mimeType: "application/json",
115
+ }, {
116
+ uri: "pica://schemas/recording-credits-required",
117
+ name: "Required Fields — Attach Recording Credits",
118
+ description: "Per-row required fields and the role enum for pica_recording_credits_update (MainArtist / FeaturedArtist / Producer / Engineer / etc.).",
119
+ mimeType: "application/json",
120
+ }, {
121
+ uri: "pica://schemas/person-required",
122
+ name: "Required Fields — Register a Person",
123
+ description: "Required + recommended fields for pica_people_create (writers, performers, publishers; identifiers settable inline).",
124
+ mimeType: "application/json",
92
125
  });
93
126
  return resources;
94
127
  }
@@ -118,6 +151,18 @@ export class ResourceRegistry {
118
151
  },
119
152
  ],
120
153
  };
154
+ case "pica://docs/agent-guide": {
155
+ const lobby = this.config?.lobbyMode || !this.pica;
156
+ return {
157
+ contents: [
158
+ {
159
+ uri: "pica://docs/agent-guide",
160
+ mimeType: "text/markdown",
161
+ text: lobby ? AGENT_GUIDE_LOBBY : AGENT_GUIDE_AUTHENTICATED,
162
+ },
163
+ ],
164
+ };
165
+ }
121
166
  default:
122
167
  break;
123
168
  }
@@ -195,6 +240,25 @@ export class ResourceRegistry {
195
240
  },
196
241
  ],
197
242
  };
243
+ case "pica://schemas/work-required":
244
+ case "pica://schemas/recording-required":
245
+ case "pica://schemas/work-credits-required":
246
+ case "pica://schemas/recording-credits-required":
247
+ case "pica://schemas/person-required": {
248
+ const key = uri.replace("pica://schemas/", "");
249
+ const body = REQUIRED_SCHEMAS[key];
250
+ if (!body)
251
+ throw new ResourceError(`Schema not found: ${uri}`);
252
+ return {
253
+ contents: [
254
+ {
255
+ uri,
256
+ mimeType: "application/json",
257
+ text: JSON.stringify(body, null, 2),
258
+ },
259
+ ],
260
+ };
261
+ }
198
262
  default:
199
263
  throw new ResourceError(`Resource not found: ${uri}`);
200
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ export declare const REQUIRED_SCHEMAS: {
2
+ readonly "person-required": {
3
+ readonly workflow: "person-required";
4
+ readonly summary: "Required fields to register a person (writer, performer, producer, publisher). Identifiers (IPI / ISNI / PRO / MusicBrainz / etc.) are inline-settable at create time.";
5
+ readonly primary_tool: "pica_people_create";
6
+ readonly primary_required: readonly ["first_name", "last_name"];
7
+ readonly primary_recommended: readonly ["middle_name", "name", "stage_name", "stage_names", "person_type", "biography", "email", "emails", "phone", "website", "social_media", "roles", "tags", "cae_ipi_number", "ipn_number", "prs_number", "ppl_number", "mcps_member_number", "pro_name", "pro_member_number", "default_publisher", "default_publisher_ipi", "company", "position", "territory", "relationship_strength", "email_preferences", "profile_image_url", "notes", "isni", "musicbrainz_id", "wikidata_id", "discogs_artist_id", "deezer_artist_id", "date_of_birth", "gender", "nationality", "birth_place", "instruments", "career_start_year"];
8
+ readonly enums: {};
9
+ readonly companion_calls: readonly [{
10
+ readonly tool: "pica_people_update";
11
+ readonly when: "After creation — to amend name, identifiers (IPI / ISNI / PRO / MusicBrainz / etc.), or any other inline field. Same payload shape as create plus `id`.";
12
+ readonly required: readonly ["id"];
13
+ }];
14
+ readonly example: {
15
+ readonly first_name: "Jane";
16
+ readonly last_name: "Doe";
17
+ readonly cae_ipi_number: "00000000001";
18
+ readonly isni: "0000000123456789";
19
+ readonly pro_member_number: "PRS123456";
20
+ };
21
+ };
22
+ readonly "recording-credits-required": {
23
+ readonly workflow: "recording-credits-required";
24
+ readonly summary: "Required fields per credit row when attaching MainArtist / FeaturedArtist / Producer / Engineer credits to a recording. Distinct role enum from work credits. person_id is optional — credits can carry just credited_name.";
25
+ readonly primary_tool: "pica_recording_credits_update";
26
+ readonly primary_required: readonly ["recording_id", "credited_name", "role"];
27
+ readonly primary_recommended: readonly ["person_id", "split_percentage", "split_type", "display_order", "notes"];
28
+ readonly enums: {
29
+ readonly role: readonly ["Arranger", "Co-Producer", "Engineer", "Executive Producer", "FeaturedArtist", "Instrumentalist", "MainArtist", "Mastering Engineer", "Mixer", "Other", "Performer", "Producer", "Programmer", "Recording Engineer", "Remixer", "Vocalist"];
30
+ };
31
+ readonly companion_calls: readonly [];
32
+ readonly example: {
33
+ readonly recording_id: "<uuid>";
34
+ readonly credits: readonly [{
35
+ readonly credited_name: "The Riverbed Trio";
36
+ readonly role: "MainArtist";
37
+ readonly display_order: 0;
38
+ }, {
39
+ readonly credited_name: "Sam Producer";
40
+ readonly role: "Producer";
41
+ readonly display_order: 1;
42
+ }];
43
+ };
44
+ };
45
+ readonly "recording-required": {
46
+ readonly workflow: "recording-required";
47
+ readonly summary: "Required fields to register a recording (a specific master, version, or live capture of a work).";
48
+ readonly primary_tool: "pica_recordings_create";
49
+ readonly primary_required: readonly ["title", "artist_name", "version_type"];
50
+ readonly primary_recommended: readonly ["recording_title", "work_id", "ownership_percentage", "labels", "isrc", "isrc_source", "musicbrainz_recording_id", "mlc_recording_id", "mlc_song_code", "duration_ms", "preview_url", "album_art_url", "spotify_url", "spotify_track_uri", "spotify_track_id", "youtube_video_id", "youtube_url", "apple_music_url", "deezer_track_id", "ppl_registered", "ppl_recording_id", "ai_disclosure", "provenance_attestation", "training_rights"];
51
+ readonly enums: {
52
+ readonly version_type: readonly ["acoustic", "alternate", "alternate_master", "cover", "live_performance", "lyric_video", "master", "music_video", "remix"];
53
+ };
54
+ readonly companion_calls: readonly [{
55
+ readonly tool: "pica_recording_credits_update";
56
+ readonly when: "Batch — attach MainArtist / Producer / Engineer credits to the recording.";
57
+ readonly required: readonly ["recording_id", "credits"];
58
+ readonly per_row_required: readonly ["credited_name", "role", "display_order"];
59
+ }, {
60
+ readonly tool: "pica_recordings_update";
61
+ readonly when: "After creation — to amend recording_title, artist_name, version_type, isrc, duration_ms, or any other inline field. Same payload shape as create plus `id`.";
62
+ readonly required: readonly ["id"];
63
+ }];
64
+ readonly example: {
65
+ readonly title: "Midnight Rivers (Master)";
66
+ readonly artist_name: "The Riverbed Trio";
67
+ readonly version_type: "master";
68
+ readonly isrc: "USABC2300001";
69
+ readonly duration_ms: 213000;
70
+ };
71
+ };
72
+ readonly "work-credits-required": {
73
+ readonly workflow: "work-credits-required";
74
+ readonly summary: "Required fields per credit row when attaching writer/composer/publisher credits to a work. Splits sum to 100 across writers.";
75
+ readonly primary_tool: "pica_credits_update";
76
+ readonly primary_required: readonly ["work_id", "credits"];
77
+ readonly primary_recommended: readonly [];
78
+ readonly enums: {
79
+ readonly credit_type: readonly ["arranger", "composer", "conductor", "engineer", "instrumentalist", "lyricist", "mastering", "mixer", "owner", "performer", "producer", "programmer", "remixer", "vocalist", "writer"];
80
+ readonly rights_type: readonly ["all", "mechanical", "performance", "synchronization"];
81
+ readonly attestation_status: readonly ["attested", "declined", "disputed", "pending"];
82
+ };
83
+ readonly companion_calls: readonly [];
84
+ readonly example: {
85
+ readonly work_id: "<uuid>";
86
+ readonly credits: readonly [{
87
+ readonly person_id: "<uuid>";
88
+ readonly credit_type: "writer";
89
+ readonly writer_split_percentage: 50;
90
+ }, {
91
+ readonly person_id: "<uuid>";
92
+ readonly credit_type: "writer";
93
+ readonly writer_split_percentage: 50;
94
+ }];
95
+ };
96
+ };
97
+ readonly "work-required": {
98
+ readonly workflow: "work-required";
99
+ readonly summary: "Required fields to register a fully-credited musical work.";
100
+ readonly primary_tool: "pica_works_create";
101
+ readonly primary_required: readonly ["title", "work_type"];
102
+ readonly primary_recommended: readonly ["work_status", "iswc", "isrc", "tunecode", "prs_work_id", "spotify_track_uri", "duration_seconds", "tempo", "key", "genre", "mood", "primary_artist", "primary_artist_id", "display_artist", "publisher_name", "lyrics", "lyrics_language", "published", "notes", "ai_disclosure", "provenance_attestation", "training_rights"];
103
+ readonly enums: {
104
+ readonly work_type: readonly ["demo", "instrumental", "library", "sample", "song"];
105
+ readonly work_status: readonly ["archived", "demo", "pitched", "placed", "released", "unreleased"];
106
+ };
107
+ readonly companion_calls: readonly [{
108
+ readonly tool: "pica_credits_update";
109
+ readonly when: "Once per work, batch — attach all writer/publisher splits in a single call.";
110
+ readonly required: readonly ["work_id", "credits"];
111
+ readonly per_row_required: readonly ["person_id", "credit_type"];
112
+ readonly constraint: "writer_split_percentage values must sum to 100 across all writer credits for the work.";
113
+ }, {
114
+ readonly tool: "pica_works_update";
115
+ readonly when: "After creation — to amend title, work_type, work_status, iswc, lyrics, or any other inline field. Use the same payload shape as create with the addition of `id`.";
116
+ readonly required: readonly ["id"];
117
+ }];
118
+ readonly example: {
119
+ readonly title: "Midnight Rivers";
120
+ readonly work_type: "song";
121
+ readonly iswc: "T-123.456.789-0";
122
+ readonly duration_seconds: 213;
123
+ readonly lyrics_language: "en";
124
+ };
125
+ };
126
+ };
127
+ export type RequiredSchemaKey = keyof typeof REQUIRED_SCHEMAS;
128
+ //# sourceMappingURL=required-schemas.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-schemas.generated.d.ts","sourceRoot":"","sources":["../../src/resources/required-schemas.generated.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgVnB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,gBAAgB,CAAC"}