@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.
- package/CHANGELOG.md +148 -83
- package/README.md +36 -32
- package/SECURITY.md +15 -6
- package/dist/auth/keychain.d.ts +27 -1
- package/dist/auth/keychain.js +48 -2
- package/dist/auth/keychain.js.map +1 -1
- package/dist/cli-hint.d.ts +22 -0
- package/dist/cli-hint.js +55 -0
- package/dist/cli-hint.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +163 -22
- package/dist/index.js.map +1 -1
- package/dist/install-skill.js +1 -1
- package/dist/modules/apimapper/cache.d.ts +2 -2
- package/dist/modules/apimapper/cache.js +119 -29
- package/dist/modules/apimapper/cache.js.map +1 -1
- package/dist/modules/apimapper/client.d.ts +102 -1
- package/dist/modules/apimapper/client.js +631 -297
- package/dist/modules/apimapper/client.js.map +1 -1
- package/dist/modules/apimapper/connections-format.d.ts +51 -0
- package/dist/modules/apimapper/connections-format.js +261 -0
- package/dist/modules/apimapper/connections-format.js.map +1 -0
- package/dist/modules/apimapper/connections-trim.d.ts +82 -0
- package/dist/modules/apimapper/connections-trim.js +224 -0
- package/dist/modules/apimapper/connections-trim.js.map +1 -0
- package/dist/modules/apimapper/connections.d.ts +14 -2
- package/dist/modules/apimapper/connections.js +612 -153
- package/dist/modules/apimapper/connections.js.map +1 -1
- package/dist/modules/apimapper/credential-sanitizer.d.ts +5 -0
- package/dist/modules/apimapper/credential-sanitizer.js +60 -1
- package/dist/modules/apimapper/credential-sanitizer.js.map +1 -1
- package/dist/modules/apimapper/credentials-format.d.ts +21 -0
- package/dist/modules/apimapper/credentials-format.js +145 -0
- package/dist/modules/apimapper/credentials-format.js.map +1 -0
- package/dist/modules/apimapper/credentials.d.ts +12 -2
- package/dist/modules/apimapper/credentials.js +226 -73
- package/dist/modules/apimapper/credentials.js.map +1 -1
- package/dist/modules/apimapper/diagnose.d.ts +54 -2
- package/dist/modules/apimapper/diagnose.js +213 -12
- package/dist/modules/apimapper/diagnose.js.map +1 -1
- package/dist/modules/apimapper/elicitation.d.ts +54 -0
- package/dist/modules/apimapper/elicitation.js +90 -0
- package/dist/modules/apimapper/elicitation.js.map +1 -0
- package/dist/modules/apimapper/flows-format.d.ts +50 -0
- package/dist/modules/apimapper/flows-format.js +318 -0
- package/dist/modules/apimapper/flows-format.js.map +1 -0
- package/dist/modules/apimapper/flows.d.ts +13 -2
- package/dist/modules/apimapper/flows.js +312 -122
- package/dist/modules/apimapper/flows.js.map +1 -1
- package/dist/modules/apimapper/gateway/advanced-tool.d.ts +9 -0
- package/dist/modules/apimapper/gateway/advanced-tool.js +265 -0
- package/dist/modules/apimapper/gateway/advanced-tool.js.map +1 -0
- package/dist/modules/apimapper/gateway/capturing-server.d.ts +81 -0
- package/dist/modules/apimapper/gateway/capturing-server.js +87 -0
- package/dist/modules/apimapper/gateway/capturing-server.js.map +1 -0
- package/dist/modules/apimapper/gateway/essentials.d.ts +4 -0
- package/dist/modules/apimapper/gateway/essentials.js +35 -0
- package/dist/modules/apimapper/gateway/essentials.js.map +1 -0
- package/dist/modules/apimapper/gateway/test-support.d.ts +17 -0
- package/dist/modules/apimapper/gateway/test-support.js +43 -0
- package/dist/modules/apimapper/gateway/test-support.js.map +1 -0
- package/dist/modules/apimapper/get-skill.d.ts +3 -3
- package/dist/modules/apimapper/get-skill.js +47 -7
- package/dist/modules/apimapper/get-skill.js.map +1 -1
- package/dist/modules/apimapper/graph-builder.js +1 -1
- package/dist/modules/apimapper/graph-builder.js.map +1 -1
- package/dist/modules/apimapper/graph.d.ts +2 -2
- package/dist/modules/apimapper/graph.js +170 -35
- package/dist/modules/apimapper/graph.js.map +1 -1
- package/dist/modules/apimapper/index.d.ts +17 -1
- package/dist/modules/apimapper/index.js +68 -17
- package/dist/modules/apimapper/index.js.map +1 -1
- package/dist/modules/apimapper/inspect.d.ts +3 -2
- package/dist/modules/apimapper/inspect.js +97 -13
- package/dist/modules/apimapper/inspect.js.map +1 -1
- package/dist/modules/apimapper/library.d.ts +2 -2
- package/dist/modules/apimapper/library.js +665 -80
- package/dist/modules/apimapper/library.js.map +1 -1
- package/dist/modules/apimapper/license-format.d.ts +22 -0
- package/dist/modules/apimapper/license-format.js +149 -0
- package/dist/modules/apimapper/license-format.js.map +1 -0
- package/dist/modules/apimapper/license.d.ts +16 -2
- package/dist/modules/apimapper/license.js +62 -38
- package/dist/modules/apimapper/license.js.map +1 -1
- package/dist/modules/apimapper/local-sources.d.ts +2 -2
- package/dist/modules/apimapper/local-sources.js +44 -30
- package/dist/modules/apimapper/local-sources.js.map +1 -1
- package/dist/modules/apimapper/misc.d.ts +30 -2
- package/dist/modules/apimapper/misc.js +114 -49
- package/dist/modules/apimapper/misc.js.map +1 -1
- package/dist/modules/apimapper/node-schema.d.ts +52 -0
- package/dist/modules/apimapper/node-schema.js +70 -2
- package/dist/modules/apimapper/node-schema.js.map +1 -1
- package/dist/modules/apimapper/normalizers.d.ts +1 -0
- package/dist/modules/apimapper/normalizers.js +51 -0
- package/dist/modules/apimapper/normalizers.js.map +1 -1
- package/dist/modules/apimapper/onboarding.d.ts +78 -3
- package/dist/modules/apimapper/onboarding.js +428 -26
- package/dist/modules/apimapper/onboarding.js.map +1 -1
- package/dist/modules/apimapper/read-cache.d.ts +31 -2
- package/dist/modules/apimapper/read-cache.js +20 -6
- package/dist/modules/apimapper/read-cache.js.map +1 -1
- package/dist/modules/apimapper/render/_shared.d.ts +24 -0
- package/dist/modules/apimapper/render/_shared.js +84 -0
- package/dist/modules/apimapper/render/_shared.js.map +1 -0
- package/dist/modules/apimapper/render/dag.d.ts +18 -0
- package/dist/modules/apimapper/render/dag.js +70 -0
- package/dist/modules/apimapper/render/dag.js.map +1 -0
- package/dist/modules/apimapper/render/index.d.ts +2 -0
- package/dist/modules/apimapper/render/index.js +112 -0
- package/dist/modules/apimapper/render/index.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/chart-bar.d.ts +2 -0
- package/dist/modules/apimapper/render/renderers/chart-bar.js +70 -0
- package/dist/modules/apimapper/render/renderers/chart-bar.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/chart-line.d.ts +2 -0
- package/dist/modules/apimapper/render/renderers/chart-line.js +71 -0
- package/dist/modules/apimapper/render/renderers/chart-line.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/diff.d.ts +2 -0
- package/dist/modules/apimapper/render/renderers/diff.js +154 -0
- package/dist/modules/apimapper/render/renderers/diff.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/flow-diagram.d.ts +1 -0
- package/dist/modules/apimapper/render/renderers/flow-diagram.js +180 -0
- package/dist/modules/apimapper/render/renderers/flow-diagram.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/json-tree.d.ts +2 -0
- package/dist/modules/apimapper/render/renderers/json-tree.js +87 -0
- package/dist/modules/apimapper/render/renderers/json-tree.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/schema-diagram.d.ts +2 -0
- package/dist/modules/apimapper/render/renderers/schema-diagram.js +83 -0
- package/dist/modules/apimapper/render/renderers/schema-diagram.js.map +1 -0
- package/dist/modules/apimapper/render/renderers/table.d.ts +2 -0
- package/dist/modules/apimapper/render/renderers/table.js +75 -0
- package/dist/modules/apimapper/render/renderers/table.js.map +1 -0
- package/dist/modules/apimapper/render/schemas.d.ts +23 -0
- package/dist/modules/apimapper/render/schemas.js +56 -0
- package/dist/modules/apimapper/render/schemas.js.map +1 -0
- package/dist/modules/apimapper/render/secret-masking.d.ts +5 -0
- package/dist/modules/apimapper/render/secret-masking.js +51 -0
- package/dist/modules/apimapper/render/secret-masking.js.map +1 -0
- package/dist/modules/apimapper/render/sidecar.d.ts +21 -0
- package/dist/modules/apimapper/render/sidecar.js +66 -0
- package/dist/modules/apimapper/render/sidecar.js.map +1 -0
- package/dist/modules/apimapper/render/token-cap.d.ts +21 -0
- package/dist/modules/apimapper/render/token-cap.js +57 -0
- package/dist/modules/apimapper/render/token-cap.js.map +1 -0
- package/dist/modules/apimapper/schema.d.ts +2 -2
- package/dist/modules/apimapper/schema.js +92 -33
- package/dist/modules/apimapper/schema.js.map +1 -1
- package/dist/modules/apimapper/settings-format.d.ts +23 -0
- package/dist/modules/apimapper/settings-format.js +135 -0
- package/dist/modules/apimapper/settings-format.js.map +1 -0
- package/dist/modules/apimapper/settings.d.ts +2 -2
- package/dist/modules/apimapper/settings.js +100 -42
- package/dist/modules/apimapper/settings.js.map +1 -1
- package/dist/modules/apimapper/sites-tools.d.ts +29 -0
- package/dist/modules/apimapper/sites-tools.js +165 -0
- package/dist/modules/apimapper/sites-tools.js.map +1 -0
- package/dist/modules/apimapper/skill-resources.d.ts +2 -2
- package/dist/modules/apimapper/skill-resources.js.map +1 -1
- package/dist/modules/apimapper/token-baseline.harness.d.ts +91 -0
- package/dist/modules/apimapper/token-baseline.harness.js +291 -0
- package/dist/modules/apimapper/token-baseline.harness.js.map +1 -0
- package/dist/modules/apimapper/tool-result.d.ts +46 -0
- package/dist/modules/apimapper/tool-result.js +63 -0
- package/dist/modules/apimapper/tool-result.js.map +1 -0
- package/dist/modules/apimapper/toolslist-size.d.ts +56 -0
- package/dist/modules/apimapper/toolslist-size.js +192 -0
- package/dist/modules/apimapper/toolslist-size.js.map +1 -0
- package/dist/modules/apimapper/types.d.ts +44 -8
- package/dist/modules/apimapper/types.js +26 -1
- package/dist/modules/apimapper/types.js.map +1 -1
- package/dist/modules/apimapper/use-profile.d.ts +21 -0
- package/dist/modules/apimapper/use-profile.js +56 -2
- package/dist/modules/apimapper/use-profile.js.map +1 -1
- package/dist/modules/apimapper/whitelist-drift.d.ts +85 -0
- package/dist/modules/apimapper/whitelist-drift.js +360 -0
- package/dist/modules/apimapper/whitelist-drift.js.map +1 -0
- package/dist/modules/apimapper/workflows.d.ts +2 -2
- package/dist/modules/apimapper/workflows.js +202 -20
- package/dist/modules/apimapper/workflows.js.map +1 -1
- package/dist/modules/apimapper/yootheme-binding.d.ts +35 -0
- package/dist/modules/apimapper/yootheme-binding.js +186 -0
- package/dist/modules/apimapper/yootheme-binding.js.map +1 -0
- package/dist/platform/index.d.ts +56 -0
- package/dist/platform/index.js +195 -7
- package/dist/platform/index.js.map +1 -1
- package/dist/setup/detect-clients.d.ts +40 -1
- package/dist/setup/detect-clients.js +148 -1
- package/dist/setup/detect-clients.js.map +1 -1
- package/dist/setup/probe-handshake.js +40 -7
- package/dist/setup/probe-handshake.js.map +1 -1
- package/dist/setup/remove-config.d.ts +8 -0
- package/dist/setup/remove-config.js +145 -0
- package/dist/setup/remove-config.js.map +1 -0
- package/dist/setup/uninstall.d.ts +34 -0
- package/dist/setup/uninstall.js +147 -0
- package/dist/setup/uninstall.js.map +1 -0
- package/dist/setup-cli.d.ts +60 -0
- package/dist/setup-cli.js +155 -5
- package/dist/setup-cli.js.map +1 -1
- package/dist/sites/loader.d.ts +41 -0
- package/dist/sites/loader.js +119 -0
- package/dist/sites/loader.js.map +1 -0
- package/dist/sites/schema.d.ts +69 -0
- package/dist/sites/schema.js +71 -0
- package/dist/sites/schema.js.map +1 -0
- package/dist/sites/secret-resolver.d.ts +47 -0
- package/dist/sites/secret-resolver.js +150 -0
- package/dist/sites/secret-resolver.js.map +1 -0
- package/dist/skill-instructions.d.ts +1 -1
- package/dist/skill-instructions.js +5 -0
- package/dist/skill-instructions.js.map +1 -1
- package/dist/transports/stdio.js +4 -4
- package/dist/transports/stdio.js.map +1 -1
- package/dist/uninstall-skill.d.ts +27 -0
- package/dist/uninstall-skill.js +89 -0
- package/dist/uninstall-skill.js.map +1 -0
- package/docs/architecture.md +22 -22
- package/docs/customgraph-internal-migration.md +4 -4
- package/docs/security.md +2 -21
- package/docs/tools.md +40 -12
- package/manifest.json +77 -70
- package/package.json +68 -60
- package/skills/apimapper/SKILL.md +53 -7
- package/skills/apimapper/reference/conditional-style-multi-items.md +114 -0
- package/skills/apimapper/reference/jmespath-pitfalls.md +108 -0
- package/skills/apimapper/reference/joomla.md +1 -1
- package/skills/apimapper/reference/library-template-discovery.md +65 -0
- package/skills/apimapper/reference/merge-two-sources-on-key.md +99 -0
- package/skills/apimapper/reference/render.md +132 -0
- package/skills/apimapper/reference/troubleshooting.md +21 -1
- package/skills/apimapper/reference/yootheme.md +1 -1
- package/dist/auth/oauth-provider.d.ts +0 -68
- package/dist/auth/oauth-provider.js +0 -232
- package/dist/auth/oauth-provider.js.map +0 -1
- package/dist/server-http.d.ts +0 -22
- package/dist/server-http.js +0 -159
- package/dist/server-http.js.map +0 -1
- package/dist/transports/http.d.ts +0 -29
- package/dist/transports/http.js +0 -267
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
267
|
-
"to ensure the flow + schema are fresh. Each step's success
|
|
268
|
-
"
|
|
269
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
278
|
-
|
|
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
|
-
|
|
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
|
-
?
|
|
313
|
-
|
|
314
|
-
|
|
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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"}
|