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
package/bin/agor-daemon.js
CHANGED
|
@@ -20,7 +20,7 @@ const { fileURLToPath } = await import('node:url');
|
|
|
20
20
|
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
21
21
|
|
|
22
22
|
// Daemon is bundled in dist/daemon relative to bin/
|
|
23
|
-
const daemonPath = path.resolve(dirname, '../dist/daemon/
|
|
23
|
+
const daemonPath = path.resolve(dirname, '../dist/daemon/main.js');
|
|
24
24
|
|
|
25
25
|
// Import and run the daemon
|
|
26
26
|
await import(daemonPath);
|
package/dist/cli/base-command.js
CHANGED
|
@@ -55,8 +55,8 @@ var init_auth = __esm({
|
|
|
55
55
|
|
|
56
56
|
// src/base-command.ts
|
|
57
57
|
init_auth();
|
|
58
|
-
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/
|
|
59
|
-
import { getDaemonUrl } from "@agor/
|
|
58
|
+
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
|
|
59
|
+
import { getDaemonUrl } from "@agor-live/client/config";
|
|
60
60
|
import { Command } from "@oclif/core";
|
|
61
61
|
import chalk from "chalk";
|
|
62
62
|
var BaseCommand = class extends Command {
|
|
@@ -67,8 +67,9 @@ var BaseCommand = class extends Command {
|
|
|
67
67
|
* @returns Feathers client instance
|
|
68
68
|
*/
|
|
69
69
|
async connectToDaemon() {
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
const daemonUrl = await getDaemonUrl();
|
|
71
|
+
this.daemonUrl = daemonUrl;
|
|
72
|
+
const running = await isDaemonRunning(daemonUrl);
|
|
72
73
|
if (!running) {
|
|
73
74
|
this.log(
|
|
74
75
|
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}`)
|
|
@@ -77,9 +78,9 @@ var BaseCommand = class extends Command {
|
|
|
77
78
|
}
|
|
78
79
|
const apiKey = getApiKeyFromEnv();
|
|
79
80
|
if (apiKey) {
|
|
80
|
-
return await createRestClient(
|
|
81
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
81
82
|
}
|
|
82
|
-
const client = await createRestClient(
|
|
83
|
+
const client = await createRestClient(daemonUrl);
|
|
83
84
|
const storedAuth = await loadToken();
|
|
84
85
|
if (storedAuth) {
|
|
85
86
|
try {
|
|
@@ -96,7 +97,7 @@ var BaseCommand = class extends Command {
|
|
|
96
97
|
}
|
|
97
98
|
} else {
|
|
98
99
|
try {
|
|
99
|
-
const response = await fetch(`${
|
|
100
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
100
101
|
const health = await response.json();
|
|
101
102
|
if (health.auth?.requireAuth) {
|
|
102
103
|
this.error(
|
|
@@ -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";
|
|
@@ -54,14 +54,14 @@ var init_auth = __esm({
|
|
|
54
54
|
});
|
|
55
55
|
|
|
56
56
|
// src/commands/board/add-session.ts
|
|
57
|
-
import { PAGINATION } from "@agor/
|
|
57
|
+
import { PAGINATION } from "@agor-live/client";
|
|
58
58
|
import { Args } from "@oclif/core";
|
|
59
59
|
import chalk2 from "chalk";
|
|
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(
|
|
@@ -192,7 +193,8 @@ var BoardAddSession = class _BoardAddSession extends BaseCommand {
|
|
|
192
193
|
board_id: board.board_id
|
|
193
194
|
}
|
|
194
195
|
});
|
|
195
|
-
const
|
|
196
|
+
const typedBoardObjects = boardObjects;
|
|
197
|
+
const existingObject = typedBoardObjects.find(
|
|
196
198
|
(bo) => bo.worktree_id === worktree.worktree_id
|
|
197
199
|
);
|
|
198
200
|
if (existingObject) {
|
|
@@ -58,8 +58,8 @@ import { Args } from "@oclif/core";
|
|
|
58
58
|
|
|
59
59
|
// src/base-command.ts
|
|
60
60
|
init_auth();
|
|
61
|
-
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/
|
|
62
|
-
import { getDaemonUrl } from "@agor/
|
|
61
|
+
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
|
|
62
|
+
import { getDaemonUrl } from "@agor-live/client/config";
|
|
63
63
|
import { Command } from "@oclif/core";
|
|
64
64
|
import chalk from "chalk";
|
|
65
65
|
var BaseCommand = class extends Command {
|
|
@@ -70,8 +70,9 @@ var BaseCommand = class extends Command {
|
|
|
70
70
|
* @returns Feathers client instance
|
|
71
71
|
*/
|
|
72
72
|
async connectToDaemon() {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const daemonUrl = await getDaemonUrl();
|
|
74
|
+
this.daemonUrl = daemonUrl;
|
|
75
|
+
const running = await isDaemonRunning(daemonUrl);
|
|
75
76
|
if (!running) {
|
|
76
77
|
this.log(
|
|
77
78
|
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}`)
|
|
@@ -80,9 +81,9 @@ var BaseCommand = class extends Command {
|
|
|
80
81
|
}
|
|
81
82
|
const apiKey = getApiKeyFromEnv();
|
|
82
83
|
if (apiKey) {
|
|
83
|
-
return await createRestClient(
|
|
84
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
84
85
|
}
|
|
85
|
-
const client = await createRestClient(
|
|
86
|
+
const client = await createRestClient(daemonUrl);
|
|
86
87
|
const storedAuth = await loadToken();
|
|
87
88
|
if (storedAuth) {
|
|
88
89
|
try {
|
|
@@ -99,7 +100,7 @@ var BaseCommand = class extends Command {
|
|
|
99
100
|
}
|
|
100
101
|
} else {
|
|
101
102
|
try {
|
|
102
|
-
const response = await fetch(`${
|
|
103
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
103
104
|
const health = await response.json();
|
|
104
105
|
if (health.auth?.requireAuth) {
|
|
105
106
|
this.error(
|
|
@@ -58,8 +58,8 @@ import { Args, Flags } from "@oclif/core";
|
|
|
58
58
|
|
|
59
59
|
// src/base-command.ts
|
|
60
60
|
init_auth();
|
|
61
|
-
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/
|
|
62
|
-
import { getDaemonUrl } from "@agor/
|
|
61
|
+
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
|
|
62
|
+
import { getDaemonUrl } from "@agor-live/client/config";
|
|
63
63
|
import { Command } from "@oclif/core";
|
|
64
64
|
import chalk from "chalk";
|
|
65
65
|
var BaseCommand = class extends Command {
|
|
@@ -70,8 +70,9 @@ var BaseCommand = class extends Command {
|
|
|
70
70
|
* @returns Feathers client instance
|
|
71
71
|
*/
|
|
72
72
|
async connectToDaemon() {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const daemonUrl = await getDaemonUrl();
|
|
74
|
+
this.daemonUrl = daemonUrl;
|
|
75
|
+
const running = await isDaemonRunning(daemonUrl);
|
|
75
76
|
if (!running) {
|
|
76
77
|
this.log(
|
|
77
78
|
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}`)
|
|
@@ -80,9 +81,9 @@ var BaseCommand = class extends Command {
|
|
|
80
81
|
}
|
|
81
82
|
const apiKey = getApiKeyFromEnv();
|
|
82
83
|
if (apiKey) {
|
|
83
|
-
return await createRestClient(
|
|
84
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
84
85
|
}
|
|
85
|
-
const client = await createRestClient(
|
|
86
|
+
const client = await createRestClient(daemonUrl);
|
|
86
87
|
const storedAuth = await loadToken();
|
|
87
88
|
if (storedAuth) {
|
|
88
89
|
try {
|
|
@@ -99,7 +100,7 @@ var BaseCommand = class extends Command {
|
|
|
99
100
|
}
|
|
100
101
|
} else {
|
|
101
102
|
try {
|
|
102
|
-
const response = await fetch(`${
|
|
103
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
103
104
|
const health = await response.json();
|
|
104
105
|
if (health.auth?.requireAuth) {
|
|
105
106
|
this.error(
|
|
@@ -58,8 +58,8 @@ import { Args } from "@oclif/core";
|
|
|
58
58
|
|
|
59
59
|
// src/base-command.ts
|
|
60
60
|
init_auth();
|
|
61
|
-
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/
|
|
62
|
-
import { getDaemonUrl } from "@agor/
|
|
61
|
+
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
|
|
62
|
+
import { getDaemonUrl } from "@agor-live/client/config";
|
|
63
63
|
import { Command } from "@oclif/core";
|
|
64
64
|
import chalk from "chalk";
|
|
65
65
|
var BaseCommand = class extends Command {
|
|
@@ -70,8 +70,9 @@ var BaseCommand = class extends Command {
|
|
|
70
70
|
* @returns Feathers client instance
|
|
71
71
|
*/
|
|
72
72
|
async connectToDaemon() {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const daemonUrl = await getDaemonUrl();
|
|
74
|
+
this.daemonUrl = daemonUrl;
|
|
75
|
+
const running = await isDaemonRunning(daemonUrl);
|
|
75
76
|
if (!running) {
|
|
76
77
|
this.log(
|
|
77
78
|
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}`)
|
|
@@ -80,9 +81,9 @@ var BaseCommand = class extends Command {
|
|
|
80
81
|
}
|
|
81
82
|
const apiKey = getApiKeyFromEnv();
|
|
82
83
|
if (apiKey) {
|
|
83
|
-
return await createRestClient(
|
|
84
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
84
85
|
}
|
|
85
|
-
const client = await createRestClient(
|
|
86
|
+
const client = await createRestClient(daemonUrl);
|
|
86
87
|
const storedAuth = await loadToken();
|
|
87
88
|
if (storedAuth) {
|
|
88
89
|
try {
|
|
@@ -99,7 +100,7 @@ var BaseCommand = class extends Command {
|
|
|
99
100
|
}
|
|
100
101
|
} else {
|
|
101
102
|
try {
|
|
102
|
-
const response = await fetch(`${
|
|
103
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
103
104
|
const health = await response.json();
|
|
104
105
|
if (health.auth?.requireAuth) {
|
|
105
106
|
this.error(
|
|
@@ -54,15 +54,15 @@ var init_auth = __esm({
|
|
|
54
54
|
});
|
|
55
55
|
|
|
56
56
|
// src/commands/board/list.ts
|
|
57
|
-
import { PAGINATION } from "@agor/
|
|
57
|
+
import { PAGINATION } from "@agor-live/client";
|
|
58
58
|
import { Flags } from "@oclif/core";
|
|
59
59
|
import chalk2 from "chalk";
|
|
60
60
|
import Table from "cli-table3";
|
|
61
61
|
|
|
62
62
|
// src/base-command.ts
|
|
63
63
|
init_auth();
|
|
64
|
-
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor/
|
|
65
|
-
import { getDaemonUrl } from "@agor/
|
|
64
|
+
import { createRestClient, getApiKeyFromEnv, isDaemonRunning } from "@agor-live/client";
|
|
65
|
+
import { getDaemonUrl } from "@agor-live/client/config";
|
|
66
66
|
import { Command } from "@oclif/core";
|
|
67
67
|
import chalk from "chalk";
|
|
68
68
|
var BaseCommand = class extends Command {
|
|
@@ -73,8 +73,9 @@ var BaseCommand = class extends Command {
|
|
|
73
73
|
* @returns Feathers client instance
|
|
74
74
|
*/
|
|
75
75
|
async connectToDaemon() {
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
const daemonUrl = await getDaemonUrl();
|
|
77
|
+
this.daemonUrl = daemonUrl;
|
|
78
|
+
const running = await isDaemonRunning(daemonUrl);
|
|
78
79
|
if (!running) {
|
|
79
80
|
this.log(
|
|
80
81
|
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}`)
|
|
@@ -83,9 +84,9 @@ var BaseCommand = class extends Command {
|
|
|
83
84
|
}
|
|
84
85
|
const apiKey = getApiKeyFromEnv();
|
|
85
86
|
if (apiKey) {
|
|
86
|
-
return await createRestClient(
|
|
87
|
+
return await createRestClient(daemonUrl, apiKey ?? void 0);
|
|
87
88
|
}
|
|
88
|
-
const client = await createRestClient(
|
|
89
|
+
const client = await createRestClient(daemonUrl);
|
|
89
90
|
const storedAuth = await loadToken();
|
|
90
91
|
if (storedAuth) {
|
|
91
92
|
try {
|
|
@@ -102,7 +103,7 @@ var BaseCommand = class extends Command {
|
|
|
102
103
|
}
|
|
103
104
|
} else {
|
|
104
105
|
try {
|
|
105
|
-
const response = await fetch(`${
|
|
106
|
+
const response = await fetch(`${daemonUrl}/health`);
|
|
106
107
|
const health = await response.json();
|
|
107
108
|
if (health.auth?.requireAuth) {
|
|
108
109
|
this.error(
|
|
@@ -163,6 +164,7 @@ var BoardList = class _BoardList extends BaseCommand {
|
|
|
163
164
|
return;
|
|
164
165
|
}
|
|
165
166
|
const boardObjects = await client.service("board-objects").findAll({ query: { $limit: PAGINATION.DEFAULT_LIMIT } });
|
|
167
|
+
const typedBoardObjects = boardObjects;
|
|
166
168
|
const displayBoards = allBoards.slice(0, flags.limit);
|
|
167
169
|
const table = new Table({
|
|
168
170
|
head: [
|
|
@@ -176,7 +178,9 @@ var BoardList = class _BoardList extends BaseCommand {
|
|
|
176
178
|
wordWrap: true
|
|
177
179
|
});
|
|
178
180
|
for (const board of displayBoards) {
|
|
179
|
-
const worktreeCount =
|
|
181
|
+
const worktreeCount = typedBoardObjects.filter(
|
|
182
|
+
(bo) => bo.board_id === board.board_id
|
|
183
|
+
).length;
|
|
180
184
|
table.push([
|
|
181
185
|
board.board_id.substring(0, 8),
|
|
182
186
|
`${board.icon || "\u{1F4CB}"} ${board.name}`,
|
|
@@ -18,6 +18,11 @@ 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 DEFAULT_LOG_LINES = 50;
|
|
22
|
+
var MIN_TAIL_READ_BYTES = 64 * 1024;
|
|
23
|
+
var AVG_LOG_LINE_BYTES = 256;
|
|
24
|
+
var MAX_TAIL_READ_BYTES = 8 * 1024 * 1024;
|
|
25
|
+
var DEFAULT_ROTATE_MAX_BYTES = 50 * 1024 * 1024;
|
|
21
26
|
function getAgorHome() {
|
|
22
27
|
return path2.join(os.homedir(), ".agor");
|
|
23
28
|
}
|
|
@@ -28,15 +33,74 @@ function getLogFilePath() {
|
|
|
28
33
|
}
|
|
29
34
|
return path2.join(logsDir, "daemon.log");
|
|
30
35
|
}
|
|
31
|
-
function readLogs(lines =
|
|
36
|
+
function readLogs(lines = DEFAULT_LOG_LINES) {
|
|
32
37
|
const logFile = getLogFilePath();
|
|
33
38
|
if (!fs.existsSync(logFile)) {
|
|
34
39
|
return "No logs found";
|
|
35
40
|
}
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
const safeLines = sanitizeRequestedLineCount(lines);
|
|
42
|
+
if (safeLines <= 0) {
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
const fd = fs.openSync(logFile, "r");
|
|
46
|
+
try {
|
|
47
|
+
const fileSize = fs.fstatSync(fd).size;
|
|
48
|
+
if (fileSize <= 0) {
|
|
49
|
+
return "";
|
|
50
|
+
}
|
|
51
|
+
const maxReadableBytes = Math.min(fileSize, MAX_TAIL_READ_BYTES);
|
|
52
|
+
let bytesToRead = Math.min(
|
|
53
|
+
maxReadableBytes,
|
|
54
|
+
Math.max(MIN_TAIL_READ_BYTES, safeLines * AVG_LOG_LINE_BYTES)
|
|
55
|
+
);
|
|
56
|
+
let lastLines = [];
|
|
57
|
+
let truncatedByCap = false;
|
|
58
|
+
while (bytesToRead <= maxReadableBytes) {
|
|
59
|
+
const tailBuffer = readTailBuffer(fd, fileSize, bytesToRead);
|
|
60
|
+
const tailContent = tailBuffer.toString("utf-8").replaceAll("\0", "").replace(/\r\n/g, "\n");
|
|
61
|
+
const allLines = tailContent.split("\n").filter((line) => line.trim() !== "");
|
|
62
|
+
lastLines = allLines.slice(-safeLines);
|
|
63
|
+
if (bytesToRead === maxReadableBytes && fileSize > maxReadableBytes && allLines.length < safeLines) {
|
|
64
|
+
truncatedByCap = true;
|
|
65
|
+
}
|
|
66
|
+
if (allLines.length >= safeLines || bytesToRead === maxReadableBytes) {
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
bytesToRead = Math.min(maxReadableBytes, bytesToRead * 2);
|
|
70
|
+
}
|
|
71
|
+
const logText = lastLines.join("\n");
|
|
72
|
+
if (!truncatedByCap) {
|
|
73
|
+
return logText;
|
|
74
|
+
}
|
|
75
|
+
const prefix = `[output truncated: scanned last ${formatBytes(maxReadableBytes)} of ${formatBytes(fileSize)}]`;
|
|
76
|
+
return logText.length > 0 ? `${prefix}
|
|
77
|
+
${logText}` : prefix;
|
|
78
|
+
} finally {
|
|
79
|
+
fs.closeSync(fd);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function sanitizeRequestedLineCount(lines) {
|
|
83
|
+
if (!Number.isFinite(lines)) {
|
|
84
|
+
return DEFAULT_LOG_LINES;
|
|
85
|
+
}
|
|
86
|
+
const parsed = Math.floor(lines);
|
|
87
|
+
return Math.max(0, parsed);
|
|
88
|
+
}
|
|
89
|
+
function readTailBuffer(fd, fileSize, bytesToRead) {
|
|
90
|
+
const readLength = Math.min(bytesToRead, fileSize);
|
|
91
|
+
const start = fileSize - readLength;
|
|
92
|
+
const buffer = Buffer.allocUnsafe(readLength);
|
|
93
|
+
const bytesRead = fs.readSync(fd, buffer, 0, readLength, start);
|
|
94
|
+
return bytesRead === readLength ? buffer : buffer.subarray(0, bytesRead);
|
|
95
|
+
}
|
|
96
|
+
function formatBytes(bytes) {
|
|
97
|
+
if (bytes >= 1024 * 1024) {
|
|
98
|
+
return `${Math.round(bytes / (1024 * 1024) * 10) / 10}MB`;
|
|
99
|
+
}
|
|
100
|
+
if (bytes >= 1024) {
|
|
101
|
+
return `${Math.round(bytes / 1024 * 10) / 10}KB`;
|
|
102
|
+
}
|
|
103
|
+
return `${bytes}B`;
|
|
40
104
|
}
|
|
41
105
|
|
|
42
106
|
// src/commands/daemon/logs.ts
|
|
@@ -51,7 +115,8 @@ var DaemonLogs = class _DaemonLogs extends Command {
|
|
|
51
115
|
lines: Flags.integer({
|
|
52
116
|
char: "n",
|
|
53
117
|
description: "Number of lines to display",
|
|
54
|
-
default: 50
|
|
118
|
+
default: 50,
|
|
119
|
+
min: 1
|
|
55
120
|
})
|
|
56
121
|
};
|
|
57
122
|
async run() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/commands/daemon/restart.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
|
|
|
@@ -21,10 +21,10 @@ function getDaemonPath() {
|
|
|
21
21
|
const dirname = typeof __dirname !== "undefined" ? __dirname : path.dirname(fileURLToPath(import.meta.url));
|
|
22
22
|
const cliDistIndex = dirname.indexOf(`${path.sep}dist${path.sep}cli`);
|
|
23
23
|
if (cliDistIndex === -1) {
|
|
24
|
-
return path.resolve(dirname, "../../daemon/
|
|
24
|
+
return path.resolve(dirname, "../../daemon/main.js");
|
|
25
25
|
}
|
|
26
26
|
const packageRoot = dirname.substring(0, cliDistIndex);
|
|
27
|
-
return path.join(packageRoot, "dist", "daemon", "
|
|
27
|
+
return path.join(packageRoot, "dist", "daemon", "main.js");
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
// src/lib/daemon-manager.ts
|
|
@@ -32,6 +32,10 @@ import { spawn } from "child_process";
|
|
|
32
32
|
import fs from "fs";
|
|
33
33
|
import os from "os";
|
|
34
34
|
import path2 from "path";
|
|
35
|
+
var MIN_TAIL_READ_BYTES = 64 * 1024;
|
|
36
|
+
var MAX_TAIL_READ_BYTES = 8 * 1024 * 1024;
|
|
37
|
+
var DEFAULT_ROTATE_MAX_BYTES = 50 * 1024 * 1024;
|
|
38
|
+
var DEFAULT_ROTATE_MAX_FILES = 5;
|
|
35
39
|
function getAgorHome() {
|
|
36
40
|
return path2.join(os.homedir(), ".agor");
|
|
37
41
|
}
|
|
@@ -59,7 +63,7 @@ function getDaemonPid() {
|
|
|
59
63
|
return null;
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
|
-
function startDaemon(daemonPath) {
|
|
66
|
+
function startDaemon(daemonPath, extraEnv) {
|
|
63
67
|
const existingPid = getDaemonPid();
|
|
64
68
|
if (existingPid !== null) {
|
|
65
69
|
throw new Error(`Daemon already running (PID ${existingPid})`);
|
|
@@ -68,13 +72,19 @@ function startDaemon(daemonPath) {
|
|
|
68
72
|
throw new Error(`Daemon binary not found at: ${daemonPath}`);
|
|
69
73
|
}
|
|
70
74
|
const logFile = getLogFilePath();
|
|
75
|
+
try {
|
|
76
|
+
rotateDaemonLogIfNeeded(logFile);
|
|
77
|
+
} catch (error) {
|
|
78
|
+
console.warn(`\u26A0 Failed to rotate daemon logs: ${error.message}`);
|
|
79
|
+
}
|
|
71
80
|
const logStream = fs.openSync(logFile, "a");
|
|
72
81
|
const child = spawn("node", [daemonPath], {
|
|
73
82
|
detached: true,
|
|
74
83
|
stdio: ["ignore", logStream, logStream],
|
|
75
84
|
env: {
|
|
76
85
|
...process.env,
|
|
77
|
-
NODE_ENV: "production"
|
|
86
|
+
NODE_ENV: "production",
|
|
87
|
+
...extraEnv
|
|
78
88
|
}
|
|
79
89
|
});
|
|
80
90
|
child.unref();
|
|
@@ -117,6 +127,33 @@ function stopDaemon() {
|
|
|
117
127
|
throw new Error(`Failed to stop daemon: ${error.message}`);
|
|
118
128
|
}
|
|
119
129
|
}
|
|
130
|
+
function rotateDaemonLogIfNeeded(logFile, options = {}) {
|
|
131
|
+
if (!fs.existsSync(logFile)) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const maxBytes = Math.max(1, Math.floor(options.maxBytes ?? DEFAULT_ROTATE_MAX_BYTES));
|
|
135
|
+
const maxFiles = Math.max(1, Math.floor(options.maxFiles ?? DEFAULT_ROTATE_MAX_FILES));
|
|
136
|
+
const logSize = fs.statSync(logFile).size;
|
|
137
|
+
if (logSize <= maxBytes) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const oldestLog = `${logFile}.${maxFiles}`;
|
|
141
|
+
if (fs.existsSync(oldestLog)) {
|
|
142
|
+
fs.unlinkSync(oldestLog);
|
|
143
|
+
}
|
|
144
|
+
for (let i = maxFiles - 1; i >= 1; i--) {
|
|
145
|
+
const src = `${logFile}.${i}`;
|
|
146
|
+
const dest = `${logFile}.${i + 1}`;
|
|
147
|
+
if (!fs.existsSync(src)) {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
if (fs.existsSync(dest)) {
|
|
151
|
+
fs.unlinkSync(dest);
|
|
152
|
+
}
|
|
153
|
+
fs.renameSync(src, dest);
|
|
154
|
+
}
|
|
155
|
+
fs.renameSync(logFile, `${logFile}.1`);
|
|
156
|
+
}
|
|
120
157
|
|
|
121
158
|
// src/commands/daemon/restart.ts
|
|
122
159
|
var DaemonRestart = class extends Command {
|
|
@@ -5,9 +5,15 @@ declare class DaemonStart extends Command {
|
|
|
5
5
|
static description: string;
|
|
6
6
|
static examples: string[];
|
|
7
7
|
static flags: {
|
|
8
|
+
config: _oclif_core_interfaces.OptionFlag<string | undefined, _oclif_core_interfaces.CustomOptions>;
|
|
8
9
|
foreground: _oclif_core_interfaces.BooleanFlag<boolean>;
|
|
9
10
|
};
|
|
10
11
|
run(): Promise<void>;
|
|
12
|
+
private validateServicesConfig;
|
|
13
|
+
private logServicesInfo;
|
|
14
|
+
private importDaemonModule;
|
|
15
|
+
private resolveDaemonEntrypoint;
|
|
16
|
+
private loadConfigFromPath;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
19
|
export { DaemonStart as default };
|