@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,85 @@
1
+ import { createClient, ApiError } from '../api-client.js';
2
+ import { table, detail, success, fail, extractRows } from '../output.js';
3
+ function seg(s) {
4
+ return encodeURIComponent(s);
5
+ }
6
+ export function registerBuilderCommands(program) {
7
+ const root = program.command('builder').description('Builder artifacts');
8
+ root.command('list').action(async (_opts, cmd) => {
9
+ const g = cmd.optsWithGlobals();
10
+ const client = createClient(g);
11
+ const out = { json: !!g.json };
12
+ try {
13
+ const data = await client.get('/builder/artifacts');
14
+ const rows = extractRows(data);
15
+ table(rows, [
16
+ { key: 'name', header: 'Name', width: 24 },
17
+ { key: 'type', header: 'Type', width: 10 },
18
+ { key: 'version', header: 'Version', width: 8 },
19
+ { key: 'description', header: 'Description', width: 40 },
20
+ ], { ...out, title: 'Artifacts' });
21
+ }
22
+ catch (e) {
23
+ if (e instanceof ApiError)
24
+ fail(e.message);
25
+ throw e;
26
+ }
27
+ });
28
+ root.command('get <type> <name>').action(async (type, name, _opts, cmd) => {
29
+ const g = cmd.optsWithGlobals();
30
+ const client = createClient(g);
31
+ const out = { json: !!g.json };
32
+ try {
33
+ const data = await client.get(`/builder/artifacts/${seg(type)}/${seg(name)}`);
34
+ detail(data, { ...out, title: `${type}/${name}` });
35
+ }
36
+ catch (e) {
37
+ if (e instanceof ApiError)
38
+ fail(e.message);
39
+ throw e;
40
+ }
41
+ });
42
+ root.command('install <type> <name>').action(async (type, name, _opts, cmd) => {
43
+ const g = cmd.optsWithGlobals();
44
+ const client = createClient(g);
45
+ const out = { json: !!g.json };
46
+ try {
47
+ const data = await client.post(`/builder/artifacts/${seg(type)}/${seg(name)}/install`);
48
+ success('Installed', data, out);
49
+ }
50
+ catch (e) {
51
+ if (e instanceof ApiError)
52
+ fail(e.message);
53
+ throw e;
54
+ }
55
+ });
56
+ root.command('uninstall <type> <name>').action(async (type, name, _opts, cmd) => {
57
+ const g = cmd.optsWithGlobals();
58
+ const client = createClient(g);
59
+ const out = { json: !!g.json };
60
+ try {
61
+ const data = await client.post(`/builder/artifacts/${seg(type)}/${seg(name)}/uninstall`);
62
+ success('Uninstalled', data, out);
63
+ }
64
+ catch (e) {
65
+ if (e instanceof ApiError)
66
+ fail(e.message);
67
+ throw e;
68
+ }
69
+ });
70
+ root.command('delete <type> <name>').action(async (type, name, _opts, cmd) => {
71
+ const g = cmd.optsWithGlobals();
72
+ const client = createClient(g);
73
+ const out = { json: !!g.json };
74
+ try {
75
+ const data = await client.delete(`/builder/artifacts/${seg(type)}/${seg(name)}`);
76
+ success('Deleted', data, out);
77
+ }
78
+ catch (e) {
79
+ if (e instanceof ApiError)
80
+ fail(e.message);
81
+ throw e;
82
+ }
83
+ });
84
+ }
85
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/commands/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerDeliverableCommands(program: Command): void;
3
+ //# sourceMappingURL=deliverable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable.d.ts","sourceRoot":"","sources":["../../src/commands/deliverable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAiH3D"}
@@ -0,0 +1,127 @@
1
+ import { createClient, ApiError } from '../api-client.js';
2
+ import { table, success, fail, extractRows } from '../output.js';
3
+ export function registerDeliverableCommands(program) {
4
+ const root = program.command('deliverable').description('Manage deliverables');
5
+ root
6
+ .command('list')
7
+ .option('--query <q>')
8
+ .option('--project-id <id>')
9
+ .option('--agent-id <id>')
10
+ .option('--type <t>')
11
+ .option('--status <s>')
12
+ .option('--limit <n>')
13
+ .action(async (opts, cmd) => {
14
+ const g = cmd.optsWithGlobals();
15
+ const client = createClient(g);
16
+ const out = { json: !!g.json };
17
+ try {
18
+ const data = await client.get('/deliverables', {
19
+ query: opts.query,
20
+ projectId: opts.projectId,
21
+ agentId: opts.agentId,
22
+ type: opts.type,
23
+ status: opts.status,
24
+ limit: opts.limit,
25
+ });
26
+ const rows = extractRows(data);
27
+ table(rows, [
28
+ { key: 'id', header: 'ID', width: 28 },
29
+ { key: 'type', header: 'Type', width: 10 },
30
+ { key: 'title', header: 'Title', width: 30 },
31
+ { key: 'status', header: 'Status', width: 10 },
32
+ { key: 'agentId', header: 'Agent', width: 28 },
33
+ ], { ...out, title: `Deliverables (${data.total ?? rows.length} total)` });
34
+ }
35
+ catch (e) {
36
+ if (e instanceof ApiError)
37
+ fail(e.message);
38
+ throw e;
39
+ }
40
+ });
41
+ root
42
+ .command('create')
43
+ .requiredOption('--type <t>')
44
+ .requiredOption('--title <t>')
45
+ .option('--summary <s>')
46
+ .option('--reference <r>')
47
+ .option('--tags <csv>')
48
+ .option('--task-id <id>')
49
+ .option('--agent-id <id>')
50
+ .option('--project-id <id>')
51
+ .action(async (opts, cmd) => {
52
+ const g = cmd.optsWithGlobals();
53
+ const client = createClient(g);
54
+ const out = { json: !!g.json };
55
+ const tags = opts.tags ? String(opts.tags).split(',').map(s => s.trim()).filter(Boolean) : undefined;
56
+ try {
57
+ const body = {
58
+ type: opts.type,
59
+ title: opts.title,
60
+ ...(opts.summary !== undefined && { summary: opts.summary }),
61
+ ...(opts.reference !== undefined && { reference: opts.reference }),
62
+ ...(tags && { tags }),
63
+ ...(opts.taskId && { taskId: opts.taskId }),
64
+ ...(opts.agentId && { agentId: opts.agentId }),
65
+ ...(opts.projectId && { projectId: opts.projectId }),
66
+ };
67
+ const data = await client.post('/deliverables', body);
68
+ success('Deliverable created', data, out);
69
+ }
70
+ catch (e) {
71
+ if (e instanceof ApiError)
72
+ fail(e.message);
73
+ throw e;
74
+ }
75
+ });
76
+ root
77
+ .command('update <id>')
78
+ .option('--title <t>')
79
+ .option('--summary <s>')
80
+ .option('--reference <r>')
81
+ .option('--tags <csv>')
82
+ .option('--status <s>')
83
+ .option('--type <t>')
84
+ .action(async (id, opts, cmd) => {
85
+ const g = cmd.optsWithGlobals();
86
+ const client = createClient(g);
87
+ const out = { json: !!g.json };
88
+ const tags = opts.tags ? String(opts.tags).split(',').map(s => s.trim()).filter(Boolean) : undefined;
89
+ const body = {};
90
+ if (opts.title !== undefined)
91
+ body['title'] = opts.title;
92
+ if (opts.summary !== undefined)
93
+ body['summary'] = opts.summary;
94
+ if (opts.reference !== undefined)
95
+ body['reference'] = opts.reference;
96
+ if (tags)
97
+ body['tags'] = tags;
98
+ if (opts.status !== undefined)
99
+ body['status'] = opts.status;
100
+ if (opts.type !== undefined)
101
+ body['type'] = opts.type;
102
+ try {
103
+ const data = await client.put(`/deliverables/${id}`, body);
104
+ success('Deliverable updated', data, out);
105
+ }
106
+ catch (e) {
107
+ if (e instanceof ApiError)
108
+ fail(e.message);
109
+ throw e;
110
+ }
111
+ });
112
+ root.command('delete <id>').action(async (id, _opts, cmd) => {
113
+ const g = cmd.optsWithGlobals();
114
+ const client = createClient(g);
115
+ const out = { json: !!g.json };
116
+ try {
117
+ const data = await client.delete(`/deliverables/${id}`);
118
+ success('Deliverable deleted', data, out);
119
+ }
120
+ catch (e) {
121
+ if (e instanceof ApiError)
122
+ fail(e.message);
123
+ throw e;
124
+ }
125
+ });
126
+ }
127
+ //# sourceMappingURL=deliverable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable.js","sourceRoot":"","sources":["../../src/commands/deliverable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerExternalAgentCommands(program: Command): void;
3
+ //# sourceMappingURL=external-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-agent.d.ts","sourceRoot":"","sources":["../../src/commands/external-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,QAsE7D"}
@@ -0,0 +1,74 @@
1
+ import { createClient, ApiError } from '../api-client.js';
2
+ import { table, success, fail, extractRows } from '../output.js';
3
+ export function registerExternalAgentCommands(program) {
4
+ const root = program.command('external-agent').description('External agents');
5
+ root
6
+ .command('list')
7
+ .option('--org-id <id>')
8
+ .action(async (opts, cmd) => {
9
+ const g = cmd.optsWithGlobals();
10
+ const client = createClient(g);
11
+ const out = { json: !!g.json };
12
+ try {
13
+ const data = await client.get('/external-agents', opts.orgId ? { orgId: opts.orgId } : undefined);
14
+ const rows = extractRows(data);
15
+ table(rows, [
16
+ { key: 'id', header: 'ID', width: 28 },
17
+ { key: 'name', header: 'Name', width: 20 },
18
+ { key: 'agentId', header: 'Agent ID', width: 28 },
19
+ { key: 'connected', header: 'Connected', width: 10 },
20
+ ], { ...out, title: 'External agents' });
21
+ }
22
+ catch (e) {
23
+ if (e instanceof ApiError)
24
+ fail(e.message);
25
+ throw e;
26
+ }
27
+ });
28
+ root
29
+ .command('register')
30
+ .option('--org-id <id>')
31
+ .requiredOption('--agent-id <id>')
32
+ .requiredOption('--name <n>')
33
+ .option('--capabilities <csv>')
34
+ .action(async (opts, cmd) => {
35
+ const g = cmd.optsWithGlobals();
36
+ const client = createClient(g);
37
+ const out = { json: !!g.json };
38
+ const caps = opts.capabilities
39
+ ? String(opts.capabilities).split(',').map(s => s.trim()).filter(Boolean)
40
+ : undefined;
41
+ try {
42
+ const data = await client.post('/external-agents/register', {
43
+ agentId: opts.agentId,
44
+ name: opts.name,
45
+ ...(opts.orgId && { orgId: opts.orgId }),
46
+ ...(caps && { capabilities: caps }),
47
+ });
48
+ success('External agent registered', data, out);
49
+ }
50
+ catch (e) {
51
+ if (e instanceof ApiError)
52
+ fail(e.message);
53
+ throw e;
54
+ }
55
+ });
56
+ root
57
+ .command('delete <id>')
58
+ .option('--org-id <id>')
59
+ .action(async (id, opts, cmd) => {
60
+ const g = cmd.optsWithGlobals();
61
+ const client = createClient(g);
62
+ const out = { json: !!g.json };
63
+ try {
64
+ const data = await client.delete(`/external-agents/${encodeURIComponent(id)}`, opts.orgId ? { orgId: opts.orgId } : undefined);
65
+ success('External agent deleted', data, out);
66
+ }
67
+ catch (e) {
68
+ if (e instanceof ApiError)
69
+ fail(e.message);
70
+ throw e;
71
+ }
72
+ });
73
+ }
74
+ //# sourceMappingURL=external-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-agent.js","sourceRoot":"","sources":["../../src/commands/external-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerGatewayCommands(program: Command): void;
3
+ //# sourceMappingURL=gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/commands/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QA4HvD"}
@@ -0,0 +1,155 @@
1
+ import { createClient, ApiError } from '../api-client.js';
2
+ import { detail, success, fail } from '../output.js';
3
+ function printManual(data, json) {
4
+ if (json) {
5
+ console.log(JSON.stringify(data, null, 2));
6
+ return;
7
+ }
8
+ if (typeof data === 'string') {
9
+ console.log(data);
10
+ return;
11
+ }
12
+ if (data && typeof data === 'object') {
13
+ const o = data;
14
+ const md = o['markdown'] ?? o['content'] ?? o['body'] ?? o['manual'];
15
+ if (typeof md === 'string') {
16
+ console.log(md);
17
+ return;
18
+ }
19
+ }
20
+ console.log(JSON.stringify(data, null, 2));
21
+ }
22
+ export function registerGatewayCommands(program) {
23
+ const root = program.command('gateway').description('External agent gateway');
24
+ root.command('info').action(async (_opts, cmd) => {
25
+ const g = cmd.optsWithGlobals();
26
+ const client = createClient(g);
27
+ const out = { json: !!g.json };
28
+ try {
29
+ const data = await client.get('/gateway/info');
30
+ detail(data, { ...out, title: 'Gateway info' });
31
+ }
32
+ catch (e) {
33
+ if (e instanceof ApiError)
34
+ fail(e.message);
35
+ throw e;
36
+ }
37
+ });
38
+ root
39
+ .command('register')
40
+ .requiredOption('--agent-id <id>')
41
+ .requiredOption('--agent-name <n>')
42
+ .option('--org-id <id>')
43
+ .option('--capabilities <csv>')
44
+ .action(async (opts, cmd) => {
45
+ const g = cmd.optsWithGlobals();
46
+ const client = createClient(g);
47
+ const out = { json: !!g.json };
48
+ const caps = opts.capabilities
49
+ ? String(opts.capabilities).split(',').map(s => s.trim()).filter(Boolean)
50
+ : undefined;
51
+ try {
52
+ const data = await client.post('/gateway/register', {
53
+ agentId: opts.agentId,
54
+ agentName: opts.agentName,
55
+ ...(opts.orgId && { orgId: opts.orgId }),
56
+ ...(caps && { capabilities: caps }),
57
+ });
58
+ success('Gateway registration', data, out);
59
+ }
60
+ catch (e) {
61
+ if (e instanceof ApiError)
62
+ fail(e.message);
63
+ throw e;
64
+ }
65
+ });
66
+ root
67
+ .command('auth')
68
+ .requiredOption('--agent-id <id>')
69
+ .requiredOption('--secret <s>')
70
+ .option('--org-id <id>')
71
+ .action(async (opts, cmd) => {
72
+ const g = cmd.optsWithGlobals();
73
+ const client = createClient(g);
74
+ const out = { json: !!g.json };
75
+ try {
76
+ const data = await client.post('/gateway/auth', {
77
+ agentId: opts.agentId,
78
+ secret: opts.secret,
79
+ ...(opts.orgId && { orgId: opts.orgId }),
80
+ });
81
+ success('Authenticated', data, out);
82
+ if (!out.json) {
83
+ const token = data['token'] ?? data['accessToken'] ?? data['jwt'];
84
+ if (token && typeof token === 'string')
85
+ console.log(`Token: ${token}`);
86
+ }
87
+ }
88
+ catch (e) {
89
+ if (e instanceof ApiError)
90
+ fail(e.message);
91
+ throw e;
92
+ }
93
+ });
94
+ root
95
+ .command('message')
96
+ .requiredOption('--text <t>')
97
+ .requiredOption('--api-key <k>')
98
+ .action(async (opts, cmd) => {
99
+ const g = cmd.optsWithGlobals();
100
+ const client = createClient({ server: g.server, apiKey: opts.apiKey });
101
+ const out = { json: !!g.json };
102
+ try {
103
+ const data = await client.post('/gateway/message', { text: opts.text });
104
+ success('Message sent', data, out);
105
+ }
106
+ catch (e) {
107
+ if (e instanceof ApiError)
108
+ fail(e.message);
109
+ throw e;
110
+ }
111
+ });
112
+ root.command('status').action(async (_opts, cmd) => {
113
+ const g = cmd.optsWithGlobals();
114
+ const client = createClient(g);
115
+ const out = { json: !!g.json };
116
+ try {
117
+ const data = await client.get('/gateway/status');
118
+ detail(data, { ...out, title: 'Gateway status' });
119
+ }
120
+ catch (e) {
121
+ if (e instanceof ApiError)
122
+ fail(e.message);
123
+ throw e;
124
+ }
125
+ });
126
+ root.command('manual').action(async (_opts, cmd) => {
127
+ const g = cmd.optsWithGlobals();
128
+ const client = createClient(g);
129
+ const out = { json: !!g.json };
130
+ try {
131
+ const data = await client.get('/gateway/manual');
132
+ printManual(data, out.json);
133
+ }
134
+ catch (e) {
135
+ if (e instanceof ApiError)
136
+ fail(e.message);
137
+ throw e;
138
+ }
139
+ });
140
+ root.command('team').action(async (_opts, cmd) => {
141
+ const g = cmd.optsWithGlobals();
142
+ const client = createClient(g);
143
+ const out = { json: !!g.json };
144
+ try {
145
+ const data = await client.get('/gateway/team');
146
+ detail(data, { ...out, title: 'Gateway team' });
147
+ }
148
+ catch (e) {
149
+ if (e instanceof ApiError)
150
+ fail(e.message);
151
+ throw e;
152
+ }
153
+ });
154
+ }
155
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/commands/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerInitCommand(program: Command): void;
3
+ export declare function quickInit(options?: {
4
+ force?: boolean;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAQnD;AAED,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,iBAsP5D"}