@better-i18n/mcp 0.1.0 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"addLanguage.d.ts","sourceRoot":"","sources":["../../src/tools/addLanguage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,WAAW,EAAE,IAkCzB,CAAC"}
1
+ {"version":3,"file":"addLanguage.d.ts","sourceRoot":"","sources":["../../src/tools/addLanguage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,WAAW,EAAE,IA+BzB,CAAC"}
@@ -11,15 +11,12 @@ const inputSchema = projectSchema.extend({
11
11
  export const addLanguage = {
12
12
  definition: {
13
13
  name: "addLanguage",
14
- description: "Add a new target language to the project for translation. Use ISO 639-1 codes (e.g., 'fr' for French, 'ja' for Japanese).",
14
+ description: "Add a new target language to the project. Use ISO 639-1 codes (e.g. 'fr', 'ja', 'de', 'es').",
15
15
  inputSchema: {
16
16
  type: "object",
17
17
  properties: {
18
18
  ...projectInputProperty,
19
- languageCode: {
20
- type: "string",
21
- description: "ISO 639-1 language code (e.g., 'fr', 'ja', 'de', 'es')",
22
- },
19
+ languageCode: { type: "string" },
23
20
  },
24
21
  required: ["project", "languageCode"],
25
22
  },
@@ -1 +1 @@
1
- {"version":3,"file":"addLanguage.js","sourceRoot":"","sources":["../../src/tools/addLanguage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,2HAA2H;QAC7H,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;SACtC;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;YACjD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"addLanguage.js","sourceRoot":"","sources":["../../src/tools/addLanguage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,8FAA8F;QAChG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;SACtC;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;YACjD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * createKeys MCP Tool
3
3
  *
4
4
  * Creates one or more translation keys with source text and optional translations.
5
+ * Compact schema: k=[{n, ns, v, t}] — direct pass-through to API.
5
6
  */
6
7
  import type { Tool } from "../types/index.js";
7
8
  export declare const createKeys: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"createKeys.d.ts","sourceRoot":"","sources":["../../src/tools/createKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAa9C,eAAO,MAAM,UAAU,EAAE,IAuExB,CAAC"}
1
+ {"version":3,"file":"createKeys.d.ts","sourceRoot":"","sources":["../../src/tools/createKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAa9C,eAAO,MAAM,UAAU,EAAE,IAmDxB,CAAC"}
@@ -2,68 +2,53 @@
2
2
  * createKeys MCP Tool
3
3
  *
4
4
  * Creates one or more translation keys with source text and optional translations.
5
+ * Compact schema: k=[{n, ns, v, t}] — direct pass-through to API.
5
6
  */
6
7
  import { z } from "zod";
7
8
  import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
8
9
  const inputSchema = projectSchema.extend({
9
- keys: z.array(z.object({
10
- key: z.string(),
11
- namespace: z.string().optional(),
12
- sourceText: z.string(),
13
- translations: z.record(z.string(), z.string()).optional(),
10
+ k: z.array(z.object({
11
+ n: z.string(),
12
+ ns: z.string().optional(),
13
+ v: z.string().optional(),
14
+ t: z.record(z.string(), z.string()).optional(),
14
15
  })),
15
16
  });
16
17
  export const createKeys = {
17
18
  definition: {
18
19
  name: "createKeys",
19
- description: "Create one or more translation keys with source text. Accepts an array - use for single or multiple keys.",
20
+ description: "Create translation keys. k=[{n: key name, ns: namespace, v: source text, t: {langCode: text} target translations}]. Don't include source language in t, it goes in v.",
20
21
  inputSchema: {
21
22
  type: "object",
22
23
  properties: {
23
24
  ...projectInputProperty,
24
- keys: {
25
+ k: {
25
26
  type: "array",
26
- description: "Array of translation keys to create",
27
27
  items: {
28
28
  type: "object",
29
29
  properties: {
30
- key: {
31
- type: "string",
32
- description: "Translation key WITHOUT namespace prefix when namespace is provided.",
33
- },
34
- namespace: {
35
- type: "string",
36
- description: "Namespace for the key. Defaults to 'default'.",
37
- },
38
- sourceText: {
39
- type: "string",
40
- description: "Source text in default language (usually English)",
41
- },
42
- translations: {
43
- type: "object",
44
- description: "Translations for target languages. Keys are language codes, values are translated text.",
45
- },
30
+ n: { type: "string" },
31
+ ns: { type: "string" },
32
+ v: { type: "string" },
33
+ t: { type: "object" },
46
34
  },
47
- required: ["key", "sourceText"],
35
+ required: ["n"],
48
36
  },
49
37
  },
50
38
  },
51
- required: ["project", "keys"],
39
+ required: ["project", "k"],
52
40
  },
53
41
  },
54
42
  execute: (client, args) => executeTool(args, inputSchema, async (input, { workspaceId, projectSlug }) => {
55
- // Map to compact format expected by API
56
- // k: array of keys { n, ns, v, t }
57
- const compactKeys = input.keys.map((k) => ({
58
- n: k.key,
59
- ns: k.namespace || "default",
60
- v: k.sourceText,
61
- t: k.translations,
62
- }));
63
43
  const result = await client.mcp.createKeys.mutate({
64
44
  orgSlug: workspaceId,
65
45
  projectSlug,
66
- k: compactKeys,
46
+ k: input.k.map((item) => ({
47
+ n: item.n,
48
+ ns: item.ns || "default",
49
+ v: item.v,
50
+ t: item.t,
51
+ })),
67
52
  });
68
53
  return success({
69
54
  success: true,
@@ -1 +1 @@
1
- {"version":3,"file":"createKeys.js","sourceRoot":"","sources":["../../src/tools/createKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CACX,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC1D,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,2GAA2G;QAC7G,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,qCAAqC;oBAClD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE;gCACH,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,sEAAsE;6BACzE;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,+CAA+C;6BAC7D;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,mDAAmD;6BACtD;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,yFAAyF;6BAC5F;yBACF;wBACD,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;qBAChC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;SAC9B;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CACT,IAAI,EACJ,WAAW,EACX,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5C,wCAAwC;QACxC,mCAAmC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC,EAAE,CAAC,CAAC,GAAG;YACR,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS;YAC5B,CAAC,EAAE,CAAC,CAAC,UAAU;YACf,CAAC,EAAE,CAAC,CAAC,YAAY;SAClB,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,CAAC,EAAE,WAAW;SACf,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,CACF;CACJ,CAAC"}
1
+ {"version":3,"file":"createKeys.js","sourceRoot":"","sources":["../../src/tools/createKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,KAAK,CACR,CAAC,CAAC,MAAM,CAAC;QACP,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC/C,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,uKAAuK;QACzK,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,CAAC,EAAE;oBACD,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACrB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACtB;wBACD,QAAQ,EAAE,CAAC,GAAG,CAAC;qBAChB;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC;SAC3B;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CACT,IAAI,EACJ,WAAW,EACX,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS;gBACxB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;aACV,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,CACF;CACJ,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * deleteKeys MCP Tool
3
3
  *
4
4
  * Soft-deletes translation keys by marking them with a deletedAt timestamp.
5
- * Keys are not permanently removed until the next publish.
5
+ * Keys are permanently removed on the next publish.
6
6
  */
7
7
  import type { Tool } from "../types/index.js";
8
8
  export declare const deleteKeys: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"deleteKeys.d.ts","sourceRoot":"","sources":["../../src/tools/deleteKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,UAAU,EAAE,IA2CxB,CAAC"}
1
+ {"version":3,"file":"deleteKeys.d.ts","sourceRoot":"","sources":["../../src/tools/deleteKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,UAAU,EAAE,IAkCxB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * deleteKeys MCP Tool
3
3
  *
4
4
  * Soft-deletes translation keys by marking them with a deletedAt timestamp.
5
- * Keys are not permanently removed until the next publish.
5
+ * Keys are permanently removed on the next publish.
6
6
  */
7
7
  import { z } from "zod";
8
8
  import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
@@ -12,18 +12,14 @@ const inputSchema = projectSchema.extend({
12
12
  export const deleteKeys = {
13
13
  definition: {
14
14
  name: "deleteKeys",
15
- description: "Delete one or more translation keys (soft delete). Keys are marked for deletion and removed from CDN/GitHub on the next publish. Accepts an array of key UUIDs.",
15
+ description: "Soft-delete translation keys by UUID. Keys are marked for deletion and removed from CDN/GitHub on next publish. Get UUIDs from listKeys.",
16
16
  inputSchema: {
17
17
  type: "object",
18
18
  properties: {
19
19
  ...projectInputProperty,
20
20
  keyIds: {
21
21
  type: "array",
22
- description: "Array of translation key UUIDs to delete. Get these from listKeys or getAllTranslations.",
23
- items: {
24
- type: "string",
25
- description: "UUID of the translation key",
26
- },
22
+ items: { type: "string" },
27
23
  },
28
24
  },
29
25
  required: ["project", "keyIds"],
@@ -1 +1 @@
1
- {"version":3,"file":"deleteKeys.js","sourceRoot":"","sources":["../../src/tools/deleteKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,iKAAiK;QACnK,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,0FAA0F;oBAC5F,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6BAA6B;qBAC3C;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAChC;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CACT,IAAI,EACJ,WAAW,EACX,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC,CACF;CACJ,CAAC"}
1
+ {"version":3,"file":"deleteKeys.js","sourceRoot":"","sources":["../../src/tools/deleteKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,0IAA0I;QAC5I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAChC;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * getSync MCP Tool
3
3
  *
4
- * Get detailed information about a specific sync operation including logs and affected keys.
4
+ * Get detailed information about a specific sync operation.
5
5
  */
6
6
  import type { Tool } from "../types/index.js";
7
7
  export declare const getSync: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"getSync.d.ts","sourceRoot":"","sources":["../../src/tools/getSync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,OAAO,EAAE,IAuBrB,CAAC"}
1
+ {"version":3,"file":"getSync.d.ts","sourceRoot":"","sources":["../../src/tools/getSync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,OAAO,EAAE,IAmBrB,CAAC"}
@@ -1,24 +1,21 @@
1
1
  /**
2
2
  * getSync MCP Tool
3
3
  *
4
- * Get detailed information about a specific sync operation including logs and affected keys.
4
+ * Get detailed information about a specific sync operation.
5
5
  */
6
6
  import { z } from "zod";
7
7
  import { executeSimpleTool, success } from "../base-tool.js";
8
8
  const inputSchema = z.object({
9
- syncId: z.string().describe("The sync job ID to retrieve details for"),
9
+ syncId: z.string(),
10
10
  });
11
11
  export const getSync = {
12
12
  definition: {
13
13
  name: "getSync",
14
- description: "Get detailed information about a specific sync operation. Returns full sync job details including activity logs, timing, status, and affected translation keys. Use this to troubleshoot sync issues or check if specific keys were included in a sync.",
14
+ description: "Get details about a specific sync operation including logs and affected keys. Use syncId from getSyncs response.",
15
15
  inputSchema: {
16
16
  type: "object",
17
17
  properties: {
18
- syncId: {
19
- type: "string",
20
- description: "The sync job ID (e.g., from getSyncs response or error messages)",
21
- },
18
+ syncId: { type: "string" },
22
19
  },
23
20
  required: ["syncId"],
24
21
  },
@@ -1 +1 @@
1
- {"version":3,"file":"getSync.js","sourceRoot":"","sources":["../../src/tools/getSync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACvE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAS;IAC3B,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EACT,yPAAyP;QAC3P,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kEAAkE;iBACrE;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"getSync.js","sourceRoot":"","sources":["../../src/tools/getSync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAS;IAC3B,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EACT,kHAAkH;QACpH,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * getSyncs MCP Tool
3
3
  *
4
- * Lists recent sync operations for a project with filtering by status and type.
4
+ * Lists recent sync operations for a project.
5
5
  */
6
6
  import type { Tool } from "../types/index.js";
7
7
  export declare const getSyncs: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"getSyncs.d.ts","sourceRoot":"","sources":["../../src/tools/getSyncs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAU9C,eAAO,MAAM,QAAQ,EAAE,IA6CtB,CAAC"}
1
+ {"version":3,"file":"getSyncs.d.ts","sourceRoot":"","sources":["../../src/tools/getSyncs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAU9C,eAAO,MAAM,QAAQ,EAAE,IAkCtB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * getSyncs MCP Tool
3
3
  *
4
- * Lists recent sync operations for a project with filtering by status and type.
4
+ * Lists recent sync operations for a project.
5
5
  */
6
6
  import { z } from "zod";
7
7
  import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
@@ -15,29 +15,19 @@ const inputSchema = projectSchema.extend({
15
15
  export const getSyncs = {
16
16
  definition: {
17
17
  name: "getSyncs",
18
- description: "List recent sync operations for a project. Returns sync jobs with their status, type, timing, and results. Use this to check if syncs succeeded or failed, or to see recent sync activity.",
18
+ description: "List recent sync operations for a project. Returns sync jobs with status, type, and timing. Use to check if syncs succeeded or failed.",
19
19
  inputSchema: {
20
20
  type: "object",
21
21
  properties: {
22
22
  ...projectInputProperty,
23
- limit: {
24
- type: "number",
25
- description: "Maximum number of sync jobs to return (default: 10, max: 50)",
26
- },
23
+ limit: { type: "number" },
27
24
  status: {
28
25
  type: "string",
29
26
  enum: ["pending", "in_progress", "completed", "failed"],
30
- description: "Filter syncs by status",
31
27
  },
32
28
  type: {
33
29
  type: "string",
34
- enum: [
35
- "initial_import",
36
- "source_sync",
37
- "cdn_upload",
38
- "publish_batch",
39
- ],
40
- description: "Filter syncs by job type",
30
+ enum: ["initial_import", "source_sync", "cdn_upload", "publish_batch"],
41
31
  },
42
32
  },
43
33
  required: ["project"],
@@ -1 +1 @@
1
- {"version":3,"file":"getSyncs.js","sourceRoot":"","sources":["../../src/tools/getSyncs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5E,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;SACtE,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,4LAA4L;QAC9L,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8DAA8D;iBACjE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC;oBACvD,WAAW,EAAE,wBAAwB;iBACtC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,gBAAgB;wBAChB,aAAa;wBACb,YAAY;wBACZ,eAAe;qBAChB;oBACD,WAAW,EAAE,0BAA0B;iBACxC;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"getSyncs.js","sourceRoot":"","sources":["../../src/tools/getSyncs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5E,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;SACtE,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,wIAAwI;QAC1I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC;iBACxD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC;iBACvE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * listKeys MCP Tool
3
3
  *
4
- * Lists ALL translation keys in a project with their source text and translations.
4
+ * Lists ALL translation keys with source text and translations.
5
5
  */
6
6
  import type { Tool } from "../types/index.js";
7
7
  export declare const listKeys: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"listKeys.d.ts","sourceRoot":"","sources":["../../src/tools/listKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAO9C,eAAO,MAAM,QAAQ,EAAE,IAiCtB,CAAC"}
1
+ {"version":3,"file":"listKeys.d.ts","sourceRoot":"","sources":["../../src/tools/listKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAO9C,eAAO,MAAM,QAAQ,EAAE,IA6BtB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * listKeys MCP Tool
3
3
  *
4
- * Lists ALL translation keys in a project with their source text and translations.
4
+ * Lists ALL translation keys with source text and translations.
5
5
  */
6
6
  import { z } from "zod";
7
7
  import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
@@ -12,19 +12,15 @@ const inputSchema = projectSchema.extend({
12
12
  export const listKeys = {
13
13
  definition: {
14
14
  name: "listKeys",
15
- description: "Get all translation keys with their source text and translations. Returns ALL keys in a single response. Use 'namespaces' to filter by namespace or 'search' to search within key names and source text.",
15
+ description: "Get all translation keys with their id, source text, and translations. Returns ALL keys in a single response. Use 'namespaces' to filter by namespace or 'search' to find keys by name.",
16
16
  inputSchema: {
17
17
  type: "object",
18
18
  properties: {
19
19
  ...projectInputProperty,
20
- search: {
21
- type: "string",
22
- description: "Search term to find in key names or source text.",
23
- },
20
+ search: { type: "string" },
24
21
  namespaces: {
25
22
  type: "array",
26
23
  items: { type: "string" },
27
- description: "Filter by specific namespaces (e.g., ['nav', 'home']).",
28
24
  },
29
25
  },
30
26
  required: ["project"],
@@ -1 +1 @@
1
- {"version":3,"file":"listKeys.js","sourceRoot":"","sources":["../../src/tools/listKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,0MAA0M;QAC5M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,wDAAwD;iBACtE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACvD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"listKeys.js","sourceRoot":"","sources":["../../src/tools/listKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,yLAAyL;QAC3L,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACvD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
@@ -2,7 +2,6 @@
2
2
  * listProjects MCP Tool
3
3
  *
4
4
  * Lists all projects the user has access to across all organizations.
5
- * Use this tool FIRST to discover available projects before other operations.
6
5
  */
7
6
  import type { Tool } from "../types/index.js";
8
7
  export declare const listProjects: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"listProjects.d.ts","sourceRoot":"","sources":["../../src/tools/listProjects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,IA4B1B,CAAC"}
1
+ {"version":3,"file":"listProjects.d.ts","sourceRoot":"","sources":["../../src/tools/listProjects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAK9C,eAAO,MAAM,YAAY,EAAE,IAgB1B,CAAC"}
@@ -2,9 +2,10 @@
2
2
  * listProjects MCP Tool
3
3
  *
4
4
  * Lists all projects the user has access to across all organizations.
5
- * Use this tool FIRST to discover available projects before other operations.
6
5
  */
7
- import { success } from "../base-tool.js";
6
+ import { executeSimpleTool, success } from "../base-tool.js";
7
+ import { z } from "zod";
8
+ const inputSchema = z.object({});
8
9
  export const listProjects = {
9
10
  definition: {
10
11
  name: "listProjects",
@@ -12,25 +13,11 @@ export const listProjects = {
12
13
  inputSchema: {
13
14
  type: "object",
14
15
  properties: {},
15
- required: [],
16
16
  },
17
17
  },
18
- execute: async (client, _args) => {
19
- try {
20
- const result = await client.mcp.listProjects.query();
21
- return success(result);
22
- }
23
- catch (err) {
24
- return {
25
- content: [
26
- {
27
- type: "text",
28
- text: `Error listing projects: ${err instanceof Error ? err.message : String(err)}`,
29
- },
30
- ],
31
- isError: true,
32
- };
33
- }
34
- },
18
+ execute: (client, args) => executeSimpleTool(args, inputSchema, async () => {
19
+ const result = await client.mcp.listProjects.query();
20
+ return success(result);
21
+ }),
35
22
  };
36
23
  //# sourceMappingURL=listProjects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listProjects.js","sourceRoot":"","sources":["../../src/tools/listProjects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,gHAAgH;QAClH,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACrD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACpF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"listProjects.js","sourceRoot":"","sources":["../../src/tools/listProjects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,gHAAgH;QAClH,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;CACL,CAAC"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * updateKeys MCP Tool
3
3
  *
4
- * Updates translations for one or more keys in a single request.
4
+ * Updates source text and/or target translations for one or more keys.
5
+ * Compact schema: t=[{k, ns, l, t, s, st}] — direct pass-through to API.
6
+ * Each entry = one language update for one key. s=true for source text.
5
7
  */
6
8
  import type { Tool } from "../types/index.js";
7
9
  export declare const updateKeys: Tool;
@@ -1 +1 @@
1
- {"version":3,"file":"updateKeys.d.ts","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAY9C,eAAO,MAAM,UAAU,EAAE,IAoFxB,CAAC"}
1
+ {"version":3,"file":"updateKeys.d.ts","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAe9C,eAAO,MAAM,UAAU,EAAE,IAuDxB,CAAC"}
@@ -1,79 +1,61 @@
1
1
  /**
2
2
  * updateKeys MCP Tool
3
3
  *
4
- * Updates translations for one or more keys in a single request.
4
+ * Updates source text and/or target translations for one or more keys.
5
+ * Compact schema: t=[{k, ns, l, t, s, st}] — direct pass-through to API.
6
+ * Each entry = one language update for one key. s=true for source text.
5
7
  */
6
8
  import { z } from "zod";
7
9
  import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
8
10
  const inputSchema = projectSchema.extend({
9
- keys: z.array(z.object({
10
- key: z.string(),
11
- namespace: z.string().optional(),
12
- translations: z.record(z.string(), z.string()),
11
+ t: z.array(z.object({
12
+ k: z.string(),
13
+ ns: z.string().optional(),
14
+ l: z.string(),
15
+ t: z.string(),
16
+ s: z.boolean().optional(),
17
+ st: z.string().optional(),
13
18
  })),
14
19
  });
15
20
  export const updateKeys = {
16
21
  definition: {
17
22
  name: "updateKeys",
18
- description: "Update translations for one or more keys. Accepts an array - use for single or multiple updates.",
23
+ description: "Update translations. Each entry in t updates ONE language for ONE key. t=[{k: key name, ns: namespace, l: language code, t: new text, s: true for source text update, st: status}].",
19
24
  inputSchema: {
20
25
  type: "object",
21
26
  properties: {
22
27
  ...projectInputProperty,
23
- keys: {
28
+ t: {
24
29
  type: "array",
25
- description: "Array of translation updates",
26
30
  items: {
27
31
  type: "object",
28
32
  properties: {
29
- key: {
30
- type: "string",
31
- description: "Translation key WITHOUT namespace prefix when namespace is provided.",
32
- },
33
- namespace: {
34
- type: "string",
35
- description: "Namespace for the key. Defaults to 'default'.",
36
- },
37
- translations: {
38
- type: "object",
39
- description: "Translations to update. Keys are language codes, values are translated text. Include source language to update sourceText.",
40
- },
33
+ k: { type: "string" },
34
+ ns: { type: "string" },
35
+ l: { type: "string" },
36
+ t: { type: "string" },
37
+ s: { type: "boolean" },
38
+ st: { type: "string" },
41
39
  },
42
- required: ["key", "translations"],
40
+ required: ["k", "l", "t"],
43
41
  },
44
42
  },
45
43
  },
46
- required: ["project", "keys"],
44
+ required: ["project", "t"],
47
45
  },
48
46
  },
49
47
  execute: (client, args) => executeTool(args, inputSchema, async (input, { workspaceId, projectSlug }) => {
50
- // First, get project info to determine source language
51
- const projectInfo = await client.mcp.getProject.query({
52
- orgSlug: workspaceId,
53
- projectSlug,
54
- });
55
- const sourceLanguage = projectInfo.sourceLanguage;
56
- // Flatten and map to compact format expected by API
57
- // t: array of updates { k, n, ns, l, t, s, st }
58
- const compactUpdates = [];
59
- for (const k of input.keys) {
60
- for (const [lang, text] of Object.entries(k.translations)) {
61
- const isSourceLanguage = lang === sourceLanguage;
62
- compactUpdates.push({
63
- k: k.key, // Identifier
64
- n: k.key, // Name
65
- ns: k.namespace || "default",
66
- l: lang,
67
- t: text,
68
- s: isSourceLanguage, // Explicitly mark source language updates
69
- st: "approved", // Status for approved updates (used by AI approval flow)
70
- });
71
- }
72
- }
73
48
  const result = await client.mcp.updateKeys.mutate({
74
49
  orgSlug: workspaceId,
75
50
  projectSlug,
76
- t: compactUpdates,
51
+ t: input.t.map((item) => ({
52
+ k: item.k,
53
+ ns: item.ns || "default",
54
+ l: item.l,
55
+ t: item.t,
56
+ s: item.s,
57
+ st: item.st,
58
+ })),
77
59
  });
78
60
  return success({
79
61
  success: true,
@@ -1 +1 @@
1
- {"version":3,"file":"updateKeys.js","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateKeys.js","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,KAAK,CACR,CAAC,CAAC,MAAM,CAAC;QACP,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACzB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC1B,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,qLAAqL;QACvL,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,CAAC,EAAE;oBACD,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACrB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACrB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BACtB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACvB;wBACD,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;qBAC1B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC;SAC3B;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CACT,IAAI,EACJ,WAAW,EACX,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS;gBACxB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;IACL,CAAC,CACF;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-i18n/mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for Better i18n translation management - AI-powered translation workflow for Cursor, Claude, and other AI assistants",
5
5
  "license": "MIT",
6
6
  "type": "module",