funifier-mcp 0.2.12 → 0.2.14
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/dist/mcp/bundle.js +75 -69
- package/dist/mcp/tools/get.d.ts.map +1 -1
- package/dist/mcp/tools/get.js +30 -5
- package/dist/mcp/tools/get.js.map +1 -1
- package/dist/mcp/tools/save.d.ts.map +1 -1
- package/dist/mcp/tools/save.js +67 -4
- package/dist/mcp/tools/save.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/get.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/get.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAkE1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAsHtE"}
|
package/dist/mcp/tools/get.js
CHANGED
|
@@ -39,11 +39,30 @@ const fs = __importStar(require("fs"));
|
|
|
39
39
|
const os = __importStar(require("os"));
|
|
40
40
|
const path = __importStar(require("path"));
|
|
41
41
|
const MAX_INLINE_CHARS = 50000;
|
|
42
|
+
const MIN_COMPANION_CHARS = 500;
|
|
43
|
+
const COMPANION_EXTENSIONS = {
|
|
44
|
+
html: ".html",
|
|
45
|
+
script: ".script.js",
|
|
46
|
+
code: ".code.js",
|
|
47
|
+
css: ".css",
|
|
48
|
+
};
|
|
42
49
|
function saveToTempFile(type, id, data) {
|
|
43
50
|
const safeName = `funifier-${type}-${id.replace(/[^a-zA-Z0-9_-]/g, "_")}`;
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
const base = path.join(os.tmpdir(), safeName);
|
|
52
|
+
const jsonPath = `${base}.json`;
|
|
53
|
+
const companions = {};
|
|
54
|
+
const doc = data[0];
|
|
55
|
+
if (doc && typeof doc === "object") {
|
|
56
|
+
for (const [field, ext] of Object.entries(COMPANION_EXTENSIONS)) {
|
|
57
|
+
if (typeof doc[field] === "string" && doc[field].length >= MIN_COMPANION_CHARS) {
|
|
58
|
+
const companionPath = `${base}${ext}`;
|
|
59
|
+
fs.writeFileSync(companionPath, doc[field], "utf-8");
|
|
60
|
+
companions[field] = companionPath;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
fs.writeFileSync(jsonPath, JSON.stringify(data, null, 2), "utf-8");
|
|
65
|
+
return { jsonPath, companions };
|
|
47
66
|
}
|
|
48
67
|
const RESOURCE_TYPES = [
|
|
49
68
|
"trigger",
|
|
@@ -163,11 +182,17 @@ function registerGetTool(server, apiHolder) {
|
|
|
163
182
|
: found;
|
|
164
183
|
const json = JSON.stringify(projected, null, 2);
|
|
165
184
|
if (json.length > MAX_INLINE_CHARS) {
|
|
166
|
-
const
|
|
185
|
+
const { jsonPath, companions } = saveToTempFile(type, id, projected);
|
|
186
|
+
const companionLines = Object.entries(companions)
|
|
187
|
+
.map(([field, p]) => ` • ${field}: ${p}`)
|
|
188
|
+
.join("\n");
|
|
189
|
+
const companionNote = companionLines
|
|
190
|
+
? `\n\nLarge fields extracted for direct editing:\n${companionLines}\n\nUse the Read/Edit tools on these files. When saving back, use funifier_save with file="${jsonPath}" — it will re-read these companion files automatically.`
|
|
191
|
+
: `\n\nUse the Read tool to read the file. When saving back, use funifier_save with file="${jsonPath}".`;
|
|
167
192
|
return {
|
|
168
193
|
content: [{
|
|
169
194
|
type: "text",
|
|
170
|
-
text: `Found ${found.length} ${type} item(s) matching "${id}" but content is too large to display inline (${json.length} chars).\n\nFull
|
|
195
|
+
text: `Found ${found.length} ${type} item(s) matching "${id}" but content is too large to display inline (${json.length} chars).\n\nFull payload saved to:\n${jsonPath}${companionNote}`,
|
|
171
196
|
}],
|
|
172
197
|
};
|
|
173
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/mcp/tools/get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/mcp/tools/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAuF1C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAuDvE"}
|
package/dist/mcp/tools/save.js
CHANGED
|
@@ -1,7 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.registerSaveTool = registerSaveTool;
|
|
4
37
|
const zod_1 = require("zod");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
5
39
|
const _fetch_current_1 = require("./_fetch-current");
|
|
6
40
|
const _merge_1 = require("./_merge");
|
|
7
41
|
const RESOURCE_TYPES = [
|
|
@@ -24,6 +58,23 @@ const RESOURCE_TYPES = [
|
|
|
24
58
|
"virtual-good-catalog",
|
|
25
59
|
"virtual-good-item",
|
|
26
60
|
];
|
|
61
|
+
const COMPANION_EXTENSIONS = {
|
|
62
|
+
html: ".html",
|
|
63
|
+
script: ".script.js",
|
|
64
|
+
code: ".code.js",
|
|
65
|
+
css: ".css",
|
|
66
|
+
};
|
|
67
|
+
function mergeCompanions(jsonPath, doc) {
|
|
68
|
+
const base = jsonPath.replace(/\.json$/, "");
|
|
69
|
+
const merged = { ...doc };
|
|
70
|
+
for (const [field, ext] of Object.entries(COMPANION_EXTENSIONS)) {
|
|
71
|
+
const companionPath = `${base}${ext}`;
|
|
72
|
+
if (fs.existsSync(companionPath)) {
|
|
73
|
+
merged[field] = fs.readFileSync(companionPath, "utf-8");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return merged;
|
|
77
|
+
}
|
|
27
78
|
async function dispatchSave(api, type, data) {
|
|
28
79
|
switch (type) {
|
|
29
80
|
case "trigger":
|
|
@@ -69,13 +120,25 @@ async function dispatchSave(api, type, data) {
|
|
|
69
120
|
function registerSaveTool(server, apiHolder) {
|
|
70
121
|
server.tool("funifier_save", "Create or update a Funifier resource. On update (when `_id` is present in the payload), the current resource is fetched and any fields missing from the payload are preserved — you only need to send the fields you want to change. To clear a field, send it explicitly as `null`. Array and object fields are replaced wholesale when present in the payload.", {
|
|
71
122
|
type: zod_1.z.enum(RESOURCE_TYPES).describe("The resource type"),
|
|
72
|
-
payload: zod_1.z.string().describe("JSON string of the resource payload. On update, send only the fields you want to change (plus `_id`)."),
|
|
73
|
-
|
|
123
|
+
payload: zod_1.z.string().optional().describe("JSON string of the resource payload. On update, send only the fields you want to change (plus `_id`). Use `file` instead when the payload is too large to pass inline."),
|
|
124
|
+
file: zod_1.z.string().optional().describe("Path to a JSON file containing the resource payload. Use this when the payload is too large to pass inline (e.g. a file previously written by funifier_get)."),
|
|
125
|
+
}, async ({ type, payload, file }) => {
|
|
74
126
|
try {
|
|
75
127
|
const api = apiHolder.requireClient();
|
|
76
|
-
|
|
128
|
+
if (!payload && !file) {
|
|
129
|
+
return {
|
|
130
|
+
content: [{ type: "text", text: "Either `payload` or `file` must be provided." }],
|
|
131
|
+
isError: true,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
const raw = file ? fs.readFileSync(file, "utf-8") : payload;
|
|
135
|
+
const parsed = JSON.parse(raw);
|
|
136
|
+
// funifier_get saves an array; unwrap if needed
|
|
137
|
+
const unwrapped = Array.isArray(parsed) ? parsed[0] : parsed;
|
|
138
|
+
const data = file ? mergeCompanions(file, unwrapped) : unwrapped;
|
|
139
|
+
// When loading from file, the payload is already complete — skip merge to avoid overwriting edits.
|
|
77
140
|
let toSave = data;
|
|
78
|
-
if (data._id) {
|
|
141
|
+
if (!file && data._id) {
|
|
79
142
|
const current = await (0, _fetch_current_1.fetchCurrentById)(api, type, data._id);
|
|
80
143
|
if (!current) {
|
|
81
144
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../src/mcp/tools/save.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED