agor-live 0.12.2 → 0.12.3
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/dist/core/api/index.d.cts +4 -4
- package/dist/core/api/index.d.ts +4 -4
- package/dist/core/{board-DCNkcsyf.d.cts → board-ByCag4EG.d.cts} +8 -1
- package/dist/core/{board-C-PU8jok.d.ts → board-CZuyMRpr.d.ts} +8 -1
- package/dist/core/claude/index.cjs +46 -5
- package/dist/core/claude/index.js +51 -21
- package/dist/core/{client-CGO13BG6.d.ts → client-BoLj-jqT.d.ts} +30 -5
- package/dist/core/{client-DKbFqX_X.d.cts → client-gnSCmSyL.d.cts} +30 -5
- package/dist/core/config/browser.d.cts +1 -1
- package/dist/core/config/browser.d.ts +1 -1
- package/dist/core/config/index.cjs +60 -4
- package/dist/core/config/index.d.cts +6 -5
- package/dist/core/config/index.d.ts +6 -5
- package/dist/core/config/index.js +64 -20
- package/dist/core/{config-manager-DGBdhxtZ.d.ts → config-manager-BLDGbZHT.d.ts} +16 -2
- package/dist/core/{config-manager-sCgziLkz.d.cts → config-manager-CsBk-Rh2.d.cts} +16 -2
- package/dist/core/db/index.cjs +332 -60
- package/dist/core/db/index.d.cts +33 -7
- package/dist/core/db/index.d.ts +33 -7
- package/dist/core/db/index.js +338 -77
- package/dist/core/drizzle/postgres/meta/_journal.json +1 -1
- package/dist/core/drizzle/sqlite/meta/_journal.json +1 -1
- package/dist/core/{feathers-B0zjReEk.d.ts → feathers-CYMJeMWB.d.ts} +1 -1
- package/dist/core/{feathers-C1uChqXy.d.cts → feathers-Cyk1lpAM.d.cts} +1 -1
- package/dist/core/gateway/index.cjs +137 -12
- package/dist/core/gateway/index.d.cts +22 -6
- package/dist/core/gateway/index.d.ts +22 -6
- package/dist/core/gateway/index.js +137 -12
- package/dist/core/{gateway-Dy9fVyiS.d.ts → gateway-B4CaePYV.d.ts} +2 -2
- package/dist/core/{gateway-DGNtjRnd.d.cts → gateway-C2NOdrxu.d.cts} +2 -2
- package/dist/core/git/index.d.cts +2 -2
- package/dist/core/git/index.d.ts +2 -2
- package/dist/core/index.cjs +226 -48
- package/dist/core/index.d.cts +8 -8
- package/dist/core/index.d.ts +8 -8
- package/dist/core/index.js +230 -64
- package/dist/core/mcp/index.cjs +24 -2
- package/dist/core/mcp/index.js +26 -4
- package/dist/core/seed/index.cjs +83 -13
- package/dist/core/seed/index.js +88 -29
- package/dist/core/{session-Bt9i9089.d.cts → session-BJbTzw3y.d.cts} +17 -1
- package/dist/core/{session-Da9rf6n5.d.ts → session-DLVkt-jY.d.ts} +17 -1
- package/dist/core/templates/session-context.d.cts +1 -1
- package/dist/core/templates/session-context.d.ts +1 -1
- package/dist/core/types/index.d.cts +6 -6
- package/dist/core/types/index.d.ts +6 -6
- package/dist/core/{types-D_wAaaE3.d.cts → types-Ddri21rw.d.cts} +18 -0
- package/dist/core/{types-D_wAaaE3.d.ts → types-Ddri21rw.d.ts} +18 -0
- package/dist/core/unix/index.cjs +63 -6
- package/dist/core/unix/index.d.cts +4 -3
- package/dist/core/unix/index.d.ts +4 -3
- package/dist/core/unix/index.js +68 -22
- package/dist/core/{user-DT1Qzfep.d.ts → user-B77oCF14.d.ts} +1 -1
- package/dist/core/{user-C5id0Zhj.d.cts → user-LBRon9n1.d.cts} +1 -1
- package/dist/core/utils/permission-mode-mapper.d.cts +1 -1
- package/dist/core/utils/permission-mode-mapper.d.ts +1 -1
- package/dist/core/utils/url.cjs +22 -0
- package/dist/core/utils/url.d.cts +45 -1
- package/dist/core/utils/url.d.ts +45 -1
- package/dist/core/utils/url.js +18 -0
- package/dist/daemon/index.js +168 -38
- package/dist/daemon/mcp/routes.js +5 -5
- package/dist/daemon/services/gateway.d.ts +9 -0
- package/dist/daemon/services/gateway.js +73 -6
- package/dist/daemon/services/repos.js +1 -0
- package/dist/daemon/services/thread-session-map.d.ts +6 -0
- package/dist/daemon/services/thread-session-map.js +9 -0
- package/dist/executor/cli.d.ts +0 -0
- package/dist/executor/cli.d.ts.map +0 -0
- package/dist/executor/cli.js +0 -0
- package/dist/executor/commands/git.d.ts +0 -0
- package/dist/executor/commands/git.d.ts.map +1 -1
- package/dist/executor/commands/git.js +3 -2
- package/dist/executor/commands/index.d.ts +0 -0
- package/dist/executor/commands/index.d.ts.map +0 -0
- package/dist/executor/commands/index.js +0 -0
- package/dist/executor/commands/unix.d.ts +0 -0
- package/dist/executor/commands/unix.d.ts.map +0 -0
- package/dist/executor/commands/unix.js +0 -0
- package/dist/executor/commands/zellij.d.ts +0 -0
- package/dist/executor/commands/zellij.d.ts.map +0 -0
- package/dist/executor/commands/zellij.js +0 -0
- package/dist/executor/config.d.ts +0 -0
- package/dist/executor/config.d.ts.map +0 -0
- package/dist/executor/config.js +0 -0
- package/dist/executor/db/feathers-repositories.d.ts +0 -0
- package/dist/executor/db/feathers-repositories.d.ts.map +0 -0
- package/dist/executor/db/feathers-repositories.js +0 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts +0 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +0 -0
- package/dist/executor/handlers/sdk/base-executor.js +0 -0
- package/dist/executor/handlers/sdk/claude.d.ts +0 -0
- package/dist/executor/handlers/sdk/claude.d.ts.map +0 -0
- package/dist/executor/handlers/sdk/claude.js +0 -0
- package/dist/executor/handlers/sdk/codex.d.ts +0 -0
- package/dist/executor/handlers/sdk/codex.d.ts.map +0 -0
- package/dist/executor/handlers/sdk/codex.js +0 -0
- package/dist/executor/handlers/sdk/gemini.d.ts +0 -0
- package/dist/executor/handlers/sdk/gemini.d.ts.map +0 -0
- package/dist/executor/handlers/sdk/gemini.js +0 -0
- package/dist/executor/handlers/sdk/opencode.d.ts +0 -0
- package/dist/executor/handlers/sdk/opencode.d.ts.map +0 -0
- package/dist/executor/handlers/sdk/opencode.js +0 -0
- package/dist/executor/handlers/sdk/tool-registry.d.ts +0 -0
- package/dist/executor/handlers/sdk/tool-registry.d.ts.map +0 -0
- package/dist/executor/handlers/sdk/tool-registry.js +0 -0
- package/dist/executor/index.d.ts +0 -0
- package/dist/executor/index.d.ts.map +0 -0
- package/dist/executor/index.js +0 -0
- package/dist/executor/payload-types.d.ts +8 -0
- package/dist/executor/payload-types.d.ts.map +1 -1
- package/dist/executor/payload-types.js +2 -0
- package/dist/executor/permissions/permission-manager.d.ts +0 -0
- package/dist/executor/permissions/permission-manager.d.ts.map +0 -0
- package/dist/executor/permissions/permission-manager.js +0 -0
- package/dist/executor/permissions/permission-service.d.ts +0 -0
- package/dist/executor/permissions/permission-service.d.ts.map +0 -0
- package/dist/executor/permissions/permission-service.js +0 -0
- package/dist/executor/sdk-handlers/base/index.d.ts +0 -0
- package/dist/executor/sdk-handlers/base/index.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/base/index.js +0 -0
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +0 -0
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +0 -0
- package/dist/executor/sdk-handlers/base/normalizer.interface.d.ts +0 -0
- package/dist/executor/sdk-handlers/base/normalizer.interface.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/base/normalizer.interface.js +0 -0
- package/dist/executor/sdk-handlers/base/tool.interface.d.ts +0 -0
- package/dist/executor/sdk-handlers/base/tool.interface.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/base/tool.interface.js +0 -0
- package/dist/executor/sdk-handlers/base/types.d.ts +0 -0
- package/dist/executor/sdk-handlers/base/types.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/base/types.js +0 -0
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/claude-tool.js +0 -0
- package/dist/executor/sdk-handlers/claude/import/load-session.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/import/load-session.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/import/load-session.js +0 -0
- package/dist/executor/sdk-handlers/claude/import/message-converter.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/import/message-converter.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/import/message-converter.js +0 -0
- package/dist/executor/sdk-handlers/claude/import/task-extractor.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/import/task-extractor.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/import/task-extractor.js +0 -0
- package/dist/executor/sdk-handlers/claude/import/transcript-parser.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/import/transcript-parser.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/import/transcript-parser.js +0 -0
- package/dist/executor/sdk-handlers/claude/index.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/index.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/index.js +0 -0
- package/dist/executor/sdk-handlers/claude/message-builder.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/message-builder.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/message-builder.js +0 -0
- package/dist/executor/sdk-handlers/claude/message-processor.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/message-processor.js +0 -0
- package/dist/executor/sdk-handlers/claude/models.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/models.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/models.js +0 -0
- package/dist/executor/sdk-handlers/claude/normalizer.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/normalizer.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/normalizer.js +0 -0
- package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.js +0 -0
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/prompt-service.js +0 -0
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/query-builder.js +0 -0
- package/dist/executor/sdk-handlers/claude/safe-message-service.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/safe-message-service.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/safe-message-service.js +0 -0
- package/dist/executor/sdk-handlers/claude/session-context.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/session-context.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/session-context.js +0 -0
- package/dist/executor/sdk-handlers/claude/thinking-detector.d.ts +0 -0
- package/dist/executor/sdk-handlers/claude/thinking-detector.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/claude/thinking-detector.js +0 -0
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +0 -0
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/codex/codex-tool.js +0 -0
- package/dist/executor/sdk-handlers/codex/index.d.ts +0 -0
- package/dist/executor/sdk-handlers/codex/index.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/codex/index.js +0 -0
- package/dist/executor/sdk-handlers/codex/models.d.ts +0 -0
- package/dist/executor/sdk-handlers/codex/models.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/codex/models.js +0 -0
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts +0 -0
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/codex/normalizer.js +0 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +0 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.js +0 -0
- package/dist/executor/sdk-handlers/codex/usage.d.ts +0 -0
- package/dist/executor/sdk-handlers/codex/usage.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/codex/usage.js +0 -0
- package/dist/executor/sdk-handlers/gemini/conversation-converter.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/conversation-converter.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/conversation-converter.js +0 -0
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/gemini-tool.js +0 -0
- package/dist/executor/sdk-handlers/gemini/index.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/index.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/index.js +0 -0
- package/dist/executor/sdk-handlers/gemini/models.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/models.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/models.js +0 -0
- package/dist/executor/sdk-handlers/gemini/normalizer.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/normalizer.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/normalizer.js +0 -0
- package/dist/executor/sdk-handlers/gemini/permission-mapper.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/permission-mapper.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/permission-mapper.js +0 -0
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +0 -0
- package/dist/executor/sdk-handlers/gemini/usage.d.ts +0 -0
- package/dist/executor/sdk-handlers/gemini/usage.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/gemini/usage.js +0 -0
- package/dist/executor/sdk-handlers/models.d.ts +0 -0
- package/dist/executor/sdk-handlers/models.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/models.js +0 -0
- package/dist/executor/sdk-handlers/normalizer-factory.d.ts +0 -0
- package/dist/executor/sdk-handlers/normalizer-factory.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/normalizer-factory.js +0 -0
- package/dist/executor/sdk-handlers/opencode/index.d.ts +0 -0
- package/dist/executor/sdk-handlers/opencode/index.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/opencode/index.js +0 -0
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +0 -0
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +0 -0
- package/dist/executor/sdk-handlers/opencode/opencode-tool.js +0 -0
- package/dist/executor/services/feathers-client.d.ts +0 -0
- package/dist/executor/services/feathers-client.d.ts.map +0 -0
- package/dist/executor/services/feathers-client.js +0 -0
- package/dist/executor/types/sdk-response.d.ts +0 -0
- package/dist/executor/types/sdk-response.d.ts.map +0 -0
- package/dist/executor/types/sdk-response.js +0 -0
- package/dist/executor/types/token-usage.d.ts +0 -0
- package/dist/executor/types/token-usage.d.ts.map +0 -0
- package/dist/executor/types/token-usage.js +0 -0
- package/dist/executor/types.d.ts +0 -0
- package/dist/executor/types.d.ts.map +0 -0
- package/dist/executor/types.js +0 -0
- package/dist/ui/assets/{_basePickBy-a0JoJgXO.js → _basePickBy-DM-YlwQP.js} +1 -1
- package/dist/ui/assets/_basePickBy-DM-YlwQP.js.gz +0 -0
- package/dist/ui/assets/{_baseUniq-IFulW561.js → _baseUniq-w9wJK0j5.js} +1 -1
- package/dist/ui/assets/_baseUniq-w9wJK0j5.js.gz +0 -0
- package/dist/ui/assets/{arc-Dj6SyPh6.js → arc-CVXkw1SJ.js} +1 -1
- package/dist/ui/assets/arc-CVXkw1SJ.js.gz +0 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-CjXOzrje.js → architectureDiagram-VXUJARFQ-CevjfWlW.js} +1 -1
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-CjXOzrje.js.gz → architectureDiagram-VXUJARFQ-CevjfWlW.js.gz} +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-IFpdwkfg.js → blockDiagram-VD42YOAC-b9JU-Vzx.js} +1 -1
- package/dist/ui/assets/{blockDiagram-VD42YOAC-IFpdwkfg.js.gz → blockDiagram-VD42YOAC-b9JU-Vzx.js.gz} +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-qL4Ujfnz.js → c4Diagram-YG6GDRKO-j7VSccDF.js} +1 -1
- package/dist/ui/assets/c4Diagram-YG6GDRKO-j7VSccDF.js.gz +0 -0
- package/dist/ui/assets/channel-BNIBtjaQ.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-CH6tu0mB.js → chunk-4BX2VUAB-D_codqcR.js} +1 -1
- package/dist/ui/assets/{chunk-55IACEB6-DDAZjWTD.js → chunk-55IACEB6-nQq1kviw.js} +1 -1
- package/dist/ui/assets/{chunk-B4BG7PRW-BDSu72O0.js → chunk-B4BG7PRW-DlVxaJL9.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-DlVxaJL9.js.gz +0 -0
- package/dist/ui/assets/{chunk-DI55MBZ5-C7merGRo.js → chunk-DI55MBZ5-Dw95m49m.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-Dw95m49m.js.gz +0 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-DX20G6ZX.js → chunk-FMBD7UC4-Bnk79OV8.js} +1 -1
- package/dist/ui/assets/{chunk-QN33PNHL-BvT3a5aI.js → chunk-QN33PNHL-sqjI-sXo.js} +1 -1
- package/dist/ui/assets/{chunk-QZHKN3VN-oo-Lxdo7.js → chunk-QZHKN3VN-T7CEGHh9.js} +1 -1
- package/dist/ui/assets/{chunk-TZMSLE5B-BV4XHxKb.js → chunk-TZMSLE5B-ok9YQuUI.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-ok9YQuUI.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-DeHTLUto.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-DeHTLUto.js +1 -0
- package/dist/ui/assets/clone-BObtDhw7.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-BA6VY55u.js → cose-bilkent-S5V4N54A-BtanJFqC.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-BtanJFqC.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DiuqdLez.js → dagre-6UL2VRFP-CIJlfoaz.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-CIJlfoaz.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-DU4u6xZN.js → diagram-PSM6KHXK-DhKlHuZN.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-DhKlHuZN.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-CltgMeel.js → diagram-QEK2KX5R-BbwaTbd7.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BbwaTbd7.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-SkvAVcTN.js → diagram-S2PKOQOG-Dx1rRlHZ.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-Dx1rRlHZ.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-DJTHxEdE.js → erDiagram-Q2GNP2WA-w60Up3Mg.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-w60Up3Mg.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-BwrFtsSc.js → flowDiagram-NV44I4VS-yvyTqNEi.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-yvyTqNEi.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-BnGmdiBB.js → ganttDiagram-LVOFAZNH-NBBWMpCB.js} +1 -1
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-NBBWMpCB.js.gz +0 -0
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-V6mHZ2jy.js → gitGraphDiagram-NY62KEGX-Dc0qrZJi.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Dc0qrZJi.js.gz +0 -0
- package/dist/ui/assets/{graph-3Ks94Pqc.js → graph-RIZM2qth.js} +1 -1
- package/dist/ui/assets/graph-RIZM2qth.js.gz +0 -0
- package/dist/ui/assets/{index-Dl_jng3-.js → index-BcHc8U_m.js} +240 -240
- package/dist/ui/assets/index-BcHc8U_m.js.gz +0 -0
- package/dist/ui/assets/index-BjxbtAmt.css +1 -0
- package/dist/ui/assets/index-BjxbtAmt.css.gz +0 -0
- package/dist/ui/assets/{infoDiagram-ER5ION4S-DUuNVOek.js → infoDiagram-ER5ION4S-Co1qQ3-G.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-D-N__rLx.js → journeyDiagram-XKPGCS4Q-QaBi_wAx.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-QaBi_wAx.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DsPDRbRp.js → kanban-definition-3W4ZIXB7-B3k5rpP3.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-B3k5rpP3.js.gz +0 -0
- package/dist/ui/assets/{layout-TuyQIiWI.js → layout-YqNNovOM.js} +1 -1
- package/dist/ui/assets/layout-YqNNovOM.js.gz +0 -0
- package/dist/ui/assets/{linear-CQUCx9aD.js → linear-DpjTIW7z.js} +1 -1
- package/dist/ui/assets/linear-DpjTIW7z.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-HQwFIIbn.js → mermaid.core-D-fYaKXC.js} +5 -5
- package/dist/ui/assets/mermaid.core-D-fYaKXC.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-DlR4HpYx.js → mindmap-definition-VGOIOE7T-CddQalgD.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-CddQalgD.js.gz +0 -0
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-OfCYTJ7S.js → pieDiagram-ADFJNKIX-BCPzhaBq.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BCPzhaBq.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B--irB7LvR.js → quadrantDiagram-AYHSOK5B-DrdJW-2E.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DrdJW-2E.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-iPensRLV.js → requirementDiagram-UZGBJVZJ-dV0cdx6D.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-dV0cdx6D.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-BSidESLx.js → sankeyDiagram-TZEHDZUN-SLmqiy7a.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-SLmqiy7a.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-BUE46svP.js → sequenceDiagram-WL72ISMW-CyH5EbRm.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CyH5EbRm.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BJ2azfLs.js → stateDiagram-FKZM4ZOC-DbtBIYM6.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-DbtBIYM6.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DOAHUeXQ.js +1 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-YfwKc8ip.js → timeline-definition-IT6M3QCI-CzdpjKni.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CzdpjKni.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-DMpxEEn1.js → treemap-KMMF4GRG-D_MXp3HZ.js} +1 -1
- package/dist/ui/assets/treemap-KMMF4GRG-D_MXp3HZ.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-Bn_I2TeN.js → xychartDiagram-PRI3JC2R-BMwyKz4M.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BMwyKz4M.js.gz +0 -0
- package/dist/ui/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/_basePickBy-a0JoJgXO.js.gz +0 -0
- package/dist/ui/assets/_baseUniq-IFulW561.js.gz +0 -0
- package/dist/ui/assets/arc-Dj6SyPh6.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-qL4Ujfnz.js.gz +0 -0
- package/dist/ui/assets/channel-4SJF66Rh.js +0 -1
- package/dist/ui/assets/chunk-B4BG7PRW-BDSu72O0.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-C7merGRo.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-BV4XHxKb.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BLjqJ_M9.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BLjqJ_M9.js +0 -1
- package/dist/ui/assets/clone-DjR0SEZ0.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-BA6VY55u.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-DiuqdLez.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DU4u6xZN.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-CltgMeel.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-SkvAVcTN.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-DJTHxEdE.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-BwrFtsSc.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-BnGmdiBB.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-V6mHZ2jy.js.gz +0 -0
- package/dist/ui/assets/graph-3Ks94Pqc.js.gz +0 -0
- package/dist/ui/assets/index-CoHRmHKF.css +0 -1
- package/dist/ui/assets/index-CoHRmHKF.css.gz +0 -0
- package/dist/ui/assets/index-Dl_jng3-.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-D-N__rLx.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-DsPDRbRp.js.gz +0 -0
- package/dist/ui/assets/layout-TuyQIiWI.js.gz +0 -0
- package/dist/ui/assets/linear-CQUCx9aD.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-HQwFIIbn.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-DlR4HpYx.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-OfCYTJ7S.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B--irB7LvR.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-iPensRLV.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-BSidESLx.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-BUE46svP.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BJ2azfLs.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-B9Lx1w-S.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-YfwKc8ip.js.gz +0 -0
- package/dist/ui/assets/treemap-KMMF4GRG-DMpxEEn1.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-Bn_I2TeN.js.gz +0 -0
package/dist/core/mcp/index.cjs
CHANGED
|
@@ -58,11 +58,13 @@ __export(schema_postgres_exports, {
|
|
|
58
58
|
repos: () => repos,
|
|
59
59
|
sessionMcpServers: () => sessionMcpServers,
|
|
60
60
|
sessions: () => sessions,
|
|
61
|
+
sessionsRelations: () => sessionsRelations,
|
|
61
62
|
tasks: () => tasks,
|
|
62
63
|
threadSessionMap: () => threadSessionMap,
|
|
63
64
|
users: () => users,
|
|
64
65
|
worktreeOwners: () => worktreeOwners,
|
|
65
|
-
worktrees: () => worktrees
|
|
66
|
+
worktrees: () => worktrees,
|
|
67
|
+
worktreesRelations: () => worktreesRelations
|
|
66
68
|
});
|
|
67
69
|
var import_drizzle_orm2 = require("drizzle-orm");
|
|
68
70
|
var import_pg_core = require("drizzle-orm/pg-core");
|
|
@@ -548,6 +550,15 @@ var threadSessionMap = (0, import_pg_core.pgTable)(
|
|
|
548
550
|
channelStatusIdx: (0, import_pg_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
549
551
|
})
|
|
550
552
|
);
|
|
553
|
+
var sessionsRelations = (0, import_drizzle_orm2.relations)(sessions, ({ one }) => ({
|
|
554
|
+
worktree: one(worktrees, {
|
|
555
|
+
fields: [sessions.worktree_id],
|
|
556
|
+
references: [worktrees.worktree_id]
|
|
557
|
+
})
|
|
558
|
+
}));
|
|
559
|
+
var worktreesRelations = (0, import_drizzle_orm2.relations)(worktrees, ({ many }) => ({
|
|
560
|
+
sessions: many(sessions)
|
|
561
|
+
}));
|
|
551
562
|
|
|
552
563
|
// src/db/schema.sqlite.ts
|
|
553
564
|
var schema_sqlite_exports = {};
|
|
@@ -561,11 +572,13 @@ __export(schema_sqlite_exports, {
|
|
|
561
572
|
repos: () => repos2,
|
|
562
573
|
sessionMcpServers: () => sessionMcpServers2,
|
|
563
574
|
sessions: () => sessions2,
|
|
575
|
+
sessionsRelations: () => sessionsRelations2,
|
|
564
576
|
tasks: () => tasks2,
|
|
565
577
|
threadSessionMap: () => threadSessionMap2,
|
|
566
578
|
users: () => users2,
|
|
567
579
|
worktreeOwners: () => worktreeOwners2,
|
|
568
|
-
worktrees: () => worktrees2
|
|
580
|
+
worktrees: () => worktrees2,
|
|
581
|
+
worktreesRelations: () => worktreesRelations2
|
|
569
582
|
});
|
|
570
583
|
var import_drizzle_orm3 = require("drizzle-orm");
|
|
571
584
|
var import_sqlite_core = require("drizzle-orm/sqlite-core");
|
|
@@ -1052,6 +1065,15 @@ var threadSessionMap2 = (0, import_sqlite_core.sqliteTable)(
|
|
|
1052
1065
|
channelStatusIdx: (0, import_sqlite_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1053
1066
|
})
|
|
1054
1067
|
);
|
|
1068
|
+
var sessionsRelations2 = (0, import_drizzle_orm3.relations)(sessions2, ({ one }) => ({
|
|
1069
|
+
worktree: one(worktrees2, {
|
|
1070
|
+
fields: [sessions2.worktree_id],
|
|
1071
|
+
references: [worktrees2.worktree_id]
|
|
1072
|
+
})
|
|
1073
|
+
}));
|
|
1074
|
+
var worktreesRelations2 = (0, import_drizzle_orm3.relations)(worktrees2, ({ many }) => ({
|
|
1075
|
+
sessions: many(sessions2)
|
|
1076
|
+
}));
|
|
1055
1077
|
|
|
1056
1078
|
// src/db/schema-factory.ts
|
|
1057
1079
|
function detectDialectFromUrl(url) {
|
package/dist/core/mcp/index.js
CHANGED
|
@@ -25,13 +25,15 @@ __export(schema_postgres_exports, {
|
|
|
25
25
|
repos: () => repos,
|
|
26
26
|
sessionMcpServers: () => sessionMcpServers,
|
|
27
27
|
sessions: () => sessions,
|
|
28
|
+
sessionsRelations: () => sessionsRelations,
|
|
28
29
|
tasks: () => tasks,
|
|
29
30
|
threadSessionMap: () => threadSessionMap,
|
|
30
31
|
users: () => users,
|
|
31
32
|
worktreeOwners: () => worktreeOwners,
|
|
32
|
-
worktrees: () => worktrees
|
|
33
|
+
worktrees: () => worktrees,
|
|
34
|
+
worktreesRelations: () => worktreesRelations
|
|
33
35
|
});
|
|
34
|
-
import { sql as sql2 } from "drizzle-orm";
|
|
36
|
+
import { relations, sql as sql2 } from "drizzle-orm";
|
|
35
37
|
import {
|
|
36
38
|
bigint,
|
|
37
39
|
boolean,
|
|
@@ -527,6 +529,15 @@ var threadSessionMap = pgTable(
|
|
|
527
529
|
channelStatusIdx: index("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
528
530
|
})
|
|
529
531
|
);
|
|
532
|
+
var sessionsRelations = relations(sessions, ({ one }) => ({
|
|
533
|
+
worktree: one(worktrees, {
|
|
534
|
+
fields: [sessions.worktree_id],
|
|
535
|
+
references: [worktrees.worktree_id]
|
|
536
|
+
})
|
|
537
|
+
}));
|
|
538
|
+
var worktreesRelations = relations(worktrees, ({ many }) => ({
|
|
539
|
+
sessions: many(sessions)
|
|
540
|
+
}));
|
|
530
541
|
|
|
531
542
|
// src/db/schema.sqlite.ts
|
|
532
543
|
var schema_sqlite_exports = {};
|
|
@@ -540,13 +551,15 @@ __export(schema_sqlite_exports, {
|
|
|
540
551
|
repos: () => repos2,
|
|
541
552
|
sessionMcpServers: () => sessionMcpServers2,
|
|
542
553
|
sessions: () => sessions2,
|
|
554
|
+
sessionsRelations: () => sessionsRelations2,
|
|
543
555
|
tasks: () => tasks2,
|
|
544
556
|
threadSessionMap: () => threadSessionMap2,
|
|
545
557
|
users: () => users2,
|
|
546
558
|
worktreeOwners: () => worktreeOwners2,
|
|
547
|
-
worktrees: () => worktrees2
|
|
559
|
+
worktrees: () => worktrees2,
|
|
560
|
+
worktreesRelations: () => worktreesRelations2
|
|
548
561
|
});
|
|
549
|
-
import { sql as sql3 } from "drizzle-orm";
|
|
562
|
+
import { relations as relations2, sql as sql3 } from "drizzle-orm";
|
|
550
563
|
import {
|
|
551
564
|
index as index2,
|
|
552
565
|
integer as integer2,
|
|
@@ -1038,6 +1051,15 @@ var threadSessionMap2 = sqliteTable(
|
|
|
1038
1051
|
channelStatusIdx: index2("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1039
1052
|
})
|
|
1040
1053
|
);
|
|
1054
|
+
var sessionsRelations2 = relations2(sessions2, ({ one }) => ({
|
|
1055
|
+
worktree: one(worktrees2, {
|
|
1056
|
+
fields: [sessions2.worktree_id],
|
|
1057
|
+
references: [worktrees2.worktree_id]
|
|
1058
|
+
})
|
|
1059
|
+
}));
|
|
1060
|
+
var worktreesRelations2 = relations2(worktrees2, ({ many }) => ({
|
|
1061
|
+
sessions: many(sessions2)
|
|
1062
|
+
}));
|
|
1041
1063
|
|
|
1042
1064
|
// src/db/schema-factory.ts
|
|
1043
1065
|
function detectDialectFromUrl(url) {
|
package/dist/core/seed/index.cjs
CHANGED
|
@@ -62,6 +62,7 @@ __export(config_manager_exports, {
|
|
|
62
62
|
ensureCodexHome: () => ensureCodexHome,
|
|
63
63
|
expandHomePath: () => expandHomePath,
|
|
64
64
|
getAgorHome: () => getAgorHome,
|
|
65
|
+
getBaseUrl: () => getBaseUrl,
|
|
65
66
|
getConfigPath: () => getConfigPath,
|
|
66
67
|
getConfigValue: () => getConfigValue,
|
|
67
68
|
getCredential: () => getCredential,
|
|
@@ -279,6 +280,32 @@ async function getDaemonUrl() {
|
|
|
279
280
|
const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
|
|
280
281
|
return `http://${host}:${port}`;
|
|
281
282
|
}
|
|
283
|
+
function validateBaseUrl(url) {
|
|
284
|
+
const trimmed = url.trim().replace(/\/$/, "");
|
|
285
|
+
if (!trimmed.startsWith("http://") && !trimmed.startsWith("https://")) {
|
|
286
|
+
throw new Error(`Invalid base URL: "${url}". Must start with http:// or https://`);
|
|
287
|
+
}
|
|
288
|
+
try {
|
|
289
|
+
new URL(trimmed);
|
|
290
|
+
} catch {
|
|
291
|
+
throw new Error(`Invalid base URL format: "${url}". Must be a valid HTTP(S) URL.`);
|
|
292
|
+
}
|
|
293
|
+
return trimmed;
|
|
294
|
+
}
|
|
295
|
+
async function getBaseUrl() {
|
|
296
|
+
if (process.env.AGOR_BASE_URL) {
|
|
297
|
+
return validateBaseUrl(process.env.AGOR_BASE_URL);
|
|
298
|
+
}
|
|
299
|
+
const config = await loadConfig();
|
|
300
|
+
if (config.daemon?.base_url) {
|
|
301
|
+
return validateBaseUrl(config.daemon.base_url);
|
|
302
|
+
}
|
|
303
|
+
const defaults = getDefaultConfig();
|
|
304
|
+
const envPort = process.env.PORT ? Number.parseInt(process.env.PORT, 10) : void 0;
|
|
305
|
+
const port = envPort || config.daemon?.port || defaults.daemon?.port || DAEMON.DEFAULT_PORT;
|
|
306
|
+
const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
|
|
307
|
+
return `http://${host}:${port}`;
|
|
308
|
+
}
|
|
282
309
|
function loadConfigSync() {
|
|
283
310
|
const configPath = getConfigPath();
|
|
284
311
|
try {
|
|
@@ -627,13 +654,15 @@ __export(schema_postgres_exports, {
|
|
|
627
654
|
repos: () => repos,
|
|
628
655
|
sessionMcpServers: () => sessionMcpServers,
|
|
629
656
|
sessions: () => sessions,
|
|
657
|
+
sessionsRelations: () => sessionsRelations,
|
|
630
658
|
tasks: () => tasks,
|
|
631
659
|
threadSessionMap: () => threadSessionMap,
|
|
632
660
|
users: () => users,
|
|
633
661
|
worktreeOwners: () => worktreeOwners,
|
|
634
|
-
worktrees: () => worktrees
|
|
662
|
+
worktrees: () => worktrees,
|
|
663
|
+
worktreesRelations: () => worktreesRelations
|
|
635
664
|
});
|
|
636
|
-
var import_drizzle_orm2, import_pg_core, t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap;
|
|
665
|
+
var import_drizzle_orm2, import_pg_core, t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap, sessionsRelations, worktreesRelations;
|
|
637
666
|
var init_schema_postgres = __esm({
|
|
638
667
|
"src/db/schema.postgres.ts"() {
|
|
639
668
|
"use strict";
|
|
@@ -1122,6 +1151,15 @@ var init_schema_postgres = __esm({
|
|
|
1122
1151
|
channelStatusIdx: (0, import_pg_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1123
1152
|
})
|
|
1124
1153
|
);
|
|
1154
|
+
sessionsRelations = (0, import_drizzle_orm2.relations)(sessions, ({ one }) => ({
|
|
1155
|
+
worktree: one(worktrees, {
|
|
1156
|
+
fields: [sessions.worktree_id],
|
|
1157
|
+
references: [worktrees.worktree_id]
|
|
1158
|
+
})
|
|
1159
|
+
}));
|
|
1160
|
+
worktreesRelations = (0, import_drizzle_orm2.relations)(worktrees, ({ many }) => ({
|
|
1161
|
+
sessions: many(sessions)
|
|
1162
|
+
}));
|
|
1125
1163
|
}
|
|
1126
1164
|
});
|
|
1127
1165
|
|
|
@@ -1137,13 +1175,15 @@ __export(schema_sqlite_exports, {
|
|
|
1137
1175
|
repos: () => repos2,
|
|
1138
1176
|
sessionMcpServers: () => sessionMcpServers2,
|
|
1139
1177
|
sessions: () => sessions2,
|
|
1178
|
+
sessionsRelations: () => sessionsRelations2,
|
|
1140
1179
|
tasks: () => tasks2,
|
|
1141
1180
|
threadSessionMap: () => threadSessionMap2,
|
|
1142
1181
|
users: () => users2,
|
|
1143
1182
|
worktreeOwners: () => worktreeOwners2,
|
|
1144
|
-
worktrees: () => worktrees2
|
|
1183
|
+
worktrees: () => worktrees2,
|
|
1184
|
+
worktreesRelations: () => worktreesRelations2
|
|
1145
1185
|
});
|
|
1146
|
-
var import_drizzle_orm3, import_sqlite_core, t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2;
|
|
1186
|
+
var import_drizzle_orm3, import_sqlite_core, t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2, sessionsRelations2, worktreesRelations2;
|
|
1147
1187
|
var init_schema_sqlite = __esm({
|
|
1148
1188
|
"src/db/schema.sqlite.ts"() {
|
|
1149
1189
|
"use strict";
|
|
@@ -1633,6 +1673,15 @@ var init_schema_sqlite = __esm({
|
|
|
1633
1673
|
channelStatusIdx: (0, import_sqlite_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1634
1674
|
})
|
|
1635
1675
|
);
|
|
1676
|
+
sessionsRelations2 = (0, import_drizzle_orm3.relations)(sessions2, ({ one }) => ({
|
|
1677
|
+
worktree: one(worktrees2, {
|
|
1678
|
+
fields: [sessions2.worktree_id],
|
|
1679
|
+
references: [worktrees2.worktree_id]
|
|
1680
|
+
})
|
|
1681
|
+
}));
|
|
1682
|
+
worktreesRelations2 = (0, import_drizzle_orm3.relations)(worktrees2, ({ many }) => ({
|
|
1683
|
+
sessions: many(sessions2)
|
|
1684
|
+
}));
|
|
1636
1685
|
}
|
|
1637
1686
|
});
|
|
1638
1687
|
|
|
@@ -2128,6 +2177,7 @@ var BoardObjectRepository = class {
|
|
|
2128
2177
|
init_cjs_shims();
|
|
2129
2178
|
var import_drizzle_orm6 = require("drizzle-orm");
|
|
2130
2179
|
var yaml2 = __toESM(require("js-yaml"), 1);
|
|
2180
|
+
init_config_manager();
|
|
2131
2181
|
init_ids();
|
|
2132
2182
|
|
|
2133
2183
|
// src/lib/slugs.ts
|
|
@@ -2136,6 +2186,14 @@ function generateSlug(name) {
|
|
|
2136
2186
|
return name.toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "").slice(0, 64);
|
|
2137
2187
|
}
|
|
2138
2188
|
|
|
2189
|
+
// src/utils/url.ts
|
|
2190
|
+
init_cjs_shims();
|
|
2191
|
+
init_ids();
|
|
2192
|
+
function getBoardUrl(boardId, boardSlug, baseUrl) {
|
|
2193
|
+
const boardParam = boardSlug || shortId(boardId);
|
|
2194
|
+
return `${baseUrl}/b/${boardParam}`;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2139
2197
|
// src/db/repositories/boards.ts
|
|
2140
2198
|
init_database_wrapper();
|
|
2141
2199
|
init_schema();
|
|
@@ -2145,16 +2203,23 @@ var BoardRepository = class {
|
|
|
2145
2203
|
}
|
|
2146
2204
|
/**
|
|
2147
2205
|
* Convert database row to Board type
|
|
2206
|
+
*
|
|
2207
|
+
* @param row - Database row
|
|
2208
|
+
* @param baseUrl - Base URL for generating board URLs
|
|
2148
2209
|
*/
|
|
2149
|
-
rowToBoard(row) {
|
|
2210
|
+
rowToBoard(row, baseUrl) {
|
|
2150
2211
|
const data = row.data;
|
|
2212
|
+
const boardId = row.board_id;
|
|
2213
|
+
const slug = row.slug !== null ? row.slug : void 0;
|
|
2214
|
+
const url = baseUrl ? getBoardUrl(boardId, slug, baseUrl) : "";
|
|
2151
2215
|
return {
|
|
2152
|
-
board_id:
|
|
2216
|
+
board_id: boardId,
|
|
2153
2217
|
name: row.name,
|
|
2154
|
-
slug
|
|
2218
|
+
slug,
|
|
2155
2219
|
created_at: new Date(row.created_at).toISOString(),
|
|
2156
2220
|
last_updated: row.updated_at ? new Date(row.updated_at).toISOString() : new Date(row.created_at).toISOString(),
|
|
2157
2221
|
created_by: row.created_by,
|
|
2222
|
+
url,
|
|
2158
2223
|
...data
|
|
2159
2224
|
};
|
|
2160
2225
|
}
|
|
@@ -2234,6 +2299,7 @@ var BoardRepository = class {
|
|
|
2234
2299
|
async create(data) {
|
|
2235
2300
|
try {
|
|
2236
2301
|
const boardId = data.board_id ?? generateId();
|
|
2302
|
+
const baseUrl = await getBaseUrl();
|
|
2237
2303
|
let finalSlug;
|
|
2238
2304
|
if (data.slug === null) {
|
|
2239
2305
|
finalSlug = void 0;
|
|
@@ -2256,7 +2322,7 @@ var BoardRepository = class {
|
|
|
2256
2322
|
if (!row) {
|
|
2257
2323
|
throw new RepositoryError("Failed to retrieve created board");
|
|
2258
2324
|
}
|
|
2259
|
-
return this.rowToBoard(row);
|
|
2325
|
+
return this.rowToBoard(row, baseUrl);
|
|
2260
2326
|
} catch (error) {
|
|
2261
2327
|
if (error instanceof RepositoryError) throw error;
|
|
2262
2328
|
throw new RepositoryError(
|
|
@@ -2271,8 +2337,9 @@ var BoardRepository = class {
|
|
|
2271
2337
|
async findById(id) {
|
|
2272
2338
|
try {
|
|
2273
2339
|
const fullId = await this.resolveId(id);
|
|
2340
|
+
const baseUrl = await getBaseUrl();
|
|
2274
2341
|
const row = await select(this.db).from(boards3).where((0, import_drizzle_orm6.eq)(boards3.board_id, fullId)).one();
|
|
2275
|
-
return row ? this.rowToBoard(row) : null;
|
|
2342
|
+
return row ? this.rowToBoard(row, baseUrl) : null;
|
|
2276
2343
|
} catch (error) {
|
|
2277
2344
|
if (error instanceof EntityNotFoundError) return null;
|
|
2278
2345
|
if (error instanceof AmbiguousIdError) throw error;
|
|
@@ -2287,8 +2354,9 @@ var BoardRepository = class {
|
|
|
2287
2354
|
*/
|
|
2288
2355
|
async findBySlug(slug) {
|
|
2289
2356
|
try {
|
|
2357
|
+
const baseUrl = await getBaseUrl();
|
|
2290
2358
|
const row = await select(this.db).from(boards3).where((0, import_drizzle_orm6.eq)(boards3.slug, slug)).one();
|
|
2291
|
-
return row ? this.rowToBoard(row) : null;
|
|
2359
|
+
return row ? this.rowToBoard(row, baseUrl) : null;
|
|
2292
2360
|
} catch (error) {
|
|
2293
2361
|
throw new RepositoryError(
|
|
2294
2362
|
`Failed to find board by slug: ${error instanceof Error ? error.message : String(error)}`,
|
|
@@ -2313,8 +2381,9 @@ var BoardRepository = class {
|
|
|
2313
2381
|
*/
|
|
2314
2382
|
async findAll() {
|
|
2315
2383
|
try {
|
|
2384
|
+
const baseUrl = await getBaseUrl();
|
|
2316
2385
|
const rows = await select(this.db).from(boards3).all();
|
|
2317
|
-
return rows.map((row) => this.rowToBoard(row));
|
|
2386
|
+
return rows.map((row) => this.rowToBoard(row, baseUrl));
|
|
2318
2387
|
} catch (error) {
|
|
2319
2388
|
throw new RepositoryError(
|
|
2320
2389
|
`Failed to find all boards: ${error instanceof Error ? error.message : String(error)}`,
|
|
@@ -3072,6 +3141,7 @@ init_cjs_shims();
|
|
|
3072
3141
|
|
|
3073
3142
|
// src/db/repositories/sessions.ts
|
|
3074
3143
|
var import_drizzle_orm11 = require("drizzle-orm");
|
|
3144
|
+
init_config_manager();
|
|
3075
3145
|
init_ids();
|
|
3076
3146
|
init_database_wrapper();
|
|
3077
3147
|
init_schema();
|
|
@@ -3864,7 +3934,7 @@ var WorktreeRepository = class {
|
|
|
3864
3934
|
fullText = messageData.content.filter((block) => block.type === "text" && block.text).map((block) => block.text).join("\n");
|
|
3865
3935
|
}
|
|
3866
3936
|
if (fullText.length > truncationLength) {
|
|
3867
|
-
fullText = fullText.substring(0, truncationLength)
|
|
3937
|
+
fullText = `${fullText.substring(0, truncationLength)}...`;
|
|
3868
3938
|
}
|
|
3869
3939
|
lastMessageBySession.set(sessionId, fullText);
|
|
3870
3940
|
}
|
|
@@ -3875,7 +3945,7 @@ var WorktreeRepository = class {
|
|
|
3875
3945
|
const sessionId = row.session_id;
|
|
3876
3946
|
let lastMessage = lastMessageBySession.get(sessionId) || "";
|
|
3877
3947
|
if (lastMessage.length > truncationLength) {
|
|
3878
|
-
lastMessage = lastMessage.substring(0, truncationLength)
|
|
3948
|
+
lastMessage = `${lastMessage.substring(0, truncationLength)}...truncated`;
|
|
3879
3949
|
}
|
|
3880
3950
|
const sessionData = row.data;
|
|
3881
3951
|
const messageCount = sessionData?.message_count ?? 0;
|
package/dist/core/seed/index.js
CHANGED
|
@@ -42,6 +42,7 @@ __export(config_manager_exports, {
|
|
|
42
42
|
ensureCodexHome: () => ensureCodexHome,
|
|
43
43
|
expandHomePath: () => expandHomePath,
|
|
44
44
|
getAgorHome: () => getAgorHome,
|
|
45
|
+
getBaseUrl: () => getBaseUrl,
|
|
45
46
|
getConfigPath: () => getConfigPath,
|
|
46
47
|
getConfigValue: () => getConfigValue,
|
|
47
48
|
getCredential: () => getCredential,
|
|
@@ -264,6 +265,32 @@ async function getDaemonUrl() {
|
|
|
264
265
|
const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
|
|
265
266
|
return `http://${host}:${port}`;
|
|
266
267
|
}
|
|
268
|
+
function validateBaseUrl(url) {
|
|
269
|
+
const trimmed = url.trim().replace(/\/$/, "");
|
|
270
|
+
if (!trimmed.startsWith("http://") && !trimmed.startsWith("https://")) {
|
|
271
|
+
throw new Error(`Invalid base URL: "${url}". Must start with http:// or https://`);
|
|
272
|
+
}
|
|
273
|
+
try {
|
|
274
|
+
new URL(trimmed);
|
|
275
|
+
} catch {
|
|
276
|
+
throw new Error(`Invalid base URL format: "${url}". Must be a valid HTTP(S) URL.`);
|
|
277
|
+
}
|
|
278
|
+
return trimmed;
|
|
279
|
+
}
|
|
280
|
+
async function getBaseUrl() {
|
|
281
|
+
if (process.env.AGOR_BASE_URL) {
|
|
282
|
+
return validateBaseUrl(process.env.AGOR_BASE_URL);
|
|
283
|
+
}
|
|
284
|
+
const config = await loadConfig();
|
|
285
|
+
if (config.daemon?.base_url) {
|
|
286
|
+
return validateBaseUrl(config.daemon.base_url);
|
|
287
|
+
}
|
|
288
|
+
const defaults = getDefaultConfig();
|
|
289
|
+
const envPort = process.env.PORT ? Number.parseInt(process.env.PORT, 10) : void 0;
|
|
290
|
+
const port = envPort || config.daemon?.port || defaults.daemon?.port || DAEMON.DEFAULT_PORT;
|
|
291
|
+
const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
|
|
292
|
+
return `http://${host}:${port}`;
|
|
293
|
+
}
|
|
267
294
|
function loadConfigSync() {
|
|
268
295
|
const configPath = getConfigPath();
|
|
269
296
|
try {
|
|
@@ -604,13 +631,15 @@ __export(schema_postgres_exports, {
|
|
|
604
631
|
repos: () => repos,
|
|
605
632
|
sessionMcpServers: () => sessionMcpServers,
|
|
606
633
|
sessions: () => sessions,
|
|
634
|
+
sessionsRelations: () => sessionsRelations,
|
|
607
635
|
tasks: () => tasks,
|
|
608
636
|
threadSessionMap: () => threadSessionMap,
|
|
609
637
|
users: () => users,
|
|
610
638
|
worktreeOwners: () => worktreeOwners,
|
|
611
|
-
worktrees: () => worktrees
|
|
639
|
+
worktrees: () => worktrees,
|
|
640
|
+
worktreesRelations: () => worktreesRelations
|
|
612
641
|
});
|
|
613
|
-
import { sql as sql2 } from "drizzle-orm";
|
|
642
|
+
import { relations, sql as sql2 } from "drizzle-orm";
|
|
614
643
|
import {
|
|
615
644
|
bigint,
|
|
616
645
|
boolean,
|
|
@@ -624,7 +653,7 @@ import {
|
|
|
624
653
|
uniqueIndex,
|
|
625
654
|
varchar
|
|
626
655
|
} from "drizzle-orm/pg-core";
|
|
627
|
-
var t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap;
|
|
656
|
+
var t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap, sessionsRelations, worktreesRelations;
|
|
628
657
|
var init_schema_postgres = __esm({
|
|
629
658
|
"src/db/schema.postgres.ts"() {
|
|
630
659
|
"use strict";
|
|
@@ -1111,6 +1140,15 @@ var init_schema_postgres = __esm({
|
|
|
1111
1140
|
channelStatusIdx: index("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1112
1141
|
})
|
|
1113
1142
|
);
|
|
1143
|
+
sessionsRelations = relations(sessions, ({ one }) => ({
|
|
1144
|
+
worktree: one(worktrees, {
|
|
1145
|
+
fields: [sessions.worktree_id],
|
|
1146
|
+
references: [worktrees.worktree_id]
|
|
1147
|
+
})
|
|
1148
|
+
}));
|
|
1149
|
+
worktreesRelations = relations(worktrees, ({ many }) => ({
|
|
1150
|
+
sessions: many(sessions)
|
|
1151
|
+
}));
|
|
1114
1152
|
}
|
|
1115
1153
|
});
|
|
1116
1154
|
|
|
@@ -1126,13 +1164,15 @@ __export(schema_sqlite_exports, {
|
|
|
1126
1164
|
repos: () => repos2,
|
|
1127
1165
|
sessionMcpServers: () => sessionMcpServers2,
|
|
1128
1166
|
sessions: () => sessions2,
|
|
1167
|
+
sessionsRelations: () => sessionsRelations2,
|
|
1129
1168
|
tasks: () => tasks2,
|
|
1130
1169
|
threadSessionMap: () => threadSessionMap2,
|
|
1131
1170
|
users: () => users2,
|
|
1132
1171
|
worktreeOwners: () => worktreeOwners2,
|
|
1133
|
-
worktrees: () => worktrees2
|
|
1172
|
+
worktrees: () => worktrees2,
|
|
1173
|
+
worktreesRelations: () => worktreesRelations2
|
|
1134
1174
|
});
|
|
1135
|
-
import { sql as sql3 } from "drizzle-orm";
|
|
1175
|
+
import { relations as relations2, sql as sql3 } from "drizzle-orm";
|
|
1136
1176
|
import {
|
|
1137
1177
|
index as index2,
|
|
1138
1178
|
integer as integer2,
|
|
@@ -1141,7 +1181,7 @@ import {
|
|
|
1141
1181
|
text as text2,
|
|
1142
1182
|
uniqueIndex as uniqueIndex2
|
|
1143
1183
|
} from "drizzle-orm/sqlite-core";
|
|
1144
|
-
var t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2;
|
|
1184
|
+
var t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2, sessionsRelations2, worktreesRelations2;
|
|
1145
1185
|
var init_schema_sqlite = __esm({
|
|
1146
1186
|
"src/db/schema.sqlite.ts"() {
|
|
1147
1187
|
"use strict";
|
|
@@ -1629,6 +1669,15 @@ var init_schema_sqlite = __esm({
|
|
|
1629
1669
|
channelStatusIdx: index2("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1630
1670
|
})
|
|
1631
1671
|
);
|
|
1672
|
+
sessionsRelations2 = relations2(sessions2, ({ one }) => ({
|
|
1673
|
+
worktree: one(worktrees2, {
|
|
1674
|
+
fields: [sessions2.worktree_id],
|
|
1675
|
+
references: [worktrees2.worktree_id]
|
|
1676
|
+
})
|
|
1677
|
+
}));
|
|
1678
|
+
worktreesRelations2 = relations2(worktrees2, ({ many }) => ({
|
|
1679
|
+
sessions: many(sessions2)
|
|
1680
|
+
}));
|
|
1632
1681
|
}
|
|
1633
1682
|
});
|
|
1634
1683
|
|
|
@@ -2115,6 +2164,7 @@ var BoardObjectRepository = class {
|
|
|
2115
2164
|
|
|
2116
2165
|
// src/db/repositories/boards.ts
|
|
2117
2166
|
init_esm_shims();
|
|
2167
|
+
init_config_manager();
|
|
2118
2168
|
init_ids();
|
|
2119
2169
|
import { and as and2, eq as eq3, like as like2, ne } from "drizzle-orm";
|
|
2120
2170
|
import * as yaml2 from "js-yaml";
|
|
@@ -2125,6 +2175,14 @@ function generateSlug(name) {
|
|
|
2125
2175
|
return name.toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "").slice(0, 64);
|
|
2126
2176
|
}
|
|
2127
2177
|
|
|
2178
|
+
// src/utils/url.ts
|
|
2179
|
+
init_esm_shims();
|
|
2180
|
+
init_ids();
|
|
2181
|
+
function getBoardUrl(boardId, boardSlug, baseUrl) {
|
|
2182
|
+
const boardParam = boardSlug || shortId(boardId);
|
|
2183
|
+
return `${baseUrl}/b/${boardParam}`;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2128
2186
|
// src/db/repositories/boards.ts
|
|
2129
2187
|
init_database_wrapper();
|
|
2130
2188
|
init_schema();
|
|
@@ -2134,16 +2192,23 @@ var BoardRepository = class {
|
|
|
2134
2192
|
}
|
|
2135
2193
|
/**
|
|
2136
2194
|
* Convert database row to Board type
|
|
2195
|
+
*
|
|
2196
|
+
* @param row - Database row
|
|
2197
|
+
* @param baseUrl - Base URL for generating board URLs
|
|
2137
2198
|
*/
|
|
2138
|
-
rowToBoard(row) {
|
|
2199
|
+
rowToBoard(row, baseUrl) {
|
|
2139
2200
|
const data = row.data;
|
|
2201
|
+
const boardId = row.board_id;
|
|
2202
|
+
const slug = row.slug !== null ? row.slug : void 0;
|
|
2203
|
+
const url = baseUrl ? getBoardUrl(boardId, slug, baseUrl) : "";
|
|
2140
2204
|
return {
|
|
2141
|
-
board_id:
|
|
2205
|
+
board_id: boardId,
|
|
2142
2206
|
name: row.name,
|
|
2143
|
-
slug
|
|
2207
|
+
slug,
|
|
2144
2208
|
created_at: new Date(row.created_at).toISOString(),
|
|
2145
2209
|
last_updated: row.updated_at ? new Date(row.updated_at).toISOString() : new Date(row.created_at).toISOString(),
|
|
2146
2210
|
created_by: row.created_by,
|
|
2211
|
+
url,
|
|
2147
2212
|
...data
|
|
2148
2213
|
};
|
|
2149
2214
|
}
|
|
@@ -2223,6 +2288,7 @@ var BoardRepository = class {
|
|
|
2223
2288
|
async create(data) {
|
|
2224
2289
|
try {
|
|
2225
2290
|
const boardId = data.board_id ?? generateId();
|
|
2291
|
+
const baseUrl = await getBaseUrl();
|
|
2226
2292
|
let finalSlug;
|
|
2227
2293
|
if (data.slug === null) {
|
|
2228
2294
|
finalSlug = void 0;
|
|
@@ -2245,7 +2311,7 @@ var BoardRepository = class {
|
|
|
2245
2311
|
if (!row) {
|
|
2246
2312
|
throw new RepositoryError("Failed to retrieve created board");
|
|
2247
2313
|
}
|
|
2248
|
-
return this.rowToBoard(row);
|
|
2314
|
+
return this.rowToBoard(row, baseUrl);
|
|
2249
2315
|
} catch (error) {
|
|
2250
2316
|
if (error instanceof RepositoryError) throw error;
|
|
2251
2317
|
throw new RepositoryError(
|
|
@@ -2260,8 +2326,9 @@ var BoardRepository = class {
|
|
|
2260
2326
|
async findById(id) {
|
|
2261
2327
|
try {
|
|
2262
2328
|
const fullId = await this.resolveId(id);
|
|
2329
|
+
const baseUrl = await getBaseUrl();
|
|
2263
2330
|
const row = await select(this.db).from(boards3).where(eq3(boards3.board_id, fullId)).one();
|
|
2264
|
-
return row ? this.rowToBoard(row) : null;
|
|
2331
|
+
return row ? this.rowToBoard(row, baseUrl) : null;
|
|
2265
2332
|
} catch (error) {
|
|
2266
2333
|
if (error instanceof EntityNotFoundError) return null;
|
|
2267
2334
|
if (error instanceof AmbiguousIdError) throw error;
|
|
@@ -2276,8 +2343,9 @@ var BoardRepository = class {
|
|
|
2276
2343
|
*/
|
|
2277
2344
|
async findBySlug(slug) {
|
|
2278
2345
|
try {
|
|
2346
|
+
const baseUrl = await getBaseUrl();
|
|
2279
2347
|
const row = await select(this.db).from(boards3).where(eq3(boards3.slug, slug)).one();
|
|
2280
|
-
return row ? this.rowToBoard(row) : null;
|
|
2348
|
+
return row ? this.rowToBoard(row, baseUrl) : null;
|
|
2281
2349
|
} catch (error) {
|
|
2282
2350
|
throw new RepositoryError(
|
|
2283
2351
|
`Failed to find board by slug: ${error instanceof Error ? error.message : String(error)}`,
|
|
@@ -2302,8 +2370,9 @@ var BoardRepository = class {
|
|
|
2302
2370
|
*/
|
|
2303
2371
|
async findAll() {
|
|
2304
2372
|
try {
|
|
2373
|
+
const baseUrl = await getBaseUrl();
|
|
2305
2374
|
const rows = await select(this.db).from(boards3).all();
|
|
2306
|
-
return rows.map((row) => this.rowToBoard(row));
|
|
2375
|
+
return rows.map((row) => this.rowToBoard(row, baseUrl));
|
|
2307
2376
|
} catch (error) {
|
|
2308
2377
|
throw new RepositoryError(
|
|
2309
2378
|
`Failed to find all boards: ${error instanceof Error ? error.message : String(error)}`,
|
|
@@ -3060,21 +3129,11 @@ init_esm_shims();
|
|
|
3060
3129
|
init_esm_shims();
|
|
3061
3130
|
|
|
3062
3131
|
// src/db/repositories/sessions.ts
|
|
3132
|
+
init_config_manager();
|
|
3063
3133
|
init_ids();
|
|
3134
|
+
import { and as and4, desc, eq as eq8, inArray, isNotNull, isNull as isNull2, like as like6, or, sql as sql5 } from "drizzle-orm";
|
|
3064
3135
|
init_database_wrapper();
|
|
3065
3136
|
init_schema();
|
|
3066
|
-
import {
|
|
3067
|
-
and as and4,
|
|
3068
|
-
desc,
|
|
3069
|
-
eq as eq8,
|
|
3070
|
-
getTableColumns,
|
|
3071
|
-
inArray,
|
|
3072
|
-
isNotNull,
|
|
3073
|
-
isNull as isNull2,
|
|
3074
|
-
like as like6,
|
|
3075
|
-
or,
|
|
3076
|
-
sql as sql5
|
|
3077
|
-
} from "drizzle-orm";
|
|
3078
3137
|
|
|
3079
3138
|
// src/db/repositories/tasks.ts
|
|
3080
3139
|
init_esm_shims();
|
|
@@ -3407,7 +3466,7 @@ import {
|
|
|
3407
3466
|
and as and7,
|
|
3408
3467
|
desc as desc2,
|
|
3409
3468
|
eq as eq13,
|
|
3410
|
-
getTableColumns
|
|
3469
|
+
getTableColumns,
|
|
3411
3470
|
inArray as inArray2,
|
|
3412
3471
|
isNotNull as isNotNull2,
|
|
3413
3472
|
isNull as isNull3,
|
|
@@ -3726,7 +3785,7 @@ var WorktreeRepository = class {
|
|
|
3726
3785
|
* @returns Array of accessible worktrees
|
|
3727
3786
|
*/
|
|
3728
3787
|
async findAccessibleWorktrees(userId) {
|
|
3729
|
-
const rows = await select(this.db,
|
|
3788
|
+
const rows = await select(this.db, getTableColumns(worktrees3)).from(worktrees3).leftJoin(
|
|
3730
3789
|
worktreeOwners3,
|
|
3731
3790
|
and7(
|
|
3732
3791
|
eq13(worktreeOwners3.worktree_id, worktrees3.worktree_id),
|
|
@@ -3875,7 +3934,7 @@ var WorktreeRepository = class {
|
|
|
3875
3934
|
fullText = messageData.content.filter((block) => block.type === "text" && block.text).map((block) => block.text).join("\n");
|
|
3876
3935
|
}
|
|
3877
3936
|
if (fullText.length > truncationLength) {
|
|
3878
|
-
fullText = fullText.substring(0, truncationLength)
|
|
3937
|
+
fullText = `${fullText.substring(0, truncationLength)}...`;
|
|
3879
3938
|
}
|
|
3880
3939
|
lastMessageBySession.set(sessionId, fullText);
|
|
3881
3940
|
}
|
|
@@ -3886,7 +3945,7 @@ var WorktreeRepository = class {
|
|
|
3886
3945
|
const sessionId = row.session_id;
|
|
3887
3946
|
let lastMessage = lastMessageBySession.get(sessionId) || "";
|
|
3888
3947
|
if (lastMessage.length > truncationLength) {
|
|
3889
|
-
lastMessage = lastMessage.substring(0, truncationLength)
|
|
3948
|
+
lastMessage = `${lastMessage.substring(0, truncationLength)}...truncated`;
|
|
3890
3949
|
}
|
|
3891
3950
|
const sessionData = row.data;
|
|
3892
3951
|
const messageCount = sessionData?.message_count ?? 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AgenticToolID, a as SessionID, W as WorktreeID, T as TaskID } from './id-BwPJtWxW.cjs';
|
|
1
|
+
import { A as AgenticToolID, a as SessionID, W as WorktreeID, B as BoardID, T as TaskID } from './id-BwPJtWxW.cjs';
|
|
2
2
|
import { C as ContextFilePath } from './context-ByxGjp5l.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -176,6 +176,22 @@ interface Session {
|
|
|
176
176
|
unix_username: string | null;
|
|
177
177
|
/** Worktree ID - all sessions must be associated with an Agor-managed worktree */
|
|
178
178
|
worktree_id: WorktreeID;
|
|
179
|
+
/**
|
|
180
|
+
* Board ID from the session's worktree (populated via LEFT JOIN)
|
|
181
|
+
*
|
|
182
|
+
* This is a computed property populated by the repository layer when fetching sessions.
|
|
183
|
+
* It avoids N+1 queries by joining with the worktrees table.
|
|
184
|
+
* Null if the worktree is not placed on any board.
|
|
185
|
+
*/
|
|
186
|
+
worktree_board_id?: BoardID | null;
|
|
187
|
+
/**
|
|
188
|
+
* External/user-facing URL for viewing this session in the UI
|
|
189
|
+
*
|
|
190
|
+
* Computed property added by API hooks based on worktree_board_id.
|
|
191
|
+
* Format: {baseUrl}/b/{boardId}/{sessionId}/
|
|
192
|
+
* Null if the worktree is not on a board.
|
|
193
|
+
*/
|
|
194
|
+
url: string | null;
|
|
179
195
|
git_state: {
|
|
180
196
|
ref: string;
|
|
181
197
|
base_sha: string;
|