@wootsup/mcp 0.1.0-rc.9 → 0.3.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 (240) hide show
  1. package/CHANGELOG.md +148 -83
  2. package/README.md +36 -32
  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/cli-hint.d.ts +22 -0
  8. package/dist/cli-hint.js +55 -0
  9. package/dist/cli-hint.js.map +1 -0
  10. package/dist/index.d.ts +19 -0
  11. package/dist/index.js +163 -22
  12. package/dist/index.js.map +1 -1
  13. package/dist/install-skill.js +1 -1
  14. package/dist/modules/apimapper/cache.d.ts +2 -2
  15. package/dist/modules/apimapper/cache.js +119 -29
  16. package/dist/modules/apimapper/cache.js.map +1 -1
  17. package/dist/modules/apimapper/client.d.ts +102 -1
  18. package/dist/modules/apimapper/client.js +631 -297
  19. package/dist/modules/apimapper/client.js.map +1 -1
  20. package/dist/modules/apimapper/connections-format.d.ts +51 -0
  21. package/dist/modules/apimapper/connections-format.js +261 -0
  22. package/dist/modules/apimapper/connections-format.js.map +1 -0
  23. package/dist/modules/apimapper/connections-trim.d.ts +82 -0
  24. package/dist/modules/apimapper/connections-trim.js +224 -0
  25. package/dist/modules/apimapper/connections-trim.js.map +1 -0
  26. package/dist/modules/apimapper/connections.d.ts +14 -2
  27. package/dist/modules/apimapper/connections.js +612 -153
  28. package/dist/modules/apimapper/connections.js.map +1 -1
  29. package/dist/modules/apimapper/credential-sanitizer.d.ts +5 -0
  30. package/dist/modules/apimapper/credential-sanitizer.js +60 -1
  31. package/dist/modules/apimapper/credential-sanitizer.js.map +1 -1
  32. package/dist/modules/apimapper/credentials-format.d.ts +21 -0
  33. package/dist/modules/apimapper/credentials-format.js +145 -0
  34. package/dist/modules/apimapper/credentials-format.js.map +1 -0
  35. package/dist/modules/apimapper/credentials.d.ts +12 -2
  36. package/dist/modules/apimapper/credentials.js +226 -73
  37. package/dist/modules/apimapper/credentials.js.map +1 -1
  38. package/dist/modules/apimapper/diagnose.d.ts +54 -2
  39. package/dist/modules/apimapper/diagnose.js +213 -12
  40. package/dist/modules/apimapper/diagnose.js.map +1 -1
  41. package/dist/modules/apimapper/elicitation.d.ts +54 -0
  42. package/dist/modules/apimapper/elicitation.js +90 -0
  43. package/dist/modules/apimapper/elicitation.js.map +1 -0
  44. package/dist/modules/apimapper/flows-format.d.ts +50 -0
  45. package/dist/modules/apimapper/flows-format.js +318 -0
  46. package/dist/modules/apimapper/flows-format.js.map +1 -0
  47. package/dist/modules/apimapper/flows.d.ts +13 -2
  48. package/dist/modules/apimapper/flows.js +312 -122
  49. package/dist/modules/apimapper/flows.js.map +1 -1
  50. package/dist/modules/apimapper/gateway/advanced-tool.d.ts +9 -0
  51. package/dist/modules/apimapper/gateway/advanced-tool.js +265 -0
  52. package/dist/modules/apimapper/gateway/advanced-tool.js.map +1 -0
  53. package/dist/modules/apimapper/gateway/capturing-server.d.ts +81 -0
  54. package/dist/modules/apimapper/gateway/capturing-server.js +87 -0
  55. package/dist/modules/apimapper/gateway/capturing-server.js.map +1 -0
  56. package/dist/modules/apimapper/gateway/essentials.d.ts +4 -0
  57. package/dist/modules/apimapper/gateway/essentials.js +35 -0
  58. package/dist/modules/apimapper/gateway/essentials.js.map +1 -0
  59. package/dist/modules/apimapper/gateway/test-support.d.ts +17 -0
  60. package/dist/modules/apimapper/gateway/test-support.js +43 -0
  61. package/dist/modules/apimapper/gateway/test-support.js.map +1 -0
  62. package/dist/modules/apimapper/get-skill.d.ts +3 -3
  63. package/dist/modules/apimapper/get-skill.js +47 -7
  64. package/dist/modules/apimapper/get-skill.js.map +1 -1
  65. package/dist/modules/apimapper/graph-builder.js +1 -1
  66. package/dist/modules/apimapper/graph-builder.js.map +1 -1
  67. package/dist/modules/apimapper/graph.d.ts +2 -2
  68. package/dist/modules/apimapper/graph.js +170 -35
  69. package/dist/modules/apimapper/graph.js.map +1 -1
  70. package/dist/modules/apimapper/index.d.ts +17 -1
  71. package/dist/modules/apimapper/index.js +68 -17
  72. package/dist/modules/apimapper/index.js.map +1 -1
  73. package/dist/modules/apimapper/inspect.d.ts +3 -2
  74. package/dist/modules/apimapper/inspect.js +97 -13
  75. package/dist/modules/apimapper/inspect.js.map +1 -1
  76. package/dist/modules/apimapper/library.d.ts +2 -2
  77. package/dist/modules/apimapper/library.js +665 -80
  78. package/dist/modules/apimapper/library.js.map +1 -1
  79. package/dist/modules/apimapper/license-format.d.ts +22 -0
  80. package/dist/modules/apimapper/license-format.js +149 -0
  81. package/dist/modules/apimapper/license-format.js.map +1 -0
  82. package/dist/modules/apimapper/license.d.ts +16 -2
  83. package/dist/modules/apimapper/license.js +62 -38
  84. package/dist/modules/apimapper/license.js.map +1 -1
  85. package/dist/modules/apimapper/local-sources.d.ts +2 -2
  86. package/dist/modules/apimapper/local-sources.js +44 -30
  87. package/dist/modules/apimapper/local-sources.js.map +1 -1
  88. package/dist/modules/apimapper/misc.d.ts +30 -2
  89. package/dist/modules/apimapper/misc.js +114 -49
  90. package/dist/modules/apimapper/misc.js.map +1 -1
  91. package/dist/modules/apimapper/node-schema.d.ts +52 -0
  92. package/dist/modules/apimapper/node-schema.js +70 -2
  93. package/dist/modules/apimapper/node-schema.js.map +1 -1
  94. package/dist/modules/apimapper/normalizers.d.ts +1 -0
  95. package/dist/modules/apimapper/normalizers.js +51 -0
  96. package/dist/modules/apimapper/normalizers.js.map +1 -1
  97. package/dist/modules/apimapper/onboarding.d.ts +78 -3
  98. package/dist/modules/apimapper/onboarding.js +428 -26
  99. package/dist/modules/apimapper/onboarding.js.map +1 -1
  100. package/dist/modules/apimapper/read-cache.d.ts +31 -2
  101. package/dist/modules/apimapper/read-cache.js +20 -6
  102. package/dist/modules/apimapper/read-cache.js.map +1 -1
  103. package/dist/modules/apimapper/render/_shared.d.ts +24 -0
  104. package/dist/modules/apimapper/render/_shared.js +84 -0
  105. package/dist/modules/apimapper/render/_shared.js.map +1 -0
  106. package/dist/modules/apimapper/render/dag.d.ts +18 -0
  107. package/dist/modules/apimapper/render/dag.js +70 -0
  108. package/dist/modules/apimapper/render/dag.js.map +1 -0
  109. package/dist/modules/apimapper/render/index.d.ts +2 -0
  110. package/dist/modules/apimapper/render/index.js +112 -0
  111. package/dist/modules/apimapper/render/index.js.map +1 -0
  112. package/dist/modules/apimapper/render/renderers/chart-bar.d.ts +2 -0
  113. package/dist/modules/apimapper/render/renderers/chart-bar.js +70 -0
  114. package/dist/modules/apimapper/render/renderers/chart-bar.js.map +1 -0
  115. package/dist/modules/apimapper/render/renderers/chart-line.d.ts +2 -0
  116. package/dist/modules/apimapper/render/renderers/chart-line.js +71 -0
  117. package/dist/modules/apimapper/render/renderers/chart-line.js.map +1 -0
  118. package/dist/modules/apimapper/render/renderers/diff.d.ts +2 -0
  119. package/dist/modules/apimapper/render/renderers/diff.js +154 -0
  120. package/dist/modules/apimapper/render/renderers/diff.js.map +1 -0
  121. package/dist/modules/apimapper/render/renderers/flow-diagram.d.ts +1 -0
  122. package/dist/modules/apimapper/render/renderers/flow-diagram.js +180 -0
  123. package/dist/modules/apimapper/render/renderers/flow-diagram.js.map +1 -0
  124. package/dist/modules/apimapper/render/renderers/json-tree.d.ts +2 -0
  125. package/dist/modules/apimapper/render/renderers/json-tree.js +87 -0
  126. package/dist/modules/apimapper/render/renderers/json-tree.js.map +1 -0
  127. package/dist/modules/apimapper/render/renderers/schema-diagram.d.ts +2 -0
  128. package/dist/modules/apimapper/render/renderers/schema-diagram.js +83 -0
  129. package/dist/modules/apimapper/render/renderers/schema-diagram.js.map +1 -0
  130. package/dist/modules/apimapper/render/renderers/table.d.ts +2 -0
  131. package/dist/modules/apimapper/render/renderers/table.js +75 -0
  132. package/dist/modules/apimapper/render/renderers/table.js.map +1 -0
  133. package/dist/modules/apimapper/render/schemas.d.ts +23 -0
  134. package/dist/modules/apimapper/render/schemas.js +56 -0
  135. package/dist/modules/apimapper/render/schemas.js.map +1 -0
  136. package/dist/modules/apimapper/render/secret-masking.d.ts +5 -0
  137. package/dist/modules/apimapper/render/secret-masking.js +51 -0
  138. package/dist/modules/apimapper/render/secret-masking.js.map +1 -0
  139. package/dist/modules/apimapper/render/sidecar.d.ts +21 -0
  140. package/dist/modules/apimapper/render/sidecar.js +66 -0
  141. package/dist/modules/apimapper/render/sidecar.js.map +1 -0
  142. package/dist/modules/apimapper/render/token-cap.d.ts +21 -0
  143. package/dist/modules/apimapper/render/token-cap.js +57 -0
  144. package/dist/modules/apimapper/render/token-cap.js.map +1 -0
  145. package/dist/modules/apimapper/schema.d.ts +2 -2
  146. package/dist/modules/apimapper/schema.js +92 -33
  147. package/dist/modules/apimapper/schema.js.map +1 -1
  148. package/dist/modules/apimapper/settings-format.d.ts +23 -0
  149. package/dist/modules/apimapper/settings-format.js +135 -0
  150. package/dist/modules/apimapper/settings-format.js.map +1 -0
  151. package/dist/modules/apimapper/settings.d.ts +2 -2
  152. package/dist/modules/apimapper/settings.js +100 -42
  153. package/dist/modules/apimapper/settings.js.map +1 -1
  154. package/dist/modules/apimapper/sites-tools.d.ts +29 -0
  155. package/dist/modules/apimapper/sites-tools.js +165 -0
  156. package/dist/modules/apimapper/sites-tools.js.map +1 -0
  157. package/dist/modules/apimapper/skill-resources.d.ts +2 -2
  158. package/dist/modules/apimapper/skill-resources.js.map +1 -1
  159. package/dist/modules/apimapper/token-baseline.harness.d.ts +91 -0
  160. package/dist/modules/apimapper/token-baseline.harness.js +291 -0
  161. package/dist/modules/apimapper/token-baseline.harness.js.map +1 -0
  162. package/dist/modules/apimapper/tool-result.d.ts +46 -0
  163. package/dist/modules/apimapper/tool-result.js +63 -0
  164. package/dist/modules/apimapper/tool-result.js.map +1 -0
  165. package/dist/modules/apimapper/toolslist-size.d.ts +56 -0
  166. package/dist/modules/apimapper/toolslist-size.js +192 -0
  167. package/dist/modules/apimapper/toolslist-size.js.map +1 -0
  168. package/dist/modules/apimapper/types.d.ts +44 -8
  169. package/dist/modules/apimapper/types.js +26 -1
  170. package/dist/modules/apimapper/types.js.map +1 -1
  171. package/dist/modules/apimapper/use-profile.d.ts +21 -0
  172. package/dist/modules/apimapper/use-profile.js +56 -2
  173. package/dist/modules/apimapper/use-profile.js.map +1 -1
  174. package/dist/modules/apimapper/whitelist-drift.d.ts +85 -0
  175. package/dist/modules/apimapper/whitelist-drift.js +360 -0
  176. package/dist/modules/apimapper/whitelist-drift.js.map +1 -0
  177. package/dist/modules/apimapper/workflows.d.ts +2 -2
  178. package/dist/modules/apimapper/workflows.js +202 -20
  179. package/dist/modules/apimapper/workflows.js.map +1 -1
  180. package/dist/modules/apimapper/yootheme-binding.d.ts +35 -0
  181. package/dist/modules/apimapper/yootheme-binding.js +186 -0
  182. package/dist/modules/apimapper/yootheme-binding.js.map +1 -0
  183. package/dist/platform/index.d.ts +56 -0
  184. package/dist/platform/index.js +195 -7
  185. package/dist/platform/index.js.map +1 -1
  186. package/dist/setup/detect-clients.d.ts +40 -1
  187. package/dist/setup/detect-clients.js +148 -1
  188. package/dist/setup/detect-clients.js.map +1 -1
  189. package/dist/setup/probe-handshake.js +40 -7
  190. package/dist/setup/probe-handshake.js.map +1 -1
  191. package/dist/setup/remove-config.d.ts +8 -0
  192. package/dist/setup/remove-config.js +145 -0
  193. package/dist/setup/remove-config.js.map +1 -0
  194. package/dist/setup/uninstall.d.ts +34 -0
  195. package/dist/setup/uninstall.js +147 -0
  196. package/dist/setup/uninstall.js.map +1 -0
  197. package/dist/setup-cli.d.ts +60 -0
  198. package/dist/setup-cli.js +155 -5
  199. package/dist/setup-cli.js.map +1 -1
  200. package/dist/sites/loader.d.ts +41 -0
  201. package/dist/sites/loader.js +119 -0
  202. package/dist/sites/loader.js.map +1 -0
  203. package/dist/sites/schema.d.ts +69 -0
  204. package/dist/sites/schema.js +71 -0
  205. package/dist/sites/schema.js.map +1 -0
  206. package/dist/sites/secret-resolver.d.ts +47 -0
  207. package/dist/sites/secret-resolver.js +150 -0
  208. package/dist/sites/secret-resolver.js.map +1 -0
  209. package/dist/skill-instructions.d.ts +1 -1
  210. package/dist/skill-instructions.js +5 -0
  211. package/dist/skill-instructions.js.map +1 -1
  212. package/dist/transports/stdio.js +4 -4
  213. package/dist/transports/stdio.js.map +1 -1
  214. package/dist/uninstall-skill.d.ts +27 -0
  215. package/dist/uninstall-skill.js +89 -0
  216. package/dist/uninstall-skill.js.map +1 -0
  217. package/docs/architecture.md +22 -22
  218. package/docs/customgraph-internal-migration.md +4 -4
  219. package/docs/security.md +2 -21
  220. package/docs/tools.md +40 -12
  221. package/manifest.json +77 -70
  222. package/package.json +68 -60
  223. package/skills/apimapper/SKILL.md +53 -7
  224. package/skills/apimapper/reference/conditional-style-multi-items.md +114 -0
  225. package/skills/apimapper/reference/jmespath-pitfalls.md +108 -0
  226. package/skills/apimapper/reference/joomla.md +1 -1
  227. package/skills/apimapper/reference/library-template-discovery.md +65 -0
  228. package/skills/apimapper/reference/merge-two-sources-on-key.md +99 -0
  229. package/skills/apimapper/reference/render.md +132 -0
  230. package/skills/apimapper/reference/troubleshooting.md +21 -1
  231. package/skills/apimapper/reference/yootheme.md +1 -1
  232. package/dist/auth/oauth-provider.d.ts +0 -68
  233. package/dist/auth/oauth-provider.js +0 -232
  234. package/dist/auth/oauth-provider.js.map +0 -1
  235. package/dist/server-http.d.ts +0 -22
  236. package/dist/server-http.js +0 -159
  237. package/dist/server-http.js.map +0 -1
  238. package/dist/transports/http.d.ts +0 -29
  239. package/dist/transports/http.js +0 -267
  240. package/dist/transports/http.js.map +0 -1
@@ -1,9 +1,19 @@
1
1
  import { z } from "zod";
2
- import { formatResult, creating, mutating } from "@getimo/mcp-toolkit";
2
+ import { formatResult, creating, mutating, createProgressReporter } from "@getimo/mcp-toolkit";
3
3
  import { request, hintFor } from "./client.js";
4
4
  import { unwrapEntity } from "./envelope.js";
5
5
  import { buildFlowGraph } from "./graph-builder.js";
6
6
  import { normalizeMergeStrategy } from "./normalizers.js";
7
+ /**
8
+ * F-37 (W1.22): matches the default labels emitted by
9
+ * `apimapper_flow_change_merge_strategy`. User-customised labels (which
10
+ * don't match this exact pattern) are preserved across strategy toggles;
11
+ * only default labels get overwritten with the new-strategy default.
12
+ *
13
+ * Regex is anchored: trailing whitespace, prefixes, or alternate
14
+ * casings count as user-custom and are preserved as-is.
15
+ */
16
+ const DEFAULT_MERGE_LABEL_RE = /^Merge: (Concat|Join)$/;
7
17
  const SourceSpec = z.object({
8
18
  connection: z.string().describe("Connection ID. Use apimapper_connection_list to find."),
9
19
  endpoint: z.string().optional().describe('Endpoint id (e.g., "Scheduled Events")'),
@@ -46,9 +56,26 @@ export function registerWorkflowTools(server) {
46
56
  transform: TransformSpec.optional().describe("Optional Transform node"),
47
57
  output: OutputSpec.describe("Output node config"),
48
58
  compile: z.boolean().default(true).describe("Compile after save (= publish to YOOtheme)"),
59
+ autofix: z
60
+ .boolean()
61
+ .default(true)
62
+ .describe("Defaults to true. When compile:true, auto-repair empty-output-schema compile errors " +
63
+ "by calling detect-schema then retrying compile so the new source compiles and " +
64
+ "appears. Pass false to opt out (verbatim old behaviour — no detect-schema retry). " +
65
+ "Mirrors `flow_full_recompile_publish` autofix."),
49
66
  },
50
- annotations: creating(),
51
- }, async ({ name, description, sources, merge, transform, output, compile }) => {
67
+ annotations: creating({ title: "Setup Flow with Sources", openWorld: true }),
68
+ }, async ({ name, description, sources, merge, transform, output, compile, autofix }, extra) => {
69
+ // C (2026-06-04): autofix defaults to true. Treat `undefined` (omitted
70
+ // arg / unit-test harness that bypasses the schema default) as the
71
+ // on-default; only an explicit `autofix:false` opts out.
72
+ const autofixEnabled = autofix !== false;
73
+ // W3.5 — progress side-channel. `null` when the caller sent no
74
+ // progressToken; `progress?.report(...)` then no-ops. Total steps:
75
+ // build-graph + create + (compile when requested).
76
+ const progress = extra ? createProgressReporter(extra) : null;
77
+ const totalSteps = compile ? 3 : 2;
78
+ await progress?.report(0, totalSteps, "Building flow graph…");
52
79
  // Validate via buildFlowGraph (it throws on invalid combos)
53
80
  let graph;
54
81
  try {
@@ -67,6 +94,7 @@ export function registerWorkflowTools(server) {
67
94
  }, true);
68
95
  }
69
96
  // Step 1: create
97
+ await progress?.report(1, totalSteps, "Creating flow…");
70
98
  // F-A5-05a: PHP returns `{success, flow: {id, name, ...}}`. Unwrap the
71
99
  // nested `flow` object via the shared envelope helper (tolerates flat
72
100
  // shape for future contract bumps).
@@ -99,8 +127,29 @@ export function registerWorkflowTools(server) {
99
127
  // does not include the full flow object.
100
128
  let compiled = false;
101
129
  let compileError;
130
+ const autofixActions = [];
102
131
  if (compile) {
103
- const compileR = await request(`/flows/${encodeURIComponent(flowId)}/compile`, { method: "POST" });
132
+ await progress?.report(2, totalSteps, "Compiling and publishing to YOOtheme…");
133
+ let compileR = await request(`/flows/${encodeURIComponent(flowId)}/compile`, { method: "POST" });
134
+ // F5 (W9b, 2026-05-29): autofix mirror of flow_full_recompile_publish.
135
+ // CODE_EMPTY_SCHEMA = 4 (PHP FlowCompilerException constant, frozen).
136
+ // On empty-schema error, call detect-schema then retry compile. This
137
+ // makes the composite tool self-healing on the most common compile
138
+ // failure (newly created flow has no output schema yet).
139
+ const COMPILER_CODE_EMPTY_SCHEMA = 4;
140
+ if (!compileR.success &&
141
+ autofixEnabled &&
142
+ compileR.errorBody?.compiler_error_code === COMPILER_CODE_EMPTY_SCHEMA) {
143
+ autofixActions.push("Detected empty output schema, running detect-schema");
144
+ const detectR = await request(`/flows/${encodeURIComponent(flowId)}/detect-schema`, { method: "POST" });
145
+ if (detectR.success) {
146
+ autofixActions.push("Schema detected, retrying compile");
147
+ compileR = await request(`/flows/${encodeURIComponent(flowId)}/compile`, { method: "POST" });
148
+ }
149
+ else {
150
+ autofixActions.push(`Schema detection failed: ${detectR.error ?? "unknown"}; cannot retry compile`);
151
+ }
152
+ }
104
153
  if (!compileR.success) {
105
154
  compileError = compileR.error;
106
155
  steps.push(`2. Compile FAILED: ${compileR.error}`);
@@ -114,7 +163,8 @@ export function registerWorkflowTools(server) {
114
163
  }
115
164
  else {
116
165
  compiled = true;
117
- steps.push("2. Compiled flow visible in YOOtheme dropdown");
166
+ const autofixSuffix = autofixActions.length > 0 ? " (autofix applied)" : "";
167
+ steps.push(`2. Compiled — flow visible in YOOtheme dropdown${autofixSuffix}`);
118
168
  }
119
169
  }
120
170
  }
@@ -124,12 +174,14 @@ export function registerWorkflowTools(server) {
124
174
  flow_id: flowId,
125
175
  compiled: false,
126
176
  compile_error: compileError,
177
+ autofix_actions: autofixActions.length > 0 ? autofixActions : undefined,
127
178
  steps,
128
179
  next_action: "investigate_compile_error",
129
180
  cleanup: `Call apimapper_flow_delete with id="${flowId}" + confirm=true to roll back the orphan, OR fix node config and call apimapper_flow_compile again.`,
130
181
  hint: "Compile errors usually mean missing joinKey, invalid JMESPath, or missing connection. Use apimapper_flow_get to inspect node data.",
131
182
  }, true);
132
183
  }
184
+ await progress?.report(totalSteps, totalSteps, compiled ? "Flow created and published" : "Flow created");
133
185
  return formatResult({
134
186
  created: true,
135
187
  flow_id: flowId,
@@ -158,7 +210,7 @@ export function registerWorkflowTools(server) {
158
210
  joinType: z.enum(["left", "inner"]).optional().describe("Join type override"),
159
211
  compile: z.boolean().default(true).describe("Compile after save"),
160
212
  },
161
- annotations: mutating(),
213
+ annotations: mutating({ title: "Change Flow Merge Strategy", openWorld: true }),
162
214
  }, async ({ flow_id, strategy, joinKey, joinKeyRight, joinType, compile }) => {
163
215
  const getR = await request(`/flows/${encodeURIComponent(flow_id)}`);
164
216
  if (!getR.success || !getR.data) {
@@ -190,10 +242,15 @@ export function registerWorkflowTools(server) {
190
242
  }
191
243
  const compiledStrategy = normalizeMergeStrategy(strategy);
192
244
  const oldData = (mergeNode.data || {});
245
+ const existingLabel = typeof oldData.label === "string" ? oldData.label : "";
246
+ const isDefaultLabel = DEFAULT_MERGE_LABEL_RE.test(existingLabel);
247
+ const defaultLabel = `Merge: ${compiledStrategy === "concat" ? "Concat" : "Join"}`;
193
248
  const newData = {
194
249
  ...oldData,
195
250
  strategy: compiledStrategy,
196
- label: `Merge: ${compiledStrategy === "concat" ? "Concat" : "Join"}`,
251
+ // F-37 (W1.22): preserve user-customised label; only overwrite
252
+ // when label is empty or matches the canonical default pattern.
253
+ label: existingLabel && !isDefaultLabel ? existingLabel : defaultLabel,
197
254
  };
198
255
  if (compiledStrategy === "join") {
199
256
  newData.joinKey = joinKey || oldData.joinKey || "";
@@ -261,31 +318,122 @@ export function registerWorkflowTools(server) {
261
318
  }, false, { maxChars: 2500 });
262
319
  });
263
320
  // ── apimapper_flow_full_recompile_publish ──────────────────────────
321
+ //
322
+ // W2-3 (H-3, 2026-05-28): added `autofix` parameter. Previously the tool
323
+ // surfaced compile errors verbatim and never flushed the YOOtheme schema
324
+ // cache; customers running `autofix:true` saw the tool silently pass
325
+ // through compile errors anyway (audit-finding H-3, A3-6). With
326
+ // `autofix:true` the tool:
327
+ //
328
+ // 1. On compile failure with FlowCompilerException::CODE_EMPTY_SCHEMA (4),
329
+ // calls /flows/{id}/detect-schema then retries compile.
330
+ // 2. On compile success (with autofix:true), also calls /cache/flush-yt
331
+ // so the source appears in YOOtheme immediately without a second MCP
332
+ // package (matches audit recommendation A1 P1).
333
+ //
334
+ // C (2026-06-04): the default is now `autofix:true`. Observed live in a
335
+ // Claude Desktop session: when the AI omits `autofix`, the old default
336
+ // (false) meant the YOOtheme schema cache was never flushed, so the source
337
+ // did NOT appear in the YOOtheme builder after publish. Flipping the default
338
+ // makes the autofix path (detect-schema retry + flush-yt) the normal path,
339
+ // so a plain `apimapper_flow_full_recompile_publish({id})` reliably publishes
340
+ // a visible source. `autofix:false` is now an explicit opt-out that restores
341
+ // the verbatim v2.0.7 behaviour (compile + admin-cache only, no detect-schema
342
+ // retry, no YT flush). The handler treats `autofix !== false` as enabled, so
343
+ // an omitted/undefined value behaves identically to the schema default at the
344
+ // real SDK call boundary. The PHP layer surfaces `compiler_error_code` on
345
+ // compile-error responses (FlowHandler.php) so this branch reads a numeric
346
+ // class rather than string-matching messages.
264
347
  server.registerTool("apimapper_flow_full_recompile_publish", {
265
348
  title: "Full Recompile + Cache Clear (Composite)",
266
- description: "Compile a flow + invalidate admin cache in one call. Use after upstream API changes " +
267
- "to ensure the flow + schema are fresh. Each step's success is surfaced separately " +
268
- " a cache-clear failure does NOT silently downgrade compile success." +
269
- "\n\nExample:\n apimapper_flow_full_recompile_publish({ flow_id: 'flow_Z2fLg70M84' })",
349
+ description: "Compile a flow + invalidate admin cache + flush the YOOtheme schema cache in one call. " +
350
+ "Use after upstream API changes to ensure the flow + schema are fresh. Each step's success " +
351
+ "is surfaced separately, and a cache-clear failure does NOT silently downgrade compile success. " +
352
+ "autofix defaults to true: it auto-repairs common compile errors " +
353
+ "(empty output schema → re-detect; then retry compile) AND flushes the " +
354
+ "YOOtheme schema cache so the source becomes visible in the YOOtheme builder — " +
355
+ "no second MCP package needed. Pass autofix:false to opt out (compile + admin-cache " +
356
+ "only, no detect-schema retry, no YT flush — the verbatim v2.0.7 behaviour)." +
357
+ "\n\nExample:\n apimapper_flow_full_recompile_publish({ id: 'flow_Z2fLg70M84' })",
270
358
  inputSchema: {
271
- flow_id: z.string().describe("Flow ID. Use apimapper_flow_list to find."),
359
+ // L-6 (W3F-5): accept either `id` (canonical, matches every other
360
+ // flow_* tool) or `flow_id` (legacy alias kept so existing callers
361
+ // do not break). The handler reads from the union below — both
362
+ // names land in `flowId`.
363
+ id: z
364
+ .string()
365
+ .optional()
366
+ .describe("Flow ID. Use apimapper_flow_list to find. (Canonical key; `flow_id` is accepted as a legacy alias.)"),
367
+ flow_id: z
368
+ .string()
369
+ .optional()
370
+ .describe("Deprecated alias for `id` — accepted for back-compat with pre-W3F-5 callers."),
371
+ autofix: z
372
+ .boolean()
373
+ .default(true)
374
+ .describe("When true (default): on empty-schema compile error, call detect-schema and retry " +
375
+ "compile. On compile success, also flush the YOOtheme schema cache so the source " +
376
+ "surfaces in the YOOtheme builder. Pass false to opt out — compile + admin-cache " +
377
+ "only, no detect-schema retry, no YT flush (the verbatim v2.0.7 behaviour)."),
272
378
  },
273
- annotations: mutating(),
274
- }, async ({ flow_id }) => {
379
+ annotations: mutating({ title: "Full Recompile & Publish Flow", openWorld: true }),
380
+ }, async ({ id, flow_id: flowIdAlias, autofix }, extra) => {
381
+ // L-6 (W3F-5): resolve the dual-name input — `id` (canonical) takes
382
+ // priority over the legacy `flow_id` alias when both are present.
383
+ const flow_id = id ?? flowIdAlias;
384
+ if (typeof flow_id !== "string" || flow_id === "") {
385
+ return formatResult({
386
+ error: "Missing required flow ID. Pass `id` (preferred) or `flow_id`.",
387
+ errorCode: "bad_request",
388
+ }, true);
389
+ }
275
390
  const steps = [];
276
391
  const errors = [];
277
- // Stage 1: compile
278
- const compileR = await request(`/flows/${encodeURIComponent(flow_id)}/compile`, { method: "POST" });
392
+ const autofixActions = [];
393
+ // C (2026-06-04): autofix defaults to true. Treat `undefined` (caller
394
+ // omitted the arg, and the unit-test harness bypasses the schema default)
395
+ // identically to the on-default, so only an explicit `autofix:false`
396
+ // opts out. This keeps the handler faithful to the documented default
397
+ // whether or not the SDK applied the Zod default before dispatch.
398
+ const autofixEnabled = autofix !== false;
399
+ // W3.5: progress side-channel. autofix adds a third stage
400
+ // (YOOtheme schema cache flush) so it's a 3-step pipeline.
401
+ const totalSteps = autofixEnabled ? 3 : 2;
402
+ const progress = extra ? createProgressReporter(extra) : null;
403
+ await progress?.report(0, totalSteps, "Recompiling flow…");
404
+ // Stage 1: compile (with optional autofix retry)
405
+ let compileR = await request(`/flows/${encodeURIComponent(flow_id)}/compile`, { method: "POST" });
406
+ // W2-3 autofix: on CODE_EMPTY_SCHEMA (4), call detect-schema then retry.
407
+ // PHP FlowCompilerException::CODE_EMPTY_SCHEMA = 4 (constant frozen for
408
+ // wire-stability across plugin versions; same number on WP + Joomla
409
+ // because both share src/modules/core/src/Flow/FlowCompilerException.php).
410
+ const COMPILER_CODE_EMPTY_SCHEMA = 4;
411
+ if (!compileR.success &&
412
+ autofixEnabled &&
413
+ compileR.errorBody?.compiler_error_code === COMPILER_CODE_EMPTY_SCHEMA) {
414
+ autofixActions.push("Detected empty output schema, running detect-schema");
415
+ const detectR = await request(`/flows/${encodeURIComponent(flow_id)}/detect-schema`, { method: "POST" });
416
+ if (detectR.success) {
417
+ autofixActions.push("Schema detected, retrying compile");
418
+ compileR = await request(`/flows/${encodeURIComponent(flow_id)}/compile`, { method: "POST" });
419
+ }
420
+ else {
421
+ autofixActions.push(`Schema detection failed: ${detectR.error ?? "unknown"}; cannot retry compile`);
422
+ }
423
+ }
279
424
  if (!compileR.success) {
280
425
  return formatResult({
281
426
  error: compileR.error,
282
427
  status: compileR.status,
283
428
  errorCode: compileR.errorCode,
284
- context: { flow_id, stage: "compile" },
429
+ compiler_error_code: compileR.errorBody?.compiler_error_code,
430
+ context: { flow_id, stage: "compile", autofix: autofixEnabled },
431
+ autofix_actions: autofixActions.length > 0 ? autofixActions : undefined,
285
432
  hint: hintFor(compileR.errorCode),
286
433
  }, true);
287
434
  }
288
435
  steps.push("1. Flow compiled");
436
+ await progress?.report(1, totalSteps, "Clearing admin cache…");
289
437
  // Stage 2: cache invalidate (admin cache — admin-ui + render cache)
290
438
  // F-A5-07b: PHP CacheInvalidateController expects `{scope: 'flow.published',
291
439
  // payload: {flow_id}}` — `scope: 'flow'` is a legacy alias kept by Wave 1B
@@ -301,17 +449,51 @@ export function registerWorkflowTools(server) {
301
449
  errors.push({ stage: "cache", error: cacheR.error || "unknown" });
302
450
  steps.push(`2. Admin cache invalidation FAILED: ${cacheR.error}`);
303
451
  }
452
+ // Stage 3 (autofix only): YT schema cache flush
453
+ // POST /cache/flush-yt: CacheFlushController (WP) /
454
+ // CacheFlushAjaxHandler (Joomla, action=cache_flush_yt). The endpoint
455
+ // is lenient: it always returns 200 when permission passes, with
456
+ // {flushed: false, error: <msg>} in the body when the buster threw.
457
+ // We treat the request-level success/failure as authoritative and
458
+ // record any flushed:false as a non-fatal warning step.
459
+ if (autofixEnabled) {
460
+ await progress?.report(2, totalSteps, "Flushing YOOtheme schema cache…");
461
+ const ytR = await request("/cache/flush-yt", { method: "POST" });
462
+ if (ytR.success && ytR.data?.flushed !== false) {
463
+ steps.push("3. YOOtheme schema cache flushed");
464
+ }
465
+ else if (ytR.success && ytR.data?.flushed === false) {
466
+ errors.push({
467
+ stage: "yt_cache",
468
+ error: ytR.data?.error ?? "buster returned flushed:false",
469
+ });
470
+ steps.push(`3. YOOtheme schema cache flush returned flushed:false: ${ytR.data?.error}`);
471
+ }
472
+ else {
473
+ errors.push({ stage: "yt_cache", error: ytR.error ?? "unknown" });
474
+ steps.push(`3. YOOtheme schema cache flush FAILED: ${ytR.error}`);
475
+ }
476
+ }
304
477
  const ok = errors.length === 0;
478
+ await progress?.report(totalSteps, totalSteps, ok ? "Recompile and cache clear complete" : "Recompile complete (cache step had issues)");
305
479
  return formatResult({
306
480
  ok,
307
481
  partial: !ok,
308
482
  flow_id,
309
483
  steps,
310
484
  errors: ok ? undefined : errors,
485
+ autofix_actions: autofixActions.length > 0 ? autofixActions : undefined,
311
486
  next: ok
312
- ? "Flow is fresh in both admin + render layers. YOOtheme schema cache is NOT cleared by this tool — clear it via the YOOtheme MCP (yootheme_clear_cache) if needed."
313
- : "Compile succeeded but cache step had issues. Manually call apimapper_cache_invalidate scope=all if downstream still sees stale data.",
314
- }, ok, { maxChars: 2500 });
487
+ ? autofixEnabled
488
+ ? "Flow recompiled, admin cache invalidated, and YOOtheme schema cache flushed. The source should now be visible in the YOOtheme builder."
489
+ : "Flow is fresh in both admin + render layers. You passed autofix:false, so the YOOtheme schema cache was NOT cleared by this tool; re-run without autofix:false (the default flushes it) or call yootheme_clear_cache via the YOOtheme MCP if the source does not appear in the builder."
490
+ : "Compile succeeded but a cache step had issues. Manually call apimapper_cache_invalidate scope=all if downstream still sees stale data.",
491
+ },
492
+ // Wave-5 F7 fix (2026-05-29): formatResult's 2nd positional is `isError`.
493
+ // Pre-fix we passed `ok` here, which inverted the meaning — ok:true was
494
+ // tagged as `<error>` envelope. Pass `!ok` so success-with-no-errors
495
+ // renders as success and partial (errors.length > 0) renders as error.
496
+ !ok, { maxChars: 2500 });
315
497
  });
316
498
  }
317
499
  //# sourceMappingURL=workflows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/modules/apimapper/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/modules/apimapper/workflows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ToolRegistrar } from "./gateway/capturing-server.js";
2
+ import type { Flow } from "./types.js";
3
+ /**
4
+ * Pure helper — compute the canonical YOOtheme GraphQL query name for a flow
5
+ * id. Mirrors `TypeNameConvention::flowQueryName` in PHP
6
+ * (src/modules/source/src/Type/TypeNameConvention.php).
7
+ *
8
+ * Pattern: apiMapperFlow<Pascal(strip-flow-prefix(id))>
9
+ *
10
+ * The PHP flowPascalCase replaces any non-alphanumeric char with a space and
11
+ * then ucwords + strip-space (aggressive boundary detection). This mirror
12
+ * preserves the same behaviour byte-for-byte so the names always match the
13
+ * server-side schema registrar.
14
+ */
15
+ export declare function flowQueryName(flowId: string): string;
16
+ /**
17
+ * Extract the output node's schema fields from a flow definition. The output
18
+ * node carries `data.schema.fields = [{name, type}]` (set by FlowAutoGenerator
19
+ * + customer edits in the Flow Editor). The schema may arrive as either a
20
+ * native object or a JSON-encoded string (legacy persistence shape).
21
+ */
22
+ export declare function extractOutputSchemaFields(flow: Flow): Array<{
23
+ name: string;
24
+ type: string;
25
+ }>;
26
+ /**
27
+ * Heuristic — suggest reasonable YOOtheme element-prop → source-field mappings
28
+ * given a list of available fields. The AI agent can use these as a starting
29
+ * point; the customer can rename them in the Builder.
30
+ */
31
+ export declare function suggestFieldMappings(fields: Array<{
32
+ name: string;
33
+ type: string;
34
+ }>): Record<string, string>;
35
+ export declare function registerYoothemeBindingTools(server: ToolRegistrar): void;
@@ -0,0 +1,186 @@
1
+ // src/modules/apimapper/yootheme-binding.ts — Friction-2 (Task #46, 2026-05-29)
2
+ //
3
+ // `apimapper_yootheme_binding_for_flow` — one-call bridge from a compiled flow
4
+ // to the YOOtheme source it produces, with the exact GraphQL field names a
5
+ // downstream yt-builder-mcp call can bind against.
6
+ //
7
+ // Why this exists: pre-fix, an AI agent that just published a flow had to
8
+ // chain (1) `flow_get` to read the output node schema, (2) parse a stringly-
9
+ // typed `data.schema.fields[]` JSON, (3) `sources_list` (yt-builder) to grep
10
+ // for `apiMapperFlow*List` rows. 3+ calls + JSON parsing for what is purely
11
+ // a deterministic name computation governed by TypeNameConvention.php.
12
+ //
13
+ // This tool short-circuits all of that. It reads the flow once, extracts
14
+ // the output node's schema fields, and returns the exact source names plus
15
+ // suggested field mappings.
16
+ import { z } from "zod";
17
+ import { formatResult, errorResult, readOnly } from "@getimo/mcp-toolkit";
18
+ import { request, hintFor } from "./client.js";
19
+ import { restErrorResult } from "./tool-result.js";
20
+ import { unwrapEntity } from "./envelope.js";
21
+ /**
22
+ * Pure helper — compute the canonical YOOtheme GraphQL query name for a flow
23
+ * id. Mirrors `TypeNameConvention::flowQueryName` in PHP
24
+ * (src/modules/source/src/Type/TypeNameConvention.php).
25
+ *
26
+ * Pattern: apiMapperFlow<Pascal(strip-flow-prefix(id))>
27
+ *
28
+ * The PHP flowPascalCase replaces any non-alphanumeric char with a space and
29
+ * then ucwords + strip-space (aggressive boundary detection). This mirror
30
+ * preserves the same behaviour byte-for-byte so the names always match the
31
+ * server-side schema registrar.
32
+ */
33
+ export function flowQueryName(flowId) {
34
+ const stripped = flowId.replace(/^flow_/i, "");
35
+ // aggressive pascal-case: any non-alphanumeric is a word boundary.
36
+ const normalized = stripped.replace(/[^a-zA-Z0-9]/g, " ");
37
+ const cased = normalized
38
+ .split(/\s+/)
39
+ .filter((s) => s.length > 0)
40
+ .map((s) => s.charAt(0).toUpperCase() + s.slice(1))
41
+ .join("");
42
+ return `apiMapperFlow${cased}`;
43
+ }
44
+ /**
45
+ * Extract the output node's schema fields from a flow definition. The output
46
+ * node carries `data.schema.fields = [{name, type}]` (set by FlowAutoGenerator
47
+ * + customer edits in the Flow Editor). The schema may arrive as either a
48
+ * native object or a JSON-encoded string (legacy persistence shape).
49
+ */
50
+ export function extractOutputSchemaFields(flow) {
51
+ const nodes = Array.isArray(flow.nodes) ? flow.nodes : [];
52
+ const outputNode = nodes.find((n) => n.type === "output");
53
+ if (!outputNode || !outputNode.data)
54
+ return [];
55
+ const data = outputNode.data;
56
+ let schema = data.schema;
57
+ // Legacy JSON-string persistence — parse defensively.
58
+ if (typeof schema === "string") {
59
+ try {
60
+ schema = JSON.parse(schema);
61
+ }
62
+ catch {
63
+ return [];
64
+ }
65
+ }
66
+ if (!schema || typeof schema !== "object")
67
+ return [];
68
+ const schemaObj = schema;
69
+ const fields = Array.isArray(schemaObj.fields) ? schemaObj.fields : [];
70
+ return fields
71
+ .filter((f) => f !== null && typeof f === "object")
72
+ .map((f) => ({
73
+ name: typeof f.name === "string" ? f.name : "",
74
+ type: typeof f.type === "string" ? f.type : "String",
75
+ }))
76
+ .filter((f) => f.name !== "");
77
+ }
78
+ /**
79
+ * Heuristic — suggest reasonable YOOtheme element-prop → source-field mappings
80
+ * given a list of available fields. The AI agent can use these as a starting
81
+ * point; the customer can rename them in the Builder.
82
+ */
83
+ export function suggestFieldMappings(fields) {
84
+ const out = {};
85
+ const lower = fields.map((f) => ({ name: f.name, lc: f.name.toLowerCase() }));
86
+ const find = (...candidates) => {
87
+ for (const c of candidates) {
88
+ const exact = lower.find((f) => f.lc === c);
89
+ if (exact)
90
+ return exact.name;
91
+ }
92
+ for (const c of candidates) {
93
+ const partial = lower.find((f) => f.lc.includes(c));
94
+ if (partial)
95
+ return partial.name;
96
+ }
97
+ return undefined;
98
+ };
99
+ const title = find("title", "name", "label", "headline", "weekday");
100
+ if (title)
101
+ out.title = title;
102
+ const content = find("content", "body", "description", "summary", "text", "open_time");
103
+ if (content)
104
+ out.content = content;
105
+ const meta = find("date", "published", "created_at", "updated_at", "close_time", "note");
106
+ if (meta)
107
+ out.meta = meta;
108
+ const image = find("image", "thumbnail", "photo", "picture", "cover");
109
+ if (image)
110
+ out.image = image;
111
+ const link = find("url", "link", "permalink", "href");
112
+ if (link)
113
+ out.link = link;
114
+ return out;
115
+ }
116
+ export function registerYoothemeBindingTools(server) {
117
+ server.registerTool("apimapper_yootheme_binding_for_flow", {
118
+ title: "Get YOOtheme Binding for Flow",
119
+ description: "Bridge tool: given a published flow id, return the EXACT YOOtheme " +
120
+ "GraphQL source names (singular + List) and the schema fields available " +
121
+ "for binding. Replaces a 3-call chain (flow_get → parse schema JSON → " +
122
+ "yt-builder sources_list grep) with one deterministic call." +
123
+ "\n\nUse after `apimapper_flow_full_recompile_publish` to discover what " +
124
+ "to bind in yt-builder-mcp `yootheme_builder_element_update_settings`." +
125
+ "\n\nThe `source_name_list` is the canonical Multi-Items target " +
126
+ "(grid/list/slider containers). The `source_name_singular` is the " +
127
+ "wrapper object (single-item bindings)." +
128
+ "\n\nExample:\n apimapper_yootheme_binding_for_flow({ flow_id: 'flow_VYvfwySM34fypAbDoc7rx' })",
129
+ inputSchema: {
130
+ flow_id: z
131
+ .string()
132
+ .min(1)
133
+ .describe('Flow ID (e.g., "flow_VYvfwySM34fypAbDoc7rx"). Use apimapper_flow_list to find.'),
134
+ },
135
+ annotations: readOnly({ title: "Get YOOtheme Binding for Flow", openWorld: true }),
136
+ }, async ({ flow_id }) => {
137
+ const r = await request(`/flows/${encodeURIComponent(flow_id)}`);
138
+ if (!r.success) {
139
+ return restErrorResult(r, { flow_id }, { message: "flow get failed" });
140
+ }
141
+ const flow = unwrapEntity(r.data, "flow");
142
+ if (!flow || Object.keys(flow).length === 0) {
143
+ return errorResult({
144
+ message: "flow not found",
145
+ code: r.status ? String(r.status) : "not_found",
146
+ suggestion: hintFor("not_found"),
147
+ details: { flow_id },
148
+ });
149
+ }
150
+ const fields = extractOutputSchemaFields(flow);
151
+ const singular = flowQueryName(flow_id);
152
+ const listName = `${singular}List`;
153
+ const isCompiled = Boolean(flow.is_compiled) ||
154
+ (Array.isArray(flow.node_types) && flow.node_types.includes("output"));
155
+ const exampleMappings = suggestFieldMappings(fields);
156
+ // Detect output mode (yootheme vs shortcode) from the output node data.
157
+ const outputNode = (flow.nodes ?? []).find((n) => n.type === "output");
158
+ const outputMode = outputNode?.data && typeof outputNode.data === "object"
159
+ ? outputNode.data.output_type
160
+ : undefined;
161
+ const isYoothemeOutput = outputMode !== "shortcode";
162
+ return formatResult({
163
+ flow_id,
164
+ flow_name: flow.name ?? null,
165
+ source_name_singular: singular,
166
+ source_name_list: listName,
167
+ fields,
168
+ field_count: fields.length,
169
+ example_field_mappings: exampleMappings,
170
+ ready_for_binding: isCompiled && isYoothemeOutput && fields.length > 0,
171
+ output_mode: isYoothemeOutput ? "yootheme" : "shortcode",
172
+ next_steps: [
173
+ // For YOOtheme Multi-Items containers (grid, list, slider, ...) the
174
+ // List variant is the target. Singular is for single-item bindings.
175
+ "Bind on the *_item child (grid_item, list_item) of a container element using yootheme_builder_element_update_settings.",
176
+ `Set props.source.query.name = "${listName}" on the container element to clone N times per source row.`,
177
+ `Inside props.source.props, map: { title: { name: "<source_field>" }, content: { name: "<source_field>" } }.`,
178
+ "Suggested mappings above are heuristic — customer can rename in the Builder.",
179
+ !isCompiled
180
+ ? "Flow is NOT yet compiled — call apimapper_flow_full_recompile_publish first."
181
+ : "Flow is compiled and ready for binding.",
182
+ ].filter(Boolean),
183
+ }, false, { maxChars: 4000 });
184
+ });
185
+ }
186
+ //# sourceMappingURL=yootheme-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yootheme-binding.js","sourceRoot":"","sources":["../../../src/modules/apimapper/yootheme-binding.ts"],"names":[],"mappings":"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"}