@withpica/mcp-server 2.1.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/README.md +305 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/pica-sdk.d.ts +1162 -0
- package/dist/pica-sdk.d.ts.map +1 -0
- package/dist/pica-sdk.js +1371 -0
- package/dist/pica-sdk.js.map +1 -0
- package/dist/prompts/index.d.ts +78 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +513 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +64 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +310 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/llms-primer.d.ts +2 -0
- package/dist/resources/llms-primer.d.ts.map +1 -0
- package/dist/resources/llms-primer.js +67 -0
- package/dist/resources/llms-primer.js.map +1 -0
- package/dist/server.d.ts +27 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +140 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/agreement-types.d.ts +37 -0
- package/dist/tools/agreement-types.d.ts.map +1 -0
- package/dist/tools/agreement-types.js +579 -0
- package/dist/tools/agreement-types.js.map +1 -0
- package/dist/tools/agreements.d.ts +21 -0
- package/dist/tools/agreements.d.ts.map +1 -0
- package/dist/tools/agreements.js +328 -0
- package/dist/tools/agreements.js.map +1 -0
- package/dist/tools/analytics.d.ts +20 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +126 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/assets.d.ts +23 -0
- package/dist/tools/assets.d.ts.map +1 -0
- package/dist/tools/assets.js +220 -0
- package/dist/tools/assets.js.map +1 -0
- package/dist/tools/audio-files.d.ts +21 -0
- package/dist/tools/audio-files.d.ts.map +1 -0
- package/dist/tools/audio-files.js +358 -0
- package/dist/tools/audio-files.js.map +1 -0
- package/dist/tools/bulk.d.ts +16 -0
- package/dist/tools/bulk.d.ts.map +1 -0
- package/dist/tools/bulk.js +82 -0
- package/dist/tools/bulk.js.map +1 -0
- package/dist/tools/calendar.d.ts +15 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +69 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/collaborators.d.ts +17 -0
- package/dist/tools/collaborators.d.ts.map +1 -0
- package/dist/tools/collaborators.js +133 -0
- package/dist/tools/collaborators.js.map +1 -0
- package/dist/tools/comparisons.d.ts +22 -0
- package/dist/tools/comparisons.d.ts.map +1 -0
- package/dist/tools/comparisons.js +86 -0
- package/dist/tools/comparisons.js.map +1 -0
- package/dist/tools/credits.d.ts +17 -0
- package/dist/tools/credits.d.ts.map +1 -0
- package/dist/tools/credits.js +136 -0
- package/dist/tools/credits.js.map +1 -0
- package/dist/tools/dashboard.d.ts +20 -0
- package/dist/tools/dashboard.d.ts.map +1 -0
- package/dist/tools/dashboard.js +156 -0
- package/dist/tools/dashboard.js.map +1 -0
- package/dist/tools/directory.d.ts +15 -0
- package/dist/tools/directory.d.ts.map +1 -0
- package/dist/tools/directory.js +108 -0
- package/dist/tools/directory.js.map +1 -0
- package/dist/tools/disputes.d.ts +18 -0
- package/dist/tools/disputes.d.ts.map +1 -0
- package/dist/tools/disputes.js +66 -0
- package/dist/tools/disputes.js.map +1 -0
- package/dist/tools/documents.d.ts +15 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +38 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/duplicates.d.ts +16 -0
- package/dist/tools/duplicates.d.ts.map +1 -0
- package/dist/tools/duplicates.js +72 -0
- package/dist/tools/duplicates.js.map +1 -0
- package/dist/tools/enrichment.d.ts +23 -0
- package/dist/tools/enrichment.d.ts.map +1 -0
- package/dist/tools/enrichment.js +207 -0
- package/dist/tools/enrichment.js.map +1 -0
- package/dist/tools/exports.d.ts +19 -0
- package/dist/tools/exports.d.ts.map +1 -0
- package/dist/tools/exports.js +155 -0
- package/dist/tools/exports.js.map +1 -0
- package/dist/tools/health.d.ts +17 -0
- package/dist/tools/health.d.ts.map +1 -0
- package/dist/tools/health.js +69 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/import-documents.d.ts +21 -0
- package/dist/tools/import-documents.d.ts.map +1 -0
- package/dist/tools/import-documents.js +191 -0
- package/dist/tools/import-documents.js.map +1 -0
- package/dist/tools/import.d.ts +29 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +404 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +48 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +394 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/integrations.d.ts +15 -0
- package/dist/tools/integrations.d.ts.map +1 -0
- package/dist/tools/integrations.js +102 -0
- package/dist/tools/integrations.js.map +1 -0
- package/dist/tools/licensing.d.ts +40 -0
- package/dist/tools/licensing.d.ts.map +1 -0
- package/dist/tools/licensing.js +436 -0
- package/dist/tools/licensing.js.map +1 -0
- package/dist/tools/memory.d.ts +21 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +121 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/multimedia.d.ts +19 -0
- package/dist/tools/multimedia.d.ts.map +1 -0
- package/dist/tools/multimedia.js +293 -0
- package/dist/tools/multimedia.js.map +1 -0
- package/dist/tools/notes.d.ts +21 -0
- package/dist/tools/notes.d.ts.map +1 -0
- package/dist/tools/notes.js +126 -0
- package/dist/tools/notes.js.map +1 -0
- package/dist/tools/notifications.d.ts +17 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +117 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/people.d.ts +53 -0
- package/dist/tools/people.d.ts.map +1 -0
- package/dist/tools/people.js +534 -0
- package/dist/tools/people.js.map +1 -0
- package/dist/tools/pica-score.d.ts +15 -0
- package/dist/tools/pica-score.d.ts.map +1 -0
- package/dist/tools/pica-score.js +30 -0
- package/dist/tools/pica-score.js.map +1 -0
- package/dist/tools/projects.d.ts +19 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +142 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/purchases.d.ts +15 -0
- package/dist/tools/purchases.d.ts.map +1 -0
- package/dist/tools/purchases.js +65 -0
- package/dist/tools/purchases.js.map +1 -0
- package/dist/tools/recordings.d.ts +41 -0
- package/dist/tools/recordings.d.ts.map +1 -0
- package/dist/tools/recordings.js +293 -0
- package/dist/tools/recordings.js.map +1 -0
- package/dist/tools/registration.d.ts +16 -0
- package/dist/tools/registration.d.ts.map +1 -0
- package/dist/tools/registration.js +52 -0
- package/dist/tools/registration.js.map +1 -0
- package/dist/tools/releases.d.ts +18 -0
- package/dist/tools/releases.d.ts.map +1 -0
- package/dist/tools/releases.js +138 -0
- package/dist/tools/releases.js.map +1 -0
- package/dist/tools/royalties.d.ts +23 -0
- package/dist/tools/royalties.d.ts.map +1 -0
- package/dist/tools/royalties.js +263 -0
- package/dist/tools/royalties.js.map +1 -0
- package/dist/tools/search.d.ts +30 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +117 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/send.d.ts +18 -0
- package/dist/tools/send.d.ts.map +1 -0
- package/dist/tools/send.js +189 -0
- package/dist/tools/send.js.map +1 -0
- package/dist/tools/sessions.d.ts +18 -0
- package/dist/tools/sessions.d.ts.map +1 -0
- package/dist/tools/sessions.js +107 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/settings.d.ts +18 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +98 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/share-links.d.ts +19 -0
- package/dist/tools/share-links.d.ts.map +1 -0
- package/dist/tools/share-links.js +126 -0
- package/dist/tools/share-links.js.map +1 -0
- package/dist/tools/split-sheets.d.ts +24 -0
- package/dist/tools/split-sheets.d.ts.map +1 -0
- package/dist/tools/split-sheets.js +189 -0
- package/dist/tools/split-sheets.js.map +1 -0
- package/dist/tools/team.d.ts +22 -0
- package/dist/tools/team.d.ts.map +1 -0
- package/dist/tools/team.js +139 -0
- package/dist/tools/team.js.map +1 -0
- package/dist/tools/telegram.d.ts +20 -0
- package/dist/tools/telegram.d.ts.map +1 -0
- package/dist/tools/telegram.js +94 -0
- package/dist/tools/telegram.js.map +1 -0
- package/dist/tools/uploads.d.ts +17 -0
- package/dist/tools/uploads.d.ts.map +1 -0
- package/dist/tools/uploads.js +159 -0
- package/dist/tools/uploads.js.map +1 -0
- package/dist/tools/works.d.ts +53 -0
- package/dist/tools/works.d.ts.map +1 -0
- package/dist/tools/works.js +517 -0
- package/dist/tools/works.js.map +1 -0
- package/dist/utils/credit-gate.d.ts +17 -0
- package/dist/utils/credit-gate.d.ts.map +1 -0
- package/dist/utils/credit-gate.js +111 -0
- package/dist/utils/credit-gate.js.map +1 -0
- package/dist/utils/errors.d.ts +29 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +114 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/formatting.d.ts +63 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +130 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/mpp.d.ts +78 -0
- package/dist/utils/mpp.d.ts.map +1 -0
- package/dist/utils/mpp.js +136 -0
- package/dist/utils/mpp.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/tools/registration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,OAAO,iBAAiB;IACpB,IAAI,CAAa;IAEzB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,4BAA4B;oBAClC,WAAW,EACT,0GAA0G;wBAC1G,sHAAsH;oBACxH,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/C;YACD;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EACT,iHAAiH;oBACnH,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8CAA8C;6BAC5D;yBACF;wBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;qBACtB;iBACF;gBACD,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;aACjD;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,KAA0B;QAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC1D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,IAAyB;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAC9D,IAAI,CAAC,OAAO,CACb,CAAC;QACF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Releases Tools — manage releases (albums, EPs, singles with release dates, labels, and UPCs)
|
|
3
|
+
*/
|
|
4
|
+
import { PicaClient } from "../pica-sdk.js";
|
|
5
|
+
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
6
|
+
export declare class ReleasesTools {
|
|
7
|
+
private pica;
|
|
8
|
+
constructor(pica: PicaClient);
|
|
9
|
+
getTools(): Array<{
|
|
10
|
+
definition: ToolDefinition;
|
|
11
|
+
executor: ToolExecutor;
|
|
12
|
+
}>;
|
|
13
|
+
private listReleases;
|
|
14
|
+
private getRelease;
|
|
15
|
+
private createRelease;
|
|
16
|
+
private updateRelease;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=releases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YA8G3D,YAAY;YAQZ,UAAU;YAKV,aAAa;YAMb,aAAa;CAK5B"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Releases Tools — manage releases (albums, EPs, singles with release dates, labels, and UPCs)
|
|
3
|
+
*/
|
|
4
|
+
import { formatSuccess, formatStructuredList } from "../utils/formatting.js";
|
|
5
|
+
export class ReleasesTools {
|
|
6
|
+
pica;
|
|
7
|
+
constructor(pica) {
|
|
8
|
+
this.pica = pica;
|
|
9
|
+
}
|
|
10
|
+
getTools() {
|
|
11
|
+
return [
|
|
12
|
+
{
|
|
13
|
+
definition: {
|
|
14
|
+
name: "pica_releases_list",
|
|
15
|
+
description: "List releases — albums, EPs, and singles with release dates, labels, and UPCs.",
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {
|
|
19
|
+
limit: {
|
|
20
|
+
type: "number",
|
|
21
|
+
description: "Max results to return (default 50)",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
executor: this.listReleases.bind(this),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
definition: {
|
|
30
|
+
name: "pica_releases_get",
|
|
31
|
+
description: "Get release details including tracks.",
|
|
32
|
+
inputSchema: {
|
|
33
|
+
type: "object",
|
|
34
|
+
properties: {
|
|
35
|
+
id: { type: "string", description: "Release ID" },
|
|
36
|
+
},
|
|
37
|
+
required: ["id"],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
executor: this.getRelease.bind(this),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
definition: {
|
|
44
|
+
name: "pica_releases_create",
|
|
45
|
+
description: "Create a new release — set the title, date, format, label, and UPC.",
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: "object",
|
|
48
|
+
properties: {
|
|
49
|
+
title: {
|
|
50
|
+
type: "string",
|
|
51
|
+
description: "Release title",
|
|
52
|
+
},
|
|
53
|
+
release_date: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "Release date (YYYY-MM-DD)",
|
|
56
|
+
},
|
|
57
|
+
format: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "Release format (e.g. album, ep, single)",
|
|
60
|
+
},
|
|
61
|
+
upc: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: "Universal Product Code (UPC/EAN barcode)",
|
|
64
|
+
},
|
|
65
|
+
label: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "Record label name",
|
|
68
|
+
},
|
|
69
|
+
catalog_number: {
|
|
70
|
+
type: "string",
|
|
71
|
+
description: "Label catalog number",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
required: ["title"],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
executor: this.createRelease.bind(this),
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
definition: {
|
|
81
|
+
name: "pica_releases_update",
|
|
82
|
+
description: "Update release details — title, date, format, label, UPC, or catalog number.",
|
|
83
|
+
inputSchema: {
|
|
84
|
+
type: "object",
|
|
85
|
+
properties: {
|
|
86
|
+
id: { type: "string", description: "Release ID" },
|
|
87
|
+
title: { type: "string", description: "Updated title" },
|
|
88
|
+
release_date: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: "Updated release date (YYYY-MM-DD)",
|
|
91
|
+
},
|
|
92
|
+
format: {
|
|
93
|
+
type: "string",
|
|
94
|
+
description: "Updated format",
|
|
95
|
+
},
|
|
96
|
+
upc: {
|
|
97
|
+
type: "string",
|
|
98
|
+
description: "Updated UPC",
|
|
99
|
+
},
|
|
100
|
+
label: {
|
|
101
|
+
type: "string",
|
|
102
|
+
description: "Updated label",
|
|
103
|
+
},
|
|
104
|
+
catalog_number: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "Updated catalog number",
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
required: ["id"],
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
executor: this.updateRelease.bind(this),
|
|
113
|
+
},
|
|
114
|
+
];
|
|
115
|
+
}
|
|
116
|
+
async listReleases(args) {
|
|
117
|
+
const result = await this.pica.releases.list({
|
|
118
|
+
limit: args.limit,
|
|
119
|
+
});
|
|
120
|
+
const releases = Array.isArray(result) ? result : [];
|
|
121
|
+
return formatStructuredList(releases, "release");
|
|
122
|
+
}
|
|
123
|
+
async getRelease(args) {
|
|
124
|
+
const release = await this.pica.releases.get(args.id);
|
|
125
|
+
return formatSuccess("Release retrieved", release);
|
|
126
|
+
}
|
|
127
|
+
async createRelease(args) {
|
|
128
|
+
const { id, ...data } = args;
|
|
129
|
+
const release = await this.pica.releases.create(data);
|
|
130
|
+
return formatSuccess("Release created", release);
|
|
131
|
+
}
|
|
132
|
+
async updateRelease(args) {
|
|
133
|
+
const { id, ...updates } = args;
|
|
134
|
+
const release = await this.pica.releases.update(id, updates);
|
|
135
|
+
return formatSuccess("Release updated", release);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=releases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Royalties & Statements MCP Tools — ADR-139 Step 2
|
|
3
|
+
*
|
|
4
|
+
* Un-cuts the royalty data layer that was archived in the March 2026
|
|
5
|
+
* UI simplification. The API routes and services still exist — these
|
|
6
|
+
* tools expose them to AI assistants.
|
|
7
|
+
*/
|
|
8
|
+
import { PicaClient } from "../pica-sdk.js";
|
|
9
|
+
import type { ToolDefinition, ToolExecutor } from "./index.js";
|
|
10
|
+
export declare class RoyaltiesTools {
|
|
11
|
+
private pica;
|
|
12
|
+
constructor(pica: PicaClient);
|
|
13
|
+
getTools(): Array<{
|
|
14
|
+
definition: ToolDefinition;
|
|
15
|
+
executor: ToolExecutor;
|
|
16
|
+
}>;
|
|
17
|
+
private listPayments;
|
|
18
|
+
private getEarnings;
|
|
19
|
+
private getGaps;
|
|
20
|
+
private listStatements;
|
|
21
|
+
private getStatement;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=royalties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"royalties.d.ts","sourceRoot":"","sources":["../../src/tools/royalties.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAO3E,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAsL3D,YAAY;YA2BZ,WAAW;YAWX,OAAO;YAkCP,cAAc;YAiBd,YAAY;CAW3B"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Royalties & Statements MCP Tools — ADR-139 Step 2
|
|
3
|
+
*
|
|
4
|
+
* Un-cuts the royalty data layer that was archived in the March 2026
|
|
5
|
+
* UI simplification. The API routes and services still exist — these
|
|
6
|
+
* tools expose them to AI assistants.
|
|
7
|
+
*/
|
|
8
|
+
import { formatSuccess, formatAsText, } from "../utils/formatting.js";
|
|
9
|
+
export class RoyaltiesTools {
|
|
10
|
+
pica;
|
|
11
|
+
constructor(pica) {
|
|
12
|
+
this.pica = pica;
|
|
13
|
+
}
|
|
14
|
+
getTools() {
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
definition: {
|
|
18
|
+
name: "pica_royalties_list",
|
|
19
|
+
description: "List royalty payment records with optional filters. " +
|
|
20
|
+
"Returns individual payment entries from imported statements.",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
source: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Filter by payment source: prs, ppl, mcps, ascap, bmi, sesac, " +
|
|
27
|
+
"spotify, apple_music, youtube, distrokid, tunecore, cdbaby, etc.",
|
|
28
|
+
},
|
|
29
|
+
work_id: {
|
|
30
|
+
type: "string",
|
|
31
|
+
description: "Filter by work ID (UUID)",
|
|
32
|
+
},
|
|
33
|
+
from_date: {
|
|
34
|
+
type: "string",
|
|
35
|
+
description: "Filter payments from date (ISO format YYYY-MM-DD)",
|
|
36
|
+
},
|
|
37
|
+
to_date: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: "Filter payments to date (ISO format YYYY-MM-DD)",
|
|
40
|
+
},
|
|
41
|
+
limit: {
|
|
42
|
+
type: "number",
|
|
43
|
+
description: "Number of results (default 50, max 100)",
|
|
44
|
+
},
|
|
45
|
+
offset: {
|
|
46
|
+
type: "number",
|
|
47
|
+
description: "Pagination offset (default 0)",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
executor: this.listPayments.bind(this),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
definition: {
|
|
56
|
+
name: "pica_royalties_get",
|
|
57
|
+
description: "Get detailed earnings summary with breakdown by source and tax category. " +
|
|
58
|
+
"Includes recent payment records and pagination. " +
|
|
59
|
+
"Use this for questions like 'how much did I earn?' or 'what are my earnings?'.",
|
|
60
|
+
inputSchema: {
|
|
61
|
+
type: "object",
|
|
62
|
+
properties: {
|
|
63
|
+
start_date: {
|
|
64
|
+
type: "string",
|
|
65
|
+
description: "Filter from date (ISO format YYYY-MM-DD)",
|
|
66
|
+
},
|
|
67
|
+
end_date: {
|
|
68
|
+
type: "string",
|
|
69
|
+
description: "Filter to date (ISO format YYYY-MM-DD)",
|
|
70
|
+
},
|
|
71
|
+
source: {
|
|
72
|
+
type: "string",
|
|
73
|
+
description: "Filter by source (prs, ppl, spotify, etc.)",
|
|
74
|
+
},
|
|
75
|
+
limit: {
|
|
76
|
+
type: "number",
|
|
77
|
+
description: "Number of recent payments to return (default 50)",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
executor: this.getEarnings.bind(this),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
definition: {
|
|
86
|
+
name: "pica_royalties_summary",
|
|
87
|
+
description: "Get royalty gap analysis — identifies missing registrations, " +
|
|
88
|
+
"unlinked credits, and payment gaps. Answers questions like " +
|
|
89
|
+
"'what am I missing?' or 'where should I register?'.",
|
|
90
|
+
inputSchema: {
|
|
91
|
+
type: "object",
|
|
92
|
+
properties: {
|
|
93
|
+
priority: {
|
|
94
|
+
type: "string",
|
|
95
|
+
description: "Filter by priority: high, medium, low",
|
|
96
|
+
},
|
|
97
|
+
gap_type: {
|
|
98
|
+
type: "string",
|
|
99
|
+
description: "Filter by gap type: prs_missing, ppl_missing, mcps_missing, " +
|
|
100
|
+
"spotify_missing, isrc_missing, iswc_missing, tunecode_missing, " +
|
|
101
|
+
"payment_missing, credit_unlinked",
|
|
102
|
+
},
|
|
103
|
+
work_id: {
|
|
104
|
+
type: "string",
|
|
105
|
+
description: "Filter gaps for a specific work",
|
|
106
|
+
},
|
|
107
|
+
limit: {
|
|
108
|
+
type: "number",
|
|
109
|
+
description: "Number of gaps to return (default 20)",
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
executor: this.getGaps.bind(this),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
definition: {
|
|
118
|
+
name: "pica_statements_list",
|
|
119
|
+
description: "List past statement imports — shows which PRO/NRO statements " +
|
|
120
|
+
"have been imported and when. Supported sources: PRS, PPL, MCPS, " +
|
|
121
|
+
"ASCAP, BMI, SESAC, SoundExchange, SOCAN, APRA.",
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: "object",
|
|
124
|
+
properties: {
|
|
125
|
+
source: {
|
|
126
|
+
type: "string",
|
|
127
|
+
description: "Filter by source (prs, ppl, ascap, etc.)",
|
|
128
|
+
},
|
|
129
|
+
date_from: {
|
|
130
|
+
type: "string",
|
|
131
|
+
description: "Filter imports after this date (ISO format)",
|
|
132
|
+
},
|
|
133
|
+
date_to: {
|
|
134
|
+
type: "string",
|
|
135
|
+
description: "Filter imports before this date (ISO format)",
|
|
136
|
+
},
|
|
137
|
+
search: {
|
|
138
|
+
type: "string",
|
|
139
|
+
description: "Search by filename",
|
|
140
|
+
},
|
|
141
|
+
limit: {
|
|
142
|
+
type: "number",
|
|
143
|
+
description: "Number of results (default 20, max 50)",
|
|
144
|
+
},
|
|
145
|
+
offset: {
|
|
146
|
+
type: "number",
|
|
147
|
+
description: "Pagination offset",
|
|
148
|
+
},
|
|
149
|
+
sort: {
|
|
150
|
+
type: "string",
|
|
151
|
+
description: "Sort order: newest (default) or oldest",
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
executor: this.listStatements.bind(this),
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
definition: {
|
|
160
|
+
name: "pica_statements_get",
|
|
161
|
+
description: "Get details of a specific statement import batch, including " +
|
|
162
|
+
"line items with per-work/territory breakdowns.",
|
|
163
|
+
inputSchema: {
|
|
164
|
+
type: "object",
|
|
165
|
+
properties: {
|
|
166
|
+
batch_id: {
|
|
167
|
+
type: "string",
|
|
168
|
+
description: "The import batch ID (UUID)",
|
|
169
|
+
},
|
|
170
|
+
limit: {
|
|
171
|
+
type: "number",
|
|
172
|
+
description: "Number of line items to return (default 50, max 100)",
|
|
173
|
+
},
|
|
174
|
+
offset: {
|
|
175
|
+
type: "number",
|
|
176
|
+
description: "Pagination offset for line items",
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
required: ["batch_id"],
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
executor: this.getStatement.bind(this),
|
|
183
|
+
},
|
|
184
|
+
];
|
|
185
|
+
}
|
|
186
|
+
async listPayments(args) {
|
|
187
|
+
const data = await this.pica.royalties.payments({
|
|
188
|
+
source: args.source,
|
|
189
|
+
workId: args.work_id,
|
|
190
|
+
fromDate: args.from_date,
|
|
191
|
+
toDate: args.to_date,
|
|
192
|
+
limit: args.limit || 50,
|
|
193
|
+
offset: args.offset || 0,
|
|
194
|
+
});
|
|
195
|
+
const hints = [];
|
|
196
|
+
if (!data?.length) {
|
|
197
|
+
hints.push({
|
|
198
|
+
gap: "no_payments",
|
|
199
|
+
suggestion: "Import a royalty statement to start tracking earnings (upload a PRS/PPL/ASCAP CSV)",
|
|
200
|
+
severity: "important",
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return formatSuccess(`Found ${data?.length || 0} payment records`, data, hints);
|
|
204
|
+
}
|
|
205
|
+
async getEarnings(args) {
|
|
206
|
+
const data = await this.pica.royalties.earnings({
|
|
207
|
+
start_date: args.start_date,
|
|
208
|
+
end_date: args.end_date,
|
|
209
|
+
source: args.source,
|
|
210
|
+
limit: args.limit || 50,
|
|
211
|
+
});
|
|
212
|
+
return formatSuccess("Earnings summary", data);
|
|
213
|
+
}
|
|
214
|
+
async getGaps(args) {
|
|
215
|
+
const data = await this.pica.royalties.gaps({
|
|
216
|
+
priority: args.priority,
|
|
217
|
+
gapType: args.gap_type,
|
|
218
|
+
workId: args.work_id,
|
|
219
|
+
limit: args.limit || 20,
|
|
220
|
+
});
|
|
221
|
+
const hints = [];
|
|
222
|
+
const gaps = Array.isArray(data) ? data : [];
|
|
223
|
+
const prsGaps = gaps.filter((g) => g.gap_type === "prs_missing");
|
|
224
|
+
if (prsGaps.length > 0) {
|
|
225
|
+
hints.push({
|
|
226
|
+
gap: "prs_missing",
|
|
227
|
+
suggestion: `Register ${prsGaps.length} work(s) with PRS (pica_registration_coverage)`,
|
|
228
|
+
count: prsGaps.length,
|
|
229
|
+
severity: "critical",
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
const isrcGaps = gaps.filter((g) => g.gap_type === "isrc_missing");
|
|
233
|
+
if (isrcGaps.length > 0) {
|
|
234
|
+
hints.push({
|
|
235
|
+
gap: "isrc_missing",
|
|
236
|
+
suggestion: `Add ISRCs to ${isrcGaps.length} recording(s) for royalty tracking`,
|
|
237
|
+
count: isrcGaps.length,
|
|
238
|
+
severity: "important",
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
return formatSuccess(`Found ${gaps.length} royalty gaps`, data, hints);
|
|
242
|
+
}
|
|
243
|
+
async listStatements(args) {
|
|
244
|
+
const data = await this.pica.statements.history({
|
|
245
|
+
source: args.source,
|
|
246
|
+
dateFrom: args.date_from,
|
|
247
|
+
dateTo: args.date_to,
|
|
248
|
+
search: args.search,
|
|
249
|
+
limit: args.limit || 20,
|
|
250
|
+
offset: args.offset || 0,
|
|
251
|
+
sort: args.sort,
|
|
252
|
+
});
|
|
253
|
+
return formatSuccess(`Found ${data?.imports?.length || data?.total || 0} statement imports`, data);
|
|
254
|
+
}
|
|
255
|
+
async getStatement(args) {
|
|
256
|
+
if (!args.batch_id) {
|
|
257
|
+
return formatAsText({ error: "batch_id is required" });
|
|
258
|
+
}
|
|
259
|
+
const data = await this.pica.statements.get(args.batch_id);
|
|
260
|
+
return formatSuccess(`Statement batch: ${data?.sourceName || data?.source || "unknown"} — ${data?.lineItemCount || 0} line items`, data);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=royalties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"royalties.js","sourceRoot":"","sources":["../../src/tools/royalties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Tools - MCP tools for searching across all entities
|
|
3
|
+
*
|
|
4
|
+
* Uses the chain service for unified fuzzy search with pg_trgm across
|
|
5
|
+
* works, people, recordings, physical assets, audio files, and work sessions.
|
|
6
|
+
*/
|
|
7
|
+
import { PicaClient } from "../pica-sdk.js";
|
|
8
|
+
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
9
|
+
export declare class SearchTools {
|
|
10
|
+
private pica;
|
|
11
|
+
constructor(pica: PicaClient);
|
|
12
|
+
getTools(): Array<{
|
|
13
|
+
definition: ToolDefinition;
|
|
14
|
+
executor: ToolExecutor;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Unified search via chain service — single request, all entity types,
|
|
18
|
+
* fuzzy matching with pg_trgm, ranked by similarity.
|
|
19
|
+
*/
|
|
20
|
+
private searchAll;
|
|
21
|
+
/**
|
|
22
|
+
* Get catalog statistics (uses dedicated SQL count endpoint, no pagination limits)
|
|
23
|
+
*/
|
|
24
|
+
private getCatalogStats;
|
|
25
|
+
/**
|
|
26
|
+
* Traverse the global identity graph from any identifier
|
|
27
|
+
*/
|
|
28
|
+
private graphTraverse;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAsEzE;;;OAGG;YACW,SAAS;IASvB;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,aAAa;CAoB5B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Tools - MCP tools for searching across all entities
|
|
3
|
+
*
|
|
4
|
+
* Uses the chain service for unified fuzzy search with pg_trgm across
|
|
5
|
+
* works, people, recordings, physical assets, audio files, and work sessions.
|
|
6
|
+
*/
|
|
7
|
+
import { formatAsText, formatSuccess } from "../utils/formatting.js";
|
|
8
|
+
export class SearchTools {
|
|
9
|
+
pica;
|
|
10
|
+
constructor(pica) {
|
|
11
|
+
this.pica = pica;
|
|
12
|
+
}
|
|
13
|
+
getTools() {
|
|
14
|
+
return [
|
|
15
|
+
{
|
|
16
|
+
definition: {
|
|
17
|
+
name: "pica_search_all",
|
|
18
|
+
description: "Fuzzy search across the entire catalog: works, people, recordings, physical assets, audio files, studio sessions, agreements, multimedia, and releases. " +
|
|
19
|
+
"Supports free text, ISRC, ISWC, and IPI lookups. Returns ranked results with the top match expanded to full chain detail. " +
|
|
20
|
+
"→ then: pica_works_get_full (work details), pica_people_get_full (person details), pica_recordings_get (recording details)",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
query: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Search query — free text, ISRC, ISWC, or IPI number",
|
|
27
|
+
},
|
|
28
|
+
limit: {
|
|
29
|
+
type: "number",
|
|
30
|
+
description: "Maximum results (default: 10, max: 50)",
|
|
31
|
+
},
|
|
32
|
+
expand_first: {
|
|
33
|
+
type: "boolean",
|
|
34
|
+
description: "Expand the top result to full chain detail (default: true)",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
required: ["query"],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
executor: this.searchAll.bind(this),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
definition: {
|
|
44
|
+
name: "pica_catalog_stats",
|
|
45
|
+
description: "Get statistics about the catalog (total counts, etc.)",
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: "object",
|
|
48
|
+
properties: {},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
executor: this.getCatalogStats.bind(this),
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
definition: {
|
|
55
|
+
name: "pica_graph_traverse",
|
|
56
|
+
description: "Traverse the global identity graph from any identifier (IPI, ISNI, ISRC, ISWC, MusicBrainz UUID). " +
|
|
57
|
+
"Returns the canonical global entity + all connected works, recordings, creators, and publishers across the graph. " +
|
|
58
|
+
"Also shows which entities exist in your catalog. " +
|
|
59
|
+
"Use this to answer: 'show me everything connected to this IPI/ISRC/ISWC' or 'what else has this person written?'\n\n" +
|
|
60
|
+
"→ then: pica_works_get_full (deep-dive a work), pica_enrich_work (enrich a discovered work)",
|
|
61
|
+
inputSchema: {
|
|
62
|
+
type: "object",
|
|
63
|
+
properties: {
|
|
64
|
+
identifier: {
|
|
65
|
+
type: "string",
|
|
66
|
+
description: "The identifier to traverse from. Supports: IPI (9-11 digits), ISNI (16 digits), " +
|
|
67
|
+
"ISRC (e.g. GBUM71804829), ISWC (e.g. T-123.456.789-0), MusicBrainz UUID.",
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
required: ["identifier"],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
executor: this.graphTraverse.bind(this),
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Unified search via chain service — single request, all entity types,
|
|
79
|
+
* fuzzy matching with pg_trgm, ranked by similarity.
|
|
80
|
+
*/
|
|
81
|
+
async searchAll(args) {
|
|
82
|
+
const result = await this.pica.chain.search({
|
|
83
|
+
q: args.query,
|
|
84
|
+
limit: args.limit,
|
|
85
|
+
expand_first: args.expand_first,
|
|
86
|
+
});
|
|
87
|
+
return formatAsText(result);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get catalog statistics (uses dedicated SQL count endpoint, no pagination limits)
|
|
91
|
+
*/
|
|
92
|
+
async getCatalogStats(_args) {
|
|
93
|
+
const stats = await this.pica.catalogStats();
|
|
94
|
+
return formatAsText(stats);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Traverse the global identity graph from any identifier
|
|
98
|
+
*/
|
|
99
|
+
async graphTraverse(args) {
|
|
100
|
+
const result = await this.pica.chain.traverse(args.identifier);
|
|
101
|
+
const data = result.data || result;
|
|
102
|
+
if (!data.global_entity) {
|
|
103
|
+
return formatAsText({
|
|
104
|
+
message: `No entity found in the global identity graph for identifier "${args.identifier}" (detected type: ${data.identifier_type}).`,
|
|
105
|
+
hint: "Check the identifier format. IPI = 9-11 digits, ISNI = 16 digits, ISRC = 12 chars (e.g. GBUM71804829), ISWC = T + 10 digits.",
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const summary = [
|
|
109
|
+
`Found ${data.global_entity.type}: ${data.global_entity.name}`,
|
|
110
|
+
`Identifier type: ${data.identifier_type}`,
|
|
111
|
+
`Connected: ${data.connected.works.length} works, ${data.connected.recordings.length} recordings, ${data.connected.creators.length} creators, ${data.connected.publishers.length} publishers`,
|
|
112
|
+
`In your catalog: ${data.org_matches.works} works, ${data.org_matches.people} people, ${data.org_matches.recordings} recordings`,
|
|
113
|
+
].join("\n");
|
|
114
|
+
return formatSuccess(summary, data);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Send Tools - MCP tools for sending messages, invites, and file requests through PICA's Send Hub
|
|
3
|
+
*/
|
|
4
|
+
import { PicaClient } from "../pica-sdk.js";
|
|
5
|
+
import { ToolDefinition, ToolExecutor } from "./index.js";
|
|
6
|
+
export declare class SendTools {
|
|
7
|
+
private pica;
|
|
8
|
+
constructor(pica: PicaClient);
|
|
9
|
+
getTools(): Array<{
|
|
10
|
+
definition: ToolDefinition;
|
|
11
|
+
executor: ToolExecutor;
|
|
12
|
+
}>;
|
|
13
|
+
private sendMessage;
|
|
14
|
+
private listSent;
|
|
15
|
+
private listPending;
|
|
16
|
+
private resendItem;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=send.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/tools/send.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAOtE,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAiK3D,WAAW;YAKX,QAAQ;YAeR,WAAW;YAKX,UAAU;CAIzB"}
|