@babelize/mcp 1.0.4 → 1.0.5
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/server.d.ts.map +1 -1
- package/dist/server.js +187 -59
- package/dist/server.js.map +1 -1
- package/dist/tools/babel-get.d.ts +2 -8
- package/dist/tools/babel-get.d.ts.map +1 -1
- package/dist/tools/babel-get.js +18 -26
- package/dist/tools/babel-get.js.map +1 -1
- package/dist/tools/babel-list.d.ts +2 -8
- package/dist/tools/babel-list.d.ts.map +1 -1
- package/dist/tools/babel-list.js +17 -28
- package/dist/tools/babel-list.js.map +1 -1
- package/dist/tools/engine-analyze.d.ts +2 -8
- package/dist/tools/engine-analyze.d.ts.map +1 -1
- package/dist/tools/engine-analyze.js +7 -16
- package/dist/tools/engine-analyze.js.map +1 -1
- package/dist/tools/glossary-delete.d.ts +2 -8
- package/dist/tools/glossary-delete.d.ts.map +1 -1
- package/dist/tools/glossary-delete.js +5 -14
- package/dist/tools/glossary-delete.js.map +1 -1
- package/dist/tools/glossary-export.d.ts +2 -8
- package/dist/tools/glossary-export.d.ts.map +1 -1
- package/dist/tools/glossary-export.js +6 -22
- package/dist/tools/glossary-export.js.map +1 -1
- package/dist/tools/glossary-get.d.ts +2 -8
- package/dist/tools/glossary-get.d.ts.map +1 -1
- package/dist/tools/glossary-get.js +13 -24
- package/dist/tools/glossary-get.js.map +1 -1
- package/dist/tools/glossary-import.d.ts +2 -8
- package/dist/tools/glossary-import.d.ts.map +1 -1
- package/dist/tools/glossary-import.js +11 -28
- package/dist/tools/glossary-import.js.map +1 -1
- package/dist/tools/glossary-set.d.ts +2 -8
- package/dist/tools/glossary-set.d.ts.map +1 -1
- package/dist/tools/glossary-set.js +12 -24
- package/dist/tools/glossary-set.js.map +1 -1
- package/dist/tools/invitation-send.d.ts +2 -8
- package/dist/tools/invitation-send.d.ts.map +1 -1
- package/dist/tools/invitation-send.js +10 -25
- package/dist/tools/invitation-send.js.map +1 -1
- package/dist/tools/language-codes.d.ts +2 -8
- package/dist/tools/language-codes.d.ts.map +1 -1
- package/dist/tools/language-codes.js +19 -37
- package/dist/tools/language-codes.js.map +1 -1
- package/dist/tools/language-list.d.ts +2 -8
- package/dist/tools/language-list.d.ts.map +1 -1
- package/dist/tools/language-list.js +9 -19
- package/dist/tools/language-list.js.map +1 -1
- package/dist/tools/me.d.ts +2 -8
- package/dist/tools/me.d.ts.map +1 -1
- package/dist/tools/me.js +13 -20
- package/dist/tools/me.js.map +1 -1
- package/dist/tools/member-list.d.ts +2 -8
- package/dist/tools/member-list.d.ts.map +1 -1
- package/dist/tools/member-list.js +15 -21
- package/dist/tools/member-list.js.map +1 -1
- package/dist/tools/pr-raise.d.ts +2 -8
- package/dist/tools/pr-raise.d.ts.map +1 -1
- package/dist/tools/pr-raise.js +12 -25
- package/dist/tools/pr-raise.js.map +1 -1
- package/dist/tools/project-create.d.ts +2 -8
- package/dist/tools/project-create.d.ts.map +1 -1
- package/dist/tools/project-create.js +26 -34
- package/dist/tools/project-create.js.map +1 -1
- package/dist/tools/project-download.d.ts +3 -8
- package/dist/tools/project-download.d.ts.map +1 -1
- package/dist/tools/project-download.js +15 -21
- package/dist/tools/project-download.js.map +1 -1
- package/dist/tools/project-get.d.ts +2 -8
- package/dist/tools/project-get.d.ts.map +1 -1
- package/dist/tools/project-get.js +15 -23
- package/dist/tools/project-get.js.map +1 -1
- package/dist/tools/project-language-add.d.ts +2 -8
- package/dist/tools/project-language-add.d.ts.map +1 -1
- package/dist/tools/project-language-add.js +9 -20
- package/dist/tools/project-language-add.js.map +1 -1
- package/dist/tools/project-language-remove.d.ts +2 -8
- package/dist/tools/project-language-remove.d.ts.map +1 -1
- package/dist/tools/project-language-remove.js +9 -14
- package/dist/tools/project-language-remove.js.map +1 -1
- package/dist/tools/project-list.d.ts +2 -8
- package/dist/tools/project-list.d.ts.map +1 -1
- package/dist/tools/project-list.js +21 -28
- package/dist/tools/project-list.js.map +1 -1
- package/dist/tools/project-sync.d.ts +2 -8
- package/dist/tools/project-sync.d.ts.map +1 -1
- package/dist/tools/project-sync.js +12 -21
- package/dist/tools/project-sync.js.map +1 -1
- package/dist/tools/provider-tokens-list.d.ts +2 -8
- package/dist/tools/provider-tokens-list.d.ts.map +1 -1
- package/dist/tools/provider-tokens-list.js +10 -20
- package/dist/tools/provider-tokens-list.js.map +1 -1
- package/dist/tools/run-and-wait.d.ts +19 -0
- package/dist/tools/run-and-wait.d.ts.map +1 -0
- package/dist/tools/run-and-wait.js +99 -0
- package/dist/tools/run-and-wait.js.map +1 -0
- package/dist/tools/run.d.ts +2 -8
- package/dist/tools/run.d.ts.map +1 -1
- package/dist/tools/run.js +17 -31
- package/dist/tools/run.js.map +1 -1
- package/dist/tools/scan.d.ts.map +1 -1
- package/dist/tools/scan.js +4 -7
- package/dist/tools/scan.js.map +1 -1
- package/dist/tools/status.d.ts +2 -8
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +33 -19
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/tm-export.d.ts +2 -8
- package/dist/tools/tm-export.d.ts.map +1 -1
- package/dist/tools/tm-export.js +6 -22
- package/dist/tools/tm-export.js.map +1 -1
- package/dist/tools/tm-get.d.ts +2 -8
- package/dist/tools/tm-get.d.ts.map +1 -1
- package/dist/tools/tm-get.js +21 -31
- package/dist/tools/tm-get.js.map +1 -1
- package/dist/tools/tm-set.d.ts +2 -8
- package/dist/tools/tm-set.d.ts.map +1 -1
- package/dist/tools/tm-set.js +14 -35
- package/dist/tools/tm-set.js.map +1 -1
- package/dist/utils/api.d.ts +6 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api.js +45 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/errors.d.ts +9 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +84 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/response.d.ts +8 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +17 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/utils/scan-strings.d.ts +1 -1
- package/dist/utils/scan-strings.d.ts.map +1 -1
- package/dist/utils/scan-strings.js +129 -51
- package/dist/utils/scan-strings.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/babel-get.js
CHANGED
|
@@ -1,48 +1,40 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success } from '../utils/response.js';
|
|
3
|
+
import { asString, joinArray } from '../utils/api.js';
|
|
1
4
|
export async function handleBabelGet(client, params) {
|
|
2
|
-
const { babel_id } = params;
|
|
3
5
|
try {
|
|
4
|
-
const response = await client.get(`/babels/${babel_id}`);
|
|
6
|
+
const response = await client.get(`/babels/${params.babel_id}`);
|
|
5
7
|
const b = response.data;
|
|
6
8
|
const lines = [
|
|
7
|
-
`📊 Babel Run: ${babel_id}`,
|
|
9
|
+
`📊 Babel Run: ${params.babel_id}`,
|
|
8
10
|
``,
|
|
9
|
-
` Status: ${
|
|
10
|
-
` Project ID: ${
|
|
11
|
-
` Source: ${
|
|
12
|
-
` Targets: ${
|
|
13
|
-
` Trigger: ${
|
|
14
|
-
` Created: ${
|
|
11
|
+
` Status: ${asString(b.status, 'unknown')}`,
|
|
12
|
+
` Project ID: ${asString(b.project_id)}`,
|
|
13
|
+
` Source: ${asString(b.source_language)}`,
|
|
14
|
+
` Targets: ${joinArray(b.target_languages)}`,
|
|
15
|
+
` Trigger: ${asString(b.trigger_source)}`,
|
|
16
|
+
` Created: ${asString(b.created_at)}`,
|
|
15
17
|
];
|
|
16
18
|
if (b.completed_at) {
|
|
17
|
-
lines.push(` Completed: ${
|
|
19
|
+
lines.push(` Completed: ${asString(b.completed_at)}`);
|
|
18
20
|
}
|
|
19
21
|
if (b.credits_used !== undefined && b.credits_used !== null) {
|
|
20
|
-
lines.push(` Credits: ${
|
|
22
|
+
lines.push(` Credits: ${asString(b.credits_used)}`);
|
|
21
23
|
}
|
|
22
24
|
const logs = b.logs;
|
|
23
25
|
if (logs && logs.length > 0) {
|
|
24
26
|
lines.push('', ' Logs:');
|
|
25
27
|
for (const log of logs) {
|
|
26
|
-
const step =
|
|
27
|
-
const logStatus =
|
|
28
|
-
const message =
|
|
28
|
+
const step = asString(log.step);
|
|
29
|
+
const logStatus = asString(log.status);
|
|
30
|
+
const message = asString(log.message, '');
|
|
29
31
|
lines.push(` • [${logStatus}] ${step}${message ? ` — ${message}` : ''}`);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
return
|
|
33
|
-
content: [{ type: 'text', text: lines.join('\n') }],
|
|
34
|
-
};
|
|
34
|
+
return success(lines.join('\n'));
|
|
35
35
|
}
|
|
36
36
|
catch (err) {
|
|
37
|
-
|
|
38
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
39
|
-
: err instanceof Error
|
|
40
|
-
? err.message
|
|
41
|
-
: 'Unknown error';
|
|
42
|
-
return {
|
|
43
|
-
content: [{ type: 'text', text: `❌ Failed to get babel: ${message}` }],
|
|
44
|
-
isError: true,
|
|
45
|
-
};
|
|
37
|
+
return toErrorResponse(err, 'Failed to get babel');
|
|
46
38
|
}
|
|
47
39
|
}
|
|
48
40
|
//# sourceMappingURL=babel-get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel-get.js","sourceRoot":"","sources":["../../src/tools/babel-get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"babel-get.js","sourceRoot":"","sources":["../../src/tools/babel-get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAMtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAqB,EAAE,MAAsB;IAChF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAA+B,CAAC;QAEnD,MAAM,KAAK,GAAa;YACtB,iBAAiB,MAAM,CAAC,QAAQ,EAAE;YAClC,EAAE;YACF,kBAAkB,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;YACjD,kBAAkB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;YAC1C,kBAAkB,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;YAC/C,kBAAkB,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;YACjD,kBAAkB,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE;YAC9C,kBAAkB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;SAC3C,CAAC;QAEF,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,CAAC,IAAkD,CAAC;QAClE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -9,13 +9,7 @@ export declare function handleBabelList(client: AxiosInstance, params: BabelList
|
|
|
9
9
|
type: "text";
|
|
10
10
|
text: string;
|
|
11
11
|
}[];
|
|
12
|
-
isError
|
|
13
|
-
} |
|
|
14
|
-
content: {
|
|
15
|
-
type: "text";
|
|
16
|
-
text: string;
|
|
17
|
-
}[];
|
|
18
|
-
isError: boolean;
|
|
19
|
-
}>;
|
|
12
|
+
isError: true;
|
|
13
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
20
14
|
export {};
|
|
21
15
|
//# sourceMappingURL=babel-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel-list.d.ts","sourceRoot":"","sources":["../../src/tools/babel-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"babel-list.d.ts","sourceRoot":"","sources":["../../src/tools/babel-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe;;;;;;iDA8BnF"}
|
package/dist/tools/babel-list.js
CHANGED
|
@@ -1,47 +1,36 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success, successWithData } from '../utils/response.js';
|
|
3
|
+
import { asString, joinArray, extractList } from '../utils/api.js';
|
|
1
4
|
export async function handleBabelList(client, params) {
|
|
2
|
-
const { project_id, page, limit } = params;
|
|
3
5
|
try {
|
|
4
6
|
const query = new URLSearchParams();
|
|
5
|
-
if (project_id)
|
|
6
|
-
query.set('project_id', project_id);
|
|
7
|
-
if (page)
|
|
8
|
-
query.set('page', String(page));
|
|
9
|
-
if (limit)
|
|
10
|
-
query.set('limit', String(limit));
|
|
7
|
+
if (params.project_id)
|
|
8
|
+
query.set('project_id', params.project_id);
|
|
9
|
+
if (params.page)
|
|
10
|
+
query.set('page', String(params.page));
|
|
11
|
+
if (params.limit)
|
|
12
|
+
query.set('limit', String(params.limit));
|
|
11
13
|
const qs = query.toString();
|
|
12
14
|
const url = `/babels${qs ? `?${qs}` : ''}`;
|
|
13
15
|
const response = await client.get(url);
|
|
14
|
-
const
|
|
15
|
-
const babels = Array.isArray(data) ? data : data.data ?? [];
|
|
16
|
+
const babels = extractList(response.data, 'data');
|
|
16
17
|
if (babels.length === 0) {
|
|
17
|
-
return
|
|
18
|
-
content: [{ type: 'text', text: '📊 No translation runs found.' }],
|
|
19
|
-
};
|
|
18
|
+
return success('📊 No translation runs found.');
|
|
20
19
|
}
|
|
21
20
|
const lines = [`📊 Translation Runs (${babels.length}):`, ''];
|
|
22
21
|
for (const b of babels) {
|
|
23
|
-
const id =
|
|
24
|
-
const status =
|
|
25
|
-
const targets =
|
|
26
|
-
const createdAt =
|
|
22
|
+
const id = asString(b.id);
|
|
23
|
+
const status = asString(b.status, 'unknown');
|
|
24
|
+
const targets = joinArray(b.target_languages);
|
|
25
|
+
const createdAt = asString(b.created_at);
|
|
27
26
|
lines.push(` • ${id} [${status}]`);
|
|
28
27
|
lines.push(` Targets: ${targets} | Created: ${createdAt}`);
|
|
29
28
|
lines.push('');
|
|
30
29
|
}
|
|
31
|
-
return
|
|
32
|
-
content: [{ type: 'text', text: lines.join('\n') }],
|
|
33
|
-
};
|
|
30
|
+
return successWithData(lines.join('\n'), 'babelize://babels', babels);
|
|
34
31
|
}
|
|
35
32
|
catch (err) {
|
|
36
|
-
|
|
37
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
38
|
-
: err instanceof Error
|
|
39
|
-
? err.message
|
|
40
|
-
: 'Unknown error';
|
|
41
|
-
return {
|
|
42
|
-
content: [{ type: 'text', text: `❌ Failed to list babels: ${message}` }],
|
|
43
|
-
isError: true,
|
|
44
|
-
};
|
|
33
|
+
return toErrorResponse(err, 'Failed to list babels');
|
|
45
34
|
}
|
|
46
35
|
}
|
|
47
36
|
//# sourceMappingURL=babel-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel-list.js","sourceRoot":"","sources":["../../src/tools/babel-list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"babel-list.js","sourceRoot":"","sources":["../../src/tools/babel-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAqB,EAAE,MAAuB;IAClF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA8B,CAAC;QAE/E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,wBAAwB,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,iBAAiB,SAAS,EAAE,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -8,13 +8,7 @@ export declare function handleEngineAnalyze(client: AxiosInstance, params: Engin
|
|
|
8
8
|
type: "text";
|
|
9
9
|
text: string;
|
|
10
10
|
}[];
|
|
11
|
-
isError
|
|
12
|
-
} |
|
|
13
|
-
content: {
|
|
14
|
-
type: "text";
|
|
15
|
-
text: string;
|
|
16
|
-
}[];
|
|
17
|
-
isError: boolean;
|
|
18
|
-
}>;
|
|
11
|
+
isError: true;
|
|
12
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
19
13
|
export {};
|
|
20
14
|
//# sourceMappingURL=engine-analyze.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-analyze.d.ts","sourceRoot":"","sources":["../../src/tools/engine-analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"engine-analyze.d.ts","sourceRoot":"","sources":["../../src/tools/engine-analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,mBAAmB;;;;;;iDAiB3F"}
|
|
@@ -1,29 +1,20 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success } from '../utils/response.js';
|
|
1
3
|
export async function handleEngineAnalyze(client, params) {
|
|
2
|
-
const { code, filename } = params;
|
|
3
4
|
try {
|
|
4
|
-
const body = { code };
|
|
5
|
-
if (filename)
|
|
6
|
-
body.filename = filename;
|
|
5
|
+
const body = { code: params.code };
|
|
6
|
+
if (params.filename)
|
|
7
|
+
body.filename = params.filename;
|
|
7
8
|
const response = await client.post('/engine/analyze', body);
|
|
8
9
|
const data = response.data;
|
|
9
10
|
const lines = ['🔍 Analysis Results:'];
|
|
10
11
|
for (const [key, val] of Object.entries(data)) {
|
|
11
12
|
lines.push(` ${key}: ${val !== null && val !== undefined ? String(val) : '?'}`);
|
|
12
13
|
}
|
|
13
|
-
return
|
|
14
|
-
content: [{ type: 'text', text: lines.join('\n') }],
|
|
15
|
-
};
|
|
14
|
+
return success(lines.join('\n'));
|
|
16
15
|
}
|
|
17
16
|
catch (err) {
|
|
18
|
-
|
|
19
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
20
|
-
: err instanceof Error
|
|
21
|
-
? err.message
|
|
22
|
-
: 'Unknown error';
|
|
23
|
-
return {
|
|
24
|
-
content: [{ type: 'text', text: `❌ Failed to analyze code: ${message}` }],
|
|
25
|
-
isError: true,
|
|
26
|
-
};
|
|
17
|
+
return toErrorResponse(err, 'Failed to analyze code');
|
|
27
18
|
}
|
|
28
19
|
}
|
|
29
20
|
//# sourceMappingURL=engine-analyze.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-analyze.js","sourceRoot":"","sources":["../../src/tools/engine-analyze.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine-analyze.js","sourceRoot":"","sources":["../../src/tools/engine-analyze.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAqB,EAAE,MAA2B;IAC1F,IAAI,CAAC;QACH,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAErD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;QAEtD,MAAM,KAAK,GAAa,CAAC,sBAAsB,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
|
|
@@ -8,13 +8,7 @@ export declare function handleGlossaryDelete(client: AxiosInstance, params: Glos
|
|
|
8
8
|
type: "text";
|
|
9
9
|
text: string;
|
|
10
10
|
}[];
|
|
11
|
-
isError
|
|
12
|
-
} |
|
|
13
|
-
content: {
|
|
14
|
-
type: "text";
|
|
15
|
-
text: string;
|
|
16
|
-
}[];
|
|
17
|
-
isError: boolean;
|
|
18
|
-
}>;
|
|
11
|
+
isError: true;
|
|
12
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
19
13
|
export {};
|
|
20
14
|
//# sourceMappingURL=glossary-delete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-delete.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"glossary-delete.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB;;;;;;iDAO7F"}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success } from '../utils/response.js';
|
|
1
3
|
export async function handleGlossaryDelete(client, params) {
|
|
2
|
-
const { project_id, entry_id } = params;
|
|
3
4
|
try {
|
|
4
|
-
await client.delete(`/projects/${project_id}/glossary/${entry_id}`);
|
|
5
|
-
return {
|
|
6
|
-
content: [{ type: 'text', text: `✅ Glossary entry ${entry_id} deleted.` }],
|
|
7
|
-
};
|
|
5
|
+
await client.delete(`/projects/${params.project_id}/glossary/${params.entry_id}`);
|
|
6
|
+
return success(`🗑️ Glossary entry deleted.\n Entry ID: ${params.entry_id}\n Project: ${params.project_id}`);
|
|
8
7
|
}
|
|
9
8
|
catch (err) {
|
|
10
|
-
|
|
11
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
12
|
-
: err instanceof Error
|
|
13
|
-
? err.message
|
|
14
|
-
: 'Unknown error';
|
|
15
|
-
return {
|
|
16
|
-
content: [{ type: 'text', text: `❌ Failed to delete glossary entry: ${message}` }],
|
|
17
|
-
isError: true,
|
|
18
|
-
};
|
|
9
|
+
return toErrorResponse(err, 'Failed to delete glossary entry');
|
|
19
10
|
}
|
|
20
11
|
}
|
|
21
12
|
//# sourceMappingURL=glossary-delete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-delete.js","sourceRoot":"","sources":["../../src/tools/glossary-delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glossary-delete.js","sourceRoot":"","sources":["../../src/tools/glossary-delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAqB,EAAE,MAA4B;IAC5F,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,4CAA4C,MAAM,CAAC,QAAQ,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -7,13 +7,7 @@ export declare function handleGlossaryExport(client: AxiosInstance, params: Glos
|
|
|
7
7
|
type: "text";
|
|
8
8
|
text: string;
|
|
9
9
|
}[];
|
|
10
|
-
isError
|
|
11
|
-
} |
|
|
12
|
-
content: {
|
|
13
|
-
type: "text";
|
|
14
|
-
text: string;
|
|
15
|
-
}[];
|
|
16
|
-
isError: boolean;
|
|
17
|
-
}>;
|
|
10
|
+
isError: true;
|
|
11
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
18
12
|
export {};
|
|
19
13
|
//# sourceMappingURL=glossary-export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-export.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"glossary-export.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB;;;;;;iDAS7F"}
|
|
@@ -1,29 +1,13 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success } from '../utils/response.js';
|
|
1
3
|
export async function handleGlossaryExport(client, params) {
|
|
2
|
-
const { project_id } = params;
|
|
3
4
|
try {
|
|
4
|
-
const response = await client.get(`/projects/${project_id}/glossary/export
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
const csv = typeof response.data === 'string' ? response.data : String(response.data);
|
|
8
|
-
return {
|
|
9
|
-
content: [
|
|
10
|
-
{
|
|
11
|
-
type: 'text',
|
|
12
|
-
text: `✅ Glossary CSV export for project ${project_id}:\n\n${csv}`,
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
};
|
|
5
|
+
const response = await client.get(`/projects/${params.project_id}/glossary/export`);
|
|
6
|
+
const csv = typeof response.data === 'string' ? response.data : JSON.stringify(response.data);
|
|
7
|
+
return success(`📖 Glossary CSV for project ${params.project_id}:\n\n${csv}`);
|
|
16
8
|
}
|
|
17
9
|
catch (err) {
|
|
18
|
-
|
|
19
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
20
|
-
: err instanceof Error
|
|
21
|
-
? err.message
|
|
22
|
-
: 'Unknown error';
|
|
23
|
-
return {
|
|
24
|
-
content: [{ type: 'text', text: `❌ Failed to export glossary: ${message}` }],
|
|
25
|
-
isError: true,
|
|
26
|
-
};
|
|
10
|
+
return toErrorResponse(err, 'Failed to export glossary');
|
|
27
11
|
}
|
|
28
12
|
}
|
|
29
13
|
//# sourceMappingURL=glossary-export.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-export.js","sourceRoot":"","sources":["../../src/tools/glossary-export.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glossary-export.js","sourceRoot":"","sources":["../../src/tools/glossary-export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAM/C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAqB,EAAE,MAA4B;IAC5F,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,UAAU,kBAAkB,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9F,OAAO,OAAO,CAAC,+BAA+B,MAAM,CAAC,UAAU,QAAQ,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -8,13 +8,7 @@ export declare function handleGlossaryGet(client: AxiosInstance, params: Glossar
|
|
|
8
8
|
type: "text";
|
|
9
9
|
text: string;
|
|
10
10
|
}[];
|
|
11
|
-
isError
|
|
12
|
-
} |
|
|
13
|
-
content: {
|
|
14
|
-
type: "text";
|
|
15
|
-
text: string;
|
|
16
|
-
}[];
|
|
17
|
-
isError: boolean;
|
|
18
|
-
}>;
|
|
11
|
+
isError: true;
|
|
12
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
19
13
|
export {};
|
|
20
14
|
//# sourceMappingURL=glossary-get.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-get.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"glossary-get.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,UAAU,iBAAiB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB;;;;;;iDAwCvF"}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success } from '../utils/response.js';
|
|
3
|
+
import { asString, extractList } from '../utils/api.js';
|
|
1
4
|
export async function handleGlossaryGet(client, params) {
|
|
2
|
-
const { project_id, search } = params;
|
|
3
5
|
try {
|
|
4
6
|
const searchParams = new URLSearchParams();
|
|
5
|
-
if (search)
|
|
6
|
-
searchParams.set('search', search);
|
|
7
|
+
if (params.search)
|
|
8
|
+
searchParams.set('search', params.search);
|
|
7
9
|
const query = searchParams.toString();
|
|
8
|
-
const url = `/projects/${project_id}/glossary${query ? `?${query}` : ''}`;
|
|
10
|
+
const url = `/projects/${params.project_id}/glossary${query ? `?${query}` : ''}`;
|
|
9
11
|
const response = await client.get(url);
|
|
10
|
-
const
|
|
11
|
-
const rawEntries = Array.isArray(data) ? data : data.data ?? [];
|
|
12
|
+
const rawEntries = extractList(response.data, 'entries', 'data');
|
|
12
13
|
const entries = [];
|
|
13
14
|
for (const e of rawEntries) {
|
|
14
15
|
if (e && typeof e === 'object') {
|
|
15
16
|
entries.push({
|
|
16
|
-
term:
|
|
17
|
-
type:
|
|
17
|
+
term: asString(e.term, ''),
|
|
18
|
+
type: asString(e.type, 'never_translate'),
|
|
18
19
|
translations: e.translations,
|
|
19
20
|
});
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
if (entries.length === 0) {
|
|
23
|
-
return
|
|
24
|
-
content: [{ type: 'text', text: '📖 No glossary entries found.' }],
|
|
25
|
-
};
|
|
24
|
+
return success('📖 No glossary entries found.');
|
|
26
25
|
}
|
|
27
26
|
const lines = [
|
|
28
|
-
`📖 Glossary (${entries.length} entries)${search ? ` matching "${search}"` : ''}:`,
|
|
27
|
+
`📖 Glossary (${entries.length} entries)${params.search ? ` matching "${params.search}"` : ''}:`,
|
|
29
28
|
'',
|
|
30
29
|
];
|
|
31
30
|
for (const entry of entries) {
|
|
@@ -34,20 +33,10 @@ export async function handleGlossaryGet(client, params) {
|
|
|
34
33
|
: '(never translated)';
|
|
35
34
|
lines.push(` • "${entry.term}" → ${translationStr} [${entry.type}]`);
|
|
36
35
|
}
|
|
37
|
-
return
|
|
38
|
-
content: [{ type: 'text', text: lines.join('\n') }],
|
|
39
|
-
};
|
|
36
|
+
return success(lines.join('\n'));
|
|
40
37
|
}
|
|
41
38
|
catch (err) {
|
|
42
|
-
|
|
43
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
44
|
-
: err instanceof Error
|
|
45
|
-
? err.message
|
|
46
|
-
: 'Unknown error';
|
|
47
|
-
return {
|
|
48
|
-
content: [{ type: 'text', text: `❌ Failed to get glossary: ${message}` }],
|
|
49
|
-
isError: true,
|
|
50
|
-
};
|
|
39
|
+
return toErrorResponse(err, 'Failed to get glossary');
|
|
51
40
|
}
|
|
52
41
|
}
|
|
53
42
|
//# sourceMappingURL=glossary-get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-get.js","sourceRoot":"","sources":["../../src/tools/glossary-get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glossary-get.js","sourceRoot":"","sources":["../../src/tools/glossary-get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOxD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAqB,EAAE,MAAyB;IACtF,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM;YAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,aAAa,MAAM,CAAC,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAA8B,CAAC;QAC9F,MAAM,OAAO,GAAiF,EAAE,CAAC;QACjG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC;oBACzC,YAAY,EAAE,CAAC,CAAC,YAAkD;iBACnE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,gBAAgB,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;YAChG,EAAE;SACH,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;gBACrF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/E,CAAC,CAAC,oBAAoB,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,OAAO,cAAc,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
|
|
@@ -8,13 +8,7 @@ export declare function handleGlossaryImport(client: AxiosInstance, params: Glos
|
|
|
8
8
|
type: "text";
|
|
9
9
|
text: string;
|
|
10
10
|
}[];
|
|
11
|
-
isError:
|
|
12
|
-
} |
|
|
13
|
-
content: {
|
|
14
|
-
type: "text";
|
|
15
|
-
text: string;
|
|
16
|
-
}[];
|
|
17
|
-
isError?: undefined;
|
|
18
|
-
}>;
|
|
11
|
+
isError: true;
|
|
12
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
19
13
|
export {};
|
|
20
14
|
//# sourceMappingURL=glossary-import.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-import.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"glossary-import.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB;;;;;;iDAc7F"}
|
|
@@ -1,36 +1,19 @@
|
|
|
1
|
+
import { toErrorResponse } from '../utils/errors.js';
|
|
2
|
+
import { success } from '../utils/response.js';
|
|
3
|
+
import { asString } from '../utils/api.js';
|
|
1
4
|
export async function handleGlossaryImport(client, params) {
|
|
2
|
-
const { project_id, csv } = params;
|
|
3
|
-
if (!csv.trim()) {
|
|
4
|
-
return {
|
|
5
|
-
content: [{ type: 'text', text: '❌ CSV content is required.' }],
|
|
6
|
-
isError: true,
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
5
|
try {
|
|
10
|
-
const response = await client.post(`/projects/${project_id}/glossary/import`, { csv });
|
|
6
|
+
const response = await client.post(`/projects/${params.project_id}/glossary/import`, { csv: params.csv });
|
|
11
7
|
const result = response.data;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
type: 'text',
|
|
19
|
-
text: `✅ Glossary import complete.\n Imported: ${imported}\n Skipped: ${skipped}\n ${message}`,
|
|
20
|
-
},
|
|
21
|
-
],
|
|
22
|
-
};
|
|
8
|
+
return success([
|
|
9
|
+
'📖 Glossary import complete.',
|
|
10
|
+
` Imported: ${asString(result.imported, '0')}`,
|
|
11
|
+
` Skipped: ${asString(result.skipped, '0')}`,
|
|
12
|
+
` Message: ${asString(result.message, '')}`,
|
|
13
|
+
].join('\n'));
|
|
23
14
|
}
|
|
24
15
|
catch (err) {
|
|
25
|
-
|
|
26
|
-
? (err.response?.data?.error || 'Unknown error')
|
|
27
|
-
: err instanceof Error
|
|
28
|
-
? err.message
|
|
29
|
-
: 'Unknown error';
|
|
30
|
-
return {
|
|
31
|
-
content: [{ type: 'text', text: `❌ Failed to import glossary: ${message}` }],
|
|
32
|
-
isError: true,
|
|
33
|
-
};
|
|
16
|
+
return toErrorResponse(err, 'Failed to import glossary');
|
|
34
17
|
}
|
|
35
18
|
}
|
|
36
19
|
//# sourceMappingURL=glossary-import.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-import.js","sourceRoot":"","sources":["../../src/tools/glossary-import.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glossary-import.js","sourceRoot":"","sources":["../../src/tools/glossary-import.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAqB,EAAE,MAA4B;IAC5F,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,UAAU,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1G,MAAM,MAAM,GAAG,QAAQ,CAAC,IAA+B,CAAC;QAExD,OAAO,OAAO,CAAC;YACb,8BAA8B;YAC9B,eAAe,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;YAC/C,eAAe,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YAC9C,eAAe,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -11,13 +11,7 @@ export declare function handleGlossarySet(client: AxiosInstance, params: Glossar
|
|
|
11
11
|
type: "text";
|
|
12
12
|
text: string;
|
|
13
13
|
}[];
|
|
14
|
-
isError:
|
|
15
|
-
} |
|
|
16
|
-
content: {
|
|
17
|
-
type: "text";
|
|
18
|
-
text: string;
|
|
19
|
-
}[];
|
|
20
|
-
isError?: undefined;
|
|
21
|
-
}>;
|
|
14
|
+
isError: true;
|
|
15
|
+
} | import("../utils/response.js").ToolResponse>;
|
|
22
16
|
export {};
|
|
23
17
|
//# sourceMappingURL=glossary-set.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary-set.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"glossary-set.d.ts","sourceRoot":"","sources":["../../src/tools/glossary-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,UAAU,iBAAiB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB;;;;;;iDAsDvF"}
|