@withpica/mcp-server 2.52.0 → 2.52.1

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 (251) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/prompts/creator-question-atlas.d.ts +48 -0
  3. package/dist/prompts/creator-question-atlas.d.ts.map +1 -0
  4. package/dist/prompts/creator-question-atlas.js +618 -0
  5. package/dist/prompts/creator-question-atlas.js.map +1 -0
  6. package/dist/prompts/index.d.ts +32 -0
  7. package/dist/prompts/index.d.ts.map +1 -1
  8. package/dist/prompts/index.js +235 -0
  9. package/dist/prompts/index.js.map +1 -1
  10. package/dist/resources/index.d.ts +10 -0
  11. package/dist/resources/index.d.ts.map +1 -1
  12. package/dist/resources/index.js +134 -1
  13. package/dist/resources/index.js.map +1 -1
  14. package/dist/server-instructions.d.ts +4 -3
  15. package/dist/server-instructions.d.ts.map +1 -1
  16. package/dist/server-instructions.js +4 -1
  17. package/dist/server-instructions.js.map +1 -1
  18. package/dist/server.d.ts +26 -0
  19. package/dist/server.d.ts.map +1 -1
  20. package/dist/server.js +108 -10
  21. package/dist/server.js.map +1 -1
  22. package/dist/skills/index.d.ts +42 -0
  23. package/dist/skills/index.d.ts.map +1 -0
  24. package/dist/skills/index.js +59 -0
  25. package/dist/skills/index.js.map +1 -0
  26. package/dist/skills/skills.generated.d.ts +25 -0
  27. package/dist/skills/skills.generated.d.ts.map +1 -0
  28. package/dist/skills/skills.generated.js +86 -0
  29. package/dist/skills/skills.generated.js.map +1 -0
  30. package/dist/tools/access-simulate.d.ts +23 -0
  31. package/dist/tools/access-simulate.d.ts.map +1 -0
  32. package/dist/tools/access-simulate.js +165 -0
  33. package/dist/tools/access-simulate.js.map +1 -0
  34. package/dist/tools/agent-identity.d.ts.map +1 -1
  35. package/dist/tools/agent-identity.js +15 -0
  36. package/dist/tools/agent-identity.js.map +1 -1
  37. package/dist/tools/agreement-types.d.ts.map +1 -1
  38. package/dist/tools/agreement-types.js +24 -0
  39. package/dist/tools/agreement-types.js.map +1 -1
  40. package/dist/tools/agreements.d.ts.map +1 -1
  41. package/dist/tools/agreements.js +21 -3
  42. package/dist/tools/agreements.js.map +1 -1
  43. package/dist/tools/analytics.d.ts.map +1 -1
  44. package/dist/tools/analytics.js +19 -1
  45. package/dist/tools/analytics.js.map +1 -1
  46. package/dist/tools/app-tools.d.ts.map +1 -1
  47. package/dist/tools/app-tools.js +11 -2
  48. package/dist/tools/app-tools.js.map +1 -1
  49. package/dist/tools/assets.d.ts.map +1 -1
  50. package/dist/tools/assets.js +33 -0
  51. package/dist/tools/assets.js.map +1 -1
  52. package/dist/tools/audio-files.d.ts +5 -0
  53. package/dist/tools/audio-files.d.ts.map +1 -1
  54. package/dist/tools/audio-files.js +91 -0
  55. package/dist/tools/audio-files.js.map +1 -1
  56. package/dist/tools/audit.d.ts.map +1 -1
  57. package/dist/tools/audit.js +11 -2
  58. package/dist/tools/audit.js.map +1 -1
  59. package/dist/tools/auth.d.ts.map +1 -1
  60. package/dist/tools/auth.js +6 -0
  61. package/dist/tools/auth.js.map +1 -1
  62. package/dist/tools/bulk.d.ts +4 -0
  63. package/dist/tools/bulk.d.ts.map +1 -1
  64. package/dist/tools/bulk.js +304 -0
  65. package/dist/tools/bulk.js.map +1 -1
  66. package/dist/tools/calendar.d.ts.map +1 -1
  67. package/dist/tools/calendar.js +3 -0
  68. package/dist/tools/calendar.js.map +1 -1
  69. package/dist/tools/collaborators.d.ts.map +1 -1
  70. package/dist/tools/collaborators.js +24 -3
  71. package/dist/tools/collaborators.js.map +1 -1
  72. package/dist/tools/comparisons.d.ts.map +1 -1
  73. package/dist/tools/comparisons.js +6 -0
  74. package/dist/tools/comparisons.js.map +1 -1
  75. package/dist/tools/credits.d.ts +18 -0
  76. package/dist/tools/credits.d.ts.map +1 -1
  77. package/dist/tools/credits.js +344 -4
  78. package/dist/tools/credits.js.map +1 -1
  79. package/dist/tools/custody.d.ts.map +1 -1
  80. package/dist/tools/custody.js +23 -2
  81. package/dist/tools/custody.js.map +1 -1
  82. package/dist/tools/dashboard.d.ts.map +1 -1
  83. package/dist/tools/dashboard.js +43 -7
  84. package/dist/tools/dashboard.js.map +1 -1
  85. package/dist/tools/directory.d.ts.map +1 -1
  86. package/dist/tools/directory.js +3 -0
  87. package/dist/tools/directory.js.map +1 -1
  88. package/dist/tools/discovery.d.ts.map +1 -1
  89. package/dist/tools/discovery.js +99 -2
  90. package/dist/tools/discovery.js.map +1 -1
  91. package/dist/tools/disputes.d.ts.map +1 -1
  92. package/dist/tools/disputes.js +4 -1
  93. package/dist/tools/disputes.js.map +1 -1
  94. package/dist/tools/documents.d.ts.map +1 -1
  95. package/dist/tools/documents.js +3 -0
  96. package/dist/tools/documents.js.map +1 -1
  97. package/dist/tools/duplicates.d.ts.map +1 -1
  98. package/dist/tools/duplicates.js +6 -0
  99. package/dist/tools/duplicates.js.map +1 -1
  100. package/dist/tools/enrichment.d.ts.map +1 -1
  101. package/dist/tools/enrichment.js +33 -0
  102. package/dist/tools/enrichment.js.map +1 -1
  103. package/dist/tools/explainability.d.ts +24 -0
  104. package/dist/tools/explainability.d.ts.map +1 -0
  105. package/dist/tools/explainability.js +137 -0
  106. package/dist/tools/explainability.js.map +1 -0
  107. package/dist/tools/exports.d.ts.map +1 -1
  108. package/dist/tools/exports.js +18 -3
  109. package/dist/tools/exports.js.map +1 -1
  110. package/dist/tools/feedback.d.ts.map +1 -1
  111. package/dist/tools/feedback.js +3 -0
  112. package/dist/tools/feedback.js.map +1 -1
  113. package/dist/tools/files.d.ts.map +1 -1
  114. package/dist/tools/files.js +22 -0
  115. package/dist/tools/files.js.map +1 -1
  116. package/dist/tools/groups.d.ts.map +1 -1
  117. package/dist/tools/groups.js +12 -0
  118. package/dist/tools/groups.js.map +1 -1
  119. package/dist/tools/import-documents.d.ts.map +1 -1
  120. package/dist/tools/import-documents.js +10 -1
  121. package/dist/tools/import-documents.js.map +1 -1
  122. package/dist/tools/import.d.ts.map +1 -1
  123. package/dist/tools/import.js +65 -18
  124. package/dist/tools/import.js.map +1 -1
  125. package/dist/tools/index.d.ts +142 -6
  126. package/dist/tools/index.d.ts.map +1 -1
  127. package/dist/tools/index.js +289 -108
  128. package/dist/tools/index.js.map +1 -1
  129. package/dist/tools/integrations.d.ts.map +1 -1
  130. package/dist/tools/integrations.js +28 -8
  131. package/dist/tools/integrations.js.map +1 -1
  132. package/dist/tools/labels.d.ts.map +1 -1
  133. package/dist/tools/labels.js +3 -0
  134. package/dist/tools/labels.js.map +1 -1
  135. package/dist/tools/licensing.d.ts.map +1 -1
  136. package/dist/tools/licensing.js +15 -0
  137. package/dist/tools/licensing.js.map +1 -1
  138. package/dist/tools/memory.d.ts.map +1 -1
  139. package/dist/tools/memory.js +15 -3
  140. package/dist/tools/memory.js.map +1 -1
  141. package/dist/tools/metadata.d.ts.map +1 -1
  142. package/dist/tools/metadata.js +112 -0
  143. package/dist/tools/metadata.js.map +1 -1
  144. package/dist/tools/multimedia.d.ts.map +1 -1
  145. package/dist/tools/multimedia.js +15 -0
  146. package/dist/tools/multimedia.js.map +1 -1
  147. package/dist/tools/my-recent-questions.d.ts +25 -0
  148. package/dist/tools/my-recent-questions.d.ts.map +1 -0
  149. package/dist/tools/my-recent-questions.js +186 -0
  150. package/dist/tools/my-recent-questions.js.map +1 -0
  151. package/dist/tools/my-reported-issues.d.ts.map +1 -1
  152. package/dist/tools/my-reported-issues.js +3 -0
  153. package/dist/tools/my-reported-issues.js.map +1 -1
  154. package/dist/tools/notes.d.ts.map +1 -1
  155. package/dist/tools/notes.js +12 -0
  156. package/dist/tools/notes.js.map +1 -1
  157. package/dist/tools/notifications.d.ts.map +1 -1
  158. package/dist/tools/notifications.js +25 -1
  159. package/dist/tools/notifications.js.map +1 -1
  160. package/dist/tools/onboarding.d.ts.map +1 -1
  161. package/dist/tools/onboarding.js +3 -0
  162. package/dist/tools/onboarding.js.map +1 -1
  163. package/dist/tools/people.d.ts +4 -0
  164. package/dist/tools/people.d.ts.map +1 -1
  165. package/dist/tools/people.js +58 -1
  166. package/dist/tools/people.js.map +1 -1
  167. package/dist/tools/projects.d.ts.map +1 -1
  168. package/dist/tools/projects.js +18 -0
  169. package/dist/tools/projects.js.map +1 -1
  170. package/dist/tools/public-filter.d.ts.map +1 -1
  171. package/dist/tools/public-filter.js +6 -0
  172. package/dist/tools/public-filter.js.map +1 -1
  173. package/dist/tools/publishers.d.ts.map +1 -1
  174. package/dist/tools/publishers.js +6 -0
  175. package/dist/tools/publishers.js.map +1 -1
  176. package/dist/tools/recordings.d.ts.map +1 -1
  177. package/dist/tools/recordings.js +15 -0
  178. package/dist/tools/recordings.js.map +1 -1
  179. package/dist/tools/recovery-hints.d.ts.map +1 -1
  180. package/dist/tools/recovery-hints.js +105 -0
  181. package/dist/tools/recovery-hints.js.map +1 -1
  182. package/dist/tools/release-rich.d.ts.map +1 -1
  183. package/dist/tools/release-rich.js +4 -2
  184. package/dist/tools/release-rich.js.map +1 -1
  185. package/dist/tools/releases.d.ts.map +1 -1
  186. package/dist/tools/releases.js +55 -0
  187. package/dist/tools/releases.js.map +1 -1
  188. package/dist/tools/report-issue.d.ts.map +1 -1
  189. package/dist/tools/report-issue.js +3 -0
  190. package/dist/tools/report-issue.js.map +1 -1
  191. package/dist/tools/royalties.d.ts.map +1 -1
  192. package/dist/tools/royalties.js +18 -3
  193. package/dist/tools/royalties.js.map +1 -1
  194. package/dist/tools/search.d.ts.map +1 -1
  195. package/dist/tools/search.js +10 -1
  196. package/dist/tools/search.js.map +1 -1
  197. package/dist/tools/send.d.ts.map +1 -1
  198. package/dist/tools/send.js +9 -0
  199. package/dist/tools/send.js.map +1 -1
  200. package/dist/tools/sessions.d.ts.map +1 -1
  201. package/dist/tools/sessions.js +12 -0
  202. package/dist/tools/sessions.js.map +1 -1
  203. package/dist/tools/settings.d.ts.map +1 -1
  204. package/dist/tools/settings.js +30 -3
  205. package/dist/tools/settings.js.map +1 -1
  206. package/dist/tools/share-links.d.ts.map +1 -1
  207. package/dist/tools/share-links.js +15 -0
  208. package/dist/tools/share-links.js.map +1 -1
  209. package/dist/tools/share-send.d.ts +28 -0
  210. package/dist/tools/share-send.d.ts.map +1 -0
  211. package/dist/tools/share-send.js +131 -0
  212. package/dist/tools/share-send.js.map +1 -0
  213. package/dist/tools/sharing.d.ts +29 -0
  214. package/dist/tools/sharing.d.ts.map +1 -0
  215. package/dist/tools/sharing.js +131 -0
  216. package/dist/tools/sharing.js.map +1 -0
  217. package/dist/tools/signup.d.ts.map +1 -1
  218. package/dist/tools/signup.js +3 -0
  219. package/dist/tools/signup.js.map +1 -1
  220. package/dist/tools/skills.d.ts +25 -0
  221. package/dist/tools/skills.d.ts.map +1 -0
  222. package/dist/tools/skills.js +144 -0
  223. package/dist/tools/skills.js.map +1 -0
  224. package/dist/tools/split-sheets.d.ts.map +1 -1
  225. package/dist/tools/split-sheets.js +22 -1
  226. package/dist/tools/split-sheets.js.map +1 -1
  227. package/dist/tools/storage-config.d.ts.map +1 -1
  228. package/dist/tools/storage-config.js +6 -0
  229. package/dist/tools/storage-config.js.map +1 -1
  230. package/dist/tools/subscription.d.ts.map +1 -1
  231. package/dist/tools/subscription.js +9 -10
  232. package/dist/tools/subscription.js.map +1 -1
  233. package/dist/tools/sync-placements.d.ts.map +1 -1
  234. package/dist/tools/sync-placements.js +20 -2
  235. package/dist/tools/sync-placements.js.map +1 -1
  236. package/dist/tools/team.d.ts.map +1 -1
  237. package/dist/tools/team.js +15 -0
  238. package/dist/tools/team.js.map +1 -1
  239. package/dist/tools/telegram.d.ts.map +1 -1
  240. package/dist/tools/telegram.js +9 -0
  241. package/dist/tools/telegram.js.map +1 -1
  242. package/dist/tools/uploads.d.ts.map +1 -1
  243. package/dist/tools/uploads.js +6 -0
  244. package/dist/tools/uploads.js.map +1 -1
  245. package/dist/tools/works.d.ts +4 -0
  246. package/dist/tools/works.d.ts.map +1 -1
  247. package/dist/tools/works.js +83 -3
  248. package/dist/tools/works.js.map +1 -1
  249. package/package.json +7 -6
  250. package/scripts/build-skills.ts +229 -0
  251. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -11,6 +11,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ### Added
15
+
16
+ - **File-delivery tools `pica_file_deliver` + `pica_file_revoke_delivery` (PR #385, shipped 2026-05-12 in `@withpica/mcp-server@2.52.0`).**
17
+ Agent-facing counterpart to the upload tools — symmetric with `pica_upload` /
18
+ `pica_upload_file`. Wraps the first-class `/admin/files/deliver` surface
19
+ (token + recipient_email + expiry + revocation) so agents can share files
20
+ out of PICA with audit-trail accountability and a kill switch. Default
21
+ expiry 48 hours; max 168 (one week). Registered in `discovery.uploads`
22
+ (now bidirectional), `metadata.ts`, `recovery-hints.ts` (deliver →
23
+ `rich_response`, revoke → `terminal`), and `lib/billing/tool-cost-model.data.ts`
24
+ (deliver → export/EXPORT, revoke → admin/ADMIN). Backed by new
25
+ `FilesResource` on `@withpica/mcp-sdk@1.25.0`.
26
+
27
+ - **ADR-214 follow-up: cross-transport resource parity lint (`scripts/lint-resource-coverage.ts`).**
28
+ Asserts that `ResourceRegistry.listResources()` (stdio) and `UI_RESOURCE_DEFS` / the
29
+ anonymous-lobby handler (HTTP, `app/api/mcp/route.ts`) expose the same resource URIs.
30
+ Catches the W2 drift class — resources added to one transport only — before publish.
31
+ Four assertions: stdio-lobby ⊆ HTTP-lobby, HTTP-lobby ⊆ stdio-lobby,
32
+ stdio-authenticated \ ADR-152-carve-out ⊆ HTTP-authenticated, and the inverse
33
+ HTTP-authenticated ⊆ stdio-authenticated. Wired into `prepublishOnly` (after
34
+ `lint:agent-guide`) and `.github/workflows/mcp-tool-lint.yml`.
35
+
36
+ **Pre-existing drift detected:** `pica://schemas/sync-placement-required` is present
37
+ in `UI_RESOURCE_DEFS` (added in 2.47.0 per CHANGELOG) but absent from
38
+ `ResourceRegistry.listResources()`. The lint correctly flags this; see the PR for
39
+ the fix path.
40
+
41
+ ### Changed
42
+
43
+ - **`metadata.test.ts` invariants tightened + counts re-baselined (PR #385).**
44
+ Four long-standing failures resolved as part of the file-delivery sweep:
45
+ (1) stale total-count assertion (175 → 242) reframed as a documented
46
+ tripwire — drift means a tool was added without a `TOOL_METADATA` entry;
47
+ (2) stale destructive-count assertion (12 → 17) — same shape, security-
48
+ relevant because the destructive-tool dispatcher routes on `risk`;
49
+ (3) `display_name` lowercase rule was over-strict — relaxed to "first
50
+ character lowercase" so legitimate acronyms (S3, GDPR, ISNI, PICA, Azure,
51
+ OAuth) pass per `.claude/rules/ui-components.md`'s proper-noun convention;
52
+ (4) `pica_storage_disconnect` had `risk: "destructive"` + `retry_safe: true`
53
+ in violation of the destructive-tool invariant — flipped `retry_safe` to
54
+ `false`. Two-step confirmation token remains the actual safety mechanism;
55
+ the tool's data-level idempotence claim stays true.
56
+
57
+ - **Tool registry catch path now forwards `error_message` to the audit log (PR #308).**
58
+ When a tool throws, the registry calls `formatError()` and now passes the
59
+ parsed `message` through to `logToolExecution` as `error_message`. Pre-fix,
60
+ every error row in `mcp_audit_log` landed with `error_message=null` because
61
+ the wire shape stripped the field — even when the wrapper held the
62
+ underlying cause. Net effect for diagnostics: rows like the 116 silent
63
+ `pica_merge_duplicates` failures on 2026-04-09 (which couldn't be
64
+ attributed to any specific cause) will now carry the message going forward.
65
+ Sister change in `@withpica/mcp-utils` adds the field to `McpAuditEntry`.
66
+
67
+ - **`pica_integrations_status` advertisement updated to current tools (PR #308).**
68
+ ADR-179 (commit `dc1bfca72`, 2026-04-21) folded the six per-source
69
+ `pica_enrich_*` tools into `pica_resolve_work` / `pica_resolve_person` /
70
+ `pica_resolve_recording` with a `sources:[...]` parameter, then removed
71
+ them. But `mcp-server/src/tools/integrations.ts` continued to advertise
72
+ the removed names in the `platformReads` list, the tool description, and
73
+ the summary prose. Agents reading the advertisement called names that no
74
+ longer existed → UNKNOWN*ERROR loops on every catalog-enrichment ask
75
+ routed through MLC/Spotify/MusicBrainz/YouTube/Discogs/ISNI. Now points
76
+ at the surviving tools with the correct source value. Two regression
77
+ tests in `integrations.test.ts` lock down that no removed
78
+ `pica_enrich*\*`tool name appears in the advertised`use_via` strings.
79
+
14
80
  ## [2.48.0] - 2026-05-03
15
81
 
16
82
  ### Changed
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Creator Question Atlas — ADR-226 Decision 1.
3
+ *
4
+ * Source-of-truth registry mapping natural creator questions to the
5
+ * canonical PICA tool / prompt resolution. Read by:
6
+ *
7
+ * - lint Rule 11 (Phase 7) — to validate every `vernacular_kind:'creator-entry'`
8
+ * tool's `Use when the user asks` block cites questions that resolve here
9
+ * - the Atlas-taxonomy coupling lint (Decision 12, Phase 7) — `natural_domain`
10
+ * must match `discovery.ts` CATEGORIES membership for the resolved tool
11
+ * - `scripts/intent-resolution-eval.ts` — drives the eval harness corpus
12
+ * - the Phase-3 description rewrite — `Use when the user asks` blocks pull
13
+ * question + synonym strings from here
14
+ *
15
+ * Forward references to Phase-5-created tools/prompts are marked inline.
16
+ * Phase 7's lint extension reads those comments and skips them in the
17
+ * resolution check.
18
+ *
19
+ * `natural_domain` is required when `resolves_to.kind === 'tool'`. Omitted
20
+ * for prompt resolutions because prompts orchestrate cross-domain tools and
21
+ * don't fit a single `discovery.ts` category.
22
+ *
23
+ * Custody-related entries (49-50) intentionally surface routing only and
24
+ * carry no algorithmic detail — see `.claude/rules/ip-protection.md`.
25
+ */
26
+ export type VernacularKind = "creator-entry" | "internal" | "specialist";
27
+ export interface AtlasFallback {
28
+ message: string;
29
+ next_tool: string;
30
+ }
31
+ export type AtlasResolution = {
32
+ kind: "tool";
33
+ name: string;
34
+ default_args?: Record<string, unknown>;
35
+ } | {
36
+ kind: "prompt";
37
+ name: string;
38
+ };
39
+ export interface AtlasEntry {
40
+ question: string;
41
+ synonyms: string[];
42
+ /** Required when `resolves_to.kind === 'tool'`; omitted for prompts. */
43
+ natural_domain?: string;
44
+ resolves_to: AtlasResolution;
45
+ fallback_when_empty?: AtlasFallback;
46
+ }
47
+ export declare const ATLAS: AtlasEntry[];
48
+ //# sourceMappingURL=creator-question-atlas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator-question-atlas.d.ts","sourceRoot":"","sources":["../../src/prompts/creator-question-atlas.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;IAC7B,mBAAmB,CAAC,EAAE,aAAa,CAAC;CACrC;AAED,eAAO,MAAM,KAAK,EAAE,UAAU,EA0nB7B,CAAC"}