@withpica/mcp-sdk 3.21.0 → 3.22.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 CHANGED
@@ -11,6 +11,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [3.22.0] - 2026-09-30
15
+
16
+ ### Added
17
+
18
+ - `integrity.waive` accepts `kind` (`not_applicable` | `restricted`) for the
19
+ platform-presence codes `PLATFORM_SPOTIFY` / `PLATFORM_YOUTUBE` /
20
+ `PLATFORM_APPLE_MUSIC`, and returns the work's re-scored `completeness`
21
+ for them; `integrity.revokeWaiver` now returns the route's answer
22
+ (`{ id, revoked, completeness? }`) instead of `void`.
23
+ - `PlatformWaiverCode` / `PlatformWaiverKind` types; `IntegrityGapCode` gains
24
+ `WORK_NO_MASTER`, `WORK_SPLITS_ABSENT`, `WORK_SPLITS_INVALID`.
25
+
26
+ ### Deprecated
27
+
28
+ - `Work.is_verified` is now optional and deprecated. `works` has no such
29
+ column (no applied migration adds one), so works responses do not carry it;
30
+ PICA keeps no work-level verified flag. Remove at the next major, with
31
+ `works.verify`.
32
+ - `rights.statements()`, `rights.statement(incomeId)`, `rights.recordIncome(body)`,
33
+ `rights.societyChecks(workId)` and `rights.measures()` — ADR-321 Phase 3
34
+ (distribution, computed and not paid), over `GET/POST /admin/rights-income`,
35
+ `GET /admin/rights-income/{id}`, `GET /admin/rights-statements/society` and
36
+ `GET /admin/rights-statements/measures`. All need finance access.
37
+
14
38
  ## [3.21.0] - 2026-09-29
15
39
 
16
40
  ### Added
package/dist/index.d.ts CHANGED
@@ -306,7 +306,13 @@ interface Work {
306
306
  isrc?: string;
307
307
  primary_artist?: string;
308
308
  duration_seconds?: number;
309
- is_verified: boolean;
309
+ /**
310
+ * @deprecated `works` has no `is_verified` column (no applied migration
311
+ * adds one), so works responses do not carry this field. PICA keeps no
312
+ * work-level verified flag (see `WorksResource.verify`). Kept only so the
313
+ * published SDK's surface does not break; remove at the next major.
314
+ */
315
+ is_verified?: boolean;
310
316
  lyrics?: string;
311
317
  genre?: string;
312
318
  mood?: string;
@@ -1478,7 +1484,14 @@ declare class PicaScoreResource extends BaseResource {
1478
1484
  * exported shapes (the SDK does not import from `lib/`, mcp<->lib
1479
1485
  * isolation). Keep in sync by hand if the service's exported types change.
1480
1486
  */
1481
- export type IntegrityGapCode = "WORK_NO_RECORDING" | "RECORDING_NO_WORK" | "RECORDING_NO_RELEASE" | "WORK_NO_WRITER" | "RECORDING_NO_OWNER" | "COLLABORATOR_NOT_INVITED" | "COLLABORATOR_NOT_ATTESTED";
1487
+ export type IntegrityGapCode = "WORK_NO_RECORDING" | "RECORDING_NO_WORK" | "RECORDING_NO_RELEASE" | "WORK_NO_WRITER" | "RECORDING_NO_OWNER" | "COLLABORATOR_NOT_INVITED" | "COLLABORATOR_NOT_ATTESTED" | "WORK_NO_MASTER" | "WORK_SPLITS_ABSENT" | "WORK_SPLITS_INVALID";
1488
+ /**
1489
+ * Platform-presence codes a work may be waived on (mig 20260929163712):
1490
+ * the platform is not applicable to it, or restricted. Identifiers and
1491
+ * registrations are never waivable.
1492
+ */
1493
+ export type PlatformWaiverCode = "PLATFORM_SPOTIFY" | "PLATFORM_YOUTUBE" | "PLATFORM_APPLE_MUSIC";
1494
+ export type PlatformWaiverKind = "not_applicable" | "restricted";
1482
1495
  export type IntegrityEntityType = "work" | "recording" | "release" | "person";
1483
1496
  export interface AttestationProposal {
1484
1497
  kind: "send_attestation_invites";
@@ -1539,11 +1552,28 @@ declare class IntegrityResource extends BaseResource {
1539
1552
  entity_type: string;
1540
1553
  entity_id: string;
1541
1554
  reason: string;
1555
+ /** Required for a platform code (PLATFORM_*); omitted otherwise. */
1556
+ kind?: PlatformWaiverKind;
1542
1557
  }): Promise<{
1543
1558
  id: string;
1559
+ kind?: PlatformWaiverKind;
1560
+ completeness?: {
1561
+ score: number | null;
1562
+ platforms: number | null;
1563
+ };
1564
+ }>;
1565
+ /**
1566
+ * PATCH /admin/integrity/waivers { waiver_id, revoke: true }. No un-revoke
1567
+ * path. A platform waiver answers with the work's re-scored `completeness`.
1568
+ */
1569
+ revokeWaiver(waiverId: string): Promise<{
1570
+ id: string;
1571
+ revoked: boolean;
1572
+ completeness?: {
1573
+ score: number | null;
1574
+ platforms: number | null;
1575
+ };
1544
1576
  }>;
1545
- /** PATCH /admin/integrity/waivers { waiver_id, revoke: true }. No un-revoke path. */
1546
- revokeWaiver(waiverId: string): Promise<void>;
1547
1577
  }
1548
1578
  interface PresignedUploadResult {
1549
1579
  uploadUrl: string;
@@ -4728,6 +4758,28 @@ declare class RightsResource extends BaseResource {
4728
4758
  status(ruleId: string): Promise<any>;
4729
4759
  /** GET /admin/works/{id}/rights — every rule on a song, history, holds. */
4730
4760
  inspect(workId: string): Promise<any>;
4761
+ /**
4762
+ * ADR-321 Phase 3 — GET /admin/rights-income. Statements: direct income
4763
+ * and what it WOULD pay (no money moves). Needs finance access.
4764
+ */
4765
+ statements(params?: {
4766
+ workId?: string;
4767
+ limit?: number;
4768
+ before?: string;
4769
+ }): Promise<any>;
4770
+ /** GET /admin/rights-income/{id} — one income event, recomputed now. */
4771
+ statement(incomeId: string): Promise<any>;
4772
+ /**
4773
+ * POST /admin/rights-income — record direct income. Body is
4774
+ * `{ work_id, side, recording_id?, income_type, fee_kind, currency,
4775
+ * amount: "1250.00", earned_on, description? }` or
4776
+ * `{ enquiry_id, side, recording_id?, earned_on }`.
4777
+ */
4778
+ recordIncome(body: Record<string, unknown>): Promise<any>;
4779
+ /** GET /admin/rights-statements/society?work_id= — society statements checked against the split. */
4780
+ societyChecks(workId: string): Promise<any>;
4781
+ /** GET /admin/rights-statements/measures — the four measures (ADR-321 §7a). */
4782
+ measures(): Promise<any>;
4731
4783
  }
4732
4784
  declare class RoyaltiesResource extends BaseResource {
4733
4785
  payments(params?: {