kimu-cli 0.1.1 → 1.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +47 -2
  2. package/README.md +18 -7
  3. package/bin/kimu.js +54 -47
  4. package/dist/commands/build.d.ts +3 -0
  5. package/dist/commands/build.d.ts.map +1 -0
  6. package/dist/commands/build.js +54 -0
  7. package/dist/commands/build.js.map +1 -0
  8. package/dist/commands/dev.d.ts +3 -0
  9. package/dist/commands/dev.d.ts.map +1 -0
  10. package/dist/commands/dev.js +58 -0
  11. package/dist/commands/dev.js.map +1 -0
  12. package/dist/commands/doctor.d.ts +3 -0
  13. package/dist/commands/doctor.d.ts.map +1 -0
  14. package/dist/commands/doctor.js +255 -0
  15. package/dist/commands/doctor.js.map +1 -0
  16. package/dist/commands/install.d.ts +3 -0
  17. package/dist/commands/install.d.ts.map +1 -0
  18. package/dist/commands/install.js +58 -0
  19. package/dist/commands/install.js.map +1 -0
  20. package/dist/commands/list.d.ts +3 -0
  21. package/dist/commands/list.d.ts.map +1 -0
  22. package/dist/commands/list.js +173 -0
  23. package/dist/commands/list.js.map +1 -0
  24. package/dist/commands/new.d.ts +16 -0
  25. package/dist/commands/new.d.ts.map +1 -0
  26. package/dist/commands/new.js +316 -0
  27. package/dist/commands/new.js.map +1 -0
  28. package/dist/commands/remove.d.ts +3 -0
  29. package/dist/commands/remove.d.ts.map +1 -0
  30. package/dist/commands/remove.js +133 -0
  31. package/dist/commands/remove.js.map +1 -0
  32. package/dist/commands/serve.d.ts +3 -0
  33. package/dist/commands/serve.d.ts.map +1 -0
  34. package/dist/commands/serve.js +91 -0
  35. package/dist/commands/serve.js.map +1 -0
  36. package/dist/types/cli-types.d.ts +7 -0
  37. package/dist/types/cli-types.d.ts.map +1 -1
  38. package/dist/utils/module-installer.d.ts +11 -0
  39. package/dist/utils/module-installer.d.ts.map +1 -0
  40. package/dist/utils/module-installer.js +123 -0
  41. package/dist/utils/module-installer.js.map +1 -0
  42. package/dist/utils/registry.d.ts +8 -0
  43. package/dist/utils/registry.d.ts.map +1 -0
  44. package/dist/utils/registry.js +109 -0
  45. package/dist/utils/registry.js.map +1 -0
  46. package/docs/README.md +126 -0
  47. package/docs/command-kimu.md +14 -0
  48. package/docs/commands/create.md +60 -15
  49. package/docs/commands/install.md +52 -8
  50. package/docs/commands/list.md +39 -51
  51. package/docs/commands/new.md +626 -0
  52. package/docs/configuration-files.md +192 -0
  53. package/docs/getting-started.md +386 -0
  54. package/docs/index.md +57 -27
  55. package/docs/intro.md +30 -8
  56. package/docs/quick-reference.md +335 -0
  57. package/package.json +101 -101
  58. package/templates/generators/README.md +76 -0
  59. package/templates/generators/extension/config.json +45 -0
  60. package/templates/generators/extension/templates/component.ts.template +66 -0
  61. package/templates/generators/extension/templates/style.css.template +40 -0
  62. package/templates/generators/extension/templates/view.html.template +9 -0
  63. package/templates/generators/module/config.json +35 -0
  64. package/templates/generators/module/templates/README.md.template +62 -0
  65. package/templates/generators/module/templates/module.ts.template +36 -0
  66. package/templates/generators/module/templates/service.ts.template +41 -0
  67. package/docs/command-kimu-new.md +0 -207
  68. package/docs/command-kimu-old.md +0 -51
package/CHANGELOG.md CHANGED
@@ -5,10 +5,55 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [1.0.0] - 2025-09-02
8
+ ## [0.2.0] - 2025-01-XX
9
9
 
10
10
  ### Added
11
- - Initial release of KIMU-CLI
11
+ - **Template-Based Generator System**: Complete refactoring of `kimu new` command
12
+ - **Extensible Architecture**: Add new component types via JSON configuration without code changes
13
+ - **Generator Discovery**: Automatic detection of available generators in `templates/generators/`
14
+ - **Placeholder System**: Rich placeholder support ({{name}}, {{className}}, {{camelName}}, etc.)
15
+ - **`kimu new:list`**: New command to list all available component generators
16
+ - Template configurations for `extension` and `module` generators
17
+ - Comprehensive template files with examples and documentation
18
+
19
+ ### Changed
20
+ - **Breaking**: Removed hardcoded component generation logic from `new` command
21
+ - Generators are now loaded dynamically from `templates/generators/` directory
22
+ - Improved error messages with suggestions to use `kimu new:list`
23
+ - Enhanced documentation for `kimu new` command with custom generator guide
24
+
25
+ ### Fixed
26
+ - TypeScript type safety improvements in generator system
27
+ - Proper handling of nested configuration paths in registration
28
+
29
+ ## [0.1.1] - 2025-01-13
30
+
31
+ ### Fixed
32
+ - Fixed version command reading from package.json instead of hardcoded value
33
+ - Corrected CLI_VERSION constant to read dynamically
34
+
35
+ ## [0.1.0] - 2025-01-13
36
+
37
+ ### Added
38
+ - **`kimu create`**: Project scaffolding using npm package (kimu-core)
39
+ - **`kimu new`**: Component generation (extension and module)
40
+ - **`kimu version`**: Display CLI and project versions
41
+ - **`kimu info`**: Project diagnostics and information
42
+ - Published to npm as `kimu-cli`
43
+ - Comprehensive documentation suite
44
+ - Getting started guide and quick reference
45
+
46
+ ### Features
47
+ - npm-based project creation (no git clone required)
48
+ - Automatic project configuration generation
49
+ - Extension and module generators
50
+ - Component registration in manifest files
51
+ - Colored CLI output and loading indicators
52
+
53
+ ## [0.0.1] - 2025-09-02
54
+
55
+ ### Added
56
+ - Initial release of KIMU-CLI (internal version)
12
57
  - Basic project structure and configuration
13
58
  - `version` command with detailed information
14
59
  - `info` command for project diagnostics
package/README.md CHANGED
@@ -51,24 +51,30 @@ Your application will be available at `http://localhost:5173/`
51
51
  ## Features
52
52
 
53
53
  - šŸš€ **Project Creation**: Create new KIMU applications from templates with `kimu create`
54
- - šŸ“¦ **Module Management**: Install and manage modules from kimu-modules registry (planned)
55
- - 🧩 **Extension Management**: Install and manage UI extensions (planned)
54
+ - šŸŽØ **Component Generation**: Extensible template-based system with `kimu new`
55
+ - šŸ”Œ **Custom Generators**: Add new component types via JSON configuration
56
+ - šŸ“¦ **Module Management**: Install and manage modules from kimu-modules registry (mock, real registry coming soon)
57
+ - 🧩 **Extension Management**: Install and manage UI extensions (mock, real registry coming soon)
58
+ - šŸ“‹ **Package Discovery**: List and browse available modules and extensions
56
59
  - šŸ”§ **Build Tools**: Build and serve KIMU applications with optimization (planned)
57
60
  - šŸ” **Diagnostics**: Project health checks and compatibility validation (planned)
58
- - 🌐 **Ecosystem Integration**: Discover and explore KIMU packages (planned)
59
61
 
60
62
  ## Current Status
61
63
 
62
64
  āœ… **Available Commands:**
63
- - `kimu create` - Create new KIMU projects
65
+ - `kimu create` - Create new KIMU projects from npm package
66
+ - `kimu new <type> <name>` - Generate components from templates (extension, module, etc.)
67
+ - `kimu new:list` - List all available component generators
68
+ - `kimu install module <name>` - Install KIMU modules (mock, real registry coming soon)
69
+ - `kimu install extension <name>` - Install KIMU extensions (mock, real registry coming soon)
70
+ - `kimu list modules/extensions/installed` - Browse and discover packages
64
71
  - `kimu info` - Show project information
65
72
  - `kimu version` - Show version information
66
73
  - `kimu help` - Command help system
67
74
 
68
75
  ā³ **Planned Commands:**
69
- - `kimu install/remove` - Package management
76
+ - `kimu remove` - Package removal
70
77
  - `kimu dev/build/serve` - Development workflow
71
- - `kimu list` - Browse packages
72
78
  - `kimu doctor` - Project diagnostics
73
79
 
74
80
 
@@ -101,14 +107,17 @@ If you use KIMU-CLI or want to improve it, open an issue or a pull request.
101
107
  - [Command Reference: kimu](docs/command-kimu.md)
102
108
  - [Distribution & Installation Guide](docs/distribution.md)
103
109
 
110
+
104
111
  ### Available Commands
105
112
  - [Command: create](docs/commands/create.md)
113
+ - [Command: new](docs/commands/new.md) - **Extensible template-based generator system**
114
+ - [Command: install](docs/commands/install.md) āœ… - **Install modules and extensions**
115
+ - [Command: list](docs/commands/list.md) āœ… - **Browse and discover packages**
106
116
  - [Command: info](docs/commands/info.md)
107
117
  - [Command: help](docs/commands/help.md)
108
118
  - [Command: version](docs/commands/version.md)
109
119
 
110
120
  ### Planned Commands
111
- - [Command: install](docs/commands/install.md) ā³
112
121
  - [Command: remove](docs/commands/remove.md) ā³
113
122
  - [Command: list](docs/commands/list.md) ā³
114
123
  - [Command: build](docs/commands/build.md) ā³
@@ -177,6 +186,8 @@ kimu create --help
177
186
 
178
187
  ### āœ… Available Commands
179
188
  - `kimu create <name>` - Create a new KIMU project with basic structure
189
+ - `kimu new <type> <name>` - Generate components from templates (extension, module, etc.)
190
+ - `kimu new:list` - List all available component generators
180
191
  - `kimu info` - Show information about the current KIMU project
181
192
  - `kimu version` - Show KIMU-CLI version and system information
182
193
  - `kimu help` - Show help for all commands or specific command
package/bin/kimu.js CHANGED
@@ -1,48 +1,55 @@
1
1
  #!/usr/bin/env node
2
-
3
- /**
4
- * KIMU-CLI - Official command-line interface for the KIMU framework ecosystem
5
- * Main CLI entry point
6
- */
7
-
8
- const { Command } = require('commander');
9
- const { CLI_NAME, CLI_VERSION } = require('../dist/config/constants');
10
-
11
- // Import command handlers
12
- const { setupVersionCommand } = require('../dist/commands/version');
13
- const { setupInfoCommand } = require('../dist/commands/info');
14
- const { setupHelpCommand } = require('../dist/commands/help');
15
- const { setupCreateCommand } = require('../dist/commands/create');
16
- // TODO: Import other commands as they are implemented
17
- // const { setupInstallCommand } = require('../dist/commands/install');
18
- // const { setupBuildCommand } = require('../dist/commands/build');
19
- // const { setupListCommand } = require('../dist/commands/list');
20
-
21
- const program = new Command();
22
-
23
- // Configure main program
24
- program
25
- .name(CLI_NAME)
26
- .description('Official command-line interface for the KIMU framework ecosystem')
27
- .version(CLI_VERSION, '-v, --version', 'display version number')
28
- .option('--verbose', 'enable verbose output')
29
- .helpOption('-h, --help', 'display help for command');
30
-
31
- // Setup commands
32
- setupVersionCommand(program);
33
- setupInfoCommand(program);
34
- setupHelpCommand(program);
35
- setupCreateCommand(program);
36
-
37
- // TODO: Setup other commands as they are implemented
38
- // setupInstallCommand(program);
39
- // setupBuildCommand(program);
40
- // setupListCommand(program);
41
-
42
- // Parse command line arguments
43
- program.parse(process.argv);
44
-
45
- // Show help if no command provided
46
- if (!process.argv.slice(2).length) {
47
- program.outputHelp();
48
- }
2
+
3
+ /**
4
+ * KIMU-CLI - Official command-line interface for the KIMU framework ecosystem
5
+ * Main CLI entry point
6
+ */
7
+
8
+ const { Command } = require('commander');
9
+ const { CLI_NAME, CLI_VERSION } = require('../dist/config/constants');
10
+
11
+ // Import command handlers
12
+ const { setupVersionCommand } = require('../dist/commands/version');
13
+ const { setupInfoCommand } = require('../dist/commands/info');
14
+ const { setupHelpCommand } = require('../dist/commands/help');
15
+ const { setupCreateCommand } = require('../dist/commands/create');
16
+ const { setupNewCommand } = require('../dist/commands/new');
17
+ const { setupInstallCommand } = require('../dist/commands/install');
18
+ const { setupListCommand } = require('../dist/commands/list');
19
+ const { setupRemoveCommand } = require('../dist/commands/remove');
20
+ const { setupBuildCommand } = require('../dist/commands/build');
21
+ const { setupDevCommand } = require('../dist/commands/dev');
22
+ const { setupServeCommand } = require('../dist/commands/serve');
23
+ const { setupDoctorCommand } = require('../dist/commands/doctor');
24
+
25
+ const program = new Command();
26
+
27
+ // Configure main program
28
+ program
29
+ .name(CLI_NAME)
30
+ .description('Official command-line interface for the KIMU framework ecosystem')
31
+ .version(CLI_VERSION, '-v, --version', 'display version number')
32
+ .option('--verbose', 'enable verbose output')
33
+ .helpOption('-h, --help', 'display help for command');
34
+
35
+ // Setup commands
36
+ setupVersionCommand(program);
37
+ setupInfoCommand(program);
38
+ setupHelpCommand(program);
39
+ setupCreateCommand(program);
40
+ setupNewCommand(program);
41
+ setupInstallCommand(program);
42
+ setupListCommand(program);
43
+ setupRemoveCommand(program);
44
+ setupBuildCommand(program);
45
+ setupDevCommand(program);
46
+ setupServeCommand(program);
47
+ setupDoctorCommand(program);
48
+
49
+ // Parse command line arguments
50
+ program.parse(process.argv);
51
+
52
+ // Show help if no command provided
53
+ if (!process.argv.slice(2).length) {
54
+ program.outputHelp();
55
+ }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupBuildCommand(program: Command): void;
3
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgDxD"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setupBuildCommand = setupBuildCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ora_1 = __importDefault(require("ora"));
9
+ const child_process_1 = require("child_process");
10
+ function setupBuildCommand(program) {
11
+ program
12
+ .command('build')
13
+ .description('Build your KIMU project for production')
14
+ .option('--dev', 'build in development mode')
15
+ .option('--local', 'build for local testing')
16
+ .option('--prod', 'build for production (default)')
17
+ .option('--watch', 'watch for changes and rebuild')
18
+ .option('--verbose', 'show detailed build output')
19
+ .action(async (options) => {
20
+ const spinner = (0, ora_1.default)('Building KIMU project...').start();
21
+ try {
22
+ let buildCommand = 'build';
23
+ if (options.dev) {
24
+ buildCommand = 'build:dev';
25
+ }
26
+ else if (options.local) {
27
+ buildCommand = 'build:local';
28
+ }
29
+ else if (options.prod) {
30
+ buildCommand = 'build:prod';
31
+ }
32
+ // Execute npm build script
33
+ const result = (0, child_process_1.spawnSync)('npm', ['run', buildCommand], {
34
+ stdio: options.verbose ? 'inherit' : 'pipe',
35
+ cwd: process.cwd(),
36
+ shell: true,
37
+ });
38
+ if (result.error) {
39
+ throw new Error(`Failed to execute build: ${result.error.message}`);
40
+ }
41
+ if (result.status !== 0) {
42
+ const errorOutput = result.stderr?.toString() || result.stdout?.toString() || '';
43
+ throw new Error(`Build failed with exit code ${result.status}\n${errorOutput}`);
44
+ }
45
+ spinner.succeed(chalk_1.default.green('āœ… Build completed successfully!'));
46
+ console.log(chalk_1.default.cyan('\nšŸ“¦ Build output in: dist/\n'));
47
+ }
48
+ catch (error) {
49
+ spinner.fail(chalk_1.default.red(`āŒ Build failed: ${error.message}`));
50
+ process.exit(1);
51
+ }
52
+ });
53
+ }
54
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":";;;;;AAKA,8CAgDC;AApDD,kDAA0B;AAC1B,8CAAsB;AACtB,iDAA0C;AAE1C,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC;SAC5C,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,gCAAgC,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,OAAO,CAAC;YAE3B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,YAAY,GAAG,WAAW,CAAC;YAC7B,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,YAAY,GAAG,aAAa,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,YAAY,GAAG,YAAY,CAAC;YAC9B,CAAC;YAED,2BAA2B;YAC3B,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;gBACrD,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBAC3C,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAC/D,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupDevCommand(program: Command): void;
3
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwDtD"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setupDevCommand = setupDevCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ora_1 = __importDefault(require("ora"));
9
+ const child_process_1 = require("child_process");
10
+ function setupDevCommand(program) {
11
+ program
12
+ .command('dev')
13
+ .description('Start development server with hot reload')
14
+ .option('-p, --port <port>', 'port to run the server on', '3000')
15
+ .option('-h, --host <host>', 'host to run the server on', 'localhost')
16
+ .option('--open', 'open browser automatically')
17
+ .option('--verbose', 'show detailed server output')
18
+ .action(async (options) => {
19
+ const spinner = (0, ora_1.default)('Starting development server...').start();
20
+ try {
21
+ // Execute npm dev script (vite dev server)
22
+ const devProcess = (0, child_process_1.spawn)('npm', ['run', 'dev'], {
23
+ stdio: 'inherit',
24
+ cwd: process.cwd(),
25
+ shell: true,
26
+ env: {
27
+ ...process.env,
28
+ PORT: options.port,
29
+ HOST: options.host,
30
+ },
31
+ });
32
+ spinner.succeed(chalk_1.default.green('āœ… Development server started!'));
33
+ console.log(chalk_1.default.cyan(`\nšŸš€ Server running at: http://${options.host}:${options.port}\n`));
34
+ console.log(chalk_1.default.dim('Press Ctrl+C to stop the server\n'));
35
+ devProcess.on('error', error => {
36
+ console.error(chalk_1.default.red(`āŒ Server error: ${error.message}`));
37
+ process.exit(1);
38
+ });
39
+ devProcess.on('exit', code => {
40
+ if (code !== 0 && code !== null) {
41
+ console.error(chalk_1.default.red(`āŒ Server exited with code ${code}`));
42
+ process.exit(code);
43
+ }
44
+ });
45
+ // Handle Ctrl+C
46
+ process.on('SIGINT', () => {
47
+ console.log(chalk_1.default.yellow('\n\nāš ļø Stopping development server...'));
48
+ devProcess.kill('SIGINT');
49
+ process.exit(0);
50
+ });
51
+ }
52
+ catch (error) {
53
+ spinner.fail(chalk_1.default.red(`āŒ Failed to start dev server: ${error.message}`));
54
+ process.exit(1);
55
+ }
56
+ });
57
+ }
58
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;AAKA,0CAwDC;AA5DD,kDAA0B;AAC1B,8CAAsB;AACtB,iDAAsC;AAEtC,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,WAAW,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,2CAA2C;YAC3C,MAAM,UAAU,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC9C,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,kCAAkC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,CACnE,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAE5D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC3B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC9D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,gBAAgB;YAChB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACpE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupDoctorCommand(program: Command): void;
3
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8KpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuEzD"}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.setupDoctorCommand = setupDoctorCommand;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const fs = __importStar(require("fs-extra"));
42
+ const path = __importStar(require("path"));
43
+ async function checkProjectStructure() {
44
+ const checks = [];
45
+ // Check package.json
46
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
47
+ if (await fs.pathExists(packageJsonPath)) {
48
+ checks.push({
49
+ name: 'package.json',
50
+ status: 'pass',
51
+ message: 'Found package.json',
52
+ });
53
+ }
54
+ else {
55
+ checks.push({
56
+ name: 'package.json',
57
+ status: 'fail',
58
+ message: 'package.json not found',
59
+ });
60
+ }
61
+ // Check src directory
62
+ const srcPath = path.join(process.cwd(), 'src');
63
+ if (await fs.pathExists(srcPath)) {
64
+ checks.push({
65
+ name: 'src directory',
66
+ status: 'pass',
67
+ message: 'Found src/ directory',
68
+ });
69
+ }
70
+ else {
71
+ checks.push({
72
+ name: 'src directory',
73
+ status: 'fail',
74
+ message: 'src/ directory not found',
75
+ });
76
+ }
77
+ // Check modules
78
+ const modulesPath = path.join(process.cwd(), 'src', 'modules');
79
+ if (await fs.pathExists(modulesPath)) {
80
+ const modulesManifestPath = path.join(modulesPath, 'modules-manifest.json');
81
+ if (await fs.pathExists(modulesManifestPath)) {
82
+ checks.push({
83
+ name: 'modules manifest',
84
+ status: 'pass',
85
+ message: 'Found modules-manifest.json',
86
+ });
87
+ }
88
+ else {
89
+ checks.push({
90
+ name: 'modules manifest',
91
+ status: 'warn',
92
+ message: 'modules-manifest.json not found',
93
+ });
94
+ }
95
+ }
96
+ else {
97
+ checks.push({
98
+ name: 'modules',
99
+ status: 'warn',
100
+ message: 'src/modules/ directory not found',
101
+ });
102
+ }
103
+ // Check extensions
104
+ const extensionsPath = path.join(process.cwd(), 'src', 'extensions');
105
+ if (await fs.pathExists(extensionsPath)) {
106
+ const extensionsManifestPath = path.join(extensionsPath, 'extensions-manifest.json');
107
+ if (await fs.pathExists(extensionsManifestPath)) {
108
+ checks.push({
109
+ name: 'extensions manifest',
110
+ status: 'pass',
111
+ message: 'Found extensions-manifest.json',
112
+ });
113
+ }
114
+ else {
115
+ checks.push({
116
+ name: 'extensions manifest',
117
+ status: 'warn',
118
+ message: 'extensions-manifest.json not found',
119
+ });
120
+ }
121
+ }
122
+ else {
123
+ checks.push({
124
+ name: 'extensions',
125
+ status: 'warn',
126
+ message: 'src/extensions/ directory not found',
127
+ });
128
+ }
129
+ return {
130
+ category: 'Project Structure',
131
+ checks,
132
+ };
133
+ }
134
+ async function checkDependencies() {
135
+ const checks = [];
136
+ // Check node_modules
137
+ const nodeModulesPath = path.join(process.cwd(), 'node_modules');
138
+ if (await fs.pathExists(nodeModulesPath)) {
139
+ checks.push({
140
+ name: 'node_modules',
141
+ status: 'pass',
142
+ message: 'Dependencies installed',
143
+ });
144
+ }
145
+ else {
146
+ checks.push({
147
+ name: 'node_modules',
148
+ status: 'fail',
149
+ message: 'Dependencies not installed. Run: npm install',
150
+ });
151
+ }
152
+ // Check for kimu-core
153
+ const kimuCorePath = path.join(process.cwd(), 'node_modules', 'kimu-core');
154
+ if (await fs.pathExists(kimuCorePath)) {
155
+ checks.push({
156
+ name: 'kimu-core',
157
+ status: 'pass',
158
+ message: 'kimu-core is installed',
159
+ });
160
+ }
161
+ else {
162
+ checks.push({
163
+ name: 'kimu-core',
164
+ status: 'warn',
165
+ message: 'kimu-core not found in dependencies',
166
+ });
167
+ }
168
+ return {
169
+ category: 'Dependencies',
170
+ checks,
171
+ };
172
+ }
173
+ async function checkBuildArtifacts() {
174
+ const checks = [];
175
+ // Check dist directory
176
+ const distPath = path.join(process.cwd(), 'dist');
177
+ if (await fs.pathExists(distPath)) {
178
+ checks.push({
179
+ name: 'dist directory',
180
+ status: 'pass',
181
+ message: 'Build artifacts found',
182
+ });
183
+ }
184
+ else {
185
+ checks.push({
186
+ name: 'dist directory',
187
+ status: 'warn',
188
+ message: 'Build artifacts not found. Run: kimu build',
189
+ });
190
+ }
191
+ return {
192
+ category: 'Build Artifacts',
193
+ checks,
194
+ };
195
+ }
196
+ function setupDoctorCommand(program) {
197
+ program
198
+ .command('doctor')
199
+ .description('Run diagnostics on your KIMU project')
200
+ .option('--verbose', 'show detailed diagnostic information')
201
+ .action(async (_options) => {
202
+ console.log(chalk_1.default.bold.cyan('\nšŸ„ KIMU Project Diagnostics\n'));
203
+ try {
204
+ const diagnostics = [
205
+ await checkProjectStructure(),
206
+ await checkDependencies(),
207
+ await checkBuildArtifacts(),
208
+ ];
209
+ let totalPass = 0;
210
+ let totalFail = 0;
211
+ let totalWarn = 0;
212
+ for (const diagnostic of diagnostics) {
213
+ console.log(chalk_1.default.bold(`\n${diagnostic.category}:`));
214
+ for (const check of diagnostic.checks) {
215
+ const icon = check.status === 'pass'
216
+ ? chalk_1.default.green('āœ“')
217
+ : check.status === 'fail'
218
+ ? chalk_1.default.red('āœ—')
219
+ : chalk_1.default.yellow('⚠');
220
+ const message = check.status === 'pass'
221
+ ? chalk_1.default.green(check.message)
222
+ : check.status === 'fail'
223
+ ? chalk_1.default.red(check.message)
224
+ : chalk_1.default.yellow(check.message);
225
+ console.log(` ${icon} ${check.name}: ${message}`);
226
+ if (check.status === 'pass')
227
+ totalPass++;
228
+ if (check.status === 'fail')
229
+ totalFail++;
230
+ if (check.status === 'warn')
231
+ totalWarn++;
232
+ }
233
+ }
234
+ console.log(chalk_1.default.bold.cyan('\nšŸ“Š Summary:\n'));
235
+ console.log(` ${chalk_1.default.green('āœ“')} Passed: ${totalPass}`);
236
+ console.log(` ${chalk_1.default.red('āœ—')} Failed: ${totalFail}`);
237
+ console.log(` ${chalk_1.default.yellow('⚠')} Warnings: ${totalWarn}\n`);
238
+ if (totalFail > 0) {
239
+ console.log(chalk_1.default.red('āŒ Your project has some issues. Please fix the failures above.\n'));
240
+ process.exit(1);
241
+ }
242
+ else if (totalWarn > 0) {
243
+ console.log(chalk_1.default.yellow('āš ļø Your project is mostly healthy, but has some warnings.\n'));
244
+ }
245
+ else {
246
+ console.log(chalk_1.default.green('āœ… Your project is healthy!\n'));
247
+ }
248
+ }
249
+ catch (error) {
250
+ console.error(chalk_1.default.red(`āŒ Diagnostics failed: ${error.message}\n`));
251
+ process.exit(1);
252
+ }
253
+ });
254
+ }
255
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupInstallCommand(program: Command): void;
3
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuD1D"}