@withpica/mcp-sdk 3.10.0 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/dist/index.d.ts +275 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -15
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [3.12.0] - 2026-08-25
|
|
15
|
+
|
|
16
|
+
Adds the ADR-314 import continuation surface (below); everything else is documentation — no other method signature, request path or response shape changes.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- `ImportResult.rowRange` and `imports.execute()` options `rowOffset` / `rowLimit` — the ADR-314 continuation cursor: the server imports one slice per call (default 2,000 rows) and returns `nextOffset` until the file is done.
|
|
21
|
+
- `ImportResult.partial` — set by `POST /admin/import/execute` when a live run wrote rows and some rows failed (a batch import is not transactional; the written rows are committed). `imports.execute()` options gain `conflictStrategy?: "skip" | "error"` (server default now `"skip"`). Error entries are typed with the server's real `error` field alongside `message`, and `severity`.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **Five docstrings described a table that was dropped 2026-05-29.** ADR-252 WS-A DB-M3 dropped both the `work_credits` view and the `work_credits_legacy` table, but these docstrings still told the reader a row lands there. Each now names the canonical home the code actually writes to:
|
|
26
|
+
- `CreditsResource.atomicAdd` cited `replace_work_credits` — a retired RPC — as the non-atomic alternative. It now names the live comparison (the work-level `POST /credits` additive upsert) and says where the row lands: publishing roles to `work_collaborators`, master attribution to `recording_credits`, owner to `recording_splits`.
|
|
27
|
+
- `DiscoveriesResource.claimCredit` said it drains a `discovered_credits` row **into a `work_credits` row**. It does not write a credit row anywhere — the claim is a status transition on `discovered_credits`, which is what the backing route's own provenance stamp records.
|
|
28
|
+
- `DiscoveriesResource.claimArtist` said `work_claims` + `work_credits`. `work_claims` is right; the claimed performer credit is a MASTER credit and lands in `recording_credits` with role `Performer` on the work's sole recording.
|
|
29
|
+
- `CollaboratorsResource.accept` said it "writes a real `work_credits` row". The credit write is grain-routed (ADR-265): a composition-grain invite writes `work_collaborators`, a master/owner-grain invite attests the person's pending `recording_credits`.
|
|
30
|
+
- The `RecordingCredit` orientation comment distinguished this resource from "CreditsResource (`work_credits` / `work_collaborators`)" — now `work_collaborators` / `recording_splits`.
|
|
31
|
+
|
|
32
|
+
> Verified by sweep, not by eye: every snake_case identifier in a comment in `src/index.ts` was cross-checked against the 398 tables and views in the generated database types. `work_credits` was the **only** name with no schema entry, at exactly these sites. Every other table named in a docstring exists, and each write claim was re-read against the route it calls.
|
|
33
|
+
|
|
34
|
+
## [3.11.0] - 2026-07-28
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
|
|
38
|
+
- **`ConsentResource` (ADR-300)** — `pica.consent.readiness({ limit? })` → `GET /admin/consent/readiness`. Returns the org-scoped consent readiness verdict: per-level cleared / partial / blocked / unset asset counts, plus named blockers ranked refusals-first then by catalogue reach. Backs the `pica_consent_readiness` tool in `@withpica/mcp-server` 2.95.2.
|
|
39
|
+
- Read-only by design: there is deliberately no consent **write** method. The per-subject consent routes refuse Bearer callers (ADR-292), because a consent decision has to be made by the person whose rights it binds rather than by an agent acting for them. Do not add one without revisiting that ADR.
|
|
40
|
+
|
|
14
41
|
## [3.10.0] - 2026-07-27
|
|
15
42
|
|
|
16
43
|
### Added
|
package/dist/index.d.ts
CHANGED
|
@@ -175,7 +175,14 @@ export interface ResolvePersonResult {
|
|
|
175
175
|
export type BillingTier = "solo" | "indie" | "pro" | "established" | "enterprise";
|
|
176
176
|
export interface BillingSlice {
|
|
177
177
|
billing_state: "trial" | "active" | "hibernated";
|
|
178
|
-
|
|
178
|
+
/**
|
|
179
|
+
* free_runway (walked in, never charged, no clock) | resident (paying one
|
|
180
|
+
* flat fee per 30-day cycle) | paused (a cycle lapsed, deep-processing off).
|
|
181
|
+
*
|
|
182
|
+
* ⚠️ Replaced `trial_days_remaining` on 2026-08-21 — pica has no trial, and
|
|
183
|
+
* that field reported null for every organisation while implying one existed.
|
|
184
|
+
*/
|
|
185
|
+
plan: "free_runway" | "resident" | "paused";
|
|
179
186
|
current_tier: BillingTier | null;
|
|
180
187
|
capacity_pct: number;
|
|
181
188
|
}
|
|
@@ -1215,6 +1222,83 @@ declare class BookingsResource extends BaseResource {
|
|
|
1215
1222
|
followUpDate?: string;
|
|
1216
1223
|
}): Promise<BookingEnquiry>;
|
|
1217
1224
|
}
|
|
1225
|
+
/**
|
|
1226
|
+
* Payload accepted by `POST /admin/shows` — a dated show (venue + date +
|
|
1227
|
+
* setlist) OR a tour credit (act + year + role); the route picks which by
|
|
1228
|
+
* which fields are present. Mirrors `ShowPayload` in
|
|
1229
|
+
* app/api/admin/shows/route.ts (not imported — this package is standalone).
|
|
1230
|
+
*/
|
|
1231
|
+
interface ShowLogPayload {
|
|
1232
|
+
venue?: string;
|
|
1233
|
+
city?: string;
|
|
1234
|
+
country?: string;
|
|
1235
|
+
date?: string;
|
|
1236
|
+
act?: string;
|
|
1237
|
+
performed_by_person_id?: string;
|
|
1238
|
+
slot?: string;
|
|
1239
|
+
setlist?: string[];
|
|
1240
|
+
set_number?: number;
|
|
1241
|
+
attendance?: number;
|
|
1242
|
+
logged_as?: "act" | "contributor";
|
|
1243
|
+
year?: number;
|
|
1244
|
+
role?: string;
|
|
1245
|
+
tour_name?: string;
|
|
1246
|
+
person_id?: string;
|
|
1247
|
+
email?: string;
|
|
1248
|
+
contributors?: Array<{
|
|
1249
|
+
name?: string;
|
|
1250
|
+
email?: string;
|
|
1251
|
+
person_id?: string;
|
|
1252
|
+
role: string;
|
|
1253
|
+
is_crew?: boolean;
|
|
1254
|
+
}>;
|
|
1255
|
+
}
|
|
1256
|
+
/**
|
|
1257
|
+
* `GET /admin/shows` query params — list the org's shows (newest first,
|
|
1258
|
+
* optionally filtered), or fetch one show plus its folded-in setlist when
|
|
1259
|
+
* `id` is given. Mirrors the route's `queryShows` filter set.
|
|
1260
|
+
*/
|
|
1261
|
+
interface ShowQueryParams {
|
|
1262
|
+
id?: string;
|
|
1263
|
+
from?: string;
|
|
1264
|
+
to?: string;
|
|
1265
|
+
venue?: string;
|
|
1266
|
+
city?: string;
|
|
1267
|
+
country?: string;
|
|
1268
|
+
unfiled_only?: boolean;
|
|
1269
|
+
}
|
|
1270
|
+
/**
|
|
1271
|
+
* `PATCH /admin/setlist-items/[id]` payload — confirms what a setlist line
|
|
1272
|
+
* actually was (work match, cover flag, performer) and, when `venue_id` +
|
|
1273
|
+
* `show_id` are both present, the show's venue candidate. Both are applied
|
|
1274
|
+
* when both are supplied; the response carries `venue` and `item`, either of
|
|
1275
|
+
* which may be null.
|
|
1276
|
+
*/
|
|
1277
|
+
interface SetlistItemConfirmPayload {
|
|
1278
|
+
work_id?: string;
|
|
1279
|
+
is_cover?: boolean;
|
|
1280
|
+
performed_by?: string;
|
|
1281
|
+
venue_id?: string;
|
|
1282
|
+
show_id?: string;
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Live shows and tour credits (ADR-313). Wraps `/admin/shows` and
|
|
1286
|
+
* `/admin/setlist-items/[id]`.
|
|
1287
|
+
*/
|
|
1288
|
+
declare class ShowsResource extends BaseResource {
|
|
1289
|
+
/** POST /admin/shows — log a dated show, or a tour credit. */
|
|
1290
|
+
log(payload: ShowLogPayload): Promise<unknown>;
|
|
1291
|
+
/**
|
|
1292
|
+
* GET /admin/shows — list shows for the org (newest first), or the single
|
|
1293
|
+
* show + its folded-in setlist when `id` is given.
|
|
1294
|
+
*/
|
|
1295
|
+
query(params?: ShowQueryParams): Promise<unknown>;
|
|
1296
|
+
/**
|
|
1297
|
+
* PATCH /admin/setlist-items/[id] — confirm a setlist match, a cover, a
|
|
1298
|
+
* performer, or (with `venue_id` + `show_id`) a venue candidate.
|
|
1299
|
+
*/
|
|
1300
|
+
matchItem(id: string, payload: SetlistItemConfirmPayload): Promise<unknown>;
|
|
1301
|
+
}
|
|
1218
1302
|
export interface WorkCreditAtomicAddInput {
|
|
1219
1303
|
person_id: string;
|
|
1220
1304
|
credit_type?: "writer" | "composer" | "arranger" | "lyricist" | "producer" | "performer" | "engineer" | "mixer" | "mastering" | "owner" | "vocalist" | "instrumentalist" | "conductor" | "programmer" | "remixer";
|
|
@@ -1233,9 +1317,14 @@ declare class CreditsResource extends BaseResource {
|
|
|
1233
1317
|
listCollaborators(workId: string): Promise<WorkCredit[]>;
|
|
1234
1318
|
updateCollaborators(workId: string, collaborators: WorkCreditsInput): Promise<WorkCredit[]>;
|
|
1235
1319
|
/**
|
|
1236
|
-
* ADR-232 atomic add — INSERT a single work credit.
|
|
1237
|
-
*
|
|
1238
|
-
*
|
|
1320
|
+
* ADR-232 atomic add — INSERT a single work credit. NOT replace
|
|
1321
|
+
* semantics: the work-level POST /credits is an additive upsert that
|
|
1322
|
+
* re-reads and re-writes the whole set, so it is not atomic for this
|
|
1323
|
+
* verb. createWorkCredit routes the row to its canonical home —
|
|
1324
|
+
* publishing roles to work_collaborators, master attribution to
|
|
1325
|
+
* recording_credits, owner to recording_splits (ADR-252 WS-A; the
|
|
1326
|
+
* legacy work_credits table was dropped at DB-M3). Returns the new
|
|
1327
|
+
* credit_id.
|
|
1239
1328
|
*/
|
|
1240
1329
|
atomicAdd(workId: string, input: WorkCreditAtomicAddInput): Promise<AtomicCreditResult>;
|
|
1241
1330
|
/**
|
|
@@ -1902,6 +1991,14 @@ declare class EnrichmentResource extends BaseResource {
|
|
|
1902
1991
|
* `pending` rows are visible — applied/rejected/expired are hidden
|
|
1903
1992
|
* regardless of filter. See ADR-163 for the design.
|
|
1904
1993
|
*
|
|
1994
|
+
* ⚠️ `pending` is not the same as "still worth asking". A finding the
|
|
1995
|
+
* catalogue has since ANSWERED by another route keeps that status — nothing
|
|
1996
|
+
* re-asks the question after mint time — and applying it refuses. Those are
|
|
1997
|
+
* excluded, matching what `/inspect/found` shows, and
|
|
1998
|
+
* `data.excluded_stale` ({count, reasons}) reports the drop so a short page
|
|
1999
|
+
* is distinguishable from a filtered one. Applied after pagination, so a
|
|
2000
|
+
* page may return fewer rows than `limit`.
|
|
2001
|
+
*
|
|
1905
2002
|
* ADR-264 C1: supports min_confidence, max_confidence, created_after
|
|
1906
2003
|
* for filtering by confidence band and recency.
|
|
1907
2004
|
*/
|
|
@@ -1918,6 +2015,16 @@ declare class EnrichmentResource extends BaseResource {
|
|
|
1918
2015
|
max_confidence?: number;
|
|
1919
2016
|
/** ADR-264 C1: only return proposals created at or after this ISO timestamp */
|
|
1920
2017
|
created_after?: string;
|
|
2018
|
+
/**
|
|
2019
|
+
* Additionally return `groups` — the interpreted review shape the
|
|
2020
|
+
* /inspect/found page renders (grouped, confidence-banded, before/after
|
|
2021
|
+
* field changes, evidence lines, external refs, per-item actionable /
|
|
2022
|
+
* bulkEligible), read through the FOUND_SOURCES registry.
|
|
2023
|
+
*
|
|
2024
|
+
* ⚠️ `groups` is the WHOLE reviewable queue and is NOT narrowed by the
|
|
2025
|
+
* filters above, which only apply to `proposals`.
|
|
2026
|
+
*/
|
|
2027
|
+
review_shape?: boolean;
|
|
1921
2028
|
}): Promise<any>;
|
|
1922
2029
|
/**
|
|
1923
2030
|
* Apply a pending proposal. For update proposals, drift detection
|
|
@@ -1963,6 +2070,48 @@ declare class EnrichmentResource extends BaseResource {
|
|
|
1963
2070
|
rejected: number;
|
|
1964
2071
|
skipped: string[];
|
|
1965
2072
|
}>;
|
|
2073
|
+
/**
|
|
2074
|
+
* Apply many pending proposals in one call — the accept side of the
|
|
2075
|
+
* /inspect/found queue.
|
|
2076
|
+
*
|
|
2077
|
+
* Takes ids only; unlike `bulkRejectProposals` there is deliberately no
|
|
2078
|
+
* `filter` form, because a filter that bulk-ACCEPTS is a different kind of
|
|
2079
|
+
* thing from one that bulk-dismisses: rejecting a mis-filtered set costs a
|
|
2080
|
+
* re-proposal, accepting one writes to the catalogue.
|
|
2081
|
+
*
|
|
2082
|
+
* Caps at 100 per call. ⚠️ **Partial success is normal** — apply branches
|
|
2083
|
+
* into four different update/create paths and each id is applied
|
|
2084
|
+
* independently, so `failed` being non-empty alongside a non-zero `applied`
|
|
2085
|
+
* is the expected shape, not an error. Never report a partial as a success.
|
|
2086
|
+
*
|
|
2087
|
+
* Returns `{ applied, failed: [{ id, error }], skipped }`. `skipped` is
|
|
2088
|
+
* always empty here (a non-pending id arrives as a `failed` entry carrying
|
|
2089
|
+
* its own message); the key exists so one client shape reads apply, reject
|
|
2090
|
+
* and undo alike.
|
|
2091
|
+
*/
|
|
2092
|
+
bulkApplyProposals(input: {
|
|
2093
|
+
proposal_ids: string[];
|
|
2094
|
+
/**
|
|
2095
|
+
* ADR-180 Rule 12 preview. When true the server writes NOTHING and answers
|
|
2096
|
+
* `{ dry_run: true, would_affect, not_pending }` instead of the apply
|
|
2097
|
+
* shape — so callers must branch on `dry_run` rather than reading
|
|
2098
|
+
* `applied`, which is absent from a preview.
|
|
2099
|
+
*/
|
|
2100
|
+
dry_run?: boolean;
|
|
2101
|
+
}): Promise<{
|
|
2102
|
+
applied?: number;
|
|
2103
|
+
failed?: Array<{
|
|
2104
|
+
id: string;
|
|
2105
|
+
error: string;
|
|
2106
|
+
}>;
|
|
2107
|
+
skipped?: string[];
|
|
2108
|
+
dry_run?: boolean;
|
|
2109
|
+
would_affect?: number;
|
|
2110
|
+
not_pending?: Array<{
|
|
2111
|
+
id: string;
|
|
2112
|
+
error: string;
|
|
2113
|
+
}>;
|
|
2114
|
+
}>;
|
|
1966
2115
|
/**
|
|
1967
2116
|
* ADR-178: File a proposal sourced from open-web agent research.
|
|
1968
2117
|
*
|
|
@@ -2022,6 +2171,17 @@ declare class RegistrationResource extends BaseResource {
|
|
|
2022
2171
|
export interface CatalogHealthItem {
|
|
2023
2172
|
grain: "work" | "recording" | "release" | "person";
|
|
2024
2173
|
issue: string;
|
|
2174
|
+
/**
|
|
2175
|
+
* A sentence a person would recognise ("recordings sharing an ISRC with
|
|
2176
|
+
* another recording"), or null when the issue has no wording yet.
|
|
2177
|
+
*
|
|
2178
|
+
* ⚠️ SAY THIS, NOT `issue`. A bare key relayed to a user reads as
|
|
2179
|
+
* "junk_person" — the failure recorded in `.claude/rules/canonical-model.md`,
|
|
2180
|
+
* where an agent said "WORK_NO_WRITER" out loud because a narrowing adapter
|
|
2181
|
+
* dropped the only human-readable field. `issue` stays for arguments
|
|
2182
|
+
* (`catalogHealthPlan({only: [...]})` selects on it); label is for prose.
|
|
2183
|
+
*/
|
|
2184
|
+
label: string | null;
|
|
2025
2185
|
dimension: "completeness" | "cleanliness";
|
|
2026
2186
|
severity: "high" | "medium" | "low";
|
|
2027
2187
|
count: number;
|
|
@@ -2305,10 +2465,12 @@ export interface AcknowledgeNotificationsResponse {
|
|
|
2305
2465
|
}
|
|
2306
2466
|
declare class DiscoveriesResource extends BaseResource {
|
|
2307
2467
|
/**
|
|
2308
|
-
*
|
|
2309
|
-
*
|
|
2310
|
-
*
|
|
2311
|
-
*
|
|
2468
|
+
* Claim a pending discovered_credits row in the caller's org. ADR-252
|
|
2469
|
+
* WS-A: this is a STATUS TRANSITION on discovered_credits — no credit
|
|
2470
|
+
* row is written anywhere by this call. Check-and-set on status —
|
|
2471
|
+
* returns DISCOVERY_ALREADY_RESOLVED (409) if another session won the
|
|
2472
|
+
* race. is_first_claim=true triggers the checkout pill on the agent
|
|
2473
|
+
* surface.
|
|
2312
2474
|
*/
|
|
2313
2475
|
claimCredit(id: string): Promise<ClaimCreditResponse>;
|
|
2314
2476
|
/**
|
|
@@ -2322,10 +2484,13 @@ declare class DiscoveriesResource extends BaseResource {
|
|
|
2322
2484
|
*/
|
|
2323
2485
|
claimCustody(id: string): Promise<ClaimCustodyResponse>;
|
|
2324
2486
|
/**
|
|
2325
|
-
* INSTANT path — drain a pending discovered_artists row
|
|
2326
|
-
*
|
|
2327
|
-
*
|
|
2328
|
-
*
|
|
2487
|
+
* INSTANT path — drain a pending discovered_artists row via
|
|
2488
|
+
* artistClaimingService.processClaimDecision: CAS-updates work_claims
|
|
2489
|
+
* and inserts the claimed performer credit. ADR-252 WS-A: a performer
|
|
2490
|
+
* credit is a MASTER credit, so it lands in recording_credits (role
|
|
2491
|
+
* 'Performer') on the work's sole recording — NOT the dropped
|
|
2492
|
+
* work_credits table. No +72h window; identity evidence was validated
|
|
2493
|
+
* at discovery time.
|
|
2329
2494
|
*
|
|
2330
2495
|
* Refuses with 409 ADMIN_REVIEW_IN_PROGRESS when an open artist_claims
|
|
2331
2496
|
* row exists for the same (work, person) — see response body
|
|
@@ -2826,6 +2991,47 @@ declare class ExportResource extends BaseResource {
|
|
|
2826
2991
|
work_id?: string;
|
|
2827
2992
|
work_ids?: string[];
|
|
2828
2993
|
}): Promise<any>;
|
|
2994
|
+
/**
|
|
2995
|
+
* The three diligence documents that had no agent path at all until
|
|
2996
|
+
* 2026-07-30 (ADR-303). Each has had a working route and a fully-styled PDF
|
|
2997
|
+
* for months, reachable only by typing the URL, because the buttons that
|
|
2998
|
+
* opened them lived in the `/admin` page tree ADR-251 retired.
|
|
2999
|
+
*
|
|
3000
|
+
* `delivery=url` is the default here for the same reason PR 3 moved the other
|
|
3001
|
+
* exports onto it: `request()` calls `response.json()`, so an inline binary ZIP
|
|
3002
|
+
* cannot cross this transport. `inline` swaps to `format=json` for a sandboxed
|
|
3003
|
+
* agent that cannot fetch a signed S3 URL.
|
|
3004
|
+
*/
|
|
3005
|
+
/**
|
|
3006
|
+
* The ADR-100 catalogue snapshot: score, financials, ownership coverage, gaps
|
|
3007
|
+
* with a suggested action for each, physical and production assets, and a
|
|
3008
|
+
* "what to do next" list.
|
|
3009
|
+
*
|
|
3010
|
+
* It had no agent path and no UI control — its buttons lived on the
|
|
3011
|
+
* `/admin/catalog` pages ADR-251 retired, which is why an 80%-implemented
|
|
3012
|
+
* "replace the nine fragments with one document" decision quietly stopped
|
|
3013
|
+
* being reachable at all. Restored 2026-07-30 rather than deleted: the
|
|
3014
|
+
* roadmap and the production-asset provenance exist nowhere else.
|
|
3015
|
+
*/
|
|
3016
|
+
picaSnapshot(params?: {
|
|
3017
|
+
scope?: "everything" | "selected" | "work";
|
|
3018
|
+
work_ids?: string[];
|
|
3019
|
+
}): Promise<any>;
|
|
3020
|
+
ownershipRecord(params?: {
|
|
3021
|
+
inline?: boolean;
|
|
3022
|
+
}): Promise<any>;
|
|
3023
|
+
rightsProof(params?: {
|
|
3024
|
+
inline?: boolean;
|
|
3025
|
+
}): Promise<any>;
|
|
3026
|
+
/**
|
|
3027
|
+
* The diligence PACK (the ZIP with its PDF). Distinct from
|
|
3028
|
+
* `analytics.catalogDiligence()`, which reads the same data as JSON and stays
|
|
3029
|
+
* the right tool for "am I ready to register?" — a question that wants an
|
|
3030
|
+
* answer, not a document.
|
|
3031
|
+
*/
|
|
3032
|
+
diligencePack(params?: {
|
|
3033
|
+
inline?: boolean;
|
|
3034
|
+
}): Promise<any>;
|
|
2829
3035
|
songRegistration(params?: {
|
|
2830
3036
|
iswc_status?: "missing" | "present" | "all";
|
|
2831
3037
|
work_ids?: string[];
|
|
@@ -3013,11 +3219,33 @@ interface ImportResult {
|
|
|
3013
3219
|
errors: Array<{
|
|
3014
3220
|
row: number;
|
|
3015
3221
|
field: string;
|
|
3016
|
-
message
|
|
3222
|
+
/** The server's ValidationError carries the text in `error`; `message`
|
|
3223
|
+
* is kept for callers that normalised it. Read `error ?? message`. */
|
|
3224
|
+
error?: string;
|
|
3225
|
+
message?: string;
|
|
3226
|
+
/** "error" = the row did not land; "warning" = skipped duplicate etc. */
|
|
3017
3227
|
severity: string;
|
|
3018
3228
|
}>;
|
|
3019
3229
|
summary: string;
|
|
3020
3230
|
dryRun: boolean;
|
|
3231
|
+
/**
|
|
3232
|
+
* True when a LIVE run wrote rows AND some rows failed with severity
|
|
3233
|
+
* "error" (a batch import is not transactional — the written rows are
|
|
3234
|
+
* committed). Set by POST /admin/import/execute; false for a clean run,
|
|
3235
|
+
* a dry run, or a run whose only "errors" are warnings.
|
|
3236
|
+
*/
|
|
3237
|
+
partial?: boolean;
|
|
3238
|
+
/**
|
|
3239
|
+
* Which slice of the file this call imported (ADR-314). `nextOffset` is
|
|
3240
|
+
* the `rowOffset` to pass next, or null when the file is done.
|
|
3241
|
+
*/
|
|
3242
|
+
rowRange?: {
|
|
3243
|
+
offset: number;
|
|
3244
|
+
limit: number;
|
|
3245
|
+
count: number;
|
|
3246
|
+
totalRowsInFile: number;
|
|
3247
|
+
nextOffset: number | null;
|
|
3248
|
+
};
|
|
3021
3249
|
}
|
|
3022
3250
|
/**
|
|
3023
3251
|
* Source of CSV content — exactly one must be provided:
|
|
@@ -3072,6 +3300,14 @@ declare class ImportResource extends BaseResource {
|
|
|
3072
3300
|
dryRun?: boolean;
|
|
3073
3301
|
skipInvalidRows?: boolean;
|
|
3074
3302
|
batchSize?: number;
|
|
3303
|
+
/** "skip" (server default): a row that trips a unique constraint
|
|
3304
|
+
* becomes a warning, the rest of its batch still lands.
|
|
3305
|
+
* "error": one collision fails the whole batch. */
|
|
3306
|
+
conflictStrategy?: "skip" | "error";
|
|
3307
|
+
/** First data row to import, 0-based (default 0). ADR-314 cursor. */
|
|
3308
|
+
rowOffset?: number;
|
|
3309
|
+
/** Rows to import in this call (server default 2,000, max 10,000). */
|
|
3310
|
+
rowLimit?: number;
|
|
3075
3311
|
};
|
|
3076
3312
|
}): Promise<ImportResult>;
|
|
3077
3313
|
getFields(domain: ImportDomain): Promise<Array<{
|
|
@@ -3304,7 +3540,11 @@ declare class CollaboratorsResource extends BaseResource {
|
|
|
3304
3540
|
}>>;
|
|
3305
3541
|
/**
|
|
3306
3542
|
* ADR-157 warm path — accept an invite addressed to the authenticated
|
|
3307
|
-
* user
|
|
3543
|
+
* user, and flip its status to confirmed. The credit write is
|
|
3544
|
+
* grain-routed (ADR-265): a composition-grain invite writes
|
|
3545
|
+
* work_collaborators, a master/owner-grain invite attests the person's
|
|
3546
|
+
* pending recording_credits. ADR-252 WS-A dropped work_credits at
|
|
3547
|
+
* DB-M3, so no row is written there.
|
|
3308
3548
|
*/
|
|
3309
3549
|
accept(inviteId: string): Promise<Record<string, unknown>>;
|
|
3310
3550
|
/**
|
|
@@ -3670,9 +3910,14 @@ declare class RecordingCreditsResource extends BaseResource {
|
|
|
3670
3910
|
*/
|
|
3671
3911
|
atomicAdd(recordingId: string, input: RecordingCreditCreateInput): Promise<AtomicCreditResult>;
|
|
3672
3912
|
/**
|
|
3673
|
-
* ADR-232 atomic remove —
|
|
3674
|
-
*
|
|
3675
|
-
*
|
|
3913
|
+
* ADR-232 atomic remove — the route returns 403 INSUFFICIENT_SCOPE on a
|
|
3914
|
+
* 0-row delete. AC-2 strict semantics for pica_credit_remove.
|
|
3915
|
+
*
|
|
3916
|
+
* As of 2026-08-24 that is the route's behaviour for every caller, flagged
|
|
3917
|
+
* or not; `?atomic=1` is kept only so an older published server keeps
|
|
3918
|
+
* working, and is accepted-and-ignored server-side. **Remove when
|
|
3919
|
+
* `@withpica/mcp-server` 2.96.0 ships (the alias-removal release)**, together
|
|
3920
|
+
* with the route's param handling — the two must go in the same release.
|
|
3676
3921
|
*/
|
|
3677
3922
|
atomicRemove(recordingId: string, creditId: string): Promise<AtomicCreditResult>;
|
|
3678
3923
|
/**
|
|
@@ -4173,6 +4418,17 @@ declare class ShareLinksResource extends BaseResource {
|
|
|
4173
4418
|
*/
|
|
4174
4419
|
delete(id: string): Promise<any>;
|
|
4175
4420
|
}
|
|
4421
|
+
/**
|
|
4422
|
+
* ADR-300 — the read side of the ADR-292 consent ledger. Read-only by
|
|
4423
|
+
* design: consent WRITES stay human-session only (the per-subject consent
|
|
4424
|
+
* routes refuse Bearer callers), so there is deliberately no write method
|
|
4425
|
+
* on this resource.
|
|
4426
|
+
*/
|
|
4427
|
+
declare class ConsentResource extends BaseResource {
|
|
4428
|
+
readiness(params?: {
|
|
4429
|
+
limit?: number;
|
|
4430
|
+
}): Promise<any>;
|
|
4431
|
+
}
|
|
4176
4432
|
declare class CustodyResource extends BaseResource {
|
|
4177
4433
|
claim(body: {
|
|
4178
4434
|
work_id: string;
|
|
@@ -4407,6 +4663,7 @@ export declare class PicaClient {
|
|
|
4407
4663
|
recordings: RecordingsResource;
|
|
4408
4664
|
licensing: LicensingResource;
|
|
4409
4665
|
bookings: BookingsResource;
|
|
4666
|
+
shows: ShowsResource;
|
|
4410
4667
|
credits: CreditsResource;
|
|
4411
4668
|
creditsBalance: CreditsBalanceResource;
|
|
4412
4669
|
picaScore: PicaScoreResource;
|
|
@@ -4461,6 +4718,7 @@ export declare class PicaClient {
|
|
|
4461
4718
|
royalties: RoyaltiesResource;
|
|
4462
4719
|
statements: StatementsResource;
|
|
4463
4720
|
shareLinks: ShareLinksResource;
|
|
4721
|
+
consent: ConsentResource;
|
|
4464
4722
|
custody: CustodyResource;
|
|
4465
4723
|
recordingCustody: RecordingCustodyResource;
|
|
4466
4724
|
recordingSamples: RecordingSamplesResource;
|