@creativeintelligence/abbie 0.1.4 → 0.1.5

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 (537) hide show
  1. package/dist/cli/commands/start.js +2 -1
  2. package/oclif.manifest.json +1 -1
  3. package/package.json +9 -5
  4. package/dist/cli/base-command.d.ts.map +0 -1
  5. package/dist/cli/commands/agent/list.d.ts.map +0 -1
  6. package/dist/cli/commands/annotation/ack.d.ts.map +0 -1
  7. package/dist/cli/commands/annotation/create.d.ts.map +0 -1
  8. package/dist/cli/commands/annotation/events.d.ts.map +0 -1
  9. package/dist/cli/commands/annotation/export.d.ts.map +0 -1
  10. package/dist/cli/commands/annotation/import.d.ts.map +0 -1
  11. package/dist/cli/commands/annotation/ingest.d.ts.map +0 -1
  12. package/dist/cli/commands/annotation/list.d.ts.map +0 -1
  13. package/dist/cli/commands/annotation/reply.d.ts.map +0 -1
  14. package/dist/cli/commands/annotation/resolve.d.ts.map +0 -1
  15. package/dist/cli/commands/auto/index.d.ts.map +0 -1
  16. package/dist/cli/commands/backlog/add.d.ts.map +0 -1
  17. package/dist/cli/commands/backlog/claim.d.ts.map +0 -1
  18. package/dist/cli/commands/backlog/complete.d.ts.map +0 -1
  19. package/dist/cli/commands/backlog/list.d.ts.map +0 -1
  20. package/dist/cli/commands/backlog/pick.d.ts.map +0 -1
  21. package/dist/cli/commands/backlog/sync.d.ts.map +0 -1
  22. package/dist/cli/commands/bootstrap.d.ts.map +0 -1
  23. package/dist/cli/commands/bridge.d.ts.map +0 -1
  24. package/dist/cli/commands/context/inject.d.ts.map +0 -1
  25. package/dist/cli/commands/context/list.d.ts.map +0 -1
  26. package/dist/cli/commands/context/publish.d.ts.map +0 -1
  27. package/dist/cli/commands/context/read.d.ts.map +0 -1
  28. package/dist/cli/commands/daemon.d.ts.map +0 -1
  29. package/dist/cli/commands/digest/index.d.ts.map +0 -1
  30. package/dist/cli/commands/docs/lint.d.ts.map +0 -1
  31. package/dist/cli/commands/docs/sync.d.ts.map +0 -1
  32. package/dist/cli/commands/doctor.d.ts.map +0 -1
  33. package/dist/cli/commands/find/index.d.ts.map +0 -1
  34. package/dist/cli/commands/gc.d.ts.map +0 -1
  35. package/dist/cli/commands/history/index.d.ts.map +0 -1
  36. package/dist/cli/commands/hooks/guard.d.ts.map +0 -1
  37. package/dist/cli/commands/hooks/list.d.ts.map +0 -1
  38. package/dist/cli/commands/hooks/lock.d.ts.map +0 -1
  39. package/dist/cli/commands/hooks/status.d.ts.map +0 -1
  40. package/dist/cli/commands/hooks/test.d.ts.map +0 -1
  41. package/dist/cli/commands/hooks/unlock.d.ts.map +0 -1
  42. package/dist/cli/commands/index.d.ts.map +0 -1
  43. package/dist/cli/commands/list.d.ts.map +0 -1
  44. package/dist/cli/commands/list.e2e.test.d.ts +0 -1
  45. package/dist/cli/commands/list.e2e.test.js +0 -47
  46. package/dist/cli/commands/login.d.ts.map +0 -1
  47. package/dist/cli/commands/logout.d.ts.map +0 -1
  48. package/dist/cli/commands/panes/broker.d.ts.map +0 -1
  49. package/dist/cli/commands/panes/pipe-sink.d.ts.map +0 -1
  50. package/dist/cli/commands/panes/snapshot.d.ts.map +0 -1
  51. package/dist/cli/commands/plan.d.ts.map +0 -1
  52. package/dist/cli/commands/plan.e2e.test.d.ts +0 -1
  53. package/dist/cli/commands/plan.e2e.test.js +0 -74
  54. package/dist/cli/commands/preview/index.d.ts.map +0 -1
  55. package/dist/cli/commands/preview/init.d.ts.map +0 -1
  56. package/dist/cli/commands/preview/list.d.ts.map +0 -1
  57. package/dist/cli/commands/preview/status.d.ts.map +0 -1
  58. package/dist/cli/commands/preview/stop.d.ts.map +0 -1
  59. package/dist/cli/commands/preview/sync.d.ts.map +0 -1
  60. package/dist/cli/commands/preview/watch.d.ts.map +0 -1
  61. package/dist/cli/commands/project/add.d.ts.map +0 -1
  62. package/dist/cli/commands/project/list.d.ts.map +0 -1
  63. package/dist/cli/commands/project/remove.d.ts.map +0 -1
  64. package/dist/cli/commands/push.d.ts.map +0 -1
  65. package/dist/cli/commands/reference/add.d.ts.map +0 -1
  66. package/dist/cli/commands/reference/delete.d.ts.map +0 -1
  67. package/dist/cli/commands/reference/extract.d.ts.map +0 -1
  68. package/dist/cli/commands/reference/list.d.ts.map +0 -1
  69. package/dist/cli/commands/reference/normalize.d.ts.map +0 -1
  70. package/dist/cli/commands/reference/open.d.ts.map +0 -1
  71. package/dist/cli/commands/reference/save.d.ts.map +0 -1
  72. package/dist/cli/commands/reference/search.d.ts.map +0 -1
  73. package/dist/cli/commands/reference/show.d.ts.map +0 -1
  74. package/dist/cli/commands/reference/update-index.d.ts.map +0 -1
  75. package/dist/cli/commands/reference/update.d.ts.map +0 -1
  76. package/dist/cli/commands/report/blocked.d.ts.map +0 -1
  77. package/dist/cli/commands/report/complete.d.ts.map +0 -1
  78. package/dist/cli/commands/report/progress.d.ts.map +0 -1
  79. package/dist/cli/commands/report/start.d.ts.map +0 -1
  80. package/dist/cli/commands/resource/acquire.d.ts.map +0 -1
  81. package/dist/cli/commands/resource/list.d.ts.map +0 -1
  82. package/dist/cli/commands/resource/release.d.ts.map +0 -1
  83. package/dist/cli/commands/resource/wait.d.ts.map +0 -1
  84. package/dist/cli/commands/review.d.ts.map +0 -1
  85. package/dist/cli/commands/session/attach.d.ts.map +0 -1
  86. package/dist/cli/commands/session/await.d.ts.map +0 -1
  87. package/dist/cli/commands/session/complete.d.ts.map +0 -1
  88. package/dist/cli/commands/session/create.d.ts.map +0 -1
  89. package/dist/cli/commands/session/heartbeat.d.ts.map +0 -1
  90. package/dist/cli/commands/session/list.d.ts.map +0 -1
  91. package/dist/cli/commands/session/mark-done.d.ts.map +0 -1
  92. package/dist/cli/commands/session/mine.d.ts.map +0 -1
  93. package/dist/cli/commands/session/replay.d.ts.map +0 -1
  94. package/dist/cli/commands/session/run.d.ts.map +0 -1
  95. package/dist/cli/commands/session/show.d.ts.map +0 -1
  96. package/dist/cli/commands/session/start.d.ts.map +0 -1
  97. package/dist/cli/commands/session/state/cleanup.d.ts.map +0 -1
  98. package/dist/cli/commands/session/state/end.d.ts.map +0 -1
  99. package/dist/cli/commands/session/state/get.d.ts.map +0 -1
  100. package/dist/cli/commands/session/state/init.d.ts.map +0 -1
  101. package/dist/cli/commands/session/state/list.d.ts.map +0 -1
  102. package/dist/cli/commands/session/state/update.d.ts.map +0 -1
  103. package/dist/cli/commands/session/stop.d.ts.map +0 -1
  104. package/dist/cli/commands/session/view.d.ts.map +0 -1
  105. package/dist/cli/commands/start.d.ts.map +0 -1
  106. package/dist/cli/commands/state/dump.d.ts.map +0 -1
  107. package/dist/cli/commands/status.d.ts.map +0 -1
  108. package/dist/cli/commands/sync.d.ts.map +0 -1
  109. package/dist/cli/commands/trace/export.d.ts.map +0 -1
  110. package/dist/cli/commands/triage/claim.d.ts.map +0 -1
  111. package/dist/cli/commands/triage/list.d.ts.map +0 -1
  112. package/dist/cli/commands/triage/next.d.ts.map +0 -1
  113. package/dist/cli/commands/triage/pull.d.ts.map +0 -1
  114. package/dist/cli/commands/triage/stats.d.ts.map +0 -1
  115. package/dist/cli/commands/tunnel/list.d.ts.map +0 -1
  116. package/dist/cli/commands/tunnel/start.d.ts.map +0 -1
  117. package/dist/cli/commands/tunnel/stop.d.ts.map +0 -1
  118. package/dist/cli/commands/tunnel/url.d.ts.map +0 -1
  119. package/dist/cli/commands/web/start.d.ts.map +0 -1
  120. package/dist/cli/commands/windows/context.d.ts.map +0 -1
  121. package/dist/cli/commands/windows/focus.d.ts.map +0 -1
  122. package/dist/cli/commands/windows/list.d.ts.map +0 -1
  123. package/dist/cli/commands/windows/map.d.ts.map +0 -1
  124. package/dist/cli/commands/windows/read.d.ts.map +0 -1
  125. package/dist/cli/commands/windows/search.d.ts.map +0 -1
  126. package/dist/cli/commands/windows/show.d.ts.map +0 -1
  127. package/dist/cli/commands/windows/watch.d.ts.map +0 -1
  128. package/dist/lib/active-sessions.d.ts.map +0 -1
  129. package/dist/lib/agent-adapters.d.ts.map +0 -1
  130. package/dist/lib/agent-sessions.d.ts.map +0 -1
  131. package/dist/lib/agent-trace.d.ts.map +0 -1
  132. package/dist/lib/analytics.d.ts.map +0 -1
  133. package/dist/lib/annotations-convex.d.ts.map +0 -1
  134. package/dist/lib/annotations.d.ts.map +0 -1
  135. package/dist/lib/auto/discover.d.ts.map +0 -1
  136. package/dist/lib/auto/ideate.d.ts.map +0 -1
  137. package/dist/lib/auto/spawn.d.ts.map +0 -1
  138. package/dist/lib/auto/workspace.d.ts.map +0 -1
  139. package/dist/lib/backlog.d.ts.map +0 -1
  140. package/dist/lib/backlog.test.d.ts +0 -1
  141. package/dist/lib/backlog.test.js +0 -162
  142. package/dist/lib/config-loader.d.ts.map +0 -1
  143. package/dist/lib/config-sync/adapters/claude.d.ts.map +0 -1
  144. package/dist/lib/config-sync/adapters/codex.d.ts.map +0 -1
  145. package/dist/lib/config-sync/adapters/copilot.d.ts.map +0 -1
  146. package/dist/lib/config-sync/adapters/gemini.d.ts.map +0 -1
  147. package/dist/lib/config-sync/adapters/index.d.ts.map +0 -1
  148. package/dist/lib/config-sync/adapters/opencode.d.ts.map +0 -1
  149. package/dist/lib/config-sync/index.d.ts.map +0 -1
  150. package/dist/lib/config-sync/types.d.ts.map +0 -1
  151. package/dist/lib/config-sync/writer.d.ts.map +0 -1
  152. package/dist/lib/content-sync/index.d.ts.map +0 -1
  153. package/dist/lib/content-sync/types.d.ts.map +0 -1
  154. package/dist/lib/contracts.d.ts.map +0 -1
  155. package/dist/lib/convex.d.ts.map +0 -1
  156. package/dist/lib/device.d.ts.map +0 -1
  157. package/dist/lib/digest/index.d.ts.map +0 -1
  158. package/dist/lib/docs/lint.d.ts.map +0 -1
  159. package/dist/lib/docs/lint.test.d.ts +0 -1
  160. package/dist/lib/docs/lint.test.js +0 -120
  161. package/dist/lib/docs/sync.d.ts.map +0 -1
  162. package/dist/lib/doctor/index.d.ts.map +0 -1
  163. package/dist/lib/doctor/repos.d.ts.map +0 -1
  164. package/dist/lib/doctor/templates.d.ts.map +0 -1
  165. package/dist/lib/errors.d.ts.map +0 -1
  166. package/dist/lib/events.d.ts.map +0 -1
  167. package/dist/lib/heartbeat.d.ts.map +0 -1
  168. package/dist/lib/heartbeat.test.d.ts +0 -1
  169. package/dist/lib/heartbeat.test.js +0 -124
  170. package/dist/lib/hooks/adapters/claude.d.ts.map +0 -1
  171. package/dist/lib/hooks/adapters/codex.d.ts.map +0 -1
  172. package/dist/lib/hooks/adapters/copilot.d.ts.map +0 -1
  173. package/dist/lib/hooks/context.d.ts.map +0 -1
  174. package/dist/lib/hooks/index.d.ts.map +0 -1
  175. package/dist/lib/hooks/registry.d.ts.map +0 -1
  176. package/dist/lib/hooks/runner.d.ts.map +0 -1
  177. package/dist/lib/hooks/types.d.ts.map +0 -1
  178. package/dist/lib/index.test.d.ts +0 -1
  179. package/dist/lib/index.test.js +0 -334
  180. package/dist/lib/managed-session.d.ts.map +0 -1
  181. package/dist/lib/math.d.ts.map +0 -1
  182. package/dist/lib/math.test.d.ts +0 -1
  183. package/dist/lib/math.test.js +0 -238
  184. package/dist/lib/ngrok.d.ts.map +0 -1
  185. package/dist/lib/nvim/discovery.d.ts.map +0 -1
  186. package/dist/lib/nvim/discovery.test.d.ts +0 -1
  187. package/dist/lib/nvim/discovery.test.js +0 -131
  188. package/dist/lib/nvim/index.d.ts.map +0 -1
  189. package/dist/lib/nvim/remote.d.ts.map +0 -1
  190. package/dist/lib/nvim/remote.test.d.ts +0 -1
  191. package/dist/lib/nvim/remote.test.js +0 -18
  192. package/dist/lib/panes/broker.d.ts.map +0 -1
  193. package/dist/lib/panes/index.d.ts.map +0 -1
  194. package/dist/lib/panes/server.d.ts.map +0 -1
  195. package/dist/lib/preview/detect.d.ts.map +0 -1
  196. package/dist/lib/preview/index.d.ts.map +0 -1
  197. package/dist/lib/preview/manager.d.ts.map +0 -1
  198. package/dist/lib/preview/schema.d.ts.map +0 -1
  199. package/dist/lib/preview/sprite.d.ts.map +0 -1
  200. package/dist/lib/preview/watcher.d.ts.map +0 -1
  201. package/dist/lib/process/index.d.ts.map +0 -1
  202. package/dist/lib/process/snapshot.d.ts.map +0 -1
  203. package/dist/lib/process/snapshot.test.d.ts +0 -1
  204. package/dist/lib/process/snapshot.test.js +0 -127
  205. package/dist/lib/project-identity.d.ts.map +0 -1
  206. package/dist/lib/provider-auth.d.ts.map +0 -1
  207. package/dist/lib/references.d.ts.map +0 -1
  208. package/dist/lib/report.d.ts.map +0 -1
  209. package/dist/lib/resources.d.ts.map +0 -1
  210. package/dist/lib/resources.test.d.ts +0 -1
  211. package/dist/lib/resources.test.js +0 -94
  212. package/dist/lib/runner.d.ts.map +0 -1
  213. package/dist/lib/runner.test.d.ts +0 -1
  214. package/dist/lib/runner.test.js +0 -234
  215. package/dist/lib/session-artifacts.d.ts.map +0 -1
  216. package/dist/lib/session-manager.d.ts.map +0 -1
  217. package/dist/lib/session-manager.test.d.ts +0 -1
  218. package/dist/lib/session-manager.test.js +0 -310
  219. package/dist/lib/session-result.d.ts.map +0 -1
  220. package/dist/lib/session-state.d.ts.map +0 -1
  221. package/dist/lib/slack-workspace.d.ts.map +0 -1
  222. package/dist/lib/tmux/bridge.d.ts.map +0 -1
  223. package/dist/lib/tmux/context.d.ts.map +0 -1
  224. package/dist/lib/tmux/context.test.d.ts +0 -1
  225. package/dist/lib/tmux/context.test.js +0 -215
  226. package/dist/lib/tmux/index.d.ts.map +0 -1
  227. package/dist/lib/tmux/map.d.ts.map +0 -1
  228. package/dist/lib/tmux/map.test.d.ts +0 -1
  229. package/dist/lib/tmux/map.test.js +0 -80
  230. package/dist/lib/tmux/panes.d.ts.map +0 -1
  231. package/dist/lib/tmux/redaction.d.ts.map +0 -1
  232. package/dist/lib/tmux/redaction.test.d.ts +0 -1
  233. package/dist/lib/tmux/redaction.test.js +0 -183
  234. package/dist/lib/triage-llm.d.ts.map +0 -1
  235. package/dist/lib/triage-tracker.d.ts.map +0 -1
  236. package/dist/lib/triage.d.ts.map +0 -1
  237. package/dist/lib/types.d.ts.map +0 -1
  238. package/dist/lib/windows/index.d.ts.map +0 -1
  239. package/dist/lib/windows/inventory.d.ts.map +0 -1
  240. package/dist/lib/windows/inventory.test.d.ts +0 -1
  241. package/dist/lib/windows/inventory.test.js +0 -292
  242. package/dist/lib/windows/types.d.ts.map +0 -1
  243. package/dist/lib.d.ts.map +0 -1
  244. package/dist/web/app/@overlay/default.d.ts +0 -1
  245. package/dist/web/app/@overlay/default.js +0 -3
  246. package/dist/web/app/about/page.d.ts +0 -1
  247. package/dist/web/app/about/page.js +0 -6
  248. package/dist/web/app/layout.d.ts +0 -7
  249. package/dist/web/app/layout.js +0 -19
  250. package/dist/web/app/page.d.ts +0 -1
  251. package/dist/web/app/page.js +0 -38
  252. package/dist/web/app/settings/page.d.ts +0 -1
  253. package/dist/web/app/settings/page.js +0 -6
  254. package/dist/web/app/shortcuts/page.d.ts +0 -1
  255. package/dist/web/app/shortcuts/page.js +0 -6
  256. package/dist/web/atoms/sidebar.d.ts +0 -16
  257. package/dist/web/atoms/sidebar.js +0 -58
  258. package/dist/web/atoms/state.d.ts +0 -24
  259. package/dist/web/atoms/state.js +0 -43
  260. package/dist/web/components/command-palette.d.ts +0 -6
  261. package/dist/web/components/command-palette.js +0 -297
  262. package/dist/web/components/main-view.d.ts +0 -1
  263. package/dist/web/components/main-view.js +0 -93
  264. package/dist/web/components/overlay/page-overlay.d.ts +0 -16
  265. package/dist/web/components/overlay/page-overlay.js +0 -84
  266. package/dist/web/components/pane-view.d.ts +0 -5
  267. package/dist/web/components/pane-view.js +0 -168
  268. package/dist/web/components/project-files-view.d.ts +0 -6
  269. package/dist/web/components/project-files-view.js +0 -205
  270. package/dist/web/components/project-planning-view.d.ts +0 -6
  271. package/dist/web/components/project-planning-view.js +0 -146
  272. package/dist/web/components/session-view.d.ts +0 -6
  273. package/dist/web/components/session-view.js +0 -211
  274. package/dist/web/components/sessions-list-view.d.ts +0 -1
  275. package/dist/web/components/sessions-list-view.js +0 -118
  276. package/dist/web/components/sidebar/index.d.ts +0 -9
  277. package/dist/web/components/sidebar/index.js +0 -29
  278. package/dist/web/components/sidebar/kbd.d.ts +0 -17
  279. package/dist/web/components/sidebar/kbd.js +0 -47
  280. package/dist/web/components/sidebar/nav-group.d.ts +0 -22
  281. package/dist/web/components/sidebar/nav-group.js +0 -43
  282. package/dist/web/components/sidebar/nav-item.d.ts +0 -17
  283. package/dist/web/components/sidebar/nav-item.js +0 -38
  284. package/dist/web/components/sidebar/sidebar-header.d.ts +0 -9
  285. package/dist/web/components/sidebar/sidebar-header.js +0 -18
  286. package/dist/web/components/sidebar/sidebar-nav.d.ts +0 -7
  287. package/dist/web/components/sidebar/sidebar-nav.js +0 -505
  288. package/dist/web/components/sidebar/sidebar-search.d.ts +0 -7
  289. package/dist/web/components/sidebar/sidebar-search.js +0 -18
  290. package/dist/web/components/sidebar/sidebar-settings.d.ts +0 -4
  291. package/dist/web/components/sidebar/sidebar-settings.js +0 -28
  292. package/dist/web/components/sidebar/sidebar-transition.d.ts +0 -12
  293. package/dist/web/components/sidebar/sidebar-transition.js +0 -58
  294. package/dist/web/components/status-bar.d.ts +0 -1
  295. package/dist/web/components/status-bar.js +0 -53
  296. package/dist/web/components/terminal.d.ts +0 -4
  297. package/dist/web/components/terminal.js +0 -324
  298. package/dist/web/components/toast.d.ts +0 -7
  299. package/dist/web/components/toast.js +0 -72
  300. package/dist/web/hooks/use-keybindings.d.ts +0 -30
  301. package/dist/web/hooks/use-keybindings.js +0 -322
  302. package/dist/web/hooks/use-state.d.ts +0 -11
  303. package/dist/web/hooks/use-state.js +0 -84
  304. package/dist/web/lib/api.d.ts +0 -179
  305. package/dist/web/lib/api.js +0 -79
  306. package/dist/web/lib/paths.d.ts +0 -2
  307. package/dist/web/lib/paths.js +0 -26
  308. package/dist/web/lib/utils.d.ts +0 -2
  309. package/dist/web/lib/utils.js +0 -5
  310. package/dist/web/lib/ws.d.ts +0 -18
  311. package/dist/web/lib/ws.js +0 -138
  312. package/dist/web/next.config.d.ts +0 -3
  313. package/dist/web/next.config.js +0 -9
  314. package/scripts/generate-manifest.ts +0 -44
  315. package/src/cli/base-command.ts +0 -233
  316. package/src/cli/commands/__tests__/annotations.test.ts +0 -704
  317. package/src/cli/commands/__tests__/bridge.test.ts +0 -101
  318. package/src/cli/commands/__tests__/daemon.test.ts +0 -79
  319. package/src/cli/commands/agent/list.ts +0 -75
  320. package/src/cli/commands/annotation/ack.ts +0 -37
  321. package/src/cli/commands/annotation/create.ts +0 -67
  322. package/src/cli/commands/annotation/events.ts +0 -63
  323. package/src/cli/commands/annotation/export.ts +0 -67
  324. package/src/cli/commands/annotation/import.ts +0 -98
  325. package/src/cli/commands/annotation/ingest.ts +0 -112
  326. package/src/cli/commands/annotation/list.ts +0 -57
  327. package/src/cli/commands/annotation/reply.ts +0 -46
  328. package/src/cli/commands/annotation/resolve.ts +0 -37
  329. package/src/cli/commands/auto/index.ts +0 -755
  330. package/src/cli/commands/backlog/add.ts +0 -74
  331. package/src/cli/commands/backlog/claim.ts +0 -53
  332. package/src/cli/commands/backlog/complete.ts +0 -51
  333. package/src/cli/commands/backlog/list.ts +0 -107
  334. package/src/cli/commands/backlog/pick.ts +0 -50
  335. package/src/cli/commands/backlog/sync.ts +0 -131
  336. package/src/cli/commands/bootstrap.ts +0 -205
  337. package/src/cli/commands/bridge.ts +0 -233
  338. package/src/cli/commands/context/inject.ts +0 -103
  339. package/src/cli/commands/context/list.ts +0 -112
  340. package/src/cli/commands/context/publish.ts +0 -83
  341. package/src/cli/commands/context/read.ts +0 -85
  342. package/src/cli/commands/daemon.ts +0 -1809
  343. package/src/cli/commands/digest/index.ts +0 -245
  344. package/src/cli/commands/docs/lint.ts +0 -93
  345. package/src/cli/commands/docs/sync.ts +0 -90
  346. package/src/cli/commands/doctor.ts +0 -267
  347. package/src/cli/commands/find/index.ts +0 -313
  348. package/src/cli/commands/history/index.ts +0 -269
  349. package/src/cli/commands/hooks/guard.ts +0 -71
  350. package/src/cli/commands/hooks/list.ts +0 -139
  351. package/src/cli/commands/hooks/lock.ts +0 -47
  352. package/src/cli/commands/hooks/status.ts +0 -56
  353. package/src/cli/commands/hooks/test.ts +0 -190
  354. package/src/cli/commands/hooks/unlock.ts +0 -56
  355. package/src/cli/commands/list.e2e.test.ts +0 -58
  356. package/src/cli/commands/list.ts +0 -96
  357. package/src/cli/commands/login.ts +0 -236
  358. package/src/cli/commands/logout.ts +0 -45
  359. package/src/cli/commands/panes/broker.ts +0 -68
  360. package/src/cli/commands/panes/pipe-sink.ts +0 -101
  361. package/src/cli/commands/panes/snapshot.ts +0 -156
  362. package/src/cli/commands/plan.e2e.test.ts +0 -90
  363. package/src/cli/commands/plan.ts +0 -68
  364. package/src/cli/commands/preview/index.ts +0 -282
  365. package/src/cli/commands/preview/list.ts +0 -116
  366. package/src/cli/commands/preview/status.ts +0 -137
  367. package/src/cli/commands/preview/stop.ts +0 -165
  368. package/src/cli/commands/project/add.ts +0 -110
  369. package/src/cli/commands/project/list.ts +0 -136
  370. package/src/cli/commands/project/remove.ts +0 -60
  371. package/src/cli/commands/push.ts +0 -115
  372. package/src/cli/commands/reference/add.ts +0 -266
  373. package/src/cli/commands/reference/delete.ts +0 -67
  374. package/src/cli/commands/reference/extract.ts +0 -389
  375. package/src/cli/commands/reference/list.ts +0 -117
  376. package/src/cli/commands/reference/normalize.ts +0 -90
  377. package/src/cli/commands/reference/open.ts +0 -92
  378. package/src/cli/commands/reference/save.ts +0 -103
  379. package/src/cli/commands/reference/search.ts +0 -85
  380. package/src/cli/commands/reference/show.ts +0 -174
  381. package/src/cli/commands/reference/update-index.ts +0 -103
  382. package/src/cli/commands/reference/update.ts +0 -136
  383. package/src/cli/commands/report/blocked.ts +0 -165
  384. package/src/cli/commands/report/complete.ts +0 -179
  385. package/src/cli/commands/report/progress.ts +0 -142
  386. package/src/cli/commands/report/start.ts +0 -140
  387. package/src/cli/commands/resource/acquire.ts +0 -116
  388. package/src/cli/commands/resource/list.ts +0 -77
  389. package/src/cli/commands/resource/release.ts +0 -64
  390. package/src/cli/commands/resource/wait.ts +0 -93
  391. package/src/cli/commands/review.ts +0 -105
  392. package/src/cli/commands/session/attach.ts +0 -200
  393. package/src/cli/commands/session/await.ts +0 -83
  394. package/src/cli/commands/session/complete.ts +0 -100
  395. package/src/cli/commands/session/create.ts +0 -92
  396. package/src/cli/commands/session/heartbeat.ts +0 -63
  397. package/src/cli/commands/session/list.ts +0 -281
  398. package/src/cli/commands/session/mark-done.ts +0 -132
  399. package/src/cli/commands/session/mine.ts +0 -189
  400. package/src/cli/commands/session/replay.ts +0 -659
  401. package/src/cli/commands/session/run.ts +0 -44
  402. package/src/cli/commands/session/show.ts +0 -177
  403. package/src/cli/commands/session/start.ts +0 -580
  404. package/src/cli/commands/session/state/cleanup.ts +0 -61
  405. package/src/cli/commands/session/state/end.ts +0 -47
  406. package/src/cli/commands/session/state/get.ts +0 -65
  407. package/src/cli/commands/session/state/init.ts +0 -50
  408. package/src/cli/commands/session/state/list.ts +0 -68
  409. package/src/cli/commands/session/state/update.ts +0 -108
  410. package/src/cli/commands/session/stop.ts +0 -134
  411. package/src/cli/commands/session/view.ts +0 -186
  412. package/src/cli/commands/start.ts +0 -256
  413. package/src/cli/commands/state/dump.ts +0 -449
  414. package/src/cli/commands/status.ts +0 -244
  415. package/src/cli/commands/sync.ts +0 -174
  416. package/src/cli/commands/trace/export.ts +0 -255
  417. package/src/cli/commands/triage/claim.ts +0 -203
  418. package/src/cli/commands/triage/list.ts +0 -137
  419. package/src/cli/commands/triage/next.ts +0 -73
  420. package/src/cli/commands/triage/pull.ts +0 -97
  421. package/src/cli/commands/triage/stats.ts +0 -82
  422. package/src/cli/commands/tunnel/list.ts +0 -113
  423. package/src/cli/commands/tunnel/start.ts +0 -122
  424. package/src/cli/commands/tunnel/stop.ts +0 -108
  425. package/src/cli/commands/tunnel/url.ts +0 -82
  426. package/src/cli/commands/web/start.ts +0 -125
  427. package/src/cli/commands/windows/context.ts +0 -439
  428. package/src/cli/commands/windows/focus.ts +0 -130
  429. package/src/cli/commands/windows/list.ts +0 -213
  430. package/src/cli/commands/windows/map.ts +0 -223
  431. package/src/cli/commands/windows/read.ts +0 -279
  432. package/src/cli/commands/windows/search.ts +0 -219
  433. package/src/cli/commands/windows/show.ts +0 -188
  434. package/src/cli/commands/windows/watch.ts +0 -262
  435. package/src/lib/__tests__/annotations-convex.test.ts +0 -104
  436. package/src/lib/active-sessions.ts +0 -1486
  437. package/src/lib/agent-adapters.ts +0 -412
  438. package/src/lib/agent-sessions.ts +0 -671
  439. package/src/lib/agent-trace.test.ts +0 -296
  440. package/src/lib/agent-trace.ts +0 -513
  441. package/src/lib/analytics.ts +0 -178
  442. package/src/lib/annotations-convex.ts +0 -296
  443. package/src/lib/annotations.test.ts +0 -274
  444. package/src/lib/annotations.ts +0 -836
  445. package/src/lib/auto/discover.ts +0 -545
  446. package/src/lib/auto/ideate.ts +0 -412
  447. package/src/lib/auto/spawn.ts +0 -549
  448. package/src/lib/auto/workspace.ts +0 -282
  449. package/src/lib/backlog.test.ts +0 -194
  450. package/src/lib/backlog.ts +0 -428
  451. package/src/lib/config-loader.ts +0 -391
  452. package/src/lib/config-sync/adapters/claude.ts +0 -91
  453. package/src/lib/config-sync/adapters/codex.ts +0 -135
  454. package/src/lib/config-sync/adapters/copilot.ts +0 -98
  455. package/src/lib/config-sync/adapters/gemini.ts +0 -86
  456. package/src/lib/config-sync/adapters/index.ts +0 -39
  457. package/src/lib/config-sync/adapters/opencode.ts +0 -94
  458. package/src/lib/config-sync/index.ts +0 -399
  459. package/src/lib/config-sync/types.ts +0 -92
  460. package/src/lib/config-sync/writer.ts +0 -188
  461. package/src/lib/content-sync/index.ts +0 -882
  462. package/src/lib/content-sync/types.ts +0 -104
  463. package/src/lib/contracts.test.ts +0 -186
  464. package/src/lib/contracts.ts +0 -195
  465. package/src/lib/convex.ts +0 -54
  466. package/src/lib/device.ts +0 -41
  467. package/src/lib/digest/index.ts +0 -529
  468. package/src/lib/docs/lint.test.ts +0 -135
  469. package/src/lib/docs/lint.ts +0 -310
  470. package/src/lib/docs/sync.ts +0 -184
  471. package/src/lib/doctor/index.ts +0 -647
  472. package/src/lib/doctor/repos.ts +0 -381
  473. package/src/lib/doctor/templates.ts +0 -191
  474. package/src/lib/errors.ts +0 -111
  475. package/src/lib/events.ts +0 -479
  476. package/src/lib/heartbeat.test.ts +0 -164
  477. package/src/lib/heartbeat.ts +0 -326
  478. package/src/lib/hooks/adapters/claude.ts +0 -115
  479. package/src/lib/hooks/adapters/codex.ts +0 -92
  480. package/src/lib/hooks/adapters/copilot.ts +0 -141
  481. package/src/lib/hooks/context.ts +0 -174
  482. package/src/lib/hooks/index.ts +0 -39
  483. package/src/lib/hooks/registry.ts +0 -101
  484. package/src/lib/hooks/runner.ts +0 -208
  485. package/src/lib/hooks/types.ts +0 -89
  486. package/src/lib/index.test.ts +0 -426
  487. package/src/lib/managed-session.ts +0 -117
  488. package/src/lib/math.test.ts +0 -299
  489. package/src/lib/math.ts +0 -120
  490. package/src/lib/ngrok.ts +0 -441
  491. package/src/lib/nvim/discovery.test.ts +0 -157
  492. package/src/lib/nvim/discovery.ts +0 -181
  493. package/src/lib/nvim/index.ts +0 -28
  494. package/src/lib/nvim/remote.test.ts +0 -21
  495. package/src/lib/nvim/remote.ts +0 -184
  496. package/src/lib/panes/README.md +0 -20
  497. package/src/lib/panes/broker.ts +0 -261
  498. package/src/lib/panes/index.ts +0 -1
  499. package/src/lib/panes/server.ts +0 -379
  500. package/src/lib/preview/detect.ts +0 -184
  501. package/src/lib/preview/index.ts +0 -1
  502. package/src/lib/process/index.ts +0 -16
  503. package/src/lib/process/snapshot.test.ts +0 -188
  504. package/src/lib/process/snapshot.ts +0 -257
  505. package/src/lib/provider-auth.ts +0 -258
  506. package/src/lib/references.ts +0 -481
  507. package/src/lib/report.ts +0 -973
  508. package/src/lib/resources.test.ts +0 -132
  509. package/src/lib/resources.ts +0 -429
  510. package/src/lib/runner.test.ts +0 -288
  511. package/src/lib/runner.ts +0 -1223
  512. package/src/lib/session-artifacts.test.ts +0 -107
  513. package/src/lib/session-artifacts.ts +0 -193
  514. package/src/lib/session-manager.test.ts +0 -402
  515. package/src/lib/session-manager.ts +0 -150
  516. package/src/lib/session-result.test.ts +0 -98
  517. package/src/lib/session-result.ts +0 -262
  518. package/src/lib/session-state.ts +0 -470
  519. package/src/lib/slack-workspace.ts +0 -25
  520. package/src/lib/tmux/bridge.ts +0 -439
  521. package/src/lib/tmux/context.test.ts +0 -242
  522. package/src/lib/tmux/context.ts +0 -380
  523. package/src/lib/tmux/index.ts +0 -46
  524. package/src/lib/tmux/map.test.ts +0 -99
  525. package/src/lib/tmux/map.ts +0 -252
  526. package/src/lib/tmux/panes.ts +0 -170
  527. package/src/lib/tmux/redaction.test.ts +0 -231
  528. package/src/lib/tmux/redaction.ts +0 -201
  529. package/src/lib/triage-llm.ts +0 -312
  530. package/src/lib/triage-tracker.ts +0 -400
  531. package/src/lib/triage.ts +0 -655
  532. package/src/lib/types.ts +0 -61
  533. package/src/lib/windows/index.ts +0 -2
  534. package/src/lib/windows/inventory.test.ts +0 -370
  535. package/src/lib/windows/inventory.ts +0 -352
  536. package/src/lib/windows/types.ts +0 -46
  537. package/src/lib.ts +0 -260
@@ -1,245 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { basename } from "node:path";
3
- import { Args, Flags } from "@oclif/core";
4
- import {
5
- calculateStatus,
6
- type DigestResult,
7
- discoverProjects,
8
- fetchLinearIssues,
9
- type Project,
10
- resolveProject,
11
- runDigests,
12
- } from "../../../lib/digest/index.js";
13
- import { BaseCommand } from "../../base-command.js";
14
-
15
- type DigestOutput = {
16
- dryRun: boolean;
17
- projects: Array<{
18
- name: string;
19
- repo: string;
20
- commits7d: number;
21
- uncommitted: number;
22
- status: string;
23
- linearIssues?: number;
24
- }>;
25
- results?: DigestResult[];
26
- outputDir: string;
27
- window: { start: string; end: string; days: number };
28
- };
29
-
30
- export default class DigestCommand extends BaseCommand {
31
- static override hidden = false;
32
- static override summary = "Generate project progress digests";
33
- static override description =
34
- `Analyze projects and generate world-class progress digests using codex.
35
-
36
- Accepts explicit project names, paths, or discovery flags.`;
37
-
38
- static override examples = [
39
- "<%= config.bin %> digest arbor luke kumori",
40
- "<%= config.bin %> digest -n 5",
41
- "<%= config.bin %> digest --all --min-commits 10",
42
- "<%= config.bin %> digest arbor --dry-run",
43
- ];
44
-
45
- static override args = {
46
- projects: Args.string({
47
- description: "Project names or paths to analyze",
48
- required: false,
49
- }),
50
- };
51
-
52
- static override strict = false;
53
-
54
- static override flags = {
55
- ...BaseCommand.baseFlags,
56
- n: Flags.integer({
57
- char: "n",
58
- description: "Discover and analyze top N projects by commits",
59
- }),
60
- all: Flags.boolean({
61
- description: "Discover and analyze all projects with activity",
62
- default: false,
63
- }),
64
- "min-commits": Flags.integer({
65
- description: "Minimum commits to include in discovery",
66
- default: 1,
67
- }),
68
- output: Flags.string({
69
- char: "o",
70
- description: "Output directory",
71
- default: "/tmp/agent-digest-results",
72
- }),
73
- days: Flags.integer({
74
- char: "d",
75
- description: "Look back N days",
76
- default: 7,
77
- }),
78
- concurrency: Flags.integer({
79
- char: "c",
80
- description: "Max parallel codex processes",
81
- default: 2,
82
- }),
83
- linear: Flags.boolean({
84
- description: "Include Linear issue correlation",
85
- default: true,
86
- allowNo: true,
87
- }),
88
- "dry-run": Flags.boolean({
89
- description: "Show what would be analyzed without running",
90
- default: false,
91
- }),
92
- };
93
-
94
- protected async execute(): Promise<DigestOutput> {
95
- const { argv, flags } = await this.parse(DigestCommand);
96
- this.parsedFlags = flags;
97
-
98
- const projectArgs = argv as string[];
99
-
100
- // Calculate window
101
- const windowEnd = new Date();
102
- const windowStart = new Date();
103
- windowStart.setDate(windowStart.getDate() - flags.days);
104
- const windowStartStr = windowStart.toISOString().split("T")[0];
105
- const windowEndStr = windowEnd.toISOString().split("T")[0];
106
-
107
- // Build project list
108
- let projects: Project[] = [];
109
-
110
- if (projectArgs.length > 0) {
111
- // Explicit projects
112
- for (const name of projectArgs) {
113
- const repo = resolveProject(name);
114
- if (!repo) {
115
- this.logWarn(`Project not found: ${name}`);
116
- continue;
117
- }
118
-
119
- let commits = 0;
120
- let uncommitted = 0;
121
- let branch = "main";
122
-
123
- try {
124
- const log = execSync(
125
- `git -C "${repo}" log --since="${windowStartStr}" --oneline 2>/dev/null`,
126
- {
127
- encoding: "utf-8",
128
- },
129
- );
130
- commits = log.trim().split("\n").filter(Boolean).length;
131
-
132
- const status = execSync(`git -C "${repo}" status --porcelain 2>/dev/null`, {
133
- encoding: "utf-8",
134
- });
135
- uncommitted = status.trim().split("\n").filter(Boolean).length;
136
-
137
- branch =
138
- execSync(`git -C "${repo}" branch --show-current 2>/dev/null`, {
139
- encoding: "utf-8",
140
- }).trim() || "main";
141
- } catch {
142
- // ignore
143
- }
144
-
145
- const project: Project = {
146
- name: basename(repo),
147
- repo,
148
- commits7d: commits,
149
- uncommitted,
150
- branch,
151
- status: calculateStatus(commits, uncommitted),
152
- };
153
-
154
- if (flags.linear) {
155
- project.linearIssues = fetchLinearIssues(project.name);
156
- }
157
-
158
- projects.push(project);
159
- }
160
- } else if (flags.all || flags.n) {
161
- // Discovery mode
162
- projects = discoverProjects({
163
- minCommits: flags["min-commits"],
164
- maxProjects: flags.n,
165
- days: flags.days,
166
- });
167
-
168
- // Fetch Linear issues if enabled
169
- if (flags.linear) {
170
- for (const project of projects) {
171
- project.linearIssues = fetchLinearIssues(project.name);
172
- }
173
- }
174
- } else {
175
- this.error("Provide project names, or use -n N or --all for discovery");
176
- }
177
-
178
- if (projects.length === 0) {
179
- this.error("No projects found matching criteria");
180
- }
181
-
182
- // Build output
183
- const projectSummaries = projects.map((p) => ({
184
- name: p.name,
185
- repo: p.repo,
186
- commits7d: p.commits7d,
187
- uncommitted: p.uncommitted,
188
- status: `${p.status.emoji} ${p.status.label}`,
189
- linearIssues: p.linearIssues?.length,
190
- }));
191
-
192
- this.logInfo(`Analyzing ${projects.length} projects...`);
193
- this.logInfo(` Window: ${windowStartStr} → ${windowEndStr}`);
194
- this.logInfo(` Output: ${flags.output}`);
195
- this.logInfo("");
196
-
197
- for (const p of projectSummaries) {
198
- const issueInfo = p.linearIssues ? `, ${p.linearIssues} issues` : "";
199
- this.logInfo(
200
- ` ${p.status} ${p.name}: ${p.commits7d} commits, ${p.uncommitted} uncommitted${issueInfo}`,
201
- );
202
- }
203
- this.logInfo("");
204
-
205
- const output: DigestOutput = {
206
- dryRun: flags["dry-run"],
207
- projects: projectSummaries,
208
- outputDir: flags.output,
209
- window: { start: windowStartStr, end: windowEndStr, days: flags.days },
210
- };
211
-
212
- if (flags["dry-run"]) {
213
- this.logInfo("(dry run - no analysis performed)");
214
- return output;
215
- }
216
-
217
- // Run digests
218
- const results = await runDigests({
219
- projects: projects.map((p) => p.name),
220
- outputDir: flags.output,
221
- days: flags.days,
222
- concurrency: flags.concurrency,
223
- linear: flags.linear,
224
- });
225
-
226
- output.results = results;
227
-
228
- // Print results
229
- this.logInfo("Results:");
230
- for (const r of results) {
231
- if (r.success) {
232
- this.logInfo(` ✓ ${r.project} (${r.rawBytes} bytes raw, ${r.digestBytes} bytes digest)`);
233
- } else {
234
- this.logInfo(` ✗ ${r.project}: ${r.error}`);
235
- }
236
- }
237
-
238
- const succeeded = results.filter((r) => r.success).length;
239
- const failed = results.filter((r) => !r.success).length;
240
- this.logInfo("");
241
- this.logInfo(`Summary: ${succeeded} completed, ${failed} failed`);
242
-
243
- return output;
244
- }
245
- }
@@ -1,93 +0,0 @@
1
- import { Flags } from "@oclif/core";
2
- import { type AgentsDocsLintResult, lintAgentsDocs } from "../../../lib/docs/lint.js";
3
- import { BaseCommand } from "../../base-command.js";
4
-
5
- export default class DocsLintCommand extends BaseCommand {
6
- static override summary = "Lint AGENTS.md contracts across the workspace";
7
-
8
- static override description =
9
- `Scans ~/Developer/{apps,packages,utils} for AGENTS.md files and validates:
10
- - AGENTS.md is canonical, CLAUDE.md → AGENTS.md symlink
11
- - Markdown structure (H1, headings)
12
- - XML-ish / non-Markdown AGENTS.md detection
13
- - Duplicate-content clusters (drift report)
14
-
15
- Excludes common vendor/build directories (node_modules, dist, build, .git, .next, etc.).`;
16
-
17
- static override examples = [
18
- "$ abbie docs lint",
19
- "$ abbie docs lint --json --quiet",
20
- "$ abbie docs lint --root ~/Developer --include apps --include packages --include utils",
21
- ];
22
-
23
- static override flags = {
24
- ...BaseCommand.baseFlags,
25
- root: Flags.string({
26
- description: "Workspace root (defaults to ~/Developer)",
27
- default: undefined,
28
- }),
29
- include: Flags.string({
30
- description: "Subdirectory under root to scan (repeatable)",
31
- multiple: true,
32
- default: ["apps", "packages", "utils"],
33
- }),
34
- };
35
-
36
- async execute(): Promise<AgentsDocsLintResult> {
37
- const { flags } = await this.parse(DocsLintCommand);
38
- this.parsedFlags = flags;
39
-
40
- const result = lintAgentsDocs({
41
- workspaceRoot: flags.root,
42
- include: flags.include,
43
- });
44
-
45
- if (!this.jsonEnabled?.()) {
46
- this.renderText(result);
47
- if (!result.ok) this.exit(1);
48
- }
49
-
50
- return { ...result, exitCode: result.ok ? 0 : 1 };
51
- }
52
-
53
- private renderText(result: AgentsDocsLintResult): void {
54
- this.log("");
55
- this.log("abbie docs lint");
56
- this.log("─".repeat(50));
57
- this.log("");
58
-
59
- this.log(`Workspace: ${result.workspaceRoot}`);
60
- this.log(`Include: ${result.includedRoots.join(", ") || "(none found)"}`);
61
- this.log(`AGENTS.md: ${result.agentsFiles}`);
62
- this.log(`Issues: ${result.errors} error, ${result.warnings} warn`);
63
- this.log(`Duplicates:${result.duplicateGroups.length} groups`);
64
- this.log("");
65
-
66
- if (result.issues.length > 0) {
67
- this.log("Issues:");
68
- for (const issue of result.issues) {
69
- const level = issue.severity === "error" ? "✗" : "!";
70
- this.log(` ${level} ${issue.path}: ${issue.detail}`);
71
- }
72
- this.log("");
73
- }
74
-
75
- if (result.duplicateGroups.length > 0) {
76
- this.log("Duplicate clusters (by content hash):");
77
- for (const group of result.duplicateGroups.slice(0, 25)) {
78
- this.log(` ${group.hash} (${group.count})`);
79
- for (const p of group.paths) this.log(` - ${p}`);
80
- }
81
- if (result.duplicateGroups.length > 25) {
82
- this.log(` … ${result.duplicateGroups.length - 25} more`);
83
- }
84
- this.log("");
85
- }
86
-
87
- if (result.ok) {
88
- this.log("✓ OK");
89
- } else {
90
- this.log("✗ Issues found");
91
- }
92
- }
93
- }
@@ -1,90 +0,0 @@
1
- import { Flags } from "@oclif/core";
2
- import { type AgentsDocsSyncResult, syncAgentsDocs } from "../../../lib/docs/sync.js";
3
- import { BaseCommand } from "../../base-command.js";
4
-
5
- export default class DocsSyncCommand extends BaseCommand {
6
- static override summary = "Sync AGENTS.md spawn protocol across the workspace";
7
-
8
- static override description =
9
- `Scans ~/Developer/{apps,packages,utils} for AGENTS.md and appends a standard
10
- "Agent Spawn Protocol (Recommended)" section when missing.
11
-
12
- This is non-blocking guidance (warn/log policy): skills are preferred but not required.`;
13
-
14
- static override examples = [
15
- "$ abbie docs sync --dry-run",
16
- "$ abbie docs sync",
17
- "$ abbie docs sync --root ~/Developer --include apps --include packages --include utils",
18
- "$ abbie docs sync --json --quiet",
19
- ];
20
-
21
- static override flags = {
22
- ...BaseCommand.baseFlags,
23
- root: Flags.string({
24
- description: "Workspace root (defaults to ~/Developer)",
25
- default: undefined,
26
- }),
27
- include: Flags.string({
28
- description: "Subdirectory under root to scan (repeatable)",
29
- multiple: true,
30
- default: ["apps", "packages", "utils"],
31
- }),
32
- "dry-run": Flags.boolean({
33
- description: "Preview changes without writing files",
34
- default: false,
35
- }),
36
- };
37
-
38
- async execute(): Promise<AgentsDocsSyncResult> {
39
- const { flags } = await this.parse(DocsSyncCommand);
40
- this.parsedFlags = flags;
41
-
42
- const result = syncAgentsDocs({
43
- workspaceRoot: flags.root,
44
- include: flags.include,
45
- dryRun: flags["dry-run"],
46
- });
47
-
48
- if (!this.jsonEnabled?.()) {
49
- this.renderText(result);
50
- }
51
-
52
- return result;
53
- }
54
-
55
- private renderText(result: AgentsDocsSyncResult): void {
56
- this.log("");
57
- this.log("abbie docs sync");
58
- this.log("─".repeat(50));
59
- this.log("");
60
-
61
- this.log(`Workspace: ${result.workspaceRoot}`);
62
- this.log(`Include: ${result.includedRoots.join(", ") || "(none found)"}`);
63
- this.log(`Scanned: ${result.scanned}`);
64
- this.log(`Updated: ${result.updated}`);
65
- this.log(`Skipped: ${result.skipped}`);
66
- this.log(`Mode: ${result.dryRun ? "dry-run" : "write"}`);
67
- this.log("");
68
-
69
- if (result.touchedPaths.length > 0) {
70
- this.log("Updated files:");
71
- for (const path of result.touchedPaths) {
72
- this.log(` ✓ ${path}`);
73
- }
74
- this.log("");
75
- }
76
-
77
- if (result.skippedPaths.length > 0 && !this.parsedFlags?.quiet) {
78
- this.log("Skipped files:");
79
- for (const entry of result.skippedPaths.slice(0, 50)) {
80
- this.log(` - ${entry.path} (${entry.reason})`);
81
- }
82
- if (result.skippedPaths.length > 50) {
83
- this.log(` … ${result.skippedPaths.length - 50} more`);
84
- }
85
- this.log("");
86
- }
87
-
88
- this.log(result.dryRun ? "✓ Dry-run complete" : "✓ Sync complete");
89
- }
90
- }
@@ -1,267 +0,0 @@
1
- import { Flags } from "@oclif/core";
2
- import {
3
- type Check,
4
- type DoctorResult,
5
- type RepoCheckResult,
6
- runDoctor,
7
- } from "../../lib/doctor/index.js";
8
- import { BaseCommand } from "../base-command.js";
9
-
10
- export default class DoctorCommand extends BaseCommand {
11
- static override summary = "Validate abbie CLI environment";
12
-
13
- static override description = `Check that the abbie CLI environment is properly configured.
14
-
15
- Validates:
16
- - ~/.abbie directories exist
17
- - Runtime detection (node/bun)
18
- - Required agent binaries (claude, codex, copilot, gemini)
19
- - Optional tools (slack, messages, linear)
20
- - Environment variables for integrations
21
- - Unified tooling symlinks (commands → claude/codex, skills → claude/codex/copilot/gemini)
22
-
23
- With --templates:
24
- - ~/.abbie/templates/ exists
25
- - Required templates present and valid
26
- - JSON Schema validation
27
-
28
- With --repos:
29
- - Per-repo .abbie/config.json or .loop.json
30
- - Config validity and extends resolution
31
- - AGENTS.md / CLAUDE.md presence
32
-
33
- With --all:
34
- - All checks above`;
35
-
36
- static override examples = [
37
- "$ abbie doctor",
38
- "$ abbie doctor --fix",
39
- "$ abbie doctor --templates",
40
- "$ abbie doctor --repos",
41
- "$ abbie doctor --all",
42
- "$ abbie doctor --all --json --quiet",
43
- ];
44
-
45
- static override flags = {
46
- ...BaseCommand.baseFlags,
47
- fix: Flags.boolean({
48
- description: "Create missing directories automatically",
49
- default: false,
50
- }),
51
- templates: Flags.boolean({
52
- description: "Include template system validation",
53
- default: false,
54
- }),
55
- repos: Flags.boolean({
56
- description: "Include per-repo contract validation",
57
- default: false,
58
- }),
59
- all: Flags.boolean({
60
- description: "Run all checks (environment + templates + repos)",
61
- default: false,
62
- }),
63
- "repos-path": Flags.string({
64
- description: "Custom path to scan for repos",
65
- default: undefined,
66
- }),
67
- };
68
-
69
- async execute(): Promise<DoctorResult> {
70
- const { flags } = await this.parse(DoctorCommand);
71
- this.parsedFlags = flags;
72
-
73
- const includeTemplates = flags.all || flags.templates;
74
- const includeRepos = flags.all || flags.repos;
75
-
76
- const result = await runDoctor({
77
- fix: flags.fix,
78
- includeTemplates,
79
- includeRepos,
80
- reposPath: flags["repos-path"],
81
- });
82
-
83
- if (!this.jsonEnabled?.()) {
84
- this.renderText(result, flags.fix, includeTemplates, includeRepos);
85
- // Exit non-zero if not ok (only in text mode)
86
- if (!result.ok) {
87
- this.exit(1);
88
- }
89
- }
90
-
91
- // In JSON mode, return result with exitCode embedded
92
- return {
93
- ...result,
94
- exitCode: result.ok ? 0 : 1,
95
- };
96
- }
97
-
98
- private renderText(
99
- result: DoctorResult,
100
- _didFix: boolean,
101
- includeTemplates: boolean,
102
- includeRepos: boolean,
103
- ): void {
104
- this.log("");
105
- this.log("abbie doctor");
106
- this.log("─".repeat(50));
107
- this.log("");
108
-
109
- // Group checks by category
110
- const dirChecks = result.checks.filter(
111
- (c) => c.name === "agents-root" || c.name.startsWith("dir-"),
112
- );
113
- const runtimeCheck = result.checks.find((c) => c.name === "runtime");
114
- const binChecks = result.checks.filter((c) => c.name.startsWith("bin-"));
115
- const envChecks = result.checks.filter((c) => c.name.startsWith("env-"));
116
- const symlinkChecks = result.checks.filter((c) => c.name.startsWith("symlink-"));
117
-
118
- // Directories
119
- this.log("Directories:");
120
- for (const check of dirChecks) {
121
- this.log(` ${this.statusIcon(check.status)} ${check.detail}`);
122
- }
123
- this.log("");
124
-
125
- // Runtime
126
- if (runtimeCheck) {
127
- this.log("Runtime:");
128
- this.log(` ${this.statusIcon(runtimeCheck.status)} ${runtimeCheck.detail}`);
129
- this.log("");
130
- }
131
-
132
- // Binaries
133
- this.log("Agent Binaries:");
134
- for (const check of binChecks) {
135
- const name = check.name.replace("bin-", "");
136
- this.log(` ${this.statusIcon(check.status)} ${name}: ${check.detail}`);
137
- }
138
- this.log("");
139
-
140
- // Environment
141
- this.log("Environment:");
142
- for (const check of envChecks) {
143
- this.log(` ${this.statusIcon(check.status)} ${check.detail}`);
144
- }
145
- this.log("");
146
-
147
- // Symlinks
148
- if (symlinkChecks.length > 0) {
149
- this.log("Unified Tooling Symlinks:");
150
- for (const check of symlinkChecks) {
151
- this.log(` ${this.statusIcon(check.status)} ${check.detail}`);
152
- }
153
- this.log("");
154
- }
155
-
156
- // Templates (v2)
157
- if (includeTemplates && result.templateChecks) {
158
- this.log("Templates:");
159
- for (const check of result.templateChecks) {
160
- this.log(` ${this.statusIcon(check.status)} ${check.detail}`);
161
- }
162
- this.log("");
163
- }
164
-
165
- // Repos (v2)
166
- if (includeRepos && result.repoResults) {
167
- this.log("Repos:");
168
- this.renderRepoResults(result.repoResults);
169
- this.log("");
170
- }
171
-
172
- // Summary
173
- this.log("─".repeat(50));
174
- if (result.summary) {
175
- this.log("Summary:");
176
- this.log(
177
- ` Environment: ${result.summary.environment.ok} ok, ${result.summary.environment.warn} warn, ${result.summary.environment.missing} missing`,
178
- );
179
- if (result.summary.templates) {
180
- this.log(
181
- ` Templates: ${result.summary.templates.ok} ok, ${result.summary.templates.warn} warn, ${result.summary.templates.missing} missing`,
182
- );
183
- }
184
- if (result.summary.repos) {
185
- const r = result.summary.repos;
186
- this.log(
187
- ` Repos: ${r.repos.withAgentsConfig} with .abbie/config.json, ${r.repos.withLoopJson} with .loop.json, ${r.repos.noConfig} no config`,
188
- );
189
- }
190
- this.log("");
191
- }
192
-
193
- if (result.ok) {
194
- this.log("✓ Environment ready");
195
- } else {
196
- this.log("✗ Issues found");
197
- this.log("");
198
-
199
- // Show fixes
200
- if (result.fixes.length > 0) {
201
- this.log("Fixes:");
202
- for (const fix of result.fixes) {
203
- this.log(` • ${fix.hint}`);
204
- }
205
- }
206
- }
207
-
208
- this.log("");
209
- }
210
-
211
- private renderRepoResults(results: RepoCheckResult[]): void {
212
- // Group by status
213
- const ok: string[] = [];
214
- const warn: string[] = [];
215
- const missing: string[] = [];
216
-
217
- for (const result of results) {
218
- const hasMissing = result.checks.some((c) => c.status === "missing");
219
- const hasWarn = result.checks.some((c) => c.status === "warn");
220
-
221
- if (hasMissing) {
222
- missing.push(result.repo);
223
- } else if (hasWarn) {
224
- warn.push(result.repo);
225
- } else {
226
- ok.push(result.repo);
227
- }
228
- }
229
-
230
- // Show counts
231
- this.log(` ${this.statusIcon("ok")} ${ok.length} repos fully configured`);
232
- if (warn.length > 0) {
233
- this.log(
234
- ` ${this.statusIcon("warn")} ${warn.length} repos with warnings: ${warn.join(", ")}`,
235
- );
236
- }
237
- if (missing.length > 0) {
238
- this.log(
239
- ` ${this.statusIcon("missing")} ${missing.length} repos with issues: ${missing.join(", ")}`,
240
- );
241
- }
242
-
243
- // Show detailed issues for repos with problems
244
- const problemRepos = results.filter((r) => r.checks.some((c) => c.status === "missing"));
245
- if (problemRepos.length > 0 && problemRepos.length <= 5) {
246
- this.log("");
247
- this.log(" Issues:");
248
- for (const repo of problemRepos) {
249
- const issues = repo.checks.filter((c) => c.status === "missing");
250
- for (const issue of issues) {
251
- this.log(` ${repo.repo}: ${issue.detail}`);
252
- }
253
- }
254
- }
255
- }
256
-
257
- private statusIcon(status: Check["status"]): string {
258
- switch (status) {
259
- case "ok":
260
- return "✓";
261
- case "missing":
262
- return "✗";
263
- case "warn":
264
- return "⚠";
265
- }
266
- }
267
- }