@withpica/mcp-server 2.95.3 → 2.95.4

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 (199) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.intro.md +115 -0
  3. package/README.md +188 -204
  4. package/dist/lib/changelog.generated.d.ts +2 -2
  5. package/dist/lib/changelog.generated.d.ts.map +1 -1
  6. package/dist/lib/changelog.generated.js +2 -2
  7. package/dist/lib/changelog.generated.js.map +1 -1
  8. package/dist/prompts/index.js +2 -2
  9. package/dist/resources/agent-guide.d.ts +50 -4
  10. package/dist/resources/agent-guide.d.ts.map +1 -1
  11. package/dist/resources/agent-guide.js +109 -18
  12. package/dist/resources/agent-guide.js.map +1 -1
  13. package/dist/resources/index.d.ts.map +1 -1
  14. package/dist/resources/index.js +81 -2
  15. package/dist/resources/index.js.map +1 -1
  16. package/dist/resources/llms-primer.d.ts +1 -1
  17. package/dist/resources/llms-primer.d.ts.map +1 -1
  18. package/dist/resources/llms-primer.js +1 -1
  19. package/dist/resources/required-schemas.generated.d.ts +3 -12
  20. package/dist/resources/required-schemas.generated.d.ts.map +1 -1
  21. package/dist/resources/required-schemas.generated.js +3 -18
  22. package/dist/resources/required-schemas.generated.js.map +1 -1
  23. package/dist/resources/required-schemas.source.d.ts.map +1 -1
  24. package/dist/resources/required-schemas.source.js +13 -15
  25. package/dist/resources/required-schemas.source.js.map +1 -1
  26. package/dist/server-instructions.d.ts +2 -2
  27. package/dist/server-instructions.d.ts.map +1 -1
  28. package/dist/server-instructions.js +3 -3
  29. package/dist/skills/skills.generated.d.ts.map +1 -1
  30. package/dist/skills/skills.generated.js +18 -9
  31. package/dist/skills/skills.generated.js.map +1 -1
  32. package/dist/tools/agent-identity.d.ts.map +1 -1
  33. package/dist/tools/agent-identity.js +2 -1
  34. package/dist/tools/agent-identity.js.map +1 -1
  35. package/dist/tools/agreement-types.d.ts.map +1 -1
  36. package/dist/tools/agreement-types.js +23 -11
  37. package/dist/tools/agreement-types.js.map +1 -1
  38. package/dist/tools/agreements.d.ts.map +1 -1
  39. package/dist/tools/agreements.js +17 -9
  40. package/dist/tools/agreements.js.map +1 -1
  41. package/dist/tools/analytics.d.ts.map +1 -1
  42. package/dist/tools/analytics.js +6 -3
  43. package/dist/tools/analytics.js.map +1 -1
  44. package/dist/tools/assets.d.ts.map +1 -1
  45. package/dist/tools/assets.js +20 -13
  46. package/dist/tools/assets.js.map +1 -1
  47. package/dist/tools/audio-files.d.ts.map +1 -1
  48. package/dist/tools/audio-files.js +5 -3
  49. package/dist/tools/audio-files.js.map +1 -1
  50. package/dist/tools/bulk.d.ts.map +1 -1
  51. package/dist/tools/bulk.js +15 -9
  52. package/dist/tools/bulk.js.map +1 -1
  53. package/dist/tools/collaborators.d.ts.map +1 -1
  54. package/dist/tools/collaborators.js +41 -16
  55. package/dist/tools/collaborators.js.map +1 -1
  56. package/dist/tools/comparisons.d.ts.map +1 -1
  57. package/dist/tools/comparisons.js +2 -1
  58. package/dist/tools/comparisons.js.map +1 -1
  59. package/dist/tools/credits.d.ts +4 -3
  60. package/dist/tools/credits.d.ts.map +1 -1
  61. package/dist/tools/credits.js +16 -88
  62. package/dist/tools/credits.js.map +1 -1
  63. package/dist/tools/custody.d.ts.map +1 -1
  64. package/dist/tools/custody.js +43 -10
  65. package/dist/tools/custody.js.map +1 -1
  66. package/dist/tools/dashboard.d.ts.map +1 -1
  67. package/dist/tools/dashboard.js +22 -19
  68. package/dist/tools/dashboard.js.map +1 -1
  69. package/dist/tools/directory.d.ts.map +1 -1
  70. package/dist/tools/directory.js +7 -4
  71. package/dist/tools/directory.js.map +1 -1
  72. package/dist/tools/discovery.d.ts +66 -10
  73. package/dist/tools/discovery.d.ts.map +1 -1
  74. package/dist/tools/discovery.js +212 -25
  75. package/dist/tools/discovery.js.map +1 -1
  76. package/dist/tools/disputes.d.ts.map +1 -1
  77. package/dist/tools/disputes.js +3 -0
  78. package/dist/tools/disputes.js.map +1 -1
  79. package/dist/tools/documents.d.ts.map +1 -1
  80. package/dist/tools/documents.js +9 -6
  81. package/dist/tools/documents.js.map +1 -1
  82. package/dist/tools/enrichment.d.ts.map +1 -1
  83. package/dist/tools/enrichment.js +92 -14
  84. package/dist/tools/enrichment.js.map +1 -1
  85. package/dist/tools/error-envelope.d.ts +44 -0
  86. package/dist/tools/error-envelope.d.ts.map +1 -0
  87. package/dist/tools/error-envelope.js +17 -0
  88. package/dist/tools/error-envelope.js.map +1 -0
  89. package/dist/tools/exports.d.ts.map +1 -1
  90. package/dist/tools/exports.js +24 -9
  91. package/dist/tools/exports.js.map +1 -1
  92. package/dist/tools/groups.d.ts.map +1 -1
  93. package/dist/tools/groups.js +1 -0
  94. package/dist/tools/groups.js.map +1 -1
  95. package/dist/tools/import-documents.d.ts.map +1 -1
  96. package/dist/tools/import-documents.js +3 -2
  97. package/dist/tools/import-documents.js.map +1 -1
  98. package/dist/tools/import.d.ts.map +1 -1
  99. package/dist/tools/import.js +71 -38
  100. package/dist/tools/import.js.map +1 -1
  101. package/dist/tools/index.d.ts +53 -4
  102. package/dist/tools/index.d.ts.map +1 -1
  103. package/dist/tools/index.js +124 -36
  104. package/dist/tools/index.js.map +1 -1
  105. package/dist/tools/licensing.d.ts.map +1 -1
  106. package/dist/tools/licensing.js +6 -2
  107. package/dist/tools/licensing.js.map +1 -1
  108. package/dist/tools/memory.d.ts.map +1 -1
  109. package/dist/tools/memory.js +8 -4
  110. package/dist/tools/memory.js.map +1 -1
  111. package/dist/tools/metadata.d.ts +7 -1
  112. package/dist/tools/metadata.d.ts.map +1 -1
  113. package/dist/tools/metadata.js +31 -2
  114. package/dist/tools/metadata.js.map +1 -1
  115. package/dist/tools/multimedia.d.ts.map +1 -1
  116. package/dist/tools/multimedia.js +7 -3
  117. package/dist/tools/multimedia.js.map +1 -1
  118. package/dist/tools/notes.d.ts.map +1 -1
  119. package/dist/tools/notes.js +9 -6
  120. package/dist/tools/notes.js.map +1 -1
  121. package/dist/tools/notifications.d.ts.map +1 -1
  122. package/dist/tools/notifications.js +16 -27
  123. package/dist/tools/notifications.js.map +1 -1
  124. package/dist/tools/people.d.ts.map +1 -1
  125. package/dist/tools/people.js +8 -5
  126. package/dist/tools/people.js.map +1 -1
  127. package/dist/tools/projects.d.ts.map +1 -1
  128. package/dist/tools/projects.js +16 -12
  129. package/dist/tools/projects.js.map +1 -1
  130. package/dist/tools/recording-custody.d.ts.map +1 -1
  131. package/dist/tools/recording-custody.js +9 -5
  132. package/dist/tools/recording-custody.js.map +1 -1
  133. package/dist/tools/recording-samples.d.ts.map +1 -1
  134. package/dist/tools/recording-samples.js +25 -6
  135. package/dist/tools/recording-samples.js.map +1 -1
  136. package/dist/tools/recordings.d.ts +10 -0
  137. package/dist/tools/recordings.d.ts.map +1 -1
  138. package/dist/tools/recordings.js +32 -19
  139. package/dist/tools/recordings.js.map +1 -1
  140. package/dist/tools/recovery-hints.d.ts.map +1 -1
  141. package/dist/tools/recovery-hints.js +35 -17
  142. package/dist/tools/recovery-hints.js.map +1 -1
  143. package/dist/tools/release-rich.js +5 -5
  144. package/dist/tools/release-rich.js.map +1 -1
  145. package/dist/tools/releases.d.ts.map +1 -1
  146. package/dist/tools/releases.js +21 -12
  147. package/dist/tools/releases.js.map +1 -1
  148. package/dist/tools/royalties.d.ts.map +1 -1
  149. package/dist/tools/royalties.js +12 -6
  150. package/dist/tools/royalties.js.map +1 -1
  151. package/dist/tools/send.d.ts.map +1 -1
  152. package/dist/tools/send.js +7 -4
  153. package/dist/tools/send.js.map +1 -1
  154. package/dist/tools/sessions.d.ts.map +1 -1
  155. package/dist/tools/sessions.js +8 -4
  156. package/dist/tools/sessions.js.map +1 -1
  157. package/dist/tools/settings.d.ts.map +1 -1
  158. package/dist/tools/settings.js +10 -4
  159. package/dist/tools/settings.js.map +1 -1
  160. package/dist/tools/share-links.d.ts.map +1 -1
  161. package/dist/tools/share-links.js +7 -3
  162. package/dist/tools/share-links.js.map +1 -1
  163. package/dist/tools/share-send.d.ts.map +1 -1
  164. package/dist/tools/share-send.js +15 -5
  165. package/dist/tools/share-send.js.map +1 -1
  166. package/dist/tools/shows.d.ts +31 -0
  167. package/dist/tools/shows.d.ts.map +1 -0
  168. package/dist/tools/shows.js +307 -0
  169. package/dist/tools/shows.js.map +1 -0
  170. package/dist/tools/skills.d.ts.map +1 -1
  171. package/dist/tools/skills.js +7 -0
  172. package/dist/tools/skills.js.map +1 -1
  173. package/dist/tools/split-sheets.d.ts.map +1 -1
  174. package/dist/tools/split-sheets.js +19 -12
  175. package/dist/tools/split-sheets.js.map +1 -1
  176. package/dist/tools/statements.js +2 -2
  177. package/dist/tools/statements.js.map +1 -1
  178. package/dist/tools/storage-config.d.ts.map +1 -1
  179. package/dist/tools/storage-config.js +5 -3
  180. package/dist/tools/storage-config.js.map +1 -1
  181. package/dist/tools/subscription.d.ts +69 -19
  182. package/dist/tools/subscription.d.ts.map +1 -1
  183. package/dist/tools/subscription.js +98 -255
  184. package/dist/tools/subscription.js.map +1 -1
  185. package/dist/tools/sync-placements.d.ts.map +1 -1
  186. package/dist/tools/sync-placements.js +10 -5
  187. package/dist/tools/sync-placements.js.map +1 -1
  188. package/dist/tools/telegram.d.ts.map +1 -1
  189. package/dist/tools/telegram.js +16 -24
  190. package/dist/tools/telegram.js.map +1 -1
  191. package/dist/tools/users.d.ts.map +1 -1
  192. package/dist/tools/users.js +12 -6
  193. package/dist/tools/users.js.map +1 -1
  194. package/dist/tools/works.d.ts.map +1 -1
  195. package/dist/tools/works.js +13 -10
  196. package/dist/tools/works.js.map +1 -1
  197. package/package.json +7 -3
  198. package/server.json +2 -2
  199. package/.claude/settings.local.json +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/tools/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/tools/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/tools/directory.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAoE3D,iBAAiB;CAkDhC"}
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/tools/directory.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1D,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAoE3D,iBAAiB;CAuDhC"}
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) 2025-2026 Withpica Ltd. All rights reserved.
2
- import { formatAsText, formatSuccess } from "@withpica/mcp-utils";
2
+ import { formatSuccess } from "@withpica/mcp-utils";
3
+ import { typedError } from "./error-envelope.js";
3
4
  export class DirectoryTools {
4
5
  pica;
5
6
  constructor(pica) {
@@ -100,9 +101,11 @@ export class DirectoryTools {
100
101
  updates[field] = Boolean(args[field]);
101
102
  }
102
103
  if (Object.keys(updates).length === 0) {
103
- return formatAsText({
104
- error: "No settings to update. Provide at least one setting field.",
105
- });
104
+ // typedError, not formatAsText({error}): the latter has no `isError`, so
105
+ // the dispatcher and the client read a refusal as a SUCCESS whose payload
106
+ // happens to contain the word "error", and mcp_audit_log.error_code is
107
+ // NULL. See ./error-envelope.ts.
108
+ return typedError("VALIDATION_ERROR", "No settings to update. Provide at least one setting field.");
106
109
  }
107
110
  const result = await this.pica.directory.updateSettings(updates);
108
111
  const status = result.opted_in ? "discoverable" : "private";
@@ -1 +1 @@
1
- {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/tools/directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/tools/directory.ts"],"names":[],"mappings":"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"}
@@ -28,11 +28,39 @@ interface CategoryDefinition {
28
28
  * are grandfathered in `scripts/mcp-tool-lint-baseline.json` for retrofit.
29
29
  */
30
30
  export declare const CATEGORIES: Record<string, CategoryDefinition>;
31
+ /**
32
+ * Naive English singular of a search token.
33
+ *
34
+ * A wrong stem is NOT free. An `-es` strip turns `notes` into `not` — and
35
+ * `pica_notes_*` are in CATEGORIES with `notes` as their domain segment, so
36
+ * every query containing the ordinary English word "not" ("works not
37
+ * registered") scored a +6 domain hit on the notes family. The same rule
38
+ * stems `releases`→`releas`, which the query word `release` can never match,
39
+ * defeating the feature in the other direction. Both shipped on 2026-08-24
40
+ * and are pinned by the singularise unit tests.
41
+ *
42
+ * The rules, in order:
43
+ * - `ies` → `y` (categories → category)
44
+ * - `s` → "" unless the token ends `ss`/`us`/`is`, none of which is an
45
+ * English plural (address, status, analysis stay put)
46
+ *
47
+ * There is deliberately NO `-es` rule. Every domain segment in CATEGORIES is a
48
+ * plain `-s` plural (works, notes, releases, documents, statements, credits,
49
+ * shows…), so `-es` would only ever misfire: it cannot tell `releas+es` from
50
+ * `release+s`, and the wrong branch (`releas`) is one a query word can never
51
+ * reach. `boxes` therefore stems to `boxe` rather than `box` — harmless,
52
+ * because both sides of every comparison run through this same function.
53
+ *
54
+ * Exported for direct unit assertion in
55
+ * `src/__tests__/tools/discovery-ranking.test.ts` — the stem is load-bearing
56
+ * enough that it needs testing without a whole registry behind it.
57
+ */
58
+ export declare function singularise(token: string): string;
31
59
  export declare class DiscoveryTools {
32
60
  private executeToolFn;
33
61
  private getToolDef;
34
62
  /**
35
- * Registered tool names, for UNKNOWN_TOOL near-match suggestions.
63
+ * Registered tool names, for TOOL_NOT_FOUND near-match suggestions.
36
64
  * Optional so existing constructions keep compiling; without it the
37
65
  * unknown-tool envelope simply carries no suggestions.
38
66
  */
@@ -43,18 +71,33 @@ export declare class DiscoveryTools {
43
71
  metadata?: ToolMetadata;
44
72
  } | undefined,
45
73
  /**
46
- * Registered tool names, for UNKNOWN_TOOL near-match suggestions.
74
+ * Registered tool names, for TOOL_NOT_FOUND near-match suggestions.
47
75
  * Optional so existing constructions keep compiling; without it the
48
76
  * unknown-tool envelope simply carries no suggestions.
49
77
  */
50
78
  listToolNames?: (() => string[]) | undefined);
51
79
  /**
52
- * Rank registered tool names by shared `_`-token overlap with a
53
- * hallucinated name. ChatGPT callers routinely invent tool names
80
+ * Rank registered tool names against a hallucinated or mistyped one.
81
+ *
82
+ * ChatGPT callers routinely invent tool names
54
83
  * (`pica_releases_attach_track_by_identifier`, `pica_credit_add`, …) and
55
84
  * retry variations instead of consulting pica_tool_details — 26 opaque
56
85
  * dispatcher errors in 14 days. Naming the closest real tools breaks that
57
86
  * guess-loop.
87
+ *
88
+ * Token overlap alone was not enough: `pica_works_inspekt` overlaps every
89
+ * `pica_works_*` tool on exactly one token, so the top-3 slice fell back to
90
+ * registration order and could drop the obvious answer. Edit distance
91
+ * breaks that tie — pinned by "ranks the nearest EDIT-distance name first"
92
+ * in `src/__tests__/tools/discovery.test.ts`.
93
+ *
94
+ * Deprecated aliases are excluded. The candidate pool is
95
+ * `[...this.tools.keys()]` (index.ts, where DiscoveryTools is constructed),
96
+ * which includes the hidden alias clones `expandAliases` registers — so a
97
+ * typo one letter off an alias (`pica_releases_lists`) was answered with the
98
+ * alias (`pica_releases_list`, removal_target 2.96.0) ranked above its own
99
+ * canonical. Steering a confused caller onto a name we are trying to retire
100
+ * is the opposite of what this envelope is for.
58
101
  */
59
102
  private suggestToolNames;
60
103
  getTools(): Array<{
@@ -64,12 +107,25 @@ export declare class DiscoveryTools {
64
107
  private buildDiscoverTool;
65
108
  /**
66
109
  * Rank tools against a plain-language job description. Case-insensitive
67
- * token scoring (no external deps): each query token scores +3 when it
68
- * exactly matches an underscore-separated token of the tool name and +1
69
- * when it appears anywhere in the tool's searchable text (name +
70
- * description/triggers + its category name + category description). Tools
71
- * are deduped across cross-listed categories (keeping the highest-scoring
72
- * category), sorted by score then name, and capped.
110
+ * token scoring (no external deps):
111
+ *
112
+ * +6 the token matches the tool's DOMAIN segment (the `_`-separated
113
+ * segment after `pica_` `recordings` in `pica_recordings_delete`)
114
+ * +3 the token matches any other `_`-separated segment of the name
115
+ * +1 the token appears anywhere in the searchable text (name +
116
+ * description/triggers + category name + category description)
117
+ *
118
+ * Both sides are compared through {@link singularise}, so "recording" and
119
+ * "recordings" are one term. Tools are deduped across cross-listed
120
+ * categories (keeping the highest-scoring category), sorted by score then
121
+ * name, and capped.
122
+ *
123
+ * The domain weight exists because the VERB is shared by dozens of tools
124
+ * and the ENTITY is what the user actually named: before it, "delete a
125
+ * recording" led with `pica_agreement_types_delete` and "read a document"
126
+ * put `pica_notifications_mark_read` above every documents tool. Both are
127
+ * pinned in `src/__tests__/tools/discovery-ranking.test.ts`, alongside the
128
+ * flagship isrc-from-spotify pin the weighting must not disturb.
73
129
  */
74
130
  private matchDiscovery;
75
131
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AA+BpB,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AASD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CA0xBzD,CAAC;AAoBF,qBAAa,cAAc;IAEvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAC;gBAjBd,aAAa,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,CAAC,EAAE,mBAAmB,KACtB,OAAO,CAAC,UAAU,CAAC,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAC7B;QACE,UAAU,EAAE,cAAc,CAAC;QAC3B,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACzB,GACD,SAAS;IACb;;;;OAIG;IACK,aAAa,CAAC,GAAE,MAAM,MAAM,EAAE,aAAA;IAGxC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAuBxB,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAQzE,OAAO,CAAC,iBAAiB;IAwHzB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAiDtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IA8H5B,OAAO,CAAC,eAAe;IAkEvB,OAAO,CAAC,gBAAgB;CAyUzB"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AAsCpB,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AASD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAgyBzD,CAAC;AAoBF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAsCD,qBAAa,cAAc;IAEvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAC;gBAjBd,aAAa,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,CAAC,EAAE,mBAAmB,KACtB,OAAO,CAAC,UAAU,CAAC,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAC7B;QACE,UAAU,EAAE,cAAc,CAAC;QAC3B,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACzB,GACD,SAAS;IACb;;;;OAIG;IACK,aAAa,CAAC,GAAE,MAAM,MAAM,EAAE,aAAA;IAGxC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAQzE,OAAO,CAAC,iBAAiB;IAwHzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,cAAc;IAuDtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IA8H5B,OAAO,CAAC,eAAe;IA8FvB,OAAO,CAAC,gBAAgB;CA4WzB"}
@@ -1,4 +1,11 @@
1
1
  // Copyright (c) 2025-2026 Withpica Ltd. All rights reserved.
2
+ // `deriveAnnotations` is a value import back into ./index.js, which imports
3
+ // this module — an ESM cycle. Safe because it is a hoisted function
4
+ // declaration: it is initialised before either module body runs, and it is
5
+ // only ever CALLED from inside a method here. Do not convert it to a const
6
+ // arrow function on the other side.
7
+ import { deriveAnnotations } from "./index.js";
8
+ import { getAliasFor } from "./deprecations.js";
2
9
  import { getToolMetadata } from "./metadata.js";
3
10
  import { RECOVERY_HINTS } from "./recovery-hints.js";
4
11
  const SCHEMA_VERSION = "2026.1";
@@ -811,6 +818,11 @@ export const CATEGORIES = {
811
818
  ],
812
819
  depends_on: [],
813
820
  },
821
+ shows: {
822
+ description: "log live shows and tour credits, and confirm setlist matches against your catalogue",
823
+ tools: ["pica_log_show", "pica_shows_query", "pica_setlist_match"],
824
+ depends_on: [],
825
+ },
814
826
  };
815
827
  /**
816
828
  * Operational metadata defaults for pica_tool_details responses.
@@ -827,13 +839,84 @@ function getOperationalMeta(toolName) {
827
839
  }
828
840
  return {};
829
841
  }
842
+ /**
843
+ * Naive English singular of a search token.
844
+ *
845
+ * A wrong stem is NOT free. An `-es` strip turns `notes` into `not` — and
846
+ * `pica_notes_*` are in CATEGORIES with `notes` as their domain segment, so
847
+ * every query containing the ordinary English word "not" ("works not
848
+ * registered") scored a +6 domain hit on the notes family. The same rule
849
+ * stems `releases`→`releas`, which the query word `release` can never match,
850
+ * defeating the feature in the other direction. Both shipped on 2026-08-24
851
+ * and are pinned by the singularise unit tests.
852
+ *
853
+ * The rules, in order:
854
+ * - `ies` → `y` (categories → category)
855
+ * - `s` → "" unless the token ends `ss`/`us`/`is`, none of which is an
856
+ * English plural (address, status, analysis stay put)
857
+ *
858
+ * There is deliberately NO `-es` rule. Every domain segment in CATEGORIES is a
859
+ * plain `-s` plural (works, notes, releases, documents, statements, credits,
860
+ * shows…), so `-es` would only ever misfire: it cannot tell `releas+es` from
861
+ * `release+s`, and the wrong branch (`releas`) is one a query word can never
862
+ * reach. `boxes` therefore stems to `boxe` rather than `box` — harmless,
863
+ * because both sides of every comparison run through this same function.
864
+ *
865
+ * Exported for direct unit assertion in
866
+ * `src/__tests__/tools/discovery-ranking.test.ts` — the stem is load-bearing
867
+ * enough that it needs testing without a whole registry behind it.
868
+ */
869
+ export function singularise(token) {
870
+ if (token.length > 3 && token.endsWith("ies"))
871
+ return `${token.slice(0, -3)}y`;
872
+ if (token.length > 2 && token.endsWith("s") && !/(?:ss|us|is)$/.test(token))
873
+ return token.slice(0, -1);
874
+ return token;
875
+ }
876
+ /** The token plus its stem, deduped — matching on either is a hit. */
877
+ function tokenVariants(token) {
878
+ const stem = singularise(token);
879
+ return stem === token ? [token] : [token, stem];
880
+ }
881
+ /**
882
+ * Levenshtein distance, two rolling rows. Tool names are short (< 60 chars)
883
+ * and the registry is a few hundred entries, so the O(n·m) form is well
884
+ * inside budget for a once-per-failed-dispatch call.
885
+ */
886
+ function editDistance(a, b) {
887
+ if (a === b)
888
+ return 0;
889
+ if (a.length === 0)
890
+ return b.length;
891
+ if (b.length === 0)
892
+ return a.length;
893
+ let prev = Array.from({ length: b.length + 1 }, (_, i) => i);
894
+ let curr = new Array(b.length + 1);
895
+ for (let i = 1; i <= a.length; i++) {
896
+ curr[0] = i;
897
+ for (let j = 1; j <= b.length; j++) {
898
+ const substitution = prev[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1);
899
+ curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, substitution);
900
+ }
901
+ [prev, curr] = [curr, prev];
902
+ }
903
+ return prev[b.length];
904
+ }
905
+ /** Length of the common leading substring — a typo late in a name keeps it. */
906
+ function sharedPrefixLength(a, b) {
907
+ const max = Math.min(a.length, b.length);
908
+ let i = 0;
909
+ while (i < max && a[i] === b[i])
910
+ i++;
911
+ return i;
912
+ }
830
913
  export class DiscoveryTools {
831
914
  executeToolFn;
832
915
  getToolDef;
833
916
  listToolNames;
834
917
  constructor(executeToolFn, getToolDef,
835
918
  /**
836
- * Registered tool names, for UNKNOWN_TOOL near-match suggestions.
919
+ * Registered tool names, for TOOL_NOT_FOUND near-match suggestions.
837
920
  * Optional so existing constructions keep compiling; without it the
838
921
  * unknown-tool envelope simply carries no suggestions.
839
922
  */
@@ -843,33 +926,55 @@ export class DiscoveryTools {
843
926
  this.listToolNames = listToolNames;
844
927
  }
845
928
  /**
846
- * Rank registered tool names by shared `_`-token overlap with a
847
- * hallucinated name. ChatGPT callers routinely invent tool names
929
+ * Rank registered tool names against a hallucinated or mistyped one.
930
+ *
931
+ * ChatGPT callers routinely invent tool names
848
932
  * (`pica_releases_attach_track_by_identifier`, `pica_credit_add`, …) and
849
933
  * retry variations instead of consulting pica_tool_details — 26 opaque
850
934
  * dispatcher errors in 14 days. Naming the closest real tools breaks that
851
935
  * guess-loop.
936
+ *
937
+ * Token overlap alone was not enough: `pica_works_inspekt` overlaps every
938
+ * `pica_works_*` tool on exactly one token, so the top-3 slice fell back to
939
+ * registration order and could drop the obvious answer. Edit distance
940
+ * breaks that tie — pinned by "ranks the nearest EDIT-distance name first"
941
+ * in `src/__tests__/tools/discovery.test.ts`.
942
+ *
943
+ * Deprecated aliases are excluded. The candidate pool is
944
+ * `[...this.tools.keys()]` (index.ts, where DiscoveryTools is constructed),
945
+ * which includes the hidden alias clones `expandAliases` registers — so a
946
+ * typo one letter off an alias (`pica_releases_lists`) was answered with the
947
+ * alias (`pica_releases_list`, removal_target 2.96.0) ranked above its own
948
+ * canonical. Steering a confused caller onto a name we are trying to retire
949
+ * is the opposite of what this envelope is for.
852
950
  */
853
951
  suggestToolNames(input) {
854
- const candidates = this.listToolNames?.() ?? [];
952
+ const candidates = (this.listToolNames?.() ?? []).filter((name) => getAliasFor(name) === undefined);
855
953
  const tokens = new Set(input
856
954
  .replace(/^pica_/, "")
857
955
  .split("_")
858
956
  .filter(Boolean));
859
957
  if (tokens.size === 0 || candidates.length === 0)
860
958
  return [];
861
- return candidates
959
+ return (candidates
862
960
  .map((name) => ({
863
961
  name,
864
962
  overlap: name
865
963
  .replace(/^pica_/, "")
866
964
  .split("_")
867
965
  .filter((t) => tokens.has(t)).length,
966
+ distance: editDistance(name, input),
967
+ prefix: sharedPrefixLength(name, input),
868
968
  }))
869
- .filter((c) => c.overlap > 0)
870
- .sort((a, b) => b.overlap - a.overlap)
969
+ // A near-miss on spelling shares no whole token, so distance and prefix
970
+ // have to be able to admit a candidate on their own.
971
+ .filter((c) => c.overlap > 0 || c.distance <= 3 || c.prefix >= 8)
972
+ .sort((a, b) => b.overlap - a.overlap ||
973
+ a.distance - b.distance ||
974
+ b.prefix - a.prefix ||
975
+ a.name.localeCompare(b.name))
871
976
  .slice(0, 3)
872
- .map((c) => c.name);
977
+ .map((c) => c.name));
873
978
  }
874
979
  getTools() {
875
980
  return [
@@ -979,18 +1084,32 @@ export class DiscoveryTools {
979
1084
  }
980
1085
  /**
981
1086
  * Rank tools against a plain-language job description. Case-insensitive
982
- * token scoring (no external deps): each query token scores +3 when it
983
- * exactly matches an underscore-separated token of the tool name and +1
984
- * when it appears anywhere in the tool's searchable text (name +
985
- * description/triggers + its category name + category description). Tools
986
- * are deduped across cross-listed categories (keeping the highest-scoring
987
- * category), sorted by score then name, and capped.
1087
+ * token scoring (no external deps):
1088
+ *
1089
+ * +6 the token matches the tool's DOMAIN segment (the `_`-separated
1090
+ * segment after `pica_` `recordings` in `pica_recordings_delete`)
1091
+ * +3 the token matches any other `_`-separated segment of the name
1092
+ * +1 the token appears anywhere in the searchable text (name +
1093
+ * description/triggers + category name + category description)
1094
+ *
1095
+ * Both sides are compared through {@link singularise}, so "recording" and
1096
+ * "recordings" are one term. Tools are deduped across cross-listed
1097
+ * categories (keeping the highest-scoring category), sorted by score then
1098
+ * name, and capped.
1099
+ *
1100
+ * The domain weight exists because the VERB is shared by dozens of tools
1101
+ * and the ENTITY is what the user actually named: before it, "delete a
1102
+ * recording" led with `pica_agreement_types_delete` and "read a document"
1103
+ * put `pica_notifications_mark_read` above every documents tool. Both are
1104
+ * pinned in `src/__tests__/tools/discovery-ranking.test.ts`, alongside the
1105
+ * flagship isrc-from-spotify pin the weighting must not disturb.
988
1106
  */
989
1107
  matchDiscovery(query) {
990
1108
  const tokens = query
991
1109
  .toLowerCase()
992
1110
  .split(/[^a-z0-9]+/)
993
- .filter((t) => t.length >= 2);
1111
+ .filter((t) => t.length >= 2)
1112
+ .map((t) => ({ raw: t, variants: tokenVariants(t) }));
994
1113
  if (tokens.length === 0)
995
1114
  return [];
996
1115
  // Best score per tool, plus the category that produced it.
@@ -1001,16 +1120,22 @@ export class DiscoveryTools {
1001
1120
  const def = this.getToolDef(toolName)?.definition;
1002
1121
  const metadata = getToolMetadata(toolName);
1003
1122
  const toolDesc = def?.description ?? metadata?.display_name ?? "";
1004
- const nameTokens = new Set(toolName
1123
+ const segments = toolName
1005
1124
  .replace(/^pica_/, "")
1006
1125
  .split("_")
1007
- .filter(Boolean));
1126
+ .filter(Boolean);
1127
+ // The entity the tool acts on. `pica_upload` has no verb segment, so
1128
+ // its only segment is both domain and verb — that is correct here.
1129
+ const domainVariants = new Set(segments.length > 0 ? tokenVariants(segments[0]) : []);
1130
+ const nameVariants = new Set(segments.flatMap(tokenVariants));
1008
1131
  const haystack = `${toolName.replace(/_/g, " ")} ${toolDesc} ${catText}`.toLowerCase();
1009
1132
  let score = 0;
1010
- for (const token of tokens) {
1011
- if (nameTokens.has(token))
1133
+ for (const { variants } of tokens) {
1134
+ if (variants.some((v) => domainVariants.has(v)))
1135
+ score += 6;
1136
+ else if (variants.some((v) => nameVariants.has(v)))
1012
1137
  score += 3;
1013
- if (haystack.includes(token))
1138
+ if (variants.some((v) => haystack.includes(v)))
1014
1139
  score += 1;
1015
1140
  }
1016
1141
  if (score === 0)
@@ -1161,6 +1286,10 @@ export class DiscoveryTools {
1161
1286
  // Collect all recovery hints for this tool (all error codes)
1162
1287
  const hints = RECOVERY_HINTS[toolName] ?? [];
1163
1288
  const definition = registered?.definition ?? null;
1289
+ // A deprecated alias is registered as a clone of its canonical, so the
1290
+ // schema/description below ARE the canonical's — the agent gets a working
1291
+ // tool plus the name it should migrate to, not a bare refusal.
1292
+ const deprecation = getAliasFor(toolName);
1164
1293
  // Gate visibility (audit P1 #6): surface the authority tier + required
1165
1294
  // scope so an agent knows BEFORE calling whether it holds the grant, and
1166
1295
  // an explicit note when the scope is unreachable for a standard agent
@@ -1192,7 +1321,30 @@ export class DiscoveryTools {
1192
1321
  `{"tool": "${toolName}", "args": { ...arguments per the schema below }}. ` +
1193
1322
  "Never tell the user the tool is unavailable — pica_execute executes every tool returned here.",
1194
1323
  schema: definition?.inputSchema ?? null,
1195
- annotations: definition?.annotations ?? null,
1324
+ ...(definition?.outputSchema
1325
+ ? { outputSchema: definition.outputSchema }
1326
+ : {}),
1327
+ // Derived, never the raw declaration: most tools declare no
1328
+ // `annotations` at all, so reading the declaration answered `null` for
1329
+ // the large majority of registered tools while listTools() answered real
1330
+ // hints for the same tool (measured 2026-08-24). deriveAnnotations() is
1331
+ // the one derivation both surfaces read — see index.ts and
1332
+ // src/__tests__/tools/tool-details-contract.test.ts.
1333
+ annotations: definition ? deriveAnnotations(definition) : null,
1334
+ // Every category key this tool is listed under. Cross-listed tools
1335
+ // (ADR-226 Decision 12) appear in more than one, and an agent that
1336
+ // arrived via one category otherwise cannot see the others.
1337
+ discovery_categories: Object.entries(CATEGORIES)
1338
+ .filter(([, cat]) => cat.tools.includes(toolName))
1339
+ .map(([key]) => key),
1340
+ ...(deprecation
1341
+ ? {
1342
+ deprecated: {
1343
+ use: deprecation.canonical,
1344
+ removal_target: deprecation.removal_target,
1345
+ },
1346
+ }
1347
+ : {}),
1196
1348
  tier,
1197
1349
  required_scope: requiredScope,
1198
1350
  ...(callableNote ? { callable_note: callableNote } : {}),
@@ -1264,7 +1416,13 @@ export class DiscoveryTools {
1264
1416
  readOnlyHint: false,
1265
1417
  destructiveHint: false,
1266
1418
  idempotentHint: false,
1267
- openWorldHint: false,
1419
+ // TRUE, matching the `annotationOverrides.openWorldHint` above.
1420
+ // This read `false` until 2026-08-24 while the override next to it
1421
+ // said `true` — the override wins, so the declaration was never
1422
+ // published and only misled the next reader of this file. The
1423
+ // dispatcher wraps every tool, including the ones that email an
1424
+ // external recipient, so `true` is the honest value.
1425
+ openWorldHint: true,
1268
1426
  },
1269
1427
  },
1270
1428
  executor: async (args, ctx) => {
@@ -1337,17 +1495,41 @@ export class DiscoveryTools {
1337
1495
  // hallucinated variations instead of consulting the catalog.
1338
1496
  // structuredContent mirrors the envelope so telemetry and
1339
1497
  // structured-content-aware clients get the code without parsing text.
1498
+ //
1499
+ // The code is TOOL_NOT_FOUND, matching pica_tool_details' answer for
1500
+ // the same question and the ADR-149 Phase 5bcd design. It read
1501
+ // UNKNOWN_TOOL from 2026-07-03 until 2026-08-24; `suggestions` is kept
1502
+ // beside the new `did_you_mean` for callers written against that
1503
+ // shape. Both are asserted in
1504
+ // `src/__tests__/tools/discovery.test.ts`.
1505
+ //
1506
+ // `did_you_mean` is ALWAYS present, empty array included: a key that
1507
+ // only sometimes exists forces every caller to branch on `undefined`
1508
+ // before it can branch on "no suggestions".
1509
+ //
1510
+ // `retry_safe` and `retry_eligible` carry the same fact under two
1511
+ // names, deliberately. `retry_eligible` is the ADR-180 envelope field
1512
+ // that the five sibling envelopes in this file all emit, so dropping
1513
+ // it here alone would make one dispatcher error shaped unlike the
1514
+ // rest; `retry_safe` is the name the same fact wears in
1515
+ // `pica_tool_details.metadata.retry_safe`, which is where an agent
1516
+ // reads it everywhere else. Unifying the file on one key is a
1517
+ // separate change — do it for all six envelopes or none.
1340
1518
  if (!this.getToolDef(toolName)) {
1341
1519
  const suggestions = this.suggestToolNames(toolName);
1342
1520
  const envelope = {
1343
- error_code: "UNKNOWN_TOOL",
1521
+ error: "TOOL_NOT_FOUND",
1522
+ error_code: "TOOL_NOT_FOUND",
1344
1523
  tool: toolName,
1345
1524
  message: `${toolName} is not a registered tool.` +
1346
1525
  (suggestions.length > 0
1347
1526
  ? ` Closest real tools: ${suggestions.join(", ")}.`
1348
1527
  : "") +
1349
1528
  " Call pica_tool_details on the intended tool for its exact name and schema, or pica_discover to browse categories — do not guess tool names or argument shapes.",
1350
- ...(suggestions.length > 0 ? { suggestions } : {}),
1529
+ did_you_mean: suggestions,
1530
+ suggestions,
1531
+ next_tool: "pica_discover",
1532
+ retry_safe: false,
1351
1533
  retry_eligible: false,
1352
1534
  };
1353
1535
  return {
@@ -1355,9 +1537,14 @@ export class DiscoveryTools {
1355
1537
  { type: "text", text: JSON.stringify(envelope, null, 2) },
1356
1538
  ],
1357
1539
  structuredContent: {
1540
+ error: envelope.error,
1358
1541
  error_code: envelope.error_code,
1359
1542
  error_message: envelope.message,
1360
- ...(suggestions.length > 0 ? { suggestions } : {}),
1543
+ tool: toolName,
1544
+ did_you_mean: suggestions,
1545
+ suggestions,
1546
+ next_tool: "pica_discover",
1547
+ retry_safe: false,
1361
1548
  },
1362
1549
  isError: true,
1363
1550
  };