@withpica/mcp-server 2.7.0 → 2.9.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.
Files changed (261) hide show
  1. package/dist/__mocks__/mppx-mcp-sdk-server.d.ts +6 -0
  2. package/dist/__mocks__/mppx-mcp-sdk-server.d.ts.map +1 -0
  3. package/dist/__mocks__/mppx-mcp-sdk-server.js +6 -0
  4. package/dist/__mocks__/mppx-mcp-sdk-server.js.map +1 -0
  5. package/dist/__mocks__/mppx-server.d.ts +12 -0
  6. package/dist/__mocks__/mppx-server.d.ts.map +1 -0
  7. package/dist/__mocks__/mppx-server.js +12 -0
  8. package/dist/__mocks__/mppx-server.js.map +1 -0
  9. package/dist/apps/download.d.ts +2 -0
  10. package/dist/apps/download.d.ts.map +1 -0
  11. package/dist/apps/download.js +125 -0
  12. package/dist/apps/download.js.map +1 -0
  13. package/dist/apps/generated/shared-bundle.d.ts +5 -0
  14. package/dist/apps/generated/shared-bundle.d.ts.map +1 -0
  15. package/dist/apps/generated/shared-bundle.js +7 -0
  16. package/dist/apps/generated/shared-bundle.js.map +1 -0
  17. package/dist/apps/shared.d.ts +15 -0
  18. package/dist/apps/shared.d.ts.map +1 -0
  19. package/dist/apps/shared.js +480 -0
  20. package/dist/apps/shared.js.map +1 -0
  21. package/dist/apps/upload.d.ts +2 -0
  22. package/dist/apps/upload.d.ts.map +1 -0
  23. package/dist/apps/upload.js +280 -0
  24. package/dist/apps/upload.js.map +1 -0
  25. package/dist/config.d.ts +9 -30
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +36 -12
  28. package/dist/config.js.map +1 -1
  29. package/dist/index.js +3 -3
  30. package/dist/index.js.map +1 -1
  31. package/dist/prompts/index.js +24 -24
  32. package/dist/prompts/index.js.map +1 -1
  33. package/dist/resources/index.d.ts +4 -2
  34. package/dist/resources/index.d.ts.map +1 -1
  35. package/dist/resources/index.js +133 -54
  36. package/dist/resources/index.js.map +1 -1
  37. package/dist/resources/llms-primer.d.ts +2 -0
  38. package/dist/resources/llms-primer.d.ts.map +1 -0
  39. package/dist/resources/llms-primer.js +68 -0
  40. package/dist/resources/llms-primer.js.map +1 -0
  41. package/dist/server-instructions.d.ts +9 -0
  42. package/dist/server-instructions.d.ts.map +1 -0
  43. package/dist/server-instructions.js +34 -0
  44. package/dist/server-instructions.js.map +1 -0
  45. package/dist/server.d.ts +17 -0
  46. package/dist/server.d.ts.map +1 -1
  47. package/dist/server.js +103 -14
  48. package/dist/server.js.map +1 -1
  49. package/dist/tools/agreement-types.d.ts +27 -0
  50. package/dist/tools/agreement-types.d.ts.map +1 -0
  51. package/dist/tools/agreement-types.js +387 -0
  52. package/dist/tools/agreement-types.js.map +1 -0
  53. package/dist/tools/agreements.d.ts +20 -0
  54. package/dist/tools/agreements.d.ts.map +1 -0
  55. package/dist/tools/agreements.js +363 -0
  56. package/dist/tools/agreements.js.map +1 -0
  57. package/dist/tools/analytics.d.ts +20 -0
  58. package/dist/tools/analytics.d.ts.map +1 -0
  59. package/dist/tools/analytics.js +124 -0
  60. package/dist/tools/analytics.js.map +1 -0
  61. package/dist/tools/app-tools.d.ts +21 -0
  62. package/dist/tools/app-tools.d.ts.map +1 -0
  63. package/dist/tools/app-tools.js +248 -0
  64. package/dist/tools/app-tools.js.map +1 -0
  65. package/dist/tools/assets.d.ts +25 -0
  66. package/dist/tools/assets.d.ts.map +1 -0
  67. package/dist/tools/assets.js +631 -0
  68. package/dist/tools/assets.js.map +1 -0
  69. package/dist/tools/audio-files.d.ts +20 -0
  70. package/dist/tools/audio-files.d.ts.map +1 -0
  71. package/dist/tools/audio-files.js +384 -0
  72. package/dist/tools/audio-files.js.map +1 -0
  73. package/dist/tools/auth.d.ts +22 -0
  74. package/dist/tools/auth.d.ts.map +1 -0
  75. package/dist/tools/auth.js +210 -0
  76. package/dist/tools/auth.js.map +1 -0
  77. package/dist/tools/bulk.d.ts +16 -0
  78. package/dist/tools/bulk.d.ts.map +1 -0
  79. package/dist/tools/bulk.js +85 -0
  80. package/dist/tools/bulk.js.map +1 -0
  81. package/dist/tools/calendar.d.ts +15 -0
  82. package/dist/tools/calendar.d.ts.map +1 -0
  83. package/dist/tools/calendar.js +67 -0
  84. package/dist/tools/calendar.js.map +1 -0
  85. package/dist/tools/collaborators.d.ts +21 -0
  86. package/dist/tools/collaborators.d.ts.map +1 -0
  87. package/dist/tools/collaborators.js +311 -0
  88. package/dist/tools/collaborators.js.map +1 -0
  89. package/dist/tools/comparisons.d.ts +22 -0
  90. package/dist/tools/comparisons.d.ts.map +1 -0
  91. package/dist/tools/comparisons.js +78 -0
  92. package/dist/tools/comparisons.js.map +1 -0
  93. package/dist/tools/credits.d.ts +17 -0
  94. package/dist/tools/credits.d.ts.map +1 -0
  95. package/dist/tools/credits.js +312 -0
  96. package/dist/tools/credits.js.map +1 -0
  97. package/dist/tools/custody-hints.d.ts +16 -0
  98. package/dist/tools/custody-hints.d.ts.map +1 -0
  99. package/dist/tools/custody-hints.js +27 -0
  100. package/dist/tools/custody-hints.js.map +1 -0
  101. package/dist/tools/custody.d.ts +38 -0
  102. package/dist/tools/custody.d.ts.map +1 -0
  103. package/dist/tools/custody.js +274 -0
  104. package/dist/tools/custody.js.map +1 -0
  105. package/dist/tools/dashboard.d.ts +19 -0
  106. package/dist/tools/dashboard.d.ts.map +1 -0
  107. package/dist/tools/dashboard.js +146 -0
  108. package/dist/tools/dashboard.js.map +1 -0
  109. package/dist/tools/directory.d.ts +15 -0
  110. package/dist/tools/directory.d.ts.map +1 -0
  111. package/dist/tools/directory.js +106 -0
  112. package/dist/tools/directory.js.map +1 -0
  113. package/dist/tools/discovery.d.ts +28 -0
  114. package/dist/tools/discovery.d.ts.map +1 -0
  115. package/dist/tools/discovery.js +560 -0
  116. package/dist/tools/discovery.js.map +1 -0
  117. package/dist/tools/disputes.d.ts +18 -0
  118. package/dist/tools/disputes.d.ts.map +1 -0
  119. package/dist/tools/disputes.js +61 -0
  120. package/dist/tools/disputes.js.map +1 -0
  121. package/dist/tools/documents.d.ts +15 -0
  122. package/dist/tools/documents.d.ts.map +1 -0
  123. package/dist/tools/documents.js +36 -0
  124. package/dist/tools/documents.js.map +1 -0
  125. package/dist/tools/duplicates.d.ts +16 -0
  126. package/dist/tools/duplicates.d.ts.map +1 -0
  127. package/dist/tools/duplicates.js +87 -0
  128. package/dist/tools/duplicates.js.map +1 -0
  129. package/dist/tools/enrichment.d.ts +23 -0
  130. package/dist/tools/enrichment.d.ts.map +1 -0
  131. package/dist/tools/enrichment.js +220 -0
  132. package/dist/tools/enrichment.js.map +1 -0
  133. package/dist/tools/exports.d.ts +19 -0
  134. package/dist/tools/exports.d.ts.map +1 -0
  135. package/dist/tools/exports.js +175 -0
  136. package/dist/tools/exports.js.map +1 -0
  137. package/dist/tools/import-documents.d.ts +21 -0
  138. package/dist/tools/import-documents.d.ts.map +1 -0
  139. package/dist/tools/import-documents.js +203 -0
  140. package/dist/tools/import-documents.js.map +1 -0
  141. package/dist/tools/import.d.ts +30 -0
  142. package/dist/tools/import.d.ts.map +1 -0
  143. package/dist/tools/import.js +455 -0
  144. package/dist/tools/import.js.map +1 -0
  145. package/dist/tools/index.d.ts +67 -5
  146. package/dist/tools/index.d.ts.map +1 -1
  147. package/dist/tools/index.js +448 -84
  148. package/dist/tools/index.js.map +1 -1
  149. package/dist/tools/integrations.d.ts +15 -0
  150. package/dist/tools/integrations.d.ts.map +1 -0
  151. package/dist/tools/integrations.js +100 -0
  152. package/dist/tools/integrations.js.map +1 -0
  153. package/dist/tools/licensing.d.ts +40 -0
  154. package/dist/tools/licensing.d.ts.map +1 -0
  155. package/dist/tools/licensing.js +431 -0
  156. package/dist/tools/licensing.js.map +1 -0
  157. package/dist/tools/memory.d.ts +21 -0
  158. package/dist/tools/memory.d.ts.map +1 -0
  159. package/dist/tools/memory.js +116 -0
  160. package/dist/tools/memory.js.map +1 -0
  161. package/dist/tools/metadata.d.ts +15 -0
  162. package/dist/tools/metadata.d.ts.map +1 -0
  163. package/dist/tools/metadata.js +1106 -0
  164. package/dist/tools/metadata.js.map +1 -0
  165. package/dist/tools/multimedia.d.ts +19 -0
  166. package/dist/tools/multimedia.d.ts.map +1 -0
  167. package/dist/tools/multimedia.js +291 -0
  168. package/dist/tools/multimedia.js.map +1 -0
  169. package/dist/tools/notes.d.ts +21 -0
  170. package/dist/tools/notes.d.ts.map +1 -0
  171. package/dist/tools/notes.js +108 -0
  172. package/dist/tools/notes.js.map +1 -0
  173. package/dist/tools/notifications.d.ts +20 -0
  174. package/dist/tools/notifications.d.ts.map +1 -0
  175. package/dist/tools/notifications.js +266 -0
  176. package/dist/tools/notifications.js.map +1 -0
  177. package/dist/tools/people.d.ts +5 -13
  178. package/dist/tools/people.d.ts.map +1 -1
  179. package/dist/tools/people.js +148 -109
  180. package/dist/tools/people.js.map +1 -1
  181. package/dist/tools/projects.d.ts +19 -0
  182. package/dist/tools/projects.d.ts.map +1 -0
  183. package/dist/tools/projects.js +140 -0
  184. package/dist/tools/projects.js.map +1 -0
  185. package/dist/tools/publishers.d.ts +16 -0
  186. package/dist/tools/publishers.d.ts.map +1 -0
  187. package/dist/tools/publishers.js +69 -0
  188. package/dist/tools/publishers.js.map +1 -0
  189. package/dist/tools/purchases.d.ts +15 -0
  190. package/dist/tools/purchases.d.ts.map +1 -0
  191. package/dist/tools/purchases.js +63 -0
  192. package/dist/tools/purchases.js.map +1 -0
  193. package/dist/tools/recordings.d.ts +35 -35
  194. package/dist/tools/recordings.d.ts.map +1 -1
  195. package/dist/tools/recordings.js +136 -48
  196. package/dist/tools/recordings.js.map +1 -1
  197. package/dist/tools/recovery-hints.d.ts +14 -0
  198. package/dist/tools/recovery-hints.d.ts.map +1 -0
  199. package/dist/tools/recovery-hints.js +277 -0
  200. package/dist/tools/recovery-hints.js.map +1 -0
  201. package/dist/tools/releases.d.ts +18 -0
  202. package/dist/tools/releases.d.ts.map +1 -0
  203. package/dist/tools/releases.js +128 -0
  204. package/dist/tools/releases.js.map +1 -0
  205. package/dist/tools/royalties.d.ts +23 -0
  206. package/dist/tools/royalties.d.ts.map +1 -0
  207. package/dist/tools/royalties.js +257 -0
  208. package/dist/tools/royalties.js.map +1 -0
  209. package/dist/tools/search.d.ts +1 -1
  210. package/dist/tools/search.d.ts.map +1 -1
  211. package/dist/tools/search.js +3 -3
  212. package/dist/tools/search.js.map +1 -1
  213. package/dist/tools/send.d.ts +17 -0
  214. package/dist/tools/send.d.ts.map +1 -0
  215. package/dist/tools/send.js +185 -0
  216. package/dist/tools/send.js.map +1 -0
  217. package/dist/tools/sessions.d.ts +18 -0
  218. package/dist/tools/sessions.d.ts.map +1 -0
  219. package/dist/tools/sessions.js +115 -0
  220. package/dist/tools/sessions.js.map +1 -0
  221. package/dist/tools/settings.d.ts +18 -0
  222. package/dist/tools/settings.d.ts.map +1 -0
  223. package/dist/tools/settings.js +96 -0
  224. package/dist/tools/settings.js.map +1 -0
  225. package/dist/tools/share-links.d.ts +19 -0
  226. package/dist/tools/share-links.d.ts.map +1 -0
  227. package/dist/tools/share-links.js +121 -0
  228. package/dist/tools/share-links.js.map +1 -0
  229. package/dist/tools/split-sheets.d.ts +25 -0
  230. package/dist/tools/split-sheets.d.ts.map +1 -0
  231. package/dist/tools/split-sheets.js +307 -0
  232. package/dist/tools/split-sheets.js.map +1 -0
  233. package/dist/tools/team.d.ts +22 -0
  234. package/dist/tools/team.d.ts.map +1 -0
  235. package/dist/tools/team.js +134 -0
  236. package/dist/tools/team.js.map +1 -0
  237. package/dist/tools/telegram.d.ts +21 -0
  238. package/dist/tools/telegram.d.ts.map +1 -0
  239. package/dist/tools/telegram.js +141 -0
  240. package/dist/tools/telegram.js.map +1 -0
  241. package/dist/tools/uploads.d.ts +17 -0
  242. package/dist/tools/uploads.d.ts.map +1 -0
  243. package/dist/tools/uploads.js +156 -0
  244. package/dist/tools/uploads.js.map +1 -0
  245. package/dist/tools/works.d.ts +5 -13
  246. package/dist/tools/works.d.ts.map +1 -1
  247. package/dist/tools/works.js +219 -116
  248. package/dist/tools/works.js.map +1 -1
  249. package/package.json +1 -1
  250. package/dist/pica-sdk.d.ts +0 -1231
  251. package/dist/pica-sdk.d.ts.map +0 -1
  252. package/dist/pica-sdk.js +0 -1403
  253. package/dist/pica-sdk.js.map +0 -1
  254. package/dist/utils/errors.d.ts +0 -29
  255. package/dist/utils/errors.d.ts.map +0 -1
  256. package/dist/utils/errors.js +0 -115
  257. package/dist/utils/errors.js.map +0 -1
  258. package/dist/utils/formatting.d.ts +0 -82
  259. package/dist/utils/formatting.d.ts.map +0 -1
  260. package/dist/utils/formatting.js +0 -125
  261. package/dist/utils/formatting.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Import Documents Tools - MCP tools for canonical ingestion documents
3
+ */
4
+ import { PicaClient } from "@withpica/mcp-sdk";
5
+ import { ToolDefinition, ToolExecutor } from "./index.js";
6
+ export declare class ImportDocumentTools {
7
+ private pica;
8
+ constructor(pica: PicaClient);
9
+ /**
10
+ * Get all import document tools
11
+ */
12
+ getTools(): Array<{
13
+ definition: ToolDefinition;
14
+ executor: ToolExecutor;
15
+ }>;
16
+ private queryImportDocuments;
17
+ private inspectImportDocument;
18
+ private ingestStatement;
19
+ private computeDiff;
20
+ }
21
+ //# sourceMappingURL=import-documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-documents.d.ts","sourceRoot":"","sources":["../../src/tools/import-documents.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGtE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YA0F3D,oBAAoB;YAOpB,qBAAqB;YA+DrB,eAAe;IAgB7B,OAAO,CAAC,WAAW;CAyDpB"}
@@ -0,0 +1,203 @@
1
+ // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
+ import { formatStructuredList, formatSuccess } from "@withpica/mcp-utils";
3
+ export class ImportDocumentTools {
4
+ pica;
5
+ constructor(pica) {
6
+ this.pica = pica;
7
+ }
8
+ /**
9
+ * Get all import document tools
10
+ */
11
+ getTools() {
12
+ return [
13
+ {
14
+ definition: {
15
+ name: "pica_import_documents_query",
16
+ description: "List canonical ingestion documents — the readable, diffable record of every statement import. Filter by source (prs, distrokid, ascap, etc.), period (Q1 2024), or document type (statement, csv_import). Returns summaries without full body text. Use pica_import_documents_inspect for the full document.",
17
+ inputSchema: {
18
+ type: "object",
19
+ properties: {
20
+ source: {
21
+ type: "string",
22
+ description: "Filter by source identifier. PROs: prs, ascap, bmi, sesac, socan, apra, gema, sacem. NROs: ppl, soundexchange, gvl. Mechanical: mcps. Distributors: distrokid, tunecore, cdbaby. Revenue: content_id.",
23
+ },
24
+ period: {
25
+ type: "string",
26
+ description: "Filter by period label (e.g. Q1 2024, 2024-01)",
27
+ },
28
+ document_type: {
29
+ type: "string",
30
+ description: "Filter by document type (e.g. statement, csv_import)",
31
+ },
32
+ limit: {
33
+ type: "number",
34
+ description: "Maximum number of results to return (default: 50)",
35
+ },
36
+ },
37
+ },
38
+ },
39
+ executor: this.queryImportDocuments.bind(this),
40
+ },
41
+ {
42
+ definition: {
43
+ name: "pica_import_documents_inspect",
44
+ description: "Inspect a specific import document. By default returns the full canonical document " +
45
+ "(summary, identity extractions, line items, field mapping, warnings). " +
46
+ "Include 'diff' in sections to compare with a second document.",
47
+ inputSchema: {
48
+ type: "object",
49
+ properties: {
50
+ id: {
51
+ type: "string",
52
+ description: "Import document ID",
53
+ },
54
+ sections: {
55
+ type: "array",
56
+ items: {
57
+ type: "string",
58
+ enum: ["basic", "diff"],
59
+ },
60
+ description: "Which sections to return (default: ['basic']). Add 'diff' to compare with compare_id.",
61
+ },
62
+ compare_id: {
63
+ type: "string",
64
+ description: "Second document ID for diff comparison (required when sections includes 'diff')",
65
+ },
66
+ },
67
+ required: ["id"],
68
+ },
69
+ },
70
+ executor: this.inspectImportDocument.bind(this),
71
+ },
72
+ {
73
+ definition: {
74
+ name: "pica_ingest_statement",
75
+ description: "Ingest a royalty or distribution statement into PICA. Before calling this tool, convert the raw file contents to canonical Markdown with YAML frontmatter containing: source, period, currency, type. Line items should be structured as a Markdown table. The LLM should perform this conversion from CSV or PDF text before passing to this tool.",
76
+ inputSchema: {
77
+ type: "object",
78
+ properties: {
79
+ markdown: {
80
+ type: "string",
81
+ description: "The statement converted to canonical PICA Markdown format with YAML frontmatter and structured body",
82
+ },
83
+ },
84
+ required: ["markdown"],
85
+ },
86
+ },
87
+ executor: this.ingestStatement.bind(this),
88
+ },
89
+ ];
90
+ }
91
+ async queryImportDocuments(args) {
92
+ const docs = await this.pica.importDocuments.list(args);
93
+ return formatStructuredList(docs, "import document");
94
+ }
95
+ async inspectImportDocument(args) {
96
+ if (!args.id) {
97
+ return {
98
+ content: [{ type: "text", text: "id is required" }],
99
+ isError: true,
100
+ };
101
+ }
102
+ const sections = args.sections || ["basic"];
103
+ const doc = await this.pica.importDocuments.get(args.id);
104
+ // If diff is requested, compute and append the diff
105
+ if (sections.includes("diff")) {
106
+ if (!args.compare_id) {
107
+ return {
108
+ content: [
109
+ {
110
+ type: "text",
111
+ text: "compare_id is required when sections includes 'diff'",
112
+ },
113
+ ],
114
+ isError: true,
115
+ };
116
+ }
117
+ const docB = await this.pica.importDocuments.get(args.compare_id);
118
+ const diffResult = this.computeDiff(args.id, doc, args.compare_id, docB);
119
+ if (sections.includes("basic")) {
120
+ // Return both basic + diff
121
+ const basicText = doc.body ?? JSON.stringify(doc, null, 2);
122
+ return {
123
+ content: [
124
+ {
125
+ type: "text",
126
+ text: basicText + "\n\n" + diffResult.text,
127
+ },
128
+ ],
129
+ structuredContent: {
130
+ document: doc,
131
+ diff: diffResult.structured,
132
+ },
133
+ };
134
+ }
135
+ // Diff only
136
+ return {
137
+ content: [{ type: "text", text: diffResult.text }],
138
+ structuredContent: diffResult.structured,
139
+ };
140
+ }
141
+ // Basic only (default)
142
+ return {
143
+ content: [
144
+ { type: "text", text: doc.body ?? JSON.stringify(doc, null, 2) },
145
+ ],
146
+ structuredContent: doc,
147
+ };
148
+ }
149
+ async ingestStatement(args) {
150
+ if (!args.markdown) {
151
+ return {
152
+ content: [{ type: "text", text: "markdown is required" }],
153
+ isError: true,
154
+ };
155
+ }
156
+ const result = await this.pica.importDocuments.ingest(args.markdown);
157
+ return formatSuccess(`Statement ingested successfully. Document ID: ${result.id}`, result);
158
+ }
159
+ computeDiff(idA, docA, idB, docB) {
160
+ const summaryA = docA.summary ?? {};
161
+ const summaryB = docB.summary ?? {};
162
+ const lineItemsDelta = (summaryB.line_count ?? 0) - (summaryA.line_count ?? 0);
163
+ const totalConvertedDelta = (summaryB.total_converted ?? 0) - (summaryA.total_converted ?? 0);
164
+ const matchedWorksDelta = (summaryB.matched_works ?? 0) - (summaryA.matched_works ?? 0);
165
+ const warningsDelta = (summaryB.warning_count ?? 0) - (summaryA.warning_count ?? 0);
166
+ const sign = (n) => (n > 0 ? `+${n}` : String(n));
167
+ const signF = (n) => (n > 0 ? `+${n.toFixed(2)}` : n.toFixed(2));
168
+ const table = [
169
+ `## import document diff`,
170
+ ``,
171
+ `| metric | document a | document b | delta |`,
172
+ `| --- | --- | --- | --- |`,
173
+ `| source | ${docA.source ?? "—"} | ${docB.source ?? "—"} | — |`,
174
+ `| period | ${docA.period ?? "—"} | ${docB.period ?? "—"} | — |`,
175
+ `| line items | ${summaryA.line_count ?? "—"} | ${summaryB.line_count ?? "—"} | ${sign(lineItemsDelta)} |`,
176
+ `| total converted | ${summaryA.total_converted ?? "—"} | ${summaryB.total_converted ?? "—"} | ${signF(totalConvertedDelta)} |`,
177
+ `| matched works | ${summaryA.matched_works ?? "—"} | ${summaryB.matched_works ?? "—"} | ${sign(matchedWorksDelta)} |`,
178
+ `| warnings | ${summaryA.warning_count ?? "—"} | ${summaryB.warning_count ?? "—"} | ${sign(warningsDelta)} |`,
179
+ ].join("\n");
180
+ const structured = {
181
+ document_a: {
182
+ id: idA,
183
+ source: docA.source,
184
+ period: docA.period,
185
+ summary: summaryA,
186
+ },
187
+ document_b: {
188
+ id: idB,
189
+ source: docB.source,
190
+ period: docB.period,
191
+ summary: summaryB,
192
+ },
193
+ deltas: {
194
+ line_count: lineItemsDelta,
195
+ total_converted: totalConvertedDelta,
196
+ matched_works: matchedWorksDelta,
197
+ warning_count: warningsDelta,
198
+ },
199
+ };
200
+ return { text: table, structured };
201
+ }
202
+ }
203
+ //# sourceMappingURL=import-documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-documents.js","sourceRoot":"","sources":["../../src/tools/import-documents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Import Tools - MCP tools for bulk CSV import of works, people, recordings, etc.
3
+ *
4
+ * Typical agent flow:
5
+ * 1. pica_import_analyze — parse CSV and get AI-suggested mappings
6
+ * 2. pica_import_validate — validate all rows against the mapping
7
+ * 3. pica_import_execute — run the import (with optional dry_run first)
8
+ *
9
+ * Alternative flows:
10
+ * - pica_import_fields — get available target fields for a domain
11
+ * - pica_import_template — get an example CSV template
12
+ */
13
+ import { PicaClient } from "@withpica/mcp-sdk";
14
+ import { ToolDefinition, ToolExecutor } from "./index.js";
15
+ export declare class ImportTools {
16
+ private pica;
17
+ constructor(pica: PicaClient);
18
+ getTools(): Array<{
19
+ definition: ToolDefinition;
20
+ executor: ToolExecutor;
21
+ }>;
22
+ private analyzeImport;
23
+ private validateImport;
24
+ private executeImport;
25
+ private getImportFields;
26
+ private getImportTemplate;
27
+ private importFromSpotify;
28
+ private importStreamingLink;
29
+ }
30
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/tools/import.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAiBtE,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;YAsP3D,aAAa;YAuBb,cAAc;YAgCd,aAAa;YAkCb,eAAe;YAUf,iBAAiB;YAUjB,iBAAiB;YAgDjB,mBAAmB;CA+HlC"}