@defai.digital/ax-cli 1.0.1 → 1.1.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 (40) hide show
  1. package/.ax-cli/index.json +43 -0
  2. package/README.md +280 -55
  3. package/automatosx.config.json +333 -0
  4. package/dist/agent/context-manager.d.ts +76 -0
  5. package/dist/agent/context-manager.js +239 -0
  6. package/dist/agent/context-manager.js.map +1 -0
  7. package/dist/agent/grok-agent.d.ts +1 -0
  8. package/dist/agent/grok-agent.js +16 -0
  9. package/dist/agent/grok-agent.js.map +1 -1
  10. package/dist/commands/init.d.ts +5 -0
  11. package/dist/commands/init.js +106 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/update.d.ts +5 -0
  14. package/dist/commands/update.js +173 -0
  15. package/dist/commands/update.js.map +1 -0
  16. package/dist/index.js +10 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/schemas/api-schemas.d.ts +5 -554
  19. package/dist/schemas/api-schemas.js +3 -3
  20. package/dist/schemas/api-schemas.js.map +1 -1
  21. package/dist/schemas/index.d.ts +20 -262
  22. package/dist/schemas/index.js +5 -3
  23. package/dist/schemas/index.js.map +1 -1
  24. package/dist/schemas/settings-schemas.d.ts +4 -153
  25. package/dist/schemas/settings-schemas.js +1 -3
  26. package/dist/schemas/settings-schemas.js.map +1 -1
  27. package/dist/schemas/tool-schemas.d.ts +6 -6
  28. package/dist/types/project-analysis.d.ts +76 -0
  29. package/dist/types/project-analysis.js +5 -0
  30. package/dist/types/project-analysis.js.map +1 -0
  31. package/dist/utils/instruction-generator.d.ts +21 -0
  32. package/dist/utils/instruction-generator.js +233 -0
  33. package/dist/utils/instruction-generator.js.map +1 -0
  34. package/dist/utils/project-analyzer.d.ts +24 -0
  35. package/dist/utils/project-analyzer.js +411 -0
  36. package/dist/utils/project-analyzer.js.map +1 -0
  37. package/dist/utils/version.d.ts +5 -0
  38. package/dist/utils/version.js +37 -0
  39. package/dist/utils/version.js.map +1 -0
  40. package/package.json +2 -2
@@ -0,0 +1,411 @@
1
+ /**
2
+ * Project analysis utility for intelligent project setup
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ export class ProjectAnalyzer {
7
+ projectRoot;
8
+ warnings = [];
9
+ constructor(projectRoot = process.cwd()) {
10
+ this.projectRoot = projectRoot;
11
+ }
12
+ /**
13
+ * Analyze the project and extract comprehensive information
14
+ */
15
+ async analyze() {
16
+ try {
17
+ this.warnings = [];
18
+ const projectInfo = {
19
+ name: await this.detectProjectName(),
20
+ version: await this.detectVersion(),
21
+ primaryLanguage: await this.detectPrimaryLanguage(),
22
+ techStack: await this.detectTechStack(),
23
+ projectType: await this.detectProjectType(),
24
+ entryPoint: await this.detectEntryPoint(),
25
+ directories: await this.detectDirectories(),
26
+ keyFiles: await this.detectKeyFiles(),
27
+ conventions: await this.detectConventions(),
28
+ scripts: await this.detectScripts(),
29
+ packageManager: await this.detectPackageManager(),
30
+ lastAnalyzed: new Date().toISOString(),
31
+ };
32
+ return {
33
+ success: true,
34
+ projectInfo,
35
+ warnings: this.warnings.length > 0 ? this.warnings : undefined,
36
+ };
37
+ }
38
+ catch (error) {
39
+ return {
40
+ success: false,
41
+ error: error instanceof Error ? error.message : 'Unknown analysis error',
42
+ warnings: this.warnings.length > 0 ? this.warnings : undefined,
43
+ };
44
+ }
45
+ }
46
+ async detectProjectName() {
47
+ // Try package.json first
48
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
49
+ if (fs.existsSync(packageJsonPath)) {
50
+ try {
51
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
52
+ if (packageJson.name) {
53
+ return packageJson.name;
54
+ }
55
+ }
56
+ catch {
57
+ this.warnings.push('Failed to parse package.json');
58
+ }
59
+ }
60
+ // Fallback to directory name
61
+ return path.basename(this.projectRoot);
62
+ }
63
+ async detectVersion() {
64
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
65
+ if (fs.existsSync(packageJsonPath)) {
66
+ try {
67
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
68
+ return packageJson.version;
69
+ }
70
+ catch {
71
+ // Ignore
72
+ }
73
+ }
74
+ return undefined;
75
+ }
76
+ async detectPrimaryLanguage() {
77
+ // Check for config files to determine language
78
+ if (fs.existsSync(path.join(this.projectRoot, 'tsconfig.json'))) {
79
+ return 'TypeScript';
80
+ }
81
+ if (fs.existsSync(path.join(this.projectRoot, 'package.json'))) {
82
+ return 'JavaScript';
83
+ }
84
+ if (fs.existsSync(path.join(this.projectRoot, 'requirements.txt')) ||
85
+ fs.existsSync(path.join(this.projectRoot, 'setup.py')) ||
86
+ fs.existsSync(path.join(this.projectRoot, 'pyproject.toml'))) {
87
+ return 'Python';
88
+ }
89
+ if (fs.existsSync(path.join(this.projectRoot, 'go.mod'))) {
90
+ return 'Go';
91
+ }
92
+ if (fs.existsSync(path.join(this.projectRoot, 'Cargo.toml'))) {
93
+ return 'Rust';
94
+ }
95
+ return 'Unknown';
96
+ }
97
+ async detectTechStack() {
98
+ const stack = [];
99
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
100
+ if (fs.existsSync(packageJsonPath)) {
101
+ try {
102
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
103
+ const allDeps = {
104
+ ...packageJson.dependencies,
105
+ ...packageJson.devDependencies,
106
+ };
107
+ // Framework detection
108
+ if (allDeps['react'])
109
+ stack.push('React');
110
+ if (allDeps['vue'])
111
+ stack.push('Vue');
112
+ if (allDeps['@angular/core'])
113
+ stack.push('Angular');
114
+ if (allDeps['svelte'])
115
+ stack.push('Svelte');
116
+ if (allDeps['next'])
117
+ stack.push('Next.js');
118
+ if (allDeps['nuxt'])
119
+ stack.push('Nuxt');
120
+ // Backend frameworks
121
+ if (allDeps['express'])
122
+ stack.push('Express');
123
+ if (allDeps['fastify'])
124
+ stack.push('Fastify');
125
+ if (allDeps['koa'])
126
+ stack.push('Koa');
127
+ if (allDeps['@nestjs/core'])
128
+ stack.push('NestJS');
129
+ // Testing
130
+ if (allDeps['vitest'])
131
+ stack.push('Vitest');
132
+ if (allDeps['jest'])
133
+ stack.push('Jest');
134
+ if (allDeps['mocha'])
135
+ stack.push('Mocha');
136
+ if (allDeps['playwright'])
137
+ stack.push('Playwright');
138
+ if (allDeps['cypress'])
139
+ stack.push('Cypress');
140
+ // Build tools
141
+ if (allDeps['vite'])
142
+ stack.push('Vite');
143
+ if (allDeps['webpack'])
144
+ stack.push('Webpack');
145
+ if (allDeps['esbuild'])
146
+ stack.push('ESBuild');
147
+ if (allDeps['rollup'])
148
+ stack.push('Rollup');
149
+ // Validation
150
+ if (allDeps['zod'])
151
+ stack.push('Zod');
152
+ if (allDeps['yup'])
153
+ stack.push('Yup');
154
+ if (allDeps['joi'])
155
+ stack.push('Joi');
156
+ // CLI
157
+ if (allDeps['commander'])
158
+ stack.push('Commander');
159
+ if (allDeps['yargs'])
160
+ stack.push('Yargs');
161
+ if (allDeps['ink'])
162
+ stack.push('Ink');
163
+ // Database
164
+ if (allDeps['prisma'])
165
+ stack.push('Prisma');
166
+ if (allDeps['typeorm'])
167
+ stack.push('TypeORM');
168
+ if (allDeps['mongoose'])
169
+ stack.push('Mongoose');
170
+ // Runtime
171
+ if (packageJson.type === 'module')
172
+ stack.push('ESM');
173
+ }
174
+ catch {
175
+ this.warnings.push('Failed to parse package.json for tech stack');
176
+ }
177
+ }
178
+ // TypeScript detection
179
+ if (fs.existsSync(path.join(this.projectRoot, 'tsconfig.json'))) {
180
+ stack.push('TypeScript');
181
+ }
182
+ return stack;
183
+ }
184
+ async detectProjectType() {
185
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
186
+ if (fs.existsSync(packageJsonPath)) {
187
+ try {
188
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
189
+ // Check for bin field (CLI tool)
190
+ if (packageJson.bin)
191
+ return 'cli';
192
+ // Check dependencies for framework hints
193
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
194
+ if (deps['react'] || deps['vue'] || deps['@angular/core'] || deps['svelte']) {
195
+ if (deps['next'] || deps['nuxt'])
196
+ return 'web-app-ssr';
197
+ return 'web-app';
198
+ }
199
+ if (deps['express'] || deps['fastify'] || deps['koa'] || deps['@nestjs/core']) {
200
+ return 'api';
201
+ }
202
+ // Check for library indicators
203
+ if (packageJson.main || packageJson.exports) {
204
+ return 'library';
205
+ }
206
+ }
207
+ catch {
208
+ // Ignore
209
+ }
210
+ }
211
+ return 'application';
212
+ }
213
+ async detectEntryPoint() {
214
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
215
+ if (fs.existsSync(packageJsonPath)) {
216
+ try {
217
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
218
+ // CLI tools
219
+ if (packageJson.bin) {
220
+ if (typeof packageJson.bin === 'string') {
221
+ return packageJson.bin;
222
+ }
223
+ // Get first bin entry
224
+ return Object.values(packageJson.bin)[0];
225
+ }
226
+ // Libraries
227
+ if (packageJson.main)
228
+ return packageJson.main;
229
+ if (packageJson.exports) {
230
+ if (typeof packageJson.exports === 'string')
231
+ return packageJson.exports;
232
+ if (packageJson.exports['.']) {
233
+ const mainExport = packageJson.exports['.'];
234
+ if (typeof mainExport === 'string')
235
+ return mainExport;
236
+ if (mainExport.import)
237
+ return mainExport.import;
238
+ if (mainExport.require)
239
+ return mainExport.require;
240
+ }
241
+ }
242
+ }
243
+ catch {
244
+ // Ignore
245
+ }
246
+ }
247
+ // Common entry points
248
+ const commonEntries = ['src/index.ts', 'src/index.js', 'index.ts', 'index.js', 'src/main.ts', 'src/main.js'];
249
+ for (const entry of commonEntries) {
250
+ if (fs.existsSync(path.join(this.projectRoot, entry))) {
251
+ return entry;
252
+ }
253
+ }
254
+ return undefined;
255
+ }
256
+ async detectDirectories() {
257
+ const dirs = {};
258
+ // Source directory
259
+ const sourceDirs = ['src', 'lib', 'source'];
260
+ for (const dir of sourceDirs) {
261
+ const dirPath = path.join(this.projectRoot, dir);
262
+ if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
263
+ dirs.source = dir;
264
+ break;
265
+ }
266
+ }
267
+ // Test directory
268
+ const testDirs = ['tests', 'test', '__tests__', 'spec'];
269
+ for (const dir of testDirs) {
270
+ const dirPath = path.join(this.projectRoot, dir);
271
+ if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
272
+ dirs.tests = dir;
273
+ break;
274
+ }
275
+ }
276
+ // Config directory
277
+ const configDirs = ['config', 'configs', '.config'];
278
+ for (const dir of configDirs) {
279
+ const dirPath = path.join(this.projectRoot, dir);
280
+ if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
281
+ dirs.config = dir;
282
+ break;
283
+ }
284
+ }
285
+ // Tools directory
286
+ if (dirs.source) {
287
+ const toolsPath = path.join(this.projectRoot, dirs.source, 'tools');
288
+ if (fs.existsSync(toolsPath) && fs.statSync(toolsPath).isDirectory()) {
289
+ dirs.tools = path.join(dirs.source, 'tools');
290
+ }
291
+ }
292
+ return dirs;
293
+ }
294
+ async detectKeyFiles() {
295
+ const keyFiles = {};
296
+ const fileMap = {
297
+ 'package.json': 'Node.js package configuration',
298
+ 'tsconfig.json': 'TypeScript configuration',
299
+ 'vitest.config.ts': 'Vitest test configuration',
300
+ 'jest.config.js': 'Jest test configuration',
301
+ '.eslintrc.js': 'ESLint configuration',
302
+ '.prettierrc': 'Prettier configuration',
303
+ 'README.md': 'Project documentation',
304
+ 'CLAUDE.md': 'Claude-specific instructions',
305
+ '.ax-cli/CUSTOM.md': 'AX CLI custom instructions',
306
+ 'vite.config.ts': 'Vite build configuration',
307
+ 'webpack.config.js': 'Webpack build configuration',
308
+ };
309
+ for (const [file, description] of Object.entries(fileMap)) {
310
+ if (fs.existsSync(path.join(this.projectRoot, file))) {
311
+ keyFiles[file] = description;
312
+ }
313
+ }
314
+ return keyFiles;
315
+ }
316
+ async detectConventions() {
317
+ const conventions = {};
318
+ // Module system from package.json
319
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
320
+ if (fs.existsSync(packageJsonPath)) {
321
+ try {
322
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
323
+ conventions.moduleSystem = packageJson.type === 'module' ? 'esm' : 'commonjs';
324
+ }
325
+ catch {
326
+ // Ignore
327
+ }
328
+ }
329
+ // TypeScript config
330
+ const tsconfigPath = path.join(this.projectRoot, 'tsconfig.json');
331
+ if (fs.existsSync(tsconfigPath)) {
332
+ try {
333
+ const tsconfig = JSON.parse(fs.readFileSync(tsconfigPath, 'utf-8'));
334
+ conventions.typeChecker = 'TypeScript';
335
+ // Check for ESM extensions requirement
336
+ if (tsconfig.compilerOptions?.module === 'NodeNext' ||
337
+ tsconfig.compilerOptions?.module === 'Node16' ||
338
+ tsconfig.compilerOptions?.moduleResolution === 'NodeNext' ||
339
+ tsconfig.compilerOptions?.moduleResolution === 'Bundler') {
340
+ conventions.importExtension = '.js';
341
+ }
342
+ }
343
+ catch {
344
+ this.warnings.push('Failed to parse tsconfig.json');
345
+ }
346
+ }
347
+ // Testing framework
348
+ if (fs.existsSync(path.join(this.projectRoot, 'vitest.config.ts')) ||
349
+ fs.existsSync(path.join(this.projectRoot, 'vitest.config.js'))) {
350
+ conventions.testFramework = 'vitest';
351
+ }
352
+ else if (fs.existsSync(path.join(this.projectRoot, 'jest.config.js')) ||
353
+ fs.existsSync(path.join(this.projectRoot, 'jest.config.ts'))) {
354
+ conventions.testFramework = 'jest';
355
+ }
356
+ // Linter
357
+ if (fs.existsSync(path.join(this.projectRoot, '.eslintrc.js')) ||
358
+ fs.existsSync(path.join(this.projectRoot, '.eslintrc.json')) ||
359
+ fs.existsSync(path.join(this.projectRoot, 'eslint.config.js'))) {
360
+ conventions.linter = 'eslint';
361
+ }
362
+ // Validation library from package.json
363
+ if (fs.existsSync(packageJsonPath)) {
364
+ try {
365
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
366
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
367
+ if (deps['zod'])
368
+ conventions.validation = 'zod';
369
+ else if (deps['yup'])
370
+ conventions.validation = 'yup';
371
+ else if (deps['joi'])
372
+ conventions.validation = 'joi';
373
+ }
374
+ catch {
375
+ // Ignore
376
+ }
377
+ }
378
+ return conventions;
379
+ }
380
+ async detectScripts() {
381
+ const scripts = {};
382
+ const packageJsonPath = path.join(this.projectRoot, 'package.json');
383
+ if (fs.existsSync(packageJsonPath)) {
384
+ try {
385
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
386
+ if (packageJson.scripts) {
387
+ scripts.build = packageJson.scripts.build;
388
+ scripts.test = packageJson.scripts.test;
389
+ scripts.lint = packageJson.scripts.lint;
390
+ scripts.dev = packageJson.scripts.dev || packageJson.scripts.start;
391
+ }
392
+ }
393
+ catch {
394
+ this.warnings.push('Failed to parse scripts from package.json');
395
+ }
396
+ }
397
+ return scripts;
398
+ }
399
+ async detectPackageManager() {
400
+ if (fs.existsSync(path.join(this.projectRoot, 'bun.lockb')))
401
+ return 'bun';
402
+ if (fs.existsSync(path.join(this.projectRoot, 'pnpm-lock.yaml')))
403
+ return 'pnpm';
404
+ if (fs.existsSync(path.join(this.projectRoot, 'yarn.lock')))
405
+ return 'yarn';
406
+ if (fs.existsSync(path.join(this.projectRoot, 'package-lock.json')))
407
+ return 'npm';
408
+ return undefined;
409
+ }
410
+ }
411
+ //# sourceMappingURL=project-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-analyzer.js","sourceRoot":"","sources":["../../src/utils/project-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Get version from package.json
3
+ * This is the single source of truth for version info
4
+ */
5
+ export declare function getVersion(): string;
@@ -0,0 +1,37 @@
1
+ import { readFileSync } from 'fs';
2
+ import { join, dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = dirname(__filename);
6
+ /**
7
+ * Get version from package.json
8
+ * This is the single source of truth for version info
9
+ */
10
+ export function getVersion() {
11
+ try {
12
+ // In development: src/utils/version.ts -> ../../package.json
13
+ // In production: dist/utils/version.js -> ../../package.json
14
+ const possiblePaths = [
15
+ join(__dirname, '../../package.json'), // From src/utils or dist/utils
16
+ join(__dirname, '../package.json'), // Fallback
17
+ ];
18
+ for (const pkgPath of possiblePaths) {
19
+ try {
20
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
21
+ if (pkg.version) {
22
+ return pkg.version;
23
+ }
24
+ }
25
+ catch {
26
+ // Try next path
27
+ continue;
28
+ }
29
+ }
30
+ throw new Error('package.json not found in any expected location');
31
+ }
32
+ catch (error) {
33
+ console.error('Failed to read version from package.json:', error);
34
+ return 'unknown';
35
+ }
36
+ }
37
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,6DAA6D;QAC7D,6DAA6D;QAC7D,MAAM,aAAa,GAAG;YACpB,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAG,+BAA+B;YACvE,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAM,WAAW;SACpD,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAyB,CAAC;gBAC9E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,OAAO,GAAG,CAAC,OAAO,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;gBAChB,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defai.digital/ax-cli",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "Enterprise-Class AI Command Line Interface - Primary support for GLM (General Language Model) with multi-provider AI orchestration powered by AutomatosX.",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -42,7 +42,7 @@
42
42
  "author": "Your Name",
43
43
  "license": "MIT",
44
44
  "dependencies": {
45
- "@ax-cli/schemas": "workspace:*",
45
+ "@ax-cli/schemas": "file:./packages/schemas",
46
46
  "@modelcontextprotocol/sdk": "^1.17.0",
47
47
  "axios": "^1.7.0",
48
48
  "cfonts": "^3.3.0",