locadex 0.0.0 → 0.0.2-alpha.1

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.
Files changed (48) hide show
  1. package/.locadex-mcp.json +9 -0
  2. package/LICENSE.md +105 -0
  3. package/README.md +22 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +24 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/i18n.d.ts +2 -0
  9. package/dist/commands/i18n.d.ts.map +1 -0
  10. package/dist/commands/i18n.js +145 -0
  11. package/dist/commands/i18n.js.map +1 -0
  12. package/dist/commands/setup.d.ts +2 -0
  13. package/dist/commands/setup.d.ts.map +1 -0
  14. package/dist/commands/setup.js +90 -0
  15. package/dist/commands/setup.js.map +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +68 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/resources/docs.d.ts +4 -0
  21. package/dist/resources/docs.d.ts.map +1 -0
  22. package/dist/resources/docs.js +176 -0
  23. package/dist/resources/docs.js.map +1 -0
  24. package/dist/tools/docs.d.ts +3 -0
  25. package/dist/tools/docs.d.ts.map +1 -0
  26. package/dist/tools/docs.js +140 -0
  27. package/dist/tools/docs.js.map +1 -0
  28. package/dist/utils/claudeCode.d.ts +16 -0
  29. package/dist/utils/claudeCode.d.ts.map +1 -0
  30. package/dist/utils/claudeCode.js +114 -0
  31. package/dist/utils/claudeCode.js.map +1 -0
  32. package/dist/utils/getDocs.d.ts +10 -0
  33. package/dist/utils/getDocs.d.ts.map +1 -0
  34. package/dist/utils/getDocs.js +113 -0
  35. package/dist/utils/getDocs.js.map +1 -0
  36. package/dist/utils/getPaths.d.ts +2 -0
  37. package/dist/utils/getPaths.d.ts.map +1 -0
  38. package/dist/utils/getPaths.js +7 -0
  39. package/dist/utils/getPaths.js.map +1 -0
  40. package/dist/utils/logging.d.ts +49 -0
  41. package/dist/utils/logging.d.ts.map +1 -0
  42. package/dist/utils/logging.js +226 -0
  43. package/dist/utils/logging.js.map +1 -0
  44. package/dist/utils/mcpConfig.d.ts +10 -0
  45. package/dist/utils/mcpConfig.d.ts.map +1 -0
  46. package/dist/utils/mcpConfig.js +10 -0
  47. package/dist/utils/mcpConfig.js.map +1 -0
  48. package/package.json +67 -8
@@ -0,0 +1,49 @@
1
+ export declare function logInfo(message: string): void;
2
+ export declare function logWarning(message: string): void;
3
+ export declare function logError(message: string): void;
4
+ export declare function logSuccess(message: string): void;
5
+ export declare function logStep(message: string): void;
6
+ export declare function logMessage(message: string): void;
7
+ export declare function logErrorAndExit(message: string): void;
8
+ export declare function startCommand(message: string): void;
9
+ export declare function endCommand(message: string): void;
10
+ export declare function displayHeader(introString?: string): void;
11
+ export declare function displayProjectId(projectId: string): void;
12
+ export declare function displayResolvedPaths(resolvedPaths: [string, string][]): void;
13
+ export declare function displayCreatedConfigFile(configFilepath: string): void;
14
+ export declare function displayUpdatedConfigFile(configFilepath: string): void;
15
+ export declare function createSpinner(indicator?: 'dots' | 'timer'): {
16
+ start: (msg?: string) => void;
17
+ stop: (msg?: string, code?: number) => void;
18
+ message: (msg?: string) => void;
19
+ };
20
+ export declare function createOraSpinner(indicator?: 'dots' | 'circleHalves'): Promise<import("ora").Ora>;
21
+ export declare function promptText({ message, defaultValue, validate, }: {
22
+ message: string;
23
+ defaultValue?: string;
24
+ validate?: (value: string) => boolean | string;
25
+ }): Promise<string>;
26
+ export declare function promptSelect<T>({ message, options, defaultValue, }: {
27
+ message: string;
28
+ options: Array<{
29
+ value: T;
30
+ label: string;
31
+ hint?: string;
32
+ }>;
33
+ defaultValue?: T;
34
+ }): Promise<T>;
35
+ export declare function promptMultiSelect<T extends string>({ message, options, required, }: {
36
+ message: string;
37
+ options: Array<{
38
+ value: T;
39
+ label: string;
40
+ hint?: string;
41
+ }>;
42
+ required?: boolean;
43
+ }): Promise<T[]>;
44
+ export declare function promptConfirm({ message, defaultValue, cancelMessage, }: {
45
+ message: string;
46
+ defaultValue?: boolean;
47
+ cancelMessage?: string;
48
+ }): Promise<boolean>;
49
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAeA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,QAEtC;AACD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,QAEzC;AACD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,QAEvC;AACD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,QAEzC;AACD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,QAEtC;AACD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,QAEzC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,QAG9C;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,QAE3C;AACD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,QAEzC;AAGD,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,QAMjD;AAyBD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,QAEjD;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAKrE;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,QAE9D;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,QAE9D;AAGD,wBAAgB,aAAa,CAAC,SAAS,GAAE,MAAM,GAAG,OAAiB;eA0EhE,CAAC;cAES,CAAC,cAAe,CAAA;iBAC1B,CAAC;EA3EH;AAED,wBAAsB,gBAAgB,CACpC,SAAS,GAAE,MAAM,GAAG,cAA+B,8BAIpD;AAGD,wBAAsB,UAAU,CAAC,EAC/B,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC;CAChD,mBAkBA;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,EACpC,OAAO,EACP,OAAO,EACP,YAAY,GACb,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB,cAoBA;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,EACxD,OAAO,EACP,OAAO,EACP,QAAe,GAChB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,gBAoBA;AAED,wBAAsB,aAAa,CAAC,EAClC,OAAO,EACP,YAAmB,EACnB,aAAqC,GACtC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,oBAYA"}
@@ -0,0 +1,226 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { log, spinner, intro, outro, text, select, confirm, isCancel, cancel, multiselect, } from '@clack/prompts';
38
+ import chalk from 'chalk';
39
+ // Basic logging functions
40
+ export function logInfo(message) {
41
+ log.info(message);
42
+ }
43
+ export function logWarning(message) {
44
+ log.warn(message);
45
+ }
46
+ export function logError(message) {
47
+ log.error(message);
48
+ }
49
+ export function logSuccess(message) {
50
+ log.success(message);
51
+ }
52
+ export function logStep(message) {
53
+ log.step(message);
54
+ }
55
+ export function logMessage(message) {
56
+ log.message(message, { symbol: chalk.cyan('~') });
57
+ }
58
+ export function logErrorAndExit(message) {
59
+ log.error(message);
60
+ process.exit(1);
61
+ }
62
+ // Clack prompts
63
+ export function startCommand(message) {
64
+ intro(chalk.cyan(message));
65
+ }
66
+ export function endCommand(message) {
67
+ outro(chalk.cyan(message));
68
+ }
69
+ // GT specific logging
70
+ export function displayHeader(introString) {
71
+ displayAsciiTitle();
72
+ displayInitializingText();
73
+ if (introString) {
74
+ startCommand(introString);
75
+ }
76
+ }
77
+ function displayAsciiTitle() {
78
+ // eslint-disable-next-line no-console
79
+ console.log(chalk.cyan("\n ,ad8888ba, 888888888888 \n d8\"' `\"8b 88 \nd8' 88 \n88 88 \n88 88888 88 \nY8, 88 88 \n Y8a. .a88 88 \n `\"Y88888P\" 88 "));
80
+ }
81
+ function displayInitializingText() {
82
+ // eslint-disable-next-line no-console
83
+ console.log("\n".concat(chalk.bold.blue('General Translation, Inc.'), "\n").concat(chalk.gray('https://generaltranslation.com/docs'), "\n"));
84
+ }
85
+ export function displayProjectId(projectId) {
86
+ logMessage(chalk.gray("Project ID: ".concat(chalk.bold(projectId))));
87
+ }
88
+ export function displayResolvedPaths(resolvedPaths) {
89
+ var paths = resolvedPaths.map(function (_a) {
90
+ var key = _a[0], resolvedPath = _a[1];
91
+ return chalk.gray("'".concat(chalk.white(key), "' \u2192 '").concat(chalk.green(resolvedPath), "'"));
92
+ });
93
+ log.step("Resolved path aliases:\n".concat(paths.join('\n')));
94
+ }
95
+ export function displayCreatedConfigFile(configFilepath) {
96
+ log.success("Created config file ".concat(chalk.cyan(configFilepath)));
97
+ }
98
+ export function displayUpdatedConfigFile(configFilepath) {
99
+ log.success("Updated config file ".concat(chalk.cyan(configFilepath)));
100
+ }
101
+ // Spinner functionality
102
+ export function createSpinner(indicator) {
103
+ if (indicator === void 0) { indicator = 'timer'; }
104
+ return spinner({ indicator: indicator });
105
+ }
106
+ // Spinner functionality
107
+ export function createOraSpinner() {
108
+ return __awaiter(this, arguments, void 0, function (indicator) {
109
+ var ora;
110
+ if (indicator === void 0) { indicator = 'circleHalves'; }
111
+ return __generator(this, function (_a) {
112
+ switch (_a.label) {
113
+ case 0: return [4 /*yield*/, import('ora')];
114
+ case 1:
115
+ ora = _a.sent();
116
+ return [2 /*return*/, ora.default({ spinner: indicator })];
117
+ }
118
+ });
119
+ });
120
+ }
121
+ // Input prompts
122
+ export function promptText(_a) {
123
+ return __awaiter(this, arguments, void 0, function (_b) {
124
+ var result;
125
+ var message = _b.message, defaultValue = _b.defaultValue, validate = _b.validate;
126
+ return __generator(this, function (_c) {
127
+ switch (_c.label) {
128
+ case 0: return [4 /*yield*/, text({
129
+ message: message,
130
+ placeholder: defaultValue,
131
+ validate: validate
132
+ ? function (value) {
133
+ var validation = validate(value);
134
+ return validation === true ? undefined : validation.toString();
135
+ }
136
+ : undefined,
137
+ })];
138
+ case 1:
139
+ result = _c.sent();
140
+ if (isCancel(result)) {
141
+ cancel('Operation cancelled');
142
+ process.exit(0);
143
+ }
144
+ return [2 /*return*/, result];
145
+ }
146
+ });
147
+ });
148
+ }
149
+ export function promptSelect(_a) {
150
+ return __awaiter(this, arguments, void 0, function (_b) {
151
+ var clackOptions, result;
152
+ var message = _b.message, options = _b.options, defaultValue = _b.defaultValue;
153
+ return __generator(this, function (_c) {
154
+ switch (_c.label) {
155
+ case 0:
156
+ clackOptions = options.map(function (opt) { return ({
157
+ value: opt.value,
158
+ label: opt.label,
159
+ hint: opt.hint,
160
+ }); });
161
+ return [4 /*yield*/, select({
162
+ message: message,
163
+ options: clackOptions,
164
+ initialValue: defaultValue,
165
+ })];
166
+ case 1:
167
+ result = _c.sent();
168
+ if (isCancel(result)) {
169
+ cancel('Operation cancelled');
170
+ process.exit(0);
171
+ }
172
+ return [2 /*return*/, result];
173
+ }
174
+ });
175
+ });
176
+ }
177
+ export function promptMultiSelect(_a) {
178
+ return __awaiter(this, arguments, void 0, function (_b) {
179
+ var clackOptions, result;
180
+ var message = _b.message, options = _b.options, _c = _b.required, required = _c === void 0 ? true : _c;
181
+ return __generator(this, function (_d) {
182
+ switch (_d.label) {
183
+ case 0:
184
+ clackOptions = options.map(function (opt) { return ({
185
+ value: opt.value,
186
+ label: opt.label,
187
+ hint: opt.hint,
188
+ }); });
189
+ return [4 /*yield*/, multiselect({
190
+ message: message,
191
+ options: clackOptions,
192
+ required: required,
193
+ })];
194
+ case 1:
195
+ result = _d.sent();
196
+ if (isCancel(result)) {
197
+ cancel('Operation cancelled');
198
+ process.exit(0);
199
+ }
200
+ return [2 /*return*/, result];
201
+ }
202
+ });
203
+ });
204
+ }
205
+ export function promptConfirm(_a) {
206
+ return __awaiter(this, arguments, void 0, function (_b) {
207
+ var result;
208
+ var message = _b.message, _c = _b.defaultValue, defaultValue = _c === void 0 ? true : _c, _d = _b.cancelMessage, cancelMessage = _d === void 0 ? 'Operation cancelled' : _d;
209
+ return __generator(this, function (_e) {
210
+ switch (_e.label) {
211
+ case 0: return [4 /*yield*/, confirm({
212
+ message: message,
213
+ initialValue: defaultValue,
214
+ })];
215
+ case 1:
216
+ result = _e.sent();
217
+ if (isCancel(result)) {
218
+ cancel(cancelMessage);
219
+ process.exit(0);
220
+ }
221
+ return [2 /*return*/, result];
222
+ }
223
+ });
224
+ });
225
+ }
226
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const mcpConfig: {
2
+ mcpServers: {
3
+ locadex: {
4
+ command: string;
5
+ args: string[];
6
+ env: {};
7
+ };
8
+ };
9
+ };
10
+ //# sourceMappingURL=mcpConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfig.d.ts","sourceRoot":"","sources":["../../src/utils/mcpConfig.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;CAQrB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export var mcpConfig = {
2
+ mcpServers: {
3
+ locadex: {
4
+ command: 'npx',
5
+ args: ['-y', 'locadex-mcp'],
6
+ env: {},
7
+ },
8
+ },
9
+ };
10
+ //# sourceMappingURL=mcpConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfig.js","sourceRoot":"","sources":["../../src/utils/mcpConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,SAAS,GAAG;IACvB,UAAU,EAAE;QACV,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC;YAC3B,GAAG,EAAE,EAAE;SACR;KACF;CACF,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,72 @@
1
1
  {
2
2
  "name": "locadex",
3
- "version": "0.0.0",
4
- "description": "",
5
- "main": "index.js",
3
+ "version": "0.0.2-alpha.1",
4
+ "description": "An AI agent for internationalization",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "locadex": "dist/cli.js",
9
+ "locadex-mcp": "dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "CHANGELOG.md",
14
+ ".locadex-mcp.json"
15
+ ],
16
+ "dependencies": {
17
+ "@modelcontextprotocol/sdk": "^1.12.0",
18
+ "@anthropic-ai/claude-code": "1.0.8",
19
+ "@clack/prompts": "^0.11.0",
20
+ "chalk": "^4.1.2",
21
+ "commander": "^12.1.0",
22
+ "dotenv": "^16.4.5"
23
+ },
24
+ "devDependencies": {
25
+ "@modelcontextprotocol/inspector": "^0.13.0",
26
+ "@types/jest": "^29.5.14",
27
+ "@types/node": ">=20.0.0",
28
+ "eslint": "^9.19.0",
29
+ "@typescript-eslint/eslint-plugin": "^8.19.1",
30
+ "@typescript-eslint/parser": "^8.19.1",
31
+ "prettier": "^3.4.2",
32
+ "tsx": "^4.16.5",
33
+ "typescript": "^5.7.3"
34
+ },
6
35
  "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
36
+ "patch": "npm version patch",
37
+ "build": "tsc",
38
+ "build:clean": "rm -rf dist; npm run lint && npm run build",
39
+ "dev": "npm run build && node dist/index.js",
40
+ "inspect": "npx @modelcontextprotocol/inspector node dist/index.js",
41
+ "lint": "eslint .",
42
+ "lint:fix": "eslint . --fix",
43
+ "release": "npm run build:clean && npm publish --access public",
44
+ "release:alpha": "npm run build:clean && npm publish --access public --tag alpha",
45
+ "release:beta": "npm run build:clean && npm publish --access public --tag beta",
46
+ "release:latest": "npm run build:clean && npm publish --access public --tag latest",
47
+ "test": "vitest run",
48
+ "test:watch": "vitest"
49
+ },
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "git+https://github.com/generaltranslation/gt.git"
53
+ },
54
+ "author": "General Translation, Inc.",
55
+ "license": "FSL-1.1-ALv2",
56
+ "bugs": {
57
+ "url": "https://github.com/generaltranslation/gt/issues"
8
58
  },
9
- "keywords": [],
10
- "author": "",
11
- "license": "ISC",
12
- "type": "commonjs"
59
+ "homepage": "https://generaltranslation.com/",
60
+ "compilerOptions": {},
61
+ "keywords": [
62
+ "react",
63
+ "translation",
64
+ "internationalization",
65
+ "localization",
66
+ "i18n",
67
+ "l10n",
68
+ "mcp",
69
+ "ai",
70
+ "agent"
71
+ ]
13
72
  }