@withpica/mcp-server 2.95.2 → 2.95.3
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/.claude/settings.local.json +5 -0
- package/CHANGELOG.md +12 -0
- package/dist/lib/changelog.generated.d.ts +2 -2
- package/dist/lib/changelog.generated.d.ts.map +1 -1
- package/dist/lib/changelog.generated.js +2 -2
- package/dist/lib/changelog.generated.js.map +1 -1
- package/dist/prompts/index.js +2 -2
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/required-schemas.generated.d.ts +22 -1
- package/dist/resources/required-schemas.generated.d.ts.map +1 -1
- package/dist/resources/required-schemas.generated.js +29 -1
- 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 +27 -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 +2 -2
- package/dist/server-instructions.js.map +1 -1
- package/dist/skills/skills.generated.js +5 -5
- package/dist/skills/skills.generated.js.map +1 -1
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +16 -0
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/deprecations.d.ts +12 -2
- package/dist/tools/deprecations.d.ts.map +1 -1
- package/dist/tools/deprecations.js +22 -12
- package/dist/tools/deprecations.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +9 -0
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/enrichment.d.ts +14 -0
- package/dist/tools/enrichment.d.ts.map +1 -1
- package/dist/tools/enrichment.js +126 -3
- package/dist/tools/enrichment.js.map +1 -1
- package/dist/tools/exports.d.ts +4 -0
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/exports.js +138 -1
- package/dist/tools/exports.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +42 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +34 -0
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/recovery-hints.d.ts.map +1 -1
- package/dist/tools/recovery-hints.js +23 -0
- package/dist/tools/recovery-hints.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -27,7 +27,7 @@ export const SKILLS = {
|
|
|
27
27
|
output: "A modelling decision (work vs recording vs release) with the exact tool calls to create or restructure the entities, and — when consolidating — a safe repoint-then-relink-then-delete plan that never orphans a release track.",
|
|
28
28
|
definition_of_done: "Each composition is ONE work with ONE ISWC; every variant is a recording under that work with the correct version_type; remixes are separate works; no blank-ISWC duplicate works sharing a title stem; release tracks resolve to the right work and recording.",
|
|
29
29
|
when_not_to_use: "When the thing genuinely IS a separate composition — a remix or flip with new authorship, or a distinct song that merely shares a title stem. Those are their own works, not recordings under an existing one.",
|
|
30
|
-
body: "# catalog-modelling\n\nUse this before creating or restructuring catalog entities. It answers the\nquestion agents get wrong most often: \"this instrumental / acoustic / live /\nremix version — is it a new work, a recording, or a release?\" Getting it wrong\nsplinters one song into many half-blank works and breaks every downstream\nreport. Getting it right is mechanical once you know the three grains.\n\n## The three grains\n\nPICA separates a song into three distinct entities, each with its own identity\
|
|
30
|
+
body: "# catalog-modelling\n\nUse this before creating or restructuring catalog entities. It answers the\nquestion agents get wrong most often: \"this instrumental / acoustic / live /\nremix version — is it a new work, a recording, or a release?\" Getting it wrong\nsplinters one song into many half-blank works and breaks every downstream\nreport. Getting it right is mechanical once you know the three grains.\n\n## The three grains\n\nPICA separates a song into three distinct entities, each with its own identity\neach answering a different question:\n\n- **work** = the composition, the song as written. carries the **ISWC** (`works.iswc`)\n and the composition credits. one work has many recordings.\n- **recording** = a specific master / sound recording of that work. carries the\n **ISRC** (`recordings.isrc`), the audio, and a `version_type`. it points at its\n work via `recordings.work_id`. a recording has no ISWC of its own — its\n composition identity is the work it hangs off. one recording appears on many\n releases.\n- **release** = a commercial product (single, album, compilation) that bundles\n recordings via `release_tracks`. carries the **UPC** and catalog number.\n\nThe rule the whole model rests on: **a fact lives on exactly one entity, at the\nright grain.** ISWC is a composition fact (work). ISRC is a master fact\n(recording). UPC is a product fact (release). Never put a master or release fact\non a work.\n\n## The decision rule\n\nWhen something new shows up that looks like `<existing work> - <variant>`\n(e.g. \"confetti heart - instrumental\", \"midnight - acoustic\", \"the song - live\nat koko\"):\n\n> it is a **recording under that existing work**, created or repointed with the\n> right `version_type` — **UNLESS** it is a remix or a flip with new authorship,\n> in which case it is a **separate work**.\n\nSo:\n\n- **same composition, different rendering** (instrumental, acoustic, live_performance, demo,\n edit, backing_track, edit, alternate) → one more **recording** under\n the existing work. set `work_id` to the existing work and `version_type` to the\n variant. do NOT mint a second work.\n- **new composition built on the old one** (a remix, a flip, a sample-based\n derivative, a re-write) → a **separate work** with its **own ISWC**, created via\n `pica_works_create`. it is its own composition because someone added new\n authorship.\n\n### the version_type values\n\n`version_type` is the canonical way to label a variant recording. the live\n`recordings_version_type_check` constraint (and `VALID_VERSION_TYPES` in\n`lib/services/recordings.ts`) accepts exactly these thirteen values:\n\n`demo`, `master`, `alternate_master`, `music_video`, `lyric_video`,\n`live_performance`, `acoustic`, `remix`, `cover`, `alternate`, `instrumental`,\n`backing_track`, `edit`.\n\na fresh master defaults to `master`. pick the most precise value — prefer\n`instrumental` / `backing_track` / `edit` over the lossy `alternate` catch-all.\nnote `remix` and `cover` exist as recording version_types too, but a remix that\nadds new authorship is better modelled as a separate work (see below); the\n`remix` recording value is for the case where you are cataloguing the remix as a\nmaster without a distinct composition entry.\n\n## how a remix / derivative links to its parent\n\nBe honest about what the agent-facing tools can do here. PICA's internal schema\ndoes have a `work_versions` table that records parent→child derivative\nrelationships (`parent_work_id` → `child_work_id`, with a `version_type` that\nincludes `remix`, `cover`, `sample`), managed by\n`lib/services/work-versions.ts`. **But there is no MCP tool today that writes a\n`work_versions` link, and the `works` table itself has no parent/derivative FK\ncolumn.** So through the MCP surface:\n\n> a remix or derivative is a **separate work with its own ISWC**, created via\n> `pica_works_create`. there is no MCP step to formally link it back to the\n> original — do not invent one. model it as its own composition and move on.\n\nDo not tell the user you have \"linked the remix to the original\" — you cannot,\nvia these tools. Create the separate work; that is the correct and complete\naction.\n\n## composition splits vs master splits\n\nWhen you model a variant, the splits follow the grain (per\n`.claude/rules/business-logic.md`, Credit & Split Tables):\n\n- **composition splits / writer credits** live on the **work**, in\n `work_collaborators` (writer, composer, lyricist, arranger, publisher, with\n `split_percentage`). every recording under that work inherits the same\n composition — you do not re-enter writer splits per variant.\n- **master ownership splits** live on the **recording**, in `recording_splits`\n (`split_type`: master, mechanical, performance, sync); master attribution\n (producer, performer, etc.) lives in `recording_credits`. these are\n per-recording — an instrumental master can have different master ownership\n from the vocal master.\n\nSo an acoustic recording added under an existing work inherits that work's\nwriter splits automatically and only needs its own master splits if the\nownership differs.\n\n## worked example — confetti heart\n\nTake a song \"confetti heart\" with an instrumental, an acoustic, and a remix.\n\n- **confetti heart** → ONE **work** with its ISWC. its writer splits live here in\n `work_collaborators`.\n- **confetti heart (the released master)** → a **recording** under that work,\n `version_type: master`, with its ISRC.\n- **confetti heart (instrumental)** → another **recording** under the SAME work,\n `version_type: instrumental`. same ISWC (inherited via the work), its own ISRC.\n do not create a second \"confetti heart instrumental\" work.\n- **confetti heart (acoustic)** → another **recording** under the same work,\n `version_type: acoustic`.\n- **confetti heart (PRY remix)** → a **separate work** with its **own ISWC**\n (PRY added new authorship). created via `pica_works_create`. it then gets its\n own recording with `version_type: master` (or `remix`) and its own ISRC. no MCP\n link back to the original — it stands as its own composition.\n\nThe wrong model — four separate works all titled some variant of \"confetti\nheart\", three of them with blank ISWCs — is exactly what\n`pica_catalog_health` flags as duplicate works sharing a title stem.\n\n## safe consolidation procedure\n\nWhen a catalog already has the wrong shape — e.g. \"confetti heart\",\n\"confetti heart instrumental\", \"confetti heart acoustic\" as three separate works,\ntwo with blank ISWCs — consolidate them under the one real work. Do it in this\norder, and not any other, because deleting a work too early orphans or destroys\nthe release tracks that reference it.\n\n1. **Pick the canonical work** — the one with the real ISWC. this is the keeper.\n2. **Repoint each variant's recording onto the keeper.** for every recording\n hanging off a duplicate work, call `pica_recordings_update` with\n `work_id: <keeper work id>` and the correct `version_type` (e.g.\n `instrumental`, `acoustic`). the recording now belongs to the canonical work\n and keeps its ISRC and master splits.\n3. **Relink any affected release tracks to the keeper.** a `release_tracks` row\n references **both** `work_id` and `recording_id` (the table has\n `CHECK (recording_id IS NOT NULL OR work_id IS NOT NULL)`). any track that\n still points at a soon-to-be-deleted work via `work_id` must be repointed to\n the keeper work first.\n4. **Only now delete the now-empty duplicate work** with `pica_works_delete`.\n\n**Why relink the release tracks before the delete, not after.** Per the deletion\ncontract (`.claude/rules/business-logic.md`), deleting a work auto-detaches its\n`release_tracks` membership by nulling `release_tracks.work_id`. for a track that\nalso carries a recording, nulling the work id is harmless — it keeps its\nrecording. but a **work-only** track (no recording) cannot have its `work_id`\nnulled without violating the CHECK, so the deletion policy **deletes that whole\ntrack** instead (its `deleteWhenOrphanColumns` is `[\"recording_id\"]`). that would\nsilently drop the track from its release. and if the duplicate work still has\nrecordings attached, the delete **archives** the work rather than removing it —\nso you must repoint the recordings (step 2) to actually empty it. relinking the\ntracks first means every track keeps a valid work reference and the final delete\nis a clean no-dependents removal.\n\n## what not to do\n\n- don't mint a new work for an instrumental, acoustic, live_performance, demo, edit, or\n backing_track version. that is a recording under the existing work.\n- don't put an ISWC on a recording or a UPC on a work. facts live at their grain.\n- don't claim you \"linked\" a remix to its original — there is no MCP tool for\n that link. create the separate work and say so plainly.\n- don't delete a duplicate work before repointing its recordings and relinking\n its release tracks. order matters; a premature delete orphans or destroys\n tracks.\n- don't re-enter writer splits per variant. composition splits live once, on the\n work; recordings inherit the composition.\n\n## follow-on skills\n\n- `set-recording-splits` — once variants are correctly modelled as recordings,\n set the per-recording master ownership.\n- `catalog-audit` — to sweep the whole catalog for remaining duplicate-title\n works and blank ISWCs.\n- `register-my-works` — registered works pair with cleanly-modelled recordings.\n",
|
|
31
31
|
},
|
|
32
32
|
"clean-up-artists": {
|
|
33
33
|
name: "clean-up-artists",
|
|
@@ -54,7 +54,7 @@ export const SKILLS = {
|
|
|
54
54
|
audience: "power user with multiple MCPs connected / agency / multi-artist manager",
|
|
55
55
|
tools_required: ["pica_works_inspect", "pica_works_query", "pica_people_query", "pica_enrichment_propose", "pica_enrichment_proposals_list"],
|
|
56
56
|
output: "pica_enrichment_proposals rows created with sources[].url citations from peer MCPs, ready for the user to review and apply via the existing enrichment-proposals workflow.",
|
|
57
|
-
body: "# enrich-from-peer-mcps\n\nFill PICA catalog gaps by composing across the user's other connected MCPs. This is the cross-MCP integration story for PICA — the user has Gmail or Drive or Notion connected in their AI client, the agent queries those tools when PICA shows missing data, and the resulting information lands in PICA as cited enrichment proposals.\n\n**Important framing:** PICA does NOT manage these connections. The user wires Gmail (etc.) into their AI client separately. PICA's role is to (1) signal what's missing, (2) accept enrichment proposals with `sources[].url` citations using the peer-MCP URI schemes, and (3) let the user review proposals before applying.\n\n## Pre-flight\n\nRead `pica://schemas/enrichment-resolve-required` for the canonical proposal shape, including the URI scheme convention for source citations. The scheme list
|
|
57
|
+
body: "# enrich-from-peer-mcps\n\nFill PICA catalog gaps by composing across the user's other connected MCPs. This is the cross-MCP integration story for PICA — the user has Gmail or Drive or Notion connected in their AI client, the agent queries those tools when PICA shows missing data, and the resulting information lands in PICA as cited enrichment proposals.\n\n**Important framing:** PICA does NOT manage these connections. The user wires Gmail (etc.) into their AI client separately. PICA's role is to (1) signal what's missing, (2) accept enrichment proposals with `sources[].url` citations using the peer-MCP URI schemes, and (3) let the user review proposals before applying.\n\n## Pre-flight\n\nRead `pica://schemas/enrichment-resolve-required` for the canonical proposal shape, including the URI scheme convention for source citations. The scheme list:\n\n| Scheme | What it cites |\n|---|---|\n| `gmail://` | An email or thread in the user's Gmail |\n| `gdrive://` | A document or file in the user's Google Drive |\n| `notion://` | A page in the user's Notion workspace |\n| `file://` | A local file on the user's machine |\n| `telegram://` | A message or thread in the user's Telegram |\n| `calendar://` | An event in the user's calendar |\n| `daw://` | A DAW session file (Ableton, Logic, Pro Tools, etc.) |\n| `user://` | The user told you directly (no external source) |\n| `web://` | A public web page |\n\nEach citation is opaque to PICA — PICA doesn't fetch the URI. It just records it as provenance so the user knows where the enrichment came from.\n\n## Step 1 — Identify the gap\n\nTwo entry paths:\n\n- **User-named work** — they said \"fill the gaps on track X from my email.\" Use `pica_works_inspect` with `sections: [\"completeness\", \"enrichment\"]` to see what's missing.\n- **Gap class across catalog** — they said \"what's missing across my catalog?\" Use `pica_works_query` with `health_filter: \"low_completeness\"` to find candidates, then `pica_works_inspect` per work.\n\nDon't try to query peer MCPs proactively for every gap. Start narrow — one work, or one gap class (e.g. \"all works missing ISWC\").\n\n## Step 2 — Map the gap to a peer MCP\n\nFor each gap, suggest the peer MCP that's likely to have the answer:\n\n| Gap | Likely peer MCP | What to look for |\n|---|---|---|\n| Missing splits | Gmail / Drive | Split sheets, email threads agreeing on percentages |\n| Missing ISWC | Gmail / Drive | PRO registration confirmation emails, MLC submissions |\n| Missing co-writer | Calendar / Gmail / DAW | Session calendar invites, email chains with collaborators, DAW project metadata |\n| Missing recording details | Gmail / DAW | Mixer/engineer emails, DAW session names |\n| Missing release date | Gmail / Drive | Distributor confirmations, release plan docs |\n| Missing publisher contact | Notion / Drive | Contact rolodex, publishing agreement PDFs |\n| Missing person email (`needs_email` people) | Gmail | Two-way correspondence where the address belongs to the person — see the email-backfill rules below |\n\nThis is a routing guide, not a prescription. The user knows their workflow — defer to them about which MCP to check.\n\n### Person email backfill (a common, footgun-prone case)\n\nFilling missing emails for `needs_email` people is the same propose-only flow — `email` is a first-class enrichable field, so a Gmail-sourced address lands via `pica_enrichment_propose` (entity_type `person`) with a `gmail://` source citation, then the user reviews. Two extra rules, because a wrong email on a rights-holder is worse than a blank one:\n\n- **Score the address, don't take the first hit.** Strongest: the address literally contains the person's name AND they are a direct sender/recipient in two-way correspondence. Weaker: name-inferred address, or a role address (`info@`/`team@`). Reject: the name only appears in the body, the sender is a third party (management, box office, a newsletter), or it's a recurring unrelated distribution thread (a reliable \"no real hit\" tell).\n- **Check for a collision first.** Before proposing, call `pica_people_query` for the candidate address — if it already sits on another person, do NOT assign it; flag the conflict for the user. (This dedup-collision check is the one thing the agent can't eyeball from Gmail alone.)\n\nNever auto-write — propose, the user confirms.\n\n## Step 3 — Ask the agent to check the relevant peer MCP\n\nThe agent connected to PICA is the same agent connected to (e.g.) Gmail. Ask the agent to run a targeted query in the peer MCP:\n\n- \"Search the user's Gmail for emails about [song title] from [approximate date range]\"\n- \"Look in the user's Drive for documents with [song title] or [collaborator name]\"\n- \"Check the user's calendar for sessions on [date range] tagged [project name]\"\n\nThe peer-MCP query is the agent's job, not PICA's. PICA waits for the agent to return with what it found.\n\n## Step 4 — Cite the source via pica_enrichment_propose\n\nOnce the agent has the missing data, call `pica_enrichment_propose` with:\n\n- The entity ID being enriched (work_id, recording_id, person_id)\n- The proposed value(s)\n- A `sources` array, each entry with a `url` field using the appropriate URI scheme\n\nExample shape:\n\n```json\n{\n \"entity_type\": \"work\",\n \"entity_id\": \"uuid\",\n \"proposed\": { \"iswc\": \"T-123.456.789-0\" },\n \"sources\": [\n { \"url\": \"gmail://thread/abc123\", \"context\": \"PRS registration confirmation email, March 2025\" }\n ]\n}\n```\n\nThe URI is opaque to PICA. The `context` field gives the user a human-readable hint about what the source is.\n\n## Step 5 — Review proposals\n\nCall `pica_enrichment_proposals_list` to show the user what's been queued. They review, apply (or reject), per the existing enrichment-proposals workflow. **Do not auto-apply** — enrichment from external sources always needs explicit user review.\n\n## Step 6 — Loop or close\n\nAsk the user:\n- \"Apply the proposal?\" — they confirm; the enrichment lands\n- \"Move on to the next gap?\" — continue\n- \"Done for now?\" — stop, summarise what was proposed\n\n## What not to do\n\n- Don't try to connect peer MCPs to PICA. PICA doesn't have that surface any more. The connection lives in the user's AI client.\n- Don't fabricate URIs. If the agent didn't actually find the source, don't pretend it did — record the enrichment with `user://` (told to me directly) instead.\n- Don't auto-apply proposals. Even when the source seems definitive, the user reviews.\n- Don't query peer MCPs proactively for unrelated gaps. The user named one gap; the skill works one gap at a time.\n- Don't try to enrich from `lib/services/*` paths or internal cascade endpoints. Those aren't peer MCPs and aren't in scope.\n\n## Follow-on skills\n\n- `close-the-loop` — once gaps are enriched, walk through the remaining (non-peer-MCP) gaps on the same work\n- `audit-credits` — periodic catalog-wide credit sweep\n- `register-my-works` — once IPI / ISWC are filled, registration is unblocked\n",
|
|
58
58
|
},
|
|
59
59
|
"first-session": {
|
|
60
60
|
name: "first-session",
|
|
@@ -111,7 +111,7 @@ export const SKILLS = {
|
|
|
111
111
|
output: "One new work + linked master recording created after explicit user confirmation, with the session snapshot stored as provenance on the work's metadata, session-derived credits/samples queued as daw://-cited enrichment proposals (drafts, never verified), and an /inspect link handed to the user.",
|
|
112
112
|
definition_of_done: "The work and its master recording exist, the session snapshot is stored, session-derived claims are queued as proposals (not verified facts), and the user has the /inspect link.",
|
|
113
113
|
when_not_to_use: "Not for bulk catalog import (use import-my-catalog) or back-cataloguing released material from memory — this skill is for the session that is open in the DAW right now.",
|
|
114
|
-
body: "# register-from-your-daw\n\nRegister the song the user is working on, at the moment they're working on it. The DAW session is the richest primary source of rights provenance that exists — who played what, which sample pack that loop came from, what made that bass — and it is only available while the project is open. Once it's bounced and closed, that context is gone, or reconstructed from memory at its least reliable.\n\n**Important framing:** PICA does NOT connect to DAWs. The DAW MCP (e.g. a community Ableton or REAPER MCP server) is wired into the user's AI client separately, exactly like the peer MCPs in `enrich-from-peer-mcps`. The agent connected to PICA is the same agent connected to the DAW — reading the session is the agent's job; PICA receives the result.\n\n## Pre-flight\n\n- If you authenticate to PICA with a Bearer API key, call `pica_introduce_self` first (per the server instructions) — name yourself and, in `agent_role` or `on_behalf_of`, mention the DAW you're capturing from. The register should be attributable.\n- Confirm a DAW MCP is actually connected in this session — and that its bridge is alive. Several DAW MCPs need an in-DAW component enabled (e.g. Ableton's Remote Script as a Control Surface); if session reads error or time out, say so plainly rather than improvising silently.\n- Fallback ladder when the bridge is down or no DAW MCP is connected: (1) an agent with local filesystem access may read the DAW's own artifacts — Ableton's `Log.txt` names the currently loaded `.als`, and the `.als` itself is gzipped XML carrying tempo (field-proven on the first agent-lane register, 2026-07-16); same rules — parse, don't guess. (2) Take the details from the user directly (plain `pica_works_create` flow). (3) Suggest exporting stems and importing them instead. Whichever rung you land on, tell the user which read path you used. Do not pretend to read a session you cannot see.\n\n## Two capture modes\n\n- **Machine capture** — what the session can tell you: track/group structure, tempo, key/scale, instrument and device names, sample file references. Read automatically, only ever what the peer MCP actually exposes.\n- **Human attribution** — what the session cannot know: who played the part, who wrote the song, what the track is called. The capture supplies the scaffold (\"a drums group ⇒ a part to attribute\"); the human supplies the identity.\n\nCapture is instant; attribution is offered, never forced. A \"who played each of 12 tracks?\" interview would reintroduce the exact friction this removes. If the user wants to save and move on, save and move on.\n\n## Step 1 — Read the session\n\nAsk the DAW MCP for whatever session-level reads it offers: track names and count, group structure, tempo, key/scale if exposed, instrument/device names, detected sample file paths. Collect it into a compact snapshot.\n\nPeer servers vary enormously in read depth (see the per-DAW notes below). Capture what is readable; leave the rest absent. **Never fill a gap with a guess** — an invented tempo or fabricated sample list is worse than no snapshot at all.\n\n## Step 2 — Ask for what the session can't tell you\n\nMost DAW APIs expose no project/Set name, so the **title is user-entered**. Ask for:\n\n- **Title** — require a real one. If the user offers \"Untitled\" or a scratch name, ask whether this is really a work worth registering yet; a save-happy session is not automatically a work, and junk registrations pollute the catalog. If the title came from a file name, strip file-versioning suffixes (\"MAIN\", \"final\", \"v2\") and confirm the cleaned name with the user.\n- **Artist name** — the master recording carries one.\n- **Work type** — default `song`; confirm only if the session suggests otherwise (e.g. an instrumental).\n\n## Step 3 — Duplicate check\n\nCall `pica_works_query` with the title before creating anything. On a plausible match, offer the choice: **open the existing work in /inspect** or **register this as a new version** — never silently create a duplicate. If the create later returns a 409 (`WORK_ALREADY_EXISTS`), surface that same choice; it is a fork in the road, not an error.\n\n## Step 4 — Confirm before any write\n\nShow the user what will be written, in one glance: the title, artist, work type, and the snapshot summary — _\"12 tracks · drums, bass, 2 guitars, lead vocal · 3 samples detected · 124 BPM\"_. Every field is editable. **Nothing is written to PICA until the user explicitly confirms.** Splits and credits are legal facts; the agent drafts, the human signs off.\n\n## Step 5 — Create\n\nOne call: `pica_works_create` with the confirmed `title`, `work_type`, `key` (if the session exposed one), and the session snapshot in `metadata` (DAW name, capture timestamp, track/device/sample summary — the facts, not the raw session tree). `create_twin` defaults to true, so the linked master recording is created in the same call — read the twin's id from the response and pass the artist details through. If the twin needs more than the create carried (e.g. artist name corrections), update the recording afterwards rather than skipping confirmation.\n\n## Step 6 — Seed provenance as drafts, never as facts\n\nSession-derived claims flow through review — they do not land as verified data:\n\n- **Who-played-what and sample usage** → `pica_enrichment_propose` per claim, with a `sources` entry using the `daw://` URI scheme (
|
|
114
|
+
body: "# register-from-your-daw\n\nRegister the song the user is working on, at the moment they're working on it. The DAW session is the richest primary source of rights provenance that exists — who played what, which sample pack that loop came from, what made that bass — and it is only available while the project is open. Once it's bounced and closed, that context is gone, or reconstructed from memory at its least reliable.\n\n**Important framing:** PICA does NOT connect to DAWs. The DAW MCP (e.g. a community Ableton or REAPER MCP server) is wired into the user's AI client separately, exactly like the peer MCPs in `enrich-from-peer-mcps`. The agent connected to PICA is the same agent connected to the DAW — reading the session is the agent's job; PICA receives the result.\n\n## Pre-flight\n\n- If you authenticate to PICA with a Bearer API key, call `pica_introduce_self` first (per the server instructions) — name yourself and, in `agent_role` or `on_behalf_of`, mention the DAW you're capturing from. The register should be attributable.\n- Confirm a DAW MCP is actually connected in this session — and that its bridge is alive. Several DAW MCPs need an in-DAW component enabled (e.g. Ableton's Remote Script as a Control Surface); if session reads error or time out, say so plainly rather than improvising silently.\n- Fallback ladder when the bridge is down or no DAW MCP is connected: (1) an agent with local filesystem access may read the DAW's own artifacts — Ableton's `Log.txt` names the currently loaded `.als`, and the `.als` itself is gzipped XML carrying tempo (field-proven on the first agent-lane register, 2026-07-16); same rules — parse, don't guess. (2) Take the details from the user directly (plain `pica_works_create` flow). (3) Suggest exporting stems and importing them instead. Whichever rung you land on, tell the user which read path you used. Do not pretend to read a session you cannot see.\n\n## Two capture modes\n\n- **Machine capture** — what the session can tell you: track/group structure, tempo, key/scale, instrument and device names, sample file references. Read automatically, only ever what the peer MCP actually exposes.\n- **Human attribution** — what the session cannot know: who played the part, who wrote the song, what the track is called. The capture supplies the scaffold (\"a drums group ⇒ a part to attribute\"); the human supplies the identity.\n\nCapture is instant; attribution is offered, never forced. A \"who played each of 12 tracks?\" interview would reintroduce the exact friction this removes. If the user wants to save and move on, save and move on.\n\n## Step 1 — Read the session\n\nAsk the DAW MCP for whatever session-level reads it offers: track names and count, group structure, tempo, key/scale if exposed, instrument/device names, detected sample file paths. Collect it into a compact snapshot.\n\nPeer servers vary enormously in read depth (see the per-DAW notes below). Capture what is readable; leave the rest absent. **Never fill a gap with a guess** — an invented tempo or fabricated sample list is worse than no snapshot at all.\n\n## Step 2 — Ask for what the session can't tell you\n\nMost DAW APIs expose no project/Set name, so the **title is user-entered**. Ask for:\n\n- **Title** — require a real one. If the user offers \"Untitled\" or a scratch name, ask whether this is really a work worth registering yet; a save-happy session is not automatically a work, and junk registrations pollute the catalog. If the title came from a file name, strip file-versioning suffixes (\"MAIN\", \"final\", \"v2\") and confirm the cleaned name with the user.\n- **Artist name** — the master recording carries one.\n- **Work type** — default `song`; confirm only if the session suggests otherwise (e.g. an instrumental).\n\n## Step 3 — Duplicate check\n\nCall `pica_works_query` with the title before creating anything. On a plausible match, offer the choice: **open the existing work in /inspect** or **register this as a new version** — never silently create a duplicate. If the create later returns a 409 (`WORK_ALREADY_EXISTS`), surface that same choice; it is a fork in the road, not an error.\n\n## Step 4 — Confirm before any write\n\nShow the user what will be written, in one glance: the title, artist, work type, and the snapshot summary — _\"12 tracks · drums, bass, 2 guitars, lead vocal · 3 samples detected · 124 BPM\"_. Every field is editable. **Nothing is written to PICA until the user explicitly confirms.** Splits and credits are legal facts; the agent drafts, the human signs off.\n\n## Step 5 — Create\n\nOne call: `pica_works_create` with the confirmed `title`, `work_type`, `key` (if the session exposed one), and the session snapshot in `metadata` (DAW name, capture timestamp, track/device/sample summary — the facts, not the raw session tree). `create_twin` defaults to true, so the linked master recording is created in the same call — read the twin's id from the response and pass the artist details through. If the twin needs more than the create carried (e.g. artist name corrections), update the recording afterwards rather than skipping confirmation.\n\n## Step 6 — Seed provenance as drafts, never as facts\n\nSession-derived claims flow through review — they do not land as verified data:\n\n- **Who-played-what and sample usage** → `pica_enrichment_propose` per claim, with a `sources` entry using the `daw://` URI scheme (opaque to PICA, recorded as provenance) and a human-readable `context` (\"Ableton session, drums group, 2026-07-16\").\n- **Writer credits** → only when the user names the writers and confirms splits, via `pica_credits_update` (splits must total 100%).\n- A detected sample is a **detection, not a clearance** — never describe it as cleared.\n\nCaptured ≠ verified. A credit read from a session is a claim; it becomes fact through the user's review, not through the capture.\n\n## Step 7 — Close the loop\n\nHand back the link — `https://withpica.com/inspect/works/<id>` — and tell the user the register is live in their catalog (it lands in the /inspect activity rail in real time). If the flow produced several mutations, call `pica_dashboard_briefing` and surface the delta. Offer the natural next steps: fill credits now, or later via `close-the-loop`.\n\n## Per-DAW peer MCP notes\n\nThese are third-party community servers, not PICA software — capability and maintenance vary, and a failed read degrades gracefully to asking the user.\n\n| DAW | Typical peer MCP read surface |\n|---|---|\n| Ableton Live | Session/track inspection is good in the common community server — but its bridge needs the Remote Script enabled as a Control Surface in Live's settings, or every read fails. Two field notes: the first call right after a set is opened can fail with a binding error (load-time race) — retry once before concluding the bridge is down; and session reads carry **no set name**, so identify the open song (and suggest a title, versioning suffixes stripped) from Live's `Log.txt` → loaded `.als` path — the artifact read complements a live bridge, it isn't only a fallback. Sample-level detail varies by fork |\n| REAPER | Deep — ReaScript exposes essentially the whole session |\n| Pro Tools | Deep — PTSL-based servers read session/track/clip data |\n| FL Studio | Good — recent servers expose live-readable project resources |\n| Bitwig | Moderate — controller-API-based reads |\n| Logic Pro | Shallowest — servers ride UI automation (AppleScript/Accessibility); expect gaps and verify reads with the user |\n\n## What not to do\n\n- Don't write anything before the user's explicit confirmation — no exceptions, however complete the snapshot looks.\n- Don't invent session data the peer MCP didn't return — no guessed tempos, keys, or sample lists.\n- Don't register every sketch. No real title, no register — offer to wait instead.\n- Don't write captured credits or samples as verified facts — they are proposals with `daw://` citations.\n- Don't call a detected sample \"cleared\".\n- Don't dump the raw session tree into `metadata` — extract the facts PICA cares about (structure, devices, samples, tempo/key), not every clip.\n- Don't stamp new facts onto an existing work's `metadata` with a bare update — the jsonb column is **replaced wholesale, not merged**. Read the current snapshot first, merge the new facts into it client-side, then write the merged object back.\n\n## Follow-on skills\n\n- `log-a-session` — record the session itself (date, participants) alongside the registered work\n- `close-the-loop` — walk the remaining gaps on the new work (credits, identifiers, splits)\n- `set-recording-splits` — when the collaborators are known and ready to commit percentages\n- `register-my-works` — when the work is ready to go out to societies\n",
|
|
115
115
|
},
|
|
116
116
|
"register-my-works": {
|
|
117
117
|
name: "register-my-works",
|
|
@@ -129,7 +129,7 @@ export const SKILLS = {
|
|
|
129
129
|
audience: "producer / artist / label / manager",
|
|
130
130
|
tools_required: ["pica_recording_splits_list", "pica_recording_splits_create", "pica_recording_splits_verify", "pica_recordings_query", "pica_people_query", "pica_collaborators_invite", "pica_split_sheet_generate", "pica_split_sheet_send"],
|
|
131
131
|
output: "Confirmed + verified recording_splits rows totalling 100%, with the option to generate and send a split sheet PDF for signatures.",
|
|
132
|
-
body: "# set-recording-splits\n\nHelp the user set master ownership splits on a recording. These are master-side royalty shares — distinct from publishing splits, which are credits on a work. Splits flow into payments, so the skill prioritises accuracy over speed: propose → dry-run → confirm → commit → verify.\n\n## Pre-flight\n\nRead `pica://schemas/recording-splits-required` before any write. The canonical shape is `recording_id`, `person_id`, `split_percentage`, `split_type`. **Splits must total 100% across all rows for a recording.**\n\n## Step 1 — Pick the recording\n\nIf the user names a recording or gives an ID, use it. Otherwise, call `pica_recordings_query` and let the user pick from recent recordings.\n\n## Step 2 — Show current state\n\nCall `pica_recording_splits_list` for the recording. Three states:\n\n- **Empty** — no splits set yet. Proceed to step 3.\n- **Partial** — some splits exist but don't total 100%. Ask the user whether they want to add to the existing rows or replace them.\n- **Complete** — splits total 100%. Ask whether the user wants to verify (mark agreed-upon) or replace.\n\nAlways summarise the current state plainly: \"right now this recording has [N] splits totalling [X]%, with [A] holding [P]%...\"\n\n## Step 3 — Capture proposed splits\n\nFor each split row, capture:\n\n- **Who owns this share?** — `person_id` from `pica_people_query`. If the person isn't on PICA yet, offer `pica_collaborators_invite` to bring them in before writing the split.\n- **What percentage?** — must sum to 100% across all rows.\n- **What kind?** — `split_type` — typical values: `artist`, `producer`, `label`, `featured`.\n\nSum the percentages out loud as you go. If they're not totalling 100% when the user finishes describing them, stop and ask them to adjust before proceeding.\n\n## Step 4 — Dry-run preview\n\
|
|
132
|
+
body: "# set-recording-splits\n\nHelp the user set master ownership splits on a recording. These are master-side royalty shares — distinct from publishing splits, which are credits on a work. Splits flow into payments, so the skill prioritises accuracy over speed: propose → dry-run → confirm → commit → verify.\n\n## Pre-flight\n\nRead `pica://schemas/recording-splits-required` before any write. The canonical shape is `recording_id`, `person_id`, `split_percentage`, `split_type`. **Splits must total 100% across all rows for a recording.**\n\n## Step 1 — Pick the recording\n\nIf the user names a recording or gives an ID, use it. Otherwise, call `pica_recordings_query` and let the user pick from recent recordings.\n\n## Step 2 — Show current state\n\nCall `pica_recording_splits_list` for the recording. Three states:\n\n- **Empty** — no splits set yet. Proceed to step 3.\n- **Partial** — some splits exist but don't total 100%. Ask the user whether they want to add to the existing rows or replace them.\n- **Complete** — splits total 100%. Ask whether the user wants to verify (mark agreed-upon) or replace.\n\nAlways summarise the current state plainly: \"right now this recording has [N] splits totalling [X]%, with [A] holding [P]%...\"\n\n## Step 3 — Capture proposed splits\n\nFor each split row, capture:\n\n- **Who owns this share?** — `person_id` from `pica_people_query`. If the person isn't on PICA yet, offer `pica_collaborators_invite` to bring them in before writing the split.\n- **What percentage?** — must sum to 100% across all rows.\n- **What kind?** — `split_type` — typical values: `artist`, `producer`, `label`, `featured`.\n\nSum the percentages out loud as you go. If they're not totalling 100% when the user finishes describing them, stop and ask them to adjust before proceeding.\n\n## Step 4 — Dry-run preview\n\nCall `pica_recording_splits_create` with `dry_run: true` for each proposed row. Surface the would-affect preview to the user — what would be written, what the totals are after writing, any side-effects.\n\nSum the percentages one more time. **If they don't total 100%, stop.** Do not proceed to commit.\n\n## Step 5 — Explicit confirmation\n\nSay something like:\n\n> \"I'm about to set [N] splits on this recording totalling 100%:\n> - [A] — [P]% ([type])\n> - [B] — [Q]% ([type])\n> Reply 'yes' to commit, or tell me what to change.\"\n\nWait for the user's explicit \"yes\" (or equivalent). Don't write on ambiguous signals.\n\n## Step 6 — Commit\n\nFor each split, call `pica_recording_splits_create` (this time without `dry_run`). Report each row back as it lands. If any write fails, stop the loop — don't partially commit.\n\n## Step 7 — Verify\n\nFor each newly created split, call `pica_recording_splits_verify` with the `split_id`. Verification marks the split as agreed-upon — a separate state from \"exists in the database.\"\n\n## Step 8 — Offer next moves\n\n- \"Want me to generate a split sheet PDF for signatures?\" → `pica_split_sheet_generate`\n- \"Want me to send the split sheet to the parties?\" → `pica_split_sheet_send`\n- \"Want me to set splits on another recording?\"\n\n## What not to do\n\n- Don't write splits without an explicit \"yes\" from the user\n- Don't proceed if the totals don't equal 100% — re-prompt instead\n- Don't auto-skip the verify step. Verification is a deliberate user moment.\n- Don't speculate about typical splits by genre or scene — if the user doesn't know what % someone deserves, that's a business conversation outside this skill\n- Don't conflate with writer splits — those are credits on a work, set via `pica_credits_update`. Different table, different semantics.\n\n## Follow-on skills\n\n- `close-the-loop` — recording splits are usually one gap among several on a work; close-the-loop fits the others\n- `register-my-works` — registered works pair with recordings that have clear ownership chains\n- `audit-credits` — splits health-check across the whole catalog\n",
|
|
133
133
|
},
|
|
134
134
|
"set-up-workspace": {
|
|
135
135
|
name: "set-up-workspace",
|
|
@@ -138,7 +138,7 @@ export const SKILLS = {
|
|
|
138
138
|
audience: "new user / returning user reconfiguring / admin onboarding a team",
|
|
139
139
|
tools_required: ["pica_organisation_profile", "pica_user_profile", "pica_update_organisation_profile", "pica_update_my_identity", "pica_get_privacy_settings", "pica_storage_status", "pica_storage_configure_start", "pica_subscription_status", "pica_acknowledge_onboarding"],
|
|
140
140
|
output: "A 6-block setup walkthrough — each block returns \"already done\", \"missing\", or \"ready to do now\" with the specific tool call that completes it. Ends with a one-line summary of what's left and a call to pica_acknowledge_onboarding when the user is satisfied.",
|
|
141
|
-
body: "# set-up-workspace\n\nHelp the user get their workspace properly configured. This skill is for the moment right after signup, and for returning users who want to fill gaps they skipped. It is NOT for importing music — that's `import-my-catalog`. This skill is purely about **settings, identifiers, and infrastructure**.\n\nSetup is high-value but low-glamour. Every block has a concrete payoff:\n\n- **No org identifiers** → registrations and exports will be missing critical metadata\n- **No user IPI** → if you write songs, your PRO can't pay you what your catalog earns\n- **No storage configured** → uploads land on PICA's bucket; for BYOC orgs that's a billing surprise\n- **No team invited** → if you're managing a roster, every collaborator is doing duplicate work (team invites are managed by a human in /settings — see Block 5)\n\nPICA does NOT manage external service integrations (Gmail, Drive, Notion, etc.) — those live in the user's AI client (Claude Desktop, Cursor, ChatGPT). The cross-MCP composition workflow is a separate skill (`enrich-from-peer-mcps`) — surface it after setup if the user mentions they use other tools alongside PICA.\n\nThe skill walks 6 blocks in order of compound value. Each block has the same shape: **read current state → describe gap → offer the specific tool call**. Skip blocks where state is already complete.\n\n## Pre-flight\n\nCall `pica_organisation_profile` and `pica_user_profile` first. These two reads give you the orientation for everything that follows — what type of org this is, what role the user plays, what's already set.\n\nIf `pica_organisation_profile` indicates this org was created today (or the user's profile shows no identifiers), assume fresh-signup mode and go through all blocks in order. If the user says \"I want to update my settings\" assume returning-user mode and ask which block matters.\n\n## Block 1 — Org profile\n\nThe organisation's own metadata: legal name, country, business type (publisher / label / artist / management / sync agency / etc), contact, registered office.\n\nWhat to check from `pica_organisation_profile`:\n- Is `name` set to something other than the auto-generated default?\n- Is `country` set? (drives default territory on registrations and exports)\n- Is `business_type` set? (drives which tools are most relevant — e.g. publishers care more about IPI, labels care more about ISRC)\n- For publishers: is the publisher IPI set?\n- For labels: is the label proprietary number set?\n\nIf gaps, offer the specific update via `pica_update_organisation_profile`. Always show the user what you're about to change and ask before writing.\n\n## Block 2 — User identity (IPI / ISNI)\n\nThe connected user's own identifiers as a creator. This is where royalty leak happens — a songwriter without an IPI on their PICA profile will have works registered without the writer-side identifier, which means the PRO can't route royalties to them.\n\nWhat to check from `pica_user_profile`:\n- Is the user named correctly (legal name for registrations, plus any pseudonyms / stage names)\n- Is the user's IPI set?\n- Is the user's ISNI set?\n- Is the user's role/business posture set (writer / producer / artist / publisher rep / etc)\n\nIf missing identifiers and the user doesn't know their IPI:\n- For writers: it comes from their PRO (PRS, ASCAP, BMI, SACEM, etc) — they have it in their PRO portal\n- If they're not a PRO member yet, this block is also a flag to start that process (out of scope — but mention it)\n\nOffer the update via `pica_update_my_identity`. Treat IPI / ISNI as plain strings — the tool validates format.\n\n## Block 3 — Privacy & sharing defaults\n\nCall `pica_get_privacy_settings`. This controls what other PICA users see about the org's catalog by default. Common gotcha: the default is conservative — if the user expects their catalog to appear in PICA's public directory, this block is what turns it on.\n\nWhat to check:\n- Directory visibility — is the org opted into the public directory?\n- Sharing defaults — do new works inherit private or public defaults?\n- Email contact preferences — who can reach the user through PICA\n\nIf the user is a sync-pitch operation or wants their catalog discoverable, surface the directory opt-in clearly. If the user is a high-privacy operation (sale prep, M&A, working with sensitive sync briefs), reinforce the conservative default.\n\n## Block 4 — Storage configuration\n\nCall `pica_storage_status`. PICA supports BYOC storage (bring-your-own-cloud) — the user can wire their own S3/R2/GCS bucket so audio + multimedia live in infrastructure they control.\n\nThree states:\n- **Default (PICA-managed)** — fine for trial and small catalogs. Mention BYOC as an upgrade path for users with compliance needs or existing buckets.\n- **Configuring** — the user is partway through `pica_storage_configure_start` and hasn't completed credential setup. Offer to walk through the remaining steps.\n- **Connected** — confirmed working. Mention the disconnect tool exists if they need it.\n\nIf the user has compliance constraints, sensitive content, or a large existing audio library, call out BYOC as worth doing now (before upload). Cheaper to wire correctly than to migrate later.\n\n## Block 5 — Billing & team\n\nCall `pica_subscription_status`.\n\nBilling:\n- If `billing_state` is `trial` with >3 days remaining, no action needed\n- If trial is ending (≤3 days) or already ended, surface `pica_subscription_manage` to mint a checkout URL\n- If active, confirm the tier matches the user's expected usage\n\nTeam:\n- Team membership is human-only by design
|
|
141
|
+
body: "# set-up-workspace\n\nHelp the user get their workspace properly configured. This skill is for the moment right after signup, and for returning users who want to fill gaps they skipped. It is NOT for importing music — that's `import-my-catalog`. This skill is purely about **settings, identifiers, and infrastructure**.\n\nSetup is high-value but low-glamour. Every block has a concrete payoff:\n\n- **No org identifiers** → registrations and exports will be missing critical metadata\n- **No user IPI** → if you write songs, your PRO can't pay you what your catalog earns\n- **No storage configured** → uploads land on PICA's bucket; for BYOC orgs that's a billing surprise\n- **No team invited** → if you're managing a roster, every collaborator is doing duplicate work (team invites are managed by a human in /settings — see Block 5)\n\nPICA does NOT manage external service integrations (Gmail, Drive, Notion, etc.) — those live in the user's AI client (Claude Desktop, Cursor, ChatGPT). The cross-MCP composition workflow is a separate skill (`enrich-from-peer-mcps`) — surface it after setup if the user mentions they use other tools alongside PICA.\n\nThe skill walks 6 blocks in order of compound value. Each block has the same shape: **read current state → describe gap → offer the specific tool call**. Skip blocks where state is already complete.\n\n## Pre-flight\n\nCall `pica_organisation_profile` and `pica_user_profile` first. These two reads give you the orientation for everything that follows — what type of org this is, what role the user plays, what's already set.\n\nIf `pica_organisation_profile` indicates this org was created today (or the user's profile shows no identifiers), assume fresh-signup mode and go through all blocks in order. If the user says \"I want to update my settings\" assume returning-user mode and ask which block matters.\n\n## Block 1 — Org profile\n\nThe organisation's own metadata: legal name, country, business type (publisher / label / artist / management / sync agency / etc), contact, registered office.\n\nWhat to check from `pica_organisation_profile`:\n- Is `name` set to something other than the auto-generated default?\n- Is `country` set? (drives default territory on registrations and exports)\n- Is `business_type` set? (drives which tools are most relevant — e.g. publishers care more about IPI, labels care more about ISRC)\n- For publishers: is the publisher IPI set?\n- For labels: is the label proprietary number set?\n\nIf gaps, offer the specific update via `pica_update_organisation_profile`. Always show the user what you're about to change and ask before writing.\n\n## Block 2 — User identity (IPI / ISNI)\n\nThe connected user's own identifiers as a creator. This is where royalty leak happens — a songwriter without an IPI on their PICA profile will have works registered without the writer-side identifier, which means the PRO can't route royalties to them.\n\nWhat to check from `pica_user_profile`:\n- Is the user named correctly (legal name for registrations, plus any pseudonyms / stage names)\n- Is the user's IPI set?\n- Is the user's ISNI set?\n- Is the user's role/business posture set (writer / producer / artist / publisher rep / etc)\n\nIf missing identifiers and the user doesn't know their IPI:\n- For writers: it comes from their PRO (PRS, ASCAP, BMI, SACEM, etc) — they have it in their PRO portal\n- If they're not a PRO member yet, this block is also a flag to start that process (out of scope — but mention it)\n\nOffer the update via `pica_update_my_identity`. Treat IPI / ISNI as plain strings — the tool validates format.\n\n## Block 3 — Privacy & sharing defaults\n\nCall `pica_get_privacy_settings`. This controls what other PICA users see about the org's catalog by default. Common gotcha: the default is conservative — if the user expects their catalog to appear in PICA's public directory, this block is what turns it on.\n\nWhat to check:\n- Directory visibility — is the org opted into the public directory?\n- Sharing defaults — do new works inherit private or public defaults?\n- Email contact preferences — who can reach the user through PICA\n\nIf the user is a sync-pitch operation or wants their catalog discoverable, surface the directory opt-in clearly. If the user is a high-privacy operation (sale prep, M&A, working with sensitive sync briefs), reinforce the conservative default.\n\n## Block 4 — Storage configuration\n\nCall `pica_storage_status`. PICA supports BYOC storage (bring-your-own-cloud) — the user can wire their own S3/R2/GCS bucket so audio + multimedia live in infrastructure they control.\n\nThree states:\n- **Default (PICA-managed)** — fine for trial and small catalogs. Mention BYOC as an upgrade path for users with compliance needs or existing buckets.\n- **Configuring** — the user is partway through `pica_storage_configure_start` and hasn't completed credential setup. Offer to walk through the remaining steps.\n- **Connected** — confirmed working. Mention the disconnect tool exists if they need it.\n\nIf the user has compliance constraints, sensitive content, or a large existing audio library, call out BYOC as worth doing now (before upload). Cheaper to wire correctly than to migrate later.\n\n## Block 5 — Billing & team\n\nCall `pica_subscription_status`.\n\nBilling:\n- If `billing_state` is `trial` with >3 days remaining, no action needed\n- If trial is ending (≤3 days) or already ended, surface `pica_subscription_manage` to mint a checkout URL\n- If active, confirm the tier matches the user's expected usage\n\nTeam:\n- Team membership is human-only by design — there are no MCP tools for it. If the user is managing a roster, point them at the team section of https://withpica.com/settings to invite teammates and manage roles themselves\n- Distinct from `pica_collaborators_invite` which is for **external** collaborators on specific works (writers, producers) — team is for **PICA-account access**\n\n## Block 6 — Acknowledge & close out\n\nWhen the user is satisfied with setup (whether they completed every block or deliberately skipped some), call `pica_acknowledge_onboarding`. This dismisses the onboarding nudges in the UI so they don't keep getting reminded.\n\nThen summarise:\n- What was set this session (3-5 line bullet list)\n- What's intentionally left for later (e.g. \"you'll add your IPI once your PRO registration finalises\")\n- The natural next step — probably `import-my-catalog` if no catalog yet, or `catalog-audit` if catalog exists\n\n## What not to do\n\n- Don't run all 6 blocks in one giant message. Walk through them. Each block is a check + an offer; the user agrees or declines per block.\n- Don't change settings without showing the user what's about to change and asking confirmation\n- Don't push BYOC storage or paid tiers if the user hasn't asked — surface them, don't sell them\n- Don't speculate about which PRO the user should join — that's a business decision outside this skill\n- Don't try to set IPI/ISNI values you've guessed. If the user doesn't know, leave the field empty and explain where to look\n- Don't try to \"connect Gmail to PICA\" or similar — PICA doesn't manage peer-service integrations. The user wires Gmail/Drive/etc. into their AI client separately; PICA's role is to consume the resulting URIs during enrichment (see `enrich-from-peer-mcps`).\n\n## Follow-on skills\n\n- `import-my-catalog` — if the catalog is empty, this is the natural next move\n- `catalog-audit` — if there's already a catalog, audit it now that identifiers are in place\n- `register-my-works` — once identifiers are set, registration coverage tends to be the next thing the user wants to fix\n- `enrich-from-peer-mcps` (Stage 2) — if the user mentions they have other MCPs connected (Gmail, Drive, etc.), this is the cross-MCP workflow that consumes them\n",
|
|
142
142
|
},
|
|
143
143
|
};
|
|
144
144
|
export const SKILL_NAMES = ["audit-credits", "catalog-audit", "catalog-modelling", "clean-up-artists", "close-the-loop", "enrich-from-peer-mcps", "first-session", "import-my-catalog", "ingest-my-statements", "log-a-session", "prepare-for-sync", "register-from-your-daw", "register-my-works", "set-recording-splits", "set-up-workspace"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.generated.js","sourceRoot":"","sources":["../../src/skills/skills.generated.ts"],"names":[],"mappings":"AAAA,6DAA6D;AA+B7D,MAAM,CAAC,MAAM,MAAM,GAA0B;IAC3C,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4WAA4W;QACzX,QAAQ,EAAE,CAAC,kBAAkB,EAAC,iBAAiB,EAAC,kBAAkB,EAAC,uCAAuC,EAAC,qBAAqB,CAAC;QACjI,QAAQ,EAAE,6BAA6B;QACvC,cAAc,EAAE,CAAC,kBAAkB,EAAC,mBAAmB,EAAC,mBAAmB,EAAC,qBAAqB,CAAC;QAClG,MAAM,EAAE,4NAA4N;QACpO,IAAI,EAAE,4iJAA4iJ;KACnjJ;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,sMAAsM;QACnN,QAAQ,EAAE,CAAC,kBAAkB,EAAC,wBAAwB,EAAC,gBAAgB,EAAC,mBAAmB,EAAC,mBAAmB,CAAC;QAChH,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,CAAC,yBAAyB,EAAC,oBAAoB,EAAC,kBAAkB,EAAC,oBAAoB,EAAC,sBAAsB,CAAC;QAC/H,MAAM,EAAE,iLAAiL;QACzL,IAAI,EAAE,s8GAAs8G;KAC78G;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,+PAA+P;QAC5Q,QAAQ,EAAE,CAAC,yBAAyB,EAAC,+BAA+B,EAAC,sBAAsB,EAAC,kBAAkB,EAAC,gCAAgC,EAAC,wBAAwB,EAAC,mBAAmB,CAAC;QAC7L,QAAQ,EAAE,0BAA0B;QACpC,cAAc,EAAE,CAAC,mBAAmB,EAAC,wBAAwB,EAAC,wBAAwB,EAAC,mBAAmB,EAAC,qBAAqB,CAAC;QACjI,MAAM,EAAE,iOAAiO;QACzO,kBAAkB,EAAE,iQAAiQ;QACrR,eAAe,EAAE,gNAAgN;QACjO,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"skills.generated.js","sourceRoot":"","sources":["../../src/skills/skills.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/tools/dashboard.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAatE;;;;;;;;;;;;;GAaG;AACH;6EAC6E;AAC7E,eAAO,MAAM,0BAA0B,0RACkP,CAAC;AAE1R;;;;;;;aAOa;AACb,eAAO,MAAM,wBAAwB,oXACuU,CAAC;AAE7W,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,cAAc,GAAE,OAAe,EAC/B,YAAY,GAAE,OAAe,GAC5B,MAAM,GAAG,IAAI,CAef;AAED,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":"dashboard.d.ts","sourceRoot":"","sources":["../../src/tools/dashboard.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAatE;;;;;;;;;;;;;GAaG;AACH;6EAC6E;AAC7E,eAAO,MAAM,0BAA0B,0RACkP,CAAC;AAE1R;;;;;;;aAOa;AACb,eAAO,MAAM,wBAAwB,oXACuU,CAAC;AAE7W,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,cAAc,GAAE,OAAe,EAC/B,YAAY,GAAE,OAAe,GAC5B,MAAM,GAAG,IAAI,CAef;AAED,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;YAuY3D,WAAW;YAYX,YAAY;YAYZ,WAAW;YAYX,gBAAgB;YA8BhB,eAAe;YAaf,cAAc;YAwCd,QAAQ;IAsGtB;;;;;OAKG;YACW,aAAa;IAK3B;;;OAGG;YACW,iBAAiB;IAU/B;;;OAGG;YACW,gBAAgB;CAS/B"}
|
package/dist/tools/dashboard.js
CHANGED
|
@@ -294,6 +294,7 @@ export class DashboardTools {
|
|
|
294
294
|
"Includes an `unconnected_people` block with a `count` headline plus a `breakdown` decomposing into `ready` (have contact details), `needs_lookup` (cross-tabbed by record_kind so the placeholder/artefact distribution is visible), and `needs_cleanup` (non-individual rows). " +
|
|
295
295
|
"Includes a `carbon` block with catalog total streams + kg CO2e via DIMPACT 2024 methodology when streams have been tracked (omitted for first-month creators with zero analytics). Full breakdown lives on pica_carbon_footprint. " +
|
|
296
296
|
"Includes a `narrative` block — `opener` (one short sentence), `highlights` (1-3 observation strings drawn from the top insights), and `next_question` (a calibrated open question with an `or` alternative). Use it when rendering the briefing conversationally; the structured blocks above remain canonical for programmatic consumers. " +
|
|
297
|
+
"Includes a `found` block — `{ total, newSince, groups[] }`: matches PICA has discovered and is HOLDING for the user's review at /inspect/found (a recording of theirs on YouTube, a writer split filed at the MLC). This is the one part of the briefing that gives rather than asks, so surface it BEFORE the problem counts when total > 0 — e.g. 'pica found 12 things waiting for you'. Then: pica_enrichment_proposals_list to show them, pica_enrichment_proposals_bulk_apply to accept a reviewed batch. `total: 0` means checked-and-empty; a missing block means the briefing could not check. " +
|
|
297
298
|
"May include a `stated_goal` block — `goal` (the org's living outcome statement, saved by agents via pica_memory_save under the reserved org-scoped `org_intent` key), `updated_at`, and `onboarding_intent` (the coarse signup-time intent). When present, open by continuing the goal, never re-asking it; when absent, the first-session skill's Phase 0 covers how to learn it.",
|
|
298
299
|
workflows: "infrastructure",
|
|
299
300
|
vernacular_kind: "creator-entry",
|
|
@@ -526,6 +527,17 @@ export class DashboardTools {
|
|
|
526
527
|
// here's what's outstanding." Dual-shape rollout tolerance, same as
|
|
527
528
|
// the other blocks above.
|
|
528
529
|
const integrity = result?.data?.integrity ?? result?.integrity ?? null;
|
|
530
|
+
// What PICA found and is holding for review — `{ total, newSince,
|
|
531
|
+
// groups[] }` from getFoundSummary, which reads through the FOUND_SOURCES
|
|
532
|
+
// registry (so a second source appears here without touching this file).
|
|
533
|
+
//
|
|
534
|
+
// The briefing answers "what needs your attention" and this was the one
|
|
535
|
+
// thing it never mentioned, despite being the only thing PICA does that
|
|
536
|
+
// GIVES rather than asks: 1,069 findings sat unseen across 34 orgs on
|
|
537
|
+
// 2026-08-16, and the single org that ever drained a batch found the queue
|
|
538
|
+
// on its own through this very connector, with no prompt from anywhere.
|
|
539
|
+
// Dual-shape rollout tolerance like the blocks above.
|
|
540
|
+
const found = result?.data?.found ?? result?.found ?? null;
|
|
529
541
|
// ADR-267 Rule 1 channel (b) — one ready-to-say sentence, lowercase
|
|
530
542
|
// en-GB, curiosity register only (counts are unverified gaps, no loss
|
|
531
543
|
// framing per Rule 2). Omitted entirely when criticalIssuesTotal is
|
|
@@ -549,6 +561,10 @@ export class DashboardTools {
|
|
|
549
561
|
...(carbon ? { carbon } : {}),
|
|
550
562
|
...(statedGoal ? { stated_goal: statedGoal } : {}),
|
|
551
563
|
...(narrative ? { narrative } : {}),
|
|
564
|
+
// Always present when the route sent it, INCLUDING total: 0 — the
|
|
565
|
+
// difference between "nothing waiting" and "we did not look" is exactly
|
|
566
|
+
// what an agent needs to say something honest.
|
|
567
|
+
...(found ? { found } : {}),
|
|
552
568
|
integrity,
|
|
553
569
|
});
|
|
554
570
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/tools/dashboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/tools/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,18 @@ export interface ToolAlias {
|
|
|
28
28
|
* `pica_sessions_list`, `pica_sessions_get`, `pica_statements_get`,
|
|
29
29
|
* `pica_share_links_list`. The ten aliases below still carry real live
|
|
30
30
|
* traffic, so they STAY callable — their `removal_target` is consciously
|
|
31
|
-
* extended
|
|
32
|
-
*
|
|
31
|
+
* extended (the "expire loudly" lint would otherwise block this publish at
|
|
32
|
+
* 2.93.0). Re-run the traffic gate before that release.
|
|
33
|
+
*
|
|
34
|
+
* ⚠️ `removal_target` HERE IS DOCUMENTATION, NOT THE GATE (noted 2026-08-13).
|
|
35
|
+
* `checkDeprecationExpiry` in `scripts/lint-mcp-tools.ts` reads the value from
|
|
36
|
+
* TOOL_METADATA in `metadata.ts`, never this file. The mirror check next to it
|
|
37
|
+
* asserts only that a mirrored entry EXISTS — it does not compare the two
|
|
38
|
+
* values, so they can drift silently and the enforced one always wins. They had
|
|
39
|
+
* drifted: this file said 2.95.0 while metadata said 2.96.0, and the package
|
|
40
|
+
* shipped 2.95.2 without the lint firing. Realigned to 2.96.0. If you change a
|
|
41
|
+
* target, change BOTH — or the comment stops describing the deadline the build
|
|
42
|
+
* actually enforces.
|
|
33
43
|
*/
|
|
34
44
|
export declare const TOOL_ALIASES: ToolAlias[];
|
|
35
45
|
/** True when a tool's metadata marks it deprecated (aliased). Pure. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecations.d.ts","sourceRoot":"","sources":["../../src/tools/deprecations.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChE;AAED
|
|
1
|
+
{"version":3,"file":"deprecations.d.ts","sourceRoot":"","sources":["../../src/tools/deprecations.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,EAsFnC,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GACzC,OAAO,CAET;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE/D;AAED,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACtC,OAAO,EAAE,SAAS,EAAE,GACnB,IAAI,CAmBN"}
|
|
@@ -11,8 +11,18 @@
|
|
|
11
11
|
* `pica_sessions_list`, `pica_sessions_get`, `pica_statements_get`,
|
|
12
12
|
* `pica_share_links_list`. The ten aliases below still carry real live
|
|
13
13
|
* traffic, so they STAY callable — their `removal_target` is consciously
|
|
14
|
-
* extended
|
|
15
|
-
*
|
|
14
|
+
* extended (the "expire loudly" lint would otherwise block this publish at
|
|
15
|
+
* 2.93.0). Re-run the traffic gate before that release.
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ `removal_target` HERE IS DOCUMENTATION, NOT THE GATE (noted 2026-08-13).
|
|
18
|
+
* `checkDeprecationExpiry` in `scripts/lint-mcp-tools.ts` reads the value from
|
|
19
|
+
* TOOL_METADATA in `metadata.ts`, never this file. The mirror check next to it
|
|
20
|
+
* asserts only that a mirrored entry EXISTS — it does not compare the two
|
|
21
|
+
* values, so they can drift silently and the enforced one always wins. They had
|
|
22
|
+
* drifted: this file said 2.95.0 while metadata said 2.96.0, and the package
|
|
23
|
+
* shipped 2.95.2 without the lint firing. Realigned to 2.96.0. If you change a
|
|
24
|
+
* target, change BOTH — or the comment stops describing the deadline the build
|
|
25
|
+
* actually enforces.
|
|
16
26
|
*/
|
|
17
27
|
export const TOOL_ALIASES = [
|
|
18
28
|
// Tier 1 (MCP tool-surface consolidation): pica_releases_attach_track is
|
|
@@ -22,12 +32,12 @@ export const TOOL_ALIASES = [
|
|
|
22
32
|
{
|
|
23
33
|
deprecated: "pica_releases_attach_track_by_identifier",
|
|
24
34
|
canonical: "pica_releases_attach_track",
|
|
25
|
-
removal_target: "2.
|
|
35
|
+
removal_target: "2.96.0",
|
|
26
36
|
},
|
|
27
37
|
{
|
|
28
38
|
deprecated: "pica_releases_bulk_attach_tracks",
|
|
29
39
|
canonical: "pica_releases_attach_track",
|
|
30
|
-
removal_target: "2.
|
|
40
|
+
removal_target: "2.96.0",
|
|
31
41
|
adaptArgs: (a) => ({
|
|
32
42
|
release_id: a.release_id,
|
|
33
43
|
items: a.tracks,
|
|
@@ -40,12 +50,12 @@ export const TOOL_ALIASES = [
|
|
|
40
50
|
{
|
|
41
51
|
deprecated: "pica_releases_list",
|
|
42
52
|
canonical: "pica_releases_query",
|
|
43
|
-
removal_target: "2.
|
|
53
|
+
removal_target: "2.96.0",
|
|
44
54
|
},
|
|
45
55
|
{
|
|
46
56
|
deprecated: "pica_releases_get",
|
|
47
57
|
canonical: "pica_releases_inspect",
|
|
48
|
-
removal_target: "2.
|
|
58
|
+
removal_target: "2.96.0",
|
|
49
59
|
},
|
|
50
60
|
// Tier 2 (MCP tool-surface consolidation): projects aligned to the
|
|
51
61
|
// ADR-149 query/inspect pattern. Identity — args map 1:1. pica_projects_get
|
|
@@ -53,7 +63,7 @@ export const TOOL_ALIASES = [
|
|
|
53
63
|
{
|
|
54
64
|
deprecated: "pica_projects_list",
|
|
55
65
|
canonical: "pica_projects_query",
|
|
56
|
-
removal_target: "2.
|
|
66
|
+
removal_target: "2.96.0",
|
|
57
67
|
},
|
|
58
68
|
// Tier 2 (MCP tool-surface consolidation): notes aligned to the
|
|
59
69
|
// ADR-149 query/inspect pattern. Identity — args map 1:1. pica_notes_get
|
|
@@ -61,7 +71,7 @@ export const TOOL_ALIASES = [
|
|
|
61
71
|
{
|
|
62
72
|
deprecated: "pica_notes_list",
|
|
63
73
|
canonical: "pica_notes_query",
|
|
64
|
-
removal_target: "2.
|
|
74
|
+
removal_target: "2.96.0",
|
|
65
75
|
},
|
|
66
76
|
// Tier 2 (MCP tool-surface consolidation): documents aligned to the
|
|
67
77
|
// ADR-149 query/inspect pattern. Both identity — args map 1:1.
|
|
@@ -69,12 +79,12 @@ export const TOOL_ALIASES = [
|
|
|
69
79
|
{
|
|
70
80
|
deprecated: "pica_documents_list",
|
|
71
81
|
canonical: "pica_documents_query",
|
|
72
|
-
removal_target: "2.
|
|
82
|
+
removal_target: "2.96.0",
|
|
73
83
|
},
|
|
74
84
|
{
|
|
75
85
|
deprecated: "pica_documents_read",
|
|
76
86
|
canonical: "pica_documents_inspect",
|
|
77
|
-
removal_target: "2.
|
|
87
|
+
removal_target: "2.96.0",
|
|
78
88
|
},
|
|
79
89
|
// Tier 2 (MCP tool-surface consolidation): statements aligned to the
|
|
80
90
|
// ADR-149 query/inspect pattern. Identity — args map 1:1 (the canonical
|
|
@@ -83,7 +93,7 @@ export const TOOL_ALIASES = [
|
|
|
83
93
|
{
|
|
84
94
|
deprecated: "pica_statements_list",
|
|
85
95
|
canonical: "pica_statements_query",
|
|
86
|
-
removal_target: "2.
|
|
96
|
+
removal_target: "2.96.0",
|
|
87
97
|
},
|
|
88
98
|
// Task A1 (MCP tool-surface consolidation): pica_recording_credits_update
|
|
89
99
|
// is now a superset — dispatches to the bulk path when args.credits is an
|
|
@@ -98,7 +108,7 @@ export const TOOL_ALIASES = [
|
|
|
98
108
|
{
|
|
99
109
|
deprecated: "pica_recording_credits_bulk_update",
|
|
100
110
|
canonical: "pica_recording_credits_update",
|
|
101
|
-
removal_target: "2.
|
|
111
|
+
removal_target: "2.96.0",
|
|
102
112
|
},
|
|
103
113
|
];
|
|
104
114
|
/** True when a tool's metadata marks it deprecated (aliased). Pure. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecations.js","sourceRoot":"","sources":["../../src/tools/deprecations.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAsB7D
|
|
1
|
+
{"version":3,"file":"deprecations.js","sourceRoot":"","sources":["../../src/tools/deprecations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AA+BpB,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AASD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AA+BpB,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AASD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA0xBzD,CAAC;AAoBF,qBAAa,cAAc;IAEvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAC;gBAjBd,aAAa,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,CAAC,EAAE,mBAAmB,KACtB,OAAO,CAAC,UAAU,CAAC,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAC7B;QACE,UAAU,EAAE,cAAc,CAAC;QAC3B,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACzB,GACD,SAAS;IACb;;;;OAIG;IACK,aAAa,CAAC,GAAE,MAAM,MAAM,EAAE,aAAA;IAGxC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAuBxB,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAQzE,OAAO,CAAC,iBAAiB;IAwHzB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAiDtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IA8H5B,OAAO,CAAC,eAAe;IAkEvB,OAAO,CAAC,gBAAgB;CAyUzB"}
|
package/dist/tools/discovery.js
CHANGED
|
@@ -288,6 +288,14 @@ export const CATEGORIES = {
|
|
|
288
288
|
"pica_export_industry_ready",
|
|
289
289
|
"pica_export_catalog_asset_report",
|
|
290
290
|
"pica_export_ai_consent",
|
|
291
|
+
// The four diligence documents. Reachable from nowhere between the
|
|
292
|
+
// /admin retirement (2026-06-01) and 2026-07-30; registering the tools
|
|
293
|
+
// without listing them here would have left them undiscoverable to
|
|
294
|
+
// layered-discovery agents, which is the same defect one layer down.
|
|
295
|
+
"pica_export_snapshot",
|
|
296
|
+
"pica_export_ownership_record",
|
|
297
|
+
"pica_export_rights_proof",
|
|
298
|
+
"pica_export_diligence_pack",
|
|
291
299
|
// Interactive download card (ADR-152) — pair with any export tool to
|
|
292
300
|
// deliver the file directly. Lives here rather than in `uploads`
|
|
293
301
|
// because it's the delivery side of the export flow.
|
|
@@ -396,6 +404,7 @@ export const CATEGORIES = {
|
|
|
396
404
|
"pica_enrichment_proposals_list",
|
|
397
405
|
// ADR-264 C3: bulk review queue
|
|
398
406
|
"pica_enrichment_proposals_bulk_reject",
|
|
407
|
+
"pica_enrichment_proposals_bulk_apply",
|
|
399
408
|
// ADR-289 Wave C2 — undo a wrong MusicBrainz match
|
|
400
409
|
"pica_enrichment_clear",
|
|
401
410
|
],
|