@withpica/mcp-server
Version:
MCP Server for withPICA — enables AI assistants to interact with your withPICA music catalog
43 lines • 2.04 kB
TypeScript
/**
* Signed split sheets in the destructive-delete preview (founder ruling
* 2026-09-25): a work carrying a signed split sheet is archived, never
* hard-deleted, so the signed evidence survives (WORK_DELETE_POLICY in
* lib/services/works/delete-policy.ts). The preview for pica_works_delete /
* pica_works_bulk_delete says so before the user confirms.
*
* The count comes from the split-sheet list the API already serves
* (GET /admin/works/:id/split-sheet), whose rows carry
* `signed_signature_count` — the same signal (`split_sheet_signatures.signed_at`)
* the delete policy counts.
*/
import type { PicaClient } from "@withpica/mcp-sdk";
/**
* Bulk previews read each work's sheets individually, and every read counts
* against the caller's per-key API rate limit (lib/auth/api-key-auth.ts) —
* the same budget the delete itself needs. Past this many ids the preview
* states the rule instead of reading each work.
*/
export declare const SIGNED_SHEET_PREVIEW_MAX_IDS = 10;
/** Number of the work's split sheets with at least one signature. Throws on a failed read. */
export declare function countSignedSplitSheets(pica: PicaClient, workId: string): Promise<number>;
/**
* The preview line for one work. `null` = the count could not be read; the
* line then states the rule rather than claiming there are none.
*/
export declare function signedSplitSheetLineForWork(count: number | null): string;
/**
* The preview line for a bulk delete. `checked` false = too many ids to read
* (or a read failed); the line then states the rule.
*/
export declare function signedSplitSheetLineForWorks(result: {
checked: boolean;
worksWithSigned: number;
sheets: number;
}): string;
/** Read signed-sheet counts for a bulk preview, bounded by {@link SIGNED_SHEET_PREVIEW_MAX_IDS}. */
export declare function countSignedSplitSheetsForWorks(pica: PicaClient, ids: string[]): Promise<{
checked: boolean;
worksWithSigned: number;
sheets: number;
}>;
//# sourceMappingURL=signed-split-sheet-preview.d.ts.map