@crewx/cli 0.8.0-rc.66 → 0.8.0-rc.82

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 (281) hide show
  1. package/bin/crewx +2 -0
  2. package/dist/bootstrap/crewx-cli.d.ts +11 -0
  3. package/dist/bootstrap/crewx-cli.js +31 -0
  4. package/dist/builtin.d.ts +15 -0
  5. package/dist/{cli/builtin.handler.js → builtin.js} +21 -7
  6. package/dist/commands/agent.d.ts +12 -0
  7. package/dist/commands/agent.js +246 -0
  8. package/dist/commands/doctor.d.ts +12 -0
  9. package/dist/commands/doctor.js +190 -0
  10. package/dist/commands/execute.d.ts +21 -0
  11. package/dist/commands/execute.js +117 -0
  12. package/dist/commands/hook/install.d.ts +21 -0
  13. package/dist/commands/hook/install.js +175 -0
  14. package/dist/commands/hook/paths.d.ts +19 -0
  15. package/dist/commands/hook/paths.js +94 -0
  16. package/dist/commands/hook/status.d.ts +7 -0
  17. package/dist/commands/hook/status.js +86 -0
  18. package/dist/commands/hook/uninstall.d.ts +8 -0
  19. package/dist/commands/hook/uninstall.js +71 -0
  20. package/dist/commands/hook-dispatch.d.ts +15 -0
  21. package/dist/commands/hook-dispatch.js +180 -0
  22. package/dist/commands/init.d.ts +24 -0
  23. package/dist/commands/init.js +133 -0
  24. package/dist/commands/kill.d.ts +12 -0
  25. package/dist/commands/kill.js +49 -0
  26. package/dist/commands/log.d.ts +13 -0
  27. package/dist/commands/log.js +97 -0
  28. package/dist/commands/parse-agent-message.d.ts +31 -0
  29. package/dist/commands/parse-agent-message.js +52 -0
  30. package/dist/commands/parse-common-flags.d.ts +36 -0
  31. package/dist/commands/parse-common-flags.js +105 -0
  32. package/dist/commands/ps.d.ts +12 -0
  33. package/dist/commands/ps.js +71 -0
  34. package/dist/commands/query.d.ts +21 -0
  35. package/dist/commands/query.js +117 -0
  36. package/dist/commands/result.d.ts +13 -0
  37. package/dist/commands/result.js +73 -0
  38. package/dist/commands/slack.d.ts +12 -0
  39. package/dist/commands/slack.js +559 -0
  40. package/dist/commands/task-db.d.ts +33 -0
  41. package/dist/commands/task-db.js +107 -0
  42. package/dist/examples/deny-secrets-plugin.d.ts +22 -0
  43. package/dist/examples/deny-secrets-plugin.js +40 -0
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.js +5 -0
  46. package/dist/logging.d.ts +21 -0
  47. package/dist/logging.js +86 -0
  48. package/dist/main.d.ts +10 -0
  49. package/dist/main.js +246 -256
  50. package/dist/plugins/examples/echo-hook.d.ts +24 -0
  51. package/dist/plugins/examples/echo-hook.js +60 -0
  52. package/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
  53. package/dist/plugins/examples/verify-echo-hook.js +47 -0
  54. package/dist/plugins/sqlite-tracing.d.ts +13 -0
  55. package/dist/plugins/sqlite-tracing.js +20 -0
  56. package/dist/register-builtin-tools.d.ts +5 -0
  57. package/dist/register-builtin-tools.js +9 -0
  58. package/dist/slack/file-download.d.ts +17 -0
  59. package/dist/slack/file-download.js +134 -0
  60. package/dist/slack/markdown.d.ts +5 -0
  61. package/dist/slack/markdown.js +33 -0
  62. package/dist/utils/env-defaults.d.ts +5 -0
  63. package/dist/utils/env-defaults.js +10 -0
  64. package/dist/utils/version.d.ts +1 -0
  65. package/dist/utils/version.js +28 -0
  66. package/package.json +32 -115
  67. package/README.md +0 -663
  68. package/dist/ai-provider.service.d.ts +0 -36
  69. package/dist/ai-provider.service.js +0 -315
  70. package/dist/ai-provider.service.js.map +0 -1
  71. package/dist/ai.service.d.ts +0 -17
  72. package/dist/ai.service.js +0 -51
  73. package/dist/ai.service.js.map +0 -1
  74. package/dist/app.module.d.ts +0 -5
  75. package/dist/app.module.js +0 -165
  76. package/dist/app.module.js.map +0 -1
  77. package/dist/cli/agent.handler.d.ts +0 -2
  78. package/dist/cli/agent.handler.js +0 -186
  79. package/dist/cli/agent.handler.js.map +0 -1
  80. package/dist/cli/builtin.handler.d.ts +0 -3
  81. package/dist/cli/builtin.handler.js.map +0 -1
  82. package/dist/cli/chat.handler.d.ts +0 -20
  83. package/dist/cli/chat.handler.js +0 -446
  84. package/dist/cli/chat.handler.js.map +0 -1
  85. package/dist/cli/cli.handler.d.ts +0 -4
  86. package/dist/cli/cli.handler.js +0 -119
  87. package/dist/cli/cli.handler.js.map +0 -1
  88. package/dist/cli/doctor.handler.d.ts +0 -38
  89. package/dist/cli/doctor.handler.js +0 -495
  90. package/dist/cli/doctor.handler.js.map +0 -1
  91. package/dist/cli/execute.handler.d.ts +0 -2
  92. package/dist/cli/execute.handler.js +0 -376
  93. package/dist/cli/execute.handler.js.map +0 -1
  94. package/dist/cli/help.handler.d.ts +0 -2
  95. package/dist/cli/help.handler.js +0 -10
  96. package/dist/cli/help.handler.js.map +0 -1
  97. package/dist/cli/init.handler.d.ts +0 -26
  98. package/dist/cli/init.handler.js +0 -450
  99. package/dist/cli/init.handler.js.map +0 -1
  100. package/dist/cli/log.handler.d.ts +0 -2
  101. package/dist/cli/log.handler.js +0 -69
  102. package/dist/cli/log.handler.js.map +0 -1
  103. package/dist/cli/mcp.handler.d.ts +0 -3
  104. package/dist/cli/mcp.handler.js +0 -121
  105. package/dist/cli/mcp.handler.js.map +0 -1
  106. package/dist/cli/query.handler.d.ts +0 -2
  107. package/dist/cli/query.handler.js +0 -392
  108. package/dist/cli/query.handler.js.map +0 -1
  109. package/dist/cli/skill.handler.d.ts +0 -2
  110. package/dist/cli/skill.handler.js +0 -252
  111. package/dist/cli/skill.handler.js.map +0 -1
  112. package/dist/cli/slack-files.handler.d.ts +0 -2
  113. package/dist/cli/slack-files.handler.js +0 -291
  114. package/dist/cli/slack-files.handler.js.map +0 -1
  115. package/dist/cli/template.handler.d.ts +0 -2
  116. package/dist/cli/template.handler.js +0 -188
  117. package/dist/cli/template.handler.js.map +0 -1
  118. package/dist/cli/templates.handler.d.ts +0 -2
  119. package/dist/cli/templates.handler.js +0 -100
  120. package/dist/cli/templates.handler.js.map +0 -1
  121. package/dist/cli-options.d.ts +0 -40
  122. package/dist/cli-options.js +0 -371
  123. package/dist/cli-options.js.map +0 -1
  124. package/dist/config/timeout.config.d.ts +0 -14
  125. package/dist/config/timeout.config.js +0 -34
  126. package/dist/config/timeout.config.js.map +0 -1
  127. package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
  128. package/dist/conversation/base-conversation-history.provider.js +0 -45
  129. package/dist/conversation/base-conversation-history.provider.js.map +0 -1
  130. package/dist/conversation/cli-box-reader.adapter.d.ts +0 -6
  131. package/dist/conversation/cli-box-reader.adapter.js +0 -10
  132. package/dist/conversation/cli-box-reader.adapter.js.map +0 -1
  133. package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
  134. package/dist/conversation/cli-conversation-history.provider.js +0 -112
  135. package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
  136. package/dist/conversation/cli-task-reader.adapter.d.ts +0 -6
  137. package/dist/conversation/cli-task-reader.adapter.js +0 -25
  138. package/dist/conversation/cli-task-reader.adapter.js.map +0 -1
  139. package/dist/conversation/conversation-provider.factory.d.ts +0 -10
  140. package/dist/conversation/conversation-provider.factory.js +0 -50
  141. package/dist/conversation/conversation-provider.factory.js.map +0 -1
  142. package/dist/conversation/index.d.ts +0 -8
  143. package/dist/conversation/index.js +0 -29
  144. package/dist/conversation/index.js.map +0 -1
  145. package/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
  146. package/dist/conversation/slack-conversation-history.provider.js +0 -302
  147. package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
  148. package/dist/crewx.tool.d.ts +0 -360
  149. package/dist/crewx.tool.js +0 -2531
  150. package/dist/crewx.tool.js.map +0 -1
  151. package/dist/crewx.tool.spec.d.ts +0 -1
  152. package/dist/crewx.tool.spec.js +0 -222
  153. package/dist/crewx.tool.spec.js.map +0 -1
  154. package/dist/guards/bearer-auth.guard.d.ts +0 -7
  155. package/dist/guards/bearer-auth.guard.js +0 -44
  156. package/dist/guards/bearer-auth.guard.js.map +0 -1
  157. package/dist/health.controller.d.ts +0 -6
  158. package/dist/health.controller.js +0 -32
  159. package/dist/health.controller.js.map +0 -1
  160. package/dist/main.js.map +0 -1
  161. package/dist/mcp.controller.d.ts +0 -8
  162. package/dist/mcp.controller.js +0 -62
  163. package/dist/mcp.controller.js.map +0 -1
  164. package/dist/package.json +0 -3
  165. package/dist/providers/dynamic-provider.factory.d.ts +0 -17
  166. package/dist/providers/dynamic-provider.factory.js +0 -138
  167. package/dist/providers/dynamic-provider.factory.js.map +0 -1
  168. package/dist/providers/logger.adapter.d.ts +0 -7
  169. package/dist/providers/logger.adapter.js +0 -107
  170. package/dist/providers/logger.adapter.js.map +0 -1
  171. package/dist/services/agent-loader.service.d.ts +0 -35
  172. package/dist/services/agent-loader.service.js +0 -623
  173. package/dist/services/agent-loader.service.js.map +0 -1
  174. package/dist/services/auth.service.d.ts +0 -9
  175. package/dist/services/auth.service.js +0 -47
  176. package/dist/services/auth.service.js.map +0 -1
  177. package/dist/services/config-validator.service.d.ts +0 -29
  178. package/dist/services/config-validator.service.js +0 -483
  179. package/dist/services/config-validator.service.js.map +0 -1
  180. package/dist/services/config.service.d.ts +0 -45
  181. package/dist/services/config.service.js +0 -352
  182. package/dist/services/config.service.js.map +0 -1
  183. package/dist/services/document-loader.service.d.ts +0 -26
  184. package/dist/services/document-loader.service.js +0 -186
  185. package/dist/services/document-loader.service.js.map +0 -1
  186. package/dist/services/help.service.d.ts +0 -5
  187. package/dist/services/help.service.js +0 -139
  188. package/dist/services/help.service.js.map +0 -1
  189. package/dist/services/intelligent-compression.service.d.ts +0 -20
  190. package/dist/services/intelligent-compression.service.js +0 -179
  191. package/dist/services/intelligent-compression.service.js.map +0 -1
  192. package/dist/services/mcp-client.service.d.ts +0 -26
  193. package/dist/services/mcp-client.service.js +0 -81
  194. package/dist/services/mcp-client.service.js.map +0 -1
  195. package/dist/services/parallel-processing.service.d.ts +0 -108
  196. package/dist/services/parallel-processing.service.js +0 -333
  197. package/dist/services/parallel-processing.service.js.map +0 -1
  198. package/dist/services/provider-bridge.service.d.ts +0 -35
  199. package/dist/services/provider-bridge.service.js +0 -224
  200. package/dist/services/provider-bridge.service.js.map +0 -1
  201. package/dist/services/remote-agent.service.d.ts +0 -50
  202. package/dist/services/remote-agent.service.js +0 -171
  203. package/dist/services/remote-agent.service.js.map +0 -1
  204. package/dist/services/result-formatter.service.d.ts +0 -27
  205. package/dist/services/result-formatter.service.js +0 -126
  206. package/dist/services/result-formatter.service.js.map +0 -1
  207. package/dist/services/skill-loader.service.d.ts +0 -15
  208. package/dist/services/skill-loader.service.js +0 -278
  209. package/dist/services/skill-loader.service.js.map +0 -1
  210. package/dist/services/skill.service.d.ts +0 -69
  211. package/dist/services/skill.service.js +0 -779
  212. package/dist/services/skill.service.js.map +0 -1
  213. package/dist/services/skill.service.spec.d.ts +0 -1
  214. package/dist/services/skill.service.spec.js +0 -168
  215. package/dist/services/skill.service.spec.js.map +0 -1
  216. package/dist/services/task-management.service.d.ts +0 -71
  217. package/dist/services/task-management.service.js +0 -324
  218. package/dist/services/task-management.service.js.map +0 -1
  219. package/dist/services/template.service.d.ts +0 -61
  220. package/dist/services/template.service.js +0 -416
  221. package/dist/services/template.service.js.map +0 -1
  222. package/dist/services/tool-call.service.d.ts +0 -16
  223. package/dist/services/tool-call.service.js +0 -302
  224. package/dist/services/tool-call.service.js.map +0 -1
  225. package/dist/services/tracing.service.d.ts +0 -197
  226. package/dist/services/tracing.service.js +0 -1267
  227. package/dist/services/tracing.service.js.map +0 -1
  228. package/dist/slack/formatters/message.formatter.d.ts +0 -43
  229. package/dist/slack/formatters/message.formatter.js +0 -505
  230. package/dist/slack/formatters/message.formatter.js.map +0 -1
  231. package/dist/slack/services/slack-file-download.service.d.ts +0 -58
  232. package/dist/slack/services/slack-file-download.service.js +0 -558
  233. package/dist/slack/services/slack-file-download.service.js.map +0 -1
  234. package/dist/slack/slack-bot.d.ts +0 -33
  235. package/dist/slack/slack-bot.js +0 -568
  236. package/dist/slack/slack-bot.js.map +0 -1
  237. package/dist/stderr.logger.d.ts +0 -8
  238. package/dist/stderr.logger.js +0 -26
  239. package/dist/stderr.logger.js.map +0 -1
  240. package/dist/types/usage.types.d.ts +0 -107
  241. package/dist/types/usage.types.js +0 -3
  242. package/dist/types/usage.types.js.map +0 -1
  243. package/dist/utils/config-utils.d.ts +0 -15
  244. package/dist/utils/config-utils.js +0 -69
  245. package/dist/utils/config-utils.js.map +0 -1
  246. package/dist/utils/extract-text.d.ts +0 -1
  247. package/dist/utils/extract-text.js +0 -15
  248. package/dist/utils/extract-text.js.map +0 -1
  249. package/dist/utils/mcp-installer.d.ts +0 -20
  250. package/dist/utils/mcp-installer.js +0 -199
  251. package/dist/utils/mcp-installer.js.map +0 -1
  252. package/dist/utils/project-hash.d.ts +0 -6
  253. package/dist/utils/project-hash.js +0 -70
  254. package/dist/utils/project-hash.js.map +0 -1
  255. package/dist/utils/simple-security.d.ts +0 -3
  256. package/dist/utils/simple-security.js +0 -20
  257. package/dist/utils/simple-security.js.map +0 -1
  258. package/dist/utils/stdin-utils.d.ts +0 -6
  259. package/dist/utils/stdin-utils.js +0 -109
  260. package/dist/utils/stdin-utils.js.map +0 -1
  261. package/dist/utils/template-processor.d.ts +0 -27
  262. package/dist/utils/template-processor.js +0 -395
  263. package/dist/utils/template-processor.js.map +0 -1
  264. package/dist/utils/terminal-message-formatter.d.ts +0 -23
  265. package/dist/utils/terminal-message-formatter.js +0 -136
  266. package/dist/utils/terminal-message-formatter.js.map +0 -1
  267. package/dist/version.d.ts +0 -1
  268. package/dist/version.js +0 -17
  269. package/dist/version.js.map +0 -1
  270. package/dist/workspace.service.d.ts +0 -44
  271. package/dist/workspace.service.js +0 -299
  272. package/dist/workspace.service.js.map +0 -1
  273. package/scripts/backfill-tokens.js +0 -218
  274. package/scripts/postbuild-cli.mjs +0 -88
  275. package/scripts/postinstall-cli.mjs +0 -30
  276. package/templates/agents/default.yaml +0 -490
  277. package/templates/agents/minimal.yaml +0 -16
  278. package/templates/documents/conversation-history-default.hbs +0 -17
  279. package/templates/documents/crewx-manual.md +0 -2278
  280. package/templates/documents/crewx-quick-guide.md +0 -147
  281. package/templates/versions.json +0 -19
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * Common flag parser for query/execute commands.
4
+ *
5
+ * Supports both `--flag=value` and `--flag value` forms.
6
+ * Handles: --thread, --provider, --metadata, --verbose, --config/-c,
7
+ * --output-format, --effort.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.parseCommonFlags = parseCommonFlags;
11
+ exports.parseMetadata = parseMetadata;
12
+ /**
13
+ * Parse a single-value flag from an args array.
14
+ * Supports `--flag=value` and `--flag value` forms.
15
+ * Returns undefined if flag is not present.
16
+ */
17
+ function parseFlag(args, ...names) {
18
+ for (let i = 0; i < args.length; i++) {
19
+ const arg = args[i];
20
+ for (const name of names) {
21
+ const prefix = `${name}=`;
22
+ if (arg.startsWith(prefix)) {
23
+ return arg.slice(prefix.length);
24
+ }
25
+ if (arg === name && i + 1 < args.length) {
26
+ return args[i + 1];
27
+ }
28
+ }
29
+ }
30
+ return undefined;
31
+ }
32
+ /**
33
+ * Check if a boolean flag is present.
34
+ */
35
+ function hasFlag(args, ...names) {
36
+ return names.some(name => args.includes(name));
37
+ }
38
+ /**
39
+ * Parse common CLI flags from an args array.
40
+ * Returns parsed flags and remaining positional arguments.
41
+ */
42
+ function parseCommonFlags(args) {
43
+ const thread = parseFlag(args, '--thread');
44
+ const provider = parseFlag(args, '--provider');
45
+ const metadata = parseFlag(args, '--metadata');
46
+ const config = parseFlag(args, '--config', '-c');
47
+ const outputFormat = parseFlag(args, '--output-format');
48
+ const effort = parseFlag(args, '--effort');
49
+ const verbose = hasFlag(args, '--verbose');
50
+ // Collect the set of consumed positions
51
+ const consumed = new Set();
52
+ const flagPairs = [
53
+ { names: ['--thread'] },
54
+ { names: ['--provider'] },
55
+ { names: ['--metadata'] },
56
+ { names: ['--config', '-c'] },
57
+ { names: ['--output-format'] },
58
+ { names: ['--effort'] },
59
+ ];
60
+ for (let i = 0; i < args.length; i++) {
61
+ const arg = args[i];
62
+ // Boolean flags
63
+ if (arg === '--verbose') {
64
+ consumed.add(i);
65
+ continue;
66
+ }
67
+ // Value flags
68
+ for (const { names } of flagPairs) {
69
+ for (const name of names) {
70
+ if (arg.startsWith(`${name}=`)) {
71
+ consumed.add(i);
72
+ }
73
+ else if (arg === name) {
74
+ consumed.add(i);
75
+ if (i + 1 < args.length)
76
+ consumed.add(i + 1);
77
+ }
78
+ }
79
+ }
80
+ }
81
+ const rest = args.filter((_, i) => !consumed.has(i));
82
+ return { thread, provider, metadata, verbose, config, outputFormat, effort, rest };
83
+ }
84
+ /**
85
+ * Parse metadata JSON string from --metadata flag.
86
+ * Returns empty object when no raw value provided.
87
+ * Throws Error on invalid JSON or non-object values (fail-fast).
88
+ */
89
+ function parseMetadata(raw) {
90
+ if (!raw)
91
+ return {};
92
+ try {
93
+ const parsed = JSON.parse(raw);
94
+ if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
95
+ return parsed;
96
+ }
97
+ throw new Error(`--metadata must be a JSON object. Got: ${raw}`);
98
+ }
99
+ catch (err) {
100
+ if (err instanceof Error && err.message.startsWith('--metadata must be a JSON object')) {
101
+ throw err;
102
+ }
103
+ throw new Error(`--metadata must be valid JSON (double-quoted). Got: ${raw}`);
104
+ }
105
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * crewx ps handler.
3
+ * Lists currently running tasks in table format.
4
+ *
5
+ * Usage:
6
+ * crewx ps List all running tasks
7
+ * crewx ps --json Output as JSON array
8
+ */
9
+ /**
10
+ * Handle `crewx ps` command.
11
+ */
12
+ export declare function handlePs(args: string[]): Promise<void>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * crewx ps handler.
4
+ * Lists currently running tasks in table format.
5
+ *
6
+ * Usage:
7
+ * crewx ps List all running tasks
8
+ * crewx ps --json Output as JSON array
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.handlePs = handlePs;
12
+ const task_db_1 = require("./task-db");
13
+ /**
14
+ * Format elapsed milliseconds into a human-readable string.
15
+ */
16
+ function formatElapsed(ms) {
17
+ const s = Math.floor(ms / 1000);
18
+ if (s < 60)
19
+ return `${s}s`;
20
+ const m = Math.floor(s / 60);
21
+ const rs = s % 60;
22
+ if (m < 60)
23
+ return `${m}m ${rs}s`;
24
+ const h = Math.floor(m / 60);
25
+ return `${h}h ${m % 60}m`;
26
+ }
27
+ /**
28
+ * Format a task row into a table row.
29
+ */
30
+ function taskToRow(task) {
31
+ const elapsed = formatElapsed(Date.now() - new Date(task.started_at).getTime());
32
+ return [
33
+ task.id,
34
+ task.agent_id,
35
+ task.pid !== null ? String(task.pid) : '—',
36
+ elapsed,
37
+ task.mode,
38
+ ];
39
+ }
40
+ /**
41
+ * Render a table with padded columns.
42
+ */
43
+ function renderTable(headers, rows) {
44
+ const colWidths = headers.map((h, i) => Math.max(h.length, ...rows.map(r => (r[i] ?? '').length)));
45
+ const separator = colWidths.map(w => '-'.repeat(w)).join(' ');
46
+ const headerLine = headers.map((h, i) => h.padEnd(colWidths[i] ?? h.length)).join(' ');
47
+ console.log(headerLine);
48
+ console.log(separator);
49
+ for (const row of rows) {
50
+ console.log(row.map((cell, i) => cell.padEnd(colWidths[i] ?? cell.length)).join(' '));
51
+ }
52
+ }
53
+ /**
54
+ * Handle `crewx ps` command.
55
+ */
56
+ async function handlePs(args) {
57
+ const tasks = (0, task_db_1.getRunningTasks)();
58
+ if (tasks.length === 0) {
59
+ console.log('No running tasks.');
60
+ return;
61
+ }
62
+ // --json output
63
+ if (args.includes('--json')) {
64
+ console.log(JSON.stringify(tasks, null, 2));
65
+ return;
66
+ }
67
+ const headers = ['TASK ID', 'AGENT', 'PID', 'ELAPSED', 'MODE'];
68
+ const rows = tasks.map(taskToRow);
69
+ renderTable(headers, rows);
70
+ console.log(`\n ${tasks.length} running task(s)`);
71
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * crewx query handler.
3
+ * Parses args, loads config via Crewx SDK, and executes the query.
4
+ *
5
+ * Flags:
6
+ * --thread <name> Conversation thread name
7
+ * --provider <cli/xxx> Provider override
8
+ * --metadata <json> Extra metadata JSON (double-quoted object). Propagated to events/hooks/tracing.
9
+ * e.g. --metadata='{"workflow_id":"wf-1"}'
10
+ * --verbose Debug output mode (default: raw agent response only)
11
+ * --config/-c <path> Config file path override
12
+ * --output-format <fmt> Output format (json|text|stream-json)
13
+ * --effort <level> Model effort (high|medium|low)
14
+ */
15
+ /**
16
+ * Handle `crewx query <agentRef> <message>` command.
17
+ *
18
+ * Default output: raw agent response only (stdout).
19
+ * --verbose: debug info written to stderr, response to stdout.
20
+ */
21
+ export declare function handleQuery(args: string[]): Promise<void>;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /**
3
+ * crewx query handler.
4
+ * Parses args, loads config via Crewx SDK, and executes the query.
5
+ *
6
+ * Flags:
7
+ * --thread <name> Conversation thread name
8
+ * --provider <cli/xxx> Provider override
9
+ * --metadata <json> Extra metadata JSON (double-quoted object). Propagated to events/hooks/tracing.
10
+ * e.g. --metadata='{"workflow_id":"wf-1"}'
11
+ * --verbose Debug output mode (default: raw agent response only)
12
+ * --config/-c <path> Config file path override
13
+ * --output-format <fmt> Output format (json|text|stream-json)
14
+ * --effort <level> Model effort (high|medium|low)
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.handleQuery = handleQuery;
18
+ const sdk_1 = require("@crewx/sdk");
19
+ const parse_agent_message_1 = require("./parse-agent-message");
20
+ const parse_common_flags_1 = require("./parse-common-flags");
21
+ const crewx_cli_1 = require("../bootstrap/crewx-cli");
22
+ /**
23
+ * Handle `crewx query <agentRef> <message>` command.
24
+ *
25
+ * Default output: raw agent response only (stdout).
26
+ * --verbose: debug info written to stderr, response to stdout.
27
+ */
28
+ async function handleQuery(args) {
29
+ const { thread, provider, metadata, verbose, config, outputFormat, effort, rest } = (0, parse_common_flags_1.parseCommonFlags)(args);
30
+ const { agentRef: parsedAgentRef, message } = (0, parse_agent_message_1.parseAgentMessage)(rest);
31
+ // No @mention → default to @crewx agent (matches cli-bak behaviour)
32
+ const agentRef = parsedAgentRef || '@crewx';
33
+ if (!message) {
34
+ console.error('Usage: crewx query [@agent] <message> [options]');
35
+ console.error(' crewx q [@agent] <message> [options]');
36
+ console.error('');
37
+ console.error(' @agent is optional. Defaults to @crewx when omitted.');
38
+ console.error('');
39
+ console.error('Options:');
40
+ console.error(' --thread <name> Conversation thread name');
41
+ console.error(' --provider <cli/xxx> Provider override');
42
+ console.error(' --metadata <json> Extra metadata (JSON object, double-quoted).');
43
+ console.error(' Propagated to events/hooks/tracing.');
44
+ console.error(' Invalid JSON aborts with exit code 2.');
45
+ console.error(' e.g. --metadata=\'{"workflow_id":"wf-1"}\'');
46
+ console.error(' --verbose Debug output mode');
47
+ console.error(' --config/-c <path> Config file path');
48
+ console.error(' --output-format <fmt> Output format (json|text|stream-json)');
49
+ console.error(' --effort <level> Model effort (high|medium|low)');
50
+ process.exit(1);
51
+ }
52
+ const configPath = config ?? process.env.CREWX_CONFIG ?? 'crewx.yaml';
53
+ // Only show exec audit span JSON in verbose mode
54
+ (0, sdk_1.setAuditVerbose)(verbose);
55
+ const crewx = await (0, crewx_cli_1.createCliCrewx)(configPath);
56
+ // file:// remote agent delegation is handled transparently inside Crewx.query/execute.
57
+ if (verbose) {
58
+ process.stderr.write(`šŸ“‹ Task: ${message}\n`);
59
+ process.stderr.write(`šŸ¤– Agent: ${agentRef}\n`);
60
+ if (thread)
61
+ process.stderr.write(`šŸ”— Thread: ${thread}\n`);
62
+ if (provider)
63
+ process.stderr.write(`šŸ”Œ Provider: ${provider}\n`);
64
+ if (outputFormat)
65
+ process.stderr.write(`šŸ“„ Output-format: ${outputFormat}\n`);
66
+ if (effort)
67
+ process.stderr.write(`⚔ Effort: ${effort}\n`);
68
+ process.stderr.write('─'.repeat(60) + '\n');
69
+ }
70
+ let parsedMetadata = {};
71
+ try {
72
+ parsedMetadata = (0, parse_common_flags_1.parseMetadata)(metadata);
73
+ }
74
+ catch (err) {
75
+ const msg = err instanceof Error ? err.message : String(err);
76
+ process.stderr.write(`Error: ${msg}\n`);
77
+ process.exit(2);
78
+ }
79
+ let exitCode = 0;
80
+ try {
81
+ const result = await crewx.query(agentRef, message, {
82
+ provider,
83
+ threadId: thread,
84
+ metadata: Object.keys(parsedMetadata).length > 0 ? parsedMetadata : undefined,
85
+ });
86
+ if (!result.ok) {
87
+ const errMsg = result.error?.message ?? 'Query failed';
88
+ console.error(errMsg);
89
+ exitCode = 1;
90
+ }
91
+ else {
92
+ if (verbose) {
93
+ process.stderr.write(`\nšŸ“Š Results from ${agentRef}:\n`);
94
+ process.stderr.write('═'.repeat(60) + '\n');
95
+ process.stderr.write('🟢 Status: Success\n');
96
+ process.stderr.write(`šŸ¤– Provider: ${result.meta.provider}\n`);
97
+ process.stderr.write(`ā±ļø Duration: ${result.meta.durationMs}ms\n`);
98
+ process.stderr.write('\nšŸ“„ Response:\n');
99
+ process.stderr.write('─'.repeat(40) + '\n');
100
+ }
101
+ console.log(result.data);
102
+ if (verbose) {
103
+ process.stderr.write('\nāœ… Query completed successfully\n');
104
+ }
105
+ }
106
+ }
107
+ catch (err) {
108
+ const errMsg = err instanceof Error ? err.message : String(err);
109
+ console.error(`Error: ${errMsg}`);
110
+ exitCode = 1;
111
+ }
112
+ finally {
113
+ await crewx.close();
114
+ }
115
+ if (exitCode !== 0)
116
+ process.exit(exitCode);
117
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * crewx result handler.
3
+ * Retrieves the result of a completed task by its ID.
4
+ *
5
+ * Usage:
6
+ * crewx result <task-id> Print raw result
7
+ * crewx result <task-id> --json Print full task record as JSON
8
+ * crewx result List recent tasks (latest 10)
9
+ */
10
+ /**
11
+ * Handle `crewx result` command.
12
+ */
13
+ export declare function handleResult(args: string[]): Promise<void>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /**
3
+ * crewx result handler.
4
+ * Retrieves the result of a completed task by its ID.
5
+ *
6
+ * Usage:
7
+ * crewx result <task-id> Print raw result
8
+ * crewx result <task-id> --json Print full task record as JSON
9
+ * crewx result List recent tasks (latest 10)
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.handleResult = handleResult;
13
+ const task_db_1 = require("./task-db");
14
+ function statusIcon(status) {
15
+ switch (status) {
16
+ case 'running': return 'ā³';
17
+ case 'success': return 'āœ…';
18
+ case 'failed': return 'āŒ';
19
+ }
20
+ }
21
+ /**
22
+ * Handle `crewx result` command.
23
+ */
24
+ async function handleResult(args) {
25
+ const jsonMode = args.includes('--json');
26
+ const taskId = args.find(a => !a.startsWith('--'));
27
+ if (!taskId) {
28
+ // Show recent tasks
29
+ const all = (0, task_db_1.getAllTasks)();
30
+ const recent = all.slice(0, 10);
31
+ if (recent.length === 0) {
32
+ console.log('No tasks found.');
33
+ console.log('Tip: Run `crewx query` or `crewx execute` to start a task.');
34
+ return;
35
+ }
36
+ console.log('Recent Tasks (latest 10)\n');
37
+ recent.forEach((task, idx) => {
38
+ const icon = statusIcon(task.status);
39
+ console.log(`${idx + 1}. ${icon} ${task.id}`);
40
+ console.log(` Agent: ${task.agent_id} Mode: ${task.mode}`);
41
+ console.log(` Started: ${new Date(task.started_at).toLocaleString()}`);
42
+ if (task.completed_at) {
43
+ console.log(` Completed: ${new Date(task.completed_at).toLocaleString()}`);
44
+ }
45
+ console.log('');
46
+ });
47
+ console.log('Tip: Run `crewx result <task-id>` to see full output.');
48
+ return;
49
+ }
50
+ const task = (0, task_db_1.getTask)(taskId);
51
+ if (!task) {
52
+ console.error(`Error: Task not found: ${taskId}`);
53
+ process.exit(1);
54
+ return;
55
+ }
56
+ if (jsonMode) {
57
+ console.log(JSON.stringify(task, null, 2));
58
+ return;
59
+ }
60
+ if (task.status === 'running') {
61
+ console.error(`Task ${taskId} is still running.`);
62
+ console.error(`Use \`crewx kill ${taskId}\` to stop it.`);
63
+ process.exit(1);
64
+ return;
65
+ }
66
+ if (task.status === 'failed') {
67
+ console.error(`Task ${taskId} failed: ${task.error ?? 'unknown error'}`);
68
+ process.exit(1);
69
+ return;
70
+ }
71
+ // Completed (success) — print raw result
72
+ console.log(task.result ?? '');
73
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Slack files command — crewx slack:files [--thread <thread_ts>] [--list] [--clean]
3
+ *
4
+ * Ported 1:1 from packages/cli-bak/src/cli/slack-files.handler.ts.
5
+ * Implements download/list/clean operations without NestJS or @slack/web-api.
6
+ * Uses Node.js built-in https and fetch for Slack API calls.
7
+ */
8
+ /**
9
+ * Handle `crewx slack` / `crewx slack:files` commands.
10
+ * Subcommand is determined by flags: --list → list, --clean → clean, default → download.
11
+ */
12
+ export declare function handleSlack(args: string[]): Promise<void>;