UNPKG

@withpica/mcp-server

Version:

MCP Server for withPICA — enables AI assistants to interact with your withPICA music catalog

52 lines • 2.23 kB
/** * Split Sheets & Recording Splits Tools * MCP tools for managing publishing split sheets and master recording ownership splits */ import { PicaClient } from "@withpica/mcp-sdk"; import { ToolDefinition, ToolExecutor } from "./index.js"; export declare class SplitSheetsTools { private pica; constructor(pica: PicaClient); /** * Get all split sheet and recording split tools */ getTools(): Array<{ definition: ToolDefinition; executor: ToolExecutor; }>; private sendSplitSheet; private listSplitSheets; private generateSplitSheet; private getSplitSheet; private listRecordingSplits; /** * dry_run for pica_recording_splits_create: the row that would land, the * shares already on the recording for the same split_type + territory, and * `likely_refusal` when the write would be refused. * * It is a PREDICTION, not the guard. It restates validate_recording_splits * (migration 20260917180000) over the listed rows: an ended new row is not * checked; otherwise the active shares other than this person's own row plus * this share must not pass 100% (compared in hundredths, as numeric(5,2) * stores them — a float sum of 36.06 + 35.24 + 21 + 7.7 is not over 100). * The total is checked BEFORE the unique key, the order the database uses, * so a share that is both over 100% and on a taken key predicts * RECORDING_SPLIT_TOTAL_EXCEEDED, as the write answers. Not seen: rows past * the list route's 100-row cap, and any later change to the trigger. Pinned * against the real write by pica-holdout-tests * scenarios/catalog/recording-split-readd-is-not-a-refusal.spec.ts (case 7) * and split-sheets.test.ts. */ private previewRecordingSplit; private createRecordingSplit; private verifyRecordingSplit; /** * Turn the edit / end route's envelope into the tool result. The message * says plainly when a confirmation was cleared, because the agent has to * tell the user the holder must confirm again. */ private editResult; private updateRecordingSplit; private endRecordingSplit; } //# sourceMappingURL=split-sheets.d.ts.map