@seawork/cli 1.0.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 (358) hide show
  1. package/bin/seawork +3 -0
  2. package/dist/classify.d.ts +19 -0
  3. package/dist/classify.d.ts.map +1 -0
  4. package/dist/classify.js +49 -0
  5. package/dist/classify.js.map +1 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +103 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/agent/archive.d.ts +18 -0
  11. package/dist/commands/agent/archive.d.ts.map +1 -0
  12. package/dist/commands/agent/archive.js +102 -0
  13. package/dist/commands/agent/archive.js.map +1 -0
  14. package/dist/commands/agent/attach.d.ts +11 -0
  15. package/dist/commands/agent/attach.d.ts.map +1 -0
  16. package/dist/commands/agent/attach.js +158 -0
  17. package/dist/commands/agent/attach.js.map +1 -0
  18. package/dist/commands/agent/delete.d.ts +15 -0
  19. package/dist/commands/agent/delete.d.ts.map +1 -0
  20. package/dist/commands/agent/delete.js +99 -0
  21. package/dist/commands/agent/delete.js.map +1 -0
  22. package/dist/commands/agent/index.d.ts +3 -0
  23. package/dist/commands/agent/index.d.ts.map +1 -0
  24. package/dist/commands/agent/index.js +46 -0
  25. package/dist/commands/agent/index.js.map +1 -0
  26. package/dist/commands/agent/inspect.d.ts +15 -0
  27. package/dist/commands/agent/inspect.d.ts.map +1 -0
  28. package/dist/commands/agent/inspect.js +207 -0
  29. package/dist/commands/agent/inspect.js.map +1 -0
  30. package/dist/commands/agent/logs.d.ts +16 -0
  31. package/dist/commands/agent/logs.d.ts.map +1 -0
  32. package/dist/commands/agent/logs.js +172 -0
  33. package/dist/commands/agent/logs.js.map +1 -0
  34. package/dist/commands/agent/ls.d.ts +38 -0
  35. package/dist/commands/agent/ls.d.ts.map +1 -0
  36. package/dist/commands/agent/ls.js +191 -0
  37. package/dist/commands/agent/ls.js.map +1 -0
  38. package/dist/commands/agent/mode.d.ts +18 -0
  39. package/dist/commands/agent/mode.d.ts.map +1 -0
  40. package/dist/commands/agent/mode.js +100 -0
  41. package/dist/commands/agent/mode.js.map +1 -0
  42. package/dist/commands/agent/reload.d.ts +15 -0
  43. package/dist/commands/agent/reload.d.ts.map +1 -0
  44. package/dist/commands/agent/reload.js +75 -0
  45. package/dist/commands/agent/reload.js.map +1 -0
  46. package/dist/commands/agent/run.d.ts +47 -0
  47. package/dist/commands/agent/run.d.ts.map +1 -0
  48. package/dist/commands/agent/run.js +431 -0
  49. package/dist/commands/agent/run.js.map +1 -0
  50. package/dist/commands/agent/send.d.ts +19 -0
  51. package/dist/commands/agent/send.d.ts.map +1 -0
  52. package/dist/commands/agent/send.js +217 -0
  53. package/dist/commands/agent/send.js.map +1 -0
  54. package/dist/commands/agent/stop.d.ts +17 -0
  55. package/dist/commands/agent/stop.d.ts.map +1 -0
  56. package/dist/commands/agent/stop.js +107 -0
  57. package/dist/commands/agent/stop.js.map +1 -0
  58. package/dist/commands/agent/update.d.ts +18 -0
  59. package/dist/commands/agent/update.d.ts.map +1 -0
  60. package/dist/commands/agent/update.js +139 -0
  61. package/dist/commands/agent/update.js.map +1 -0
  62. package/dist/commands/agent/wait.d.ts +17 -0
  63. package/dist/commands/agent/wait.d.ts.map +1 -0
  64. package/dist/commands/agent/wait.js +164 -0
  65. package/dist/commands/agent/wait.js.map +1 -0
  66. package/dist/commands/chat/create.d.ts +9 -0
  67. package/dist/commands/chat/create.d.ts.map +1 -0
  68. package/dist/commands/chat/create.js +23 -0
  69. package/dist/commands/chat/create.js.map +1 -0
  70. package/dist/commands/chat/delete.d.ts +6 -0
  71. package/dist/commands/chat/delete.d.ts.map +1 -0
  72. package/dist/commands/chat/delete.js +20 -0
  73. package/dist/commands/chat/delete.js.map +1 -0
  74. package/dist/commands/chat/index.d.ts +3 -0
  75. package/dist/commands/chat/index.d.ts.map +1 -0
  76. package/dist/commands/chat/index.js +47 -0
  77. package/dist/commands/chat/index.js.map +1 -0
  78. package/dist/commands/chat/inspect.d.ts +6 -0
  79. package/dist/commands/chat/inspect.d.ts.map +1 -0
  80. package/dist/commands/chat/inspect.js +20 -0
  81. package/dist/commands/chat/inspect.js.map +1 -0
  82. package/dist/commands/chat/ls.d.ts +6 -0
  83. package/dist/commands/chat/ls.d.ts.map +1 -0
  84. package/dist/commands/chat/ls.js +20 -0
  85. package/dist/commands/chat/ls.js.map +1 -0
  86. package/dist/commands/chat/post.d.ts +9 -0
  87. package/dist/commands/chat/post.d.ts.map +1 -0
  88. package/dist/commands/chat/post.js +28 -0
  89. package/dist/commands/chat/post.js.map +1 -0
  90. package/dist/commands/chat/read.d.ts +11 -0
  91. package/dist/commands/chat/read.d.ts.map +1 -0
  92. package/dist/commands/chat/read.js +40 -0
  93. package/dist/commands/chat/read.js.map +1 -0
  94. package/dist/commands/chat/schema.d.ts +36 -0
  95. package/dist/commands/chat/schema.d.ts.map +1 -0
  96. package/dist/commands/chat/schema.js +81 -0
  97. package/dist/commands/chat/schema.js.map +1 -0
  98. package/dist/commands/chat/shared.d.ts +16 -0
  99. package/dist/commands/chat/shared.d.ts.map +1 -0
  100. package/dist/commands/chat/shared.js +108 -0
  101. package/dist/commands/chat/shared.js.map +1 -0
  102. package/dist/commands/chat/wait.d.ts +9 -0
  103. package/dist/commands/chat/wait.d.ts.map +1 -0
  104. package/dist/commands/chat/wait.js +30 -0
  105. package/dist/commands/chat/wait.js.map +1 -0
  106. package/dist/commands/daemon/index.d.ts +3 -0
  107. package/dist/commands/daemon/index.d.ts.map +1 -0
  108. package/dist/commands/daemon/index.js +34 -0
  109. package/dist/commands/daemon/index.js.map +1 -0
  110. package/dist/commands/daemon/local-daemon.d.ts +54 -0
  111. package/dist/commands/daemon/local-daemon.d.ts.map +1 -0
  112. package/dist/commands/daemon/local-daemon.js +400 -0
  113. package/dist/commands/daemon/local-daemon.js.map +1 -0
  114. package/dist/commands/daemon/pair.d.ts +9 -0
  115. package/dist/commands/daemon/pair.d.ts.map +1 -0
  116. package/dist/commands/daemon/pair.js +42 -0
  117. package/dist/commands/daemon/pair.js.map +1 -0
  118. package/dist/commands/daemon/restart.d.ts +12 -0
  119. package/dist/commands/daemon/restart.d.ts.map +1 -0
  120. package/dist/commands/daemon/restart.js +98 -0
  121. package/dist/commands/daemon/restart.js.map +1 -0
  122. package/dist/commands/daemon/runtime-toolchain.d.ts +6 -0
  123. package/dist/commands/daemon/runtime-toolchain.d.ts.map +1 -0
  124. package/dist/commands/daemon/runtime-toolchain.js +102 -0
  125. package/dist/commands/daemon/runtime-toolchain.js.map +1 -0
  126. package/dist/commands/daemon/start.d.ts +6 -0
  127. package/dist/commands/daemon/start.d.ts.map +1 -0
  128. package/dist/commands/daemon/start.js +49 -0
  129. package/dist/commands/daemon/start.js.map +1 -0
  130. package/dist/commands/daemon/status.d.ts +10 -0
  131. package/dist/commands/daemon/status.d.ts.map +1 -0
  132. package/dist/commands/daemon/status.js +269 -0
  133. package/dist/commands/daemon/status.js.map +1 -0
  134. package/dist/commands/daemon/stop.d.ts +12 -0
  135. package/dist/commands/daemon/stop.d.ts.map +1 -0
  136. package/dist/commands/daemon/stop.js +56 -0
  137. package/dist/commands/daemon/stop.js.map +1 -0
  138. package/dist/commands/loop/index.d.ts +3 -0
  139. package/dist/commands/loop/index.d.ts.map +1 -0
  140. package/dist/commands/loop/index.js +18 -0
  141. package/dist/commands/loop/index.js.map +1 -0
  142. package/dist/commands/loop/inspect.d.ts +13 -0
  143. package/dist/commands/loop/inspect.d.ts.map +1 -0
  144. package/dist/commands/loop/inspect.js +100 -0
  145. package/dist/commands/loop/inspect.js.map +1 -0
  146. package/dist/commands/loop/logs.d.ts +8 -0
  147. package/dist/commands/loop/logs.d.ts.map +1 -0
  148. package/dist/commands/loop/logs.js +69 -0
  149. package/dist/commands/loop/logs.js.map +1 -0
  150. package/dist/commands/loop/ls.d.ts +18 -0
  151. package/dist/commands/loop/ls.d.ts.map +1 -0
  152. package/dist/commands/loop/ls.js +62 -0
  153. package/dist/commands/loop/ls.js.map +1 -0
  154. package/dist/commands/loop/run.d.ts +26 -0
  155. package/dist/commands/loop/run.d.ts.map +1 -0
  156. package/dist/commands/loop/run.js +116 -0
  157. package/dist/commands/loop/run.js.map +1 -0
  158. package/dist/commands/loop/stop.d.ts +15 -0
  159. package/dist/commands/loop/stop.d.ts.map +1 -0
  160. package/dist/commands/loop/stop.js +56 -0
  161. package/dist/commands/loop/stop.js.map +1 -0
  162. package/dist/commands/loop/types.d.ts +134 -0
  163. package/dist/commands/loop/types.d.ts.map +1 -0
  164. package/dist/commands/loop/types.js +2 -0
  165. package/dist/commands/loop/types.js.map +1 -0
  166. package/dist/commands/onboard.d.ts +10 -0
  167. package/dist/commands/onboard.d.ts.map +1 -0
  168. package/dist/commands/onboard.js +374 -0
  169. package/dist/commands/onboard.js.map +1 -0
  170. package/dist/commands/open.d.ts +2 -0
  171. package/dist/commands/open.d.ts.map +1 -0
  172. package/dist/commands/open.js +82 -0
  173. package/dist/commands/open.js.map +1 -0
  174. package/dist/commands/permit/allow.d.ts +20 -0
  175. package/dist/commands/permit/allow.d.ts.map +1 -0
  176. package/dist/commands/permit/allow.js +134 -0
  177. package/dist/commands/permit/allow.js.map +1 -0
  178. package/dist/commands/permit/deny.d.ts +12 -0
  179. package/dist/commands/permit/deny.d.ts.map +1 -0
  180. package/dist/commands/permit/deny.js +106 -0
  181. package/dist/commands/permit/deny.js.map +1 -0
  182. package/dist/commands/permit/index.d.ts +3 -0
  183. package/dist/commands/permit/index.d.ts.map +1 -0
  184. package/dist/commands/permit/index.js +27 -0
  185. package/dist/commands/permit/index.js.map +1 -0
  186. package/dist/commands/permit/ls.d.ts +18 -0
  187. package/dist/commands/permit/ls.d.ts.map +1 -0
  188. package/dist/commands/permit/ls.js +66 -0
  189. package/dist/commands/permit/ls.js.map +1 -0
  190. package/dist/commands/provider/index.d.ts +3 -0
  191. package/dist/commands/provider/index.d.ts.map +1 -0
  192. package/dist/commands/provider/index.js +16 -0
  193. package/dist/commands/provider/index.js.map +1 -0
  194. package/dist/commands/provider/ls.d.ts +17 -0
  195. package/dist/commands/provider/ls.d.ts.map +1 -0
  196. package/dist/commands/provider/ls.js +38 -0
  197. package/dist/commands/provider/ls.js.map +1 -0
  198. package/dist/commands/provider/models.d.ts +20 -0
  199. package/dist/commands/provider/models.d.ts.map +1 -0
  200. package/dist/commands/provider/models.js +53 -0
  201. package/dist/commands/provider/models.js.map +1 -0
  202. package/dist/commands/schedule/create.d.ts +13 -0
  203. package/dist/commands/schedule/create.d.ts.map +1 -0
  204. package/dist/commands/schedule/create.js +32 -0
  205. package/dist/commands/schedule/create.js.map +1 -0
  206. package/dist/commands/schedule/delete.d.ts +10 -0
  207. package/dist/commands/schedule/delete.d.ts.map +1 -0
  208. package/dist/commands/schedule/delete.js +32 -0
  209. package/dist/commands/schedule/delete.js.map +1 -0
  210. package/dist/commands/schedule/index.d.ts +3 -0
  211. package/dist/commands/schedule/index.d.ts.map +1 -0
  212. package/dist/commands/schedule/index.js +37 -0
  213. package/dist/commands/schedule/index.js.map +1 -0
  214. package/dist/commands/schedule/inspect.d.ts +6 -0
  215. package/dist/commands/schedule/inspect.d.ts.map +1 -0
  216. package/dist/commands/schedule/inspect.js +24 -0
  217. package/dist/commands/schedule/inspect.js.map +1 -0
  218. package/dist/commands/schedule/logs.d.ts +6 -0
  219. package/dist/commands/schedule/logs.d.ts.map +1 -0
  220. package/dist/commands/schedule/logs.js +23 -0
  221. package/dist/commands/schedule/logs.js.map +1 -0
  222. package/dist/commands/schedule/ls.d.ts +5 -0
  223. package/dist/commands/schedule/ls.d.ts.map +1 -0
  224. package/dist/commands/schedule/ls.js +23 -0
  225. package/dist/commands/schedule/ls.js.map +1 -0
  226. package/dist/commands/schedule/pause.d.ts +5 -0
  227. package/dist/commands/schedule/pause.d.ts.map +1 -0
  228. package/dist/commands/schedule/pause.js +23 -0
  229. package/dist/commands/schedule/pause.js.map +1 -0
  230. package/dist/commands/schedule/resume.d.ts +5 -0
  231. package/dist/commands/schedule/resume.d.ts.map +1 -0
  232. package/dist/commands/schedule/resume.js +23 -0
  233. package/dist/commands/schedule/resume.js.map +1 -0
  234. package/dist/commands/schedule/schema.d.ts +21 -0
  235. package/dist/commands/schedule/schema.d.ts.map +1 -0
  236. package/dist/commands/schedule/schema.js +67 -0
  237. package/dist/commands/schedule/schema.js.map +1 -0
  238. package/dist/commands/schedule/shared.d.ts +33 -0
  239. package/dist/commands/schedule/shared.d.ts.map +1 -0
  240. package/dist/commands/schedule/shared.js +148 -0
  241. package/dist/commands/schedule/shared.js.map +1 -0
  242. package/dist/commands/schedule/types.d.ts +137 -0
  243. package/dist/commands/schedule/types.d.ts.map +1 -0
  244. package/dist/commands/schedule/types.js +2 -0
  245. package/dist/commands/schedule/types.js.map +1 -0
  246. package/dist/commands/speech/index.d.ts +3 -0
  247. package/dist/commands/speech/index.d.ts.map +1 -0
  248. package/dist/commands/speech/index.js +5 -0
  249. package/dist/commands/speech/index.js.map +1 -0
  250. package/dist/commands/terminal/capture.d.ts +10 -0
  251. package/dist/commands/terminal/capture.d.ts.map +1 -0
  252. package/dist/commands/terminal/capture.js +68 -0
  253. package/dist/commands/terminal/capture.js.map +1 -0
  254. package/dist/commands/terminal/create.d.ts +10 -0
  255. package/dist/commands/terminal/create.d.ts.map +1 -0
  256. package/dist/commands/terminal/create.js +28 -0
  257. package/dist/commands/terminal/create.js.map +1 -0
  258. package/dist/commands/terminal/index.d.ts +3 -0
  259. package/dist/commands/terminal/index.d.ts.map +1 -0
  260. package/dist/commands/terminal/index.js +43 -0
  261. package/dist/commands/terminal/index.js.map +1 -0
  262. package/dist/commands/terminal/kill.d.ts +6 -0
  263. package/dist/commands/terminal/kill.d.ts.map +1 -0
  264. package/dist/commands/terminal/kill.js +36 -0
  265. package/dist/commands/terminal/kill.js.map +1 -0
  266. package/dist/commands/terminal/ls.d.ts +10 -0
  267. package/dist/commands/terminal/ls.d.ts.map +1 -0
  268. package/dist/commands/terminal/ls.js +21 -0
  269. package/dist/commands/terminal/ls.js.map +1 -0
  270. package/dist/commands/terminal/schema.d.ts +18 -0
  271. package/dist/commands/terminal/schema.d.ts.map +1 -0
  272. package/dist/commands/terminal/schema.js +23 -0
  273. package/dist/commands/terminal/schema.js.map +1 -0
  274. package/dist/commands/terminal/send-keys.d.ts +7 -0
  275. package/dist/commands/terminal/send-keys.d.ts.map +1 -0
  276. package/dist/commands/terminal/send-keys.js +76 -0
  277. package/dist/commands/terminal/send-keys.js.map +1 -0
  278. package/dist/commands/terminal/shared.d.ts +12 -0
  279. package/dist/commands/terminal/shared.d.ts.map +1 -0
  280. package/dist/commands/terminal/shared.js +61 -0
  281. package/dist/commands/terminal/shared.js.map +1 -0
  282. package/dist/commands/worktree/archive.d.ts +16 -0
  283. package/dist/commands/worktree/archive.d.ts.map +1 -0
  284. package/dist/commands/worktree/archive.js +99 -0
  285. package/dist/commands/worktree/archive.js.map +1 -0
  286. package/dist/commands/worktree/index.d.ts +3 -0
  287. package/dist/commands/worktree/index.d.ts.map +1 -0
  288. package/dist/commands/worktree/index.js +15 -0
  289. package/dist/commands/worktree/index.js.map +1 -0
  290. package/dist/commands/worktree/ls.d.ts +19 -0
  291. package/dist/commands/worktree/ls.d.ts.map +1 -0
  292. package/dist/commands/worktree/ls.js +97 -0
  293. package/dist/commands/worktree/ls.js.map +1 -0
  294. package/dist/index.d.ts +2 -0
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +24 -0
  297. package/dist/index.js.map +1 -0
  298. package/dist/output/index.d.ts +45 -0
  299. package/dist/output/index.d.ts.map +1 -0
  300. package/dist/output/index.js +47 -0
  301. package/dist/output/index.js.map +1 -0
  302. package/dist/output/json.d.ts +11 -0
  303. package/dist/output/json.d.ts.map +1 -0
  304. package/dist/output/json.js +37 -0
  305. package/dist/output/json.js.map +1 -0
  306. package/dist/output/quiet.d.ts +9 -0
  307. package/dist/output/quiet.d.ts.map +1 -0
  308. package/dist/output/quiet.js +22 -0
  309. package/dist/output/quiet.js.map +1 -0
  310. package/dist/output/render.d.ts +15 -0
  311. package/dist/output/render.d.ts.map +1 -0
  312. package/dist/output/render.js +83 -0
  313. package/dist/output/render.js.map +1 -0
  314. package/dist/output/table.d.ts +13 -0
  315. package/dist/output/table.d.ts.map +1 -0
  316. package/dist/output/table.js +135 -0
  317. package/dist/output/table.js.map +1 -0
  318. package/dist/output/types.d.ts +73 -0
  319. package/dist/output/types.d.ts.map +1 -0
  320. package/dist/output/types.js +8 -0
  321. package/dist/output/types.js.map +1 -0
  322. package/dist/output/with-output.d.ts +37 -0
  323. package/dist/output/with-output.d.ts.map +1 -0
  324. package/dist/output/with-output.js +87 -0
  325. package/dist/output/with-output.js.map +1 -0
  326. package/dist/output/yaml.d.ts +11 -0
  327. package/dist/output/yaml.d.ts.map +1 -0
  328. package/dist/output/yaml.js +38 -0
  329. package/dist/output/yaml.js.map +1 -0
  330. package/dist/utils/client-id.d.ts +2 -0
  331. package/dist/utils/client-id.d.ts.map +1 -0
  332. package/dist/utils/client-id.js +37 -0
  333. package/dist/utils/client-id.js.map +1 -0
  334. package/dist/utils/client.d.ts +47 -0
  335. package/dist/utils/client.d.ts.map +1 -0
  336. package/dist/utils/client.js +230 -0
  337. package/dist/utils/client.js.map +1 -0
  338. package/dist/utils/command-options.d.ts +6 -0
  339. package/dist/utils/command-options.d.ts.map +1 -0
  340. package/dist/utils/command-options.js +17 -0
  341. package/dist/utils/command-options.js.map +1 -0
  342. package/dist/utils/duration.d.ts +7 -0
  343. package/dist/utils/duration.d.ts.map +1 -0
  344. package/dist/utils/duration.js +38 -0
  345. package/dist/utils/duration.js.map +1 -0
  346. package/dist/utils/errors.d.ts +5 -0
  347. package/dist/utils/errors.d.ts.map +1 -0
  348. package/dist/utils/errors.js +10 -0
  349. package/dist/utils/errors.js.map +1 -0
  350. package/dist/utils/paths.d.ts +12 -0
  351. package/dist/utils/paths.d.ts.map +1 -0
  352. package/dist/utils/paths.js +22 -0
  353. package/dist/utils/paths.js.map +1 -0
  354. package/dist/utils/timeline.d.ts +8 -0
  355. package/dist/utils/timeline.d.ts.map +1 -0
  356. package/dist/utils/timeline.js +9 -0
  357. package/dist/utils/timeline.js.map +1 -0
  358. package/package.json +42 -0
package/bin/seawork ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node --disable-warning=DEP0040
2
+ import '../dist/index.js'
3
+
@@ -0,0 +1,19 @@
1
+ export type CliInvocation = {
2
+ kind: "cli";
3
+ argv: string[];
4
+ } | {
5
+ kind: "open-project";
6
+ resolvedPath: string;
7
+ };
8
+ export declare function isPathLikeArg(arg: string): boolean;
9
+ export declare function expandUserPath(inputPath: string): string;
10
+ export declare function isExistingDirectory(input: {
11
+ pathArg: string;
12
+ cwd: string;
13
+ }): boolean;
14
+ export declare function classifyInvocation(input: {
15
+ argv: string[];
16
+ knownCommands: ReadonlySet<string>;
17
+ cwd: string;
18
+ }): CliInvocation;
19
+ //# sourceMappingURL=classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWlD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAQpF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,aAAa,CAsBhB"}
@@ -0,0 +1,49 @@
1
+ import { existsSync, statSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import path from "node:path";
4
+ export function isPathLikeArg(arg) {
5
+ return (arg === "." ||
6
+ arg === ".." ||
7
+ arg.startsWith("./") ||
8
+ arg.startsWith("../") ||
9
+ arg.startsWith("/") ||
10
+ arg === "~" ||
11
+ arg.startsWith("~/") ||
12
+ /^[A-Za-z]:[\\/]/.test(arg));
13
+ }
14
+ export function expandUserPath(inputPath) {
15
+ if (inputPath === "~") {
16
+ return homedir();
17
+ }
18
+ if (inputPath.startsWith("~/")) {
19
+ return path.join(homedir(), inputPath.slice(2));
20
+ }
21
+ return inputPath;
22
+ }
23
+ export function isExistingDirectory(input) {
24
+ const resolvedPath = path.resolve(input.cwd, expandUserPath(input.pathArg));
25
+ if (!existsSync(resolvedPath)) {
26
+ return false;
27
+ }
28
+ return statSync(resolvedPath).isDirectory();
29
+ }
30
+ export function classifyInvocation(input) {
31
+ const [firstArg] = input.argv;
32
+ if (!firstArg) {
33
+ return { kind: "cli", argv: input.argv };
34
+ }
35
+ if (firstArg.startsWith("-")) {
36
+ return { kind: "cli", argv: input.argv };
37
+ }
38
+ if (input.knownCommands.has(firstArg)) {
39
+ return { kind: "cli", argv: input.argv };
40
+ }
41
+ if (isExistingDirectory({ pathArg: firstArg, cwd: input.cwd })) {
42
+ return {
43
+ kind: "open-project",
44
+ resolvedPath: path.resolve(input.cwd, expandUserPath(firstArg)),
45
+ };
46
+ }
47
+ return { kind: "cli", argv: input.argv };
48
+ }
49
+ //# sourceMappingURL=classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.js","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,CACL,GAAG,KAAK,GAAG;QACX,GAAG,KAAK,IAAI;QACZ,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QACpB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;QACrB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QACnB,GAAG,KAAK,GAAG;QACX,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QACpB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAuC;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAIlC;IACC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createCli(): Command;
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,wBAAgB,SAAS,IAAI,OAAO,CAiHnC"}
package/dist/cli.js ADDED
@@ -0,0 +1,103 @@
1
+ import { Command } from "commander";
2
+ import { createRequire } from "node:module";
3
+ import { createAgentCommand } from "./commands/agent/index.js";
4
+ import { createDaemonCommand } from "./commands/daemon/index.js";
5
+ import { createChatCommand } from "./commands/chat/index.js";
6
+ import { createLoopCommand } from "./commands/loop/index.js";
7
+ import { createPermitCommand } from "./commands/permit/index.js";
8
+ import { createProviderCommand } from "./commands/provider/index.js";
9
+ import { createScheduleCommand } from "./commands/schedule/index.js";
10
+ import { createSpeechCommand } from "./commands/speech/index.js";
11
+ import { createTerminalCommand } from "./commands/terminal/index.js";
12
+ import { createWorktreeCommand } from "./commands/worktree/index.js";
13
+ import { startCommand as daemonStartCommand } from "./commands/daemon/start.js";
14
+ import { runStatusCommand as runDaemonStatusCommand } from "./commands/daemon/status.js";
15
+ import { runRestartCommand as runDaemonRestartCommand } from "./commands/daemon/restart.js";
16
+ import { addLsOptions, runLsCommand } from "./commands/agent/ls.js";
17
+ import { addRunOptions, runRunCommand } from "./commands/agent/run.js";
18
+ import { addLogsOptions, runLogsCommand } from "./commands/agent/logs.js";
19
+ import { addDeleteOptions, runDeleteCommand } from "./commands/agent/delete.js";
20
+ import { addStopOptions, runStopCommand } from "./commands/agent/stop.js";
21
+ import { addSendOptions, runSendCommand } from "./commands/agent/send.js";
22
+ import { addInspectOptions, runInspectCommand } from "./commands/agent/inspect.js";
23
+ import { addWaitOptions, runWaitCommand } from "./commands/agent/wait.js";
24
+ import { addArchiveOptions, runArchiveCommand } from "./commands/agent/archive.js";
25
+ import { addAttachOptions, runAttachCommand } from "./commands/agent/attach.js";
26
+ import { withOutput } from "./output/index.js";
27
+ import { onboardCommand } from "./commands/onboard.js";
28
+ import { addDaemonHostOption, addJsonAndDaemonHostOptions, addJsonOption, } from "./utils/command-options.js";
29
+ const require = createRequire(import.meta.url);
30
+ function resolveCliVersion() {
31
+ const packageJson = require("../package.json");
32
+ if (typeof packageJson.version === "string" && packageJson.version.trim().length > 0) {
33
+ return packageJson.version.trim();
34
+ }
35
+ throw new Error("Unable to resolve @seawork/cli version from package.json.");
36
+ }
37
+ const VERSION = resolveCliVersion();
38
+ export function createCli() {
39
+ const program = new Command();
40
+ program
41
+ .name("seawork")
42
+ .description("Seawork CLI - control your AI coding agents from the command line")
43
+ .version(VERSION, "-v, --version", "output the version number")
44
+ // Global output options
45
+ .option("-o, --format <format>", "output format: table, json, yaml", "table")
46
+ .option("--json", "output in JSON format (alias for --format json)")
47
+ .option("-q, --quiet", "minimal output (IDs only)")
48
+ .option("--no-headers", "omit table headers")
49
+ .option("--no-color", "disable colored output");
50
+ // Primary agent commands (top-level)
51
+ addJsonAndDaemonHostOptions(addLsOptions(program.command("ls"))).action(withOutput(runLsCommand));
52
+ addJsonAndDaemonHostOptions(addRunOptions(program.command("run"))).action(withOutput(runRunCommand));
53
+ addDaemonHostOption(addAttachOptions(program.command("attach"))).action(runAttachCommand);
54
+ addDaemonHostOption(addLogsOptions(program.command("logs"))).action(runLogsCommand);
55
+ addJsonAndDaemonHostOptions(addStopOptions(program.command("stop"))).action(withOutput(runStopCommand));
56
+ addJsonAndDaemonHostOptions(addDeleteOptions(program.command("delete"))).action(withOutput(runDeleteCommand));
57
+ addJsonAndDaemonHostOptions(addSendOptions(program.command("send"))).action(withOutput(runSendCommand));
58
+ addJsonAndDaemonHostOptions(addInspectOptions(program.command("inspect"))).action(withOutput(runInspectCommand));
59
+ addJsonAndDaemonHostOptions(addWaitOptions(program.command("wait"))).action(withOutput(runWaitCommand));
60
+ addJsonAndDaemonHostOptions(addArchiveOptions(program.command("archive"))).action(withOutput(runArchiveCommand));
61
+ // Top-level local daemon shortcuts
62
+ program.addCommand(onboardCommand());
63
+ program.addCommand(daemonStartCommand());
64
+ addJsonOption(program
65
+ .command("status")
66
+ .description('Show local daemon status (alias for "seawork daemon status")'))
67
+ .option("--home <path>", "Seawork home directory (default: ~/.seawork)")
68
+ .action(withOutput(runDaemonStatusCommand));
69
+ addJsonOption(program
70
+ .command("restart")
71
+ .description('Restart local daemon (alias for "seawork daemon restart")'))
72
+ .option("--home <path>", "Seawork home directory (default: ~/.seawork)")
73
+ .option("--timeout <seconds>", "Wait timeout before force step (default: 15)")
74
+ .option("--force", "Send SIGKILL if graceful stop times out")
75
+ .option("--listen <listen>", "Listen target for restarted daemon (host:port, port, or unix socket)")
76
+ .option("--port <port>", "Port for restarted daemon listen target")
77
+ .option("--no-relay", "Disable relay on restarted daemon")
78
+ .option("--no-mcp", "Disable Agent MCP on restarted daemon")
79
+ .option("--allowed-hosts <hosts>", 'Comma-separated Host allowlist values (example: "localhost,.example.com" or "true")')
80
+ .action(withOutput(runDaemonRestartCommand));
81
+ // Advanced agent commands (less common operations)
82
+ program.addCommand(createAgentCommand());
83
+ // Daemon commands
84
+ program.addCommand(createDaemonCommand());
85
+ // Chat commands
86
+ program.addCommand(createChatCommand());
87
+ // Terminal commands
88
+ program.addCommand(createTerminalCommand());
89
+ // Loop commands
90
+ program.addCommand(createLoopCommand());
91
+ // Schedule commands
92
+ program.addCommand(createScheduleCommand());
93
+ // Permission commands
94
+ program.addCommand(createPermitCommand());
95
+ // Provider commands
96
+ program.addCommand(createProviderCommand());
97
+ // Speech model commands
98
+ program.addCommand(createSpeechCommand());
99
+ // Worktree commands
100
+ program.addCommand(createWorktreeCommand());
101
+ return program;
102
+ }
103
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Command } from "commander";
2
+ import type { CommandOptions, SingleResult, OutputSchema } from "../../output/index.js";
3
+ /** Result type for agent archive command */
4
+ export interface AgentArchiveResult {
5
+ agentId: string;
6
+ status: "archived";
7
+ archivedAt: string;
8
+ }
9
+ /** Schema for archive command output */
10
+ export declare const archiveSchema: OutputSchema<AgentArchiveResult>;
11
+ export declare function addArchiveOptions(cmd: Command): Command;
12
+ export interface AgentArchiveOptions extends CommandOptions {
13
+ force?: boolean;
14
+ host?: string;
15
+ }
16
+ export type AgentArchiveCommandResult = SingleResult<AgentArchiveResult>;
17
+ export declare function runArchiveCommand(agentIdArg: string, options: AgentArchiveOptions, _command: Command): Promise<AgentArchiveCommandResult>;
18
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAE/B,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAO1D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKvD;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAEzE,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,yBAAyB,CAAC,CA6FpC"}
@@ -0,0 +1,102 @@
1
+ import { connectToDaemon, getDaemonHost, resolveAgentId } from "../../utils/client.js";
2
+ /** Schema for archive command output */
3
+ export const archiveSchema = {
4
+ idField: "agentId",
5
+ columns: [
6
+ { header: "AGENT ID", field: "agentId" },
7
+ { header: "STATUS", field: "status" },
8
+ { header: "ARCHIVED AT", field: "archivedAt" },
9
+ ],
10
+ };
11
+ export function addArchiveOptions(cmd) {
12
+ return cmd
13
+ .description("Archive an agent (soft-delete)")
14
+ .argument("<id>", "Agent ID, prefix, or name")
15
+ .option("--force", "Force archive running agent (interrupts active run first)");
16
+ }
17
+ export async function runArchiveCommand(agentIdArg, options, _command) {
18
+ const host = getDaemonHost({ host: options.host });
19
+ // Validate arguments
20
+ if (!agentIdArg || agentIdArg.trim().length === 0) {
21
+ const error = {
22
+ code: "MISSING_AGENT_ID",
23
+ message: "Agent ID is required",
24
+ details: "Usage: seawork agent archive <id-or-name>",
25
+ };
26
+ throw error;
27
+ }
28
+ let client;
29
+ try {
30
+ client = await connectToDaemon({ host: options.host });
31
+ }
32
+ catch (err) {
33
+ const message = err instanceof Error ? err.message : String(err);
34
+ const error = {
35
+ code: "DAEMON_NOT_RUNNING",
36
+ message: `Cannot connect to daemon at ${host}: ${message}`,
37
+ details: "Start the daemon with: seawork daemon start",
38
+ };
39
+ throw error;
40
+ }
41
+ try {
42
+ const agentsPayload = await client.fetchAgents({ filter: { includeArchived: true } });
43
+ const agents = agentsPayload.entries.map((entry) => entry.agent);
44
+ const agentId = resolveAgentId(agentIdArg, agents);
45
+ if (!agentId) {
46
+ const error = {
47
+ code: "AGENT_NOT_FOUND",
48
+ message: `Agent not found: ${agentIdArg}`,
49
+ details: 'Use "seawork ls" to list available agents',
50
+ };
51
+ throw error;
52
+ }
53
+ const agent = agents.find((entry) => entry.id === agentId);
54
+ if (!agent) {
55
+ throw new Error(`Resolved agent missing from fetched agents: ${agentId}`);
56
+ }
57
+ // Check if agent is already archived
58
+ if (agent.archivedAt) {
59
+ const error = {
60
+ code: "AGENT_ALREADY_ARCHIVED",
61
+ message: `Agent ${agentId.slice(0, 7)} is already archived`,
62
+ details: `Archived at: ${agent.archivedAt}`,
63
+ };
64
+ throw error;
65
+ }
66
+ // Check if agent is running and reject unless --force is set
67
+ if (agent.status === "running" && !options.force) {
68
+ const error = {
69
+ code: "AGENT_RUNNING",
70
+ message: `Agent ${agentId.slice(0, 7)} is currently running`,
71
+ details: "Use --force to archive a running agent (it will interrupt the active run), or stop it first with: seawork agent stop. Use seawork agent delete to hard-delete it.",
72
+ };
73
+ throw error;
74
+ }
75
+ // Archive the agent
76
+ const result = await client.archiveAgent(agentId);
77
+ await client.close();
78
+ return {
79
+ type: "single",
80
+ data: {
81
+ agentId,
82
+ status: "archived",
83
+ archivedAt: result.archivedAt,
84
+ },
85
+ schema: archiveSchema,
86
+ };
87
+ }
88
+ catch (err) {
89
+ await client.close().catch(() => { });
90
+ // Re-throw CommandError as-is
91
+ if (err && typeof err === "object" && "code" in err) {
92
+ throw err;
93
+ }
94
+ const message = err instanceof Error ? err.message : String(err);
95
+ const error = {
96
+ code: "ARCHIVE_FAILED",
97
+ message: `Failed to archive agent: ${message}`,
98
+ };
99
+ throw error;
100
+ }
101
+ }
102
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/commands/agent/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Command } from "commander";
2
+ export declare function addAttachOptions(cmd: Command): Command;
3
+ export interface AgentAttachOptions {
4
+ host?: string;
5
+ [key: string]: unknown;
6
+ }
7
+ /**
8
+ * Attach to a running agent's output stream
9
+ */
10
+ export declare function runAttachCommand(id: string, options: AgentAttachOptions, _command: Command): Promise<void>;
11
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAItD;AAUD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAgFD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAsFf"}
@@ -0,0 +1,158 @@
1
+ export function addAttachOptions(cmd) {
2
+ return cmd
3
+ .description("Attach to a running agent's output stream")
4
+ .argument("<id>", "Agent ID (or prefix)");
5
+ }
6
+ import { connectToDaemon, getDaemonHost } from "../../utils/client.js";
7
+ import { fetchProjectedTimelineItems } from "../../utils/timeline.js";
8
+ /**
9
+ * Format and print a timeline item to the terminal
10
+ */
11
+ function printTimelineItem(item) {
12
+ switch (item.type) {
13
+ case "assistant_message":
14
+ // Print assistant text directly
15
+ process.stdout.write(item.text);
16
+ break;
17
+ case "reasoning":
18
+ // Print reasoning in a muted color if available
19
+ console.log(`\n[Reasoning] ${item.text}`);
20
+ break;
21
+ case "tool_call": {
22
+ const toolName = item.name;
23
+ const status = item.status ?? "started";
24
+ console.log(`\n[Tool: ${toolName}] ${status}`);
25
+ break;
26
+ }
27
+ case "todo": {
28
+ const completed = item.items.filter((i) => i.completed).length;
29
+ const total = item.items.length;
30
+ console.log(`\n[Todo] ${completed}/${total} completed`);
31
+ break;
32
+ }
33
+ case "error":
34
+ console.error(`\n[Error] ${item.message}`);
35
+ break;
36
+ case "user_message":
37
+ console.log(`\n[User] ${item.text}`);
38
+ break;
39
+ default:
40
+ // Unknown item type, skip
41
+ break;
42
+ }
43
+ }
44
+ /**
45
+ * Format and print a stream event to the terminal
46
+ */
47
+ function printStreamEvent(event) {
48
+ switch (event.type) {
49
+ case "timeline":
50
+ // Print the timeline item
51
+ printTimelineItem(event.item);
52
+ break;
53
+ case "permission_requested":
54
+ console.log(`\n[Permission Required] ${event.request.name}`);
55
+ if (event.request.description) {
56
+ console.log(` ${event.request.description}`);
57
+ }
58
+ break;
59
+ case "permission_resolved":
60
+ console.log(`\n[Permission ${event.resolution.behavior}]`);
61
+ break;
62
+ case "turn_failed":
63
+ console.error(`\n[Turn Failed] ${event.error}`);
64
+ break;
65
+ case "attention_required":
66
+ console.log(`\n[Attention Required: ${event.reason}]`);
67
+ break;
68
+ default:
69
+ // Other event types are internal
70
+ break;
71
+ }
72
+ }
73
+ /**
74
+ * Attach to a running agent's output stream
75
+ */
76
+ export async function runAttachCommand(id, options, _command) {
77
+ const host = getDaemonHost({ host: options.host });
78
+ if (!id) {
79
+ console.error("Error: Agent ID required");
80
+ console.error("Usage: seawork attach <id>");
81
+ process.exit(1);
82
+ }
83
+ let client;
84
+ try {
85
+ client = await connectToDaemon({ host: options.host });
86
+ }
87
+ catch (err) {
88
+ const message = err instanceof Error ? err.message : String(err);
89
+ console.error(`Error: Cannot connect to daemon at ${host}: ${message}`);
90
+ console.error("Start the daemon with: seawork daemon start");
91
+ process.exit(1);
92
+ }
93
+ try {
94
+ const fetchResult = await client.fetchAgent(id);
95
+ if (!fetchResult) {
96
+ console.error(`Error: No agent found matching: ${id}`);
97
+ console.error("Use `seawork ls` to list available agents");
98
+ await client.close();
99
+ process.exit(1);
100
+ }
101
+ const resolvedId = fetchResult.agent.id;
102
+ // Print header
103
+ console.log(`Attaching to agent ${resolvedId.substring(0, 7)}...`);
104
+ console.log(`(Press Ctrl+C to detach)\n`);
105
+ // Print existing output from timeline fetch.
106
+ try {
107
+ const timelineItems = await fetchProjectedTimelineItems({
108
+ client,
109
+ agentId: resolvedId,
110
+ });
111
+ for (const item of timelineItems) {
112
+ printTimelineItem(item);
113
+ }
114
+ }
115
+ catch (error) {
116
+ console.warn("Warning: failed to fetch existing timeline", error);
117
+ }
118
+ // Subscribe to new events
119
+ const unsubscribe = client.on("agent_stream", (msg) => {
120
+ const message = msg;
121
+ if (message.type !== "agent_stream")
122
+ return;
123
+ if (message.payload.agentId !== resolvedId)
124
+ return;
125
+ printStreamEvent(message.payload.event);
126
+ });
127
+ // Handle Ctrl+C to detach gracefully
128
+ let detached = false;
129
+ const detach = () => {
130
+ if (detached)
131
+ return;
132
+ detached = true;
133
+ console.log("\n\nDetaching from agent...");
134
+ unsubscribe();
135
+ client
136
+ .close()
137
+ .then(() => {
138
+ process.exit(0);
139
+ })
140
+ .catch(() => {
141
+ process.exit(1);
142
+ });
143
+ };
144
+ process.on("SIGINT", detach);
145
+ process.on("SIGTERM", detach);
146
+ // Keep the process alive
147
+ await new Promise(() => {
148
+ // Wait indefinitely until interrupted
149
+ });
150
+ }
151
+ catch (err) {
152
+ await client.close().catch(() => { });
153
+ const message = err instanceof Error ? err.message : String(err);
154
+ console.error(`Error: Failed to attach to agent: ${message}`);
155
+ process.exit(1);
156
+ }
157
+ }
158
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/agent/attach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Command } from "commander";
2
+ export declare function addDeleteOptions(cmd: Command): Command;
3
+ import type { CommandOptions, SingleResult, OutputSchema } from "../../output/index.js";
4
+ export interface DeleteResult {
5
+ deletedCount: number;
6
+ agentIds: string[];
7
+ }
8
+ export declare const deleteSchema: OutputSchema<DeleteResult>;
9
+ export interface AgentDeleteOptions extends CommandOptions {
10
+ all?: boolean;
11
+ cwd?: string;
12
+ }
13
+ export type AgentDeleteResult = SingleResult<DeleteResult>;
14
+ export declare function runDeleteCommand(id: string | undefined, options: AgentDeleteOptions, _command: Command): Promise<AgentDeleteResult>;
15
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMtD;AACD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,YAAY,CAGnD,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAE3D,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAqF5B"}
@@ -0,0 +1,99 @@
1
+ import { connectToDaemon, getDaemonHost } from "../../utils/client.js";
2
+ import { isSameOrDescendantPath } from "../../utils/paths.js";
3
+ export function addDeleteOptions(cmd) {
4
+ return cmd
5
+ .description("Delete an agent (interrupt if running, then hard-delete)")
6
+ .argument("[id]", "Agent ID (or prefix) - optional if --all or --cwd specified")
7
+ .option("--all", "Delete all agents")
8
+ .option("--cwd <path>", "Delete all agents in directory");
9
+ }
10
+ export const deleteSchema = {
11
+ idField: (item) => item.agentIds.join("\n"),
12
+ columns: [{ header: "DELETED", field: "deletedCount" }],
13
+ };
14
+ export async function runDeleteCommand(id, options, _command) {
15
+ const host = getDaemonHost({ host: options.host });
16
+ if (!id && !options.all && !options.cwd) {
17
+ const error = {
18
+ code: "MISSING_ARGUMENT",
19
+ message: "Agent ID required unless --all or --cwd is specified",
20
+ details: "Usage: seawork agent delete <id> | --all | --cwd <path>",
21
+ };
22
+ throw error;
23
+ }
24
+ let client;
25
+ try {
26
+ client = await connectToDaemon({ host: options.host });
27
+ }
28
+ catch (err) {
29
+ const message = err instanceof Error ? err.message : String(err);
30
+ const error = {
31
+ code: "DAEMON_NOT_RUNNING",
32
+ message: `Cannot connect to daemon at ${host}: ${message}`,
33
+ details: "Start the daemon with: seawork daemon start",
34
+ };
35
+ throw error;
36
+ }
37
+ try {
38
+ const fetchPayload = await client.fetchAgents({ filter: { includeArchived: true } });
39
+ let agents = fetchPayload.entries.map((entry) => entry.agent);
40
+ const deletedIds = [];
41
+ if (options.all) {
42
+ agents = agents.filter((a) => !a.archivedAt);
43
+ }
44
+ else if (options.cwd) {
45
+ agents = agents.filter((a) => {
46
+ if (a.archivedAt)
47
+ return false;
48
+ return isSameOrDescendantPath(options.cwd, a.cwd);
49
+ });
50
+ }
51
+ else if (id) {
52
+ const fetchResult = await client.fetchAgent(id);
53
+ if (!fetchResult) {
54
+ const error = {
55
+ code: "AGENT_NOT_FOUND",
56
+ message: `No agent found matching: ${id}`,
57
+ details: "Use `seawork ls` to list available agents",
58
+ };
59
+ throw error;
60
+ }
61
+ agents = [fetchResult.agent];
62
+ }
63
+ for (const agent of agents) {
64
+ try {
65
+ if (agent.status === "running") {
66
+ await client.cancelAgent(agent.id);
67
+ }
68
+ await client.deleteAgent(agent.id);
69
+ deletedIds.push(agent.id);
70
+ }
71
+ catch (err) {
72
+ const message = err instanceof Error ? err.message : String(err);
73
+ console.error(`Warning: Failed to delete agent ${agent.id.slice(0, 7)}: ${message}`);
74
+ }
75
+ }
76
+ await client.close();
77
+ return {
78
+ type: "single",
79
+ data: {
80
+ deletedCount: deletedIds.length,
81
+ agentIds: deletedIds,
82
+ },
83
+ schema: deleteSchema,
84
+ };
85
+ }
86
+ catch (err) {
87
+ await client.close().catch(() => { });
88
+ if (err && typeof err === "object" && "code" in err) {
89
+ throw err;
90
+ }
91
+ const message = err instanceof Error ? err.message : String(err);
92
+ const error = {
93
+ code: "DELETE_AGENT_FAILED",
94
+ message: `Failed to delete agent(s): ${message}`,
95
+ };
96
+ throw error;
97
+ }
98
+ }
99
+ //# sourceMappingURL=delete.js.map