@creativeintelligence/abbie 0.1.4 → 0.1.6

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 (538) hide show
  1. package/dist/cli/commands/login.js +26 -0
  2. package/dist/cli/commands/start.js +2 -1
  3. package/oclif.manifest.json +1 -1
  4. package/package.json +9 -5
  5. package/dist/cli/base-command.d.ts.map +0 -1
  6. package/dist/cli/commands/agent/list.d.ts.map +0 -1
  7. package/dist/cli/commands/annotation/ack.d.ts.map +0 -1
  8. package/dist/cli/commands/annotation/create.d.ts.map +0 -1
  9. package/dist/cli/commands/annotation/events.d.ts.map +0 -1
  10. package/dist/cli/commands/annotation/export.d.ts.map +0 -1
  11. package/dist/cli/commands/annotation/import.d.ts.map +0 -1
  12. package/dist/cli/commands/annotation/ingest.d.ts.map +0 -1
  13. package/dist/cli/commands/annotation/list.d.ts.map +0 -1
  14. package/dist/cli/commands/annotation/reply.d.ts.map +0 -1
  15. package/dist/cli/commands/annotation/resolve.d.ts.map +0 -1
  16. package/dist/cli/commands/auto/index.d.ts.map +0 -1
  17. package/dist/cli/commands/backlog/add.d.ts.map +0 -1
  18. package/dist/cli/commands/backlog/claim.d.ts.map +0 -1
  19. package/dist/cli/commands/backlog/complete.d.ts.map +0 -1
  20. package/dist/cli/commands/backlog/list.d.ts.map +0 -1
  21. package/dist/cli/commands/backlog/pick.d.ts.map +0 -1
  22. package/dist/cli/commands/backlog/sync.d.ts.map +0 -1
  23. package/dist/cli/commands/bootstrap.d.ts.map +0 -1
  24. package/dist/cli/commands/bridge.d.ts.map +0 -1
  25. package/dist/cli/commands/context/inject.d.ts.map +0 -1
  26. package/dist/cli/commands/context/list.d.ts.map +0 -1
  27. package/dist/cli/commands/context/publish.d.ts.map +0 -1
  28. package/dist/cli/commands/context/read.d.ts.map +0 -1
  29. package/dist/cli/commands/daemon.d.ts.map +0 -1
  30. package/dist/cli/commands/digest/index.d.ts.map +0 -1
  31. package/dist/cli/commands/docs/lint.d.ts.map +0 -1
  32. package/dist/cli/commands/docs/sync.d.ts.map +0 -1
  33. package/dist/cli/commands/doctor.d.ts.map +0 -1
  34. package/dist/cli/commands/find/index.d.ts.map +0 -1
  35. package/dist/cli/commands/gc.d.ts.map +0 -1
  36. package/dist/cli/commands/history/index.d.ts.map +0 -1
  37. package/dist/cli/commands/hooks/guard.d.ts.map +0 -1
  38. package/dist/cli/commands/hooks/list.d.ts.map +0 -1
  39. package/dist/cli/commands/hooks/lock.d.ts.map +0 -1
  40. package/dist/cli/commands/hooks/status.d.ts.map +0 -1
  41. package/dist/cli/commands/hooks/test.d.ts.map +0 -1
  42. package/dist/cli/commands/hooks/unlock.d.ts.map +0 -1
  43. package/dist/cli/commands/index.d.ts.map +0 -1
  44. package/dist/cli/commands/list.d.ts.map +0 -1
  45. package/dist/cli/commands/list.e2e.test.d.ts +0 -1
  46. package/dist/cli/commands/list.e2e.test.js +0 -47
  47. package/dist/cli/commands/login.d.ts.map +0 -1
  48. package/dist/cli/commands/logout.d.ts.map +0 -1
  49. package/dist/cli/commands/panes/broker.d.ts.map +0 -1
  50. package/dist/cli/commands/panes/pipe-sink.d.ts.map +0 -1
  51. package/dist/cli/commands/panes/snapshot.d.ts.map +0 -1
  52. package/dist/cli/commands/plan.d.ts.map +0 -1
  53. package/dist/cli/commands/plan.e2e.test.d.ts +0 -1
  54. package/dist/cli/commands/plan.e2e.test.js +0 -74
  55. package/dist/cli/commands/preview/index.d.ts.map +0 -1
  56. package/dist/cli/commands/preview/init.d.ts.map +0 -1
  57. package/dist/cli/commands/preview/list.d.ts.map +0 -1
  58. package/dist/cli/commands/preview/status.d.ts.map +0 -1
  59. package/dist/cli/commands/preview/stop.d.ts.map +0 -1
  60. package/dist/cli/commands/preview/sync.d.ts.map +0 -1
  61. package/dist/cli/commands/preview/watch.d.ts.map +0 -1
  62. package/dist/cli/commands/project/add.d.ts.map +0 -1
  63. package/dist/cli/commands/project/list.d.ts.map +0 -1
  64. package/dist/cli/commands/project/remove.d.ts.map +0 -1
  65. package/dist/cli/commands/push.d.ts.map +0 -1
  66. package/dist/cli/commands/reference/add.d.ts.map +0 -1
  67. package/dist/cli/commands/reference/delete.d.ts.map +0 -1
  68. package/dist/cli/commands/reference/extract.d.ts.map +0 -1
  69. package/dist/cli/commands/reference/list.d.ts.map +0 -1
  70. package/dist/cli/commands/reference/normalize.d.ts.map +0 -1
  71. package/dist/cli/commands/reference/open.d.ts.map +0 -1
  72. package/dist/cli/commands/reference/save.d.ts.map +0 -1
  73. package/dist/cli/commands/reference/search.d.ts.map +0 -1
  74. package/dist/cli/commands/reference/show.d.ts.map +0 -1
  75. package/dist/cli/commands/reference/update-index.d.ts.map +0 -1
  76. package/dist/cli/commands/reference/update.d.ts.map +0 -1
  77. package/dist/cli/commands/report/blocked.d.ts.map +0 -1
  78. package/dist/cli/commands/report/complete.d.ts.map +0 -1
  79. package/dist/cli/commands/report/progress.d.ts.map +0 -1
  80. package/dist/cli/commands/report/start.d.ts.map +0 -1
  81. package/dist/cli/commands/resource/acquire.d.ts.map +0 -1
  82. package/dist/cli/commands/resource/list.d.ts.map +0 -1
  83. package/dist/cli/commands/resource/release.d.ts.map +0 -1
  84. package/dist/cli/commands/resource/wait.d.ts.map +0 -1
  85. package/dist/cli/commands/review.d.ts.map +0 -1
  86. package/dist/cli/commands/session/attach.d.ts.map +0 -1
  87. package/dist/cli/commands/session/await.d.ts.map +0 -1
  88. package/dist/cli/commands/session/complete.d.ts.map +0 -1
  89. package/dist/cli/commands/session/create.d.ts.map +0 -1
  90. package/dist/cli/commands/session/heartbeat.d.ts.map +0 -1
  91. package/dist/cli/commands/session/list.d.ts.map +0 -1
  92. package/dist/cli/commands/session/mark-done.d.ts.map +0 -1
  93. package/dist/cli/commands/session/mine.d.ts.map +0 -1
  94. package/dist/cli/commands/session/replay.d.ts.map +0 -1
  95. package/dist/cli/commands/session/run.d.ts.map +0 -1
  96. package/dist/cli/commands/session/show.d.ts.map +0 -1
  97. package/dist/cli/commands/session/start.d.ts.map +0 -1
  98. package/dist/cli/commands/session/state/cleanup.d.ts.map +0 -1
  99. package/dist/cli/commands/session/state/end.d.ts.map +0 -1
  100. package/dist/cli/commands/session/state/get.d.ts.map +0 -1
  101. package/dist/cli/commands/session/state/init.d.ts.map +0 -1
  102. package/dist/cli/commands/session/state/list.d.ts.map +0 -1
  103. package/dist/cli/commands/session/state/update.d.ts.map +0 -1
  104. package/dist/cli/commands/session/stop.d.ts.map +0 -1
  105. package/dist/cli/commands/session/view.d.ts.map +0 -1
  106. package/dist/cli/commands/start.d.ts.map +0 -1
  107. package/dist/cli/commands/state/dump.d.ts.map +0 -1
  108. package/dist/cli/commands/status.d.ts.map +0 -1
  109. package/dist/cli/commands/sync.d.ts.map +0 -1
  110. package/dist/cli/commands/trace/export.d.ts.map +0 -1
  111. package/dist/cli/commands/triage/claim.d.ts.map +0 -1
  112. package/dist/cli/commands/triage/list.d.ts.map +0 -1
  113. package/dist/cli/commands/triage/next.d.ts.map +0 -1
  114. package/dist/cli/commands/triage/pull.d.ts.map +0 -1
  115. package/dist/cli/commands/triage/stats.d.ts.map +0 -1
  116. package/dist/cli/commands/tunnel/list.d.ts.map +0 -1
  117. package/dist/cli/commands/tunnel/start.d.ts.map +0 -1
  118. package/dist/cli/commands/tunnel/stop.d.ts.map +0 -1
  119. package/dist/cli/commands/tunnel/url.d.ts.map +0 -1
  120. package/dist/cli/commands/web/start.d.ts.map +0 -1
  121. package/dist/cli/commands/windows/context.d.ts.map +0 -1
  122. package/dist/cli/commands/windows/focus.d.ts.map +0 -1
  123. package/dist/cli/commands/windows/list.d.ts.map +0 -1
  124. package/dist/cli/commands/windows/map.d.ts.map +0 -1
  125. package/dist/cli/commands/windows/read.d.ts.map +0 -1
  126. package/dist/cli/commands/windows/search.d.ts.map +0 -1
  127. package/dist/cli/commands/windows/show.d.ts.map +0 -1
  128. package/dist/cli/commands/windows/watch.d.ts.map +0 -1
  129. package/dist/lib/active-sessions.d.ts.map +0 -1
  130. package/dist/lib/agent-adapters.d.ts.map +0 -1
  131. package/dist/lib/agent-sessions.d.ts.map +0 -1
  132. package/dist/lib/agent-trace.d.ts.map +0 -1
  133. package/dist/lib/analytics.d.ts.map +0 -1
  134. package/dist/lib/annotations-convex.d.ts.map +0 -1
  135. package/dist/lib/annotations.d.ts.map +0 -1
  136. package/dist/lib/auto/discover.d.ts.map +0 -1
  137. package/dist/lib/auto/ideate.d.ts.map +0 -1
  138. package/dist/lib/auto/spawn.d.ts.map +0 -1
  139. package/dist/lib/auto/workspace.d.ts.map +0 -1
  140. package/dist/lib/backlog.d.ts.map +0 -1
  141. package/dist/lib/backlog.test.d.ts +0 -1
  142. package/dist/lib/backlog.test.js +0 -162
  143. package/dist/lib/config-loader.d.ts.map +0 -1
  144. package/dist/lib/config-sync/adapters/claude.d.ts.map +0 -1
  145. package/dist/lib/config-sync/adapters/codex.d.ts.map +0 -1
  146. package/dist/lib/config-sync/adapters/copilot.d.ts.map +0 -1
  147. package/dist/lib/config-sync/adapters/gemini.d.ts.map +0 -1
  148. package/dist/lib/config-sync/adapters/index.d.ts.map +0 -1
  149. package/dist/lib/config-sync/adapters/opencode.d.ts.map +0 -1
  150. package/dist/lib/config-sync/index.d.ts.map +0 -1
  151. package/dist/lib/config-sync/types.d.ts.map +0 -1
  152. package/dist/lib/config-sync/writer.d.ts.map +0 -1
  153. package/dist/lib/content-sync/index.d.ts.map +0 -1
  154. package/dist/lib/content-sync/types.d.ts.map +0 -1
  155. package/dist/lib/contracts.d.ts.map +0 -1
  156. package/dist/lib/convex.d.ts.map +0 -1
  157. package/dist/lib/device.d.ts.map +0 -1
  158. package/dist/lib/digest/index.d.ts.map +0 -1
  159. package/dist/lib/docs/lint.d.ts.map +0 -1
  160. package/dist/lib/docs/lint.test.d.ts +0 -1
  161. package/dist/lib/docs/lint.test.js +0 -120
  162. package/dist/lib/docs/sync.d.ts.map +0 -1
  163. package/dist/lib/doctor/index.d.ts.map +0 -1
  164. package/dist/lib/doctor/repos.d.ts.map +0 -1
  165. package/dist/lib/doctor/templates.d.ts.map +0 -1
  166. package/dist/lib/errors.d.ts.map +0 -1
  167. package/dist/lib/events.d.ts.map +0 -1
  168. package/dist/lib/heartbeat.d.ts.map +0 -1
  169. package/dist/lib/heartbeat.test.d.ts +0 -1
  170. package/dist/lib/heartbeat.test.js +0 -124
  171. package/dist/lib/hooks/adapters/claude.d.ts.map +0 -1
  172. package/dist/lib/hooks/adapters/codex.d.ts.map +0 -1
  173. package/dist/lib/hooks/adapters/copilot.d.ts.map +0 -1
  174. package/dist/lib/hooks/context.d.ts.map +0 -1
  175. package/dist/lib/hooks/index.d.ts.map +0 -1
  176. package/dist/lib/hooks/registry.d.ts.map +0 -1
  177. package/dist/lib/hooks/runner.d.ts.map +0 -1
  178. package/dist/lib/hooks/types.d.ts.map +0 -1
  179. package/dist/lib/index.test.d.ts +0 -1
  180. package/dist/lib/index.test.js +0 -334
  181. package/dist/lib/managed-session.d.ts.map +0 -1
  182. package/dist/lib/math.d.ts.map +0 -1
  183. package/dist/lib/math.test.d.ts +0 -1
  184. package/dist/lib/math.test.js +0 -238
  185. package/dist/lib/ngrok.d.ts.map +0 -1
  186. package/dist/lib/nvim/discovery.d.ts.map +0 -1
  187. package/dist/lib/nvim/discovery.test.d.ts +0 -1
  188. package/dist/lib/nvim/discovery.test.js +0 -131
  189. package/dist/lib/nvim/index.d.ts.map +0 -1
  190. package/dist/lib/nvim/remote.d.ts.map +0 -1
  191. package/dist/lib/nvim/remote.test.d.ts +0 -1
  192. package/dist/lib/nvim/remote.test.js +0 -18
  193. package/dist/lib/panes/broker.d.ts.map +0 -1
  194. package/dist/lib/panes/index.d.ts.map +0 -1
  195. package/dist/lib/panes/server.d.ts.map +0 -1
  196. package/dist/lib/preview/detect.d.ts.map +0 -1
  197. package/dist/lib/preview/index.d.ts.map +0 -1
  198. package/dist/lib/preview/manager.d.ts.map +0 -1
  199. package/dist/lib/preview/schema.d.ts.map +0 -1
  200. package/dist/lib/preview/sprite.d.ts.map +0 -1
  201. package/dist/lib/preview/watcher.d.ts.map +0 -1
  202. package/dist/lib/process/index.d.ts.map +0 -1
  203. package/dist/lib/process/snapshot.d.ts.map +0 -1
  204. package/dist/lib/process/snapshot.test.d.ts +0 -1
  205. package/dist/lib/process/snapshot.test.js +0 -127
  206. package/dist/lib/project-identity.d.ts.map +0 -1
  207. package/dist/lib/provider-auth.d.ts.map +0 -1
  208. package/dist/lib/references.d.ts.map +0 -1
  209. package/dist/lib/report.d.ts.map +0 -1
  210. package/dist/lib/resources.d.ts.map +0 -1
  211. package/dist/lib/resources.test.d.ts +0 -1
  212. package/dist/lib/resources.test.js +0 -94
  213. package/dist/lib/runner.d.ts.map +0 -1
  214. package/dist/lib/runner.test.d.ts +0 -1
  215. package/dist/lib/runner.test.js +0 -234
  216. package/dist/lib/session-artifacts.d.ts.map +0 -1
  217. package/dist/lib/session-manager.d.ts.map +0 -1
  218. package/dist/lib/session-manager.test.d.ts +0 -1
  219. package/dist/lib/session-manager.test.js +0 -310
  220. package/dist/lib/session-result.d.ts.map +0 -1
  221. package/dist/lib/session-state.d.ts.map +0 -1
  222. package/dist/lib/slack-workspace.d.ts.map +0 -1
  223. package/dist/lib/tmux/bridge.d.ts.map +0 -1
  224. package/dist/lib/tmux/context.d.ts.map +0 -1
  225. package/dist/lib/tmux/context.test.d.ts +0 -1
  226. package/dist/lib/tmux/context.test.js +0 -215
  227. package/dist/lib/tmux/index.d.ts.map +0 -1
  228. package/dist/lib/tmux/map.d.ts.map +0 -1
  229. package/dist/lib/tmux/map.test.d.ts +0 -1
  230. package/dist/lib/tmux/map.test.js +0 -80
  231. package/dist/lib/tmux/panes.d.ts.map +0 -1
  232. package/dist/lib/tmux/redaction.d.ts.map +0 -1
  233. package/dist/lib/tmux/redaction.test.d.ts +0 -1
  234. package/dist/lib/tmux/redaction.test.js +0 -183
  235. package/dist/lib/triage-llm.d.ts.map +0 -1
  236. package/dist/lib/triage-tracker.d.ts.map +0 -1
  237. package/dist/lib/triage.d.ts.map +0 -1
  238. package/dist/lib/types.d.ts.map +0 -1
  239. package/dist/lib/windows/index.d.ts.map +0 -1
  240. package/dist/lib/windows/inventory.d.ts.map +0 -1
  241. package/dist/lib/windows/inventory.test.d.ts +0 -1
  242. package/dist/lib/windows/inventory.test.js +0 -292
  243. package/dist/lib/windows/types.d.ts.map +0 -1
  244. package/dist/lib.d.ts.map +0 -1
  245. package/dist/web/app/@overlay/default.d.ts +0 -1
  246. package/dist/web/app/@overlay/default.js +0 -3
  247. package/dist/web/app/about/page.d.ts +0 -1
  248. package/dist/web/app/about/page.js +0 -6
  249. package/dist/web/app/layout.d.ts +0 -7
  250. package/dist/web/app/layout.js +0 -19
  251. package/dist/web/app/page.d.ts +0 -1
  252. package/dist/web/app/page.js +0 -38
  253. package/dist/web/app/settings/page.d.ts +0 -1
  254. package/dist/web/app/settings/page.js +0 -6
  255. package/dist/web/app/shortcuts/page.d.ts +0 -1
  256. package/dist/web/app/shortcuts/page.js +0 -6
  257. package/dist/web/atoms/sidebar.d.ts +0 -16
  258. package/dist/web/atoms/sidebar.js +0 -58
  259. package/dist/web/atoms/state.d.ts +0 -24
  260. package/dist/web/atoms/state.js +0 -43
  261. package/dist/web/components/command-palette.d.ts +0 -6
  262. package/dist/web/components/command-palette.js +0 -297
  263. package/dist/web/components/main-view.d.ts +0 -1
  264. package/dist/web/components/main-view.js +0 -93
  265. package/dist/web/components/overlay/page-overlay.d.ts +0 -16
  266. package/dist/web/components/overlay/page-overlay.js +0 -84
  267. package/dist/web/components/pane-view.d.ts +0 -5
  268. package/dist/web/components/pane-view.js +0 -168
  269. package/dist/web/components/project-files-view.d.ts +0 -6
  270. package/dist/web/components/project-files-view.js +0 -205
  271. package/dist/web/components/project-planning-view.d.ts +0 -6
  272. package/dist/web/components/project-planning-view.js +0 -146
  273. package/dist/web/components/session-view.d.ts +0 -6
  274. package/dist/web/components/session-view.js +0 -211
  275. package/dist/web/components/sessions-list-view.d.ts +0 -1
  276. package/dist/web/components/sessions-list-view.js +0 -118
  277. package/dist/web/components/sidebar/index.d.ts +0 -9
  278. package/dist/web/components/sidebar/index.js +0 -29
  279. package/dist/web/components/sidebar/kbd.d.ts +0 -17
  280. package/dist/web/components/sidebar/kbd.js +0 -47
  281. package/dist/web/components/sidebar/nav-group.d.ts +0 -22
  282. package/dist/web/components/sidebar/nav-group.js +0 -43
  283. package/dist/web/components/sidebar/nav-item.d.ts +0 -17
  284. package/dist/web/components/sidebar/nav-item.js +0 -38
  285. package/dist/web/components/sidebar/sidebar-header.d.ts +0 -9
  286. package/dist/web/components/sidebar/sidebar-header.js +0 -18
  287. package/dist/web/components/sidebar/sidebar-nav.d.ts +0 -7
  288. package/dist/web/components/sidebar/sidebar-nav.js +0 -505
  289. package/dist/web/components/sidebar/sidebar-search.d.ts +0 -7
  290. package/dist/web/components/sidebar/sidebar-search.js +0 -18
  291. package/dist/web/components/sidebar/sidebar-settings.d.ts +0 -4
  292. package/dist/web/components/sidebar/sidebar-settings.js +0 -28
  293. package/dist/web/components/sidebar/sidebar-transition.d.ts +0 -12
  294. package/dist/web/components/sidebar/sidebar-transition.js +0 -58
  295. package/dist/web/components/status-bar.d.ts +0 -1
  296. package/dist/web/components/status-bar.js +0 -53
  297. package/dist/web/components/terminal.d.ts +0 -4
  298. package/dist/web/components/terminal.js +0 -324
  299. package/dist/web/components/toast.d.ts +0 -7
  300. package/dist/web/components/toast.js +0 -72
  301. package/dist/web/hooks/use-keybindings.d.ts +0 -30
  302. package/dist/web/hooks/use-keybindings.js +0 -322
  303. package/dist/web/hooks/use-state.d.ts +0 -11
  304. package/dist/web/hooks/use-state.js +0 -84
  305. package/dist/web/lib/api.d.ts +0 -179
  306. package/dist/web/lib/api.js +0 -79
  307. package/dist/web/lib/paths.d.ts +0 -2
  308. package/dist/web/lib/paths.js +0 -26
  309. package/dist/web/lib/utils.d.ts +0 -2
  310. package/dist/web/lib/utils.js +0 -5
  311. package/dist/web/lib/ws.d.ts +0 -18
  312. package/dist/web/lib/ws.js +0 -138
  313. package/dist/web/next.config.d.ts +0 -3
  314. package/dist/web/next.config.js +0 -9
  315. package/scripts/generate-manifest.ts +0 -44
  316. package/src/cli/base-command.ts +0 -233
  317. package/src/cli/commands/__tests__/annotations.test.ts +0 -704
  318. package/src/cli/commands/__tests__/bridge.test.ts +0 -101
  319. package/src/cli/commands/__tests__/daemon.test.ts +0 -79
  320. package/src/cli/commands/agent/list.ts +0 -75
  321. package/src/cli/commands/annotation/ack.ts +0 -37
  322. package/src/cli/commands/annotation/create.ts +0 -67
  323. package/src/cli/commands/annotation/events.ts +0 -63
  324. package/src/cli/commands/annotation/export.ts +0 -67
  325. package/src/cli/commands/annotation/import.ts +0 -98
  326. package/src/cli/commands/annotation/ingest.ts +0 -112
  327. package/src/cli/commands/annotation/list.ts +0 -57
  328. package/src/cli/commands/annotation/reply.ts +0 -46
  329. package/src/cli/commands/annotation/resolve.ts +0 -37
  330. package/src/cli/commands/auto/index.ts +0 -755
  331. package/src/cli/commands/backlog/add.ts +0 -74
  332. package/src/cli/commands/backlog/claim.ts +0 -53
  333. package/src/cli/commands/backlog/complete.ts +0 -51
  334. package/src/cli/commands/backlog/list.ts +0 -107
  335. package/src/cli/commands/backlog/pick.ts +0 -50
  336. package/src/cli/commands/backlog/sync.ts +0 -131
  337. package/src/cli/commands/bootstrap.ts +0 -205
  338. package/src/cli/commands/bridge.ts +0 -233
  339. package/src/cli/commands/context/inject.ts +0 -103
  340. package/src/cli/commands/context/list.ts +0 -112
  341. package/src/cli/commands/context/publish.ts +0 -83
  342. package/src/cli/commands/context/read.ts +0 -85
  343. package/src/cli/commands/daemon.ts +0 -1809
  344. package/src/cli/commands/digest/index.ts +0 -245
  345. package/src/cli/commands/docs/lint.ts +0 -93
  346. package/src/cli/commands/docs/sync.ts +0 -90
  347. package/src/cli/commands/doctor.ts +0 -267
  348. package/src/cli/commands/find/index.ts +0 -313
  349. package/src/cli/commands/history/index.ts +0 -269
  350. package/src/cli/commands/hooks/guard.ts +0 -71
  351. package/src/cli/commands/hooks/list.ts +0 -139
  352. package/src/cli/commands/hooks/lock.ts +0 -47
  353. package/src/cli/commands/hooks/status.ts +0 -56
  354. package/src/cli/commands/hooks/test.ts +0 -190
  355. package/src/cli/commands/hooks/unlock.ts +0 -56
  356. package/src/cli/commands/list.e2e.test.ts +0 -58
  357. package/src/cli/commands/list.ts +0 -96
  358. package/src/cli/commands/login.ts +0 -236
  359. package/src/cli/commands/logout.ts +0 -45
  360. package/src/cli/commands/panes/broker.ts +0 -68
  361. package/src/cli/commands/panes/pipe-sink.ts +0 -101
  362. package/src/cli/commands/panes/snapshot.ts +0 -156
  363. package/src/cli/commands/plan.e2e.test.ts +0 -90
  364. package/src/cli/commands/plan.ts +0 -68
  365. package/src/cli/commands/preview/index.ts +0 -282
  366. package/src/cli/commands/preview/list.ts +0 -116
  367. package/src/cli/commands/preview/status.ts +0 -137
  368. package/src/cli/commands/preview/stop.ts +0 -165
  369. package/src/cli/commands/project/add.ts +0 -110
  370. package/src/cli/commands/project/list.ts +0 -136
  371. package/src/cli/commands/project/remove.ts +0 -60
  372. package/src/cli/commands/push.ts +0 -115
  373. package/src/cli/commands/reference/add.ts +0 -266
  374. package/src/cli/commands/reference/delete.ts +0 -67
  375. package/src/cli/commands/reference/extract.ts +0 -389
  376. package/src/cli/commands/reference/list.ts +0 -117
  377. package/src/cli/commands/reference/normalize.ts +0 -90
  378. package/src/cli/commands/reference/open.ts +0 -92
  379. package/src/cli/commands/reference/save.ts +0 -103
  380. package/src/cli/commands/reference/search.ts +0 -85
  381. package/src/cli/commands/reference/show.ts +0 -174
  382. package/src/cli/commands/reference/update-index.ts +0 -103
  383. package/src/cli/commands/reference/update.ts +0 -136
  384. package/src/cli/commands/report/blocked.ts +0 -165
  385. package/src/cli/commands/report/complete.ts +0 -179
  386. package/src/cli/commands/report/progress.ts +0 -142
  387. package/src/cli/commands/report/start.ts +0 -140
  388. package/src/cli/commands/resource/acquire.ts +0 -116
  389. package/src/cli/commands/resource/list.ts +0 -77
  390. package/src/cli/commands/resource/release.ts +0 -64
  391. package/src/cli/commands/resource/wait.ts +0 -93
  392. package/src/cli/commands/review.ts +0 -105
  393. package/src/cli/commands/session/attach.ts +0 -200
  394. package/src/cli/commands/session/await.ts +0 -83
  395. package/src/cli/commands/session/complete.ts +0 -100
  396. package/src/cli/commands/session/create.ts +0 -92
  397. package/src/cli/commands/session/heartbeat.ts +0 -63
  398. package/src/cli/commands/session/list.ts +0 -281
  399. package/src/cli/commands/session/mark-done.ts +0 -132
  400. package/src/cli/commands/session/mine.ts +0 -189
  401. package/src/cli/commands/session/replay.ts +0 -659
  402. package/src/cli/commands/session/run.ts +0 -44
  403. package/src/cli/commands/session/show.ts +0 -177
  404. package/src/cli/commands/session/start.ts +0 -580
  405. package/src/cli/commands/session/state/cleanup.ts +0 -61
  406. package/src/cli/commands/session/state/end.ts +0 -47
  407. package/src/cli/commands/session/state/get.ts +0 -65
  408. package/src/cli/commands/session/state/init.ts +0 -50
  409. package/src/cli/commands/session/state/list.ts +0 -68
  410. package/src/cli/commands/session/state/update.ts +0 -108
  411. package/src/cli/commands/session/stop.ts +0 -134
  412. package/src/cli/commands/session/view.ts +0 -186
  413. package/src/cli/commands/start.ts +0 -256
  414. package/src/cli/commands/state/dump.ts +0 -449
  415. package/src/cli/commands/status.ts +0 -244
  416. package/src/cli/commands/sync.ts +0 -174
  417. package/src/cli/commands/trace/export.ts +0 -255
  418. package/src/cli/commands/triage/claim.ts +0 -203
  419. package/src/cli/commands/triage/list.ts +0 -137
  420. package/src/cli/commands/triage/next.ts +0 -73
  421. package/src/cli/commands/triage/pull.ts +0 -97
  422. package/src/cli/commands/triage/stats.ts +0 -82
  423. package/src/cli/commands/tunnel/list.ts +0 -113
  424. package/src/cli/commands/tunnel/start.ts +0 -122
  425. package/src/cli/commands/tunnel/stop.ts +0 -108
  426. package/src/cli/commands/tunnel/url.ts +0 -82
  427. package/src/cli/commands/web/start.ts +0 -125
  428. package/src/cli/commands/windows/context.ts +0 -439
  429. package/src/cli/commands/windows/focus.ts +0 -130
  430. package/src/cli/commands/windows/list.ts +0 -213
  431. package/src/cli/commands/windows/map.ts +0 -223
  432. package/src/cli/commands/windows/read.ts +0 -279
  433. package/src/cli/commands/windows/search.ts +0 -219
  434. package/src/cli/commands/windows/show.ts +0 -188
  435. package/src/cli/commands/windows/watch.ts +0 -262
  436. package/src/lib/__tests__/annotations-convex.test.ts +0 -104
  437. package/src/lib/active-sessions.ts +0 -1486
  438. package/src/lib/agent-adapters.ts +0 -412
  439. package/src/lib/agent-sessions.ts +0 -671
  440. package/src/lib/agent-trace.test.ts +0 -296
  441. package/src/lib/agent-trace.ts +0 -513
  442. package/src/lib/analytics.ts +0 -178
  443. package/src/lib/annotations-convex.ts +0 -296
  444. package/src/lib/annotations.test.ts +0 -274
  445. package/src/lib/annotations.ts +0 -836
  446. package/src/lib/auto/discover.ts +0 -545
  447. package/src/lib/auto/ideate.ts +0 -412
  448. package/src/lib/auto/spawn.ts +0 -549
  449. package/src/lib/auto/workspace.ts +0 -282
  450. package/src/lib/backlog.test.ts +0 -194
  451. package/src/lib/backlog.ts +0 -428
  452. package/src/lib/config-loader.ts +0 -391
  453. package/src/lib/config-sync/adapters/claude.ts +0 -91
  454. package/src/lib/config-sync/adapters/codex.ts +0 -135
  455. package/src/lib/config-sync/adapters/copilot.ts +0 -98
  456. package/src/lib/config-sync/adapters/gemini.ts +0 -86
  457. package/src/lib/config-sync/adapters/index.ts +0 -39
  458. package/src/lib/config-sync/adapters/opencode.ts +0 -94
  459. package/src/lib/config-sync/index.ts +0 -399
  460. package/src/lib/config-sync/types.ts +0 -92
  461. package/src/lib/config-sync/writer.ts +0 -188
  462. package/src/lib/content-sync/index.ts +0 -882
  463. package/src/lib/content-sync/types.ts +0 -104
  464. package/src/lib/contracts.test.ts +0 -186
  465. package/src/lib/contracts.ts +0 -195
  466. package/src/lib/convex.ts +0 -54
  467. package/src/lib/device.ts +0 -41
  468. package/src/lib/digest/index.ts +0 -529
  469. package/src/lib/docs/lint.test.ts +0 -135
  470. package/src/lib/docs/lint.ts +0 -310
  471. package/src/lib/docs/sync.ts +0 -184
  472. package/src/lib/doctor/index.ts +0 -647
  473. package/src/lib/doctor/repos.ts +0 -381
  474. package/src/lib/doctor/templates.ts +0 -191
  475. package/src/lib/errors.ts +0 -111
  476. package/src/lib/events.ts +0 -479
  477. package/src/lib/heartbeat.test.ts +0 -164
  478. package/src/lib/heartbeat.ts +0 -326
  479. package/src/lib/hooks/adapters/claude.ts +0 -115
  480. package/src/lib/hooks/adapters/codex.ts +0 -92
  481. package/src/lib/hooks/adapters/copilot.ts +0 -141
  482. package/src/lib/hooks/context.ts +0 -174
  483. package/src/lib/hooks/index.ts +0 -39
  484. package/src/lib/hooks/registry.ts +0 -101
  485. package/src/lib/hooks/runner.ts +0 -208
  486. package/src/lib/hooks/types.ts +0 -89
  487. package/src/lib/index.test.ts +0 -426
  488. package/src/lib/managed-session.ts +0 -117
  489. package/src/lib/math.test.ts +0 -299
  490. package/src/lib/math.ts +0 -120
  491. package/src/lib/ngrok.ts +0 -441
  492. package/src/lib/nvim/discovery.test.ts +0 -157
  493. package/src/lib/nvim/discovery.ts +0 -181
  494. package/src/lib/nvim/index.ts +0 -28
  495. package/src/lib/nvim/remote.test.ts +0 -21
  496. package/src/lib/nvim/remote.ts +0 -184
  497. package/src/lib/panes/README.md +0 -20
  498. package/src/lib/panes/broker.ts +0 -261
  499. package/src/lib/panes/index.ts +0 -1
  500. package/src/lib/panes/server.ts +0 -379
  501. package/src/lib/preview/detect.ts +0 -184
  502. package/src/lib/preview/index.ts +0 -1
  503. package/src/lib/process/index.ts +0 -16
  504. package/src/lib/process/snapshot.test.ts +0 -188
  505. package/src/lib/process/snapshot.ts +0 -257
  506. package/src/lib/provider-auth.ts +0 -258
  507. package/src/lib/references.ts +0 -481
  508. package/src/lib/report.ts +0 -973
  509. package/src/lib/resources.test.ts +0 -132
  510. package/src/lib/resources.ts +0 -429
  511. package/src/lib/runner.test.ts +0 -288
  512. package/src/lib/runner.ts +0 -1223
  513. package/src/lib/session-artifacts.test.ts +0 -107
  514. package/src/lib/session-artifacts.ts +0 -193
  515. package/src/lib/session-manager.test.ts +0 -402
  516. package/src/lib/session-manager.ts +0 -150
  517. package/src/lib/session-result.test.ts +0 -98
  518. package/src/lib/session-result.ts +0 -262
  519. package/src/lib/session-state.ts +0 -470
  520. package/src/lib/slack-workspace.ts +0 -25
  521. package/src/lib/tmux/bridge.ts +0 -439
  522. package/src/lib/tmux/context.test.ts +0 -242
  523. package/src/lib/tmux/context.ts +0 -380
  524. package/src/lib/tmux/index.ts +0 -46
  525. package/src/lib/tmux/map.test.ts +0 -99
  526. package/src/lib/tmux/map.ts +0 -252
  527. package/src/lib/tmux/panes.ts +0 -170
  528. package/src/lib/tmux/redaction.test.ts +0 -231
  529. package/src/lib/tmux/redaction.ts +0 -201
  530. package/src/lib/triage-llm.ts +0 -312
  531. package/src/lib/triage-tracker.ts +0 -400
  532. package/src/lib/triage.ts +0 -655
  533. package/src/lib/types.ts +0 -61
  534. package/src/lib/windows/index.ts +0 -2
  535. package/src/lib/windows/inventory.test.ts +0 -370
  536. package/src/lib/windows/inventory.ts +0 -352
  537. package/src/lib/windows/types.ts +0 -46
  538. package/src/lib.ts +0 -260
@@ -1,101 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { existsSync } from "node:fs";
3
- import { join, resolve } from "node:path";
4
- import { spawnSync } from "node:child_process";
5
-
6
- describe("bridge command", () => {
7
- const repoRoot = resolve(__dirname, "../../../../../..");
8
-
9
- it("bridge script exists and is reachable from CLI", () => {
10
- const scriptPath = join(repoRoot, "scripts", "pi-bridge.ts");
11
- expect(existsSync(scriptPath)).toBe(true);
12
- });
13
-
14
- it("CLI symlink points to the bridge script", () => {
15
- const symlinkPath = join(repoRoot, "apps", "cli", "scripts", "pi-bridge.ts");
16
- expect(existsSync(symlinkPath)).toBe(true);
17
- });
18
-
19
- it("bridge script is valid TypeScript (can be parsed)", () => {
20
- const scriptPath = join(repoRoot, "scripts", "pi-bridge.ts");
21
- // Just verify it can be read without errors
22
- const result = spawnSync(
23
- "node",
24
- ["--experimental-strip-types", "-e", `require("fs").readFileSync("${scriptPath}", "utf8")`],
25
- { encoding: "utf8", timeout: 5000 },
26
- );
27
- expect(result.status).toBe(0);
28
- });
29
- });
30
-
31
- describe("bridge config resolution", () => {
32
- it("parseDotEnv handles standard .env format", () => {
33
- // Test the parsing logic inline since it's in the bridge command
34
- const parseDotEnv = (content: string): Record<string, string> => {
35
- const env: Record<string, string> = {};
36
- for (const rawLine of content.split("\n")) {
37
- const line = rawLine.trim();
38
- if (!line || line.startsWith("#")) continue;
39
- const idx = line.indexOf("=");
40
- if (idx <= 0) continue;
41
- const key = line.slice(0, idx).trim();
42
- let value = line.slice(idx + 1).trim();
43
- if (
44
- (value.startsWith('"') && value.endsWith('"')) ||
45
- (value.startsWith("'") && value.endsWith("'"))
46
- ) {
47
- value = value.slice(1, -1);
48
- }
49
- if (key) env[key] = value;
50
- }
51
- return env;
52
- };
53
-
54
- const result = parseDotEnv(`
55
- # Comment line
56
- CONVEX_URL=https://test.convex.cloud
57
- ABBIE_BRIDGE_SECRET="my-secret"
58
- PI_MODEL='claude-sonnet-4.6'
59
- EMPTY_VALUE=
60
- `);
61
-
62
- expect(result.CONVEX_URL).toBe("https://test.convex.cloud");
63
- expect(result.ABBIE_BRIDGE_SECRET).toBe("my-secret");
64
- expect(result.PI_MODEL).toBe("claude-sonnet-4.6");
65
- expect(result.EMPTY_VALUE).toBe("");
66
- });
67
-
68
- it("parseDotEnv skips comments and empty lines", () => {
69
- const parseDotEnv = (content: string): Record<string, string> => {
70
- const env: Record<string, string> = {};
71
- for (const rawLine of content.split("\n")) {
72
- const line = rawLine.trim();
73
- if (!line || line.startsWith("#")) continue;
74
- const idx = line.indexOf("=");
75
- if (idx <= 0) continue;
76
- const key = line.slice(0, idx).trim();
77
- let value = line.slice(idx + 1).trim();
78
- if (
79
- (value.startsWith('"') && value.endsWith('"')) ||
80
- (value.startsWith("'") && value.endsWith("'"))
81
- ) {
82
- value = value.slice(1, -1);
83
- }
84
- if (key) env[key] = value;
85
- }
86
- return env;
87
- };
88
-
89
- const result = parseDotEnv(`
90
- # This is a comment
91
- # Another comment
92
-
93
- KEY=value
94
-
95
- # More comments
96
- `);
97
-
98
- expect(Object.keys(result)).toEqual(["KEY"]);
99
- expect(result.KEY).toBe("value");
100
- });
101
- });
@@ -1,79 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
-
3
- type ExecuteQueuedCommandResult = { success: boolean; sessionId?: string; error?: string };
4
- type ExecuteQueuedCommand = (command: string, args: unknown) => Promise<ExecuteQueuedCommandResult>;
5
-
6
- const startSpy = vi.fn(async () => ({ session_id: "sess_test_123" }));
7
-
8
- vi.mock("@creativeintelligence/sdk/convex", () => ({
9
- api: {},
10
- closeClients: vi.fn(),
11
- getHttpClient: vi.fn(),
12
- isConvexConfigured: vi.fn(() => true),
13
- subscribe: vi.fn(),
14
- }));
15
-
16
- vi.mock("../../../lib/active-sessions.js", () => ({
17
- getActiveSessionManager: () => ({ start: startSpy }),
18
- }));
19
-
20
- describe("executeQueuedCommand", () => {
21
- beforeEach(() => {
22
- startSpy.mockClear();
23
- });
24
-
25
- it('should handle "abbie session start" command', async () => {
26
- const { default: DaemonCommand } = await import("../daemon.ts");
27
-
28
- const exec = (
29
- DaemonCommand as unknown as { prototype: { executeQueuedCommand: ExecuteQueuedCommand } }
30
- ).prototype.executeQueuedCommand;
31
-
32
- const result = await exec("abbie session start", {
33
- agent: "codex",
34
- project: "arbor",
35
- goal: "Implement ARBOR-123",
36
- issue: "ARBOR-123",
37
- cwd: "/tmp/arbor",
38
- });
39
-
40
- expect(startSpy).toHaveBeenCalledTimes(1);
41
- expect(startSpy).toHaveBeenCalledWith({
42
- agent: "codex",
43
- project: "arbor",
44
- goal: "Implement ARBOR-123",
45
- issue: "ARBOR-123",
46
- cwd: "/tmp/arbor",
47
- });
48
- expect(result).toEqual({ success: true, sessionId: "sess_test_123" });
49
- });
50
-
51
- it("should return error for unknown command", async () => {
52
- const { default: DaemonCommand } = await import("../daemon.ts");
53
-
54
- const exec = (
55
- DaemonCommand as unknown as { prototype: { executeQueuedCommand: ExecuteQueuedCommand } }
56
- ).prototype.executeQueuedCommand;
57
-
58
- const result = await exec("abbie nope", {});
59
- expect(result).toEqual({ success: false, error: "Unknown command: abbie nope" });
60
- });
61
-
62
- it("should handle missing required args gracefully", async () => {
63
- const { default: DaemonCommand } = await import("../daemon.ts");
64
-
65
- const exec = (
66
- DaemonCommand as unknown as { prototype: { executeQueuedCommand: ExecuteQueuedCommand } }
67
- ).prototype.executeQueuedCommand;
68
-
69
- const result = await exec("abbie session start", {
70
- project: "arbor",
71
- // agent missing
72
- goal: "Missing agent",
73
- });
74
-
75
- expect(startSpy).not.toHaveBeenCalled();
76
- expect(result.success).toBe(false);
77
- expect(result.error).toContain("abbie session start");
78
- });
79
- });
@@ -1,75 +0,0 @@
1
- import { Command, Flags } from "@oclif/core";
2
- import { AGENT_METADATA, getAvailableAgents } from "../../../lib/agent-adapters.js";
3
- import { AGENTS } from "../../../lib/types.js";
4
-
5
- export default class AgentList extends Command {
6
- static override description = "List available AI coding agents";
7
-
8
- static override examples = [
9
- "<%= config.bin %> <%= command.id %>",
10
- "<%= config.bin %> <%= command.id %> --available",
11
- "<%= config.bin %> <%= command.id %> --json --quiet",
12
- ];
13
-
14
- static override flags = {
15
- available: Flags.boolean({
16
- char: "a",
17
- description: "Only show installed/available agents",
18
- default: false,
19
- }),
20
- json: Flags.boolean({
21
- description: "Output as JSON",
22
- default: false,
23
- }),
24
- quiet: Flags.boolean({
25
- char: "q",
26
- description: "Suppress info messages",
27
- default: false,
28
- }),
29
- };
30
-
31
- async run(): Promise<void> {
32
- const { flags } = await this.parse(AgentList);
33
- const availableAgents = await getAvailableAgents();
34
-
35
- const agents = AGENTS.map((type) => {
36
- const meta = AGENT_METADATA[type];
37
- const isAvailable = availableAgents.includes(type);
38
-
39
- return {
40
- type,
41
- name: meta.name,
42
- description: meta.description,
43
- available: isAvailable,
44
- installCmd: meta.installCmd,
45
- };
46
- });
47
-
48
- const filtered = flags.available ? agents.filter((a) => a.available) : agents;
49
-
50
- if (flags.json) {
51
- this.log(JSON.stringify(filtered, null, 2));
52
- return;
53
- }
54
-
55
- if (!flags.quiet) {
56
- this.log("\nAI Coding Agents\n");
57
- }
58
-
59
- for (const agent of filtered) {
60
- const status = agent.available ? "✓" : "✗";
61
- const color = agent.available ? "\x1b[32m" : "\x1b[31m";
62
- this.log(
63
- ` ${color}${status}\x1b[0m ${agent.type.padEnd(10)} ${agent.name} - ${agent.description}`,
64
- );
65
- if (!agent.available && agent.installCmd) {
66
- this.log(` Install: ${agent.installCmd}`);
67
- }
68
- }
69
-
70
- if (!flags.quiet) {
71
- const availableCount = filtered.filter((a) => a.available).length;
72
- this.log(`\n${availableCount}/${filtered.length} agents available`);
73
- }
74
- }
75
- }
@@ -1,37 +0,0 @@
1
- import { Args } from "@oclif/core";
2
- import { ConvexAnnotationClient } from "../../../lib/annotations-convex.js";
3
- import { BaseCommand } from "../../base-command.js";
4
-
5
- export default class AnnotationAck extends BaseCommand {
6
- static override description = "Acknowledge an annotation (mark as seen)";
7
- static override hidden = false;
8
-
9
- static override examples = ["<%= config.bin %> annotation ack PREVIEW_ID ANNOTATION_ID"];
10
-
11
- static override args = {
12
- previewId: Args.string({ description: "Preview deployment ID", required: true }),
13
- annotationId: Args.string({ description: "Annotation ID", required: true }),
14
- };
15
-
16
- static override flags = {
17
- ...BaseCommand.baseFlags,
18
- };
19
-
20
- protected async execute(): Promise<unknown> {
21
- const { args, flags } = await this.parse(AnnotationAck);
22
- this.parsedFlags = flags;
23
-
24
- const client = new ConvexAnnotationClient();
25
- const annotation = await client.acknowledge(args.previewId, args.annotationId);
26
-
27
- if (!annotation) {
28
- this.error(`Annotation ${args.annotationId} not found`);
29
- }
30
-
31
- const isJson = flags.json || flags.format === "json";
32
- if (isJson) return annotation;
33
-
34
- this.logInfo(`Acknowledged ${annotation.id.slice(0, 8)}`);
35
- return annotation;
36
- }
37
- }
@@ -1,67 +0,0 @@
1
- import { Args, Flags } from "@oclif/core";
2
- import type { AnnotationIntent, AnnotationSeverity } from "../../../lib/annotations.js";
3
- import { ConvexAnnotationClient } from "../../../lib/annotations-convex.js";
4
- import { BaseCommand } from "../../base-command.js";
5
-
6
- export default class AnnotationCreate extends BaseCommand {
7
- static override description = "Create an annotation on a preview deployment";
8
- static override hidden = false;
9
-
10
- static override examples = [
11
- '<%= config.bin %> annotation create PREVIEW_ID "Button text is truncated on mobile"',
12
- '<%= config.bin %> annotation create PREVIEW_ID "Auth redirect broken" --severity error --intent bug',
13
- '<%= config.bin %> annotation create PREVIEW_ID "Consider lazy loading" --intent suggestion --target /dashboard',
14
- ];
15
-
16
- static override args = {
17
- previewId: Args.string({ description: "Preview deployment ID", required: true }),
18
- body: Args.string({ description: "Annotation body (markdown)", required: true }),
19
- };
20
-
21
- static override flags = {
22
- ...BaseCommand.baseFlags,
23
- severity: Flags.string({
24
- description: "Severity level",
25
- options: ["info", "warning", "error", "critical"],
26
- default: "info",
27
- }),
28
- intent: Flags.string({
29
- description: "Annotation intent",
30
- options: ["feedback", "bug", "suggestion", "question", "blocker"],
31
- default: "feedback",
32
- }),
33
- source: Flags.string({
34
- description: "Source tool creating this annotation",
35
- default: "cli",
36
- }),
37
- target: Flags.string({
38
- description: "URL path or element being annotated",
39
- }),
40
- selector: Flags.string({
41
- description: "CSS selector for the annotated element",
42
- }),
43
- };
44
-
45
- protected async execute(): Promise<unknown> {
46
- const { args, flags } = await this.parse(AnnotationCreate);
47
- this.parsedFlags = flags;
48
-
49
- const client = new ConvexAnnotationClient();
50
- const annotation = await client.create({
51
- previewId: args.previewId,
52
- body: args.body,
53
- severity: flags.severity as AnnotationSeverity,
54
- intent: flags.intent as AnnotationIntent,
55
- source: flags.source,
56
- target: flags.target,
57
- selector: flags.selector,
58
- });
59
-
60
- const isJson = flags.json || flags.format === "json";
61
-
62
- if (isJson) return annotation;
63
-
64
- this.logInfo(`Created annotation ${annotation.id.slice(0, 8)} [${annotation.status}]`);
65
- return annotation;
66
- }
67
- }
@@ -1,63 +0,0 @@
1
- import { Args, Flags } from "@oclif/core";
2
- import { AnnotationStore } from "../../../lib/annotations.js";
3
- import { BaseCommand } from "../../base-command.js";
4
-
5
- export default class AnnotationEvents extends BaseCommand {
6
- static override description =
7
- "List or export annotation event envelopes for a preview deployment";
8
- static override hidden = false;
9
-
10
- static override examples = [
11
- "<%= config.bin %> annotation events PREVIEW_ID",
12
- "<%= config.bin %> annotation events PREVIEW_ID --session-id sess_abc",
13
- "<%= config.bin %> annotation events PREVIEW_ID --ndjson -q",
14
- ];
15
-
16
- static override args = {
17
- previewId: Args.string({
18
- description: "Preview deployment ID",
19
- required: true,
20
- }),
21
- };
22
-
23
- static override flags = {
24
- ...BaseCommand.baseFlags,
25
- "session-id": Flags.string({
26
- description:
27
- "Override session ID in event envelopes (default: per-annotation linkedSessionId)",
28
- }),
29
- };
30
-
31
- protected async execute(): Promise<unknown> {
32
- const { args, flags } = await this.parse(AnnotationEvents);
33
- this.parsedFlags = flags;
34
-
35
- const store = new AnnotationStore();
36
- const envelopes = store.exportEvents(args.previewId, {
37
- sessionId: flags["session-id"],
38
- });
39
-
40
- if (this.ndjsonEnabled()) {
41
- this.outputNdjson(envelopes);
42
- return;
43
- }
44
-
45
- const isJson = flags.json || flags.format === "json";
46
- if (isJson) {
47
- return envelopes;
48
- }
49
-
50
- if (envelopes.length === 0) {
51
- this.logInfo("No events found");
52
- return [];
53
- }
54
-
55
- for (const env of envelopes) {
56
- const e = env.event;
57
- const session = env.sessionId ? ` [${env.sessionId}]` : "";
58
- this.log(`#${e.seq} ${e.type} ${e.annotationId.slice(0, 8)}${session} @ ${e.timestamp}`);
59
- }
60
-
61
- return envelopes;
62
- }
63
- }
@@ -1,67 +0,0 @@
1
- import { Args, Flags } from "@oclif/core";
2
- import { AnnotationStore } from "../../../lib/annotations.js";
3
- import { BaseCommand } from "../../base-command.js";
4
-
5
- export default class AnnotationExport extends BaseCommand {
6
- static override description = "Export annotations as AFS payload(s) from a preview deployment";
7
- static override hidden = false;
8
-
9
- static override examples = [
10
- "<%= config.bin %> annotation export PREVIEW_ID",
11
- "<%= config.bin %> annotation export PREVIEW_ID ANNOTATION_ID",
12
- "<%= config.bin %> annotation export PREVIEW_ID --status pending",
13
- "<%= config.bin %> annotation export PREVIEW_ID --ndjson",
14
- ];
15
-
16
- static override args = {
17
- previewId: Args.string({
18
- description: "Preview deployment ID",
19
- required: true,
20
- }),
21
- annotationId: Args.string({
22
- description: "Single annotation ID to export (omit for batch)",
23
- required: false,
24
- }),
25
- };
26
-
27
- static override flags = {
28
- ...BaseCommand.baseFlags,
29
- status: Flags.string({
30
- char: "s",
31
- description: "Filter by status (batch mode only)",
32
- options: ["pending", "acknowledged", "resolved", "dismissed"],
33
- }),
34
- };
35
-
36
- protected async execute(): Promise<unknown> {
37
- const { args, flags } = await this.parse(AnnotationExport);
38
- this.parsedFlags = flags;
39
-
40
- const store = new AnnotationStore();
41
-
42
- // Single export
43
- if (args.annotationId) {
44
- const afs = store.exportAfs(args.previewId, args.annotationId);
45
- if (!afs) {
46
- this.error(`Annotation ${args.annotationId} not found`);
47
- }
48
- return afs;
49
- }
50
-
51
- // Batch export
52
- const filter = flags.status ? { status: flags.status as "pending" } : undefined;
53
- const results = store.exportAfsBatch(args.previewId, filter);
54
-
55
- if (this.ndjsonEnabled()) {
56
- this.outputNdjson(results);
57
- return;
58
- }
59
-
60
- if (results.length === 0) {
61
- this.logInfo("No annotations to export");
62
- return [];
63
- }
64
-
65
- return results;
66
- }
67
- }
@@ -1,98 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import { Args, Flags } from "@oclif/core";
3
- import type { AfsAnnotation } from "../../../lib/annotations.js";
4
- import { AnnotationStore } from "../../../lib/annotations.js";
5
- import { BaseCommand } from "../../base-command.js";
6
-
7
- export default class AnnotationImport extends BaseCommand {
8
- static override description = "Import AFS annotation payload(s) into a preview deployment";
9
- static override hidden = false;
10
-
11
- static override examples = [
12
- 'echo \'{"id":"ann_1","comment":"Fix button","elementPath":"body","timestamp":0,"x":0,"y":0,"element":"div"}\' | <%= config.bin %> annotation import PREVIEW_ID',
13
- "<%= config.bin %> annotation import PREVIEW_ID --file annotations.json",
14
- "<%= config.bin %> annotation import PREVIEW_ID --file batch.json --batch",
15
- ];
16
-
17
- static override args = {
18
- previewId: Args.string({
19
- description: "Preview deployment ID",
20
- required: true,
21
- }),
22
- };
23
-
24
- static override flags = {
25
- ...BaseCommand.baseFlags,
26
- file: Flags.string({
27
- char: "f",
28
- description: "Path to AFS JSON file (single object or array)",
29
- }),
30
- batch: Flags.boolean({
31
- description: "Treat input as a JSON array of AFS annotations",
32
- default: false,
33
- }),
34
- source: Flags.string({
35
- description: "Source identifier for imported annotations",
36
- default: "agentation-afs",
37
- }),
38
- "session-id": Flags.string({
39
- description: "Link imported annotations to this session ID",
40
- }),
41
- };
42
-
43
- protected async execute(): Promise<unknown> {
44
- const { args, flags } = await this.parse(AnnotationImport);
45
- this.parsedFlags = flags;
46
-
47
- let raw: string;
48
- if (flags.file) {
49
- raw = readFileSync(flags.file, "utf-8").trim();
50
- } else {
51
- raw = await this.readStdin();
52
- if (!raw) {
53
- this.error("No input provided. Pipe AFS JSON via stdin or use --file.");
54
- }
55
- }
56
-
57
- let parsed: unknown;
58
- try {
59
- parsed = JSON.parse(raw);
60
- } catch {
61
- this.error("Invalid JSON input");
62
- }
63
-
64
- const store = new AnnotationStore();
65
- const parsedIsArray = Array.isArray(parsed);
66
- if (flags.batch && !parsedIsArray) {
67
- this.error("Batch mode expects a JSON array of AFS annotations");
68
- }
69
-
70
- const isBatch = flags.batch || parsedIsArray;
71
- const afsPayloads: AfsAnnotation[] = parsedIsArray
72
- ? (parsed as AfsAnnotation[])
73
- : [parsed as AfsAnnotation];
74
-
75
- const results = store.importAfsBatch({
76
- previewId: args.previewId,
77
- annotations: afsPayloads,
78
- source: flags.source,
79
- });
80
-
81
- // Link session if provided
82
- if (flags["session-id"]) {
83
- for (const annotation of results) {
84
- store.linkSession(args.previewId, annotation.id, flags["session-id"]);
85
- }
86
- }
87
-
88
- const isJson = flags.json || flags.format === "json";
89
- if (isJson) {
90
- return isBatch ? results : results[0];
91
- }
92
-
93
- this.logInfo(
94
- `Imported ${results.length} annotation${results.length !== 1 ? "s" : ""} into ${args.previewId}`
95
- );
96
- return isBatch ? results : results[0];
97
- }
98
- }