@markus-global/cli 0.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 (177) hide show
  1. package/dist/api-client.d.ts +31 -0
  2. package/dist/api-client.d.ts.map +1 -0
  3. package/dist/api-client.js +96 -0
  4. package/dist/api-client.js.map +1 -0
  5. package/dist/commands/agent.d.ts +3 -0
  6. package/dist/commands/agent.d.ts.map +1 -0
  7. package/dist/commands/agent.js +224 -0
  8. package/dist/commands/agent.js.map +1 -0
  9. package/dist/commands/approval.d.ts +3 -0
  10. package/dist/commands/approval.d.ts.map +1 -0
  11. package/dist/commands/approval.js +59 -0
  12. package/dist/commands/approval.js.map +1 -0
  13. package/dist/commands/audit.d.ts +3 -0
  14. package/dist/commands/audit.d.ts.map +1 -0
  15. package/dist/commands/audit.js +92 -0
  16. package/dist/commands/audit.js.map +1 -0
  17. package/dist/commands/builder.d.ts +3 -0
  18. package/dist/commands/builder.d.ts.map +1 -0
  19. package/dist/commands/builder.js +85 -0
  20. package/dist/commands/builder.js.map +1 -0
  21. package/dist/commands/deliverable.d.ts +3 -0
  22. package/dist/commands/deliverable.d.ts.map +1 -0
  23. package/dist/commands/deliverable.js +127 -0
  24. package/dist/commands/deliverable.js.map +1 -0
  25. package/dist/commands/external-agent.d.ts +3 -0
  26. package/dist/commands/external-agent.d.ts.map +1 -0
  27. package/dist/commands/external-agent.js +74 -0
  28. package/dist/commands/external-agent.js.map +1 -0
  29. package/dist/commands/gateway.d.ts +3 -0
  30. package/dist/commands/gateway.d.ts.map +1 -0
  31. package/dist/commands/gateway.js +155 -0
  32. package/dist/commands/gateway.js.map +1 -0
  33. package/dist/commands/init.d.ts +6 -0
  34. package/dist/commands/init.d.ts.map +1 -0
  35. package/dist/commands/init.js +251 -0
  36. package/dist/commands/init.js.map +1 -0
  37. package/dist/commands/key.d.ts +3 -0
  38. package/dist/commands/key.d.ts.map +1 -0
  39. package/dist/commands/key.js +68 -0
  40. package/dist/commands/key.js.map +1 -0
  41. package/dist/commands/project.d.ts +3 -0
  42. package/dist/commands/project.d.ts.map +1 -0
  43. package/dist/commands/project.js +164 -0
  44. package/dist/commands/project.js.map +1 -0
  45. package/dist/commands/report.d.ts +3 -0
  46. package/dist/commands/report.d.ts.map +1 -0
  47. package/dist/commands/report.js +69 -0
  48. package/dist/commands/report.js.map +1 -0
  49. package/dist/commands/requirement.d.ts +3 -0
  50. package/dist/commands/requirement.d.ts.map +1 -0
  51. package/dist/commands/requirement.js +197 -0
  52. package/dist/commands/requirement.js.map +1 -0
  53. package/dist/commands/review.d.ts +3 -0
  54. package/dist/commands/review.d.ts.map +1 -0
  55. package/dist/commands/review.js +71 -0
  56. package/dist/commands/review.js.map +1 -0
  57. package/dist/commands/role.d.ts +3 -0
  58. package/dist/commands/role.d.ts.map +1 -0
  59. package/dist/commands/role.js +39 -0
  60. package/dist/commands/role.js.map +1 -0
  61. package/dist/commands/settings.d.ts +3 -0
  62. package/dist/commands/settings.d.ts.map +1 -0
  63. package/dist/commands/settings.js +53 -0
  64. package/dist/commands/settings.js.map +1 -0
  65. package/dist/commands/skill.d.ts +3 -0
  66. package/dist/commands/skill.d.ts.map +1 -0
  67. package/dist/commands/skill.js +136 -0
  68. package/dist/commands/skill.js.map +1 -0
  69. package/dist/commands/start.d.ts +3 -0
  70. package/dist/commands/start.d.ts.map +1 -0
  71. package/dist/commands/start.js +628 -0
  72. package/dist/commands/start.js.map +1 -0
  73. package/dist/commands/system.d.ts +3 -0
  74. package/dist/commands/system.d.ts.map +1 -0
  75. package/dist/commands/system.js +248 -0
  76. package/dist/commands/system.js.map +1 -0
  77. package/dist/commands/task.d.ts +3 -0
  78. package/dist/commands/task.d.ts.map +1 -0
  79. package/dist/commands/task.js +510 -0
  80. package/dist/commands/task.js.map +1 -0
  81. package/dist/commands/team.d.ts +3 -0
  82. package/dist/commands/team.d.ts.map +1 -0
  83. package/dist/commands/team.js +312 -0
  84. package/dist/commands/team.js.map +1 -0
  85. package/dist/commands/template.d.ts +3 -0
  86. package/dist/commands/template.d.ts.map +1 -0
  87. package/dist/commands/template.js +77 -0
  88. package/dist/commands/template.js.map +1 -0
  89. package/dist/commands/user.d.ts +3 -0
  90. package/dist/commands/user.d.ts.map +1 -0
  91. package/dist/commands/user.js +68 -0
  92. package/dist/commands/user.js.map +1 -0
  93. package/dist/index.d.ts +3 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +96 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/markus.mjs +82359 -0
  98. package/dist/output.d.ts +31 -0
  99. package/dist/output.d.ts.map +1 -0
  100. package/dist/output.js +121 -0
  101. package/dist/output.js.map +1 -0
  102. package/dist/paths.d.ts +20 -0
  103. package/dist/paths.d.ts.map +1 -0
  104. package/dist/paths.js +61 -0
  105. package/dist/paths.js.map +1 -0
  106. package/dist/web-ui/assets/index-Bcc58A3R.css +1 -0
  107. package/dist/web-ui/assets/index-CP5PJ1Oz.js +61 -0
  108. package/dist/web-ui/index.html +20 -0
  109. package/dist/web-ui/logo.png +0 -0
  110. package/package.json +37 -0
  111. package/templates/openclaw-markus-skill/AGENTS.md +163 -0
  112. package/templates/openclaw-markus-skill/TOOLS.md +155 -0
  113. package/templates/openclaw-markus-skill/config.json5 +44 -0
  114. package/templates/openclaw-markus-skill/heartbeat.md +45 -0
  115. package/templates/roles/SHARED.md +383 -0
  116. package/templates/roles/agent-father/ROLE.md +42 -0
  117. package/templates/roles/content-writer/ROLE.md +28 -0
  118. package/templates/roles/developer/HEARTBEAT.md +8 -0
  119. package/templates/roles/developer/POLICIES.md +31 -0
  120. package/templates/roles/developer/ROLE.md +23 -0
  121. package/templates/roles/devops/ROLE.md +28 -0
  122. package/templates/roles/finance/ROLE.md +16 -0
  123. package/templates/roles/hr/ROLE.md +17 -0
  124. package/templates/roles/marketing/ROLE.md +16 -0
  125. package/templates/roles/openclaw-developer/openclaw.md +78 -0
  126. package/templates/roles/operations/HEARTBEAT.md +10 -0
  127. package/templates/roles/operations/ROLE.md +23 -0
  128. package/templates/roles/org-manager/HEARTBEAT.md +12 -0
  129. package/templates/roles/org-manager/POLICIES.md +14 -0
  130. package/templates/roles/org-manager/ROLE.md +102 -0
  131. package/templates/roles/product-manager/HEARTBEAT.md +9 -0
  132. package/templates/roles/product-manager/ROLE.md +37 -0
  133. package/templates/roles/project-manager/ROLE.md +44 -0
  134. package/templates/roles/qa-engineer/ROLE.md +28 -0
  135. package/templates/roles/research-assistant/ROLE.md +23 -0
  136. package/templates/roles/reviewer/HEARTBEAT.md +13 -0
  137. package/templates/roles/reviewer/ROLE.md +69 -0
  138. package/templates/roles/secretary/HEARTBEAT.md +50 -0
  139. package/templates/roles/secretary/ROLE.md +148 -0
  140. package/templates/roles/skill-architect/ROLE.md +42 -0
  141. package/templates/roles/support/ROLE.md +16 -0
  142. package/templates/roles/team-factory/ROLE.md +54 -0
  143. package/templates/roles/tech-writer/ROLE.md +23 -0
  144. package/templates/skills/agent-building/SKILL.md +140 -0
  145. package/templates/skills/agent-building/skill.json +13 -0
  146. package/templates/skills/chrome-devtools/SKILL.md +257 -0
  147. package/templates/skills/chrome-devtools/skill.json +21 -0
  148. package/templates/skills/markus-admin-cli/SKILL.md +121 -0
  149. package/templates/skills/markus-admin-cli/skill.json +14 -0
  150. package/templates/skills/markus-agent-cli/SKILL.md +67 -0
  151. package/templates/skills/markus-agent-cli/skill.json +14 -0
  152. package/templates/skills/markus-cli/SKILL.md +113 -0
  153. package/templates/skills/markus-cli/skill.json +14 -0
  154. package/templates/skills/markus-hub-connector/SKILL.md +64 -0
  155. package/templates/skills/markus-hub-connector/server.mjs +321 -0
  156. package/templates/skills/markus-hub-connector/skill.json +20 -0
  157. package/templates/skills/markus-project-cli/SKILL.md +161 -0
  158. package/templates/skills/markus-project-cli/skill.json +14 -0
  159. package/templates/skills/markus-skill-cli/SKILL.md +57 -0
  160. package/templates/skills/markus-skill-cli/skill.json +14 -0
  161. package/templates/skills/markus-team-cli/SKILL.md +52 -0
  162. package/templates/skills/markus-team-cli/skill.json +14 -0
  163. package/templates/skills/self-evolution/SKILL.md +207 -0
  164. package/templates/skills/self-evolution/skill.json +14 -0
  165. package/templates/skills/skill-building/SKILL.md +172 -0
  166. package/templates/skills/skill-building/skill.json +13 -0
  167. package/templates/skills/team-building/SKILL.md +159 -0
  168. package/templates/skills/team-building/skill.json +13 -0
  169. package/templates/teams/content-team/ANNOUNCEMENT.md +10 -0
  170. package/templates/teams/content-team/NORMS.md +20 -0
  171. package/templates/teams/content-team/team.json +18 -0
  172. package/templates/teams/dev-squad/ANNOUNCEMENT.md +11 -0
  173. package/templates/teams/dev-squad/NORMS.md +22 -0
  174. package/templates/teams/dev-squad/team.json +19 -0
  175. package/templates/teams/startup-team/ANNOUNCEMENT.md +11 -0
  176. package/templates/teams/startup-team/NORMS.md +21 -0
  177. package/templates/teams/startup-team/team.json +20 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Lightweight HTTP client for talking to a running Markus API server.
3
+ * Used by all CLI commands except `start`, `init`, and `db:init`.
4
+ */
5
+ export interface ApiClientOptions {
6
+ server: string;
7
+ apiKey?: string;
8
+ }
9
+ export declare class ApiError extends Error {
10
+ readonly status: number;
11
+ readonly body: unknown;
12
+ constructor(status: number, body: unknown);
13
+ }
14
+ export declare class ApiClient {
15
+ private baseUrl;
16
+ private headers;
17
+ constructor(opts: ApiClientOptions);
18
+ get<T = unknown>(path: string, query?: Record<string, string | undefined>): Promise<T>;
19
+ post<T = unknown>(path: string, body?: unknown): Promise<T>;
20
+ put<T = unknown>(path: string, body?: unknown): Promise<T>;
21
+ patch<T = unknown>(path: string, body?: unknown): Promise<T>;
22
+ delete<T = unknown>(path: string, query?: Record<string, string | undefined>): Promise<T>;
23
+ private buildUrl;
24
+ private request;
25
+ }
26
+ /** Resolve ApiClient from commander global opts */
27
+ export declare function createClient(opts: {
28
+ server?: string;
29
+ apiKey?: string;
30
+ }): ApiClient;
31
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,QAAS,SAAQ,KAAK;aAEf,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,OAAO;gBADb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO;CAQhC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,IAAI,EAAE,gBAAgB;IAQ5B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKtF,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAO3D,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAO1D,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAO5D,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/F,OAAO,CAAC,QAAQ;YAUF,OAAO;CAqBtB;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIlF"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Lightweight HTTP client for talking to a running Markus API server.
3
+ * Used by all CLI commands except `start`, `init`, and `db:init`.
4
+ */
5
+ export class ApiError extends Error {
6
+ status;
7
+ body;
8
+ constructor(status, body) {
9
+ const msg = typeof body === 'object' && body !== null && 'error' in body
10
+ ? body.error
11
+ : JSON.stringify(body);
12
+ super(`API ${status}: ${msg}`);
13
+ this.status = status;
14
+ this.body = body;
15
+ this.name = 'ApiError';
16
+ }
17
+ }
18
+ export class ApiClient {
19
+ baseUrl;
20
+ headers;
21
+ constructor(opts) {
22
+ this.baseUrl = opts.server.replace(/\/+$/, '');
23
+ this.headers = { 'Content-Type': 'application/json' };
24
+ if (opts.apiKey) {
25
+ this.headers['Authorization'] = `Bearer ${opts.apiKey}`;
26
+ }
27
+ }
28
+ async get(path, query) {
29
+ const url = this.buildUrl(path, query);
30
+ return this.request(url, { method: 'GET' });
31
+ }
32
+ async post(path, body) {
33
+ return this.request(this.buildUrl(path), {
34
+ method: 'POST',
35
+ body: body !== undefined ? JSON.stringify(body) : undefined,
36
+ });
37
+ }
38
+ async put(path, body) {
39
+ return this.request(this.buildUrl(path), {
40
+ method: 'PUT',
41
+ body: body !== undefined ? JSON.stringify(body) : undefined,
42
+ });
43
+ }
44
+ async patch(path, body) {
45
+ return this.request(this.buildUrl(path), {
46
+ method: 'PATCH',
47
+ body: body !== undefined ? JSON.stringify(body) : undefined,
48
+ });
49
+ }
50
+ async delete(path, query) {
51
+ return this.request(this.buildUrl(path, query), { method: 'DELETE' });
52
+ }
53
+ buildUrl(path, query) {
54
+ const url = new URL(`/api${path}`, this.baseUrl);
55
+ if (query) {
56
+ for (const [k, v] of Object.entries(query)) {
57
+ if (v !== undefined)
58
+ url.searchParams.set(k, v);
59
+ }
60
+ }
61
+ return url.toString();
62
+ }
63
+ async request(url, init) {
64
+ const headers = { ...this.headers };
65
+ if (!init.body)
66
+ delete headers['Content-Type'];
67
+ let res;
68
+ try {
69
+ res = await fetch(url, { ...init, headers });
70
+ }
71
+ catch (err) {
72
+ throw new Error(`Cannot connect to Markus server at ${this.baseUrl}. Is it running? (${err})`);
73
+ }
74
+ if (!res.ok) {
75
+ let body;
76
+ try {
77
+ body = await res.json();
78
+ }
79
+ catch {
80
+ body = await res.text();
81
+ }
82
+ throw new ApiError(res.status, body);
83
+ }
84
+ const text = await res.text();
85
+ if (!text)
86
+ return undefined;
87
+ return JSON.parse(text);
88
+ }
89
+ }
90
+ /** Resolve ApiClient from commander global opts */
91
+ export function createClient(opts) {
92
+ const server = opts.server || process.env['MARKUS_API_URL'] || 'http://localhost:8056';
93
+ const apiKey = opts.apiKey || process.env['MARKUS_API_KEY'];
94
+ return new ApiClient({ server, apiKey });
95
+ }
96
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerAgentCommands(program: Command): void;
3
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAiOrD"}
@@ -0,0 +1,224 @@
1
+ import { createClient } from '../api-client.js';
2
+ import { table, detail, success, fail } from '../output.js';
3
+ export function registerAgentCommands(program) {
4
+ const agent = program.command('agent').description('Manage agents');
5
+ agent
6
+ .command('list')
7
+ .description('List all agents')
8
+ .action(async () => {
9
+ const client = createClient(program.optsWithGlobals());
10
+ const data = await client.get('/agents');
11
+ table(data.agents, [
12
+ { key: 'id', header: 'ID', width: 28 },
13
+ { key: 'name', header: 'Name', width: 20 },
14
+ { key: 'role', header: 'Role', width: 18 },
15
+ { key: 'status', header: 'Status', width: 10 },
16
+ { key: 'agentRole', header: 'Type', width: 10 },
17
+ ], { title: 'Agents' });
18
+ });
19
+ agent
20
+ .command('get <id>')
21
+ .description('Get agent details')
22
+ .action(async (id) => {
23
+ const client = createClient(program.optsWithGlobals());
24
+ const data = await client.get(`/agents/${id}`);
25
+ detail(data, { title: `Agent: ${data.name ?? id}` });
26
+ });
27
+ agent
28
+ .command('create')
29
+ .description('Create a new agent')
30
+ .requiredOption('-n, --name <name>', 'Agent name')
31
+ .requiredOption('-r, --role <role>', 'Role template name')
32
+ .option('--org <orgId>', 'Organization ID', 'default')
33
+ .option('--team <teamId>', 'Team ID')
34
+ .option('--agent-role <type>', 'Agent role (worker/manager)', 'worker')
35
+ .option('--skills <skills>', 'Comma-separated skill names')
36
+ .action(async (opts) => {
37
+ const client = createClient(program.optsWithGlobals());
38
+ const body = {
39
+ name: opts.name,
40
+ roleName: opts.role,
41
+ orgId: opts.org,
42
+ agentRole: opts.agentRole,
43
+ };
44
+ if (opts.team)
45
+ body.teamId = opts.team;
46
+ if (opts.skills)
47
+ body.skills = opts.skills.split(',').map(s => s.trim());
48
+ const data = await client.post('/agents', body);
49
+ success(`Agent created: ${data.agent.id}`, data.agent);
50
+ });
51
+ agent
52
+ .command('delete <id>')
53
+ .description('Delete an agent')
54
+ .option('--purge', 'Also delete agent files')
55
+ .action(async (id, opts) => {
56
+ const client = createClient(program.optsWithGlobals());
57
+ await client.delete(`/agents/${id}`, { purgeFiles: opts.purge ? 'true' : undefined });
58
+ success(`Agent ${id} deleted.`);
59
+ });
60
+ agent
61
+ .command('start <id>')
62
+ .description('Start an agent')
63
+ .action(async (id) => {
64
+ const client = createClient(program.optsWithGlobals());
65
+ await client.post(`/agents/${id}/start`);
66
+ success(`Agent ${id} started.`);
67
+ });
68
+ agent
69
+ .command('stop <id>')
70
+ .description('Stop an agent')
71
+ .action(async (id) => {
72
+ const client = createClient(program.optsWithGlobals());
73
+ await client.post(`/agents/${id}/stop`);
74
+ success(`Agent ${id} stopped.`);
75
+ });
76
+ agent
77
+ .command('message <id>')
78
+ .description('Send a one-shot message to an agent')
79
+ .requiredOption('-t, --text <text>', 'Message text')
80
+ .option('--sender <senderId>', 'Sender ID')
81
+ .option('--session <sessionId>', 'Session ID')
82
+ .action(async (id, opts) => {
83
+ const client = createClient(program.optsWithGlobals());
84
+ const body = { text: opts.text };
85
+ if (opts.sender)
86
+ body.senderId = opts.sender;
87
+ if (opts.session)
88
+ body.sessionId = opts.session;
89
+ const data = await client.post(`/agents/${id}/message`, body);
90
+ success(data.reply ?? '(no reply)', data);
91
+ });
92
+ agent
93
+ .command('chat <id>')
94
+ .description('Interactive chat with an agent')
95
+ .action(async (id) => {
96
+ const client = createClient(program.optsWithGlobals());
97
+ // Verify agent exists
98
+ const info = await client.get(`/agents/${id}`);
99
+ const name = info.name ?? id;
100
+ console.log(`\nChatting with ${name}. Type "quit" to exit.\n`);
101
+ const readline = await import('node:readline');
102
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
103
+ const ask = () => {
104
+ rl.question('You: ', async (input) => {
105
+ const text = input.trim();
106
+ if (text === 'quit' || text === 'exit') {
107
+ rl.close();
108
+ return;
109
+ }
110
+ if (!text) {
111
+ ask();
112
+ return;
113
+ }
114
+ try {
115
+ const data = await client.post(`/agents/${id}/message`, { text });
116
+ console.log(`\n${name}: ${data.reply ?? '(no reply)'}\n`);
117
+ }
118
+ catch (err) {
119
+ console.error(`Error: ${err}`);
120
+ }
121
+ ask();
122
+ });
123
+ };
124
+ ask();
125
+ });
126
+ agent
127
+ .command('config <id>')
128
+ .description('Update agent configuration')
129
+ .option('-n, --name <name>', 'New agent name')
130
+ .option('--agent-role <type>', 'Agent role (worker/manager)')
131
+ .option('--skills <skills>', 'Comma-separated skill names')
132
+ .option('--heartbeat <ms>', 'Heartbeat interval in milliseconds')
133
+ .action(async (id, opts) => {
134
+ const client = createClient(program.optsWithGlobals());
135
+ const body = {};
136
+ if (opts.name)
137
+ body.name = opts.name;
138
+ if (opts.agentRole)
139
+ body.agentRole = opts.agentRole;
140
+ if (opts.skills)
141
+ body.skills = opts.skills.split(',').map(s => s.trim());
142
+ if (opts.heartbeat)
143
+ body.heartbeatIntervalMs = Number(opts.heartbeat);
144
+ if (Object.keys(body).length === 0)
145
+ fail('No config options provided.');
146
+ const data = await client.patch(`/agents/${id}/config`, body);
147
+ success(`Agent ${id} config updated.`, data.config);
148
+ });
149
+ agent
150
+ .command('memory <id>')
151
+ .description('Get agent memory summary')
152
+ .action(async (id) => {
153
+ const client = createClient(program.optsWithGlobals());
154
+ const data = await client.get(`/agents/${id}/memory`);
155
+ detail(data, { title: 'Memory' });
156
+ });
157
+ agent
158
+ .command('files <id>')
159
+ .description('List agent role files')
160
+ .action(async (id) => {
161
+ const client = createClient(program.optsWithGlobals());
162
+ const data = await client.get(`/agents/${id}/files`);
163
+ detail(data.files, { title: 'Agent Files' });
164
+ });
165
+ agent
166
+ .command('skill-add <id>')
167
+ .description('Add a skill to an agent')
168
+ .requiredOption('-n, --skill-name <name>', 'Skill name')
169
+ .action(async (id, opts) => {
170
+ const client = createClient(program.optsWithGlobals());
171
+ await client.post(`/agents/${id}/skills`, { skillName: opts.skillName });
172
+ success(`Skill "${opts.skillName}" added to agent ${id}.`);
173
+ });
174
+ agent
175
+ .command('skill-remove <id>')
176
+ .description('Remove a skill from an agent')
177
+ .requiredOption('-n, --skill-name <name>', 'Skill name')
178
+ .action(async (id, opts) => {
179
+ const client = createClient(program.optsWithGlobals());
180
+ await client.delete(`/agents/${id}/skills/${opts.skillName}`);
181
+ success(`Skill "${opts.skillName}" removed from agent ${id}.`);
182
+ });
183
+ agent
184
+ .command('activities <id>')
185
+ .description('List agent activities')
186
+ .option('--type <type>', 'Filter by activity type')
187
+ .option('--limit <n>', 'Max results', '20')
188
+ .action(async (id, opts) => {
189
+ const client = createClient(program.optsWithGlobals());
190
+ const data = await client.get(`/agents/${id}/activities`, { type: opts.type, limit: opts.limit });
191
+ table(data.activities, [
192
+ { key: 'id', header: 'ID', width: 30 },
193
+ { key: 'type', header: 'Type', width: 12 },
194
+ { key: 'label', header: 'Label', width: 30 },
195
+ { key: 'startedAt', header: 'Started', width: 20 },
196
+ { key: 'success', header: 'OK', width: 5 },
197
+ ], { title: 'Activities' });
198
+ });
199
+ agent
200
+ .command('heartbeat <id>')
201
+ .description('Trigger agent heartbeat')
202
+ .action(async (id) => {
203
+ const client = createClient(program.optsWithGlobals());
204
+ await client.post(`/agents/${id}/heartbeat/trigger`);
205
+ success(`Heartbeat triggered for agent ${id}.`);
206
+ });
207
+ agent
208
+ .command('daily-report <id>')
209
+ .description('Generate agent daily report')
210
+ .action(async (id) => {
211
+ const client = createClient(program.optsWithGlobals());
212
+ await client.post(`/agents/${id}/daily-report`);
213
+ success(`Daily report generated for agent ${id}.`);
214
+ });
215
+ agent
216
+ .command('role-sync <id>')
217
+ .description('Sync agent role from template')
218
+ .action(async (id) => {
219
+ const client = createClient(program.optsWithGlobals());
220
+ const data = await client.post(`/agents/${id}/role-sync`);
221
+ success(`Role synced for agent ${id}.`, data);
222
+ });
223
+ }
224
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerApprovalCommands(program: Command): void;
3
+ //# sourceMappingURL=approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/commands/approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QA6CxD"}
@@ -0,0 +1,59 @@
1
+ import { createClient, ApiError } from '../api-client.js';
2
+ import { table, success, fail, extractRows } from '../output.js';
3
+ function parseApproved(v) {
4
+ const s = String(v).toLowerCase();
5
+ if (s === 'true' || s === '1' || s === 'yes')
6
+ return true;
7
+ if (s === 'false' || s === '0' || s === 'no')
8
+ return false;
9
+ fail('--approved must be true or false');
10
+ }
11
+ export function registerApprovalCommands(program) {
12
+ const root = program.command('approval').description('Approvals');
13
+ root
14
+ .command('list')
15
+ .option('--status <s>')
16
+ .action(async (opts, cmd) => {
17
+ const g = cmd.optsWithGlobals();
18
+ const client = createClient(g);
19
+ const out = { json: !!g.json };
20
+ try {
21
+ const data = await client.get('/approvals', opts.status ? { status: opts.status } : undefined);
22
+ const rows = extractRows(data);
23
+ table(rows, [
24
+ { key: 'id', header: 'ID', width: 28 },
25
+ { key: 'type', header: 'Type', width: 14 },
26
+ { key: 'status', header: 'Status', width: 10 },
27
+ { key: 'description', header: 'Description', width: 30 },
28
+ ], { ...out, title: 'Approvals' });
29
+ }
30
+ catch (e) {
31
+ if (e instanceof ApiError)
32
+ fail(e.message);
33
+ throw e;
34
+ }
35
+ });
36
+ root
37
+ .command('respond <id>')
38
+ .requiredOption('--approved <bool>', 'true or false')
39
+ .option('--responded-by <id>')
40
+ .action(async (id, opts, cmd) => {
41
+ const g = cmd.optsWithGlobals();
42
+ const client = createClient(g);
43
+ const out = { json: !!g.json };
44
+ const approved = parseApproved(opts.approved);
45
+ try {
46
+ const data = await client.post(`/approvals/${encodeURIComponent(id)}`, {
47
+ approved,
48
+ ...(opts.respondedBy && { respondedBy: opts.respondedBy }),
49
+ });
50
+ success('Response recorded', data, out);
51
+ }
52
+ catch (e) {
53
+ if (e instanceof ApiError)
54
+ fail(e.message);
55
+ throw e;
56
+ }
57
+ });
58
+ }
59
+ //# sourceMappingURL=approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/commands/approval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerAuditCommands(program: Command): void;
3
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAoFrD"}
@@ -0,0 +1,92 @@
1
+ import { createClient, ApiError } from '../api-client.js';
2
+ import { table, detail, fail, extractRows } from '../output.js';
3
+ export function registerAuditCommands(program) {
4
+ const root = program.command('audit').description('Audit log and usage');
5
+ root
6
+ .command('log')
7
+ .option('--org-id <id>')
8
+ .option('--agent-id <id>')
9
+ .option('--type <t>')
10
+ .option('--limit <n>')
11
+ .option('--since <iso>')
12
+ .action(async (opts, cmd) => {
13
+ const g = cmd.optsWithGlobals();
14
+ const client = createClient(g);
15
+ const out = { json: !!g.json };
16
+ try {
17
+ const data = await client.get('/audit', {
18
+ orgId: opts.orgId,
19
+ agentId: opts.agentId,
20
+ type: opts.type,
21
+ limit: opts.limit,
22
+ since: opts.since,
23
+ });
24
+ const rows = extractRows(data);
25
+ table(rows, [
26
+ { key: 'orgId', header: 'orgId', width: 7 },
27
+ { key: 'agentId', header: 'agentId', width: 28 },
28
+ { key: 'type', header: 'type', width: 11 },
29
+ { key: 'action', header: 'action', width: 16 },
30
+ { key: 'durationMs', header: 'durationMs', width: 10 },
31
+ { key: 'success', header: 'success', width: 7 },
32
+ { key: 'id', header: 'id', width: 15 },
33
+ { key: 'timestamp', header: 'timestamp', width: 24 },
34
+ ], { ...out, title: 'Audit log' });
35
+ }
36
+ catch (e) {
37
+ if (e instanceof ApiError)
38
+ fail(e.message);
39
+ throw e;
40
+ }
41
+ });
42
+ root
43
+ .command('summary')
44
+ .option('--org-id <id>')
45
+ .option('--agent-id <id>')
46
+ .action(async (opts, cmd) => {
47
+ const g = cmd.optsWithGlobals();
48
+ const client = createClient(g);
49
+ const out = { json: !!g.json };
50
+ try {
51
+ const data = await client.get('/audit/summary', {
52
+ orgId: opts.orgId,
53
+ agentId: opts.agentId,
54
+ });
55
+ detail(data, { ...out, title: 'Audit summary' });
56
+ }
57
+ catch (e) {
58
+ if (e instanceof ApiError)
59
+ fail(e.message);
60
+ throw e;
61
+ }
62
+ });
63
+ root
64
+ .command('tokens')
65
+ .option('--org-id <id>')
66
+ .action(async (opts, cmd) => {
67
+ const g = cmd.optsWithGlobals();
68
+ const client = createClient(g);
69
+ const out = { json: !!g.json };
70
+ try {
71
+ const data = await client.get('/audit/tokens', opts.orgId ? { orgId: opts.orgId } : undefined);
72
+ if (out.json) {
73
+ console.log(JSON.stringify(data, null, 2));
74
+ return;
75
+ }
76
+ if (data && typeof data === 'object' && !Array.isArray(data)) {
77
+ detail(data, { title: 'Token audit' });
78
+ }
79
+ else {
80
+ const rows = Array.isArray(data) ? data : [];
81
+ const keys = rows[0] ? Object.keys(rows[0]).slice(0, 12) : [];
82
+ table(rows, keys.map(k => ({ key: k, header: k })), { title: 'Token audit' });
83
+ }
84
+ }
85
+ catch (e) {
86
+ if (e instanceof ApiError)
87
+ fail(e.message);
88
+ throw e;
89
+ }
90
+ });
91
+ }
92
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerBuilderCommands(program: Command): void;
3
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/commands/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAyEvD"}