@withpica/mcp-server 2.5.2 → 2.6.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 (275) hide show
  1. package/assets/fonts/GeistSans-Light.woff2 +0 -0
  2. package/assets/fonts/InstrumentSerif-Italic.woff2 +0 -0
  3. package/assets/fonts/InstrumentSerif-Regular.woff2 +0 -0
  4. package/dist/apps/download.d.ts +2 -0
  5. package/dist/apps/download.d.ts.map +1 -0
  6. package/dist/apps/download.js +125 -0
  7. package/dist/apps/download.js.map +1 -0
  8. package/dist/apps/generated/shared-bundle.d.ts +5 -0
  9. package/dist/apps/generated/shared-bundle.d.ts.map +1 -0
  10. package/dist/apps/generated/shared-bundle.js +7 -0
  11. package/dist/apps/generated/shared-bundle.js.map +1 -0
  12. package/dist/apps/shared.d.ts +15 -0
  13. package/dist/apps/shared.d.ts.map +1 -0
  14. package/dist/apps/shared.js +480 -0
  15. package/dist/apps/shared.js.map +1 -0
  16. package/dist/apps/upload.d.ts +2 -0
  17. package/dist/apps/upload.d.ts.map +1 -0
  18. package/dist/apps/upload.js +280 -0
  19. package/dist/apps/upload.js.map +1 -0
  20. package/dist/config.d.ts +4 -25
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +30 -12
  23. package/dist/config.js.map +1 -1
  24. package/dist/index.js +3 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/prompts/index.js +24 -24
  27. package/dist/prompts/index.js.map +1 -1
  28. package/dist/resources/index.d.ts +4 -2
  29. package/dist/resources/index.d.ts.map +1 -1
  30. package/dist/resources/index.js +133 -54
  31. package/dist/resources/index.js.map +1 -1
  32. package/dist/resources/llms-primer.d.ts +1 -1
  33. package/dist/resources/llms-primer.d.ts.map +1 -1
  34. package/dist/resources/llms-primer.js +4 -4
  35. package/dist/server-instructions.d.ts +9 -0
  36. package/dist/server-instructions.d.ts.map +1 -0
  37. package/dist/server-instructions.js +34 -0
  38. package/dist/server-instructions.js.map +1 -0
  39. package/dist/server.d.ts +4 -0
  40. package/dist/server.d.ts.map +1 -1
  41. package/dist/server.js +46 -12
  42. package/dist/server.js.map +1 -1
  43. package/dist/tools/agreement-types.d.ts +10 -20
  44. package/dist/tools/agreement-types.d.ts.map +1 -1
  45. package/dist/tools/agreement-types.js +203 -419
  46. package/dist/tools/agreement-types.js.map +1 -1
  47. package/dist/tools/agreements.d.ts +3 -4
  48. package/dist/tools/agreements.d.ts.map +1 -1
  49. package/dist/tools/agreements.js +72 -52
  50. package/dist/tools/agreements.js.map +1 -1
  51. package/dist/tools/analytics.d.ts +1 -1
  52. package/dist/tools/analytics.d.ts.map +1 -1
  53. package/dist/tools/analytics.js +1 -1
  54. package/dist/tools/analytics.js.map +1 -1
  55. package/dist/tools/app-tools.d.ts +21 -0
  56. package/dist/tools/app-tools.d.ts.map +1 -0
  57. package/dist/tools/app-tools.js +248 -0
  58. package/dist/tools/app-tools.js.map +1 -0
  59. package/dist/tools/assets.d.ts +2 -4
  60. package/dist/tools/assets.d.ts.map +1 -1
  61. package/dist/tools/assets.js +278 -59
  62. package/dist/tools/assets.js.map +1 -1
  63. package/dist/tools/audio-files.d.ts +3 -4
  64. package/dist/tools/audio-files.d.ts.map +1 -1
  65. package/dist/tools/audio-files.js +63 -35
  66. package/dist/tools/audio-files.js.map +1 -1
  67. package/dist/tools/auth.d.ts +20 -0
  68. package/dist/tools/auth.d.ts.map +1 -0
  69. package/dist/tools/auth.js +200 -0
  70. package/dist/tools/auth.js.map +1 -0
  71. package/dist/tools/bulk.d.ts +1 -1
  72. package/dist/tools/bulk.d.ts.map +1 -1
  73. package/dist/tools/bulk.js +1 -1
  74. package/dist/tools/bulk.js.map +1 -1
  75. package/dist/tools/calendar.d.ts +1 -1
  76. package/dist/tools/calendar.d.ts.map +1 -1
  77. package/dist/tools/calendar.js +1 -1
  78. package/dist/tools/calendar.js.map +1 -1
  79. package/dist/tools/collaborators.d.ts +1 -1
  80. package/dist/tools/collaborators.d.ts.map +1 -1
  81. package/dist/tools/collaborators.js +2 -2
  82. package/dist/tools/collaborators.js.map +1 -1
  83. package/dist/tools/comparisons.d.ts +1 -1
  84. package/dist/tools/comparisons.d.ts.map +1 -1
  85. package/dist/tools/comparisons.js +1 -1
  86. package/dist/tools/comparisons.js.map +1 -1
  87. package/dist/tools/credits.d.ts +1 -1
  88. package/dist/tools/credits.d.ts.map +1 -1
  89. package/dist/tools/credits.js +130 -20
  90. package/dist/tools/credits.js.map +1 -1
  91. package/dist/tools/dashboard.d.ts +2 -3
  92. package/dist/tools/dashboard.d.ts.map +1 -1
  93. package/dist/tools/dashboard.js +20 -28
  94. package/dist/tools/dashboard.js.map +1 -1
  95. package/dist/tools/directory.d.ts +1 -1
  96. package/dist/tools/directory.d.ts.map +1 -1
  97. package/dist/tools/directory.js +1 -1
  98. package/dist/tools/directory.js.map +1 -1
  99. package/dist/tools/discovery.d.ts +28 -0
  100. package/dist/tools/discovery.d.ts.map +1 -0
  101. package/dist/tools/discovery.js +560 -0
  102. package/dist/tools/discovery.js.map +1 -0
  103. package/dist/tools/disputes.d.ts +1 -1
  104. package/dist/tools/disputes.d.ts.map +1 -1
  105. package/dist/tools/disputes.js +1 -1
  106. package/dist/tools/disputes.js.map +1 -1
  107. package/dist/tools/documents.d.ts +1 -1
  108. package/dist/tools/documents.d.ts.map +1 -1
  109. package/dist/tools/documents.js +1 -1
  110. package/dist/tools/documents.js.map +1 -1
  111. package/dist/tools/duplicates.d.ts +1 -1
  112. package/dist/tools/duplicates.d.ts.map +1 -1
  113. package/dist/tools/duplicates.js +18 -1
  114. package/dist/tools/duplicates.js.map +1 -1
  115. package/dist/tools/enrichment.d.ts +1 -4
  116. package/dist/tools/enrichment.d.ts.map +1 -1
  117. package/dist/tools/enrichment.js +19 -122
  118. package/dist/tools/enrichment.js.map +1 -1
  119. package/dist/tools/exports.d.ts +1 -1
  120. package/dist/tools/exports.d.ts.map +1 -1
  121. package/dist/tools/exports.js +2 -2
  122. package/dist/tools/exports.js.map +1 -1
  123. package/dist/tools/import-documents.d.ts +4 -4
  124. package/dist/tools/import-documents.d.ts.map +1 -1
  125. package/dist/tools/import-documents.js +65 -51
  126. package/dist/tools/import-documents.js.map +1 -1
  127. package/dist/tools/import.d.ts +2 -1
  128. package/dist/tools/import.d.ts.map +1 -1
  129. package/dist/tools/import.js +64 -2
  130. package/dist/tools/import.js.map +1 -1
  131. package/dist/tools/index.d.ts +50 -5
  132. package/dist/tools/index.d.ts.map +1 -1
  133. package/dist/tools/index.js +440 -84
  134. package/dist/tools/index.js.map +1 -1
  135. package/dist/tools/integrations.d.ts +1 -1
  136. package/dist/tools/integrations.d.ts.map +1 -1
  137. package/dist/tools/integrations.js +1 -1
  138. package/dist/tools/integrations.js.map +1 -1
  139. package/dist/tools/licensing.d.ts +1 -1
  140. package/dist/tools/licensing.d.ts.map +1 -1
  141. package/dist/tools/licensing.js +1 -1
  142. package/dist/tools/licensing.js.map +1 -1
  143. package/dist/tools/memory.d.ts +1 -1
  144. package/dist/tools/memory.d.ts.map +1 -1
  145. package/dist/tools/memory.js +1 -1
  146. package/dist/tools/memory.js.map +1 -1
  147. package/dist/tools/metadata.d.ts +15 -0
  148. package/dist/tools/metadata.d.ts.map +1 -0
  149. package/dist/tools/metadata.js +1069 -0
  150. package/dist/tools/metadata.js.map +1 -0
  151. package/dist/tools/multimedia.d.ts +1 -1
  152. package/dist/tools/multimedia.d.ts.map +1 -1
  153. package/dist/tools/multimedia.js +1 -1
  154. package/dist/tools/multimedia.js.map +1 -1
  155. package/dist/tools/notes.d.ts +1 -1
  156. package/dist/tools/notes.d.ts.map +1 -1
  157. package/dist/tools/notes.js +1 -1
  158. package/dist/tools/notes.js.map +1 -1
  159. package/dist/tools/notifications.d.ts +1 -1
  160. package/dist/tools/notifications.d.ts.map +1 -1
  161. package/dist/tools/notifications.js +1 -1
  162. package/dist/tools/notifications.js.map +1 -1
  163. package/dist/tools/people.d.ts +5 -13
  164. package/dist/tools/people.d.ts.map +1 -1
  165. package/dist/tools/people.js +148 -109
  166. package/dist/tools/people.js.map +1 -1
  167. package/dist/tools/projects.d.ts +1 -1
  168. package/dist/tools/projects.d.ts.map +1 -1
  169. package/dist/tools/projects.js +1 -1
  170. package/dist/tools/projects.js.map +1 -1
  171. package/dist/tools/publishers.d.ts +16 -0
  172. package/dist/tools/publishers.d.ts.map +1 -0
  173. package/dist/tools/publishers.js +69 -0
  174. package/dist/tools/publishers.js.map +1 -0
  175. package/dist/tools/purchases.d.ts +1 -1
  176. package/dist/tools/purchases.d.ts.map +1 -1
  177. package/dist/tools/purchases.js +1 -1
  178. package/dist/tools/purchases.js.map +1 -1
  179. package/dist/tools/recordings.d.ts +9 -9
  180. package/dist/tools/recordings.d.ts.map +1 -1
  181. package/dist/tools/recordings.js +121 -48
  182. package/dist/tools/recordings.js.map +1 -1
  183. package/dist/tools/recovery-hints.d.ts +14 -0
  184. package/dist/tools/recovery-hints.d.ts.map +1 -0
  185. package/dist/tools/recovery-hints.js +277 -0
  186. package/dist/tools/recovery-hints.js.map +1 -0
  187. package/dist/tools/releases.d.ts +1 -1
  188. package/dist/tools/releases.d.ts.map +1 -1
  189. package/dist/tools/releases.js +1 -1
  190. package/dist/tools/releases.js.map +1 -1
  191. package/dist/tools/royalties.d.ts +1 -1
  192. package/dist/tools/royalties.d.ts.map +1 -1
  193. package/dist/tools/royalties.js +2 -2
  194. package/dist/tools/royalties.js.map +1 -1
  195. package/dist/tools/search.d.ts +1 -1
  196. package/dist/tools/search.d.ts.map +1 -1
  197. package/dist/tools/search.js +3 -3
  198. package/dist/tools/search.js.map +1 -1
  199. package/dist/tools/send.d.ts +2 -3
  200. package/dist/tools/send.d.ts.map +1 -1
  201. package/dist/tools/send.js +20 -28
  202. package/dist/tools/send.js.map +1 -1
  203. package/dist/tools/sessions.d.ts +1 -1
  204. package/dist/tools/sessions.d.ts.map +1 -1
  205. package/dist/tools/sessions.js +1 -1
  206. package/dist/tools/sessions.js.map +1 -1
  207. package/dist/tools/settings.d.ts +1 -1
  208. package/dist/tools/settings.d.ts.map +1 -1
  209. package/dist/tools/settings.js +1 -1
  210. package/dist/tools/settings.js.map +1 -1
  211. package/dist/tools/share-links.d.ts +1 -1
  212. package/dist/tools/share-links.d.ts.map +1 -1
  213. package/dist/tools/share-links.js +1 -1
  214. package/dist/tools/share-links.js.map +1 -1
  215. package/dist/tools/split-sheets.d.ts +1 -1
  216. package/dist/tools/split-sheets.d.ts.map +1 -1
  217. package/dist/tools/split-sheets.js +13 -1
  218. package/dist/tools/split-sheets.js.map +1 -1
  219. package/dist/tools/team.d.ts +1 -1
  220. package/dist/tools/team.d.ts.map +1 -1
  221. package/dist/tools/team.js +1 -1
  222. package/dist/tools/team.js.map +1 -1
  223. package/dist/tools/telegram.d.ts +1 -1
  224. package/dist/tools/telegram.d.ts.map +1 -1
  225. package/dist/tools/telegram.js +1 -1
  226. package/dist/tools/telegram.js.map +1 -1
  227. package/dist/tools/uploads.d.ts +1 -1
  228. package/dist/tools/uploads.d.ts.map +1 -1
  229. package/dist/tools/uploads.js +1 -1
  230. package/dist/tools/uploads.js.map +1 -1
  231. package/dist/tools/works.d.ts +5 -13
  232. package/dist/tools/works.d.ts.map +1 -1
  233. package/dist/tools/works.js +201 -116
  234. package/dist/tools/works.js.map +1 -1
  235. package/package.json +5 -1
  236. package/scripts/bundle-apps.ts +61 -0
  237. package/.mcpregistry_github_token +0 -1
  238. package/.mcpregistry_registry_token +0 -1
  239. package/dist/pica-sdk.d.ts +0 -1170
  240. package/dist/pica-sdk.d.ts.map +0 -1
  241. package/dist/pica-sdk.js +0 -1403
  242. package/dist/pica-sdk.js.map +0 -1
  243. package/dist/tools/health.d.ts +0 -17
  244. package/dist/tools/health.d.ts.map +0 -1
  245. package/dist/tools/health.js +0 -67
  246. package/dist/tools/health.js.map +0 -1
  247. package/dist/tools/pica-score.d.ts +0 -15
  248. package/dist/tools/pica-score.d.ts.map +0 -1
  249. package/dist/tools/pica-score.js +0 -28
  250. package/dist/tools/pica-score.js.map +0 -1
  251. package/dist/tools/registration.d.ts +0 -16
  252. package/dist/tools/registration.d.ts.map +0 -1
  253. package/dist/tools/registration.js +0 -50
  254. package/dist/tools/registration.js.map +0 -1
  255. package/dist/utils/credit-gate.d.ts +0 -17
  256. package/dist/utils/credit-gate.d.ts.map +0 -1
  257. package/dist/utils/credit-gate.js +0 -100
  258. package/dist/utils/credit-gate.js.map +0 -1
  259. package/dist/utils/errors.d.ts +0 -29
  260. package/dist/utils/errors.d.ts.map +0 -1
  261. package/dist/utils/errors.js +0 -115
  262. package/dist/utils/errors.js.map +0 -1
  263. package/dist/utils/formatting.d.ts +0 -63
  264. package/dist/utils/formatting.d.ts.map +0 -1
  265. package/dist/utils/formatting.js +0 -125
  266. package/dist/utils/formatting.js.map +0 -1
  267. package/dist/utils/mpp.d.ts +0 -63
  268. package/dist/utils/mpp.d.ts.map +0 -1
  269. package/dist/utils/mpp.js +0 -137
  270. package/dist/utils/mpp.js.map +0 -1
  271. package/dist/utils/notify-parties.d.ts +0 -35
  272. package/dist/utils/notify-parties.d.ts.map +0 -1
  273. package/dist/utils/notify-parties.js +0 -59
  274. package/dist/utils/notify-parties.js.map +0 -1
  275. package/server.json +0 -30
@@ -0,0 +1,280 @@
1
+ // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
+ /**
3
+ * pica_upload MCP App card — generic drop zone.
4
+ *
5
+ * Renders a drop zone + file input, instantiates createUploadManager() from
6
+ * shared.ts, and reports uploaded file metadata back to the agent via
7
+ * app.updateModelContext() once all files have settled.
8
+ *
9
+ * DOM API only — never innerHTML.
10
+ */
11
+ import { buildAppHtml } from "./shared.js";
12
+ const UPLOAD_BODY = `
13
+ <div class="stack gap-6">
14
+ <header>
15
+ <h1 class="heading heading-lg" id="up-title">upload files</h1>
16
+ <p class="text-secondary" id="up-subtitle">drop files here or click to browse</p>
17
+ </header>
18
+
19
+ <section>
20
+ <div id="up-dropzone" class="up-dropzone">
21
+ <p class="text-secondary" id="up-dropzone-label">drop files here or click to browse</p>
22
+ <input type="file" id="up-input" multiple style="display: none;" />
23
+ </div>
24
+ <div id="up-thumbnails" class="up-thumbnails"></div>
25
+ <p class="text-tertiary" id="up-max-msg" style="margin-top: 8px; display: none;"></p>
26
+ <p class="text-tertiary" id="up-status" style="margin-top: 12px; display: none;"></p>
27
+ </section>
28
+ </div>
29
+
30
+ <style>
31
+ .up-dropzone {
32
+ background: rgba(255,255,255,0.03);
33
+ border: 1px dashed rgba(255,255,255,0.15);
34
+ border-radius: 12px;
35
+ padding: 64px 24px;
36
+ text-align: center;
37
+ cursor: pointer;
38
+ transition: background 0.15s, border-color 0.15s;
39
+ }
40
+ .up-dropzone.dragover {
41
+ background: rgba(184,115,51,0.05);
42
+ border-color: var(--accent);
43
+ }
44
+ .up-thumbnails {
45
+ display: flex;
46
+ gap: 12px;
47
+ flex-wrap: wrap;
48
+ margin-top: 16px;
49
+ }
50
+ .up-thumb {
51
+ position: relative;
52
+ min-width: 120px;
53
+ max-width: 180px;
54
+ padding: 12px;
55
+ border-radius: 8px;
56
+ border: 1px solid var(--card-border);
57
+ background: rgba(255,255,255,0.03);
58
+ font-size: 12px;
59
+ }
60
+ .up-thumb-filename {
61
+ color: var(--text-primary);
62
+ word-break: break-all;
63
+ margin-bottom: 4px;
64
+ }
65
+ .up-thumb-state {
66
+ color: var(--text-tertiary);
67
+ font-size: 11px;
68
+ }
69
+ .up-thumb-state-failed { border-color: rgba(255,80,80,0.5); }
70
+ .up-thumb-state-network_error { border-color: rgba(255,165,0,0.4); }
71
+ .up-thumb-state-uploaded { border-color: rgba(135,169,107,0.5); }
72
+ .up-thumb-remove {
73
+ position: absolute; top: 4px; right: 4px;
74
+ width: 18px; height: 18px; border-radius: 50%;
75
+ background: rgba(0,0,0,0.6);
76
+ color: white; font-size: 11px; border: none; cursor: pointer;
77
+ display: flex; align-items: center; justify-content: center;
78
+ }
79
+ @media (max-width: 600px) {
80
+ .up-dropzone { padding: 40px 16px; }
81
+ }
82
+ </style>
83
+ `;
84
+ const UPLOAD_JS = `
85
+ var upState = {
86
+ config: { accept: "any", purpose: null, max_files: null },
87
+ manager: null,
88
+ reported: false,
89
+ };
90
+
91
+ function upAcceptToAttr(accept) {
92
+ switch (accept) {
93
+ case "image": return "image/*";
94
+ case "audio": return "audio/*";
95
+ case "video": return "video/*";
96
+ case "document": return ".pdf,.doc,.docx,.txt,.csv,.xls,.xlsx,.rtf,.md";
97
+ default: return "";
98
+ }
99
+ }
100
+
101
+ function upRender(files) {
102
+ var container = document.getElementById("up-thumbnails");
103
+ if (!container) return;
104
+ container.textContent = "";
105
+
106
+ files.forEach(function (f) {
107
+ var thumb = document.createElement("div");
108
+ thumb.className = "up-thumb up-thumb-state-" + f.state;
109
+
110
+ var name = document.createElement("div");
111
+ name.className = "up-thumb-filename";
112
+ name.textContent = f.filename;
113
+ thumb.appendChild(name);
114
+
115
+ var stateEl = document.createElement("div");
116
+ stateEl.className = "up-thumb-state";
117
+ if (f.state === "uploading") stateEl.textContent = "uploading...";
118
+ else if (f.state === "uploaded") stateEl.textContent = "uploaded";
119
+ else if (f.state === "failed") stateEl.textContent = "failed — click to retry";
120
+ else if (f.state === "network_error") stateEl.textContent = "network error — check connection or use web dashboard";
121
+ else stateEl.textContent = f.state;
122
+ thumb.appendChild(stateEl);
123
+
124
+ if (f.state === "failed") {
125
+ thumb.style.cursor = "pointer";
126
+ thumb.onclick = function () { upState.manager.retryFile(f.id); };
127
+ }
128
+
129
+ var removeBtn = document.createElement("button");
130
+ removeBtn.className = "up-thumb-remove";
131
+ removeBtn.textContent = "\\u00D7";
132
+ removeBtn.onclick = function (e) {
133
+ e.stopPropagation();
134
+ upState.manager.removeFile(f.id);
135
+ };
136
+ thumb.appendChild(removeBtn);
137
+
138
+ container.appendChild(thumb);
139
+ });
140
+
141
+ upMaybeReport(files);
142
+ }
143
+
144
+ function upMaybeReport(files) {
145
+ if (upState.reported) return;
146
+ if (files.length === 0) return;
147
+ var settled = files.every(function (f) {
148
+ return f.state === "uploaded" || f.state === "failed" || f.state === "network_error";
149
+ });
150
+ if (!settled) return;
151
+
152
+ var uploaded = files
153
+ .filter(function (f) { return f.state === "uploaded"; })
154
+ .map(function (f) {
155
+ return {
156
+ id: f.upload_id || null,
157
+ url: f.url,
158
+ mime_type: f.mime_type,
159
+ size: f.size,
160
+ filename: f.filename,
161
+ uploaded_at: f.uploaded_at,
162
+ };
163
+ });
164
+
165
+ upState.reported = true;
166
+
167
+ var status = document.getElementById("up-status");
168
+ if (status) {
169
+ status.style.display = "block";
170
+ status.textContent = uploaded.length + " file(s) uploaded — returning to agent";
171
+ }
172
+
173
+ if (app && typeof app.updateModelContext === "function") {
174
+ try {
175
+ app.updateModelContext({
176
+ context: [{
177
+ type: "text",
178
+ text: JSON.stringify({ uploaded: uploaded }),
179
+ }],
180
+ });
181
+ } catch (err) {
182
+ console.warn("[pica_upload] updateModelContext failed:", err);
183
+ }
184
+ }
185
+ }
186
+
187
+ function upEnforceMaxFiles(incoming) {
188
+ var maxMsgEl = document.getElementById("up-max-msg");
189
+ if (maxMsgEl) {
190
+ maxMsgEl.style.display = "none";
191
+ maxMsgEl.textContent = "";
192
+ }
193
+ var max = upState.config.max_files;
194
+ if (!max || !upState.manager) return incoming;
195
+ var currentCount = upState.manager.getFiles().length;
196
+ var remaining = max - currentCount;
197
+ if (remaining <= 0) {
198
+ if (maxMsgEl) {
199
+ maxMsgEl.textContent = "max " + max + " files — extras ignored";
200
+ maxMsgEl.style.display = "block";
201
+ }
202
+ return [];
203
+ }
204
+ if (incoming.length > remaining) {
205
+ if (maxMsgEl) {
206
+ maxMsgEl.textContent = "max " + max + " files — extras ignored";
207
+ maxMsgEl.style.display = "block";
208
+ }
209
+ return Array.prototype.slice.call(incoming, 0, remaining);
210
+ }
211
+ return incoming;
212
+ }
213
+
214
+ function upSetup() {
215
+ var dz = document.getElementById("up-dropzone");
216
+ var input = document.getElementById("up-input");
217
+ var title = document.getElementById("up-title");
218
+ var subtitle = document.getElementById("up-subtitle");
219
+ var dzLabel = document.getElementById("up-dropzone-label");
220
+
221
+ if (upState.config.purpose && title) {
222
+ title.textContent = "upload: " + upState.config.purpose;
223
+ }
224
+ if (upState.config.accept && upState.config.accept !== "any" && subtitle) {
225
+ subtitle.textContent = "drop " + upState.config.accept + " files here or click to browse";
226
+ if (dzLabel) dzLabel.textContent = "drop " + upState.config.accept + " files here";
227
+ }
228
+
229
+ if (input) {
230
+ input.accept = upAcceptToAttr(upState.config.accept);
231
+ }
232
+ if (!dz || !input) return;
233
+
234
+ dz.addEventListener("click", function () { input.click(); });
235
+ input.addEventListener("change", function (e) {
236
+ if (e.target.files && e.target.files.length) {
237
+ var allowed = upEnforceMaxFiles(e.target.files);
238
+ if (allowed.length) {
239
+ upState.reported = false;
240
+ upState.manager.addFiles(allowed);
241
+ }
242
+ }
243
+ input.value = "";
244
+ });
245
+ dz.addEventListener("dragover", function (e) {
246
+ e.preventDefault();
247
+ dz.classList.add("dragover");
248
+ });
249
+ dz.addEventListener("dragleave", function () { dz.classList.remove("dragover"); });
250
+ dz.addEventListener("drop", function (e) {
251
+ e.preventDefault();
252
+ dz.classList.remove("dragover");
253
+ if (e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files.length) {
254
+ var allowed = upEnforceMaxFiles(e.dataTransfer.files);
255
+ if (allowed.length) {
256
+ upState.reported = false;
257
+ upState.manager.addFiles(allowed);
258
+ }
259
+ }
260
+ });
261
+ }
262
+
263
+ window.onPicaToolResult = function (data) {
264
+ if (data && data.config) {
265
+ upState.config = {
266
+ accept: data.config.accept || "any",
267
+ purpose: data.config.purpose || null,
268
+ max_files: data.config.max_files || null,
269
+ };
270
+ }
271
+ upState.manager = createUploadManager({
272
+ accept: upState.config.accept,
273
+ onStateChange: upRender,
274
+ app: app,
275
+ });
276
+ upSetup();
277
+ };
278
+ `;
279
+ export const UPLOAD_HTML = buildAppHtml("pica \u2014 upload", UPLOAD_BODY, UPLOAD_JS);
280
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/apps/upload.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEnB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMjB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CACrC,oBAAoB,EACpB,WAAW,EACX,SAAS,CACV,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,34 +1,13 @@
1
- /**
2
- * MCP Server Configuration
3
- */
4
1
  export interface ServerConfig {
5
- /**
6
- * PICA API key for authentication
7
- */
8
- picaApiKey: string;
9
- /**
10
- * PICA API base URL
11
- */
2
+ picaApiKey: string | null;
12
3
  picaApiUrl: string;
13
- /**
14
- * Server name shown to AI assistants
15
- */
16
4
  serverName: string;
17
- /**
18
- * Server version
19
- */
20
5
  version: string;
21
- /**
22
- * Enable debug logging
23
- */
24
6
  debug: boolean;
7
+ lobbyMode: boolean;
8
+ credentialsPath: string;
9
+ discoveryMode: boolean;
25
10
  }
26
- /**
27
- * Load configuration from environment variables
28
- */
29
11
  export declare function loadConfig(): ServerConfig;
30
- /**
31
- * Validate configuration
32
- */
33
12
  export declare function validateConfig(config: ServerConfig): void;
34
13
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAkBzC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAQzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,UAAU,IAAI,YAAY,CAwCzC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAWzD"}
package/dist/config.js CHANGED
@@ -1,28 +1,46 @@
1
1
  // Copyright (c) 2024-2026 Withpica Ltd. All rights reserved.
2
2
  /**
3
- * Load configuration from environment variables
3
+ * MCP Server Configuration
4
4
  */
5
+ import { readCredentials, getDefaultCredentialsPath, } from "@withpica/mcp-utils";
5
6
  export function loadConfig() {
6
- const picaApiKey = process.env.PICA_API_KEY;
7
+ const credentialsPath = process.env.PICA_CREDENTIALS_PATH || getDefaultCredentialsPath();
8
+ const debug = process.env.DEBUG === "true" || process.env.DEBUG === "1";
9
+ // Priority 1: env var
10
+ let picaApiKey = process.env.PICA_API_KEY || null;
11
+ // Priority 2: credentials file
7
12
  if (!picaApiKey) {
8
- throw new Error("PICA_API_KEY environment variable is required.\n" +
9
- "Please set it to your PICA API key:\n" +
10
- 'export PICA_API_KEY="your-api-key-here"');
13
+ const creds = readCredentials(credentialsPath);
14
+ if (creds) {
15
+ picaApiKey = creds.api_key;
16
+ if (debug) {
17
+ console.error(`[MCP Server] Loaded credentials for ${creds.email}`);
18
+ }
19
+ }
20
+ }
21
+ const lobbyMode = !picaApiKey;
22
+ const discoveryMode = process.env.MCP_LAYERED_DISCOVERY === "1";
23
+ if (lobbyMode && debug) {
24
+ console.error("[MCP Server] No API key found — starting in lobby mode");
25
+ }
26
+ if (discoveryMode && debug) {
27
+ console.error("[MCP Server] Layered discovery mode enabled");
11
28
  }
12
29
  return {
13
30
  picaApiKey,
14
31
  picaApiUrl: process.env.PICA_API_URL || "https://withpica.com/api",
15
32
  serverName: "pica-mcp-server",
16
- version: "2.4.0",
17
- debug: process.env.DEBUG === "true" || process.env.DEBUG === "1",
33
+ version: "2.5.0",
34
+ debug,
35
+ lobbyMode,
36
+ credentialsPath,
37
+ discoveryMode,
18
38
  };
19
39
  }
20
- /**
21
- * Validate configuration
22
- */
23
40
  export function validateConfig(config) {
24
- if (!config.picaApiKey || config.picaApiKey.trim() === "") {
25
- throw new Error("PICA API key cannot be empty");
41
+ if (!config.lobbyMode &&
42
+ (!config.picaApiKey || config.picaApiKey.trim() === "")) {
43
+ throw new Error("PICA API key cannot be empty when not in lobby mode");
26
44
  }
27
45
  if (!config.picaApiUrl || !config.picaApiUrl.startsWith("http")) {
28
46
  throw new Error("Invalid PICA API URL");
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAiC7D;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,kDAAkD;YAChD,uCAAuC;YACvC,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU;QACV,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,0BAA0B;QAClE,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;KACjE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D;;GAEG;AAEH,OAAO,EACL,eAAe,EACf,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAa7B,MAAM,UAAU,UAAU;IACxB,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,yBAAyB,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;IAExE,sBAAsB;IACtB,IAAI,UAAU,GAAkB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;IAEjE,+BAA+B;IAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,uCAAuC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC;IAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,CAAC;IAEhE,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,UAAU;QACV,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,0BAA0B;QAClE,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,OAAO;QAChB,KAAK;QACL,SAAS;QACT,eAAe;QACf,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,IACE,CAAC,MAAM,CAAC,SAAS;QACjB,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EACvD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -8,13 +8,13 @@ import { loadConfig, validateConfig } from "./config.js";
8
8
  import { PicaMcpServer } from "./server.js";
9
9
  async function main() {
10
10
  try {
11
- // Load and validate configuration
12
11
  const config = loadConfig();
13
12
  validateConfig(config);
14
- // Create and start server
13
+ if (config.lobbyMode) {
14
+ console.error('[MCP Server] Starting in lobby mode — say "sign me in" to connect');
15
+ }
15
16
  const server = new PicaMcpServer(config);
16
17
  await server.start();
17
- // Handle graceful shutdown
18
18
  process.on("SIGINT", async () => {
19
19
  console.error("[MCP Server] Shutting down...");
20
20
  await server.stop();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,6DAA6D;AAG7D;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;QAEvB,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,6DAA6D;AAE7D;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;QAEvB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -113,9 +113,9 @@ export class PromptRegistry {
113
113
 
114
114
  Use the following tools to gather data:
115
115
  1. pica_catalog_stats - Get overall statistics
116
- 2. pica_works_list - Review works data
117
- 3. pica_people_list - Review people data
118
- 4. pica_recordings_list - Review recordings data
116
+ 2. pica_works_query - Review works data
117
+ 3. pica_people_query - Review people data
118
+ 4. pica_recordings_query - Review recordings data
119
119
 
120
120
  Analyze and report on:
121
121
  - Overall catalog size and composition
@@ -144,8 +144,8 @@ Please provide specific, actionable insights.`,
144
144
  text: `Please help me find potential duplicate works and people in my catalog.
145
145
 
146
146
  Use these tools:
147
- 1. pica_works_list - Get all works
148
- 2. pica_people_list - Get all people
147
+ 1. pica_works_query - Get all works
148
+ 2. pica_people_query - Get all people
149
149
 
150
150
  Look for:
151
151
  - Works with very similar or identical titles
@@ -177,8 +177,8 @@ Be thorough but conservative - only flag items that have a strong likelihood of
177
177
  text: `Please identify works and people that could benefit from metadata enrichment.
178
178
 
179
179
  Use these tools:
180
- 1. pica_works_list - Get all works
181
- 2. pica_people_list - Get all people
180
+ 1. pica_works_query - Get all works
181
+ 2. pica_people_query - Get all people
182
182
 
183
183
  Identify:
184
184
  - People without ISNI identifiers who might have one
@@ -211,9 +211,9 @@ Focus on people and works where enrichment would add the most value.`,
211
211
  text: `Please review unverified works and suggest which ones are ready for verification.
212
212
 
213
213
  Use these tools:
214
- 1. pica_works_list with verified: false - Get unverified works
214
+ 1. pica_works_query with verified: false - Get unverified works
215
215
  2. pica_recordings_by_work - Check if works have recordings
216
- 3. pica_people_list - Check for associated people/credits
216
+ 3. pica_people_query - Check for associated people/credits
217
217
 
218
218
  For each unverified work, assess:
219
219
  - Does it have complete metadata (title, type, duration)?
@@ -245,9 +245,9 @@ Provide specific recommendations for each category, including what's needed to m
245
245
  text: `Please assess the health of my music catalog using the PICA Score.
246
246
 
247
247
  Use these tools:
248
- 1. pica_score_get - Get the PICA Score with pillar breakdown
248
+ 1. pica_works_inspect({ sections: ["score"] }) - Get the PICA Score with pillar breakdown
249
249
  2. pica_catalog_stats - Get raw catalog statistics for additional context
250
- 3. pica_works_list - Sample works data to understand quality
250
+ 3. pica_works_query - Sample works data to understand quality
251
251
 
252
252
  Analyze:
253
253
  - The composite score and grade — is this catalog ready for commercial use?
@@ -278,9 +278,9 @@ Provide:
278
278
  text: `Please audit the credits across my music catalog to find gaps and issues.
279
279
 
280
280
  Use these tools:
281
- 1. pica_works_list - Get all works
281
+ 1. pica_works_query - Get all works
282
282
  2. pica_credits_list - Check credits for each work (sample at least 20 works, prioritizing recent ones)
283
- 3. pica_people_list - Cross-reference credited people
283
+ 3. pica_people_query - Cross-reference credited people
284
284
 
285
285
  Look for:
286
286
  - Works with no credits at all (no collaborators assigned)
@@ -327,7 +327,7 @@ After importing, guide me through closing the loop on each work:
327
327
  - Who wrote these songs? (pica_credits_update — add writers and set splits)
328
328
  - Are there publishing details registered? (pica_enrich_work_mlc — check MLC)
329
329
  - Do I have audio files to upload? (pica_audio_presigned_upload — for analysis)
330
- - What identifiers are missing? (pica_enrichment_status — check coverage)
330
+ - What identifiers are missing? (pica_works_inspect with sections: ["enrichment"] — check coverage)
331
331
 
332
332
  Don't push — let me stop whenever I want. But always let me know what the next valuable step would be.
333
333
 
@@ -346,8 +346,8 @@ Important: I can always log in at withpica.com to see, verify, and manage everyt
346
346
  */
347
347
  getCloseTheLoopPrompt(workId) {
348
348
  const workInstruction = workId
349
- ? `Check completeness for work ${workId} using pica_work_completeness.`
350
- : `Ask me which work I'd like to check, or use pica_completeness_low to find works that need the most attention.`;
349
+ ? `Check completeness for work ${workId} using pica_works_inspect({ id: "${workId || "..."}", sections: ["completeness"] }).`
350
+ : `Ask me which work I'd like to check, or use pica_works_query({ health_filter: "low_completeness" }) to find works that need the most attention.`;
351
351
  return {
352
352
  messages: [
353
353
  {
@@ -359,9 +359,9 @@ Important: I can always log in at withpica.com to see, verify, and manage everyt
359
359
  ${workInstruction}
360
360
 
361
361
  For the work, check every aspect of completeness:
362
- 1. pica_work_completeness — get the full gap analysis
362
+ 1. pica_works_inspect with sections: ["completeness"] — get the full gap analysis
363
363
  2. pica_credits_list — check if credits and splits are assigned
364
- 3. pica_enrichment_status — check what enrichment sources have been tried
364
+ 3. pica_works_inspect with sections: ["enrichment"] — check what enrichment sources have been tried
365
365
 
366
366
  For each gap found, offer a specific action:
367
367
  - Missing credits → "Want me to add writers? Who wrote this song?"
@@ -371,7 +371,7 @@ For each gap found, offer a specific action:
371
371
  - No audio → "Got a master recording to upload?"
372
372
  - Audio not analysed → "Want me to analyse the audio for BPM, key, and mood?"
373
373
  - No agreements → "Is there a publishing agreement for this work?"
374
- - Not registered → "Want me to check registration status?" (pica_registration_coverage)
374
+ - Not registered → "Want me to check registration status?" (pica_works_inspect with sections: ["registration"])
375
375
 
376
376
  Work through each gap one at a time. Let me skip any I'm not ready for. After each fix, check if the completeness score improved.
377
377
 
@@ -394,8 +394,8 @@ Keep it conversational — don't list all gaps at once. Start with the most impo
394
394
  text: `Help me check which of my works are registered and which still need registration.
395
395
 
396
396
  Steps:
397
- 1. pica_registration_coverageget an overview of registration status across PROs (PRS, MCPS, PPL, MLC)
398
- 2. For works that aren't registered, use pica_work_registration_status on a sample to understand what's blocking registration
397
+ 1. pica_works_querylist works, then use pica_works_inspect with sections: ["registration"] to check registration status across PROs (PRS, MCPS, PPL, MLC)
398
+ 2. For works that aren't registered, use pica_works_inspect with sections: ["registration", "completeness"] on a sample to understand what's blocking registration
399
399
  3. Identify common blockers:
400
400
  - Missing ISWC (needed for PRS/MCPS) → suggest pica_enrich_work_mlc
401
401
  - Missing ISRC (needed for PPL) → check if recordings have ISRCs
@@ -439,7 +439,7 @@ If the catalog is EMPTY (0 works):
439
439
  → Use the new-catalog-setup workflow. Welcome me, explain how to import music (Spotify link, spreadsheet, screenshot, or just describe songs), and get started.
440
440
 
441
441
  If the catalog has works but LOW completeness (PICA Score below 50 or many gaps):
442
- → Use pica_completeness_low to find the works that need the most attention.
442
+ → Use pica_works_query({ health_filter: "low_completeness" }) to find the works that need the most attention.
443
443
  → Pick the top 3 and offer to run close-the-loop on them one at a time.
444
444
  → Tell me: "Your catalog has [N] works but many have gaps. Want me to start closing the loop on the ones that need the most attention?"
445
445
 
@@ -453,7 +453,7 @@ If the catalog is HEALTHY (score above 70, few gaps):
453
453
  → Use assess-catalog-health for a maintenance check. Tell me: "Your catalog looks solid. Here's a quick health check and what could still improve."
454
454
 
455
455
  If none of the above clearly applies:
456
- → Use pica_catalog_stats and pica_score_get to give me a quick summary, then ask what I'd like to focus on.
456
+ → Use pica_catalog_stats and pica_works_inspect({ sections: ["score"] }) to give me a quick summary, then ask what I'd like to focus on.
457
457
 
458
458
  Step 3 — Explain your routing:
459
459
  Tell me WHY you chose the workflow you did, in one sentence. Example: "Your catalog has 42 works but 28 are missing credits, so let's close those gaps first."
@@ -481,7 +481,7 @@ Important: Don't run all workflows at once. Pick the single most valuable action
481
481
 
482
482
  Steps:
483
483
  1. pica_catalog_stats — get an overview of the catalog
484
- 2. pica_works_list — sample works to check what's missing for sync readiness
484
+ 2. pica_works_query — sample works to check what's missing for sync readiness
485
485
  3. For each work, check:
486
486
  - Has audio been uploaded? (supervisors need to hear it)
487
487
  - Has audio been analysed? (BPM, key, energy, mood — needed for search)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AA6B7D,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,WAAW;QACT,OAAO;YACL;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,+FAA+F;gBACjG,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,kEAAkE;gBACpE,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,2FAA2F;gBAC7F,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EACT,2EAA2E;gBAC7E,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EACT,6GAA6G;gBAC/G,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,WAAW,EACT,+EAA+E;gBACjF,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EACT,iIAAiI;gBACnI,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,mEAAmE;gBACrE,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,uCAAuC;wBACpD,QAAQ,EAAE,IAAI;qBACf;iBACF;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EACT,+EAA+E;gBACjF,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EACT,iFAAiF;gBACnF,SAAS,EAAE,EAAE;aACd;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EACT,2HAA2H;gBAC7H,SAAS,EAAE,EAAE;aACd;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,IAA0B;QACtD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAExC,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAExC,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAExC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAErC,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAE7C,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAEtC,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAEzC,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAEzC,KAAK,kBAAkB;gBACrB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAExC,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAE5C;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;8CAgB4B;qBACnC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;kGAiBgF;qBACvF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;qEAkBmD;qBAC1D;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;mGAkBiF;qBACxF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,4BAA4B;QAClC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;8GAiB4F;qBACnG;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;iFAoB+D;qBACtE;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;6IAwB2H;qBAClI;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAe;QAC3C,MAAM,eAAe,GAAG,MAAM;YAC5B,CAAC,CAAC,+BAA+B,MAAM,gCAAgC;YACvE,CAAC,CAAC,+GAA+G,CAAC;QAEpH,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;EAEhB,eAAe;;;;;;;;;;;;;;;;;;;uGAmBsF;qBAC5F;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;mDAqBiC;qBACxC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,2BAA2B;QACjC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gIAiC8G;qBACrH;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;0GAuBwF;qBAC/F;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * Resource Registry for MCP Server
3
3
  * Manages read-only data resources that AI assistants can access
4
4
  */
5
- import { PicaClient } from "../pica-sdk.js";
5
+ import { PicaClient } from "@withpica/mcp-sdk";
6
+ import { ServerConfig } from "../config.js";
6
7
  export interface ResourceDefinition {
7
8
  uri: string;
8
9
  name: string;
@@ -19,7 +20,8 @@ export interface ResourceContent {
19
20
  export type ResourceResult = any;
20
21
  export declare class ResourceRegistry {
21
22
  private pica;
22
- constructor(pica: PicaClient);
23
+ private config?;
24
+ constructor(pica: PicaClient | null, config?: ServerConfig);
23
25
  /**
24
26
  * List all available resources
25
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQ5C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IAgErC;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0C7C;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;YACW,YAAY;IA4B1B;;OAEG;YACW,aAAa;IA4B3B;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,eAAe;IAoD7B;;OAEG;YACW,gBAAgB;IAc9B;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;YACW,eAAe;CAa9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,MAAM,CAAC,CAAe;gBAElB,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,YAAY;IAK1D;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IA8FrC;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA8G7C;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;YACW,YAAY;IA4B1B;;OAEG;YACW,aAAa;IA4B3B;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,eAAe;IAoD7B;;OAEG;YACW,gBAAgB;IAc9B;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;YACW,eAAe;CAa9B"}