localization-mcp-server 1.0.1 → 1.0.3
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/.env.example +3 -0
- package/README.md +37 -0
- package/dist/permissions.d.ts +13 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +5 -2
- package/dist/permissions.js.map +1 -1
- package/dist/prompt-loader.d.ts +7 -0
- package/dist/prompt-loader.d.ts.map +1 -0
- package/dist/prompt-loader.js +29 -0
- package/dist/prompt-loader.js.map +1 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +190 -47
- package/dist/prompts.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/tools/environment.d.ts.map +1 -1
- package/dist/tools/environment.js +73 -8
- package/dist/tools/environment.js.map +1 -1
- package/dist/tools/project-management.d.ts.map +1 -1
- package/dist/tools/project-management.js +336 -44
- package/dist/tools/project-management.js.map +1 -1
- package/dist/tools/sandbox-writes.d.ts.map +1 -1
- package/dist/tools/sandbox-writes.js +51 -12
- package/dist/tools/sandbox-writes.js.map +1 -1
- package/flows/onboarding-flow.yaml +465 -0
- package/package.json +18 -1
- package/AGENT_GUIDE.md +0 -556
- package/AUDIT_REPORT.md +0 -244
- package/PROJECT_OVERVIEW.md +0 -140
- package/migrate-expenses.cjs +0 -120
- package/src/api-client.ts +0 -68
- package/src/index.ts +0 -38
- package/src/logger.ts +0 -31
- package/src/permissions.ts +0 -89
- package/src/prompts.ts +0 -159
- package/src/server.ts +0 -27
- package/src/setup.ts +0 -100
- package/src/tools/diff.ts +0 -225
- package/src/tools/environment.ts +0 -175
- package/src/tools/production.ts +0 -196
- package/src/tools/project-management.ts +0 -517
- package/src/tools/sandbox-writes.ts +0 -321
- package/src/tools/snapshots.ts +0 -68
- package/src/tools/translations.ts +0 -167
- package/tsconfig.json +0 -17
|
@@ -1,7 +1,64 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { readFileSync } from "fs";
|
|
2
3
|
import { apiGet, apiPost, ApiError } from "../api-client.js";
|
|
3
4
|
import { logWrite } from "../logger.js";
|
|
4
5
|
export function registerProjectManagementTools(server) {
|
|
6
|
+
// ─── create_project ────────────────────────────────────────────────────────
|
|
7
|
+
server.tool("create_project", [
|
|
8
|
+
"Create a new translation project on the localization backend.",
|
|
9
|
+
"Only call this after the user has explicitly confirmed they want to create a project.",
|
|
10
|
+
"The slug must be unique — if a project with this slug already exists, the call will fail.",
|
|
11
|
+
"After creating a project, you must also: create at least one namespace (create_namespace),",
|
|
12
|
+
"create at least one locale (create_locale), and initialize the sandbox (init_sandbox)",
|
|
13
|
+
"before the project can be used for translation work.",
|
|
14
|
+
].join(" "), {
|
|
15
|
+
slug: z
|
|
16
|
+
.string()
|
|
17
|
+
.regex(/^[a-z0-9][a-z0-9-]*$/, "Slug must start with a letter or digit and contain only lowercase letters, digits, and hyphens")
|
|
18
|
+
.describe("Project slug — short, lowercase, hyphen-separated identifier (e.g. 'my-app', 'travis-v2'). Must be unique."),
|
|
19
|
+
name: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("Optional human-readable project name (e.g. 'My Application'). Shown in Admin UI."),
|
|
23
|
+
}, async ({ slug, name }) => {
|
|
24
|
+
try {
|
|
25
|
+
const project = await apiPost("/translations/projects", {
|
|
26
|
+
slug,
|
|
27
|
+
...(name ? { name } : {}),
|
|
28
|
+
});
|
|
29
|
+
logWrite("create_project", { slug, name }, project);
|
|
30
|
+
const lines = [
|
|
31
|
+
`✅ Project created successfully.`,
|
|
32
|
+
``,
|
|
33
|
+
`Slug: ${project.slug}`,
|
|
34
|
+
...(project.name ? [`Name: ${project.name}`] : []),
|
|
35
|
+
`ID: ${project.id}`,
|
|
36
|
+
``,
|
|
37
|
+
`Next steps (required before using this project):`,
|
|
38
|
+
`1. create_namespace — add at least one namespace (e.g. "common")`,
|
|
39
|
+
`2. create_locale — add at least one locale (e.g. "en-US")`,
|
|
40
|
+
`3. init_sandbox — initialize the sandbox before any writes`,
|
|
41
|
+
];
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof ApiError) {
|
|
48
|
+
if (error.status === 409) {
|
|
49
|
+
return {
|
|
50
|
+
content: [{ type: "text", text: `Error: A project with slug "${slug}" already exists. Use a different slug or call list_projects to see existing projects.` }],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: "text", text: `Error ${error.status}: ${error.message}` }],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
content: [{ type: "text", text: `Unexpected error: ${String(error)}` }],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
|
5
62
|
// ─── create_namespace ──────────────────────────────────────────────────────
|
|
6
63
|
server.tool("create_namespace", [
|
|
7
64
|
"Create a new namespace in a project.",
|
|
@@ -185,28 +242,88 @@ export function registerProjectManagementTools(server) {
|
|
|
185
242
|
}
|
|
186
243
|
});
|
|
187
244
|
// ─── bulk_import ───────────────────────────────────────────────────────────
|
|
188
|
-
server.tool("bulk_import",
|
|
245
|
+
server.tool("bulk_import", [
|
|
246
|
+
"Import multiple translation keys into the sandbox at once.",
|
|
247
|
+
"Accepts either inline JSON (translations parameter) or a path to a JSON file on disk (filePath parameter).",
|
|
248
|
+
"File format: { \"locale\": { \"key\": \"value\" } } — same as inline translations.",
|
|
249
|
+
"Use filePath when the payload is large (>100 keys) to avoid inline JSON size limits.",
|
|
250
|
+
"All writes go to sandbox — production is unchanged until you promote.",
|
|
251
|
+
"Run compare_local_vs_server first to avoid re-importing keys that already exist.",
|
|
252
|
+
].join(" "), {
|
|
189
253
|
projectSlug: z.string().describe("Project slug"),
|
|
190
254
|
namespace: z.string().describe("Namespace slug — must already exist (use create_namespace first)"),
|
|
191
255
|
translations: z
|
|
192
256
|
.record(z.string(), z.record(z.string(), z.string()))
|
|
193
|
-
.
|
|
257
|
+
.optional()
|
|
258
|
+
.describe('Inline locale → key → value map. Use this for small payloads. Example: { "en": { "save": "Save" }, "nb-NO": { "save": "Lagre" } }'),
|
|
259
|
+
filePath: z
|
|
260
|
+
.string()
|
|
261
|
+
.optional()
|
|
262
|
+
.describe('Absolute path to a JSON file on disk. Format: { "locale": { "key": "value" } }. Use this for large translation files instead of inline JSON.'),
|
|
194
263
|
dryRun: z
|
|
195
264
|
.boolean()
|
|
196
265
|
.default(false)
|
|
197
266
|
.describe("If true, validate and preview what would be imported without writing anything"),
|
|
198
|
-
}, async ({ projectSlug, namespace, translations, dryRun }) => {
|
|
267
|
+
}, async ({ projectSlug, namespace, translations, filePath, dryRun }) => {
|
|
199
268
|
try {
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
|
|
269
|
+
// Resolve translations — from inline or file
|
|
270
|
+
let resolvedTranslations;
|
|
271
|
+
if (filePath) {
|
|
272
|
+
try {
|
|
273
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
274
|
+
resolvedTranslations = JSON.parse(raw);
|
|
275
|
+
}
|
|
276
|
+
catch (e) {
|
|
277
|
+
return {
|
|
278
|
+
content: [{
|
|
279
|
+
type: "text",
|
|
280
|
+
text: `❌ Could not read file: ${filePath}\n${String(e)}`,
|
|
281
|
+
}],
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
else if (translations) {
|
|
286
|
+
resolvedTranslations = translations;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
return {
|
|
290
|
+
content: [{
|
|
291
|
+
type: "text",
|
|
292
|
+
text: `❌ Provide either "translations" (inline JSON) or "filePath" (path to JSON file).`,
|
|
293
|
+
}],
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
// Validate locale codes and check sandbox state in parallel.
|
|
297
|
+
const [project, sandboxStatus] = await Promise.all([
|
|
298
|
+
apiGet(`/translations/projects/${projectSlug}`),
|
|
299
|
+
dryRun
|
|
300
|
+
? Promise.resolve(null)
|
|
301
|
+
: apiGet(`/translations/projects/${projectSlug}/sandbox/status`).catch(() => null),
|
|
302
|
+
]);
|
|
303
|
+
const sandboxWarning = (() => {
|
|
304
|
+
if (!sandboxStatus)
|
|
305
|
+
return null;
|
|
306
|
+
if (!sandboxStatus.initialized) {
|
|
307
|
+
return [
|
|
308
|
+
`⚠️ Sandbox is not initialized for "${projectSlug}".`,
|
|
309
|
+
` Call init_sandbox({ projectSlug: "${projectSlug}" }) before writing.`,
|
|
310
|
+
].join("\n");
|
|
311
|
+
}
|
|
312
|
+
if (sandboxStatus.hasChanges) {
|
|
313
|
+
const n = sandboxStatus.snapshotCount;
|
|
314
|
+
return [
|
|
315
|
+
`⚠️ Sandbox already has pending changes (${n} snapshot${n !== 1 ? "s" : ""} available).`,
|
|
316
|
+
` Review with get_translation_diff before importing more, or call init_sandbox with force: true to discard existing changes.`,
|
|
317
|
+
].join("\n");
|
|
318
|
+
}
|
|
319
|
+
return null;
|
|
320
|
+
})();
|
|
203
321
|
const validLocales = new Set(project.locales.map((l) => l.code));
|
|
204
|
-
const requestedLocales = Object.keys(
|
|
322
|
+
const requestedLocales = Object.keys(resolvedTranslations);
|
|
205
323
|
const unknownLocales = requestedLocales.filter((l) => !validLocales.has(l));
|
|
206
324
|
if (unknownLocales.length > 0) {
|
|
207
325
|
return {
|
|
208
|
-
content: [
|
|
209
|
-
{
|
|
326
|
+
content: [{
|
|
210
327
|
type: "text",
|
|
211
328
|
text: [
|
|
212
329
|
`❌ Import aborted — locale codes do not match the project.`,
|
|
@@ -217,75 +334,67 @@ export function registerProjectManagementTools(server) {
|
|
|
217
334
|
`Call get_project_details to get the exact locale codes. Do not guess or remap them.`,
|
|
218
335
|
`If the locale does not exist in the project yet, call create_locale first.`,
|
|
219
336
|
].join("\n"),
|
|
220
|
-
},
|
|
221
|
-
],
|
|
337
|
+
}],
|
|
222
338
|
};
|
|
223
339
|
}
|
|
224
|
-
// Collect all unique keys
|
|
340
|
+
// Collect all unique keys
|
|
225
341
|
const allKeys = new Set();
|
|
226
|
-
for (const localeMap of Object.values(
|
|
342
|
+
for (const localeMap of Object.values(resolvedTranslations)) {
|
|
227
343
|
for (const key of Object.keys(localeMap)) {
|
|
228
344
|
allKeys.add(key);
|
|
229
345
|
}
|
|
230
346
|
}
|
|
231
347
|
if (dryRun) {
|
|
232
|
-
const perLocale = requestedLocales.map((l) => ` ${l}: ${Object.keys(
|
|
348
|
+
const perLocale = requestedLocales.map((l) => ` ${l}: ${Object.keys(resolvedTranslations[l]).length} values`);
|
|
233
349
|
return {
|
|
234
|
-
content: [
|
|
235
|
-
{
|
|
350
|
+
content: [{
|
|
236
351
|
type: "text",
|
|
237
352
|
text: [
|
|
238
353
|
`DRY RUN — nothing written`,
|
|
239
354
|
``,
|
|
240
355
|
`Would import to sandbox: ${projectSlug}/${namespace}`,
|
|
356
|
+
` Source: ${filePath ?? "inline"}`,
|
|
241
357
|
` Unique keys: ${allKeys.size}`,
|
|
242
358
|
` Locales:`,
|
|
243
359
|
...perLocale,
|
|
244
360
|
].join("\n"),
|
|
245
|
-
},
|
|
246
|
-
],
|
|
361
|
+
}],
|
|
247
362
|
};
|
|
248
363
|
}
|
|
249
364
|
const basePath = `/translations/projects/${projectSlug}/sandbox/namespaces/${namespace}/entries`;
|
|
250
365
|
// Group values per key across all locales, then upsert each key once
|
|
251
366
|
const keyMap = new Map();
|
|
252
|
-
for (const [locale, localeMap] of Object.entries(
|
|
367
|
+
for (const [locale, localeMap] of Object.entries(resolvedTranslations)) {
|
|
253
368
|
for (const [key, value] of Object.entries(localeMap)) {
|
|
254
369
|
if (!keyMap.has(key))
|
|
255
370
|
keyMap.set(key, {});
|
|
256
371
|
keyMap.get(key)[locale] = value;
|
|
257
372
|
}
|
|
258
373
|
}
|
|
259
|
-
let
|
|
260
|
-
let updated = 0;
|
|
374
|
+
let upserted = 0;
|
|
261
375
|
let failed = 0;
|
|
262
376
|
const errors = [];
|
|
263
377
|
const { apiPatch } = await import("../api-client.js");
|
|
264
378
|
for (const [key, values] of keyMap.entries()) {
|
|
265
379
|
try {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
// Key does not exist yet — create it
|
|
380
|
+
await apiPatch(`${basePath}/${encodeURIComponent(key)}`, { values });
|
|
381
|
+
upserted++;
|
|
382
|
+
}
|
|
383
|
+
catch (err) {
|
|
384
|
+
// PATCH acts as upsert — if it fails, try POST (key may not exist on older API versions)
|
|
385
|
+
if (err instanceof ApiError && err.status === 404) {
|
|
386
|
+
try {
|
|
274
387
|
await apiPost(basePath, { key, values });
|
|
275
|
-
|
|
388
|
+
upserted++;
|
|
276
389
|
}
|
|
277
|
-
|
|
278
|
-
|
|
390
|
+
catch (postErr) {
|
|
391
|
+
failed++;
|
|
392
|
+
errors.push(` ${key}: ${postErr instanceof ApiError ? `${postErr.status} ${postErr.message}` : String(postErr)}`);
|
|
279
393
|
}
|
|
280
394
|
}
|
|
281
|
-
}
|
|
282
|
-
catch (err) {
|
|
283
|
-
failed++;
|
|
284
|
-
if (err instanceof ApiError) {
|
|
285
|
-
errors.push(` ${key}: ${err.status} ${err.message}`);
|
|
286
|
-
}
|
|
287
395
|
else {
|
|
288
|
-
|
|
396
|
+
failed++;
|
|
397
|
+
errors.push(` ${key}: ${err instanceof ApiError ? `${err.status} ${err.message}` : String(err)}`);
|
|
289
398
|
}
|
|
290
399
|
if (failed > 5) {
|
|
291
400
|
errors.push(` ... and more errors (stopping early)`);
|
|
@@ -293,25 +402,208 @@ export function registerProjectManagementTools(server) {
|
|
|
293
402
|
}
|
|
294
403
|
}
|
|
295
404
|
}
|
|
296
|
-
logWrite("bulk_import", { projectSlug, namespace, keyCount: keyMap.size }, {
|
|
405
|
+
logWrite("bulk_import", { projectSlug, namespace, keyCount: keyMap.size, source: filePath ?? "inline" }, { upserted, failed });
|
|
297
406
|
const lines = [
|
|
298
407
|
`Bulk import to sandbox: ${projectSlug}/${namespace}`,
|
|
299
|
-
`
|
|
300
|
-
`
|
|
301
|
-
` Failed:
|
|
408
|
+
` Source: ${filePath ?? "inline"}`,
|
|
409
|
+
` Upserted: ${upserted}`,
|
|
410
|
+
` Failed: ${failed}`,
|
|
302
411
|
];
|
|
303
412
|
if (errors.length > 0) {
|
|
304
413
|
lines.push(``, `Errors:`, ...errors);
|
|
305
414
|
}
|
|
306
415
|
lines.push(``, `Use get_translation_diff to review all pending changes before promoting.`);
|
|
416
|
+
const text = sandboxWarning
|
|
417
|
+
? sandboxWarning + "\n\n" + lines.join("\n")
|
|
418
|
+
: lines.join("\n");
|
|
307
419
|
return {
|
|
308
|
-
content: [{ type: "text", text
|
|
420
|
+
content: [{ type: "text", text }],
|
|
309
421
|
};
|
|
310
422
|
}
|
|
311
423
|
catch (error) {
|
|
312
424
|
return errorContent(error);
|
|
313
425
|
}
|
|
314
426
|
});
|
|
427
|
+
// ─── compare_local_vs_server ───────────────────────────────────────────────
|
|
428
|
+
server.tool("compare_local_vs_server", [
|
|
429
|
+
"Compare a local translation map against a namespace on the server.",
|
|
430
|
+
"Returns: keys only in local (need importing), keys only on server (not in local), keys with different values (conflicts), and a count of matching keys.",
|
|
431
|
+
"Run this BEFORE bulk_import to avoid re-importing keys that already exist with the same values.",
|
|
432
|
+
"Accepts either an inline translations map or a filePath to a JSON file on disk.",
|
|
433
|
+
].join(" "), {
|
|
434
|
+
projectSlug: z.string().describe("Project slug"),
|
|
435
|
+
namespace: z.string().describe("Namespace slug"),
|
|
436
|
+
translations: z
|
|
437
|
+
.record(z.string(), z.record(z.string(), z.string()))
|
|
438
|
+
.optional()
|
|
439
|
+
.describe('Inline locale → key → value map to compare against server'),
|
|
440
|
+
filePath: z
|
|
441
|
+
.string()
|
|
442
|
+
.optional()
|
|
443
|
+
.describe('Absolute path to a JSON file on disk. Format: { "locale": { "key": "value" } }'),
|
|
444
|
+
env: z
|
|
445
|
+
.enum(["sandbox", "production"])
|
|
446
|
+
.default("sandbox")
|
|
447
|
+
.describe("Which environment to compare against (default: sandbox)"),
|
|
448
|
+
}, async ({ projectSlug, namespace, translations, filePath, env }) => {
|
|
449
|
+
try {
|
|
450
|
+
// Resolve local translations
|
|
451
|
+
let local;
|
|
452
|
+
if (filePath) {
|
|
453
|
+
try {
|
|
454
|
+
local = JSON.parse(readFileSync(filePath, "utf-8"));
|
|
455
|
+
}
|
|
456
|
+
catch (e) {
|
|
457
|
+
return {
|
|
458
|
+
content: [{ type: "text", text: `❌ Could not read file: ${filePath}\n${String(e)}` }],
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
else if (translations) {
|
|
463
|
+
local = translations;
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
return {
|
|
467
|
+
content: [{ type: "text", text: `❌ Provide either "translations" (inline) or "filePath".` }],
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
// Fetch all server entries
|
|
471
|
+
const basePath = env === "sandbox"
|
|
472
|
+
? `/translations/projects/${projectSlug}/sandbox/namespaces/${namespace}/entries`
|
|
473
|
+
: `/translations/projects/${projectSlug}/namespaces/${namespace}/entries`;
|
|
474
|
+
const allEntries = [];
|
|
475
|
+
let page = 1;
|
|
476
|
+
while (true) {
|
|
477
|
+
const data = await apiGet(basePath, { page, limit: 100 });
|
|
478
|
+
allEntries.push(...data.data);
|
|
479
|
+
if (page >= data.meta.totalPages)
|
|
480
|
+
break;
|
|
481
|
+
page++;
|
|
482
|
+
}
|
|
483
|
+
const serverKeys = new Map();
|
|
484
|
+
for (const entry of allEntries) {
|
|
485
|
+
serverKeys.set(entry.key, entry.values);
|
|
486
|
+
}
|
|
487
|
+
// Collect all local keys across all locales
|
|
488
|
+
const localKeys = new Map();
|
|
489
|
+
for (const [locale, map] of Object.entries(local)) {
|
|
490
|
+
for (const [key, value] of Object.entries(map)) {
|
|
491
|
+
if (!localKeys.has(key))
|
|
492
|
+
localKeys.set(key, {});
|
|
493
|
+
localKeys.get(key)[locale] = value;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
const onlyLocal = [];
|
|
497
|
+
const onlyServer = [];
|
|
498
|
+
const conflicts = [];
|
|
499
|
+
let matching = 0;
|
|
500
|
+
for (const [key, localValues] of localKeys.entries()) {
|
|
501
|
+
if (!serverKeys.has(key)) {
|
|
502
|
+
onlyLocal.push(key);
|
|
503
|
+
}
|
|
504
|
+
else {
|
|
505
|
+
const serverValues = serverKeys.get(key);
|
|
506
|
+
let hasConflict = false;
|
|
507
|
+
for (const [locale, localVal] of Object.entries(localValues)) {
|
|
508
|
+
const serverVal = serverValues[locale];
|
|
509
|
+
if (serverVal !== undefined && serverVal !== localVal) {
|
|
510
|
+
conflicts.push({ key, locale, local: localVal, server: serverVal });
|
|
511
|
+
hasConflict = true;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
if (!hasConflict)
|
|
515
|
+
matching++;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
for (const key of serverKeys.keys()) {
|
|
519
|
+
if (!localKeys.has(key)) {
|
|
520
|
+
onlyServer.push(key);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
const lines = [
|
|
524
|
+
`Compare: local${filePath ? ` (${filePath})` : ""} vs ${projectSlug}/${namespace} [${env}]`,
|
|
525
|
+
``,
|
|
526
|
+
` ✅ Matching (same values): ${matching}`,
|
|
527
|
+
` ➕ Only in local (need import): ${onlyLocal.length}`,
|
|
528
|
+
` 📦 Only on server (not local): ${onlyServer.length}`,
|
|
529
|
+
` ⚠️ Conflicts (different values): ${conflicts.length}`,
|
|
530
|
+
];
|
|
531
|
+
if (onlyLocal.length > 0) {
|
|
532
|
+
lines.push(``, `Keys only in local (first 20):`);
|
|
533
|
+
onlyLocal.slice(0, 20).forEach((k) => lines.push(` • ${k}`));
|
|
534
|
+
if (onlyLocal.length > 20)
|
|
535
|
+
lines.push(` ... and ${onlyLocal.length - 20} more`);
|
|
536
|
+
lines.push(``, `→ Run bulk_import to add these to the server.`);
|
|
537
|
+
}
|
|
538
|
+
if (conflicts.length > 0) {
|
|
539
|
+
lines.push(``, `Conflicts (first 10):`);
|
|
540
|
+
conflicts.slice(0, 10).forEach((c) => lines.push(` • ${c.key} [${c.locale}]\n local: "${c.local}"\n server: "${c.server}"`));
|
|
541
|
+
if (conflicts.length > 10)
|
|
542
|
+
lines.push(` ... and ${conflicts.length - 10} more`);
|
|
543
|
+
const conflictKeys = [...new Set(conflicts.map((c) => c.key))];
|
|
544
|
+
lines.push(``, `Resolve conflicts — choose one action per conflicting key:`, ``, ` ⚠️ OVERWRITE (dangerous) — replaces server values with local ones:`, ` Use bulk_import with only the conflicting keys.`, ` Only do this if local values are correct and server is outdated.`, ` Conflicting keys: ${conflictKeys.join(", ")}`, ``, ` ➕ ADD AS NEW KEYS — keep server values, store local values under a new key name:`, ` Rename conflicting keys (e.g. "mileage" → "mileage_expense") and use bulk_import.`, ` Use this when both values are valid but serve different contexts.`, ``, ` ✅ KEEP EXISTING — skip conflicting keys entirely, use server values as-is:`, ` Exclude conflicting keys from bulk_import. No action needed for them.`);
|
|
545
|
+
}
|
|
546
|
+
if (onlyLocal.length === 0 && conflicts.length === 0) {
|
|
547
|
+
lines.push(``, `✅ Local and server are in sync — no import needed.`);
|
|
548
|
+
}
|
|
549
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
550
|
+
}
|
|
551
|
+
catch (error) {
|
|
552
|
+
return errorContent(error);
|
|
553
|
+
}
|
|
554
|
+
});
|
|
555
|
+
// ─── validate_keys ─────────────────────────────────────────────────────────
|
|
556
|
+
server.tool("validate_keys", [
|
|
557
|
+
"Check whether a list of translation keys exist in a namespace.",
|
|
558
|
+
"Returns: found keys, missing keys.",
|
|
559
|
+
"Use this to verify that all t() calls in a component are backed by server entries.",
|
|
560
|
+
].join(" "), {
|
|
561
|
+
projectSlug: z.string().describe("Project slug"),
|
|
562
|
+
namespace: z.string().describe("Namespace slug"),
|
|
563
|
+
keys: z.array(z.string()).min(1).describe("List of translation keys to check"),
|
|
564
|
+
env: z
|
|
565
|
+
.enum(["sandbox", "production"])
|
|
566
|
+
.default("sandbox")
|
|
567
|
+
.describe("Which environment to check against (default: sandbox)"),
|
|
568
|
+
}, async ({ projectSlug, namespace, keys, env }) => {
|
|
569
|
+
try {
|
|
570
|
+
const basePath = env === "sandbox"
|
|
571
|
+
? `/translations/projects/${projectSlug}/sandbox/namespaces/${namespace}/entries`
|
|
572
|
+
: `/translations/projects/${projectSlug}/namespaces/${namespace}/entries`;
|
|
573
|
+
// Fetch all entries to build a key set
|
|
574
|
+
const allEntries = [];
|
|
575
|
+
let page = 1;
|
|
576
|
+
while (true) {
|
|
577
|
+
const data = await apiGet(basePath, { page, limit: 100 });
|
|
578
|
+
allEntries.push(...data.data);
|
|
579
|
+
if (page >= data.meta.totalPages)
|
|
580
|
+
break;
|
|
581
|
+
page++;
|
|
582
|
+
}
|
|
583
|
+
const serverKeySet = new Set(allEntries.map((e) => e.key));
|
|
584
|
+
const found = keys.filter((k) => serverKeySet.has(k));
|
|
585
|
+
const missing = keys.filter((k) => !serverKeySet.has(k));
|
|
586
|
+
const lines = [
|
|
587
|
+
`Validate keys in ${projectSlug}/${namespace} [${env}]`,
|
|
588
|
+
``,
|
|
589
|
+
` Checked: ${keys.length}`,
|
|
590
|
+
` Found: ${found.length}`,
|
|
591
|
+
` Missing: ${missing.length}`,
|
|
592
|
+
];
|
|
593
|
+
if (missing.length > 0) {
|
|
594
|
+
lines.push(``, `Missing keys:`);
|
|
595
|
+
missing.forEach((k) => lines.push(` ✗ ${k}`));
|
|
596
|
+
lines.push(``, `→ Use set_translation or bulk_import to add missing keys.`);
|
|
597
|
+
}
|
|
598
|
+
else {
|
|
599
|
+
lines.push(``, `✅ All keys exist on the server.`);
|
|
600
|
+
}
|
|
601
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
602
|
+
}
|
|
603
|
+
catch (error) {
|
|
604
|
+
return errorContent(error);
|
|
605
|
+
}
|
|
606
|
+
});
|
|
315
607
|
// ─── get_namespace_coverage ────────────────────────────────────────────────
|
|
316
608
|
server.tool("get_namespace_coverage", [
|
|
317
609
|
"Show per-locale fill statistics for a namespace.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-management.js","sourceRoot":"","sources":["../../src/tools/project-management.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-management.js","sourceRoot":"","sources":["../../src/tools/project-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-writes.d.ts","sourceRoot":"","sources":["../../src/tools/sandbox-writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox-writes.d.ts","sourceRoot":"","sources":["../../src/tools/sandbox-writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0EpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8PjE"}
|