@stoneforge/quarry 0.1.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 (330) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +160 -0
  3. package/dist/api/index.d.ts +8 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +8 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/quarry-api.d.ts +268 -0
  8. package/dist/api/quarry-api.d.ts.map +1 -0
  9. package/dist/api/quarry-api.js +3905 -0
  10. package/dist/api/quarry-api.js.map +1 -0
  11. package/dist/api/types.d.ts +1359 -0
  12. package/dist/api/types.d.ts.map +1 -0
  13. package/dist/api/types.js +204 -0
  14. package/dist/api/types.js.map +1 -0
  15. package/dist/bin/sf.d.ts +3 -0
  16. package/dist/bin/sf.d.ts.map +1 -0
  17. package/dist/bin/sf.js +9 -0
  18. package/dist/bin/sf.js.map +1 -0
  19. package/dist/cli/commands/admin.d.ts +11 -0
  20. package/dist/cli/commands/admin.d.ts.map +1 -0
  21. package/dist/cli/commands/admin.js +465 -0
  22. package/dist/cli/commands/admin.js.map +1 -0
  23. package/dist/cli/commands/alias.d.ts +8 -0
  24. package/dist/cli/commands/alias.d.ts.map +1 -0
  25. package/dist/cli/commands/alias.js +70 -0
  26. package/dist/cli/commands/alias.js.map +1 -0
  27. package/dist/cli/commands/channel.d.ts +13 -0
  28. package/dist/cli/commands/channel.d.ts.map +1 -0
  29. package/dist/cli/commands/channel.js +680 -0
  30. package/dist/cli/commands/channel.js.map +1 -0
  31. package/dist/cli/commands/completion.d.ts +8 -0
  32. package/dist/cli/commands/completion.d.ts.map +1 -0
  33. package/dist/cli/commands/completion.js +87 -0
  34. package/dist/cli/commands/completion.js.map +1 -0
  35. package/dist/cli/commands/config.d.ts +12 -0
  36. package/dist/cli/commands/config.d.ts.map +1 -0
  37. package/dist/cli/commands/config.js +242 -0
  38. package/dist/cli/commands/config.js.map +1 -0
  39. package/dist/cli/commands/crud.d.ts +64 -0
  40. package/dist/cli/commands/crud.d.ts.map +1 -0
  41. package/dist/cli/commands/crud.js +805 -0
  42. package/dist/cli/commands/crud.js.map +1 -0
  43. package/dist/cli/commands/dep.d.ts +16 -0
  44. package/dist/cli/commands/dep.d.ts.map +1 -0
  45. package/dist/cli/commands/dep.js +499 -0
  46. package/dist/cli/commands/dep.js.map +1 -0
  47. package/dist/cli/commands/document.d.ts +12 -0
  48. package/dist/cli/commands/document.d.ts.map +1 -0
  49. package/dist/cli/commands/document.js +1039 -0
  50. package/dist/cli/commands/document.js.map +1 -0
  51. package/dist/cli/commands/embeddings.d.ts +12 -0
  52. package/dist/cli/commands/embeddings.d.ts.map +1 -0
  53. package/dist/cli/commands/embeddings.js +273 -0
  54. package/dist/cli/commands/embeddings.js.map +1 -0
  55. package/dist/cli/commands/entity.d.ts +16 -0
  56. package/dist/cli/commands/entity.d.ts.map +1 -0
  57. package/dist/cli/commands/entity.js +522 -0
  58. package/dist/cli/commands/entity.js.map +1 -0
  59. package/dist/cli/commands/gc.d.ts +10 -0
  60. package/dist/cli/commands/gc.d.ts.map +1 -0
  61. package/dist/cli/commands/gc.js +257 -0
  62. package/dist/cli/commands/gc.js.map +1 -0
  63. package/dist/cli/commands/help.d.ts +11 -0
  64. package/dist/cli/commands/help.d.ts.map +1 -0
  65. package/dist/cli/commands/help.js +169 -0
  66. package/dist/cli/commands/help.js.map +1 -0
  67. package/dist/cli/commands/history.d.ts +9 -0
  68. package/dist/cli/commands/history.d.ts.map +1 -0
  69. package/dist/cli/commands/history.js +160 -0
  70. package/dist/cli/commands/history.js.map +1 -0
  71. package/dist/cli/commands/identity.d.ts +18 -0
  72. package/dist/cli/commands/identity.d.ts.map +1 -0
  73. package/dist/cli/commands/identity.js +698 -0
  74. package/dist/cli/commands/identity.js.map +1 -0
  75. package/dist/cli/commands/inbox.d.ts +20 -0
  76. package/dist/cli/commands/inbox.d.ts.map +1 -0
  77. package/dist/cli/commands/inbox.js +493 -0
  78. package/dist/cli/commands/inbox.js.map +1 -0
  79. package/dist/cli/commands/init.d.ts +20 -0
  80. package/dist/cli/commands/init.d.ts.map +1 -0
  81. package/dist/cli/commands/init.js +144 -0
  82. package/dist/cli/commands/init.js.map +1 -0
  83. package/dist/cli/commands/install.d.ts +9 -0
  84. package/dist/cli/commands/install.d.ts.map +1 -0
  85. package/dist/cli/commands/install.js +200 -0
  86. package/dist/cli/commands/install.js.map +1 -0
  87. package/dist/cli/commands/library.d.ts +12 -0
  88. package/dist/cli/commands/library.d.ts.map +1 -0
  89. package/dist/cli/commands/library.js +665 -0
  90. package/dist/cli/commands/library.js.map +1 -0
  91. package/dist/cli/commands/message.d.ts +11 -0
  92. package/dist/cli/commands/message.d.ts.map +1 -0
  93. package/dist/cli/commands/message.js +608 -0
  94. package/dist/cli/commands/message.js.map +1 -0
  95. package/dist/cli/commands/plan.d.ts +17 -0
  96. package/dist/cli/commands/plan.d.ts.map +1 -0
  97. package/dist/cli/commands/plan.js +698 -0
  98. package/dist/cli/commands/plan.js.map +1 -0
  99. package/dist/cli/commands/playbook.d.ts +12 -0
  100. package/dist/cli/commands/playbook.d.ts.map +1 -0
  101. package/dist/cli/commands/playbook.js +730 -0
  102. package/dist/cli/commands/playbook.js.map +1 -0
  103. package/dist/cli/commands/reset.d.ts +12 -0
  104. package/dist/cli/commands/reset.d.ts.map +1 -0
  105. package/dist/cli/commands/reset.js +306 -0
  106. package/dist/cli/commands/reset.js.map +1 -0
  107. package/dist/cli/commands/serve.d.ts +11 -0
  108. package/dist/cli/commands/serve.d.ts.map +1 -0
  109. package/dist/cli/commands/serve.js +106 -0
  110. package/dist/cli/commands/serve.js.map +1 -0
  111. package/dist/cli/commands/stats.d.ts +8 -0
  112. package/dist/cli/commands/stats.d.ts.map +1 -0
  113. package/dist/cli/commands/stats.js +82 -0
  114. package/dist/cli/commands/stats.js.map +1 -0
  115. package/dist/cli/commands/sync.d.ts +14 -0
  116. package/dist/cli/commands/sync.d.ts.map +1 -0
  117. package/dist/cli/commands/sync.js +370 -0
  118. package/dist/cli/commands/sync.js.map +1 -0
  119. package/dist/cli/commands/task.d.ts +25 -0
  120. package/dist/cli/commands/task.d.ts.map +1 -0
  121. package/dist/cli/commands/task.js +1153 -0
  122. package/dist/cli/commands/task.js.map +1 -0
  123. package/dist/cli/commands/team.d.ts +13 -0
  124. package/dist/cli/commands/team.d.ts.map +1 -0
  125. package/dist/cli/commands/team.js +471 -0
  126. package/dist/cli/commands/team.js.map +1 -0
  127. package/dist/cli/commands/workflow.d.ts +16 -0
  128. package/dist/cli/commands/workflow.d.ts.map +1 -0
  129. package/dist/cli/commands/workflow.js +753 -0
  130. package/dist/cli/commands/workflow.js.map +1 -0
  131. package/dist/cli/completion.d.ts +28 -0
  132. package/dist/cli/completion.d.ts.map +1 -0
  133. package/dist/cli/completion.js +295 -0
  134. package/dist/cli/completion.js.map +1 -0
  135. package/dist/cli/db.d.ts +38 -0
  136. package/dist/cli/db.d.ts.map +1 -0
  137. package/dist/cli/db.js +90 -0
  138. package/dist/cli/db.js.map +1 -0
  139. package/dist/cli/formatter.d.ts +87 -0
  140. package/dist/cli/formatter.d.ts.map +1 -0
  141. package/dist/cli/formatter.js +464 -0
  142. package/dist/cli/formatter.js.map +1 -0
  143. package/dist/cli/index.d.ts +33 -0
  144. package/dist/cli/index.d.ts.map +1 -0
  145. package/dist/cli/index.js +38 -0
  146. package/dist/cli/index.js.map +1 -0
  147. package/dist/cli/parser.d.ts +45 -0
  148. package/dist/cli/parser.d.ts.map +1 -0
  149. package/dist/cli/parser.js +256 -0
  150. package/dist/cli/parser.js.map +1 -0
  151. package/dist/cli/plugin-loader.d.ts +39 -0
  152. package/dist/cli/plugin-loader.d.ts.map +1 -0
  153. package/dist/cli/plugin-loader.js +165 -0
  154. package/dist/cli/plugin-loader.js.map +1 -0
  155. package/dist/cli/plugin-registry.d.ts +50 -0
  156. package/dist/cli/plugin-registry.d.ts.map +1 -0
  157. package/dist/cli/plugin-registry.js +206 -0
  158. package/dist/cli/plugin-registry.js.map +1 -0
  159. package/dist/cli/plugin-types.d.ts +106 -0
  160. package/dist/cli/plugin-types.d.ts.map +1 -0
  161. package/dist/cli/plugin-types.js +103 -0
  162. package/dist/cli/plugin-types.js.map +1 -0
  163. package/dist/cli/runner.d.ts +35 -0
  164. package/dist/cli/runner.d.ts.map +1 -0
  165. package/dist/cli/runner.js +340 -0
  166. package/dist/cli/runner.js.map +1 -0
  167. package/dist/cli/suggest.d.ts +15 -0
  168. package/dist/cli/suggest.d.ts.map +1 -0
  169. package/dist/cli/suggest.js +49 -0
  170. package/dist/cli/suggest.js.map +1 -0
  171. package/dist/cli/types.d.ts +138 -0
  172. package/dist/cli/types.d.ts.map +1 -0
  173. package/dist/cli/types.js +63 -0
  174. package/dist/cli/types.js.map +1 -0
  175. package/dist/config/config.d.ts +86 -0
  176. package/dist/config/config.d.ts.map +1 -0
  177. package/dist/config/config.js +348 -0
  178. package/dist/config/config.js.map +1 -0
  179. package/dist/config/defaults.d.ts +66 -0
  180. package/dist/config/defaults.d.ts.map +1 -0
  181. package/dist/config/defaults.js +114 -0
  182. package/dist/config/defaults.js.map +1 -0
  183. package/dist/config/duration.d.ts +75 -0
  184. package/dist/config/duration.d.ts.map +1 -0
  185. package/dist/config/duration.js +190 -0
  186. package/dist/config/duration.js.map +1 -0
  187. package/dist/config/env.d.ts +67 -0
  188. package/dist/config/env.d.ts.map +1 -0
  189. package/dist/config/env.js +207 -0
  190. package/dist/config/env.js.map +1 -0
  191. package/dist/config/file.d.ts +97 -0
  192. package/dist/config/file.d.ts.map +1 -0
  193. package/dist/config/file.js +365 -0
  194. package/dist/config/file.js.map +1 -0
  195. package/dist/config/index.d.ts +35 -0
  196. package/dist/config/index.d.ts.map +1 -0
  197. package/dist/config/index.js +41 -0
  198. package/dist/config/index.js.map +1 -0
  199. package/dist/config/merge.d.ts +53 -0
  200. package/dist/config/merge.d.ts.map +1 -0
  201. package/dist/config/merge.js +226 -0
  202. package/dist/config/merge.js.map +1 -0
  203. package/dist/config/types.d.ts +257 -0
  204. package/dist/config/types.d.ts.map +1 -0
  205. package/dist/config/types.js +72 -0
  206. package/dist/config/types.js.map +1 -0
  207. package/dist/config/validation.d.ts +55 -0
  208. package/dist/config/validation.d.ts.map +1 -0
  209. package/dist/config/validation.js +251 -0
  210. package/dist/config/validation.js.map +1 -0
  211. package/dist/http/index.d.ts +8 -0
  212. package/dist/http/index.d.ts.map +1 -0
  213. package/dist/http/index.js +12 -0
  214. package/dist/http/index.js.map +1 -0
  215. package/dist/http/sync-handlers.d.ts +162 -0
  216. package/dist/http/sync-handlers.d.ts.map +1 -0
  217. package/dist/http/sync-handlers.js +271 -0
  218. package/dist/http/sync-handlers.js.map +1 -0
  219. package/dist/index.d.ts +25 -0
  220. package/dist/index.d.ts.map +1 -0
  221. package/dist/index.js +69 -0
  222. package/dist/index.js.map +1 -0
  223. package/dist/server/index.d.ts +34 -0
  224. package/dist/server/index.d.ts.map +1 -0
  225. package/dist/server/index.js +3329 -0
  226. package/dist/server/index.js.map +1 -0
  227. package/dist/server/static.d.ts +18 -0
  228. package/dist/server/static.d.ts.map +1 -0
  229. package/dist/server/static.js +71 -0
  230. package/dist/server/static.js.map +1 -0
  231. package/dist/server/ws/broadcaster.d.ts +8 -0
  232. package/dist/server/ws/broadcaster.d.ts.map +1 -0
  233. package/dist/server/ws/broadcaster.js +7 -0
  234. package/dist/server/ws/broadcaster.js.map +1 -0
  235. package/dist/server/ws/handler.d.ts +55 -0
  236. package/dist/server/ws/handler.d.ts.map +1 -0
  237. package/dist/server/ws/handler.js +160 -0
  238. package/dist/server/ws/handler.js.map +1 -0
  239. package/dist/services/blocked-cache.d.ts +297 -0
  240. package/dist/services/blocked-cache.d.ts.map +1 -0
  241. package/dist/services/blocked-cache.js +755 -0
  242. package/dist/services/blocked-cache.js.map +1 -0
  243. package/dist/services/dependency.d.ts +205 -0
  244. package/dist/services/dependency.d.ts.map +1 -0
  245. package/dist/services/dependency.js +566 -0
  246. package/dist/services/dependency.js.map +1 -0
  247. package/dist/services/embeddings/fusion.d.ts +33 -0
  248. package/dist/services/embeddings/fusion.d.ts.map +1 -0
  249. package/dist/services/embeddings/fusion.js +34 -0
  250. package/dist/services/embeddings/fusion.js.map +1 -0
  251. package/dist/services/embeddings/index.d.ts +12 -0
  252. package/dist/services/embeddings/index.d.ts.map +1 -0
  253. package/dist/services/embeddings/index.js +10 -0
  254. package/dist/services/embeddings/index.js.map +1 -0
  255. package/dist/services/embeddings/local-provider.d.ts +31 -0
  256. package/dist/services/embeddings/local-provider.d.ts.map +1 -0
  257. package/dist/services/embeddings/local-provider.js +80 -0
  258. package/dist/services/embeddings/local-provider.js.map +1 -0
  259. package/dist/services/embeddings/service.d.ts +76 -0
  260. package/dist/services/embeddings/service.d.ts.map +1 -0
  261. package/dist/services/embeddings/service.js +153 -0
  262. package/dist/services/embeddings/service.js.map +1 -0
  263. package/dist/services/embeddings/types.d.ts +70 -0
  264. package/dist/services/embeddings/types.d.ts.map +1 -0
  265. package/dist/services/embeddings/types.js +8 -0
  266. package/dist/services/embeddings/types.js.map +1 -0
  267. package/dist/services/id-length-cache.d.ts +156 -0
  268. package/dist/services/id-length-cache.d.ts.map +1 -0
  269. package/dist/services/id-length-cache.js +197 -0
  270. package/dist/services/id-length-cache.js.map +1 -0
  271. package/dist/services/inbox.d.ts +147 -0
  272. package/dist/services/inbox.d.ts.map +1 -0
  273. package/dist/services/inbox.js +428 -0
  274. package/dist/services/inbox.js.map +1 -0
  275. package/dist/services/index.d.ts +10 -0
  276. package/dist/services/index.d.ts.map +1 -0
  277. package/dist/services/index.js +10 -0
  278. package/dist/services/index.js.map +1 -0
  279. package/dist/services/priority-service.d.ts +145 -0
  280. package/dist/services/priority-service.d.ts.map +1 -0
  281. package/dist/services/priority-service.js +272 -0
  282. package/dist/services/priority-service.js.map +1 -0
  283. package/dist/services/search-utils.d.ts +47 -0
  284. package/dist/services/search-utils.d.ts.map +1 -0
  285. package/dist/services/search-utils.js +83 -0
  286. package/dist/services/search-utils.js.map +1 -0
  287. package/dist/sync/hash.d.ts +48 -0
  288. package/dist/sync/hash.d.ts.map +1 -0
  289. package/dist/sync/hash.js +136 -0
  290. package/dist/sync/hash.js.map +1 -0
  291. package/dist/sync/index.d.ts +11 -0
  292. package/dist/sync/index.d.ts.map +1 -0
  293. package/dist/sync/index.js +16 -0
  294. package/dist/sync/index.js.map +1 -0
  295. package/dist/sync/merge.d.ts +80 -0
  296. package/dist/sync/merge.d.ts.map +1 -0
  297. package/dist/sync/merge.js +310 -0
  298. package/dist/sync/merge.js.map +1 -0
  299. package/dist/sync/serialization.d.ts +132 -0
  300. package/dist/sync/serialization.d.ts.map +1 -0
  301. package/dist/sync/serialization.js +306 -0
  302. package/dist/sync/serialization.js.map +1 -0
  303. package/dist/sync/service.d.ts +102 -0
  304. package/dist/sync/service.d.ts.map +1 -0
  305. package/dist/sync/service.js +493 -0
  306. package/dist/sync/service.js.map +1 -0
  307. package/dist/sync/types.d.ts +275 -0
  308. package/dist/sync/types.d.ts.map +1 -0
  309. package/dist/sync/types.js +76 -0
  310. package/dist/sync/types.js.map +1 -0
  311. package/dist/systems/identity.d.ts +479 -0
  312. package/dist/systems/identity.d.ts.map +1 -0
  313. package/dist/systems/identity.js +817 -0
  314. package/dist/systems/identity.js.map +1 -0
  315. package/dist/systems/index.d.ts +8 -0
  316. package/dist/systems/index.d.ts.map +1 -0
  317. package/dist/systems/index.js +29 -0
  318. package/dist/systems/index.js.map +1 -0
  319. package/package.json +121 -0
  320. package/web/assets/charts-vendor-D1YcbGux.js +55 -0
  321. package/web/assets/dnd-vendor-DmxE-_ZH.js +5 -0
  322. package/web/assets/editor-vendor-BxraAWts.js +279 -0
  323. package/web/assets/index-B77vv208.js +341 -0
  324. package/web/assets/index-CF_XnVLh.css +1 -0
  325. package/web/assets/router-vendor-BCKpRBrB.js +41 -0
  326. package/web/assets/ui-vendor-DUahGnbT.js +45 -0
  327. package/web/assets/utils-vendor-CfYKiENT.js +813 -0
  328. package/web/favicon.ico +0 -0
  329. package/web/index.html +23 -0
  330. package/web/logo.png +0 -0
@@ -0,0 +1,464 @@
1
+ /**
2
+ * CLI Output Formatter
3
+ *
4
+ * Handles formatting output for different modes (human, JSON, quiet).
5
+ */
6
+ // ============================================================================
7
+ // Human Formatter
8
+ // ============================================================================
9
+ /**
10
+ * Human-readable output formatter
11
+ */
12
+ class HumanFormatter {
13
+ success(result) {
14
+ if (result.message) {
15
+ return result.message;
16
+ }
17
+ if (result.data !== undefined) {
18
+ return formatValue(result.data);
19
+ }
20
+ return '';
21
+ }
22
+ error(result) {
23
+ return `Error: ${result.error}`;
24
+ }
25
+ table(headers, rows) {
26
+ if (rows.length === 0) {
27
+ return 'No results';
28
+ }
29
+ // Calculate column widths
30
+ const widths = headers.map((h, i) => {
31
+ const maxDataWidth = Math.max(...rows.map(r => String(r[i] ?? '').length));
32
+ return Math.max(h.length, maxDataWidth);
33
+ });
34
+ // Build header row
35
+ const headerRow = headers.map((h, i) => h.padEnd(widths[i])).join(' ');
36
+ const separator = widths.map(w => '-'.repeat(w)).join(' ');
37
+ // Build data rows
38
+ const dataRows = rows.map(row => row.map((cell, i) => String(cell ?? '').padEnd(widths[i])).join(' '));
39
+ return [headerRow, separator, ...dataRows].join('\n');
40
+ }
41
+ element(data) {
42
+ const lines = [];
43
+ const maxKeyLength = Math.max(...Object.keys(data).map(k => k.length));
44
+ for (const [key, value] of Object.entries(data)) {
45
+ const paddedKey = key.padEnd(maxKeyLength);
46
+ lines.push(`${paddedKey} ${formatValue(value)}`);
47
+ }
48
+ return lines.join('\n');
49
+ }
50
+ list(items) {
51
+ if (items.length === 0) {
52
+ return 'No results';
53
+ }
54
+ // Extract common display fields
55
+ const displayFields = ['id', 'title', 'name', 'status', 'type'];
56
+ const headers = displayFields.filter(f => items.some(item => item[f] !== undefined));
57
+ const rows = items.map(item => headers.map(h => item[h]));
58
+ return this.table(headers.map(h => h.toUpperCase()), rows);
59
+ }
60
+ tree(node, prefix = '', isLast = true) {
61
+ const connector = isLast ? '└── ' : '├── ';
62
+ const lines = [prefix + connector + node.label];
63
+ if (node.children) {
64
+ const childPrefix = prefix + (isLast ? ' ' : '│ ');
65
+ for (let i = 0; i < node.children.length; i++) {
66
+ const child = node.children[i];
67
+ const childIsLast = i === node.children.length - 1;
68
+ lines.push(this.tree(child, childPrefix, childIsLast));
69
+ }
70
+ }
71
+ return lines.join('\n');
72
+ }
73
+ }
74
+ // ============================================================================
75
+ // Verbose Formatter
76
+ // ============================================================================
77
+ /**
78
+ * Verbose output formatter - extends human format with extra details
79
+ */
80
+ class VerboseFormatter {
81
+ humanFormatter = new HumanFormatter();
82
+ success(result) {
83
+ // Use human formatter for success, but add more details if available
84
+ const basic = this.humanFormatter.success(result);
85
+ // Add data details if it's an object
86
+ if (result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
87
+ const details = Object.entries(result.data)
88
+ .map(([k, v]) => ` ${k}: ${JSON.stringify(v)}`)
89
+ .join('\n');
90
+ return `${basic}\n\nDetails:\n${details}`;
91
+ }
92
+ return basic;
93
+ }
94
+ error(result) {
95
+ const lines = [`Error: ${result.error}`];
96
+ // Add exit code
97
+ lines.push(` Code: ${result.exitCode}`);
98
+ // Add details if available
99
+ if (result.data && typeof result.data === 'object') {
100
+ lines.push(` Details: ${JSON.stringify(result.data)}`);
101
+ }
102
+ // Add stack trace hint
103
+ lines.push('');
104
+ lines.push('For more details, check the application logs.');
105
+ return lines.join('\n');
106
+ }
107
+ table(headers, rows) {
108
+ return this.humanFormatter.table(headers, rows);
109
+ }
110
+ element(data) {
111
+ return this.humanFormatter.element(data);
112
+ }
113
+ list(items) {
114
+ return this.humanFormatter.list(items);
115
+ }
116
+ tree(data) {
117
+ return this.humanFormatter.tree(data);
118
+ }
119
+ }
120
+ // ============================================================================
121
+ // JSON Formatter
122
+ // ============================================================================
123
+ /**
124
+ * JSON output formatter
125
+ */
126
+ class JsonFormatter {
127
+ success(result) {
128
+ return JSON.stringify({
129
+ success: true,
130
+ data: result.data,
131
+ }, null, 2);
132
+ }
133
+ error(result) {
134
+ return JSON.stringify({
135
+ success: false,
136
+ error: result.error,
137
+ exitCode: result.exitCode,
138
+ }, null, 2);
139
+ }
140
+ table(_headers, rows) {
141
+ return JSON.stringify(rows, null, 2);
142
+ }
143
+ element(data) {
144
+ return JSON.stringify(data, null, 2);
145
+ }
146
+ list(items) {
147
+ return JSON.stringify(items, null, 2);
148
+ }
149
+ tree(data) {
150
+ return JSON.stringify(data, null, 2);
151
+ }
152
+ }
153
+ // ============================================================================
154
+ // Quiet Formatter
155
+ // ============================================================================
156
+ /**
157
+ * Quiet/minimal output formatter
158
+ */
159
+ class QuietFormatter {
160
+ success(result) {
161
+ // In quiet mode, only output IDs or minimal data
162
+ if (result.data === undefined)
163
+ return '';
164
+ if (typeof result.data === 'string') {
165
+ return result.data;
166
+ }
167
+ if (Array.isArray(result.data)) {
168
+ return result.data
169
+ .map(item => {
170
+ if (typeof item === 'object' && item !== null && 'id' in item) {
171
+ return item.id;
172
+ }
173
+ return String(item);
174
+ })
175
+ .join('\n');
176
+ }
177
+ if (typeof result.data === 'object' && result.data !== null && 'id' in result.data) {
178
+ return result.data.id;
179
+ }
180
+ return '';
181
+ }
182
+ error(result) {
183
+ return result.error ?? 'Error';
184
+ }
185
+ table(_headers, rows) {
186
+ // Output first column (typically ID)
187
+ return rows.map(row => String(row[0] ?? '')).join('\n');
188
+ }
189
+ element(data) {
190
+ // Output ID if present
191
+ if (data.id) {
192
+ return String(data.id);
193
+ }
194
+ return '';
195
+ }
196
+ list(items) {
197
+ return items
198
+ .map(item => item.id ?? '')
199
+ .filter(Boolean)
200
+ .join('\n');
201
+ }
202
+ tree(data) {
203
+ // Flatten tree to labels only
204
+ const flatten = (node) => {
205
+ const result = [node.label];
206
+ if (node.children) {
207
+ for (const child of node.children) {
208
+ result.push(...flatten(child));
209
+ }
210
+ }
211
+ return result;
212
+ };
213
+ return flatten(data).join('\n');
214
+ }
215
+ }
216
+ // ============================================================================
217
+ // Formatter Factory
218
+ // ============================================================================
219
+ const formatters = {
220
+ human: new HumanFormatter(),
221
+ verbose: new VerboseFormatter(),
222
+ json: new JsonFormatter(),
223
+ quiet: new QuietFormatter(),
224
+ };
225
+ /**
226
+ * Gets the appropriate formatter for the output mode
227
+ */
228
+ export function getFormatter(mode) {
229
+ return formatters[mode];
230
+ }
231
+ /**
232
+ * Determines output mode from global options
233
+ */
234
+ export function getOutputMode(options) {
235
+ if (options.json)
236
+ return 'json';
237
+ if (options.quiet)
238
+ return 'quiet';
239
+ if (options.verbose)
240
+ return 'verbose';
241
+ return 'human';
242
+ }
243
+ // ============================================================================
244
+ // Helpers
245
+ // ============================================================================
246
+ /**
247
+ * Formats a value for human display
248
+ */
249
+ function formatValue(value) {
250
+ if (value === null || value === undefined) {
251
+ return '-';
252
+ }
253
+ if (typeof value === 'boolean') {
254
+ return value ? 'yes' : 'no';
255
+ }
256
+ if (Array.isArray(value)) {
257
+ if (value.length === 0)
258
+ return '-';
259
+ return value.join(', ');
260
+ }
261
+ if (typeof value === 'object') {
262
+ return JSON.stringify(value);
263
+ }
264
+ return String(value);
265
+ }
266
+ // ============================================================================
267
+ // Status Styling
268
+ // ============================================================================
269
+ /**
270
+ * Status display characters (can be extended with colors)
271
+ */
272
+ export const STATUS_ICONS = {
273
+ open: '○',
274
+ in_progress: '◐',
275
+ blocked: '●',
276
+ deferred: '◌',
277
+ closed: '✓',
278
+ tombstone: '×',
279
+ draft: '○',
280
+ active: '◐',
281
+ completed: '✓',
282
+ abandoned: '×',
283
+ pending: '○',
284
+ running: '◐',
285
+ paused: '◌',
286
+ failed: '×',
287
+ };
288
+ /**
289
+ * Gets the status icon for a status value
290
+ */
291
+ export function getStatusIcon(status) {
292
+ return STATUS_ICONS[status] ?? '?';
293
+ }
294
+ // ============================================================================
295
+ // Event Formatting
296
+ // ============================================================================
297
+ /**
298
+ * Event type display names
299
+ */
300
+ export const EVENT_TYPE_DISPLAY = {
301
+ created: 'Created',
302
+ updated: 'Updated',
303
+ closed: 'Closed',
304
+ reopened: 'Reopened',
305
+ deleted: 'Deleted',
306
+ dependency_added: 'Dependency Added',
307
+ dependency_removed: 'Dependency Removed',
308
+ tag_added: 'Tag Added',
309
+ tag_removed: 'Tag Removed',
310
+ member_added: 'Member Added',
311
+ member_removed: 'Member Removed',
312
+ };
313
+ /**
314
+ * Event type icons
315
+ */
316
+ export const EVENT_TYPE_ICONS = {
317
+ created: '+',
318
+ updated: '~',
319
+ closed: '✓',
320
+ reopened: '↺',
321
+ deleted: '×',
322
+ dependency_added: '→',
323
+ dependency_removed: '←',
324
+ tag_added: '#',
325
+ tag_removed: '#',
326
+ member_added: '+',
327
+ member_removed: '-',
328
+ };
329
+ /**
330
+ * Formats a single event for human display
331
+ */
332
+ export function formatEvent(event) {
333
+ const icon = EVENT_TYPE_ICONS[event.eventType] ?? '?';
334
+ const type = EVENT_TYPE_DISPLAY[event.eventType] ?? event.eventType;
335
+ const time = formatTimestamp(event.createdAt);
336
+ const actor = event.actor.replace(/^.*:/, ''); // Remove prefix (e.g., "user:alice" -> "alice")
337
+ return `${icon} ${type} by ${actor} at ${time}`;
338
+ }
339
+ /**
340
+ * Formats a timestamp for display
341
+ */
342
+ export function formatTimestamp(timestamp) {
343
+ try {
344
+ const date = new Date(timestamp);
345
+ const now = new Date();
346
+ const diff = now.getTime() - date.getTime();
347
+ // Within last minute
348
+ if (diff < 60_000) {
349
+ return 'just now';
350
+ }
351
+ // Within last hour
352
+ if (diff < 3_600_000) {
353
+ const mins = Math.floor(diff / 60_000);
354
+ return `${mins}m ago`;
355
+ }
356
+ // Within last day
357
+ if (diff < 86_400_000) {
358
+ const hours = Math.floor(diff / 3_600_000);
359
+ return `${hours}h ago`;
360
+ }
361
+ // Within last week
362
+ if (diff < 604_800_000) {
363
+ const days = Math.floor(diff / 86_400_000);
364
+ return `${days}d ago`;
365
+ }
366
+ // Otherwise show date
367
+ return date.toLocaleDateString();
368
+ }
369
+ catch {
370
+ return timestamp;
371
+ }
372
+ }
373
+ /**
374
+ * Formats events as a timeline
375
+ */
376
+ export function formatTimeline(events) {
377
+ if (events.length === 0) {
378
+ return 'No events';
379
+ }
380
+ const lines = [];
381
+ for (const event of events) {
382
+ lines.push(formatEvent(event));
383
+ }
384
+ return lines.join('\n');
385
+ }
386
+ /**
387
+ * Formats events as a detailed table
388
+ */
389
+ export function formatEventsTable(events) {
390
+ if (events.length === 0) {
391
+ return 'No events';
392
+ }
393
+ const headers = ['TIME', 'TYPE', 'ACTOR', 'CHANGES'];
394
+ const rows = events.map(event => {
395
+ const time = formatTimestamp(event.createdAt);
396
+ const type = EVENT_TYPE_DISPLAY[event.eventType] ?? event.eventType;
397
+ const actor = event.actor.replace(/^.*:/, '');
398
+ const changes = formatChanges(event);
399
+ return [time, type, actor, changes];
400
+ });
401
+ // Calculate column widths
402
+ const widths = headers.map((h, i) => {
403
+ const maxDataWidth = Math.max(...rows.map(r => String(r[i] ?? '').length));
404
+ return Math.max(h.length, maxDataWidth);
405
+ });
406
+ // Build output
407
+ const headerRow = headers.map((h, i) => h.padEnd(widths[i])).join(' ');
408
+ const separator = widths.map(w => '-'.repeat(w)).join(' ');
409
+ const dataRows = rows.map(row => row.map((cell, i) => String(cell ?? '').padEnd(widths[i])).join(' '));
410
+ return [headerRow, separator, ...dataRows].join('\n');
411
+ }
412
+ /**
413
+ * Formats the changes from an event
414
+ */
415
+ function formatChanges(event) {
416
+ if (event.eventType === 'created') {
417
+ return 'New element';
418
+ }
419
+ if (event.eventType === 'deleted') {
420
+ return 'Element deleted';
421
+ }
422
+ if (event.eventType === 'closed') {
423
+ return 'Status → closed';
424
+ }
425
+ if (event.eventType === 'reopened') {
426
+ return 'Status → open';
427
+ }
428
+ if (event.eventType === 'dependency_added' || event.eventType === 'dependency_removed') {
429
+ const depInfo = event.newValue ?? event.oldValue;
430
+ if (depInfo && typeof depInfo === 'object') {
431
+ const blockerId = depInfo.blockerId;
432
+ const depType = depInfo.type;
433
+ if (blockerId) {
434
+ return `${depType ?? 'dep'}: ${blockerId}`;
435
+ }
436
+ }
437
+ return event.eventType === 'dependency_added' ? 'Added' : 'Removed';
438
+ }
439
+ // For updates, show changed fields
440
+ if (event.oldValue && event.newValue) {
441
+ const changes = [];
442
+ for (const key of Object.keys(event.newValue)) {
443
+ if (key === 'updatedAt' || key === 'createdAt' || key === 'id' || key === 'type')
444
+ continue;
445
+ const oldVal = event.oldValue[key];
446
+ const newVal = event.newValue[key];
447
+ if (JSON.stringify(oldVal) !== JSON.stringify(newVal)) {
448
+ const oldStr = oldVal === undefined || oldVal === null ? '-' : String(oldVal);
449
+ const newStr = newVal === undefined || newVal === null ? '-' : String(newVal);
450
+ if (oldStr.length > 20) {
451
+ changes.push(`${key} changed`);
452
+ }
453
+ else {
454
+ changes.push(`${key}: ${oldStr} → ${newStr}`);
455
+ }
456
+ }
457
+ }
458
+ if (changes.length > 0) {
459
+ return changes.slice(0, 2).join(', ') + (changes.length > 2 ? '...' : '');
460
+ }
461
+ }
462
+ return '-';
463
+ }
464
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/cli/formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * CLI Module - Command-line interface for Stoneforge
3
+ */
4
+ export * from './types.js';
5
+ export type { CLIPlugin, PluginsConfig as CLIPluginsConfig, PluginDiscoveryResult, PluginRegistrationResult } from './plugin-types.js';
6
+ export { isValidCLIPlugin, isValidPluginsConfig } from './plugin-types.js';
7
+ export { discoverPlugins, getKnownPluginPackages } from './plugin-loader.js';
8
+ export { registerPluginCommands, registerAllPlugins, getPluginCommandSummary } from './plugin-registry.js';
9
+ export { parseArgs, validateRequiredOptions, getGlobalOptionsHelp, getCommandOptionsHelp } from './parser.js';
10
+ export { getFormatter, getOutputMode, getStatusIcon, type OutputFormatter, type TreeNode } from './formatter.js';
11
+ export { registerCommand, registerAlias, getCommand, getAllCommands, getAllAliases, run, main } from './runner.js';
12
+ export { initCommand, OPERATOR_ENTITY_ID, OPERATOR_ENTITY_NAME } from './commands/init.js';
13
+ export { resetCommand } from './commands/reset.js';
14
+ export { configCommand } from './commands/config.js';
15
+ export { helpCommand, versionCommand, getCommandHelp } from './commands/help.js';
16
+ export { showCommand, createHandler, listHandler, showHandler, updateHandler, deleteHandler } from './commands/crud.js';
17
+ export { depCommand, depAddCommand, depRemoveCommand, depListCommand, depTreeCommand } from './commands/dep.js';
18
+ export { readyCommand, blockedCommand, backlogCommand, closeCommand, reopenCommand, assignCommand, deferCommand, undeferCommand, describeCommand, activateCommand, taskCommand, } from './commands/task.js';
19
+ export { statsCommand } from './commands/stats.js';
20
+ export { planCommand } from './commands/plan.js';
21
+ export { workflowCommand } from './commands/workflow.js';
22
+ export { playbookCommand } from './commands/playbook.js';
23
+ export { channelCommand } from './commands/channel.js';
24
+ export { libraryCommand } from './commands/library.js';
25
+ export { teamCommand } from './commands/team.js';
26
+ export { documentCommand } from './commands/document.js';
27
+ export { embeddingsCommand } from './commands/embeddings.js';
28
+ export { messageCommand } from './commands/message.js';
29
+ export { completionCommand } from './commands/completion.js';
30
+ export { aliasCommand } from './commands/alias.js';
31
+ export { serveCommand } from './commands/serve.js';
32
+ export { generateCompletion, generateBashCompletion, generateZshCompletion, generateFishCompletion, getInstallInstructions, type ShellType } from './completion.js';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;AAG3B,YAAY,EAAE,SAAS,EAAE,aAAa,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACvI,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG3G,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG9G,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGjH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EACL,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAC1D,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAC1D,eAAe,EAAE,eAAe,EAAE,WAAW,GAC9C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * CLI Module - Command-line interface for Stoneforge
3
+ */
4
+ // Types
5
+ export * from './types.js';
6
+ export { isValidCLIPlugin, isValidPluginsConfig } from './plugin-types.js';
7
+ export { discoverPlugins, getKnownPluginPackages } from './plugin-loader.js';
8
+ export { registerPluginCommands, registerAllPlugins, getPluginCommandSummary } from './plugin-registry.js';
9
+ // Parser
10
+ export { parseArgs, validateRequiredOptions, getGlobalOptionsHelp, getCommandOptionsHelp } from './parser.js';
11
+ // Formatter
12
+ export { getFormatter, getOutputMode, getStatusIcon } from './formatter.js';
13
+ // Runner
14
+ export { registerCommand, registerAlias, getCommand, getAllCommands, getAllAliases, run, main } from './runner.js';
15
+ // Commands
16
+ export { initCommand, OPERATOR_ENTITY_ID, OPERATOR_ENTITY_NAME } from './commands/init.js';
17
+ export { resetCommand } from './commands/reset.js';
18
+ export { configCommand } from './commands/config.js';
19
+ export { helpCommand, versionCommand, getCommandHelp } from './commands/help.js';
20
+ export { showCommand, createHandler, listHandler, showHandler, updateHandler, deleteHandler } from './commands/crud.js';
21
+ export { depCommand, depAddCommand, depRemoveCommand, depListCommand, depTreeCommand } from './commands/dep.js';
22
+ export { readyCommand, blockedCommand, backlogCommand, closeCommand, reopenCommand, assignCommand, deferCommand, undeferCommand, describeCommand, activateCommand, taskCommand, } from './commands/task.js';
23
+ export { statsCommand } from './commands/stats.js';
24
+ export { planCommand } from './commands/plan.js';
25
+ export { workflowCommand } from './commands/workflow.js';
26
+ export { playbookCommand } from './commands/playbook.js';
27
+ export { channelCommand } from './commands/channel.js';
28
+ export { libraryCommand } from './commands/library.js';
29
+ export { teamCommand } from './commands/team.js';
30
+ export { documentCommand } from './commands/document.js';
31
+ export { embeddingsCommand } from './commands/embeddings.js';
32
+ export { messageCommand } from './commands/message.js';
33
+ export { completionCommand } from './commands/completion.js';
34
+ export { aliasCommand } from './commands/alias.js';
35
+ export { serveCommand } from './commands/serve.js';
36
+ // Completion
37
+ export { generateCompletion, generateBashCompletion, generateZshCompletion, generateFishCompletion, getInstallInstructions } from './completion.js';
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAI3B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE3G,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE9G,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAuC,MAAM,gBAAgB,CAAC;AAEjH,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnH,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EACL,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAC1D,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAC1D,eAAe,EAAE,eAAe,EAAE,WAAW,GAC9C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,aAAa;AACb,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAkB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * CLI Argument Parser
3
+ *
4
+ * Parses command-line arguments into structured command and options.
5
+ */
6
+ import type { ParsedCommandLine, CommandOption } from './types.js';
7
+ /**
8
+ * Unescapes common shell escape sequences that shells may add.
9
+ *
10
+ * Shells like bash and zsh often escape exclamation marks (!) with backslashes
11
+ * to disable history expansion. When running commands through nested shells or
12
+ * through tools like Claude Code, multiple layers of escaping can occur,
13
+ * resulting in sequences like \\! or even \\\\!
14
+ *
15
+ * This function removes those unnecessary escapes to provide the expected user input.
16
+ *
17
+ * @param value - The string value to unescape
18
+ * @returns The unescaped string
19
+ */
20
+ export declare function unescapeShellArtifacts(value: string): string;
21
+ /**
22
+ * Parses command-line arguments
23
+ *
24
+ * @param argv - Raw arguments (typically process.argv.slice(2))
25
+ * @param commandOptions - Optional command-specific option definitions
26
+ * @param parserOptions - Parser options
27
+ * @param parserOptions.strict - If false, unknown options are skipped instead of throwing (default: true)
28
+ * @returns Parsed command line structure
29
+ */
30
+ export declare function parseArgs(argv: string[], commandOptions?: CommandOption[], parserOptions?: {
31
+ strict?: boolean;
32
+ }): ParsedCommandLine;
33
+ /**
34
+ * Validates that required options are present
35
+ */
36
+ export declare function validateRequiredOptions(commandOptions: Record<string, unknown>, definitions: CommandOption[]): void;
37
+ /**
38
+ * Generates help text for global options
39
+ */
40
+ export declare function getGlobalOptionsHelp(): string;
41
+ /**
42
+ * Generates help text for command-specific options
43
+ */
44
+ export declare function getCommandOptionsHelp(options: CommandOption[]): string;
45
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAiB,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOlF;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO5D;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,cAAc,GAAE,aAAa,EAAO,EACpC,aAAa,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACvC,iBAAiB,CAqInB;AAoBD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,WAAW,EAAE,aAAa,EAAE,GAC3B,IAAI,CAMN;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAY7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAYtE"}