@wootsup/mcp 0.1.0 → 0.4.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 (208) hide show
  1. package/CHANGELOG.md +157 -83
  2. package/README.md +31 -27
  3. package/SECURITY.md +15 -6
  4. package/dist/auth/keychain.d.ts +27 -1
  5. package/dist/auth/keychain.js +48 -2
  6. package/dist/auth/keychain.js.map +1 -1
  7. package/dist/catalog/build-catalog.d.ts +31 -0
  8. package/dist/catalog/build-catalog.js +68 -0
  9. package/dist/catalog/build-catalog.js.map +1 -0
  10. package/dist/cli-hint.d.ts +22 -0
  11. package/dist/cli-hint.js +55 -0
  12. package/dist/cli-hint.js.map +1 -0
  13. package/dist/index.js +129 -22
  14. package/dist/index.js.map +1 -1
  15. package/dist/install-skill.js +1 -1
  16. package/dist/modules/apimapper/auto-layout.d.ts +21 -0
  17. package/dist/modules/apimapper/auto-layout.js +54 -0
  18. package/dist/modules/apimapper/auto-layout.js.map +1 -0
  19. package/dist/modules/apimapper/cache.js +25 -17
  20. package/dist/modules/apimapper/cache.js.map +1 -1
  21. package/dist/modules/apimapper/client.d.ts +115 -4
  22. package/dist/modules/apimapper/client.js +699 -304
  23. package/dist/modules/apimapper/client.js.map +1 -1
  24. package/dist/modules/apimapper/connections-format.d.ts +31 -1
  25. package/dist/modules/apimapper/connections-format.js +97 -5
  26. package/dist/modules/apimapper/connections-format.js.map +1 -1
  27. package/dist/modules/apimapper/connections.d.ts +9 -7
  28. package/dist/modules/apimapper/connections.js +449 -127
  29. package/dist/modules/apimapper/connections.js.map +1 -1
  30. package/dist/modules/apimapper/credential-sanitizer.d.ts +5 -0
  31. package/dist/modules/apimapper/credential-sanitizer.js +60 -1
  32. package/dist/modules/apimapper/credential-sanitizer.js.map +1 -1
  33. package/dist/modules/apimapper/credentials.js +105 -61
  34. package/dist/modules/apimapper/credentials.js.map +1 -1
  35. package/dist/modules/apimapper/diagnose.js +21 -2
  36. package/dist/modules/apimapper/diagnose.js.map +1 -1
  37. package/dist/modules/apimapper/elicitation.d.ts +29 -0
  38. package/dist/modules/apimapper/elicitation.js +62 -0
  39. package/dist/modules/apimapper/elicitation.js.map +1 -1
  40. package/dist/modules/apimapper/example-extract.d.ts +13 -0
  41. package/dist/modules/apimapper/example-extract.js +111 -0
  42. package/dist/modules/apimapper/example-extract.js.map +1 -0
  43. package/dist/modules/apimapper/filter-operators.d.ts +24 -0
  44. package/dist/modules/apimapper/filter-operators.js +103 -0
  45. package/dist/modules/apimapper/filter-operators.js.map +1 -0
  46. package/dist/modules/apimapper/flows-format.js +92 -22
  47. package/dist/modules/apimapper/flows-format.js.map +1 -1
  48. package/dist/modules/apimapper/flows.d.ts +8 -7
  49. package/dist/modules/apimapper/flows.js +275 -120
  50. package/dist/modules/apimapper/flows.js.map +1 -1
  51. package/dist/modules/apimapper/gateway/advanced-read-tool.d.ts +9 -0
  52. package/dist/modules/apimapper/gateway/advanced-read-tool.js +172 -0
  53. package/dist/modules/apimapper/gateway/advanced-read-tool.js.map +1 -0
  54. package/dist/modules/apimapper/gateway/advanced-tool.js +66 -106
  55. package/dist/modules/apimapper/gateway/advanced-tool.js.map +1 -1
  56. package/dist/modules/apimapper/gateway/collect-module-tools.d.ts +17 -0
  57. package/dist/modules/apimapper/gateway/collect-module-tools.js +44 -0
  58. package/dist/modules/apimapper/gateway/collect-module-tools.js.map +1 -0
  59. package/dist/modules/apimapper/gateway/essentials.d.ts +1 -1
  60. package/dist/modules/apimapper/gateway/essentials.js +21 -2
  61. package/dist/modules/apimapper/gateway/essentials.js.map +1 -1
  62. package/dist/modules/apimapper/gateway/gateway-shared.d.ts +21 -0
  63. package/dist/modules/apimapper/gateway/gateway-shared.js +124 -0
  64. package/dist/modules/apimapper/gateway/gateway-shared.js.map +1 -0
  65. package/dist/modules/apimapper/gateway/test-support.d.ts +1 -17
  66. package/dist/modules/apimapper/gateway/test-support.js +4 -33
  67. package/dist/modules/apimapper/gateway/test-support.js.map +1 -1
  68. package/dist/modules/apimapper/get-skill-cores.d.ts +4 -0
  69. package/dist/modules/apimapper/get-skill-cores.js +220 -0
  70. package/dist/modules/apimapper/get-skill-cores.js.map +1 -0
  71. package/dist/modules/apimapper/get-skill.d.ts +1 -1
  72. package/dist/modules/apimapper/get-skill.js +74 -9
  73. package/dist/modules/apimapper/get-skill.js.map +1 -1
  74. package/dist/modules/apimapper/graph-builder.d.ts +85 -2
  75. package/dist/modules/apimapper/graph-builder.js +151 -15
  76. package/dist/modules/apimapper/graph-builder.js.map +1 -1
  77. package/dist/modules/apimapper/graph.js +152 -48
  78. package/dist/modules/apimapper/graph.js.map +1 -1
  79. package/dist/modules/apimapper/index.js +27 -13
  80. package/dist/modules/apimapper/index.js.map +1 -1
  81. package/dist/modules/apimapper/jmespath-test.d.ts +4 -0
  82. package/dist/modules/apimapper/jmespath-test.js +152 -0
  83. package/dist/modules/apimapper/jmespath-test.js.map +1 -0
  84. package/dist/modules/apimapper/library.js +553 -88
  85. package/dist/modules/apimapper/library.js.map +1 -1
  86. package/dist/modules/apimapper/license.js +12 -36
  87. package/dist/modules/apimapper/license.js.map +1 -1
  88. package/dist/modules/apimapper/list-footer.d.ts +27 -0
  89. package/dist/modules/apimapper/list-footer.js +57 -0
  90. package/dist/modules/apimapper/list-footer.js.map +1 -0
  91. package/dist/modules/apimapper/local-sources.js +100 -57
  92. package/dist/modules/apimapper/local-sources.js.map +1 -1
  93. package/dist/modules/apimapper/mcp-client-identity.d.ts +32 -0
  94. package/dist/modules/apimapper/mcp-client-identity.js +70 -0
  95. package/dist/modules/apimapper/mcp-client-identity.js.map +1 -0
  96. package/dist/modules/apimapper/merge-constants.d.ts +6 -0
  97. package/dist/modules/apimapper/merge-constants.js +26 -0
  98. package/dist/modules/apimapper/merge-constants.js.map +1 -0
  99. package/dist/modules/apimapper/misc.js +13 -27
  100. package/dist/modules/apimapper/misc.js.map +1 -1
  101. package/dist/modules/apimapper/node-schema.d.ts +52 -2
  102. package/dist/modules/apimapper/node-schema.js +95 -4
  103. package/dist/modules/apimapper/node-schema.js.map +1 -1
  104. package/dist/modules/apimapper/onboarding.d.ts +59 -1
  105. package/dist/modules/apimapper/onboarding.js +231 -28
  106. package/dist/modules/apimapper/onboarding.js.map +1 -1
  107. package/dist/modules/apimapper/read-cache.d.ts +16 -3
  108. package/dist/modules/apimapper/read-cache.js +59 -4
  109. package/dist/modules/apimapper/read-cache.js.map +1 -1
  110. package/dist/modules/apimapper/render/index.js +26 -5
  111. package/dist/modules/apimapper/render/index.js.map +1 -1
  112. package/dist/modules/apimapper/resource-id.d.ts +13 -0
  113. package/dist/modules/apimapper/resource-id.js +69 -0
  114. package/dist/modules/apimapper/resource-id.js.map +1 -0
  115. package/dist/modules/apimapper/schema.js +9 -18
  116. package/dist/modules/apimapper/schema.js.map +1 -1
  117. package/dist/modules/apimapper/settings.js +49 -52
  118. package/dist/modules/apimapper/settings.js.map +1 -1
  119. package/dist/modules/apimapper/sites-tools.d.ts +29 -0
  120. package/dist/modules/apimapper/sites-tools.js +165 -0
  121. package/dist/modules/apimapper/sites-tools.js.map +1 -0
  122. package/dist/modules/apimapper/tool-result.d.ts +66 -0
  123. package/dist/modules/apimapper/tool-result.js +125 -0
  124. package/dist/modules/apimapper/tool-result.js.map +1 -0
  125. package/dist/modules/apimapper/toolslist-size.d.ts +12 -11
  126. package/dist/modules/apimapper/toolslist-size.js +34 -21
  127. package/dist/modules/apimapper/toolslist-size.js.map +1 -1
  128. package/dist/modules/apimapper/types.d.ts +34 -0
  129. package/dist/modules/apimapper/types.js +1 -1
  130. package/dist/modules/apimapper/types.js.map +1 -1
  131. package/dist/modules/apimapper/whitelist-drift.d.ts +85 -0
  132. package/dist/modules/apimapper/whitelist-drift.js +375 -0
  133. package/dist/modules/apimapper/whitelist-drift.js.map +1 -0
  134. package/dist/modules/apimapper/workflows.js +302 -58
  135. package/dist/modules/apimapper/workflows.js.map +1 -1
  136. package/dist/modules/apimapper/yootheme-binding.d.ts +35 -0
  137. package/dist/modules/apimapper/yootheme-binding.js +267 -0
  138. package/dist/modules/apimapper/yootheme-binding.js.map +1 -0
  139. package/dist/platform/index.d.ts +56 -0
  140. package/dist/platform/index.js +158 -2
  141. package/dist/platform/index.js.map +1 -1
  142. package/dist/proxy/bridge.d.ts +35 -0
  143. package/dist/proxy/bridge.js +129 -0
  144. package/dist/proxy/bridge.js.map +1 -0
  145. package/dist/proxy/mode.d.ts +9 -0
  146. package/dist/proxy/mode.js +20 -0
  147. package/dist/proxy/mode.js.map +1 -0
  148. package/dist/setup/detect-clients.d.ts +40 -1
  149. package/dist/setup/detect-clients.js +148 -1
  150. package/dist/setup/detect-clients.js.map +1 -1
  151. package/dist/setup/probe-auth.d.ts +51 -0
  152. package/dist/setup/probe-auth.js +141 -0
  153. package/dist/setup/probe-auth.js.map +1 -0
  154. package/dist/setup/probe-handshake.js +40 -7
  155. package/dist/setup/probe-handshake.js.map +1 -1
  156. package/dist/setup/remove-config.d.ts +8 -0
  157. package/dist/setup/remove-config.js +145 -0
  158. package/dist/setup/remove-config.js.map +1 -0
  159. package/dist/setup/uninstall.d.ts +34 -0
  160. package/dist/setup/uninstall.js +147 -0
  161. package/dist/setup/uninstall.js.map +1 -0
  162. package/dist/setup-cli.d.ts +16 -0
  163. package/dist/setup-cli.js +63 -1
  164. package/dist/setup-cli.js.map +1 -1
  165. package/dist/sites/loader.d.ts +48 -0
  166. package/dist/sites/loader.js +134 -0
  167. package/dist/sites/loader.js.map +1 -0
  168. package/dist/sites/schema.d.ts +69 -0
  169. package/dist/sites/schema.js +71 -0
  170. package/dist/sites/schema.js.map +1 -0
  171. package/dist/sites/secret-resolver.d.ts +47 -0
  172. package/dist/sites/secret-resolver.js +150 -0
  173. package/dist/sites/secret-resolver.js.map +1 -0
  174. package/dist/skill-instructions.d.ts +14 -1
  175. package/dist/skill-instructions.js +35 -6
  176. package/dist/skill-instructions.js.map +1 -1
  177. package/dist/transports/stdio.js +4 -4
  178. package/dist/transports/stdio.js.map +1 -1
  179. package/dist/uninstall-skill.d.ts +27 -0
  180. package/dist/uninstall-skill.js +89 -0
  181. package/dist/uninstall-skill.js.map +1 -0
  182. package/docs/architecture.md +21 -21
  183. package/docs/customgraph-internal-migration.md +4 -4
  184. package/docs/security.md +2 -21
  185. package/docs/tools.md +40 -12
  186. package/manifest.json +77 -79
  187. package/package.json +69 -65
  188. package/skills/apimapper/SKILL.md +128 -7
  189. package/skills/apimapper/reference/conditional-style-multi-items.md +114 -0
  190. package/skills/apimapper/reference/dynamize-existing-layout.md +158 -0
  191. package/skills/apimapper/reference/jmespath-cookbook.md +241 -0
  192. package/skills/apimapper/reference/jmespath-pitfalls.md +189 -0
  193. package/skills/apimapper/reference/joomla.md +1 -1
  194. package/skills/apimapper/reference/library-template-discovery.md +65 -0
  195. package/skills/apimapper/reference/merge-two-sources-on-key.md +204 -0
  196. package/skills/apimapper/reference/oauth.md +143 -52
  197. package/skills/apimapper/reference/troubleshooting.md +22 -2
  198. package/skills/apimapper/reference/yootheme-source-to-builder-handoff.md +348 -0
  199. package/skills/apimapper/reference/yootheme.md +75 -44
  200. package/dist/auth/oauth-provider.d.ts +0 -68
  201. package/dist/auth/oauth-provider.js +0 -232
  202. package/dist/auth/oauth-provider.js.map +0 -1
  203. package/dist/server-http.d.ts +0 -22
  204. package/dist/server-http.js +0 -159
  205. package/dist/server-http.js.map +0 -1
  206. package/dist/transports/http.d.ts +0 -29
  207. package/dist/transports/http.js +0 -267
  208. package/dist/transports/http.js.map +0 -1
@@ -143,19 +143,74 @@ export function setCached(method, url, data, opts) {
143
143
  storedAt: now,
144
144
  });
145
145
  }
146
+ /**
147
+ * Cross-family invalidation map (A19, mcp-cold-readiness-audit 2026-06-10).
148
+ *
149
+ * Some mutations affect a DIFFERENT resource family than the path they POST
150
+ * to. The path-overlap matcher below only handles same-family + ancestor/
151
+ * descendant invalidation; it cannot know that completing an OAuth flow
152
+ * mutates credential STATUS. Each entry maps a mutation-path prefix to the
153
+ * extra read-family path(s) that must also be flushed.
154
+ *
155
+ * `/oauth` → `/credentials`: oauth_authorize_begin (and the consent callback)
156
+ * refresh a credential's token; without this, a cached GET /credentials keeps
157
+ * serving the pre-authorize "expired" status for the full TTL and the agent
158
+ * re-suggests a reconnect it already completed.
159
+ */
160
+ const CROSS_FAMILY_INVALIDATION = [
161
+ { when: "/oauth", also: ["/credentials"] },
162
+ ];
146
163
  /**
147
164
  * Invalidate cache entries whose request path overlaps with the mutated
148
- * resource. Conservative — clears every entry whose key includes the
149
- * given path-substring. e.g. invalidateByPath('/flows') clears
150
- * `/flows`, `/flows?status=published`, `/flows/abc123`.
165
+ * resource — in BOTH directions. Conservative — clears every entry whose
166
+ * cached path contains the mutation path (descendants + query variants,
167
+ * e.g. invalidateByPath('/flows') clears `/flows`, `/flows?status=…`,
168
+ * `/flows/abc123`) AND every entry whose cached path is an ancestor of
169
+ * the mutation path (e.g. POST `/flows/abc/detect-schema` flushes the
170
+ * cached GET `/flows/abc` and `/flows`).
171
+ *
172
+ * The ancestor direction is load-bearing: 2026-06-09 Round-2 live repro —
173
+ * a sub-resource mutation (`/flows/{id}/detect-schema`) persisted the
174
+ * output schema, but the cached parent GET `/flows/{id}` kept serving the
175
+ * pre-schema flow for the full TTL, so binding_for_flow reported
176
+ * fields:[] while the data was already saved.
177
+ *
178
+ * A19: in addition, a mutation may invalidate a DIFFERENT resource family
179
+ * (see CROSS_FAMILY_INVALIDATION) — e.g. an /oauth mutation flushes the
180
+ * cached /credentials list.
151
181
  *
152
182
  * Called automatically from client.ts on POST/PUT/PATCH/DELETE.
153
183
  */
154
184
  export function invalidateByPath(path) {
155
185
  const needle = path.split("?")[0]; // strip query, match path only
156
186
  for (const key of store.keys()) {
157
- if (key.includes(needle))
187
+ if (key.includes(needle)) {
158
188
  store.delete(key);
189
+ continue;
190
+ }
191
+ // Ancestor match: the cached entry's path-part (key format
192
+ // `METHOD::S|R::url`) is a path-segment prefix of the mutation path.
193
+ const keyPath = (key.split("::")[2] ?? "").split("?")[0];
194
+ if (keyPath !== "" && needle.startsWith(keyPath + "/")) {
195
+ store.delete(key);
196
+ }
197
+ }
198
+ // A19 — cross-family: a mutation under a mapped prefix also flushes the
199
+ // related read-family path(s). Each `also` entry is delegated back through
200
+ // the same descendant/query-variant matcher so `/credentials?…` variants go
201
+ // too. Guarded against self-recursion (an `also` path never re-matches its
202
+ // own `when`).
203
+ for (const rule of CROSS_FAMILY_INVALIDATION) {
204
+ if (needle.includes(rule.when)) {
205
+ for (const alsoPath of rule.also) {
206
+ const alsoNeedle = alsoPath.split("?")[0];
207
+ for (const key of store.keys()) {
208
+ if (key.includes(alsoNeedle)) {
209
+ store.delete(key);
210
+ }
211
+ }
212
+ }
213
+ }
159
214
  }
160
215
  }
161
216
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"read-cache.js","sourceRoot":"","sources":["../../../src/modules/apimapper/read-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-cache.js","sourceRoot":"","sources":["../../../src/modules/apimapper/read-cache.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,16 @@ import { capRendered, hintFor, HARD_CAP, RESERVE } from "./token-cap.js";
8
8
  // the same affordance when a renderer's Zod schema rejects the payload.
9
9
  const RENDER_ERROR_HINTS = {
10
10
  table: "type:'table' expects an array of objects — fetch with " +
11
- "apimapper_connection_data or apimapper_graph_preview.",
11
+ 'apimapper_connection_data or apimapper_advanced({ tool: "apimapper_graph_preview" }).',
12
12
  "chart-bar": "type:'chart-bar' expects { labels: string[], values: number[] } of equal length.",
13
13
  "chart-line": "type:'chart-line' expects { labels: string[], values: number[] } of equal length.",
14
14
  "schema-diagram": "type:'schema-diagram' expects a schema profile with fields[] — " +
15
- "fetch with apimapper_schema_profile.",
15
+ 'fetch with apimapper_advanced({ tool: "apimapper_schema_profile" }).',
16
16
  "flow-diagram": "type:'flow-diagram' expects a flow object with nodes[]+edges[] — " +
17
- "fetch with apimapper_flow_get.",
17
+ 'fetch with apimapper_advanced({ tool: "apimapper_flow_get" }).',
18
18
  "json-tree": "type:'json-tree' accepts any JSON value — pass the fetched payload directly.",
19
19
  diff: "type:'diff' expects { old, new } — fetch both datasets first " +
20
- "(e.g. two apimapper_schema_profile calls).",
20
+ '(e.g. two apimapper_advanced({ tool: "apimapper_schema_profile" }) calls).',
21
21
  };
22
22
  // MCP CallToolResult outer guard. DERIVED from token-cap.ts's HARD_CAP +
23
23
  // RESERVE so the relationship is compiler-enforced — bumping HARD_CAP in
@@ -62,7 +62,28 @@ export function registerRenderTool(server) {
62
62
  "Example:\n apimapper_render({ type: 'flow-diagram', data: flowObject })",
63
63
  inputSchema: {
64
64
  type: z.enum(RENDER_TYPES).describe("Visualization type"),
65
- data: z.unknown().describe("Data to render. Shape depends on type see description."),
65
+ // MCP clients (and forwarding LLMs) frequently deliver `data` as a
66
+ // JSON *string* — the fetched payload gets serialised on the way in.
67
+ // Pre-parse a JSON string back into its value before the renderer's
68
+ // inner Zod schema runs, otherwise every renderer rejects the string
69
+ // ("table requires an array", etc.). A non-JSON string (e.g. a plain
70
+ // sentence) keeps its original value so it can still render as a
71
+ // primitive leaf. The inner schema stays z.unknown() — per-type
72
+ // validation lives in each renderer.
73
+ data: z
74
+ .preprocess((v) => {
75
+ if (typeof v !== "string")
76
+ return v;
77
+ const trimmed = v.trim();
78
+ try {
79
+ return JSON.parse(trimmed);
80
+ }
81
+ catch {
82
+ return v;
83
+ }
84
+ }, z.unknown())
85
+ .describe("Data to render. Shape depends on type — see description. " +
86
+ "A JSON-encoded string is auto-parsed; a plain string renders as-is."),
66
87
  options: z.object({
67
88
  title: z.string().max(200).optional()
68
89
  .describe("Optional title shown above the visualization"),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/apimapper/render/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/apimapper/render/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Extract a Google Spreadsheet ID from a pasted URL, or return the input
3
+ * unchanged when it is already a bare ID (or an unrecognised value the
4
+ * backend should validate).
5
+ *
6
+ * Handles:
7
+ * - bare ID: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
8
+ * - standard URL: https://docs.google.com/spreadsheets/d/{ID}/edit
9
+ * - URL with #gid hash: .../spreadsheets/d/{ID}/edit#gid=0
10
+ * - /copy, /view, etc.: .../spreadsheets/d/{ID}/copy
11
+ */
12
+ export declare function extractSpreadsheetId(input: string): string;
13
+ export declare function normalizeResourceIdFields<T extends Record<string, unknown> | undefined>(fields: T): T;
@@ -0,0 +1,69 @@
1
+ // src/modules/apimapper/resource-id.ts — server-bound resource-ID normalizers.
2
+ //
3
+ // A5 (2026-06-10): a cold-agent customer supplies ONLY a Google Drive / Sheets
4
+ // URL (the only thing they have), but the worker template placeholder
5
+ // {{spreadsheet_id}} needs the BARE id. The single URL→ID extractor used to
6
+ // live in the React admin-UI (extractResourceId.ts) and never reached the
7
+ // wire — so an MCP/REST caller pasting a URL produced a broken connection that
8
+ // returned 0 rows with no debuggable signal. We normalize on the MCP→REST
9
+ // boundary so the exact-as-given input works.
10
+ //
11
+ // Port of admin-ui/src/utils/extractResourceId.ts kept deliberately in
12
+ // lockstep — same patterns, same "return input unchanged when nothing
13
+ // matches" contract (the backend still validates).
14
+ /**
15
+ * Extract a Google Spreadsheet ID from a pasted URL, or return the input
16
+ * unchanged when it is already a bare ID (or an unrecognised value the
17
+ * backend should validate).
18
+ *
19
+ * Handles:
20
+ * - bare ID: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
21
+ * - standard URL: https://docs.google.com/spreadsheets/d/{ID}/edit
22
+ * - URL with #gid hash: .../spreadsheets/d/{ID}/edit#gid=0
23
+ * - /copy, /view, etc.: .../spreadsheets/d/{ID}/copy
24
+ */
25
+ export function extractSpreadsheetId(input) {
26
+ const trimmed = input.trim();
27
+ // Already a bare ID (alphanumeric + dash + underscore, 20+ chars).
28
+ if (/^[a-zA-Z0-9_-]{20,}$/.test(trimmed)) {
29
+ return trimmed;
30
+ }
31
+ const urlMatch = trimmed.match(/\/spreadsheets\/d\/([a-zA-Z0-9_-]+)/);
32
+ if (urlMatch?.[1]) {
33
+ return urlMatch[1];
34
+ }
35
+ // Unrecognised — return as-is, let the backend validate.
36
+ return trimmed;
37
+ }
38
+ /**
39
+ * Normalize the well-known resource-ID fields inside a template-field /
40
+ * extra-field map IN PLACE-safe fashion (returns a new object). Currently
41
+ * handles `spreadsheet_id` (Google Sheets); the table is the single place to
42
+ * extend for future URL-shaped resource IDs (drive_file_id, doc_id, ...).
43
+ *
44
+ * Only string values are touched; non-string values pass through verbatim so
45
+ * the wider string|number|boolean schema on connection_data.template_fields
46
+ * is preserved. Returns the input reference unchanged when there is nothing
47
+ * to normalize, so a default call stays byte-identical on the wire.
48
+ */
49
+ const RESOURCE_ID_NORMALIZERS = {
50
+ spreadsheet_id: extractSpreadsheetId,
51
+ };
52
+ export function normalizeResourceIdFields(fields) {
53
+ if (!fields || typeof fields !== "object")
54
+ return fields;
55
+ let changed = false;
56
+ const out = { ...fields };
57
+ for (const [key, normalize] of Object.entries(RESOURCE_ID_NORMALIZERS)) {
58
+ const value = out[key];
59
+ if (typeof value === "string") {
60
+ const next = normalize(value);
61
+ if (next !== value) {
62
+ out[key] = next;
63
+ changed = true;
64
+ }
65
+ }
66
+ }
67
+ return (changed ? out : fields);
68
+ }
69
+ //# sourceMappingURL=resource-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-id.js","sourceRoot":"","sources":["../../../src/modules/apimapper/resource-id.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,sEAAsE;AACtE,4EAA4E;AAC5E,0EAA0E;AAC1E,+EAA+E;AAC/E,0EAA0E;AAC1E,8CAA8C;AAC9C,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,mDAAmD;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,mEAAmE;IACnE,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACtE,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,yDAAyD;IACzD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,uBAAuB,GAA0C;IACrE,cAAc,EAAE,oBAAoB;CACrC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAEvC,MAAS;IACT,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAChB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAM,CAAC;AACvC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
- import { formatResult, tableResult, errorResult, readOnly, } from "@getimo/mcp-toolkit";
3
- import { request, hintFor } from "./client.js";
2
+ import { formatResult, tableResult, readOnly, } from "@getimo/mcp-toolkit";
3
+ import { request } from "./client.js";
4
+ import { restErrorResult } from "./tool-result.js";
4
5
  // ── node_snapshot_list table shape ────────────────────────────────────
5
6
  const NODE_SNAPSHOT_COLUMNS = [
6
7
  { key: "flow_id", label: "FLOW", width: 24 },
@@ -82,16 +83,11 @@ export function registerSchemaTools(server) {
82
83
  body: JSON.stringify(body),
83
84
  });
84
85
  if (!r.success) {
85
- return errorResult({
86
- message: r.error ?? "schema profile failed",
87
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
88
- suggestion: hintFor(r.errorCode),
89
- details: {
90
- target_node_id,
91
- flow_id,
92
- node_count: Array.isArray(nodes) ? nodes.length : 0,
93
- },
94
- });
86
+ return restErrorResult(r, {
87
+ target_node_id,
88
+ flow_id,
89
+ node_count: Array.isArray(nodes) ? nodes.length : 0,
90
+ }, { message: "schema profile failed" });
95
91
  }
96
92
  const merged = r.data?.merged ?? {};
97
93
  const fields = Array.isArray(merged.fields) ? merged.fields : [];
@@ -134,12 +130,7 @@ export function registerSchemaTools(server) {
134
130
  params.set("limit", String(limit));
135
131
  const r = await request(`/node-snapshots?${params.toString()}`);
136
132
  if (!r.success) {
137
- return errorResult({
138
- message: r.error ?? "node snapshot list failed",
139
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
140
- suggestion: hintFor(r.errorCode),
141
- details: { flow_id, limit },
142
- });
133
+ return restErrorResult(r, { flow_id, limit }, { message: "node snapshot list failed" });
143
134
  }
144
135
  const items = Array.isArray(r.data?.snapshots) ? r.data.snapshots : [];
145
136
  const serverTruncated = Boolean(r.data?.truncated);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/modules/apimapper/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/modules/apimapper/schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
- import { formatResult, tableResult, errorResult, readOnly, mutating, destructive, } from "@getimo/mcp-toolkit";
3
- import { request, hintFor } from "./client.js";
2
+ import { formatResult, tableResult, readOnly, mutating, destructive, } from "@getimo/mcp-toolkit";
3
+ import { request } from "./client.js";
4
+ import { restErrorResult } from "./tool-result.js";
4
5
  import { toRows } from "./types.js";
5
6
  import { HEALTH_WARNINGS_COLUMNS, HEALTH_WARNINGS_NEXT_STEPS, mapHealthWarningRow, buildSettingsDetail, buildFeaturesDetail, } from "./settings-format.js";
6
7
  // SettingsHandler::sanitizeSettingsData (core/src/Admin/Handler/SettingsHandler.php)
@@ -23,13 +24,38 @@ const SETTABLE_KEYS = [
23
24
  // existing wire fixtures use values like "warning"/"warn" interchangeably.
24
25
  const settingsPatchSchema = z
25
26
  .object({
26
- cache_ttl: z.number().int().min(0).optional(),
27
- debug_mode: z.boolean().optional(),
28
- log_level: z.string().optional(),
29
- api_timeout: z.number().int().min(1).optional(),
30
- server_debug_mode: z.boolean().optional(),
31
- delete_data_on_uninstall: z.boolean().optional(),
32
- error_reporting: z.boolean().optional(),
27
+ cache_ttl: z
28
+ .number()
29
+ .int()
30
+ .min(0)
31
+ .optional()
32
+ .describe("Default cache lifetime for connection responses, in seconds (e.g. 3600). 0 disables caching."),
33
+ debug_mode: z
34
+ .boolean()
35
+ .optional()
36
+ .describe("Admin-UI debug mode: surfaces verbose diagnostics in the API Mapper admin screens."),
37
+ log_level: z
38
+ .string()
39
+ .optional()
40
+ .describe('Server log verbosity (e.g. "warning", "info", "debug"). Free-form string — PHP accepts any value.'),
41
+ api_timeout: z
42
+ .number()
43
+ .int()
44
+ .min(1)
45
+ .optional()
46
+ .describe("Upstream HTTP request timeout in seconds (e.g. 30). Server clamps to 1..120."),
47
+ server_debug_mode: z
48
+ .boolean()
49
+ .optional()
50
+ .describe("Server-side debug logging: writes detailed request/response traces to the PHP error log."),
51
+ delete_data_on_uninstall: z
52
+ .boolean()
53
+ .optional()
54
+ .describe("When true, removing the plugin also deletes all API Mapper data (connections, flows, credentials)."),
55
+ error_reporting: z
56
+ .boolean()
57
+ .optional()
58
+ .describe("Opt-in anonymized error reporting (Sentry) for the plugin."),
33
59
  })
34
60
  .strict()
35
61
  .describe("Settings patch (strict allow-list). Unknown keys rejected at schema level. " +
@@ -51,12 +77,7 @@ export function registerSettingsTools(server) {
51
77
  }, async () => {
52
78
  const r = await request("/settings");
53
79
  if (!r.success) {
54
- return errorResult({
55
- message: r.error ?? "settings get failed",
56
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
57
- suggestion: hintFor(r.errorCode),
58
- details: {},
59
- });
80
+ return restErrorResult(r, {}, { message: "settings get failed" });
60
81
  }
61
82
  const settings = (r.data?.settings && typeof r.data.settings === "object")
62
83
  ? r.data.settings
@@ -87,12 +108,7 @@ export function registerSettingsTools(server) {
87
108
  body: JSON.stringify(patch),
88
109
  });
89
110
  if (!r.success) {
90
- return errorResult({
91
- message: r.error ?? "settings update failed",
92
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
93
- suggestion: hintFor(r.errorCode),
94
- details: { keys: requestedKeys },
95
- });
111
+ return restErrorResult(r, { keys: requestedKeys }, { message: "settings update failed" });
96
112
  }
97
113
  // PHP returns the post-update sanitised settings dict; surface what was
98
114
  // actually applied (not what was requested), so the caller can spot
@@ -139,12 +155,7 @@ export function registerSettingsTools(server) {
139
155
  }
140
156
  const r = await request("/settings/reset-demo", { method: "POST" });
141
157
  if (!r.success) {
142
- return errorResult({
143
- message: r.error ?? "demo reset failed",
144
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
145
- suggestion: hintFor(r.errorCode),
146
- details: {},
147
- });
158
+ return restErrorResult(r, {}, { message: "demo reset failed" });
148
159
  }
149
160
  return formatResult({ reset: true, result: r.data?.result }, false, { maxChars: 2000 });
150
161
  });
@@ -160,12 +171,7 @@ export function registerSettingsTools(server) {
160
171
  }, async () => {
161
172
  const r = await request("/features");
162
173
  if (!r.success) {
163
- return errorResult({
164
- message: r.error ?? "features get failed",
165
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
166
- suggestion: hintFor(r.errorCode),
167
- details: {},
168
- });
174
+ return restErrorResult(r, {}, { message: "features get failed" });
169
175
  }
170
176
  const features = (r.data?.features && typeof r.data.features === "object")
171
177
  ? r.data.features
@@ -180,19 +186,20 @@ export function registerSettingsTools(server) {
180
186
  // `wordpress`/`joomla` are nested inside `matrix`, not top-level.
181
187
  server.registerTool("apimapper_platform_parity", {
182
188
  title: "Get Platform Parity Status",
183
- description: "Compare feature parity between WordPress and Joomla versions of API Mapper." +
189
+ description: "Compare feature parity between the WordPress and Joomla builds of API " +
190
+ "Mapper and report any gaps. Use before promising a feature works on the " +
191
+ "user's platform, or when a flow behaves differently on WP vs Joomla. " +
192
+ "Returns a matrix (per-feature WP/Joomla support), a summary, and a gaps list. " +
193
+ "Keywords: parity, WordPress vs Joomla, platform differences, feature gaps, cross-platform. " +
194
+ "When NOT to use: for connectivity/auth checks use apimapper_health; for the " +
195
+ "feature-flag matrix of the current license tier use apimapper_features_get." +
184
196
  "\n\nExample:\n apimapper_platform_parity({})",
185
197
  inputSchema: {},
186
198
  annotations: readOnly({ title: "Check Platform Parity", openWorld: true }),
187
199
  }, async () => {
188
200
  const r = await request("/platform-parity");
189
201
  if (!r.success) {
190
- return errorResult({
191
- message: r.error ?? "platform parity failed",
192
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
193
- suggestion: hintFor(r.errorCode),
194
- details: {},
195
- });
202
+ return restErrorResult(r, {}, { message: "platform parity failed" });
196
203
  }
197
204
  const gaps = Array.isArray(r.data?.gaps) ? r.data.gaps : [];
198
205
  return formatResult({
@@ -214,12 +221,7 @@ export function registerSettingsTools(server) {
214
221
  }, async () => {
215
222
  const r = await request("/admin/health-warnings");
216
223
  if (!r.success) {
217
- return errorResult({
218
- message: r.error ?? "health warnings list failed",
219
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
220
- suggestion: hintFor(r.errorCode),
221
- details: {},
222
- });
224
+ return restErrorResult(r, {}, { message: "health warnings list failed" });
223
225
  }
224
226
  const items = Array.isArray(r.data?.items) ? r.data.items : [];
225
227
  const visible = Boolean(r.data?.visible);
@@ -247,12 +249,7 @@ export function registerSettingsTools(server) {
247
249
  body: JSON.stringify({ id }),
248
250
  });
249
251
  if (!r.success) {
250
- return errorResult({
251
- message: r.error ?? "warning dismiss failed",
252
- code: r.errorCode ?? (r.status ? String(r.status) : undefined),
253
- suggestion: hintFor(r.errorCode),
254
- details: { id },
255
- });
252
+ return restErrorResult(r, { id }, { message: "warning dismiss failed" });
256
253
  }
257
254
  return formatResult({ dismissed: true, id }, false, { maxChars: 1500 });
258
255
  });
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/modules/apimapper/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/modules/apimapper/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { SitesRegistry } from "../../sites/loader.js";
3
+ import type { SiteEntryT } from "../../sites/schema.js";
4
+ interface ToolRegistrar {
5
+ registerTool(name: string, config: unknown, handler: unknown): void;
6
+ }
7
+ export interface SitesIdentityProbeResult {
8
+ plugin_version: string;
9
+ plugin_hash: string;
10
+ capabilities: string[];
11
+ site_url: string;
12
+ }
13
+ /** Identity probe for the active site. Injected so tests can stub the network. */
14
+ export type SitesProbeIdentityFn = (entry: SiteEntryT) => Promise<SitesIdentityProbeResult>;
15
+ export interface SitesListProfilesDeps {
16
+ getRegistry: () => SitesRegistry;
17
+ /** The active site_id pointer, or null when none set (default entry active). */
18
+ getActiveSiteId: () => string | null;
19
+ }
20
+ export declare function registerSitesListProfilesTool(server: ToolRegistrar | McpServer, deps: SitesListProfilesDeps): void;
21
+ export interface SitesUseProfileDeps {
22
+ getRegistry: () => SitesRegistry;
23
+ /** Flip the client's active-site pointer (resets resolution → retargets). */
24
+ setActiveSite: (id: string) => void;
25
+ /** Identity probe. Defaults to a real /identity call on the active site. */
26
+ probeIdentity?: SitesProbeIdentityFn;
27
+ }
28
+ export declare function registerSitesUseProfileTool(server: ToolRegistrar | McpServer, deps: SitesUseProfileDeps): void;
29
+ export {};