agor-live 0.16.2 → 0.16.4

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 (346) hide show
  1. package/bin/agor-daemon.js +1 -1
  2. package/dist/cli/base-command.d.ts +1 -1
  3. package/dist/cli/base-command.js +8 -7
  4. package/dist/cli/commands/auth/login.js +2 -2
  5. package/dist/cli/commands/board/add-session.d.ts +1 -1
  6. package/dist/cli/commands/board/add-session.js +15 -17
  7. package/dist/cli/commands/board/clone.d.ts +1 -1
  8. package/dist/cli/commands/board/clone.js +8 -7
  9. package/dist/cli/commands/board/export.d.ts +1 -1
  10. package/dist/cli/commands/board/export.js +8 -7
  11. package/dist/cli/commands/board/import.d.ts +1 -1
  12. package/dist/cli/commands/board/import.js +8 -7
  13. package/dist/cli/commands/board/list.d.ts +1 -1
  14. package/dist/cli/commands/board/list.js +15 -13
  15. package/dist/cli/commands/daemon/logs.js +71 -6
  16. package/dist/cli/commands/daemon/restart.js +43 -6
  17. package/dist/cli/commands/daemon/start.d.ts +6 -0
  18. package/dist/cli/commands/daemon/start.js +208 -133
  19. package/dist/cli/commands/daemon/status.js +5 -2
  20. package/dist/cli/commands/daemon/stop.js +3 -0
  21. package/dist/cli/commands/init.js +1 -1
  22. package/dist/cli/commands/login.js +2 -2
  23. package/dist/cli/commands/mcp/add.d.ts +1 -1
  24. package/dist/cli/commands/mcp/add.js +8 -7
  25. package/dist/cli/commands/mcp/list.d.ts +1 -1
  26. package/dist/cli/commands/mcp/list.js +9 -9
  27. package/dist/cli/commands/mcp/remove.d.ts +1 -1
  28. package/dist/cli/commands/mcp/remove.js +9 -9
  29. package/dist/cli/commands/mcp/show.d.ts +1 -1
  30. package/dist/cli/commands/mcp/show.js +9 -9
  31. package/dist/cli/commands/open.js +2 -2
  32. package/dist/cli/commands/repo/add-local.d.ts +1 -1
  33. package/dist/cli/commands/repo/add-local.js +8 -7
  34. package/dist/cli/commands/repo/add.d.ts +1 -1
  35. package/dist/cli/commands/repo/add.js +9 -8
  36. package/dist/cli/commands/repo/list.d.ts +1 -1
  37. package/dist/cli/commands/repo/list.js +9 -9
  38. package/dist/cli/commands/repo/rm.d.ts +1 -1
  39. package/dist/cli/commands/repo/rm.js +9 -9
  40. package/dist/cli/commands/session/list.d.ts +1 -1
  41. package/dist/cli/commands/session/list.js +9 -10
  42. package/dist/cli/commands/session/load-claude.d.ts +1 -1
  43. package/dist/cli/commands/session/load-claude.js +10 -10
  44. package/dist/cli/commands/user/create.d.ts +1 -1
  45. package/dist/cli/commands/user/create.js +8 -7
  46. package/dist/cli/commands/user/delete.d.ts +1 -1
  47. package/dist/cli/commands/user/delete.js +9 -9
  48. package/dist/cli/commands/user/update.d.ts +1 -1
  49. package/dist/cli/commands/user/update.js +9 -9
  50. package/dist/cli/commands/worktree/add.d.ts +1 -1
  51. package/dist/cli/commands/worktree/add.js +9 -9
  52. package/dist/cli/commands/worktree/archive.d.ts +1 -1
  53. package/dist/cli/commands/worktree/archive.js +10 -10
  54. package/dist/cli/commands/worktree/cd.d.ts +1 -1
  55. package/dist/cli/commands/worktree/cd.js +8 -7
  56. package/dist/cli/commands/worktree/env/restart.d.ts +1 -1
  57. package/dist/cli/commands/worktree/env/restart.js +9 -8
  58. package/dist/cli/commands/worktree/env/start.d.ts +1 -1
  59. package/dist/cli/commands/worktree/env/start.js +9 -8
  60. package/dist/cli/commands/worktree/env/status.d.ts +1 -1
  61. package/dist/cli/commands/worktree/env/status.js +9 -8
  62. package/dist/cli/commands/worktree/env/stop.d.ts +1 -1
  63. package/dist/cli/commands/worktree/env/stop.js +9 -8
  64. package/dist/cli/commands/worktree/list.d.ts +1 -1
  65. package/dist/cli/commands/worktree/list.js +12 -15
  66. package/dist/cli/commands/worktree/rm.d.ts +1 -1
  67. package/dist/cli/commands/worktree/rm.js +10 -10
  68. package/dist/cli/commands/worktree/show.d.ts +1 -1
  69. package/dist/cli/commands/worktree/show.js +10 -10
  70. package/dist/cli/commands/worktree/unarchive.d.ts +1 -1
  71. package/dist/cli/commands/worktree/unarchive.js +10 -10
  72. package/dist/cli/commands/worktree/update.d.ts +1 -1
  73. package/dist/cli/commands/worktree/update.js +9 -8
  74. package/dist/cli/lib/context.d.ts +7 -1
  75. package/dist/cli/lib/context.js +13 -0
  76. package/dist/cli/lib/daemon-manager.d.ts +15 -2
  77. package/dist/cli/lib/daemon-manager.js +106 -7
  78. package/dist/cli/lib/daemon-manager.test.d.ts +2 -0
  79. package/dist/cli/lib/daemon-manager.test.js +17355 -0
  80. package/dist/cli/lib/help.js +2 -2
  81. package/dist/core/{agentic-tool-1L19ixPC.d.ts → agentic-tool-B6RT-ZX5.d.ts} +1 -1
  82. package/dist/core/{agentic-tool-3oiAj9Lg.d.cts → agentic-tool-Cs4nK-CC.d.cts} +1 -1
  83. package/dist/core/api/index.cjs +90 -4
  84. package/dist/core/api/index.d.cts +61 -18
  85. package/dist/core/api/index.d.ts +61 -18
  86. package/dist/core/api/index.js +88 -3
  87. package/dist/core/{artifact-B5MFR79G.d.ts → artifact-CIQzxjNP.d.ts} +2 -2
  88. package/dist/core/{artifact-Bi-1jifF.d.cts → artifact-DaHQPZVX.d.cts} +2 -2
  89. package/dist/core/{board-B9Xnux_i.d.ts → board-DG--dAS_.d.ts} +2 -2
  90. package/dist/core/{board-CPZGf5wF.d.cts → board-DogjFoWy.d.cts} +2 -2
  91. package/dist/core/{board-comment-BoDqwrnL.d.ts → board-comment-9ORrSlA1.d.ts} +1 -1
  92. package/dist/core/{board-comment-BQKnob6r.d.cts → board-comment-WzJC3SuF.d.cts} +1 -1
  93. package/dist/core/claude/index.cjs +9 -8
  94. package/dist/core/claude/index.d.cts +3 -3
  95. package/dist/core/claude/index.d.ts +3 -3
  96. package/dist/core/claude/index.js +9 -8
  97. package/dist/core/{client-HEOUNaCs.d.ts → client-NFCS0H8T.d.ts} +5 -5
  98. package/dist/core/{client-BC_18M7T.d.cts → client-XpghdMQL.d.cts} +5 -5
  99. package/dist/core/config/browser.d.cts +7 -7
  100. package/dist/core/config/browser.d.ts +7 -7
  101. package/dist/core/config/index.cjs +1 -0
  102. package/dist/core/config/index.d.cts +13 -13
  103. package/dist/core/config/index.d.ts +13 -13
  104. package/dist/core/config/index.js +1 -0
  105. package/dist/core/{config-manager-DK1LMXEc.d.cts → config-manager-BbMvB3Lz.d.cts} +1 -1
  106. package/dist/core/{config-manager-YrO9mG5j.d.ts → config-manager-etFWO6Wo.d.ts} +1 -1
  107. package/dist/core/{config-services-DrHSgUEm.d.ts → config-services-C848cfbD.d.ts} +4 -4
  108. package/dist/core/{config-services-CuhBWSs_.d.cts → config-services-CDhfaNpd.d.cts} +4 -4
  109. package/dist/core/db/index.cjs +13 -10
  110. package/dist/core/db/index.d.cts +16 -16
  111. package/dist/core/db/index.d.ts +16 -16
  112. package/dist/core/db/index.js +13 -10
  113. package/dist/core/db/session-guard.d.cts +8 -8
  114. package/dist/core/db/session-guard.d.ts +8 -8
  115. package/dist/core/environment/variable-resolver.d.cts +2 -2
  116. package/dist/core/environment/variable-resolver.d.ts +2 -2
  117. package/dist/core/{feathers-CzuSOZgY.d.ts → feathers--R3ml98e.d.cts} +12 -4
  118. package/dist/core/{feathers-CYAHFZ05.d.cts → feathers-C8PkF35p.d.ts} +12 -4
  119. package/dist/core/gateway/index.d.cts +5 -5
  120. package/dist/core/gateway/index.d.ts +5 -5
  121. package/dist/core/{gateway-Ci8LcUxK.d.ts → gateway-BYCTTJVJ.d.ts} +4 -4
  122. package/dist/core/{gateway-gHbaS6qt.d.cts → gateway-D5me_jjo.d.cts} +4 -4
  123. package/dist/core/git/index.d.cts +8 -8
  124. package/dist/core/git/index.d.ts +8 -8
  125. package/dist/core/{id-Cv3ntaTJ.d.cts → id-2oR2NdLp.d.cts} +17 -1
  126. package/dist/core/{id-Cv3ntaTJ.d.ts → id-2oR2NdLp.d.ts} +17 -1
  127. package/dist/core/index.cjs +95 -4
  128. package/dist/core/index.d.cts +19 -19
  129. package/dist/core/index.d.ts +19 -19
  130. package/dist/core/index.js +93 -4
  131. package/dist/core/mcp/index.d.cts +2 -2
  132. package/dist/core/mcp/index.d.ts +2 -2
  133. package/dist/core/{mcp-VhU-PMHo.d.ts → mcp-D7eTnVUO.d.ts} +1 -1
  134. package/dist/core/{mcp-CtC1DFEm.d.cts → mcp-DUrvGUDS.d.cts} +1 -1
  135. package/dist/core/{message-CbD99EwO.d.cts → message-BbDSJvyl.d.cts} +1 -1
  136. package/dist/core/{message-Cwhx2ItQ.d.ts → message-C4Bb-L6c.d.ts} +1 -1
  137. package/dist/core/permissions/index.d.cts +2 -2
  138. package/dist/core/permissions/index.d.ts +2 -2
  139. package/dist/core/{repo-j12tCmyK.d.ts → repo-DaP4omZL.d.ts} +1 -1
  140. package/dist/core/{repo-CcvhnJDf.d.cts → repo-zg1xnWQQ.d.cts} +1 -1
  141. package/dist/core/seed/index.cjs +13 -10
  142. package/dist/core/seed/index.d.cts +1 -1
  143. package/dist/core/seed/index.d.ts +1 -1
  144. package/dist/core/seed/index.js +13 -10
  145. package/dist/core/{session-DEU5FS0N.d.cts → session-C7mvs-rD.d.cts} +2 -2
  146. package/dist/core/{session-Bw8_FN2l.d.ts → session-elEYFVev.d.ts} +2 -2
  147. package/dist/core/{session-guard-CJ7sfOF1.d.ts → session-guard-D7hUa4D2.d.ts} +3 -3
  148. package/dist/core/{session-guard-BjHxMpvV.d.cts → session-guard-DOQgVFL6.d.cts} +3 -3
  149. package/dist/core/{task-CKHC1gPj.d.ts → task-C8SPRSHg.d.ts} +8 -1
  150. package/dist/core/{task-DCPYEXlG.d.cts → task-DJMxZTv4.d.cts} +8 -1
  151. package/dist/core/templates/session-context.d.cts +5 -5
  152. package/dist/core/templates/session-context.d.ts +5 -5
  153. package/dist/core/tools/mcp/jwt-auth.d.cts +2 -2
  154. package/dist/core/tools/mcp/jwt-auth.d.ts +2 -2
  155. package/dist/core/types/index.cjs +7 -0
  156. package/dist/core/types/index.d.cts +16 -16
  157. package/dist/core/types/index.d.ts +16 -16
  158. package/dist/core/types/index.js +6 -0
  159. package/dist/core/{types-BE6DTpRe.d.cts → types-BQRGoDkg.d.cts} +1 -1
  160. package/dist/core/{types-BvYoeNhO.d.ts → types-CvXKxTNP.d.ts} +1 -1
  161. package/dist/core/unix/index.cjs +5 -2
  162. package/dist/core/unix/index.d.cts +8 -8
  163. package/dist/core/unix/index.d.ts +8 -8
  164. package/dist/core/unix/index.js +5 -2
  165. package/dist/core/{user-pO3lB_da.d.ts → user-C9UDwwtA.d.ts} +3 -3
  166. package/dist/core/{user-BpKIlt04.d.cts → user-wScngdUE.d.cts} +3 -3
  167. package/dist/core/utils/board-placement.d.cts +3 -3
  168. package/dist/core/utils/board-placement.d.ts +3 -3
  169. package/dist/core/utils/permission-mode-mapper.d.cts +3 -3
  170. package/dist/core/utils/permission-mode-mapper.d.ts +3 -3
  171. package/dist/core/utils/url.cjs +8 -2
  172. package/dist/core/utils/url.d.cts +1 -1
  173. package/dist/core/utils/url.d.ts +1 -1
  174. package/dist/core/utils/url.js +8 -2
  175. package/dist/daemon/index.d.ts +34 -1
  176. package/dist/daemon/index.js +36 -13
  177. package/dist/daemon/main.d.ts +2 -0
  178. package/dist/daemon/main.js +32581 -0
  179. package/dist/daemon/register-routes.js +15 -0
  180. package/dist/daemon/register-services.js +4 -1
  181. package/dist/daemon/startup.d.ts +2 -0
  182. package/dist/daemon/startup.js +8 -4
  183. package/dist/executor/db/feathers-repositories.d.ts +1 -0
  184. package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
  185. package/dist/executor/db/feathers-repositories.js +1 -0
  186. package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
  187. package/dist/executor/handlers/sdk/base-executor.js +33 -21
  188. package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
  189. package/dist/executor/handlers/sdk/claude.js +1 -1
  190. package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
  191. package/dist/executor/handlers/sdk/codex.js +1 -1
  192. package/dist/executor/sdk-handlers/base/diff-enrichment.d.ts +20 -1
  193. package/dist/executor/sdk-handlers/base/diff-enrichment.d.ts.map +1 -1
  194. package/dist/executor/sdk-handlers/base/diff-enrichment.js +264 -26
  195. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +9 -1
  196. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
  197. package/dist/executor/sdk-handlers/claude/claude-tool.js +17 -7
  198. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +19 -7
  199. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  200. package/dist/executor/sdk-handlers/codex/codex-tool.js +166 -38
  201. package/dist/executor/sdk-handlers/codex/context-window-fallback.d.ts +12 -0
  202. package/dist/executor/sdk-handlers/codex/context-window-fallback.d.ts.map +1 -0
  203. package/dist/executor/sdk-handlers/codex/context-window-fallback.js +72 -0
  204. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +12 -1
  205. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  206. package/dist/executor/sdk-handlers/codex/prompt-service.js +124 -18
  207. package/dist/executor/sdk-handlers/codex/usage.d.ts +35 -0
  208. package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
  209. package/dist/executor/sdk-handlers/codex/usage.js +90 -0
  210. package/dist/ui/assets/{_basePickBy-By_woBZB.js → _basePickBy-CQZh_v13.js} +1 -1
  211. package/dist/ui/assets/_basePickBy-CQZh_v13.js.gz +0 -0
  212. package/dist/ui/assets/{_baseUniq-C2jLj-Al.js → _baseUniq-Cgf5LtCM.js} +1 -1
  213. package/dist/ui/assets/_baseUniq-Cgf5LtCM.js.gz +0 -0
  214. package/dist/ui/assets/{arc-DADMFVbt.js → arc-DnTl2a4f.js} +1 -1
  215. package/dist/ui/assets/arc-DnTl2a4f.js.gz +0 -0
  216. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-rNJ5lYJQ.js → architectureDiagram-VXUJARFQ-DZHKQxRL.js} +1 -1
  217. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-rNJ5lYJQ.js.gz → architectureDiagram-VXUJARFQ-DZHKQxRL.js.gz} +0 -0
  218. package/dist/ui/assets/{base-80a1f760-BVsv_T1S.js → base-80a1f760-pDLzaKJY.js} +1 -1
  219. package/dist/ui/assets/{blockDiagram-VD42YOAC-CezN66iB.js → blockDiagram-VD42YOAC-BAOUMLja.js} +1 -1
  220. package/dist/ui/assets/blockDiagram-VD42YOAC-BAOUMLja.js.gz +0 -0
  221. package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dze59YuK.js → c4Diagram-YG6GDRKO-C0xcWHxz.js} +1 -1
  222. package/dist/ui/assets/c4Diagram-YG6GDRKO-C0xcWHxz.js.gz +0 -0
  223. package/dist/ui/assets/channel-DpHH4gqH.js +1 -0
  224. package/dist/ui/assets/{chunk-4BX2VUAB-CXL-V_XA.js → chunk-4BX2VUAB-DCYNUaJZ.js} +1 -1
  225. package/dist/ui/assets/{chunk-55IACEB6-CI3h0xTl.js → chunk-55IACEB6-DU3b1X7p.js} +1 -1
  226. package/dist/ui/assets/{chunk-B4BG7PRW-CFohiEqO.js → chunk-B4BG7PRW-BJlNsfTo.js} +1 -1
  227. package/dist/ui/assets/chunk-B4BG7PRW-BJlNsfTo.js.gz +0 -0
  228. package/dist/ui/assets/{chunk-DI55MBZ5-BbF4fGKj.js → chunk-DI55MBZ5-CKQY-IiF.js} +1 -1
  229. package/dist/ui/assets/chunk-DI55MBZ5-CKQY-IiF.js.gz +0 -0
  230. package/dist/ui/assets/{chunk-FMBD7UC4-C5x6cpDg.js → chunk-FMBD7UC4-DmjQ-Dzu.js} +1 -1
  231. package/dist/ui/assets/{chunk-QN33PNHL-CEDiC29y.js → chunk-QN33PNHL-Bps50N51.js} +1 -1
  232. package/dist/ui/assets/{chunk-QZHKN3VN-DPo28cCF.js → chunk-QZHKN3VN-CNDKr6Xh.js} +1 -1
  233. package/dist/ui/assets/{chunk-TZMSLE5B-C94jSlIG.js → chunk-TZMSLE5B-R2Vz5IHZ.js} +1 -1
  234. package/dist/ui/assets/chunk-TZMSLE5B-R2Vz5IHZ.js.gz +0 -0
  235. package/dist/ui/assets/classDiagram-2ON5EDUG-CbDCU4XU.js +1 -0
  236. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CbDCU4XU.js +1 -0
  237. package/dist/ui/assets/clone-DSMLFNzW.js +1 -0
  238. package/dist/ui/assets/{consoleHook-59e792cb-cpS6JVM4.js → consoleHook-59e792cb-MfGBgEJx.js} +1 -1
  239. package/dist/ui/assets/consoleHook-59e792cb-MfGBgEJx.js.gz +0 -0
  240. package/dist/ui/assets/{cose-bilkent-S5V4N54A-CcoEg_Ct.js → cose-bilkent-S5V4N54A-Bkbv_h_w.js} +1 -1
  241. package/dist/ui/assets/cose-bilkent-S5V4N54A-Bkbv_h_w.js.gz +0 -0
  242. package/dist/ui/assets/{dagre-6UL2VRFP-DWAyqs2B.js → dagre-6UL2VRFP-DUoxEnB9.js} +1 -1
  243. package/dist/ui/assets/dagre-6UL2VRFP-DUoxEnB9.js.gz +0 -0
  244. package/dist/ui/assets/{diagram-PSM6KHXK-C7J2MNfc.js → diagram-PSM6KHXK-BUdRu7ma.js} +1 -1
  245. package/dist/ui/assets/diagram-PSM6KHXK-BUdRu7ma.js.gz +0 -0
  246. package/dist/ui/assets/{diagram-QEK2KX5R-6KZjqziN.js → diagram-QEK2KX5R-DEoZ3bpF.js} +1 -1
  247. package/dist/ui/assets/diagram-QEK2KX5R-DEoZ3bpF.js.gz +0 -0
  248. package/dist/ui/assets/{diagram-S2PKOQOG-DIL01325.js → diagram-S2PKOQOG-CxM9wSuL.js} +1 -1
  249. package/dist/ui/assets/diagram-S2PKOQOG-CxM9wSuL.js.gz +0 -0
  250. package/dist/ui/assets/{erDiagram-Q2GNP2WA-D5j4CetG.js → erDiagram-Q2GNP2WA-D5VuZpBE.js} +1 -1
  251. package/dist/ui/assets/erDiagram-Q2GNP2WA-D5VuZpBE.js.gz +0 -0
  252. package/dist/ui/assets/{flowDiagram-NV44I4VS-Bxx2iEi-.js → flowDiagram-NV44I4VS-uuzmVpS4.js} +1 -1
  253. package/dist/ui/assets/flowDiagram-NV44I4VS-uuzmVpS4.js.gz +0 -0
  254. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-BtBi1ZfT.js → ganttDiagram-LVOFAZNH-7spsgOUT.js} +1 -1
  255. package/dist/ui/assets/ganttDiagram-LVOFAZNH-7spsgOUT.js.gz +0 -0
  256. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-CY1TKvzA.js → gitGraphDiagram-NY62KEGX-DJDE3D90.js} +1 -1
  257. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-DJDE3D90.js.gz +0 -0
  258. package/dist/ui/assets/{graph-DC6eH7AX.js → graph-BmWYHUOg.js} +1 -1
  259. package/dist/ui/assets/graph-BmWYHUOg.js.gz +0 -0
  260. package/dist/ui/assets/{index-599aeaf7-Dh_oObwY.js → index-599aeaf7-C76CG5K3.js} +1 -1
  261. package/dist/ui/assets/index-599aeaf7-C76CG5K3.js.gz +0 -0
  262. package/dist/ui/assets/index-B0lOKf7g.js +4 -0
  263. package/dist/ui/assets/index-B0lOKf7g.js.gz +0 -0
  264. package/dist/ui/assets/{index-DJLnZ-9H.js → index-CMrDOI5G.js} +294 -298
  265. package/dist/ui/assets/index-CMrDOI5G.js.gz +0 -0
  266. package/dist/ui/assets/{index-DQn7RJ8z.js → index-CuMJFr7K.js} +1 -1
  267. package/dist/ui/assets/index-CuMJFr7K.js.gz +0 -0
  268. package/dist/ui/assets/{index-CxWOjjRu.js → index-fQo-B6L6.js} +1 -1
  269. package/dist/ui/assets/index-fQo-B6L6.js.gz +0 -0
  270. package/dist/ui/assets/{infoDiagram-ER5ION4S-COpJ37pc.js → infoDiagram-ER5ION4S--dZLWvYP.js} +1 -1
  271. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CpODBkng.js → journeyDiagram-XKPGCS4Q-C-Mzd3Ky.js} +1 -1
  272. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-C-Mzd3Ky.js.gz +0 -0
  273. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DWShJ5Su.js → kanban-definition-3W4ZIXB7-DoDzQCSc.js} +1 -1
  274. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DoDzQCSc.js.gz +0 -0
  275. package/dist/ui/assets/{layout-ttMTfXMb.js → layout-BmSvKYXZ.js} +1 -1
  276. package/dist/ui/assets/layout-BmSvKYXZ.js.gz +0 -0
  277. package/dist/ui/assets/{linear-DD8VTncp.js → linear-BnPF1K20.js} +1 -1
  278. package/dist/ui/assets/linear-BnPF1K20.js.gz +0 -0
  279. package/dist/ui/assets/{mermaid.core-BlvxruUX.js → mermaid.core-Suk7MkfT.js} +5 -5
  280. package/dist/ui/assets/mermaid.core-Suk7MkfT.js.gz +0 -0
  281. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-CR0ESdqM.js → mindmap-definition-VGOIOE7T-Bj9HZQA9.js} +1 -1
  282. package/dist/ui/assets/mindmap-definition-VGOIOE7T-Bj9HZQA9.js.gz +0 -0
  283. package/dist/ui/assets/{pieDiagram-ADFJNKIX-B94eVYhY.js → pieDiagram-ADFJNKIX-BIcJ5ee8.js} +1 -1
  284. package/dist/ui/assets/pieDiagram-ADFJNKIX-BIcJ5ee8.js.gz +0 -0
  285. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-C4tNKfCm.js → quadrantDiagram-AYHSOK5B-CJm5QQ8N.js} +1 -1
  286. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-CJm5QQ8N.js.gz +0 -0
  287. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-CuG3A95Q.js → requirementDiagram-UZGBJVZJ-Bg6r943V.js} +1 -1
  288. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bg6r943V.js.gz +0 -0
  289. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-BCfc7mLC.js → sankeyDiagram-TZEHDZUN-C2XnZZZp.js} +1 -1
  290. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-C2XnZZZp.js.gz +0 -0
  291. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-D8tVuIkx.js → sequenceDiagram-WL72ISMW-DOg-bBN1.js} +1 -1
  292. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DOg-bBN1.js.gz +0 -0
  293. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-DvM8so2A.js → stateDiagram-FKZM4ZOC-DgZgPM-o.js} +1 -1
  294. package/dist/ui/assets/stateDiagram-FKZM4ZOC-DgZgPM-o.js.gz +0 -0
  295. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-C_0TAQGU.js +1 -0
  296. package/dist/ui/assets/{timeline-definition-IT6M3QCI-CP2O8vqw.js → timeline-definition-IT6M3QCI-CmkWt6nL.js} +1 -1
  297. package/dist/ui/assets/timeline-definition-IT6M3QCI-CmkWt6nL.js.gz +0 -0
  298. package/dist/ui/assets/{treemap-KMMF4GRG-SGJAEegj.js → treemap-KMMF4GRG-CV8wwXTM.js} +1 -1
  299. package/dist/ui/assets/treemap-KMMF4GRG-CV8wwXTM.js.gz +0 -0
  300. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CpwYBSmP.js → xychartDiagram-PRI3JC2R-CvuPvlyn.js} +1 -1
  301. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CvuPvlyn.js.gz +0 -0
  302. package/dist/ui/index.html +1 -1
  303. package/package.json +2 -1
  304. package/dist/ui/assets/_basePickBy-By_woBZB.js.gz +0 -0
  305. package/dist/ui/assets/_baseUniq-C2jLj-Al.js.gz +0 -0
  306. package/dist/ui/assets/arc-DADMFVbt.js.gz +0 -0
  307. package/dist/ui/assets/blockDiagram-VD42YOAC-CezN66iB.js.gz +0 -0
  308. package/dist/ui/assets/c4Diagram-YG6GDRKO-Dze59YuK.js.gz +0 -0
  309. package/dist/ui/assets/channel-B2nSdT47.js +0 -1
  310. package/dist/ui/assets/chunk-B4BG7PRW-CFohiEqO.js.gz +0 -0
  311. package/dist/ui/assets/chunk-DI55MBZ5-BbF4fGKj.js.gz +0 -0
  312. package/dist/ui/assets/chunk-TZMSLE5B-C94jSlIG.js.gz +0 -0
  313. package/dist/ui/assets/classDiagram-2ON5EDUG-lwQJA5v0.js +0 -1
  314. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-lwQJA5v0.js +0 -1
  315. package/dist/ui/assets/clone-DmZ98vg9.js +0 -1
  316. package/dist/ui/assets/consoleHook-59e792cb-cpS6JVM4.js.gz +0 -0
  317. package/dist/ui/assets/cose-bilkent-S5V4N54A-CcoEg_Ct.js.gz +0 -0
  318. package/dist/ui/assets/dagre-6UL2VRFP-DWAyqs2B.js.gz +0 -0
  319. package/dist/ui/assets/diagram-PSM6KHXK-C7J2MNfc.js.gz +0 -0
  320. package/dist/ui/assets/diagram-QEK2KX5R-6KZjqziN.js.gz +0 -0
  321. package/dist/ui/assets/diagram-S2PKOQOG-DIL01325.js.gz +0 -0
  322. package/dist/ui/assets/erDiagram-Q2GNP2WA-D5j4CetG.js.gz +0 -0
  323. package/dist/ui/assets/flowDiagram-NV44I4VS-Bxx2iEi-.js.gz +0 -0
  324. package/dist/ui/assets/ganttDiagram-LVOFAZNH-BtBi1ZfT.js.gz +0 -0
  325. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CY1TKvzA.js.gz +0 -0
  326. package/dist/ui/assets/graph-DC6eH7AX.js.gz +0 -0
  327. package/dist/ui/assets/index-599aeaf7-Dh_oObwY.js.gz +0 -0
  328. package/dist/ui/assets/index-CxWOjjRu.js.gz +0 -0
  329. package/dist/ui/assets/index-DJLnZ-9H.js.gz +0 -0
  330. package/dist/ui/assets/index-DQn7RJ8z.js.gz +0 -0
  331. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CpODBkng.js.gz +0 -0
  332. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DWShJ5Su.js.gz +0 -0
  333. package/dist/ui/assets/layout-ttMTfXMb.js.gz +0 -0
  334. package/dist/ui/assets/linear-DD8VTncp.js.gz +0 -0
  335. package/dist/ui/assets/mermaid.core-BlvxruUX.js.gz +0 -0
  336. package/dist/ui/assets/mindmap-definition-VGOIOE7T-CR0ESdqM.js.gz +0 -0
  337. package/dist/ui/assets/pieDiagram-ADFJNKIX-B94eVYhY.js.gz +0 -0
  338. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-C4tNKfCm.js.gz +0 -0
  339. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-CuG3A95Q.js.gz +0 -0
  340. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-BCfc7mLC.js.gz +0 -0
  341. package/dist/ui/assets/sequenceDiagram-WL72ISMW-D8tVuIkx.js.gz +0 -0
  342. package/dist/ui/assets/stateDiagram-FKZM4ZOC-DvM8so2A.js.gz +0 -0
  343. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-kQ-gZX7K.js +0 -1
  344. package/dist/ui/assets/timeline-definition-IT6M3QCI-CP2O8vqw.js.gz +0 -0
  345. package/dist/ui/assets/treemap-KMMF4GRG-SGJAEegj.js.gz +0 -0
  346. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CpwYBSmP.js.gz +0 -0
@@ -1,12 +1,29 @@
1
- // src/commands/daemon/start.ts
2
- import { isDaemonRunning } from "@agor/core/api";
3
- import { getDaemonUrl } from "@agor/core/config";
4
- import { checkMigrationStatus, createDatabase, getDatabaseUrl } from "@agor/core/db";
5
- import { extractDbFilePath } from "@agor/core/utils/path";
6
- import { Command, Flags } from "@oclif/core";
7
- import chalk from "chalk";
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
4
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
5
+ }) : x)(function(x) {
6
+ if (typeof require !== "undefined") return require.apply(this, arguments);
7
+ throw Error('Dynamic require of "' + x + '" is not supported');
8
+ });
9
+ var __esm = (fn, res) => function __init() {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ };
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
8
16
 
9
17
  // src/lib/context.ts
18
+ var context_exports = {};
19
+ __export(context_exports, {
20
+ getDaemonModulePath: () => getDaemonModulePath,
21
+ getDaemonPath: () => getDaemonPath,
22
+ getUIUrl: () => getUIUrl,
23
+ isAgorInitialized: () => isAgorInitialized,
24
+ isCodespaces: () => isCodespaces,
25
+ isInstalledPackage: () => isInstalledPackage
26
+ });
10
27
  import { access, constants } from "fs/promises";
11
28
  import { homedir } from "os";
12
29
  import path from "path";
@@ -17,6 +34,18 @@ function isInstalledPackage() {
17
34
  return !isInMonorepoSource;
18
35
  }
19
36
  function getDaemonPath() {
37
+ if (!isInstalledPackage()) {
38
+ return null;
39
+ }
40
+ const dirname = typeof __dirname !== "undefined" ? __dirname : path.dirname(fileURLToPath(import.meta.url));
41
+ const cliDistIndex = dirname.indexOf(`${path.sep}dist${path.sep}cli`);
42
+ if (cliDistIndex === -1) {
43
+ return path.resolve(dirname, "../../daemon/main.js");
44
+ }
45
+ const packageRoot = dirname.substring(0, cliDistIndex);
46
+ return path.join(packageRoot, "dist", "daemon", "main.js");
47
+ }
48
+ function getDaemonModulePath() {
20
49
  if (!isInstalledPackage()) {
21
50
  return null;
22
51
  }
@@ -28,6 +57,25 @@ function getDaemonPath() {
28
57
  const packageRoot = dirname.substring(0, cliDistIndex);
29
58
  return path.join(packageRoot, "dist", "daemon", "index.js");
30
59
  }
60
+ function isCodespaces() {
61
+ return !!process.env.CODESPACE_NAME && !!process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN;
62
+ }
63
+ function getUIUrl() {
64
+ if (isCodespaces()) {
65
+ const codespaceName = process.env.CODESPACE_NAME;
66
+ const domain = process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN;
67
+ if (isInstalledPackage()) {
68
+ return `https://${codespaceName}-3030.${domain}/ui`;
69
+ } else {
70
+ return `https://${codespaceName}-5173.${domain}`;
71
+ }
72
+ }
73
+ if (isInstalledPackage()) {
74
+ return "http://localhost:3030/ui";
75
+ } else {
76
+ return "http://localhost:5173";
77
+ }
78
+ }
31
79
  async function isAgorInitialized() {
32
80
  try {
33
81
  const agorDir = path.join(homedir(), ".agor");
@@ -39,12 +87,29 @@ async function isAgorInitialized() {
39
87
  return false;
40
88
  }
41
89
  }
90
+ var init_context = __esm({
91
+ "src/lib/context.ts"() {
92
+ "use strict";
93
+ }
94
+ });
95
+
96
+ // src/commands/daemon/start.ts
97
+ init_context();
98
+ import { resolve } from "path";
99
+ import { loadConfig, loadConfigFromFile } from "@agor/core/config";
100
+ import { validateAllowedTiers, validateServiceDependencies } from "@agor-live/client";
101
+ import { Command, Flags } from "@oclif/core";
102
+ import chalk from "chalk";
42
103
 
43
104
  // src/lib/daemon-manager.ts
44
105
  import { spawn } from "child_process";
45
106
  import fs from "fs";
46
107
  import os from "os";
47
108
  import path2 from "path";
109
+ var MIN_TAIL_READ_BYTES = 64 * 1024;
110
+ var MAX_TAIL_READ_BYTES = 8 * 1024 * 1024;
111
+ var DEFAULT_ROTATE_MAX_BYTES = 50 * 1024 * 1024;
112
+ var DEFAULT_ROTATE_MAX_FILES = 5;
48
113
  function getAgorHome() {
49
114
  return path2.join(os.homedir(), ".agor");
50
115
  }
@@ -72,7 +137,7 @@ function getDaemonPid() {
72
137
  return null;
73
138
  }
74
139
  }
75
- function startDaemon(daemonPath) {
140
+ function startDaemon(daemonPath, extraEnv) {
76
141
  const existingPid = getDaemonPid();
77
142
  if (existingPid !== null) {
78
143
  throw new Error(`Daemon already running (PID ${existingPid})`);
@@ -81,13 +146,19 @@ function startDaemon(daemonPath) {
81
146
  throw new Error(`Daemon binary not found at: ${daemonPath}`);
82
147
  }
83
148
  const logFile = getLogFilePath();
149
+ try {
150
+ rotateDaemonLogIfNeeded(logFile);
151
+ } catch (error) {
152
+ console.warn(`\u26A0 Failed to rotate daemon logs: ${error.message}`);
153
+ }
84
154
  const logStream = fs.openSync(logFile, "a");
85
155
  const child = spawn("node", [daemonPath], {
86
156
  detached: true,
87
157
  stdio: ["ignore", logStream, logStream],
88
158
  env: {
89
159
  ...process.env,
90
- NODE_ENV: "production"
160
+ NODE_ENV: "production",
161
+ ...extraEnv
91
162
  }
92
163
  });
93
164
  child.unref();
@@ -95,154 +166,158 @@ function startDaemon(daemonPath) {
95
166
  fs.closeSync(logStream);
96
167
  return child.pid;
97
168
  }
169
+ function rotateDaemonLogIfNeeded(logFile, options = {}) {
170
+ if (!fs.existsSync(logFile)) {
171
+ return;
172
+ }
173
+ const maxBytes = Math.max(1, Math.floor(options.maxBytes ?? DEFAULT_ROTATE_MAX_BYTES));
174
+ const maxFiles = Math.max(1, Math.floor(options.maxFiles ?? DEFAULT_ROTATE_MAX_FILES));
175
+ const logSize = fs.statSync(logFile).size;
176
+ if (logSize <= maxBytes) {
177
+ return;
178
+ }
179
+ const oldestLog = `${logFile}.${maxFiles}`;
180
+ if (fs.existsSync(oldestLog)) {
181
+ fs.unlinkSync(oldestLog);
182
+ }
183
+ for (let i = maxFiles - 1; i >= 1; i--) {
184
+ const src = `${logFile}.${i}`;
185
+ const dest = `${logFile}.${i + 1}`;
186
+ if (!fs.existsSync(src)) {
187
+ continue;
188
+ }
189
+ if (fs.existsSync(dest)) {
190
+ fs.unlinkSync(dest);
191
+ }
192
+ fs.renameSync(src, dest);
193
+ }
194
+ fs.renameSync(logFile, `${logFile}.1`);
195
+ }
98
196
 
99
197
  // src/commands/daemon/start.ts
100
198
  var DaemonStart = class _DaemonStart extends Command {
101
- static description = "Start daemon in background";
199
+ static description = "Start the Agor daemon in the background";
102
200
  static examples = [
103
- "<%= config.bin %> <%= command.id %>",
104
- "<%= config.bin %> <%= command.id %> --foreground"
201
+ "<%= config.bin %> daemon start",
202
+ "<%= config.bin %> daemon start --config /etc/agor/config.yaml",
203
+ "<%= config.bin %> daemon start --foreground"
105
204
  ];
106
205
  static flags = {
206
+ config: Flags.string({
207
+ char: "c",
208
+ description: "Path to config file (default: ~/.agor/config.yaml)"
209
+ }),
107
210
  foreground: Flags.boolean({
108
211
  char: "f",
109
- description: "Run daemon in foreground (synchronous)",
212
+ description: "Run daemon in the foreground (blocks until stopped)",
110
213
  default: false
111
214
  })
112
215
  };
113
216
  async run() {
114
217
  const { flags } = await this.parse(_DaemonStart);
115
- if (!isInstalledPackage()) {
116
- this.log(chalk.red("\u2717 Daemon lifecycle commands only work in production mode."));
117
- this.log("");
118
- this.log(chalk.bold("In development, start the daemon with:"));
119
- this.log(` ${chalk.cyan("cd apps/agor-daemon && pnpm dev")}`);
120
- this.log("");
121
- this.exit(1);
218
+ const config = flags.config ? await this.loadConfigFromPath(flags.config) : await loadConfig();
219
+ this.validateServicesConfig(config);
220
+ const existingPid = getDaemonPid();
221
+ if (existingPid !== null) {
222
+ this.log(chalk.yellow(`Daemon already running (PID ${existingPid})`));
223
+ return;
122
224
  }
123
- const initialized = await isAgorInitialized();
124
- if (!initialized) {
125
- this.log(chalk.red("\u2717 Agor is not initialized"));
126
- this.log("");
127
- this.log("Initialize Agor first with:");
128
- this.log(` ${chalk.cyan("agor init")}`);
129
- this.log("");
130
- this.exit(1);
225
+ if (flags.foreground) {
226
+ this.log(chalk.bold("Starting Agor daemon in foreground..."));
227
+ this.logServicesInfo(config);
228
+ try {
229
+ const daemonModule = await this.importDaemonModule();
230
+ await daemonModule.startDaemon({ config });
231
+ } catch (error) {
232
+ this.log(chalk.red("Failed to start daemon:"));
233
+ this.log(chalk.red(` ${error instanceof Error ? error.message : String(error)}`));
234
+ this.exit(1);
235
+ }
236
+ return;
131
237
  }
132
- const daemonPath = getDaemonPath();
133
- if (!daemonPath) {
134
- this.log(chalk.red("\u2717 Daemon binary not found"));
135
- this.log("");
136
- this.log("Your installation may be corrupted. Try reinstalling:");
137
- this.log(` ${chalk.cyan("npm install -g agor-live")}`);
138
- this.log("");
139
- this.exit(1);
238
+ this.log(chalk.bold("Starting Agor daemon..."));
239
+ this.logServicesInfo(config);
240
+ const daemonPath = this.resolveDaemonEntrypoint();
241
+ const env = {};
242
+ if (flags.config) {
243
+ env.AGOR_CONFIG_PATH = resolve(flags.config);
140
244
  }
141
- const fs2 = await import("fs");
142
- if (!fs2.existsSync(daemonPath)) {
143
- this.log(chalk.red("\u2717 Daemon binary not found"));
144
- this.log("");
145
- this.log(`Expected location: ${chalk.dim(daemonPath)}`);
146
- this.log("");
147
- this.log("Your installation may be corrupted. Try reinstalling:");
148
- this.log(` ${chalk.cyan("npm install -g agor-live")}`);
149
- this.log("");
245
+ try {
246
+ const pid = startDaemon(daemonPath, env);
247
+ this.log(chalk.green(`Daemon started (PID ${pid})`));
248
+ this.log(chalk.dim(" Logs: ~/.agor/logs/daemon.log"));
249
+ } catch (error) {
250
+ this.log(chalk.red("Failed to start daemon:"));
251
+ this.log(chalk.red(` ${error instanceof Error ? error.message : String(error)}`));
150
252
  this.exit(1);
151
253
  }
152
- try {
153
- const dbUrl = getDatabaseUrl();
154
- const db = createDatabase({ url: dbUrl });
155
- const migrationStatus = await checkMigrationStatus(db);
156
- if (migrationStatus.hasPending) {
157
- const dbFilePath = extractDbFilePath(dbUrl);
158
- this.log(chalk.red("\u2717 Database migrations required"));
159
- this.log("");
160
- this.log(`Pending migrations (${migrationStatus.pending.length}):`);
161
- for (const migration of migrationStatus.pending) {
162
- this.log(` ${chalk.yellow("\u2022")} ${migration}`);
163
- }
164
- this.log("");
165
- this.log(chalk.bold("\u26A0\uFE0F IMPORTANT: Backup your database before running migrations!"));
166
- this.log("");
167
- this.log("Backup command:");
168
- this.log(chalk.cyan(` cp ${dbFilePath} ${dbFilePath}.backup-$(date +%s)`));
169
- this.log("");
170
- this.log("Then run migrations with:");
171
- this.log(` ${chalk.cyan("agor db migrate")}`);
172
- this.log("");
173
- this.exit(1);
254
+ }
255
+ validateServicesConfig(config) {
256
+ if (!config.services) return;
257
+ const tierViolations = validateAllowedTiers(config.services);
258
+ if (tierViolations.length > 0) {
259
+ this.log(chalk.red("Services configuration error:"));
260
+ for (const v of tierViolations) {
261
+ this.log(
262
+ chalk.red(` '${v.group}' cannot be '${v.tier}' (allowed: ${v.allowed.join(", ")})`)
263
+ );
174
264
  }
175
- } catch (error) {
176
- if (error && typeof error === "object" && "oclif" in error) {
177
- throw error;
265
+ this.exit(1);
266
+ }
267
+ const depViolations = validateServiceDependencies(config.services);
268
+ if (depViolations.length > 0) {
269
+ this.log(chalk.yellow("Service dependency warnings (will be auto-promoted at boot):"));
270
+ for (const v of depViolations) {
271
+ this.log(
272
+ chalk.yellow(
273
+ ` '${v.service}' requires '${v.dependency}' to be at least '${v.requiredTier}'`
274
+ )
275
+ );
178
276
  }
179
- console.warn("Warning: Could not check migration status:", error);
180
277
  }
181
- const daemonUrl = await getDaemonUrl();
182
- const running = await isDaemonRunning(daemonUrl);
183
- if (running) {
184
- this.log(chalk.yellow("\u26A0 Daemon is already running"));
185
- this.log("");
186
- this.log("Check status with:");
187
- this.log(` ${chalk.cyan("agor daemon status")}`);
188
- this.log("");
189
- this.exit(0);
278
+ }
279
+ logServicesInfo(config) {
280
+ if (!config.services) return;
281
+ const nonDefault = Object.entries(config.services).filter(
282
+ ([, tier]) => tier !== void 0 && tier !== "on"
283
+ );
284
+ if (nonDefault.length > 0) {
285
+ this.log(chalk.dim(` Services: ${nonDefault.map(([g, t]) => `${g}=${t}`).join(", ")}`));
190
286
  }
191
- try {
192
- if (flags.foreground) {
193
- this.log(chalk.green("Starting daemon in foreground mode..."));
194
- this.log(chalk.dim(`URL: ${daemonUrl}`));
195
- this.log(chalk.dim("Press Ctrl+C to stop"));
196
- this.log("");
197
- const { spawn: spawn2 } = await import("child_process");
198
- const child = spawn2("node", [daemonPath], {
199
- stdio: "inherit",
200
- env: {
201
- ...process.env,
202
- NODE_ENV: "production"
203
- }
204
- });
205
- await new Promise((resolve, reject) => {
206
- child.on("exit", (code) => {
207
- if (code === 0) {
208
- resolve();
209
- } else {
210
- reject(new Error(`Daemon exited with code ${code}`));
211
- }
212
- });
213
- child.on("error", reject);
214
- });
215
- } else {
216
- const pid = startDaemon(daemonPath);
217
- this.log(chalk.green("\u2713 Daemon started successfully"));
218
- this.log("");
219
- this.log(` PID: ${chalk.cyan(String(pid))}`);
220
- this.log(` URL: ${chalk.cyan(daemonUrl)}`);
221
- this.log("");
222
- this.log("View logs with:");
223
- this.log(` ${chalk.cyan("agor daemon logs")}`);
224
- this.log("");
225
- let isRunning = false;
226
- const maxAttempts = 5;
227
- for (let attempt = 0; attempt < maxAttempts; attempt++) {
228
- const waitTime = 1e3 * (attempt + 1);
229
- await new Promise((resolve) => setTimeout(resolve, waitTime));
230
- isRunning = await isDaemonRunning(daemonUrl);
231
- if (isRunning) break;
232
- }
233
- if (!isRunning) {
234
- this.log(chalk.yellow("\u26A0 Daemon started but not responding"));
235
- this.log("");
236
- this.log("Check logs for errors:");
237
- this.log(` ${chalk.cyan("agor daemon logs")}`);
238
- this.log("");
239
- }
287
+ }
288
+ async importDaemonModule() {
289
+ if (isInstalledPackage()) {
290
+ const { pathToFileURL } = await import("url");
291
+ const { getDaemonModulePath: getDaemonModulePath2 } = await Promise.resolve().then(() => (init_context(), context_exports));
292
+ const modulePath = getDaemonModulePath2();
293
+ if (!modulePath) {
294
+ this.log(chalk.red("Failed to locate bundled daemon module"));
295
+ this.exit(1);
240
296
  }
297
+ return import(pathToFileURL(modulePath).href);
298
+ }
299
+ return import("@agor/daemon");
300
+ }
301
+ resolveDaemonEntrypoint() {
302
+ const bundledPath = getDaemonPath();
303
+ if (bundledPath) return bundledPath;
304
+ this.log(
305
+ chalk.yellow(
306
+ "Development mode detected. Use `pnpm dev` in apps/agor-daemon/ for hot-reload."
307
+ )
308
+ );
309
+ this.log(chalk.yellow("Starting daemon without watch mode..."));
310
+ const { fileURLToPath: fileURLToPath2 } = __require("url");
311
+ const path3 = __require("path");
312
+ const dirname = typeof __dirname !== "undefined" ? __dirname : path3.dirname(fileURLToPath2(import.meta.url));
313
+ return resolve(dirname, "../../../agor-daemon/dist/main.js");
314
+ }
315
+ async loadConfigFromPath(configPath) {
316
+ try {
317
+ return await loadConfigFromFile(configPath);
241
318
  } catch (error) {
242
- this.log(chalk.red("\u2717 Failed to start daemon"));
243
- this.log("");
244
- this.log(`Error: ${error.message}`);
245
- this.log("");
319
+ this.log(chalk.red(`Failed to load config from ${configPath}:`));
320
+ this.log(chalk.red(` ${error instanceof Error ? error.message : String(error)}`));
246
321
  this.exit(1);
247
322
  }
248
323
  }
@@ -1,6 +1,6 @@
1
1
  // src/commands/daemon/status.ts
2
- import { isDaemonRunning } from "@agor/core/api";
3
- import { getDaemonUrl } from "@agor/core/config";
2
+ import { isDaemonRunning } from "@agor-live/client";
3
+ import { getDaemonUrl } from "@agor-live/client/config";
4
4
  import { Command } from "@oclif/core";
5
5
  import chalk from "chalk";
6
6
 
@@ -31,6 +31,9 @@ import { spawn } from "child_process";
31
31
  import fs from "fs";
32
32
  import os from "os";
33
33
  import path2 from "path";
34
+ var MIN_TAIL_READ_BYTES = 64 * 1024;
35
+ var MAX_TAIL_READ_BYTES = 8 * 1024 * 1024;
36
+ var DEFAULT_ROTATE_MAX_BYTES = 50 * 1024 * 1024;
34
37
  function getAgorHome() {
35
38
  return path2.join(os.homedir(), ".agor");
36
39
  }
@@ -18,6 +18,9 @@ import { spawn } from "child_process";
18
18
  import fs from "fs";
19
19
  import os from "os";
20
20
  import path2 from "path";
21
+ var MIN_TAIL_READ_BYTES = 64 * 1024;
22
+ var MAX_TAIL_READ_BYTES = 8 * 1024 * 1024;
23
+ var DEFAULT_ROTATE_MAX_BYTES = 50 * 1024 * 1024;
21
24
  function getAgorHome() {
22
25
  return path2.join(os.homedir(), ".agor");
23
26
  }
@@ -3,9 +3,9 @@ import { access, constants, mkdir, readdir, rm } from "fs/promises";
3
3
  import { homedir } from "os";
4
4
  import { dirname, join } from "path";
5
5
  import { fileURLToPath } from "url";
6
- import { isDaemonRunning } from "@agor/core/api";
7
6
  import { loadConfig, setConfigValue } from "@agor/core/config";
8
7
  import { createDatabase, createUser, runMigrations, seedInitialData } from "@agor/core/db";
8
+ import { isDaemonRunning } from "@agor-live/client";
9
9
  import { Command, Flags } from "@oclif/core";
10
10
  import chalk from "chalk";
11
11
  import inquirer from "inquirer";
@@ -1,6 +1,6 @@
1
1
  // src/commands/auth/login.ts
2
- import { createRestClient, isDaemonRunning } from "@agor/core/api";
3
- import { getDaemonUrl } from "@agor/core/config";
2
+ import { createRestClient, isDaemonRunning } from "@agor-live/client";
3
+ import { getDaemonUrl } from "@agor-live/client/config";
4
4
  import { Command, Flags } from "@oclif/core";
5
5
  import chalk from "chalk";
6
6
  import inquirer from "inquirer";
@@ -1,6 +1,6 @@
1
1
  import * as _oclif_core_interfaces from '@oclif/core/interfaces';
2
2
  import { BaseCommand } from '../../base-command.js';
3
- import '@agor/core/api';
3
+ import '@agor-live/client';
4
4
  import '@oclif/core';
5
5
 
6
6
  declare class McpAdd extends BaseCommand {
@@ -59,8 +59,8 @@ import chalk2 from "chalk";
59
59
 
60
60
  // src/base-command.ts
61
61
  init_auth();
62
- import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/core/api";
63
- import { getDaemonUrl } from "@agor/core/config";
62
+ import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
63
+ import { getDaemonUrl } from "@agor-live/client/config";
64
64
  import { Command } from "@oclif/core";
65
65
  import chalk from "chalk";
66
66
  var BaseCommand = class extends Command {
@@ -71,8 +71,9 @@ var BaseCommand = class extends Command {
71
71
  * @returns Feathers client instance
72
72
  */
73
73
  async connectToDaemon() {
74
- this.daemonUrl = await getDaemonUrl();
75
- const running = await isDaemonRunning(this.daemonUrl);
74
+ const daemonUrl = await getDaemonUrl();
75
+ this.daemonUrl = daemonUrl;
76
+ const running = await isDaemonRunning(daemonUrl);
76
77
  if (!running) {
77
78
  this.log(
78
79
  chalk.red("\u2717 Daemon not running") + "\n\n" + chalk.bold("To start the daemon:") + "\n " + chalk.cyan("cd apps/agor-daemon && pnpm dev") + "\n\n" + chalk.bold("To configure daemon URL:") + "\n " + chalk.cyan("agor config set daemon.url <url>") + "\n " + chalk.gray(`Current: ${this.daemonUrl}`)
@@ -81,9 +82,9 @@ var BaseCommand = class extends Command {
81
82
  }
82
83
  const apiKey = getApiKeyFromEnv();
83
84
  if (apiKey) {
84
- return await createRestClient(this.daemonUrl, apiKey);
85
+ return await createRestClient(daemonUrl, apiKey ?? void 0);
85
86
  }
86
- const client = await createRestClient(this.daemonUrl);
87
+ const client = await createRestClient(daemonUrl);
87
88
  const storedAuth = await loadToken();
88
89
  if (storedAuth) {
89
90
  try {
@@ -100,7 +101,7 @@ var BaseCommand = class extends Command {
100
101
  }
101
102
  } else {
102
103
  try {
103
- const response = await fetch(`${this.daemonUrl}/health`);
104
+ const response = await fetch(`${daemonUrl}/health`);
104
105
  const health = await response.json();
105
106
  if (health.auth?.requireAuth) {
106
107
  this.error(
@@ -1,6 +1,6 @@
1
1
  import * as _oclif_core_interfaces from '@oclif/core/interfaces';
2
2
  import { BaseCommand } from '../../base-command.js';
3
- import '@agor/core/api';
3
+ import '@agor-live/client';
4
4
  import '@oclif/core';
5
5
 
6
6
  declare class McpList extends BaseCommand {
@@ -60,8 +60,8 @@ import Table from "cli-table3";
60
60
 
61
61
  // src/base-command.ts
62
62
  init_auth();
63
- import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/core/api";
64
- import { getDaemonUrl } from "@agor/core/config";
63
+ import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
64
+ import { getDaemonUrl } from "@agor-live/client/config";
65
65
  import { Command } from "@oclif/core";
66
66
  import chalk from "chalk";
67
67
  var BaseCommand = class extends Command {
@@ -72,8 +72,9 @@ var BaseCommand = class extends Command {
72
72
  * @returns Feathers client instance
73
73
  */
74
74
  async connectToDaemon() {
75
- this.daemonUrl = await getDaemonUrl();
76
- const running = await isDaemonRunning(this.daemonUrl);
75
+ const daemonUrl = await getDaemonUrl();
76
+ this.daemonUrl = daemonUrl;
77
+ const running = await isDaemonRunning(daemonUrl);
77
78
  if (!running) {
78
79
  this.log(
79
80
  chalk.red("\u2717 Daemon not running") + "\n\n" + chalk.bold("To start the daemon:") + "\n " + chalk.cyan("cd apps/agor-daemon && pnpm dev") + "\n\n" + chalk.bold("To configure daemon URL:") + "\n " + chalk.cyan("agor config set daemon.url <url>") + "\n " + chalk.gray(`Current: ${this.daemonUrl}`)
@@ -82,9 +83,9 @@ var BaseCommand = class extends Command {
82
83
  }
83
84
  const apiKey = getApiKeyFromEnv();
84
85
  if (apiKey) {
85
- return await createRestClient(this.daemonUrl, apiKey);
86
+ return await createRestClient(daemonUrl, apiKey ?? void 0);
86
87
  }
87
- const client = await createRestClient(this.daemonUrl);
88
+ const client = await createRestClient(daemonUrl);
88
89
  const storedAuth = await loadToken();
89
90
  if (storedAuth) {
90
91
  try {
@@ -101,7 +102,7 @@ var BaseCommand = class extends Command {
101
102
  }
102
103
  } else {
103
104
  try {
104
- const response = await fetch(`${this.daemonUrl}/health`);
105
+ const response = await fetch(`${daemonUrl}/health`);
105
106
  const health = await response.json();
106
107
  if (health.auth?.requireAuth) {
107
108
  this.error(
@@ -172,8 +173,7 @@ var McpList = class _McpList extends BaseCommand {
172
173
  if (flags.scope) query.scope = flags.scope;
173
174
  if (flags.transport) query.transport = flags.transport;
174
175
  if (flags.enabled) query.enabled = true;
175
- const result = await client.service("mcp-servers").find({ query });
176
- const servers = Array.isArray(result) ? result : result.data;
176
+ const servers = await client.service("mcp-servers").findAll({ query });
177
177
  if (servers.length === 0) {
178
178
  this.log(chalk2.yellow("No MCP servers found."));
179
179
  await this.cleanupClient(client);
@@ -1,6 +1,6 @@
1
1
  import * as _oclif_core_interfaces from '@oclif/core/interfaces';
2
2
  import { BaseCommand } from '../../base-command.js';
3
- import '@agor/core/api';
3
+ import '@agor-live/client';
4
4
  import '@oclif/core';
5
5
 
6
6
  declare class McpRemove extends BaseCommand {
@@ -59,8 +59,8 @@ import chalk2 from "chalk";
59
59
 
60
60
  // src/base-command.ts
61
61
  init_auth();
62
- import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/core/api";
63
- import { getDaemonUrl } from "@agor/core/config";
62
+ import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
63
+ import { getDaemonUrl } from "@agor-live/client/config";
64
64
  import { Command } from "@oclif/core";
65
65
  import chalk from "chalk";
66
66
  var BaseCommand = class extends Command {
@@ -71,8 +71,9 @@ var BaseCommand = class extends Command {
71
71
  * @returns Feathers client instance
72
72
  */
73
73
  async connectToDaemon() {
74
- this.daemonUrl = await getDaemonUrl();
75
- const running = await isDaemonRunning(this.daemonUrl);
74
+ const daemonUrl = await getDaemonUrl();
75
+ this.daemonUrl = daemonUrl;
76
+ const running = await isDaemonRunning(daemonUrl);
76
77
  if (!running) {
77
78
  this.log(
78
79
  chalk.red("\u2717 Daemon not running") + "\n\n" + chalk.bold("To start the daemon:") + "\n " + chalk.cyan("cd apps/agor-daemon && pnpm dev") + "\n\n" + chalk.bold("To configure daemon URL:") + "\n " + chalk.cyan("agor config set daemon.url <url>") + "\n " + chalk.gray(`Current: ${this.daemonUrl}`)
@@ -81,9 +82,9 @@ var BaseCommand = class extends Command {
81
82
  }
82
83
  const apiKey = getApiKeyFromEnv();
83
84
  if (apiKey) {
84
- return await createRestClient(this.daemonUrl, apiKey);
85
+ return await createRestClient(daemonUrl, apiKey ?? void 0);
85
86
  }
86
- const client = await createRestClient(this.daemonUrl);
87
+ const client = await createRestClient(daemonUrl);
87
88
  const storedAuth = await loadToken();
88
89
  if (storedAuth) {
89
90
  try {
@@ -100,7 +101,7 @@ var BaseCommand = class extends Command {
100
101
  }
101
102
  } else {
102
103
  try {
103
- const response = await fetch(`${this.daemonUrl}/health`);
104
+ const response = await fetch(`${daemonUrl}/health`);
104
105
  const health = await response.json();
105
106
  if (health.auth?.requireAuth) {
106
107
  this.error(
@@ -165,10 +166,9 @@ var McpRemove = class _McpRemove extends BaseCommand {
165
166
  try {
166
167
  let serverId = args.id;
167
168
  if (!args.id.match(/^[0-9a-f]{8}/i)) {
168
- const result = await client.service("mcp-servers").find({
169
+ const servers = await client.service("mcp-servers").findAll({
169
170
  query: { $limit: 100 }
170
171
  });
171
- const servers = Array.isArray(result) ? result : result.data;
172
172
  const server = servers.find((s) => s.name === args.id);
173
173
  if (!server) {
174
174
  await this.cleanupClient(client);