@withpica/mcp-sdk 3.3.1 → 3.5.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 +21 -0
- package/dist/index.d.ts +83 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -28
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [3.5.0] - 2026-07-07
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `catalogStats()` accepts an optional `{ entity, group_by }` argument and
|
|
19
|
+
serialises it to the query string, powering the Oracle aggregation on
|
|
20
|
+
`pica_catalog_stats` (one-dimension breakdowns + entity totals). Overloaded so
|
|
21
|
+
a no-arg call still returns the precise `CatalogStats` envelope type; a call
|
|
22
|
+
with params returns the widened breakdown shape. Backward-compatible — the
|
|
23
|
+
no-arg request is byte-identical to before.
|
|
24
|
+
|
|
25
|
+
## [3.4.0] - 2026-07-06
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- `recordings.search()` now delegates a text `query` to the server-side unified
|
|
30
|
+
search endpoint (`GET /admin/recordings/search`) instead of fetching up to 200
|
|
31
|
+
rows and filtering client-side on `title`/`isrc` only. Recordings are now
|
|
32
|
+
findable by `artist_name` (and without the 200-row ceiling). The no-query path
|
|
33
|
+
(structured/score filters) is unchanged.
|
|
34
|
+
|
|
14
35
|
## [3.3.1] - 2026-07-04
|
|
15
36
|
|
|
16
37
|
### Removed
|
package/dist/index.d.ts
CHANGED
|
@@ -854,6 +854,40 @@ declare class WorksResource extends BaseResource {
|
|
|
854
854
|
sort?: "completeness_score:asc" | "completeness_score:desc" | "missing_field_count:asc" | "missing_field_count:desc" | "streaming_activity:asc" | "streaming_activity:desc";
|
|
855
855
|
/** Filter to works registered with a collection society (case-insensitive code, e.g. 'ASCAP', 'PRS', 'GEMA'). */
|
|
856
856
|
society_code?: string;
|
|
857
|
+
/** Filter by work type (song, instrumental, library, demo, sample). */
|
|
858
|
+
work_type?: string;
|
|
859
|
+
/** Filter by work status (demo, unreleased, released, pitched, placed, archived). */
|
|
860
|
+
work_status?: string;
|
|
861
|
+
/** Filter to works tagged with this genre (case-sensitive array-contains). */
|
|
862
|
+
genre?: string;
|
|
863
|
+
/** Filter to works whose primary recording carries this mood tag. */
|
|
864
|
+
mood?: string;
|
|
865
|
+
/** Filter to works whose primary recording tempo is >= this BPM. */
|
|
866
|
+
tempo_min?: number;
|
|
867
|
+
/** Filter to works whose primary recording tempo is <= this BPM. */
|
|
868
|
+
tempo_max?: number;
|
|
869
|
+
/** Exact primary-artist name match. */
|
|
870
|
+
primary_artist?: string;
|
|
871
|
+
/** Exact primary-artist name match (alias of primary_artist). */
|
|
872
|
+
artist?: string;
|
|
873
|
+
/** Filter by derived label (primary recording label, else primary release parent_label). */
|
|
874
|
+
label?: string;
|
|
875
|
+
/** Filter to works available (true) / not available (false) for licensing. */
|
|
876
|
+
available_for_licensing?: boolean;
|
|
877
|
+
/** Filter by the primary release's format (single, ep, album, compilation). */
|
|
878
|
+
release_format?: string;
|
|
879
|
+
/** Filter to featured (true) / non-featured (false) works. */
|
|
880
|
+
is_featured?: boolean;
|
|
881
|
+
/** Filter by directory-published state. */
|
|
882
|
+
published?: boolean;
|
|
883
|
+
/** Only works added/composed on or after this ISO date (YYYY-MM-DD). */
|
|
884
|
+
created_from?: string;
|
|
885
|
+
/** Only works added/composed on or before this ISO date (YYYY-MM-DD). */
|
|
886
|
+
created_to?: string;
|
|
887
|
+
/** Filter to works that have (true) or lack (false) an ISWC. */
|
|
888
|
+
has_iswc?: boolean;
|
|
889
|
+
/** Filter to works that have (true) or lack (false) a publisher_name. */
|
|
890
|
+
has_publisher?: boolean;
|
|
857
891
|
}): Promise<PaginatedResult<Work>>;
|
|
858
892
|
get(id: string): Promise<Work>;
|
|
859
893
|
create(data: Partial<Work>): Promise<Work>;
|
|
@@ -960,6 +994,14 @@ declare class PeopleResource extends BaseResource {
|
|
|
960
994
|
record_kind?: "individual" | "placeholder" | "artefact";
|
|
961
995
|
/** Filter by outreach readiness. */
|
|
962
996
|
outreach_state?: "ready" | "needs_email" | "needs_disambiguation" | "not_a_target" | "do_not_contact" | "previously_declined";
|
|
997
|
+
/** Filter to people who have (true) / lack (false) an email address. */
|
|
998
|
+
has_email?: boolean;
|
|
999
|
+
/** Filter to people who have (true) / lack (false) a phone number. */
|
|
1000
|
+
has_phone?: boolean;
|
|
1001
|
+
/** Filter to people holding ANY of these roles (array-overlap). */
|
|
1002
|
+
roles?: string[];
|
|
1003
|
+
/** Filter to people carrying ANY of these tags (array-overlap). */
|
|
1004
|
+
tags?: string[];
|
|
963
1005
|
}): Promise<PaginatedResult<Person>>;
|
|
964
1006
|
get(id: string): Promise<Person>;
|
|
965
1007
|
create(data: Partial<Person>): Promise<Person>;
|
|
@@ -1273,6 +1315,18 @@ declare class AgreementsResource extends BaseResource {
|
|
|
1273
1315
|
* the hood.
|
|
1274
1316
|
*/
|
|
1275
1317
|
awaiting_signature?: boolean;
|
|
1318
|
+
/** Agreements with start_date on/after this ISO date (YYYY-MM-DD). */
|
|
1319
|
+
start_date_from?: string;
|
|
1320
|
+
/** Agreements with start_date on/before this ISO date. */
|
|
1321
|
+
start_date_to?: string;
|
|
1322
|
+
/** Agreements with end_date on/after this ISO date. */
|
|
1323
|
+
end_date_from?: string;
|
|
1324
|
+
/** Agreements with end_date on/before this ISO date. */
|
|
1325
|
+
end_date_to?: string;
|
|
1326
|
+
/** Active agreements whose end_date falls within N days from today. */
|
|
1327
|
+
expiring_within_days?: number;
|
|
1328
|
+
/** true → only agreements that have an end_date; false → only open-ended. */
|
|
1329
|
+
has_end_date?: boolean;
|
|
1276
1330
|
limit?: number;
|
|
1277
1331
|
offset?: number;
|
|
1278
1332
|
}): Promise<Agreement[]>;
|
|
@@ -1467,8 +1521,17 @@ declare class RecordingsResource extends BaseResource {
|
|
|
1467
1521
|
limit?: number;
|
|
1468
1522
|
}): Promise<Recording[]>;
|
|
1469
1523
|
/**
|
|
1470
|
-
* Search recordings.
|
|
1471
|
-
*
|
|
1524
|
+
* Search recordings. A text `query` delegates to the server-side unified
|
|
1525
|
+
* catalog matcher (`GET /admin/recordings/search`, backed by
|
|
1526
|
+
* `chainService.searchFlat`) which matches title + artist_name + isrc —
|
|
1527
|
+
* replacing the old fetch-200-and-filter-client-side-on-title/isrc
|
|
1528
|
+
* approach, which both capped results at 200 rows and never matched on
|
|
1529
|
+
* artist_name (e.g. a query for an artist whose name doesn't appear in
|
|
1530
|
+
* the recording title, like "gwazai" against `artist_name: 'Gwazai'`,
|
|
1531
|
+
* returned zero results).
|
|
1532
|
+
*
|
|
1533
|
+
* Without a `query`, behaviour is unchanged: forward filter/sort params
|
|
1534
|
+
* to the plain list route.
|
|
1472
1535
|
*
|
|
1473
1536
|
* ADR-270 Phase (b): sort, streaming_activity_gt, streaming_activity_lt
|
|
1474
1537
|
* are forwarded as query params to the server-side filter/sort path.
|
|
@@ -1487,6 +1550,18 @@ declare class RecordingsResource extends BaseResource {
|
|
|
1487
1550
|
missing_field_count_gt?: number;
|
|
1488
1551
|
/** ADR-270 §3.4 — filter: missing_field_count strictly less than this */
|
|
1489
1552
|
missing_field_count_lt?: number;
|
|
1553
|
+
/** Structured Recall — filter to recordings with (true) or without (false) an ISRC */
|
|
1554
|
+
has_isrc?: boolean;
|
|
1555
|
+
/** Structured Recall — filter by version type */
|
|
1556
|
+
version_type?: string;
|
|
1557
|
+
/** Structured Recall — inclusive ISO date range on recordings.recorded_at */
|
|
1558
|
+
recorded_from?: string;
|
|
1559
|
+
/** Structured Recall — inclusive ISO date range on recordings.recorded_at */
|
|
1560
|
+
recorded_to?: string;
|
|
1561
|
+
/** Structured Recall — inclusive ISO date range on recordings.created_at */
|
|
1562
|
+
created_from?: string;
|
|
1563
|
+
/** Structured Recall — inclusive ISO date range on recordings.created_at */
|
|
1564
|
+
created_to?: string;
|
|
1490
1565
|
}): Promise<PaginatedResult<Recording>>;
|
|
1491
1566
|
get(id: string): Promise<Recording>;
|
|
1492
1567
|
create(data: Partial<Recording>): Promise<Recording>;
|
|
@@ -3643,6 +3718,8 @@ declare class ReleasesResource extends BaseResource {
|
|
|
3643
3718
|
query?: string;
|
|
3644
3719
|
upc?: string;
|
|
3645
3720
|
spotify_album_id?: string;
|
|
3721
|
+
release_date_from?: string;
|
|
3722
|
+
release_date_to?: string;
|
|
3646
3723
|
}): Promise<any>;
|
|
3647
3724
|
get(id: string): Promise<any>;
|
|
3648
3725
|
/**
|
|
@@ -4202,6 +4279,10 @@ export declare class PicaClient {
|
|
|
4202
4279
|
* Get accurate catalog stats via SQL counts (no pagination limits)
|
|
4203
4280
|
*/
|
|
4204
4281
|
catalogStats(): Promise<CatalogStats>;
|
|
4282
|
+
catalogStats(params: {
|
|
4283
|
+
entity?: string;
|
|
4284
|
+
group_by?: string;
|
|
4285
|
+
}): Promise<CatalogStats | Record<string, unknown>>;
|
|
4205
4286
|
constructor(config: PicaClientConfig);
|
|
4206
4287
|
}
|
|
4207
4288
|
export type { Work, Person, Recording, PaginatedResult, PicaClientConfig, SyncSearchParams, SyncTrack, SyncSearchResult, LicenseEnquiryInput, LicenseEnquiry, BookingEnquiry, WorkCredit, WorkCreditsInput, PicaScore, PicaScorePillar, AudioFile, AudioAnalysisStatus, PresignedUploadResult, CompleteUploadResult, IdentifyResult, MultimediaItem, Agreement, AgreementWorkLink, CreateAgreementFromTemplateParams, AgreementSendForSignatureResult, AgreementSendForSignatureSentEntry, AgreementSendForSignatureSkippedEntry, AgreementSendForSignatureSkipReason, SyncPlacement, SyncPlacementSource, SyncPlacementRecording, SyncPlacementWithRelations, SyncPlacementContactInput, SyncPlacementRecordingInput, SyncPlacementSourceInput, CreateSyncPlacementInput, UpdateSyncPlacementInput, SyncPlacementQueryParams, SyncPlacementStatus, SyncPlacementVerificationStatus, SyncPlacementConfidentialityLevel, SyncPlacementSourceKind, CatalogStats, NotificationsSummary, CreateUploadSessionInput, CreateUploadSessionResult, };
|