agor-live 0.16.3 → 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.
- package/bin/agor-daemon.js +1 -1
- package/dist/cli/base-command.d.ts +1 -1
- package/dist/cli/base-command.js +8 -7
- package/dist/cli/commands/auth/login.js +2 -2
- package/dist/cli/commands/board/add-session.d.ts +1 -1
- package/dist/cli/commands/board/add-session.js +11 -9
- package/dist/cli/commands/board/clone.d.ts +1 -1
- package/dist/cli/commands/board/clone.js +8 -7
- package/dist/cli/commands/board/export.d.ts +1 -1
- package/dist/cli/commands/board/export.js +8 -7
- package/dist/cli/commands/board/import.d.ts +1 -1
- package/dist/cli/commands/board/import.js +8 -7
- package/dist/cli/commands/board/list.d.ts +1 -1
- package/dist/cli/commands/board/list.js +13 -9
- package/dist/cli/commands/daemon/logs.js +71 -6
- package/dist/cli/commands/daemon/restart.js +43 -6
- package/dist/cli/commands/daemon/start.d.ts +6 -0
- package/dist/cli/commands/daemon/start.js +208 -133
- package/dist/cli/commands/daemon/status.js +5 -2
- package/dist/cli/commands/daemon/stop.js +3 -0
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/commands/login.js +2 -2
- package/dist/cli/commands/mcp/add.d.ts +1 -1
- package/dist/cli/commands/mcp/add.js +8 -7
- package/dist/cli/commands/mcp/list.d.ts +1 -1
- package/dist/cli/commands/mcp/list.js +8 -7
- package/dist/cli/commands/mcp/remove.d.ts +1 -1
- package/dist/cli/commands/mcp/remove.js +8 -7
- package/dist/cli/commands/mcp/show.d.ts +1 -1
- package/dist/cli/commands/mcp/show.js +8 -7
- package/dist/cli/commands/open.js +2 -2
- package/dist/cli/commands/repo/add-local.d.ts +1 -1
- package/dist/cli/commands/repo/add-local.js +8 -7
- package/dist/cli/commands/repo/add.d.ts +1 -1
- package/dist/cli/commands/repo/add.js +9 -8
- package/dist/cli/commands/repo/list.d.ts +1 -1
- package/dist/cli/commands/repo/list.js +9 -9
- package/dist/cli/commands/repo/rm.d.ts +1 -1
- package/dist/cli/commands/repo/rm.js +8 -7
- package/dist/cli/commands/session/list.d.ts +1 -1
- package/dist/cli/commands/session/list.js +9 -10
- package/dist/cli/commands/session/load-claude.d.ts +1 -1
- package/dist/cli/commands/session/load-claude.js +9 -8
- package/dist/cli/commands/user/create.d.ts +1 -1
- package/dist/cli/commands/user/create.js +8 -7
- package/dist/cli/commands/user/delete.d.ts +1 -1
- package/dist/cli/commands/user/delete.js +8 -7
- package/dist/cli/commands/user/update.d.ts +1 -1
- package/dist/cli/commands/user/update.js +8 -7
- package/dist/cli/commands/worktree/add.d.ts +1 -1
- package/dist/cli/commands/worktree/add.js +8 -7
- package/dist/cli/commands/worktree/archive.d.ts +1 -1
- package/dist/cli/commands/worktree/archive.js +9 -8
- package/dist/cli/commands/worktree/cd.d.ts +1 -1
- package/dist/cli/commands/worktree/cd.js +8 -7
- package/dist/cli/commands/worktree/env/restart.d.ts +1 -1
- package/dist/cli/commands/worktree/env/restart.js +9 -8
- package/dist/cli/commands/worktree/env/start.d.ts +1 -1
- package/dist/cli/commands/worktree/env/start.js +9 -8
- package/dist/cli/commands/worktree/env/status.d.ts +1 -1
- package/dist/cli/commands/worktree/env/status.js +9 -8
- package/dist/cli/commands/worktree/env/stop.d.ts +1 -1
- package/dist/cli/commands/worktree/env/stop.js +9 -8
- package/dist/cli/commands/worktree/list.d.ts +1 -1
- package/dist/cli/commands/worktree/list.js +9 -9
- package/dist/cli/commands/worktree/rm.d.ts +1 -1
- package/dist/cli/commands/worktree/rm.js +9 -8
- package/dist/cli/commands/worktree/show.d.ts +1 -1
- package/dist/cli/commands/worktree/show.js +9 -8
- package/dist/cli/commands/worktree/unarchive.d.ts +1 -1
- package/dist/cli/commands/worktree/unarchive.js +9 -8
- package/dist/cli/commands/worktree/update.d.ts +1 -1
- package/dist/cli/commands/worktree/update.js +9 -8
- package/dist/cli/lib/context.d.ts +7 -1
- package/dist/cli/lib/context.js +13 -0
- package/dist/cli/lib/daemon-manager.d.ts +15 -2
- package/dist/cli/lib/daemon-manager.js +106 -7
- package/dist/cli/lib/daemon-manager.test.d.ts +2 -0
- package/dist/cli/lib/daemon-manager.test.js +17355 -0
- package/dist/cli/lib/help.js +2 -2
- package/dist/core/{agentic-tool-1L19ixPC.d.ts → agentic-tool-B6RT-ZX5.d.ts} +1 -1
- package/dist/core/{agentic-tool-3oiAj9Lg.d.cts → agentic-tool-Cs4nK-CC.d.cts} +1 -1
- package/dist/core/api/index.cjs +3 -2
- package/dist/core/api/index.d.cts +11 -11
- package/dist/core/api/index.d.ts +11 -11
- package/dist/core/api/index.js +3 -2
- package/dist/core/{artifact-B5MFR79G.d.ts → artifact-CIQzxjNP.d.ts} +2 -2
- package/dist/core/{artifact-Bi-1jifF.d.cts → artifact-DaHQPZVX.d.cts} +2 -2
- package/dist/core/{board-B9Xnux_i.d.ts → board-DG--dAS_.d.ts} +2 -2
- package/dist/core/{board-CPZGf5wF.d.cts → board-DogjFoWy.d.cts} +2 -2
- package/dist/core/{board-comment-BoDqwrnL.d.ts → board-comment-9ORrSlA1.d.ts} +1 -1
- package/dist/core/{board-comment-BQKnob6r.d.cts → board-comment-WzJC3SuF.d.cts} +1 -1
- package/dist/core/claude/index.cjs +9 -8
- package/dist/core/claude/index.d.cts +3 -3
- package/dist/core/claude/index.d.ts +3 -3
- package/dist/core/claude/index.js +9 -8
- package/dist/core/{client-HEOUNaCs.d.ts → client-NFCS0H8T.d.ts} +5 -5
- package/dist/core/{client-BC_18M7T.d.cts → client-XpghdMQL.d.cts} +5 -5
- package/dist/core/config/browser.d.cts +7 -7
- package/dist/core/config/browser.d.ts +7 -7
- package/dist/core/config/index.cjs +1 -0
- package/dist/core/config/index.d.cts +13 -13
- package/dist/core/config/index.d.ts +13 -13
- package/dist/core/config/index.js +1 -0
- package/dist/core/{config-manager-DK1LMXEc.d.cts → config-manager-BbMvB3Lz.d.cts} +1 -1
- package/dist/core/{config-manager-YrO9mG5j.d.ts → config-manager-etFWO6Wo.d.ts} +1 -1
- package/dist/core/{config-services-DrHSgUEm.d.ts → config-services-C848cfbD.d.ts} +4 -4
- package/dist/core/{config-services-CuhBWSs_.d.cts → config-services-CDhfaNpd.d.cts} +4 -4
- package/dist/core/db/index.cjs +13 -10
- package/dist/core/db/index.d.cts +16 -16
- package/dist/core/db/index.d.ts +16 -16
- package/dist/core/db/index.js +13 -10
- package/dist/core/db/session-guard.d.cts +8 -8
- package/dist/core/db/session-guard.d.ts +8 -8
- package/dist/core/environment/variable-resolver.d.cts +2 -2
- package/dist/core/environment/variable-resolver.d.ts +2 -2
- package/dist/core/{feathers-NY8lH6YZ.d.cts → feathers--R3ml98e.d.cts} +2 -2
- package/dist/core/{feathers-CKfl55ut.d.ts → feathers-C8PkF35p.d.ts} +2 -2
- package/dist/core/gateway/index.d.cts +5 -5
- package/dist/core/gateway/index.d.ts +5 -5
- package/dist/core/{gateway-Ci8LcUxK.d.ts → gateway-BYCTTJVJ.d.ts} +4 -4
- package/dist/core/{gateway-gHbaS6qt.d.cts → gateway-D5me_jjo.d.cts} +4 -4
- package/dist/core/git/index.d.cts +8 -8
- package/dist/core/git/index.d.ts +8 -8
- package/dist/core/{id-Cv3ntaTJ.d.cts → id-2oR2NdLp.d.cts} +17 -1
- package/dist/core/{id-Cv3ntaTJ.d.ts → id-2oR2NdLp.d.ts} +17 -1
- package/dist/core/index.cjs +10 -4
- package/dist/core/index.d.cts +18 -18
- package/dist/core/index.d.ts +18 -18
- package/dist/core/index.js +9 -4
- package/dist/core/mcp/index.d.cts +2 -2
- package/dist/core/mcp/index.d.ts +2 -2
- package/dist/core/{mcp-VhU-PMHo.d.ts → mcp-D7eTnVUO.d.ts} +1 -1
- package/dist/core/{mcp-CtC1DFEm.d.cts → mcp-DUrvGUDS.d.cts} +1 -1
- package/dist/core/{message-CbD99EwO.d.cts → message-BbDSJvyl.d.cts} +1 -1
- package/dist/core/{message-Cwhx2ItQ.d.ts → message-C4Bb-L6c.d.ts} +1 -1
- package/dist/core/permissions/index.d.cts +2 -2
- package/dist/core/permissions/index.d.ts +2 -2
- package/dist/core/{repo-j12tCmyK.d.ts → repo-DaP4omZL.d.ts} +1 -1
- package/dist/core/{repo-CcvhnJDf.d.cts → repo-zg1xnWQQ.d.cts} +1 -1
- package/dist/core/seed/index.cjs +13 -10
- package/dist/core/seed/index.d.cts +1 -1
- package/dist/core/seed/index.d.ts +1 -1
- package/dist/core/seed/index.js +13 -10
- package/dist/core/{session-DEU5FS0N.d.cts → session-C7mvs-rD.d.cts} +2 -2
- package/dist/core/{session-Bw8_FN2l.d.ts → session-elEYFVev.d.ts} +2 -2
- package/dist/core/{session-guard-CJ7sfOF1.d.ts → session-guard-D7hUa4D2.d.ts} +3 -3
- package/dist/core/{session-guard-BjHxMpvV.d.cts → session-guard-DOQgVFL6.d.cts} +3 -3
- package/dist/core/{task-CKHC1gPj.d.ts → task-C8SPRSHg.d.ts} +8 -1
- package/dist/core/{task-DCPYEXlG.d.cts → task-DJMxZTv4.d.cts} +8 -1
- package/dist/core/templates/session-context.d.cts +5 -5
- package/dist/core/templates/session-context.d.ts +5 -5
- package/dist/core/tools/mcp/jwt-auth.d.cts +2 -2
- package/dist/core/tools/mcp/jwt-auth.d.ts +2 -2
- package/dist/core/types/index.cjs +7 -0
- package/dist/core/types/index.d.cts +16 -16
- package/dist/core/types/index.d.ts +16 -16
- package/dist/core/types/index.js +6 -0
- package/dist/core/{types-BE6DTpRe.d.cts → types-BQRGoDkg.d.cts} +1 -1
- package/dist/core/{types-BvYoeNhO.d.ts → types-CvXKxTNP.d.ts} +1 -1
- package/dist/core/unix/index.cjs +5 -2
- package/dist/core/unix/index.d.cts +8 -8
- package/dist/core/unix/index.d.ts +8 -8
- package/dist/core/unix/index.js +5 -2
- package/dist/core/{user-pO3lB_da.d.ts → user-C9UDwwtA.d.ts} +3 -3
- package/dist/core/{user-BpKIlt04.d.cts → user-wScngdUE.d.cts} +3 -3
- package/dist/core/utils/board-placement.d.cts +3 -3
- package/dist/core/utils/board-placement.d.ts +3 -3
- package/dist/core/utils/permission-mode-mapper.d.cts +3 -3
- package/dist/core/utils/permission-mode-mapper.d.ts +3 -3
- package/dist/core/utils/url.cjs +8 -2
- package/dist/core/utils/url.d.cts +1 -1
- package/dist/core/utils/url.d.ts +1 -1
- package/dist/core/utils/url.js +8 -2
- package/dist/daemon/index.d.ts +34 -1
- package/dist/daemon/index.js +18 -12
- package/dist/daemon/main.d.ts +2 -0
- package/dist/daemon/main.js +32581 -0
- package/dist/daemon/register-services.js +1 -0
- package/dist/daemon/services/mcp-servers.d.ts +2 -7
- package/dist/daemon/startup.d.ts +2 -0
- package/dist/daemon/startup.js +8 -4
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +33 -21
- package/dist/executor/sdk-handlers/base/diff-enrichment.d.ts +16 -0
- package/dist/executor/sdk-handlers/base/diff-enrichment.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +171 -6
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +14 -5
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +45 -15
- package/dist/executor/sdk-handlers/codex/context-window-fallback.d.ts +12 -0
- package/dist/executor/sdk-handlers/codex/context-window-fallback.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/codex/context-window-fallback.js +72 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +5 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +13 -1
- package/dist/executor/sdk-handlers/codex/usage.d.ts +35 -0
- package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/usage.js +90 -0
- package/dist/ui/assets/{_basePickBy-CM6p9_3C.js → _basePickBy-CQZh_v13.js} +1 -1
- package/dist/ui/assets/_basePickBy-CQZh_v13.js.gz +0 -0
- package/dist/ui/assets/{_baseUniq-CHMdQkaA.js → _baseUniq-Cgf5LtCM.js} +1 -1
- package/dist/ui/assets/_baseUniq-Cgf5LtCM.js.gz +0 -0
- package/dist/ui/assets/{arc-Czp_Gn_m.js → arc-DnTl2a4f.js} +1 -1
- package/dist/ui/assets/arc-DnTl2a4f.js.gz +0 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-Cz-z2R4z.js → architectureDiagram-VXUJARFQ-DZHKQxRL.js} +1 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DZHKQxRL.js.gz +0 -0
- package/dist/ui/assets/{base-80a1f760-DL2sFXEh.js → base-80a1f760-pDLzaKJY.js} +1 -1
- package/dist/ui/assets/{blockDiagram-VD42YOAC-C62DfRc6.js → blockDiagram-VD42YOAC-BAOUMLja.js} +1 -1
- package/dist/ui/assets/blockDiagram-VD42YOAC-BAOUMLja.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-DGSWKqxL.js → c4Diagram-YG6GDRKO-C0xcWHxz.js} +1 -1
- package/dist/ui/assets/c4Diagram-YG6GDRKO-C0xcWHxz.js.gz +0 -0
- package/dist/ui/assets/channel-DpHH4gqH.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-CuJEBfIh.js → chunk-4BX2VUAB-DCYNUaJZ.js} +1 -1
- package/dist/ui/assets/{chunk-55IACEB6-DYgjRl-z.js → chunk-55IACEB6-DU3b1X7p.js} +1 -1
- package/dist/ui/assets/{chunk-B4BG7PRW-rqPu7wjt.js → chunk-B4BG7PRW-BJlNsfTo.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-BJlNsfTo.js.gz +0 -0
- package/dist/ui/assets/{chunk-DI55MBZ5-D7PtpA49.js → chunk-DI55MBZ5-CKQY-IiF.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-CKQY-IiF.js.gz +0 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-1R4kh4IH.js → chunk-FMBD7UC4-DmjQ-Dzu.js} +1 -1
- package/dist/ui/assets/{chunk-QN33PNHL-qNBgj7JQ.js → chunk-QN33PNHL-Bps50N51.js} +1 -1
- package/dist/ui/assets/{chunk-QZHKN3VN-JUwZqL5s.js → chunk-QZHKN3VN-CNDKr6Xh.js} +1 -1
- package/dist/ui/assets/{chunk-TZMSLE5B-Bk4l2qq1.js → chunk-TZMSLE5B-R2Vz5IHZ.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-R2Vz5IHZ.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CbDCU4XU.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CbDCU4XU.js +1 -0
- package/dist/ui/assets/clone-DSMLFNzW.js +1 -0
- package/dist/ui/assets/{consoleHook-59e792cb-BjB_4eqO.js → consoleHook-59e792cb-MfGBgEJx.js} +1 -1
- package/dist/ui/assets/consoleHook-59e792cb-MfGBgEJx.js.gz +0 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-Db3GpSRP.js → cose-bilkent-S5V4N54A-Bkbv_h_w.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Bkbv_h_w.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-D9RUH_36.js → dagre-6UL2VRFP-DUoxEnB9.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-DUoxEnB9.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-C51S0t1m.js → diagram-PSM6KHXK-BUdRu7ma.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-BUdRu7ma.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-Bl99kj4s.js → diagram-QEK2KX5R-DEoZ3bpF.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-DEoZ3bpF.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-Dm52PeWx.js → diagram-S2PKOQOG-CxM9wSuL.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-CxM9wSuL.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-K5D_GKDZ.js → erDiagram-Q2GNP2WA-D5VuZpBE.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-D5VuZpBE.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-D7fCREXV.js → flowDiagram-NV44I4VS-uuzmVpS4.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-uuzmVpS4.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-CNW9D2UF.js → ganttDiagram-LVOFAZNH-7spsgOUT.js} +1 -1
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-7spsgOUT.js.gz +0 -0
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-CzSHwK4S.js → gitGraphDiagram-NY62KEGX-DJDE3D90.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-DJDE3D90.js.gz +0 -0
- package/dist/ui/assets/{graph-iZG1PujV.js → graph-BmWYHUOg.js} +1 -1
- package/dist/ui/assets/graph-BmWYHUOg.js.gz +0 -0
- package/dist/ui/assets/{index-599aeaf7-BSVvtdOR.js → index-599aeaf7-C76CG5K3.js} +1 -1
- package/dist/ui/assets/index-599aeaf7-C76CG5K3.js.gz +0 -0
- package/dist/ui/assets/index-B0lOKf7g.js +4 -0
- package/dist/ui/assets/index-B0lOKf7g.js.gz +0 -0
- package/dist/ui/assets/{index-CmhCTwYo.js → index-CMrDOI5G.js} +289 -291
- package/dist/ui/assets/index-CMrDOI5G.js.gz +0 -0
- package/dist/ui/assets/{index-DX9HbDkF.js → index-CuMJFr7K.js} +1 -1
- package/dist/ui/assets/index-CuMJFr7K.js.gz +0 -0
- package/dist/ui/assets/{index-Bv9iC_mb.js → index-fQo-B6L6.js} +1 -1
- package/dist/ui/assets/index-fQo-B6L6.js.gz +0 -0
- package/dist/ui/assets/{infoDiagram-ER5ION4S-7UpJXgGv.js → infoDiagram-ER5ION4S--dZLWvYP.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-B_u-rXxp.js → journeyDiagram-XKPGCS4Q-C-Mzd3Ky.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-C-Mzd3Ky.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-C60Ys_tG.js → kanban-definition-3W4ZIXB7-DoDzQCSc.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-DoDzQCSc.js.gz +0 -0
- package/dist/ui/assets/{layout-2nOBwYEK.js → layout-BmSvKYXZ.js} +1 -1
- package/dist/ui/assets/layout-BmSvKYXZ.js.gz +0 -0
- package/dist/ui/assets/{linear-BBfmsNEf.js → linear-BnPF1K20.js} +1 -1
- package/dist/ui/assets/linear-BnPF1K20.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-BMmc28YS.js → mermaid.core-Suk7MkfT.js} +5 -5
- package/dist/ui/assets/mermaid.core-Suk7MkfT.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-CUOfncA2.js → mindmap-definition-VGOIOE7T-Bj9HZQA9.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-Bj9HZQA9.js.gz +0 -0
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-CYt5K7tI.js → pieDiagram-ADFJNKIX-BIcJ5ee8.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BIcJ5ee8.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-D3z7FGdo.js → quadrantDiagram-AYHSOK5B-CJm5QQ8N.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-CJm5QQ8N.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-DSmK1rXj.js → requirementDiagram-UZGBJVZJ-Bg6r943V.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bg6r943V.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-BVudlnpo.js → sankeyDiagram-TZEHDZUN-C2XnZZZp.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-C2XnZZZp.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DShMajjv.js → sequenceDiagram-WL72ISMW-DOg-bBN1.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DOg-bBN1.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-9zK0uo4t.js → stateDiagram-FKZM4ZOC-DgZgPM-o.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-DgZgPM-o.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-C_0TAQGU.js +1 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-DQ4HYAMD.js → timeline-definition-IT6M3QCI-CmkWt6nL.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CmkWt6nL.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Curv75AA.js → treemap-KMMF4GRG-CV8wwXTM.js} +1 -1
- package/dist/ui/assets/treemap-KMMF4GRG-CV8wwXTM.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BJdTipk8.js → xychartDiagram-PRI3JC2R-CvuPvlyn.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CvuPvlyn.js.gz +0 -0
- package/dist/ui/index.html +1 -1
- package/package.json +2 -1
- package/dist/ui/assets/_basePickBy-CM6p9_3C.js.gz +0 -0
- package/dist/ui/assets/_baseUniq-CHMdQkaA.js.gz +0 -0
- package/dist/ui/assets/arc-Czp_Gn_m.js.gz +0 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-Cz-z2R4z.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-C62DfRc6.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-DGSWKqxL.js.gz +0 -0
- package/dist/ui/assets/channel-CmfC29hp.js +0 -1
- package/dist/ui/assets/chunk-B4BG7PRW-rqPu7wjt.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-D7PtpA49.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-Bk4l2qq1.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-LD317OSr.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-LD317OSr.js +0 -1
- package/dist/ui/assets/clone-iT69LzXk.js +0 -1
- package/dist/ui/assets/consoleHook-59e792cb-BjB_4eqO.js.gz +0 -0
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Db3GpSRP.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-D9RUH_36.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-C51S0t1m.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-Bl99kj4s.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-Dm52PeWx.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-K5D_GKDZ.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-D7fCREXV.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CNW9D2UF.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CzSHwK4S.js.gz +0 -0
- package/dist/ui/assets/graph-iZG1PujV.js.gz +0 -0
- package/dist/ui/assets/index-599aeaf7-BSVvtdOR.js.gz +0 -0
- package/dist/ui/assets/index-Bv9iC_mb.js.gz +0 -0
- package/dist/ui/assets/index-CmhCTwYo.js.gz +0 -0
- package/dist/ui/assets/index-DX9HbDkF.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B_u-rXxp.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-C60Ys_tG.js.gz +0 -0
- package/dist/ui/assets/layout-2nOBwYEK.js.gz +0 -0
- package/dist/ui/assets/linear-BBfmsNEf.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-BMmc28YS.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-CUOfncA2.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-CYt5K7tI.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-D3z7FGdo.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-DSmK1rXj.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-BVudlnpo.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DShMajjv.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-9zK0uo4t.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BZEgBfav.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-DQ4HYAMD.js.gz +0 -0
- package/dist/ui/assets/treemap-KMMF4GRG-Curv75AA.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BJdTipk8.js.gz +0 -0
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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 %>
|
|
104
|
-
"<%= config.bin %>
|
|
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 (
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
this.log(
|
|
120
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
this.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
142
|
-
|
|
143
|
-
this.log(chalk.
|
|
144
|
-
this.log("");
|
|
145
|
-
|
|
146
|
-
this.log("");
|
|
147
|
-
this.log(
|
|
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
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
this.log(
|
|
160
|
-
|
|
161
|
-
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
if (
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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(
|
|
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/
|
|
3
|
-
import { getDaemonUrl } from "@agor/
|
|
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/
|
|
3
|
-
import { getDaemonUrl } from "@agor/
|
|
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";
|
|
@@ -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/
|
|
63
|
-
import { getDaemonUrl } from "@agor/
|
|
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
|
-
|
|
75
|
-
|
|
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(
|
|
85
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
85
86
|
}
|
|
86
|
-
const client = await createRestClient(
|
|
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(`${
|
|
104
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
104
105
|
const health = await response.json();
|
|
105
106
|
if (health.auth?.requireAuth) {
|
|
106
107
|
this.error(
|
|
@@ -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/
|
|
64
|
-
import { getDaemonUrl } from "@agor/
|
|
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
|
-
|
|
76
|
-
|
|
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(
|
|
86
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
86
87
|
}
|
|
87
|
-
const client = await createRestClient(
|
|
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(`${
|
|
105
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
105
106
|
const health = await response.json();
|
|
106
107
|
if (health.auth?.requireAuth) {
|
|
107
108
|
this.error(
|
|
@@ -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/
|
|
63
|
-
import { getDaemonUrl } from "@agor/
|
|
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
|
-
|
|
75
|
-
|
|
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(
|
|
85
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
85
86
|
}
|
|
86
|
-
const client = await createRestClient(
|
|
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(`${
|
|
104
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
104
105
|
const health = await response.json();
|
|
105
106
|
if (health.auth?.requireAuth) {
|
|
106
107
|
this.error(
|