@wootsup/mcp 0.3.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.
- package/CHANGELOG.md +14 -5
- package/dist/catalog/build-catalog.d.ts +31 -0
- package/dist/catalog/build-catalog.js +68 -0
- package/dist/catalog/build-catalog.js.map +1 -0
- package/dist/index.js +37 -5
- package/dist/index.js.map +1 -1
- package/dist/modules/apimapper/auto-layout.d.ts +21 -0
- package/dist/modules/apimapper/auto-layout.js +54 -0
- package/dist/modules/apimapper/auto-layout.js.map +1 -0
- package/dist/modules/apimapper/client.d.ts +54 -4
- package/dist/modules/apimapper/client.js +145 -14
- package/dist/modules/apimapper/client.js.map +1 -1
- package/dist/modules/apimapper/connections-format.d.ts +31 -1
- package/dist/modules/apimapper/connections-format.js +97 -5
- package/dist/modules/apimapper/connections-format.js.map +1 -1
- package/dist/modules/apimapper/connections.d.ts +9 -7
- package/dist/modules/apimapper/connections.js +225 -58
- package/dist/modules/apimapper/connections.js.map +1 -1
- package/dist/modules/apimapper/credentials.js +86 -14
- package/dist/modules/apimapper/credentials.js.map +1 -1
- package/dist/modules/apimapper/elicitation.d.ts +29 -0
- package/dist/modules/apimapper/elicitation.js +62 -0
- package/dist/modules/apimapper/elicitation.js.map +1 -1
- package/dist/modules/apimapper/example-extract.d.ts +13 -0
- package/dist/modules/apimapper/example-extract.js +111 -0
- package/dist/modules/apimapper/example-extract.js.map +1 -0
- package/dist/modules/apimapper/filter-operators.d.ts +24 -0
- package/dist/modules/apimapper/filter-operators.js +103 -0
- package/dist/modules/apimapper/filter-operators.js.map +1 -0
- package/dist/modules/apimapper/flows-format.js +92 -22
- package/dist/modules/apimapper/flows-format.js.map +1 -1
- package/dist/modules/apimapper/flows.d.ts +8 -7
- package/dist/modules/apimapper/flows.js +216 -44
- package/dist/modules/apimapper/flows.js.map +1 -1
- package/dist/modules/apimapper/gateway/advanced-read-tool.d.ts +9 -0
- package/dist/modules/apimapper/gateway/advanced-read-tool.js +172 -0
- package/dist/modules/apimapper/gateway/advanced-read-tool.js.map +1 -0
- package/dist/modules/apimapper/gateway/advanced-tool.js +39 -130
- package/dist/modules/apimapper/gateway/advanced-tool.js.map +1 -1
- package/dist/modules/apimapper/gateway/collect-module-tools.d.ts +17 -0
- package/dist/modules/apimapper/gateway/collect-module-tools.js +44 -0
- package/dist/modules/apimapper/gateway/collect-module-tools.js.map +1 -0
- package/dist/modules/apimapper/gateway/essentials.d.ts +1 -1
- package/dist/modules/apimapper/gateway/essentials.js +19 -7
- package/dist/modules/apimapper/gateway/essentials.js.map +1 -1
- package/dist/modules/apimapper/gateway/gateway-shared.d.ts +21 -0
- package/dist/modules/apimapper/gateway/gateway-shared.js +124 -0
- package/dist/modules/apimapper/gateway/gateway-shared.js.map +1 -0
- package/dist/modules/apimapper/gateway/test-support.d.ts +1 -17
- package/dist/modules/apimapper/gateway/test-support.js +4 -33
- package/dist/modules/apimapper/gateway/test-support.js.map +1 -1
- package/dist/modules/apimapper/get-skill-cores.d.ts +4 -0
- package/dist/modules/apimapper/get-skill-cores.js +220 -0
- package/dist/modules/apimapper/get-skill-cores.js.map +1 -0
- package/dist/modules/apimapper/get-skill.d.ts +1 -1
- package/dist/modules/apimapper/get-skill.js +30 -3
- package/dist/modules/apimapper/get-skill.js.map +1 -1
- package/dist/modules/apimapper/graph-builder.d.ts +85 -2
- package/dist/modules/apimapper/graph-builder.js +151 -15
- package/dist/modules/apimapper/graph-builder.js.map +1 -1
- package/dist/modules/apimapper/graph.js +115 -15
- package/dist/modules/apimapper/graph.js.map +1 -1
- package/dist/modules/apimapper/index.js +25 -13
- package/dist/modules/apimapper/index.js.map +1 -1
- package/dist/modules/apimapper/jmespath-test.d.ts +4 -0
- package/dist/modules/apimapper/jmespath-test.js +152 -0
- package/dist/modules/apimapper/jmespath-test.js.map +1 -0
- package/dist/modules/apimapper/library.js +131 -8
- package/dist/modules/apimapper/library.js.map +1 -1
- package/dist/modules/apimapper/list-footer.d.ts +27 -0
- package/dist/modules/apimapper/list-footer.js +57 -0
- package/dist/modules/apimapper/list-footer.js.map +1 -0
- package/dist/modules/apimapper/local-sources.js +88 -31
- package/dist/modules/apimapper/local-sources.js.map +1 -1
- package/dist/modules/apimapper/mcp-client-identity.d.ts +32 -0
- package/dist/modules/apimapper/mcp-client-identity.js +70 -0
- package/dist/modules/apimapper/mcp-client-identity.js.map +1 -0
- package/dist/modules/apimapper/merge-constants.d.ts +6 -0
- package/dist/modules/apimapper/merge-constants.js +26 -0
- package/dist/modules/apimapper/merge-constants.js.map +1 -0
- package/dist/modules/apimapper/node-schema.d.ts +52 -2
- package/dist/modules/apimapper/node-schema.js +95 -4
- package/dist/modules/apimapper/node-schema.js.map +1 -1
- package/dist/modules/apimapper/onboarding.d.ts +29 -0
- package/dist/modules/apimapper/onboarding.js +117 -9
- package/dist/modules/apimapper/onboarding.js.map +1 -1
- package/dist/modules/apimapper/read-cache.d.ts +16 -3
- package/dist/modules/apimapper/read-cache.js +59 -4
- package/dist/modules/apimapper/read-cache.js.map +1 -1
- package/dist/modules/apimapper/render/index.js +26 -5
- package/dist/modules/apimapper/render/index.js.map +1 -1
- package/dist/modules/apimapper/resource-id.d.ts +13 -0
- package/dist/modules/apimapper/resource-id.js +69 -0
- package/dist/modules/apimapper/resource-id.js.map +1 -0
- package/dist/modules/apimapper/tool-result.d.ts +20 -0
- package/dist/modules/apimapper/tool-result.js +67 -5
- package/dist/modules/apimapper/tool-result.js.map +1 -1
- package/dist/modules/apimapper/toolslist-size.d.ts +10 -10
- package/dist/modules/apimapper/toolslist-size.js +29 -18
- package/dist/modules/apimapper/toolslist-size.js.map +1 -1
- package/dist/modules/apimapper/types.d.ts +13 -0
- package/dist/modules/apimapper/types.js +1 -1
- package/dist/modules/apimapper/types.js.map +1 -1
- package/dist/modules/apimapper/whitelist-drift.js +16 -1
- package/dist/modules/apimapper/whitelist-drift.js.map +1 -1
- package/dist/modules/apimapper/workflows.js +221 -32
- package/dist/modules/apimapper/workflows.js.map +1 -1
- package/dist/modules/apimapper/yootheme-binding.js +103 -22
- package/dist/modules/apimapper/yootheme-binding.js.map +1 -1
- package/dist/platform/index.js +7 -0
- package/dist/platform/index.js.map +1 -1
- package/dist/proxy/bridge.d.ts +35 -0
- package/dist/proxy/bridge.js +129 -0
- package/dist/proxy/bridge.js.map +1 -0
- package/dist/proxy/mode.d.ts +9 -0
- package/dist/proxy/mode.js +20 -0
- package/dist/proxy/mode.js.map +1 -0
- package/dist/setup/probe-auth.d.ts +51 -0
- package/dist/setup/probe-auth.js +141 -0
- package/dist/setup/probe-auth.js.map +1 -0
- package/dist/setup-cli.d.ts +9 -0
- package/dist/setup-cli.js +34 -0
- package/dist/setup-cli.js.map +1 -1
- package/dist/sites/loader.d.ts +7 -0
- package/dist/sites/loader.js +16 -1
- package/dist/sites/loader.js.map +1 -1
- package/dist/skill-instructions.d.ts +14 -1
- package/dist/skill-instructions.js +30 -6
- package/dist/skill-instructions.js.map +1 -1
- package/manifest.json +2 -2
- package/package.json +3 -2
- package/skills/apimapper/SKILL.md +78 -3
- package/skills/apimapper/reference/dynamize-existing-layout.md +158 -0
- package/skills/apimapper/reference/jmespath-cookbook.md +241 -0
- package/skills/apimapper/reference/jmespath-pitfalls.md +81 -0
- package/skills/apimapper/reference/library-template-discovery.md +1 -1
- package/skills/apimapper/reference/merge-two-sources-on-key.md +117 -12
- package/skills/apimapper/reference/oauth.md +143 -52
- package/skills/apimapper/reference/troubleshooting.md +2 -2
- package/skills/apimapper/reference/yootheme-source-to-builder-handoff.md +348 -0
- package/skills/apimapper/reference/yootheme.md +75 -44
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// src/setup/probe-auth.ts — F117 (authenticated setup probe).
|
|
2
|
+
//
|
|
3
|
+
// The pre-F117 setup probes were both auth-blind:
|
|
4
|
+
// - probeIdentity (setup-cli.ts) hits the PUBLIC /identity endpoint → 200
|
|
5
|
+
// with ANY key (even a typo / expired / wrong-site key).
|
|
6
|
+
// - probeHandshake (probe-handshake.ts) does only initialize + tools/list
|
|
7
|
+
// and checks that apimapper_health is in the (statically registered)
|
|
8
|
+
// list — also key-blind.
|
|
9
|
+
//
|
|
10
|
+
// So a customer who pasted a wrong key still saw "🎉 Setup complete"; the
|
|
11
|
+
// FIRST real tool-call 401'd far from the setup context (and seeded the
|
|
12
|
+
// F118 onboarding blindness).
|
|
13
|
+
//
|
|
14
|
+
// probeAuth() closes that gap with ONE authenticated round-trip against a
|
|
15
|
+
// bearer-required endpoint (GET /connections) using the pasted key. A
|
|
16
|
+
// 401/403 → `authFailed`, which the wizard turns into the MCP-key recovery
|
|
17
|
+
// hint + a rollback instead of the success banner.
|
|
18
|
+
//
|
|
19
|
+
// The endpoint shape mirrors probeIdentity():
|
|
20
|
+
// - WordPress: GET {base}/wp-json/api-mapper/v1/connections
|
|
21
|
+
// - Joomla: GET {base}/index.php?option=com_ajax&plugin=apimapper
|
|
22
|
+
// &task=listConnections&format=json
|
|
23
|
+
// both carrying `Authorization: Bearer <token>`. When the platform is
|
|
24
|
+
// already known (from probeIdentity) we hit only that arm; for "unknown" we
|
|
25
|
+
// probe BOTH in parallel and treat the site as authenticated if EITHER arm
|
|
26
|
+
// answers 2xx (the live arm), and as auth-failed only when EVERY responding
|
|
27
|
+
// arm returns 401/403.
|
|
28
|
+
const PROBE_TIMEOUT_MS = 5_000;
|
|
29
|
+
/**
|
|
30
|
+
* Recovery recipe shown when the authenticated probe is rejected (401/403)
|
|
31
|
+
* — the pasted MCP key is wrong, revoked, or expired.
|
|
32
|
+
*
|
|
33
|
+
* Kept verbatim-equal to `MCP_KEY_AUTH_HINT` in
|
|
34
|
+
* `modules/apimapper/client.ts` so the customer sees the SAME recovery steps
|
|
35
|
+
* during setup and at tool-call time. We intentionally do NOT import that
|
|
36
|
+
* constant: `client.ts` has heavyweight module-level side effects (an undici
|
|
37
|
+
* global dispatcher and a `NODE_ENV === "production"` fail-fast `process.exit`
|
|
38
|
+
* that fires when the site URL / token env vars are still unset) — and the
|
|
39
|
+
* setup wizard runs BEFORE those env vars exist. Importing it here would risk
|
|
40
|
+
* crashing `npx @wootsup/mcp setup` on a production-tagged shell. A sync test
|
|
41
|
+
* (probe-auth.test.ts) asserts the two strings never drift.
|
|
42
|
+
*/
|
|
43
|
+
export const SETUP_AUTH_RECOVERY_HINT = "Auth failed (HTTP 401/403). Your MCP key (APIMAPPER_TOKEN) is " +
|
|
44
|
+
"invalid, revoked, or expired. Recovery steps: " +
|
|
45
|
+
"(1) Open API Mapper → ⋮ menu → Settings → MCP Access. " +
|
|
46
|
+
"(2) Revoke the old key if you suspect it was leaked. " +
|
|
47
|
+
"(3) Click 'New API key' and copy the value. " +
|
|
48
|
+
"(4) Re-run `npx -y @wootsup/mcp setup` and paste the new key — " +
|
|
49
|
+
"the wizard rewrites your AI client config in place. " +
|
|
50
|
+
"(5) Restart your AI client (Claude Desktop / Cursor / etc.).";
|
|
51
|
+
/**
|
|
52
|
+
* Probe a single bearer-required endpoint. Resolves with the HTTP status on
|
|
53
|
+
* any response (including 401/403/5xx); rejects only on a transport error.
|
|
54
|
+
*/
|
|
55
|
+
async function fetchArm(url, token, signal) {
|
|
56
|
+
const r = await fetch(url, {
|
|
57
|
+
signal,
|
|
58
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
59
|
+
});
|
|
60
|
+
return { status: r.status };
|
|
61
|
+
}
|
|
62
|
+
function isAuthStatus(status) {
|
|
63
|
+
return status === 401 || status === 403;
|
|
64
|
+
}
|
|
65
|
+
function wpUrl(base) {
|
|
66
|
+
return `${base}/wp-json/api-mapper/v1/connections`;
|
|
67
|
+
}
|
|
68
|
+
function joomlaUrl(base) {
|
|
69
|
+
return `${base}/index.php?option=com_ajax&plugin=apimapper&task=listConnections&format=json`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Perform ONE authenticated probe with the pasted key. See module header for
|
|
73
|
+
* the full contract.
|
|
74
|
+
*
|
|
75
|
+
* @returns {@link ProbeAuthResult}: `{ ok: true }` on a 2xx; `{ ok: false,
|
|
76
|
+
* authFailed: true, status }` on 401/403; `{ ok: false, status?, error? }`
|
|
77
|
+
* on any other failure.
|
|
78
|
+
*/
|
|
79
|
+
export async function probeAuth(opts) {
|
|
80
|
+
const base = opts.siteUrl.replace(/\/+$/, "");
|
|
81
|
+
const ctrl = new AbortController();
|
|
82
|
+
const deadline = setTimeout(() => ctrl.abort(), PROBE_TIMEOUT_MS);
|
|
83
|
+
try {
|
|
84
|
+
// Known platform → single arm. The status maps directly.
|
|
85
|
+
if (opts.platform === "wordpress" || opts.platform === "joomla") {
|
|
86
|
+
const url = opts.platform === "wordpress" ? wpUrl(base) : joomlaUrl(base);
|
|
87
|
+
const { status } = await fetchArm(url, opts.token, ctrl.signal);
|
|
88
|
+
if (status >= 200 && status < 300)
|
|
89
|
+
return { ok: true, status };
|
|
90
|
+
if (isAuthStatus(status))
|
|
91
|
+
return { ok: false, authFailed: true, status };
|
|
92
|
+
return {
|
|
93
|
+
ok: false,
|
|
94
|
+
status,
|
|
95
|
+
error: `Authenticated probe failed (HTTP ${status}).`,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Unknown platform → probe both arms in parallel. The site runs exactly
|
|
99
|
+
// one CMS, so at most one arm is the "real" one; the other typically 404s
|
|
100
|
+
// (no such route) or errors. We treat the site as authenticated if EITHER
|
|
101
|
+
// arm answers 2xx, and as auth-failed only when EVERY arm that responded
|
|
102
|
+
// returned 401/403 (never on a lone 404 from the wrong-CMS arm).
|
|
103
|
+
const arms = await Promise.allSettled([
|
|
104
|
+
fetchArm(wpUrl(base), opts.token, ctrl.signal),
|
|
105
|
+
fetchArm(joomlaUrl(base), opts.token, ctrl.signal),
|
|
106
|
+
]);
|
|
107
|
+
const statuses = [];
|
|
108
|
+
const errors = [];
|
|
109
|
+
for (const a of arms) {
|
|
110
|
+
if (a.status === "fulfilled")
|
|
111
|
+
statuses.push(a.value.status);
|
|
112
|
+
else
|
|
113
|
+
errors.push(a.reason instanceof Error ? a.reason.message : String(a.reason));
|
|
114
|
+
}
|
|
115
|
+
if (statuses.some((s) => s >= 200 && s < 300)) {
|
|
116
|
+
return { ok: true };
|
|
117
|
+
}
|
|
118
|
+
// Auth-failed only when there IS at least one response and every response
|
|
119
|
+
// is a 401/403. A lone 404 (wrong-CMS arm) must not masquerade as auth.
|
|
120
|
+
if (statuses.length > 0 && statuses.every(isAuthStatus)) {
|
|
121
|
+
return { ok: false, authFailed: true };
|
|
122
|
+
}
|
|
123
|
+
const detail = statuses.length > 0
|
|
124
|
+
? `HTTP ${statuses.join("/")}`
|
|
125
|
+
: errors.join("; ") || "no endpoint responded";
|
|
126
|
+
return {
|
|
127
|
+
ok: false,
|
|
128
|
+
error: `Authenticated probe failed (${detail}).`,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
return {
|
|
133
|
+
ok: false,
|
|
134
|
+
error: err instanceof Error ? err.message : String(err),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
clearTimeout(deadline);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=probe-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-auth.js","sourceRoot":"","sources":["../../src/setup/probe-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/setup-cli.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type TokenPayload } from "./auth/token.js";
|
|
|
4
4
|
import { type DetectedClient } from "./setup/detect-clients.js";
|
|
5
5
|
import { type McpEntry, type WriteConfigResult, type WriteConfigOptions } from "./setup/write-config.js";
|
|
6
6
|
import { type ProbeOptions, type ProbeResult } from "./setup/probe-handshake.js";
|
|
7
|
+
import { type ProbeAuthOptions, type ProbeAuthResult } from "./setup/probe-auth.js";
|
|
7
8
|
import { type UninstallOptions } from "./setup/uninstall.js";
|
|
8
9
|
export interface IdentityResponse {
|
|
9
10
|
platform: "wordpress" | "joomla" | "unknown";
|
|
@@ -35,6 +36,14 @@ export interface WizardDeps {
|
|
|
35
36
|
writeJsonConfig: (path: string, key: string, entry: McpEntry, options?: WriteConfigOptions) => Promise<WriteConfigResult>;
|
|
36
37
|
writeTomlConfig: (path: string, key: string, entry: McpEntry, options?: WriteConfigOptions) => Promise<WriteConfigResult>;
|
|
37
38
|
probeHandshake: (opts: ProbeOptions) => Promise<ProbeResult>;
|
|
39
|
+
/**
|
|
40
|
+
* F117 — authenticated probe. After the (key-blind) handshake, hit a
|
|
41
|
+
* bearer-required endpoint with the pasted key so a wrong / expired /
|
|
42
|
+
* wrong-site key fails the wizard HERE (with the MCP-key recovery hint +
|
|
43
|
+
* rollback) instead of silently succeeding and 401-ing on the first real
|
|
44
|
+
* tool-call.
|
|
45
|
+
*/
|
|
46
|
+
probeAuth: (opts: ProbeAuthOptions) => Promise<ProbeAuthResult>;
|
|
38
47
|
/**
|
|
39
48
|
* Sink for human-facing status lines. The default writes to stderr;
|
|
40
49
|
* tests can stub to a buffer.
|
package/dist/setup-cli.js
CHANGED
|
@@ -19,6 +19,7 @@ import { decodeToken } from "./auth/token.js";
|
|
|
19
19
|
import { detectClients as defaultDetectClients, } from "./setup/detect-clients.js";
|
|
20
20
|
import { writeJsonConfig as defaultWriteJsonConfig, writeTomlConfig as defaultWriteTomlConfig, } from "./setup/write-config.js";
|
|
21
21
|
import { probeHandshake as defaultProbeHandshake, rollbackAll, } from "./setup/probe-handshake.js";
|
|
22
|
+
import { probeAuth as defaultProbeAuth, SETUP_AUTH_RECOVERY_HINT, } from "./setup/probe-auth.js";
|
|
22
23
|
import { runUninstall as defaultRunUninstall, } from "./setup/uninstall.js";
|
|
23
24
|
const HELP_TEXT = `Usage: apimapper-mcp <command>
|
|
24
25
|
|
|
@@ -43,6 +44,13 @@ Commands:
|
|
|
43
44
|
* The second tuple element is typed `KnownDistTag` (not `string`) so a typo
|
|
44
45
|
* like `[/^amk_canary_/, "cnary"]` would fail compile.
|
|
45
46
|
*/
|
|
47
|
+
// Keep in sync with the admin-ui mirror `distTagForToken`
|
|
48
|
+
// (src/modules/admin-ui/src/components/settings/sections/buildClientConfig.ts).
|
|
49
|
+
// The admin UI bundles into the PHP plugin and has no dependency on the
|
|
50
|
+
// @wootsup/mcp npm package — separate build graphs make a shared import
|
|
51
|
+
// impossible, so the prefix→tag mapping is deliberately duplicated there.
|
|
52
|
+
// If you add or change a prefix here (e.g. `amk_beta_` → `beta`), update the
|
|
53
|
+
// admin-ui copy in lockstep.
|
|
46
54
|
const PREFIX_TAG_MAP = [
|
|
47
55
|
[/^amk_test_/, "rc"],
|
|
48
56
|
[/^amk_live_/, "latest"],
|
|
@@ -281,6 +289,7 @@ const DEFAULT_DEPS = {
|
|
|
281
289
|
writeJsonConfig: (p, k, e, o) => defaultWriteJsonConfig(p, k, e, o),
|
|
282
290
|
writeTomlConfig: (p, k, e, o) => defaultWriteTomlConfig(p, k, e, o),
|
|
283
291
|
probeHandshake: (o) => defaultProbeHandshake(o),
|
|
292
|
+
probeAuth: (o) => defaultProbeAuth(o),
|
|
284
293
|
};
|
|
285
294
|
export async function runWizard(deps = DEFAULT_DEPS) {
|
|
286
295
|
const log = deps.log ?? ((line) => process.stderr.write(`${line}\n`));
|
|
@@ -333,6 +342,7 @@ export async function runWizard(deps = DEFAULT_DEPS) {
|
|
|
333
342
|
APIMAPPER_TOKEN: answers.token,
|
|
334
343
|
APIMAPPER_SITE_URL: answers.siteUrl,
|
|
335
344
|
APIMAPPER_PROFILE: answers.profileName,
|
|
345
|
+
APIMAPPER_MODE: "proxy",
|
|
336
346
|
},
|
|
337
347
|
};
|
|
338
348
|
for (const client of detected) {
|
|
@@ -380,6 +390,30 @@ export async function runWizard(deps = DEFAULT_DEPS) {
|
|
|
380
390
|
await rollbackAll(undos);
|
|
381
391
|
return 5;
|
|
382
392
|
}
|
|
393
|
+
// 7. F117 — authenticated probe. The handshake above is key-blind (it only
|
|
394
|
+
// checks that apimapper_health is registered), and the earlier identity
|
|
395
|
+
// probe hit the PUBLIC /identity endpoint — both pass with ANY key. Hit a
|
|
396
|
+
// bearer-required endpoint ONCE with the pasted key so a typo / expired /
|
|
397
|
+
// wrong-site key fails the wizard here (auth recovery + rollback) instead
|
|
398
|
+
// of surfacing a 401 on the customer's first real tool-call.
|
|
399
|
+
const auth = await deps.probeAuth({
|
|
400
|
+
siteUrl: answers.siteUrl,
|
|
401
|
+
token: answers.token,
|
|
402
|
+
platform: identity.platform,
|
|
403
|
+
});
|
|
404
|
+
if (!auth.ok) {
|
|
405
|
+
if (auth.authFailed) {
|
|
406
|
+
// Wrong / revoked / expired key — surface the MCP-key recovery recipe.
|
|
407
|
+
log("Authenticated probe failed — the MCP key was rejected.");
|
|
408
|
+
log(SETUP_AUTH_RECOVERY_HINT);
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
// Generic failure (5xx / network). Don't claim the key is bad.
|
|
412
|
+
log(`Authenticated probe failed: ${auth.error ?? "could not reach a bearer-required endpoint"}`);
|
|
413
|
+
}
|
|
414
|
+
await rollbackAll(undos);
|
|
415
|
+
return 6;
|
|
416
|
+
}
|
|
383
417
|
outro(`🎉 Setup complete (${undos.length} client${undos.length === 1 ? "" : "s"} wired). ` +
|
|
384
418
|
"Restart your AI client and try: \"What MCP tools do I have?\"");
|
|
385
419
|
return 0;
|
package/dist/setup-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-cli.js","sourceRoot":"","sources":["../src/setup-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-cli.js","sourceRoot":"","sources":["../src/setup-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/sites/loader.d.ts
CHANGED
|
@@ -38,4 +38,11 @@ export declare class SitesRegistry {
|
|
|
38
38
|
* - malformed JSON / schema-invalid /
|
|
39
39
|
* unknown schema_version → throws {@link SitesFileError}
|
|
40
40
|
*/
|
|
41
|
+
/**
|
|
42
|
+
* F190 (2026-06-12): expand a leading `~` to the user's home directory.
|
|
43
|
+
* Node's fs does NOT do this — a `~/...` path typed into the Claude Desktop
|
|
44
|
+
* DXT settings silently failed (existsSync false → no sites). Only `~` and
|
|
45
|
+
* `~/...` are expanded; `~user/...` is left untouched (not supported).
|
|
46
|
+
*/
|
|
47
|
+
export declare function expandTilde(p: string): string;
|
|
41
48
|
export declare function loadSitesRegistry(path: string | undefined): SitesRegistry | null;
|
package/dist/sites/loader.js
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
// Read-only by design: this loader never writes the sites file. Editing is an
|
|
12
12
|
// operator / wizard concern, kept out of the hot request path.
|
|
13
13
|
import { existsSync, readFileSync } from "node:fs";
|
|
14
|
+
import { homedir } from "node:os";
|
|
15
|
+
import { join } from "node:path";
|
|
14
16
|
import { SitesFile } from "./schema.js";
|
|
15
17
|
/** Base class for any sites-file IO / parse / validation failure. */
|
|
16
18
|
export class SitesFileError extends Error {
|
|
@@ -78,8 +80,21 @@ export class SitesRegistry {
|
|
|
78
80
|
* - malformed JSON / schema-invalid /
|
|
79
81
|
* unknown schema_version → throws {@link SitesFileError}
|
|
80
82
|
*/
|
|
83
|
+
/**
|
|
84
|
+
* F190 (2026-06-12): expand a leading `~` to the user's home directory.
|
|
85
|
+
* Node's fs does NOT do this — a `~/...` path typed into the Claude Desktop
|
|
86
|
+
* DXT settings silently failed (existsSync false → no sites). Only `~` and
|
|
87
|
+
* `~/...` are expanded; `~user/...` is left untouched (not supported).
|
|
88
|
+
*/
|
|
89
|
+
export function expandTilde(p) {
|
|
90
|
+
if (p === "~")
|
|
91
|
+
return homedir();
|
|
92
|
+
if (p.startsWith("~/"))
|
|
93
|
+
return join(homedir(), p.slice(2));
|
|
94
|
+
return p;
|
|
95
|
+
}
|
|
81
96
|
export function loadSitesRegistry(path) {
|
|
82
|
-
const trimmed = (path ?? "").trim();
|
|
97
|
+
const trimmed = expandTilde((path ?? "").trim());
|
|
83
98
|
if (trimmed.length === 0)
|
|
84
99
|
return null;
|
|
85
100
|
if (!existsSync(trimmed))
|
package/dist/sites/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/sites/loader.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,2EAA2E;AAC3E,8EAA8E;AAC9E,wEAAwE;AACxE,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/sites/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export declare const FALLBACK_INSTRUCTIONS = "Use this MCP to manage API Mapper flows, connections, and sources across WordPress + Joomla.";
|
|
2
|
+
/**
|
|
3
|
+
* F134 / F118 — load-bearing operational rules that MUST survive into the
|
|
4
|
+
* server `instructions` field regardless of SKILL.md body length. The body is
|
|
5
|
+
* truncated to MAX_LENGTH chars, and its opening prose (intro + `npx setup`)
|
|
6
|
+
* pushes the rules a cold agent actually needs PAST that window. We front-load
|
|
7
|
+
* this compact preamble so the rules are always present, then append a bounded
|
|
8
|
+
* slice of the body and the topic pointer.
|
|
9
|
+
*
|
|
10
|
+
* Keep this TERSE — every char competes with the body for the instructions
|
|
11
|
+
* budget. Each line encodes one P0-prevention rule found by the cold-agent
|
|
12
|
+
* friction audit.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CRITICAL_RULES = "## Critical rules (read first)\n\n- Most tools are reachable via the gateway: apimapper_advanced({ tool: \"<name>\", arguments: {...} }). The arg key is `arguments` (NOT `input`). Omit `arguments` to discover a tool's schema.\n- If a call returns \"Unknown tool\", it is gateway-only \u2014 wrap it as apimapper_advanced({ tool, arguments }).\n- Verify connectivity with apimapper_health({}) \u2014 it is first-class in tools/list (call it directly, NOT via the gateway). Recover auth/config errors via apimapper_diagnose; deeper guidance via apimapper_get_skill({ topic }).\n";
|
|
2
15
|
/**
|
|
3
16
|
* Agent-discoverable skill-topic pointer appended to every loaded instructions
|
|
4
17
|
* string. Documents the canonical entrypoint for deeper guidance via the
|
|
@@ -8,7 +21,7 @@ export declare const FALLBACK_INSTRUCTIONS = "Use this MCP to manage API Mapper
|
|
|
8
21
|
*
|
|
9
22
|
* Topics MUST stay in sync with SKILL_TOPICS in modules/apimapper/get-skill.ts.
|
|
10
23
|
*/
|
|
11
|
-
export declare const SKILL_TOPIC_POINTER = "\n\n## Available skill topics\n\nFor deeper guidance on specific aspects of API Mapper, call:\n apimapper_get_skill({ topic })\n\nAvailable topics:\n- getting-started \u2014 Quickstart, common tools, common pitfalls\n- oauth \u2014 Wiring OAuth-protected sources (Google, Pexels, Instagram, Notion, ...)\n- yootheme \u2014 Publish flows as YOOtheme sources; Save-vs-Publish\n- joomla \u2014 Joomla 3-tier auth, com_ajax envelope, system plugin layout\n- troubleshooting \u2014 HTTP status triage, flow issues, credential states\n- render \u2014 Render a flow as a diagram (viz-type, flow-diagram output)\n- jmespath-pitfalls \u2014 The 9 traps + date-primitive functions (date_weekday, date_iso_to_time, date_iso_to_date, time_in_window) + depth-cap warning\n- merge-two-sources-on-key \u2014 Joining two sources on a shared key, including date-primitive bridging for weekday-name \u2194 ISO-datetime joins\n- conditional-style-multi-items \u2014 Per-row YOOtheme styles driven by a row field (text_color, panel_style)\n- library-template-discovery \u2014 Inspect a library template's contract before activating\n";
|
|
24
|
+
export declare const SKILL_TOPIC_POINTER = "\n\n## Available skill topics\n\nFor deeper guidance on specific aspects of API Mapper, call:\n apimapper_get_skill({ topic })\n\nAvailable topics:\n- getting-started \u2014 Quickstart, common tools, common pitfalls\n- oauth \u2014 Wiring OAuth-protected sources (Google, Pexels, Instagram, Notion, ...)\n- yootheme \u2014 Publish flows as YOOtheme sources; Save-vs-Publish\n- joomla \u2014 Joomla 3-tier auth, com_ajax envelope, system plugin layout\n- troubleshooting \u2014 HTTP status triage, flow issues, credential states\n- render \u2014 Render a flow as a diagram (viz-type, flow-diagram output)\n- jmespath-pitfalls \u2014 The 9 traps + date-primitive functions (date_weekday, date_iso_to_time, date_iso_to_date, time_in_window) + depth-cap warning\n- jmespath-cookbook \u2014 Copy-paste JMESPath recipes (ternary, join, conditions, sort_by, coordinates, format_number, dates, two-transform split) + a GIBT-ES-NICHT list (arithmetic/split/regex/if-else) with workarounds; iterate via apimapper_jmespath_test\n- merge-two-sources-on-key \u2014 Joining two sources on a shared key, including date-primitive bridging for weekday-name \u2194 ISO-datetime joins\n- conditional-style-multi-items \u2014 Per-row YOOtheme styles driven by a row field (text_color, panel_style)\n- library-template-discovery \u2014 Inspect a library template's contract before activating\n- yootheme-source-to-builder-handoff \u2014 Bind a published flow into a Builder element. Two shapes: field_mappings (fresh element; binding_for_flow \u2192 element_bind_source; map_item, bindingLevel) AND the theme-canonical #parent repeater form to dynamize an EXISTING designed layout (swap source.query.name to apiMapperFlow<Id>List; _condition '!'/'!!'; named-section discovery; article-context width)\n- dynamize-existing-layout \u2014 READ FIRST when the customer says \"keep the design exactly as it is\" / \"bind onto my existing section/page\": ONE call does it \u2014 template_summary (find the named section) \u2192 binding_for_flow (source name + flat fields) \u2192 yootheme_builder_page_dynamize({ template_id, section_path, source_name, leaf_map, publish: true }) \u2192 visual row check. The tool copies the subtree byte-identically and swaps only leaf_map names by construction (insert nothing, rebuild nothing)\n";
|
|
12
25
|
/**
|
|
13
26
|
* Loads MCP server instructions from skills/apimapper/SKILL.md.
|
|
14
27
|
*
|
|
@@ -7,6 +7,24 @@ import { readFileSync, existsSync } from "node:fs";
|
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { dirname, join, resolve } from "node:path";
|
|
9
9
|
export const FALLBACK_INSTRUCTIONS = "Use this MCP to manage API Mapper flows, connections, and sources across WordPress + Joomla.";
|
|
10
|
+
/**
|
|
11
|
+
* F134 / F118 — load-bearing operational rules that MUST survive into the
|
|
12
|
+
* server `instructions` field regardless of SKILL.md body length. The body is
|
|
13
|
+
* truncated to MAX_LENGTH chars, and its opening prose (intro + `npx setup`)
|
|
14
|
+
* pushes the rules a cold agent actually needs PAST that window. We front-load
|
|
15
|
+
* this compact preamble so the rules are always present, then append a bounded
|
|
16
|
+
* slice of the body and the topic pointer.
|
|
17
|
+
*
|
|
18
|
+
* Keep this TERSE — every char competes with the body for the instructions
|
|
19
|
+
* budget. Each line encodes one P0-prevention rule found by the cold-agent
|
|
20
|
+
* friction audit.
|
|
21
|
+
*/
|
|
22
|
+
export const CRITICAL_RULES = `## Critical rules (read first)
|
|
23
|
+
|
|
24
|
+
- Most tools are reachable via the gateway: apimapper_advanced({ tool: "<name>", arguments: {...} }). The arg key is \`arguments\` (NOT \`input\`). Omit \`arguments\` to discover a tool's schema.
|
|
25
|
+
- If a call returns "Unknown tool", it is gateway-only — wrap it as apimapper_advanced({ tool, arguments }).
|
|
26
|
+
- Verify connectivity with apimapper_health({}) — it is first-class in tools/list (call it directly, NOT via the gateway). Recover auth/config errors via apimapper_diagnose; deeper guidance via apimapper_get_skill({ topic }).
|
|
27
|
+
`;
|
|
10
28
|
const MAX_LENGTH = 500;
|
|
11
29
|
/**
|
|
12
30
|
* Agent-discoverable skill-topic pointer appended to every loaded instructions
|
|
@@ -32,9 +50,12 @@ Available topics:
|
|
|
32
50
|
- troubleshooting — HTTP status triage, flow issues, credential states
|
|
33
51
|
- render — Render a flow as a diagram (viz-type, flow-diagram output)
|
|
34
52
|
- jmespath-pitfalls — The 9 traps + date-primitive functions (date_weekday, date_iso_to_time, date_iso_to_date, time_in_window) + depth-cap warning
|
|
53
|
+
- jmespath-cookbook — Copy-paste JMESPath recipes (ternary, join, conditions, sort_by, coordinates, format_number, dates, two-transform split) + a GIBT-ES-NICHT list (arithmetic/split/regex/if-else) with workarounds; iterate via apimapper_jmespath_test
|
|
35
54
|
- merge-two-sources-on-key — Joining two sources on a shared key, including date-primitive bridging for weekday-name ↔ ISO-datetime joins
|
|
36
55
|
- conditional-style-multi-items — Per-row YOOtheme styles driven by a row field (text_color, panel_style)
|
|
37
56
|
- library-template-discovery — Inspect a library template's contract before activating
|
|
57
|
+
- yootheme-source-to-builder-handoff — Bind a published flow into a Builder element. Two shapes: field_mappings (fresh element; binding_for_flow → element_bind_source; map_item, bindingLevel) AND the theme-canonical #parent repeater form to dynamize an EXISTING designed layout (swap source.query.name to apiMapperFlow<Id>List; _condition '!'/'!!'; named-section discovery; article-context width)
|
|
58
|
+
- dynamize-existing-layout — READ FIRST when the customer says "keep the design exactly as it is" / "bind onto my existing section/page": ONE call does it — template_summary (find the named section) → binding_for_flow (source name + flat fields) → yootheme_builder_page_dynamize({ template_id, section_path, source_name, leaf_map, publish: true }) → visual row check. The tool copies the subtree byte-identically and swaps only leaf_map names by construction (insert nothing, rebuild nothing)
|
|
38
59
|
`;
|
|
39
60
|
/**
|
|
40
61
|
* Loads MCP server instructions from skills/apimapper/SKILL.md.
|
|
@@ -48,22 +69,25 @@ export function loadSkillInstructions(rootDir) {
|
|
|
48
69
|
const baseDir = rootDir ?? defaultRoot();
|
|
49
70
|
const skillPath = join(baseDir, "skills", "apimapper", "SKILL.md");
|
|
50
71
|
if (!existsSync(skillPath)) {
|
|
51
|
-
return FALLBACK_INSTRUCTIONS + SKILL_TOPIC_POINTER;
|
|
72
|
+
return CRITICAL_RULES + FALLBACK_INSTRUCTIONS + SKILL_TOPIC_POINTER;
|
|
52
73
|
}
|
|
53
74
|
let raw;
|
|
54
75
|
try {
|
|
55
76
|
raw = readFileSync(skillPath, "utf8");
|
|
56
77
|
}
|
|
57
78
|
catch {
|
|
58
|
-
return FALLBACK_INSTRUCTIONS + SKILL_TOPIC_POINTER;
|
|
79
|
+
return CRITICAL_RULES + FALLBACK_INSTRUCTIONS + SKILL_TOPIC_POINTER;
|
|
59
80
|
}
|
|
60
81
|
const body = stripFrontmatter(raw).trim();
|
|
61
82
|
if (body.length === 0) {
|
|
62
|
-
return FALLBACK_INSTRUCTIONS + SKILL_TOPIC_POINTER;
|
|
83
|
+
return CRITICAL_RULES + FALLBACK_INSTRUCTIONS + SKILL_TOPIC_POINTER;
|
|
63
84
|
}
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
|
|
85
|
+
// Front-load the load-bearing rules (F134/F118) so they always survive
|
|
86
|
+
// truncation, then a bounded slice of the SKILL.md body, then the topic
|
|
87
|
+
// pointer. The body keeps its own MAX_LENGTH window; the rules + pointer are
|
|
88
|
+
// never truncated. (Pre-F134 the body opened the instructions and its intro
|
|
89
|
+
// prose pushed these rules past the window — a cold agent never saw them.)
|
|
90
|
+
return CRITICAL_RULES + body.slice(0, MAX_LENGTH) + SKILL_TOPIC_POINTER;
|
|
67
91
|
}
|
|
68
92
|
/**
|
|
69
93
|
* Strips a YAML frontmatter block (`---\n...\n---\n`) from the start of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-instructions.js","sourceRoot":"","sources":["../src/skill-instructions.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AAEzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAChC,8FAA8F,CAAC;AAEjG,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"skill-instructions.js","sourceRoot":"","sources":["../src/skill-instructions.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AAEzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAChC,8FAA8F,CAAC;AAEjG;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;CAK7B,CAAC;AAEF,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBlC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,OAAO,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAEnE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,cAAc,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;IACtE,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,cAAc,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;IACtE,CAAC;IACD,uEAAuE;IACvE,wEAAwE;IACxE,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,OAAO,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,iDAAiD;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kEAAkE;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,qDAAqD;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW;IAClB,8DAA8D;IAC9D,qEAAqE;IACrE,wCAAwC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"dxt_version": "0.1",
|
|
3
3
|
"name": "@wootsup/mcp",
|
|
4
4
|
"display_name": "API Mapper for WordPress & Joomla",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.4.0",
|
|
6
6
|
"description": "Build API integrations, OAuth credentials, and YOOtheme sources via natural conversation. Connects your AI assistant to API Mapper running on WordPress or Joomla.",
|
|
7
7
|
"icon": "icon.png",
|
|
8
8
|
"author": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"url": "https://wootsup.com"
|
|
11
11
|
},
|
|
12
12
|
"homepage": "https://wootsup.com",
|
|
13
|
-
"documentation": "https://wootsup.com/docs/mcp
|
|
13
|
+
"documentation": "https://wootsup.com/docs/mcp",
|
|
14
14
|
"support": "https://wootsup.com/contact/",
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wootsup/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "API Mapper MCP Server — multi-platform (WordPress/Joomla), multi-AI-client, Stripe-style auth, bundled skills",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"scripts": {
|
|
40
40
|
"prepublishOnly": "node -e \"if (process.env.RELEASE_PHP_PUBLISH !== '1') { console.error('Manual npm publish is no longer supported. Use: php scripts/release.php release apimapper-mcp <bump> followed by php scripts/release.php push-tag apimapper-mcp <version>, which triggers the GitHub Actions publish workflow (.github/workflows/apimapper-mcp-publish.yml). Set RELEASE_PHP_PUBLISH=1 only if you know you are running from that workflow.'); process.exit(1); }\"",
|
|
41
41
|
"build": "tsc && chmod +x dist/index.js 2>/dev/null || true",
|
|
42
|
+
"export:catalog": "npm run build && node scripts/export-catalog.mjs",
|
|
42
43
|
"test": "vitest run",
|
|
43
44
|
"test:watch": "vitest",
|
|
44
45
|
"test:coverage": "vitest run --coverage",
|
|
@@ -62,7 +63,7 @@
|
|
|
62
63
|
"@vitest/coverage-v8": "~2.1.9",
|
|
63
64
|
"ajv": "^8.20.0",
|
|
64
65
|
"archiver": "^8.0.0",
|
|
65
|
-
"esbuild": "^0.
|
|
66
|
+
"esbuild": "^0.28.1",
|
|
66
67
|
"tsx": "^4.21.0",
|
|
67
68
|
"typescript": "^5.6.0",
|
|
68
69
|
"vitest": "^2.1.0"
|