@markus-global/cli 0.4.18 → 0.4.19

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/index.js CHANGED
@@ -2,7 +2,7 @@ import { resolve } from 'node:path';
2
2
  import { readFileSync, existsSync } from 'node:fs';
3
3
  import process from 'node:process';
4
4
  import { Command } from 'commander';
5
- import { APP_VERSION } from '@markus/shared';
5
+ import { APP_VERSION, checkForUpdate } from '@markus/shared';
6
6
  import { setGlobalJson } from './output.js';
7
7
  // Load .env file from project root
8
8
  const envPath = resolve(process.cwd(), '.env');
@@ -21,97 +21,111 @@ if (existsSync(envPath)) {
21
21
  }
22
22
  }
23
23
  }
24
- const program = new Command();
25
- program
26
- .name('markus')
27
- .description('Markus — AI Digital Workforce Platform CLI')
28
- .version(`v${APP_VERSION}`, '-v, --version')
29
- .option('-s, --server <url>', 'API server URL', process.env['MARKUS_API_URL'] || 'http://localhost:8056')
30
- .option('-k, --api-key <key>', 'API key for authentication')
31
- .option('--json', 'Output in JSON format')
32
- .option('-c, --config <path>', 'Path to markus.json config file')
33
- .hook('preAction', (_thisCommand, actionCommand) => {
34
- const opts = actionCommand.optsWithGlobals();
35
- if (opts.json)
36
- setGlobalJson(true);
37
- });
38
- // Lazy-load command modules to keep startup fast
39
- async function registerCommands() {
40
- // ── 1. start ───────────────────────────────────────────────────────
41
- const { registerStartCommand } = await import('./commands/start.js');
42
- registerStartCommand(program);
43
- // ── 1b. model ──────────────────────────────────────────────────────
44
- const { registerModelCommand } = await import('./commands/model.js');
45
- registerModelCommand(program);
46
- // ── 1e. models ────────────────────────────────────────────────────
47
- const { registerModelsCommand } = await import('./commands/models.js');
48
- registerModelsCommand(program);
49
- // ── 1c. doctor ──────────────────────────────────────────────────────
50
- const { registerDoctorCommand } = await import('./commands/doctor.js');
51
- registerDoctorCommand(program);
52
- // ── 1d. auth ───────────────────────────────────────────────────────
53
- const { registerAuthCommand } = await import('./commands/auth.js');
54
- registerAuthCommand(program);
55
- // ── 1f. channel ───────────────────────────────────────────────────
56
- const { registerChannelCommand } = await import('./commands/channel.js');
57
- registerChannelCommand(program);
58
- // ── 1g. gateway ───────────────────────────────────────────────────
59
- const { registerGatewayCommand } = await import('./commands/gateway.js');
60
- registerGatewayCommand(program);
61
- // ── 2. agent ───────────────────────────────────────────────────────
62
- const { registerAgentCommands } = await import('./commands/agent.js');
63
- registerAgentCommands(program);
64
- // ── 3. project (+ task, requirement, deliverable, report, review, approval)
65
- const { registerProjectCommands } = await import('./commands/project.js');
66
- const { registerTaskCommands } = await import('./commands/task.js');
67
- const { registerRequirementCommands } = await import('./commands/requirement.js');
68
- const { registerDeliverableCommands } = await import('./commands/deliverable.js');
69
- const { registerReportCommands } = await import('./commands/report.js');
70
- const { registerReviewCommands } = await import('./commands/review.js');
71
- const { registerApprovalCommands } = await import('./commands/approval.js');
72
- const projectCmd = registerProjectCommands(program);
73
- registerTaskCommands(projectCmd);
74
- registerRequirementCommands(projectCmd);
75
- registerDeliverableCommands(projectCmd);
76
- registerReportCommands(projectCmd);
77
- registerReviewCommands(projectCmd);
78
- registerApprovalCommands(projectCmd);
79
- // ── 4. team ────────────────────────────────────────────────────────
80
- const { registerTeamCommands } = await import('./commands/team.js');
81
- registerTeamCommands(program);
82
- // ── 4b. connect + install ─────────────────────────────────────────
83
- const { registerConnectCommands } = await import('./commands/connect.js');
84
- registerConnectCommands(program);
85
- const { registerInstallAgentCommands } = await import('./commands/install-agent.js');
86
- registerInstallAgentCommands(program);
87
- // ── 5. skill ───────────────────────────────────────────────────────
88
- const { registerSkillCommands } = await import('./commands/skill.js');
89
- registerSkillCommands(program);
90
- // ── 6. admin (+ system, audit, user, key, role, template, builder, gateway, external-agent, settings)
91
- const admin = program.command('admin').description('Platform administration and system controls');
92
- const { registerSystemCommands } = await import('./commands/system.js');
93
- const { registerAuditCommands } = await import('./commands/audit.js');
94
- const { registerUserCommands } = await import('./commands/user.js');
95
- const { registerKeyCommands } = await import('./commands/key.js');
96
- const { registerRoleCommands } = await import('./commands/role.js');
97
- const { registerTemplateCommands } = await import('./commands/template.js');
98
- const { registerBuilderCommands } = await import('./commands/builder.js');
99
- const { registerExternalAgentCommands } = await import('./commands/external-agent.js');
100
- const { registerSettingsCommands } = await import('./commands/settings.js');
101
- const systemCmd = registerSystemCommands(admin);
102
- registerAuditCommands(systemCmd);
103
- registerUserCommands(admin);
104
- registerKeyCommands(admin);
105
- registerRoleCommands(admin);
106
- registerTemplateCommands(admin);
107
- registerBuilderCommands(admin);
108
- registerExternalAgentCommands(admin);
109
- registerSettingsCommands(admin);
24
+ // Handle -v / --version with update check before Commander takes over
25
+ const versionArg = process.argv[2];
26
+ if (versionArg === '-v' || versionArg === '--version' || versionArg === '-V') {
27
+ console.log(`v${APP_VERSION}`);
28
+ checkForUpdate().then(info => {
29
+ if (info.updateAvailable) {
30
+ console.log(`\n \x1b[33m⬆ Update available: v${info.latestVersion}\x1b[0m`);
31
+ console.log(` Run \x1b[1mnpm i -g @markus-global/cli\x1b[0m to upgrade`);
32
+ }
33
+ process.exit(0);
34
+ }).catch(() => process.exit(0));
110
35
  }
111
- registerCommands()
112
- .then(() => program.parseAsync(process.argv))
113
- .catch(error => {
114
- console.error('Fatal error:', error);
115
- process.exit(1);
116
- });
36
+ else {
37
+ const program = new Command();
38
+ program
39
+ .name('markus')
40
+ .description('Markus — AI Digital Workforce Platform CLI')
41
+ .version(`v${APP_VERSION}`, '-v, --version')
42
+ .option('-s, --server <url>', 'API server URL', process.env['MARKUS_API_URL'] || 'http://localhost:8056')
43
+ .option('-k, --api-key <key>', 'API key for authentication')
44
+ .option('--json', 'Output in JSON format')
45
+ .option('-c, --config <path>', 'Path to markus.json config file')
46
+ .hook('preAction', (_thisCommand, actionCommand) => {
47
+ const opts = actionCommand.optsWithGlobals();
48
+ if (opts.json)
49
+ setGlobalJson(true);
50
+ });
51
+ // Lazy-load command modules to keep startup fast
52
+ async function registerCommands() {
53
+ // ── 1. start ───────────────────────────────────────────────────────
54
+ const { registerStartCommand } = await import('./commands/start.js');
55
+ registerStartCommand(program);
56
+ // ── 1b. model ──────────────────────────────────────────────────────
57
+ const { registerModelCommand } = await import('./commands/model.js');
58
+ registerModelCommand(program);
59
+ // ── 1e. models ────────────────────────────────────────────────────
60
+ const { registerModelsCommand } = await import('./commands/models.js');
61
+ registerModelsCommand(program);
62
+ // ── 1c. doctor ──────────────────────────────────────────────────────
63
+ const { registerDoctorCommand } = await import('./commands/doctor.js');
64
+ registerDoctorCommand(program);
65
+ // ── 1d. auth ───────────────────────────────────────────────────────
66
+ const { registerAuthCommand } = await import('./commands/auth.js');
67
+ registerAuthCommand(program);
68
+ // ── 1f. channel ───────────────────────────────────────────────────
69
+ const { registerChannelCommand } = await import('./commands/channel.js');
70
+ registerChannelCommand(program);
71
+ // ── 1g. gateway ───────────────────────────────────────────────────
72
+ const { registerGatewayCommand } = await import('./commands/gateway.js');
73
+ registerGatewayCommand(program);
74
+ // ── 2. agent ───────────────────────────────────────────────────────
75
+ const { registerAgentCommands } = await import('./commands/agent.js');
76
+ registerAgentCommands(program);
77
+ // ── 3. project (+ task, requirement, deliverable, report, review, approval)
78
+ const { registerProjectCommands } = await import('./commands/project.js');
79
+ const { registerTaskCommands } = await import('./commands/task.js');
80
+ const { registerRequirementCommands } = await import('./commands/requirement.js');
81
+ const { registerDeliverableCommands } = await import('./commands/deliverable.js');
82
+ const { registerReportCommands } = await import('./commands/report.js');
83
+ const { registerReviewCommands } = await import('./commands/review.js');
84
+ const { registerApprovalCommands } = await import('./commands/approval.js');
85
+ const projectCmd = registerProjectCommands(program);
86
+ registerTaskCommands(projectCmd);
87
+ registerRequirementCommands(projectCmd);
88
+ registerDeliverableCommands(projectCmd);
89
+ registerReportCommands(projectCmd);
90
+ registerReviewCommands(projectCmd);
91
+ registerApprovalCommands(projectCmd);
92
+ // ── 4. team ────────────────────────────────────────────────────────
93
+ const { registerTeamCommands } = await import('./commands/team.js');
94
+ registerTeamCommands(program);
95
+ // ── 4b. connect + install ─────────────────────────────────────────
96
+ const { registerConnectCommands } = await import('./commands/connect.js');
97
+ registerConnectCommands(program);
98
+ const { registerInstallAgentCommands } = await import('./commands/install-agent.js');
99
+ registerInstallAgentCommands(program);
100
+ // ── 5. skill ───────────────────────────────────────────────────────
101
+ const { registerSkillCommands } = await import('./commands/skill.js');
102
+ registerSkillCommands(program);
103
+ // ── 6. admin (+ system, audit, user, key, role, template, builder, gateway, external-agent, settings)
104
+ const admin = program.command('admin').description('Platform administration and system controls');
105
+ const { registerSystemCommands } = await import('./commands/system.js');
106
+ const { registerAuditCommands } = await import('./commands/audit.js');
107
+ const { registerUserCommands } = await import('./commands/user.js');
108
+ const { registerKeyCommands } = await import('./commands/key.js');
109
+ const { registerRoleCommands } = await import('./commands/role.js');
110
+ const { registerTemplateCommands } = await import('./commands/template.js');
111
+ const { registerBuilderCommands } = await import('./commands/builder.js');
112
+ const { registerExternalAgentCommands } = await import('./commands/external-agent.js');
113
+ const { registerSettingsCommands } = await import('./commands/settings.js');
114
+ const systemCmd = registerSystemCommands(admin);
115
+ registerAuditCommands(systemCmd);
116
+ registerUserCommands(admin);
117
+ registerKeyCommands(admin);
118
+ registerRoleCommands(admin);
119
+ registerTemplateCommands(admin);
120
+ registerBuilderCommands(admin);
121
+ registerExternalAgentCommands(admin);
122
+ registerSettingsCommands(admin);
123
+ }
124
+ registerCommands()
125
+ .then(() => program.parseAsync(process.argv))
126
+ .catch(error => {
127
+ console.error('Fatal error:', error);
128
+ process.exit(1);
129
+ });
130
+ } // end of version-check else block
117
131
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}