agor-live 0.17.2 → 0.17.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/cli/lib/banner.d.ts +1 -1
- package/dist/cli/lib/banner.js +1 -1
- package/dist/cli/lib/check-migrations.test.js +9627 -9112
- package/dist/cli/lib/daemon-manager.test.js +9632 -9117
- package/dist/cli/lib/help.js +1 -1
- package/dist/core/api/index.d.cts +3 -3
- package/dist/core/api/index.d.ts +3 -3
- package/dist/core/{board-comment-DIdOJrSF.d.cts → board-comment-CCFVVN7K.d.cts} +0 -2
- package/dist/core/{board-comment-3N-jSgsk.d.ts → board-comment-iT3DgZb4.d.ts} +0 -2
- package/dist/core/claude/index.cjs +29 -19
- package/dist/core/claude/index.d.cts +2 -2
- package/dist/core/claude/index.d.ts +2 -2
- package/dist/core/claude/index.js +32 -33
- package/dist/core/client/index.cjs +49 -0
- package/dist/core/client/index.d.cts +7 -7
- package/dist/core/client/index.d.ts +7 -7
- package/dist/core/client/index.js +46 -0
- package/dist/core/{client-B5PyIvNc.d.cts → client-CemqXk0v.d.cts} +116 -100
- package/dist/core/{client-C1CsRi19.d.ts → client-uYEOha6g.d.ts} +116 -100
- package/dist/core/config/browser.d.cts +3 -3
- package/dist/core/config/browser.d.ts +3 -3
- package/dist/core/config/index.cjs +84 -41
- package/dist/core/config/index.d.cts +59 -17
- package/dist/core/config/index.d.ts +59 -17
- package/dist/core/config/index.js +86 -55
- package/dist/core/{config-manager-TxxjFMRd.d.cts → config-manager-B8TP9Kz0.d.cts} +12 -3
- package/dist/core/{config-manager-DTrsj6G3.d.ts → config-manager-CDEB0FY4.d.ts} +12 -3
- package/dist/core/{config-services-YEZ4DwCD.d.cts → config-services-CXyQKEK5.d.cts} +1 -1
- package/dist/core/{config-services-DcO2GRgh.d.ts → config-services-DhM7_yWn.d.ts} +1 -1
- package/dist/core/db/index.cjs +235 -175
- package/dist/core/db/index.d.cts +190 -147
- package/dist/core/db/index.d.ts +190 -147
- package/dist/core/db/index.js +239 -190
- package/dist/core/db/session-guard.d.cts +4 -4
- package/dist/core/db/session-guard.d.ts +4 -4
- package/dist/core/drizzle/postgres/0028_queued_tasks.sql +8 -0
- package/dist/core/drizzle/postgres/0030_migrate_queued_messages.sql +24 -0
- package/dist/core/drizzle/postgres/0031_restructure_agentic_tool_config.sql +201 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +21 -0
- package/dist/core/drizzle/sqlite/0039_queued_tasks.sql +13 -0
- package/dist/core/drizzle/sqlite/0040_migrate_queued_messages.sql +61 -0
- package/dist/core/drizzle/sqlite/0041_restructure_agentic_tool_config.sql +204 -0
- package/dist/core/drizzle/sqlite/meta/_journal.json +21 -0
- package/dist/core/gateway/index.d.cts +2 -2
- package/dist/core/gateway/index.d.ts +2 -2
- package/dist/core/{gateway-BnOlAelY.d.cts → gateway-BWq4j_Ll.d.cts} +1 -1
- package/dist/core/{gateway-B_4X-v07.d.ts → gateway-C3Jm_akw.d.ts} +1 -1
- package/dist/core/git/index.d.cts +4 -4
- package/dist/core/git/index.d.ts +4 -4
- package/dist/core/index.cjs +474 -201
- package/dist/core/index.d.cts +12 -10
- package/dist/core/index.d.ts +12 -10
- package/dist/core/index.js +473 -216
- package/dist/core/lib/feathers-validation.cjs +2 -1
- package/dist/core/lib/feathers-validation.d.cts +1 -1
- package/dist/core/lib/feathers-validation.d.ts +1 -1
- package/dist/core/lib/feathers-validation.js +2 -1
- package/dist/core/mcp/index.cjs +26 -16
- package/dist/core/mcp/index.js +26 -16
- package/dist/core/{message-DinITA7a.d.cts → message-CSWOsdcZ.d.cts} +1 -9
- package/dist/core/{message-CHUUP6OS.d.ts → message-DZa8g0s0.d.ts} +1 -9
- package/dist/core/models/index.d.cts +3 -73
- package/dist/core/models/index.d.ts +3 -73
- package/dist/core/package.json +5 -0
- package/dist/core/permissions/index.d.cts +1 -1
- package/dist/core/permissions/index.d.ts +1 -1
- package/dist/core/resolve-config-BcL-Hv8k.d.ts +74 -0
- package/dist/core/resolve-config-DTCxuSBx.d.cts +74 -0
- package/dist/core/seed/index.cjs +145 -98
- package/dist/core/seed/index.js +148 -112
- package/dist/core/{session-guard-C0LkDEN7.d.ts → session-guard-BFqVtBoS.d.ts} +1 -1
- package/dist/core/{session-guard-kvAx_8Fb.d.cts → session-guard-KHh0cnET.d.cts} +1 -1
- package/dist/core/sessions/index.cjs +184 -0
- package/dist/core/sessions/index.d.cts +79 -0
- package/dist/core/sessions/index.d.ts +79 -0
- package/dist/core/sessions/index.js +157 -0
- package/dist/core/{task-BLPFCORT.d.ts → task-BHV-YHg1.d.ts} +41 -3
- package/dist/core/{task-wht1RJEL.d.cts → task-C2Hy7H6u.d.cts} +41 -3
- package/dist/core/templates/session-context.d.cts +1 -1
- package/dist/core/templates/session-context.d.ts +1 -1
- package/dist/core/tools/mcp/oauth-mcp-transport.cjs +168 -66
- package/dist/core/tools/mcp/oauth-mcp-transport.d.cts +92 -16
- package/dist/core/tools/mcp/oauth-mcp-transport.d.ts +92 -16
- package/dist/core/tools/mcp/oauth-mcp-transport.js +165 -66
- package/dist/core/tools/mcp/oauth-refresh.cjs +43 -53
- package/dist/core/tools/mcp/oauth-refresh.d.cts +3 -3
- package/dist/core/tools/mcp/oauth-refresh.d.ts +3 -3
- package/dist/core/tools/mcp/oauth-refresh.js +58 -78
- package/dist/core/types/index.cjs +49 -0
- package/dist/core/types/index.d.cts +7 -7
- package/dist/core/types/index.d.ts +7 -7
- package/dist/core/types/index.js +46 -0
- package/dist/core/{types-DNqfdt1z.d.cts → types-D4Rl6ZKN.d.cts} +18 -2
- package/dist/core/{types-DqPMmTad.d.ts → types-n61iaXub.d.ts} +18 -2
- package/dist/core/unix/index.cjs +164 -110
- package/dist/core/unix/index.d.cts +7 -8
- package/dist/core/unix/index.d.ts +7 -8
- package/dist/core/unix/index.js +167 -124
- package/dist/core/{user-DkNdeFoz.d.cts → user-CpfkcV2C.d.cts} +139 -13
- package/dist/core/{user-BfVWBmXA.d.ts → user-DP-XZMIM.d.ts} +139 -13
- package/dist/core/utils/permission-mode-mapper.d.cts +0 -2
- package/dist/core/utils/permission-mode-mapper.d.ts +0 -2
- package/dist/daemon/index.js +2976 -2791
- package/dist/daemon/main.js +2976 -2791
- package/dist/daemon/mcp/server.js +177 -134
- package/dist/daemon/mcp/tools/analytics.js +19 -5
- package/dist/daemon/mcp/tools/artifacts.js +19 -5
- package/dist/daemon/mcp/tools/boards.js +19 -5
- package/dist/daemon/mcp/tools/card-types.js +19 -5
- package/dist/daemon/mcp/tools/cards.js +19 -5
- package/dist/daemon/mcp/tools/environment.js +19 -5
- package/dist/daemon/mcp/tools/mcp-servers.d.ts +29 -2
- package/dist/daemon/mcp/tools/mcp-servers.js +64 -54
- package/dist/daemon/mcp/tools/messages.js +19 -5
- package/dist/daemon/mcp/tools/repos.js +19 -5
- package/dist/daemon/mcp/tools/search.js +19 -5
- package/dist/daemon/mcp/tools/sessions.js +175 -53
- package/dist/daemon/mcp/tools/tasks.js +19 -5
- package/dist/daemon/mcp/tools/users.js +19 -5
- package/dist/daemon/mcp/tools/worktrees.js +37 -38
- package/dist/daemon/register-hooks.js +52 -1
- package/dist/daemon/register-routes.js +436 -424
- package/dist/daemon/register-services.js +255 -140
- package/dist/daemon/services/config.d.ts +7 -1
- package/dist/daemon/services/config.js +3 -2
- package/dist/daemon/services/gateway.js +28 -15
- package/dist/daemon/services/mcp-servers.d.ts +7 -2
- package/dist/daemon/services/repos.js +2 -0
- package/dist/daemon/services/sessions.d.ts +1 -1
- package/dist/daemon/services/sessions.js +8 -16
- package/dist/daemon/services/tasks.js +16 -10
- package/dist/daemon/services/terminals.js +2 -0
- package/dist/daemon/services/users.d.ts +27 -11
- package/dist/daemon/services/users.js +89 -43
- package/dist/daemon/services/worktree-owners.js +2 -0
- package/dist/daemon/services/worktrees.js +2 -0
- package/dist/daemon/setup/index.js +5 -2
- package/dist/daemon/setup/socketio.d.ts +10 -1
- package/dist/daemon/setup/socketio.js +7 -3
- package/dist/daemon/startup.js +13 -1
- package/dist/daemon/utils/apply-session-config-defaults.d.ts +54 -0
- package/dist/daemon/utils/apply-session-config-defaults.js +46 -0
- package/dist/daemon/utils/spawn-executor.js +2 -0
- package/dist/daemon/utils/worktree-authorization.d.ts +2 -4
- package/dist/executor/commands/zellij.d.ts.map +1 -1
- package/dist/executor/commands/zellij.js +2 -2
- package/dist/executor/handlers/sdk/base-executor.d.ts +4 -3
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +11 -5
- package/dist/executor/payload-types.d.ts +14 -14
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/claude-tool.js +9 -4
- package/dist/executor/sdk-handlers/claude/import/task-extractor.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/import/task-extractor.js +0 -5
- package/dist/executor/sdk-handlers/claude/message-builder.d.ts +23 -2
- package/dist/executor/sdk-handlers/claude/message-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/message-builder.js +33 -2
- package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts +9 -1
- package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.js +12 -0
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +11 -6
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +0 -5
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +9 -24
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +15 -2
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +39 -10
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +0 -5
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/copilot-tool.js +5 -22
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +0 -5
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.js +9 -24
- package/dist/ui/assets/{CodeEditor.inner-CO-5PAnZ.js → CodeEditor.inner-CVLqZBtM.js} +1 -1
- package/dist/ui/assets/{CodeEditor.inner-CO-5PAnZ.js.gz → CodeEditor.inner-CVLqZBtM.js.gz} +0 -0
- package/dist/ui/assets/{_basePickBy-DfxojsEt.js → _basePickBy-CFq5ES2J.js} +1 -1
- package/dist/ui/assets/_basePickBy-CFq5ES2J.js.gz +0 -0
- package/dist/ui/assets/{_baseUniq-DWFPJOTC.js → _baseUniq-C4uKBvNt.js} +1 -1
- package/dist/ui/assets/_baseUniq-C4uKBvNt.js.gz +0 -0
- package/dist/ui/assets/{arc-vMZ_XGSI.js → arc-BnrcXDJJ.js} +1 -1
- package/dist/ui/assets/arc-BnrcXDJJ.js.gz +0 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-DGpk_uOD.js → architectureDiagram-VXUJARFQ-DD9HD-WR.js} +1 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DD9HD-WR.js.gz +0 -0
- package/dist/ui/assets/{base-80a1f760-BsVlOKqO.js → base-80a1f760-BK1VmxWU.js} +1 -1
- package/dist/ui/assets/{blockDiagram-VD42YOAC-BkRnxc94.js → blockDiagram-VD42YOAC-LBAckZZe.js} +1 -1
- package/dist/ui/assets/blockDiagram-VD42YOAC-LBAckZZe.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dcf-anJy.js → c4Diagram-YG6GDRKO-yEdylcYP.js} +1 -1
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dcf-anJy.js.gz → c4Diagram-YG6GDRKO-yEdylcYP.js.gz} +0 -0
- package/dist/ui/assets/channel-CMN-iY3Q.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-C4oVWDo8.js → chunk-4BX2VUAB-IHtzKbmQ.js} +1 -1
- package/dist/ui/assets/{chunk-55IACEB6-CsBbTu57.js → chunk-55IACEB6-C4o5tv_F.js} +1 -1
- package/dist/ui/assets/{chunk-B4BG7PRW-DtkeCZab.js → chunk-B4BG7PRW-EPkzLvlB.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-EPkzLvlB.js.gz +0 -0
- package/dist/ui/assets/{chunk-DI55MBZ5-BQ_asW-1.js → chunk-DI55MBZ5-CW-Bzkzj.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-CW-Bzkzj.js.gz +0 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-DAdcLNG-.js → chunk-FMBD7UC4-DvGU02Io.js} +1 -1
- package/dist/ui/assets/{chunk-QN33PNHL-Do2zad3m.js → chunk-QN33PNHL-C-PIlz9n.js} +1 -1
- package/dist/ui/assets/{chunk-QZHKN3VN-CyhMmSdC.js → chunk-QZHKN3VN-BhpJFm6h.js} +1 -1
- package/dist/ui/assets/{chunk-TZMSLE5B-DlPypnIq.js → chunk-TZMSLE5B-Biake8IU.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-Biake8IU.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-Bz1et8oA.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-Bz1et8oA.js +1 -0
- package/dist/ui/assets/clone-Dxo5sEAf.js +1 -0
- package/dist/ui/assets/{consoleHook-59e792cb-DHYIclEd.js → consoleHook-59e792cb-BzEkHWE8.js} +1 -1
- package/dist/ui/assets/consoleHook-59e792cb-BzEkHWE8.js.gz +0 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-DotJH9qH.js → cose-bilkent-S5V4N54A-vAiVi74s.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-vAiVi74s.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-Btssr8QF.js → dagre-6UL2VRFP-C8w7TshD.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-C8w7TshD.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-D5_Jkog3.js → diagram-PSM6KHXK-CvnjEmtQ.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-CvnjEmtQ.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-DlPEVSL5.js → diagram-QEK2KX5R-D245unng.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-D245unng.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-CjO1k8aG.js → diagram-S2PKOQOG-DgGUHL8Z.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-DgGUHL8Z.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-3cO02-K3.js → erDiagram-Q2GNP2WA-Cf5paK9b.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-Cf5paK9b.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-CajTpSxI.js → flowDiagram-NV44I4VS-BJpHmEXV.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-BJpHmEXV.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-CnY_bV3o.js → ganttDiagram-LVOFAZNH-zOyTZcXC.js} +1 -1
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-CnY_bV3o.js.gz → ganttDiagram-LVOFAZNH-zOyTZcXC.js.gz} +0 -0
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-CH16bg-j.js → gitGraphDiagram-NY62KEGX-B0uxwqMv.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-B0uxwqMv.js.gz +0 -0
- package/dist/ui/assets/{graph-IQoZvE3o.js → graph-NWXc73TO.js} +1 -1
- package/dist/ui/assets/graph-NWXc73TO.js.gz +0 -0
- package/dist/ui/assets/{index-599aeaf7-RUCkgwsg.js → index-599aeaf7-BKmNqoNF.js} +1 -1
- package/dist/ui/assets/index-599aeaf7-BKmNqoNF.js.gz +0 -0
- package/dist/ui/assets/{index-B3AvIgqP.js → index-BRYNiHLB.js} +345 -349
- package/dist/ui/assets/index-BRYNiHLB.js.gz +0 -0
- package/dist/ui/assets/{index-QV5-5yA2.js → index-BX6Xmhes.js} +1 -1
- package/dist/ui/assets/index-BX6Xmhes.js.gz +0 -0
- package/dist/ui/assets/{index-ChmRuj_T.js → index-W1hIq1uU.js} +1 -1
- package/dist/ui/assets/index-W1hIq1uU.js.gz +0 -0
- package/dist/ui/assets/{index-C-quzPWC.js → index-ctuok0zf.js} +1 -1
- package/dist/ui/assets/index-ctuok0zf.js.gz +0 -0
- package/dist/ui/assets/{infoDiagram-ER5ION4S-2e4gZVGT.js → infoDiagram-ER5ION4S-CquCuoTH.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-B5bgV3GH.js → journeyDiagram-XKPGCS4Q-B_XkufZ8.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B_XkufZ8.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-Bp-aWRSc.js → kanban-definition-3W4ZIXB7-C2Bo9HkB.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-C2Bo9HkB.js.gz +0 -0
- package/dist/ui/assets/katex-C6wkUDai.css +1 -0
- package/dist/ui/assets/{katex-DGRguze2.css.gz → katex-C6wkUDai.css.gz} +0 -0
- package/dist/ui/assets/{layout-BH-2XJZq.js → layout-D9A7Uaku.js} +1 -1
- package/dist/ui/assets/layout-D9A7Uaku.js.gz +0 -0
- package/dist/ui/assets/{linear-DCYXhl_f.js → linear-BJUwJsxE.js} +1 -1
- package/dist/ui/assets/linear-BJUwJsxE.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-BAuL6kgQ.js → mermaid.core-DcOEcjcA.js} +5 -5
- package/dist/ui/assets/mermaid.core-DcOEcjcA.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-DpH5N-N0.js → mindmap-definition-VGOIOE7T-BFT1m7BG.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-BFT1m7BG.js.gz +0 -0
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BB8fBxj1.js → pieDiagram-ADFJNKIX-BFaX1oBV.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BFaX1oBV.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-D6oZLdUD.js → quadrantDiagram-AYHSOK5B-DQps5392.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DQps5392.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-B4uGPp8w.js → requirementDiagram-UZGBJVZJ-3EZ5KWEi.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-3EZ5KWEi.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-MXhIjhme.js → sankeyDiagram-TZEHDZUN-D0qcydqq.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-D0qcydqq.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-Cm53TYug.js → sequenceDiagram-WL72ISMW-BCR5gaaN.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-BCR5gaaN.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BVuxUkj5.js → stateDiagram-FKZM4ZOC-BvX4FLQ9.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BvX4FLQ9.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CxLDvgTF.js +1 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-CMypNiEP.js → timeline-definition-IT6M3QCI-_AWp5LJn.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-_AWp5LJn.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-BEtnV3BT.js → treemap-KMMF4GRG-BZ9FBl5-.js} +1 -1
- package/dist/ui/assets/treemap-KMMF4GRG-BZ9FBl5-.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BnioEYUM.js → xychartDiagram-PRI3JC2R-_wB7yuVd.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-_wB7yuVd.js.gz +0 -0
- package/dist/ui/index.html +1 -1
- package/package.json +8 -8
- package/dist/ui/assets/_basePickBy-DfxojsEt.js.gz +0 -0
- package/dist/ui/assets/_baseUniq-DWFPJOTC.js.gz +0 -0
- package/dist/ui/assets/arc-vMZ_XGSI.js.gz +0 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DGpk_uOD.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-BkRnxc94.js.gz +0 -0
- package/dist/ui/assets/channel-B9aI4bYN.js +0 -1
- package/dist/ui/assets/chunk-B4BG7PRW-DtkeCZab.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-BQ_asW-1.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-DlPypnIq.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-p-68WO4Z.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-p-68WO4Z.js +0 -1
- package/dist/ui/assets/clone-DzK5ogfn.js +0 -1
- package/dist/ui/assets/consoleHook-59e792cb-DHYIclEd.js.gz +0 -0
- package/dist/ui/assets/cose-bilkent-S5V4N54A-DotJH9qH.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-Btssr8QF.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-D5_Jkog3.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-DlPEVSL5.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-CjO1k8aG.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-3cO02-K3.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CajTpSxI.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CH16bg-j.js.gz +0 -0
- package/dist/ui/assets/graph-IQoZvE3o.js.gz +0 -0
- package/dist/ui/assets/index-599aeaf7-RUCkgwsg.js.gz +0 -0
- package/dist/ui/assets/index-B3AvIgqP.js.gz +0 -0
- package/dist/ui/assets/index-C-quzPWC.js.gz +0 -0
- package/dist/ui/assets/index-ChmRuj_T.js.gz +0 -0
- package/dist/ui/assets/index-QV5-5yA2.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B5bgV3GH.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-Bp-aWRSc.js.gz +0 -0
- package/dist/ui/assets/katex-DGRguze2.css +0 -1
- package/dist/ui/assets/layout-BH-2XJZq.js.gz +0 -0
- package/dist/ui/assets/linear-DCYXhl_f.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-BAuL6kgQ.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-DpH5N-N0.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BB8fBxj1.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-D6oZLdUD.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-B4uGPp8w.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-MXhIjhme.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-Cm53TYug.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BVuxUkj5.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-8Jeww6Dc.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CMypNiEP.js.gz +0 -0
- package/dist/ui/assets/treemap-KMMF4GRG-BEtnV3BT.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BnioEYUM.js.gz +0 -0
|
@@ -406,6 +406,9 @@ function loadConfigSync() {
|
|
|
406
406
|
);
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
|
+
function isConfigCredentialKey(key) {
|
|
410
|
+
return CONFIG_CREDENTIAL_KEYS.has(key);
|
|
411
|
+
}
|
|
409
412
|
function getCredential(key) {
|
|
410
413
|
try {
|
|
411
414
|
const config = loadConfigSync();
|
|
@@ -501,7 +504,7 @@ async function getReposDirAsync() {
|
|
|
501
504
|
async function getWorktreesDirAsync() {
|
|
502
505
|
return path2.join(await getDataHomeAsync(), "worktrees");
|
|
503
506
|
}
|
|
504
|
-
var PublicBaseUrlNotConfiguredError;
|
|
507
|
+
var PublicBaseUrlNotConfiguredError, CONFIG_CREDENTIAL_KEYS;
|
|
505
508
|
var init_config_manager = __esm({
|
|
506
509
|
"src/config/config-manager.ts"() {
|
|
507
510
|
"use strict";
|
|
@@ -514,6 +517,13 @@ var init_config_manager = __esm({
|
|
|
514
517
|
this.name = "PublicBaseUrlNotConfiguredError";
|
|
515
518
|
}
|
|
516
519
|
};
|
|
520
|
+
CONFIG_CREDENTIAL_KEYS = /* @__PURE__ */ new Set([
|
|
521
|
+
"ANTHROPIC_API_KEY",
|
|
522
|
+
"ANTHROPIC_AUTH_TOKEN",
|
|
523
|
+
"ANTHROPIC_BASE_URL",
|
|
524
|
+
"OPENAI_API_KEY",
|
|
525
|
+
"GEMINI_API_KEY"
|
|
526
|
+
]);
|
|
517
527
|
}
|
|
518
528
|
});
|
|
519
529
|
|
|
@@ -985,6 +995,7 @@ var init_schema_postgres = __esm({
|
|
|
985
995
|
completed_at: t.timestamp("completed_at"),
|
|
986
996
|
status: text("status", {
|
|
987
997
|
enum: [
|
|
998
|
+
"queued",
|
|
988
999
|
"created",
|
|
989
1000
|
"running",
|
|
990
1001
|
"stopping",
|
|
@@ -996,6 +1007,8 @@ var init_schema_postgres = __esm({
|
|
|
996
1007
|
"stopped"
|
|
997
1008
|
]
|
|
998
1009
|
}).notNull(),
|
|
1010
|
+
// Queue position (lower drains first); only populated for status='queued'
|
|
1011
|
+
queue_position: integer("queue_position"),
|
|
999
1012
|
// User attribution
|
|
1000
1013
|
created_by: varchar("created_by", { length: 36 }).notNull().default("anonymous"),
|
|
1001
1014
|
// MD5 of SDK session file at task completion (only populated when stateless_fs_mode is enabled)
|
|
@@ -1005,7 +1018,12 @@ var init_schema_postgres = __esm({
|
|
|
1005
1018
|
(table) => ({
|
|
1006
1019
|
sessionIdx: index("tasks_session_idx").on(table.session_id),
|
|
1007
1020
|
statusIdx: index("tasks_status_idx").on(table.status),
|
|
1008
|
-
createdIdx: index("tasks_created_idx").on(table.created_at)
|
|
1021
|
+
createdIdx: index("tasks_created_idx").on(table.created_at),
|
|
1022
|
+
queueIdx: index("tasks_queue_idx").on(table.session_id, table.status, table.queue_position),
|
|
1023
|
+
// Partial unique index — defense-in-depth for `tasks.createPending` race
|
|
1024
|
+
// serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
|
|
1025
|
+
// rows have NULL queue_position and are unaffected.
|
|
1026
|
+
queuedPositionUnique: uniqueIndex("tasks_queued_position_unique").on(table.session_id, table.queue_position).where(sql2`${table.status} = 'queued'`)
|
|
1009
1027
|
})
|
|
1010
1028
|
);
|
|
1011
1029
|
serializedSessions = pgTable(
|
|
@@ -1065,11 +1083,9 @@ var init_schema_postgres = __esm({
|
|
|
1065
1083
|
// First 200 chars for list views
|
|
1066
1084
|
// Parent tool use ID (for nested tool calls - e.g., Task tool spawning Read/Grep)
|
|
1067
1085
|
parent_tool_use_id: text("parent_tool_use_id"),
|
|
1068
|
-
//
|
|
1069
|
-
|
|
1070
|
-
//
|
|
1071
|
-
queue_position: integer("queue_position"),
|
|
1072
|
-
// Position in queue (1, 2, 3, ...)
|
|
1086
|
+
// NOTE: queueing moved off `messages` and onto `tasks.status='queued'` as
|
|
1087
|
+
// of migration sqlite/0040 (postgres/0030). The legacy `status` and
|
|
1088
|
+
// `queue_position` columns are gone — see `tasks.queue_position` instead.
|
|
1073
1089
|
// Full data (JSON blob)
|
|
1074
1090
|
data: t.json("data").$type().notNull()
|
|
1075
1091
|
},
|
|
@@ -1077,8 +1093,7 @@ var init_schema_postgres = __esm({
|
|
|
1077
1093
|
// Indexes for efficient lookups
|
|
1078
1094
|
sessionIdx: index("messages_session_id_idx").on(table.session_id),
|
|
1079
1095
|
taskIdx: index("messages_task_id_idx").on(table.task_id),
|
|
1080
|
-
sessionIndexIdx: index("messages_session_index_idx").on(table.session_id, table.index)
|
|
1081
|
-
queueIdx: index("messages_queue_idx").on(table.session_id, table.status, table.queue_position)
|
|
1096
|
+
sessionIndexIdx: index("messages_session_index_idx").on(table.session_id, table.index)
|
|
1082
1097
|
})
|
|
1083
1098
|
);
|
|
1084
1099
|
boards = pgTable(
|
|
@@ -1723,6 +1738,7 @@ var init_schema_sqlite = __esm({
|
|
|
1723
1738
|
completed_at: t2.timestamp("completed_at"),
|
|
1724
1739
|
status: text2("status", {
|
|
1725
1740
|
enum: [
|
|
1741
|
+
"queued",
|
|
1726
1742
|
"created",
|
|
1727
1743
|
"running",
|
|
1728
1744
|
"stopping",
|
|
@@ -1734,6 +1750,8 @@ var init_schema_sqlite = __esm({
|
|
|
1734
1750
|
"stopped"
|
|
1735
1751
|
]
|
|
1736
1752
|
}).notNull(),
|
|
1753
|
+
// Queue position (lower drains first); only populated for status='queued'
|
|
1754
|
+
queue_position: integer2("queue_position"),
|
|
1737
1755
|
// User attribution
|
|
1738
1756
|
created_by: text2("created_by", { length: 36 }).notNull().default("anonymous"),
|
|
1739
1757
|
// MD5 of SDK session file at task completion (only populated when stateless_fs_mode is enabled)
|
|
@@ -1743,7 +1761,12 @@ var init_schema_sqlite = __esm({
|
|
|
1743
1761
|
(table) => ({
|
|
1744
1762
|
sessionIdx: index2("tasks_session_idx").on(table.session_id),
|
|
1745
1763
|
statusIdx: index2("tasks_status_idx").on(table.status),
|
|
1746
|
-
createdIdx: index2("tasks_created_idx").on(table.created_at)
|
|
1764
|
+
createdIdx: index2("tasks_created_idx").on(table.created_at),
|
|
1765
|
+
queueIdx: index2("tasks_queue_idx").on(table.session_id, table.status, table.queue_position),
|
|
1766
|
+
// Partial unique index — defense-in-depth for `tasks.createPending` race
|
|
1767
|
+
// serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
|
|
1768
|
+
// rows have NULL queue_position and are unaffected.
|
|
1769
|
+
queuedPositionUnique: uniqueIndex2("tasks_queued_position_unique").on(table.session_id, table.queue_position).where(sql3`${table.status} = 'queued'`)
|
|
1747
1770
|
})
|
|
1748
1771
|
);
|
|
1749
1772
|
serializedSessions2 = sqliteTable(
|
|
@@ -1803,11 +1826,9 @@ var init_schema_sqlite = __esm({
|
|
|
1803
1826
|
// First 200 chars for list views
|
|
1804
1827
|
// Parent tool use ID (for nested tool calls - e.g., Task tool spawning Read/Grep)
|
|
1805
1828
|
parent_tool_use_id: text2("parent_tool_use_id"),
|
|
1806
|
-
//
|
|
1807
|
-
|
|
1808
|
-
//
|
|
1809
|
-
queue_position: integer2("queue_position"),
|
|
1810
|
-
// Position in queue (1, 2, 3, ...)
|
|
1829
|
+
// NOTE: queueing moved off `messages` and onto `tasks.status='queued'` as
|
|
1830
|
+
// of migration sqlite/0040 (postgres/0030). The legacy `status` and
|
|
1831
|
+
// `queue_position` columns are gone — see `tasks.queue_position` instead.
|
|
1811
1832
|
// Full data (JSON blob)
|
|
1812
1833
|
data: t2.json("data").$type().notNull()
|
|
1813
1834
|
},
|
|
@@ -1815,8 +1836,7 @@ var init_schema_sqlite = __esm({
|
|
|
1815
1836
|
// Indexes for efficient lookups
|
|
1816
1837
|
sessionIdx: index2("messages_session_id_idx").on(table.session_id),
|
|
1817
1838
|
taskIdx: index2("messages_task_id_idx").on(table.task_id),
|
|
1818
|
-
sessionIndexIdx: index2("messages_session_index_idx").on(table.session_id, table.index)
|
|
1819
|
-
queueIdx: index2("messages_queue_idx").on(table.session_id, table.status, table.queue_position)
|
|
1839
|
+
sessionIndexIdx: index2("messages_session_index_idx").on(table.session_id, table.index)
|
|
1820
1840
|
})
|
|
1821
1841
|
);
|
|
1822
1842
|
boards2 = sqliteTable(
|
|
@@ -3044,6 +3064,7 @@ var ALLOWED_ENV_VARS = /* @__PURE__ */ new Set([
|
|
|
3044
3064
|
"ANTHROPIC_BASE_URL",
|
|
3045
3065
|
"ANTHROPIC_AUTH_TOKEN",
|
|
3046
3066
|
"OPENAI_API_KEY",
|
|
3067
|
+
"OPENAI_BASE_URL",
|
|
3047
3068
|
"GEMINI_API_KEY",
|
|
3048
3069
|
"GOOGLE_API_KEY",
|
|
3049
3070
|
// Vertex AI (Claude Code on GCP)
|
|
@@ -3084,7 +3105,7 @@ var AGOR_INTERNAL_ENV_VARS = /* @__PURE__ */ new Set([
|
|
|
3084
3105
|
]);
|
|
3085
3106
|
async function resolveUserEnvironment(userId, db, options = {}) {
|
|
3086
3107
|
const env = {};
|
|
3087
|
-
const { sessionId } = options;
|
|
3108
|
+
const { sessionId, tool } = options;
|
|
3088
3109
|
try {
|
|
3089
3110
|
const row = await select(db).from(users3).where(eq2(users3.user_id, userId)).one();
|
|
3090
3111
|
if (row) {
|
|
@@ -3118,16 +3139,22 @@ async function resolveUserEnvironment(userId, db, options = {}) {
|
|
|
3118
3139
|
console.error(`Failed to decrypt env var ${key} for user ${userId}:`, err);
|
|
3119
3140
|
}
|
|
3120
3141
|
}
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3142
|
+
if (tool) {
|
|
3143
|
+
const toolFields = data.agentic_tools?.[tool];
|
|
3144
|
+
if (toolFields) {
|
|
3145
|
+
for (const [key, encryptedValue] of Object.entries(toolFields)) {
|
|
3146
|
+
if (!encryptedValue) continue;
|
|
3147
|
+
try {
|
|
3148
|
+
const decryptedValue = decryptApiKey(encryptedValue);
|
|
3149
|
+
if (decryptedValue && decryptedValue.trim() !== "") {
|
|
3150
|
+
env[key] = decryptedValue;
|
|
3151
|
+
}
|
|
3152
|
+
} catch (err) {
|
|
3153
|
+
console.error(
|
|
3154
|
+
`Failed to decrypt agentic_tools.${tool}.${key} for user ${userId}:`,
|
|
3155
|
+
err
|
|
3156
|
+
);
|
|
3128
3157
|
}
|
|
3129
|
-
} catch (err) {
|
|
3130
|
-
console.error(`Failed to decrypt API key ${key} for user ${userId}:`, err);
|
|
3131
3158
|
}
|
|
3132
3159
|
}
|
|
3133
3160
|
}
|
|
@@ -3165,7 +3192,7 @@ function buildAllowlistedEnv() {
|
|
|
3165
3192
|
}
|
|
3166
3193
|
return env;
|
|
3167
3194
|
}
|
|
3168
|
-
async function createUserProcessEnvironment(userId, db, additionalEnv, forImpersonation = false, gatewayEnv, sessionId) {
|
|
3195
|
+
async function createUserProcessEnvironment(userId, db, additionalEnv, forImpersonation = false, gatewayEnv, sessionId, tool) {
|
|
3169
3196
|
const env = buildAllowlistedEnv();
|
|
3170
3197
|
const USER_IDENTITY_VARS = ["HOME", "USER", "LOGNAME", "SHELL"];
|
|
3171
3198
|
if (forImpersonation) {
|
|
@@ -3183,7 +3210,7 @@ async function createUserProcessEnvironment(userId, db, additionalEnv, forImpers
|
|
|
3183
3210
|
}
|
|
3184
3211
|
}
|
|
3185
3212
|
if (userId && db) {
|
|
3186
|
-
const userEnv = await resolveUserEnvironment(userId, db, { sessionId });
|
|
3213
|
+
const userEnv = await resolveUserEnvironment(userId, db, { sessionId, tool });
|
|
3187
3214
|
for (const [key, value] of Object.entries(userEnv)) {
|
|
3188
3215
|
if (value && value.trim() !== "") {
|
|
3189
3216
|
env[key] = value;
|
|
@@ -3480,7 +3507,7 @@ init_esm_shims();
|
|
|
3480
3507
|
init_types();
|
|
3481
3508
|
init_config_manager();
|
|
3482
3509
|
init_ids();
|
|
3483
|
-
import { and as and9, desc as desc2, eq as eq15, inArray as inArray2, isNotNull as isNotNull2,
|
|
3510
|
+
import { and as and9, desc as desc2, eq as eq15, inArray as inArray2, isNotNull as isNotNull2, like as like9, or as or3, sql as sql7 } from "drizzle-orm";
|
|
3484
3511
|
init_database_wrapper();
|
|
3485
3512
|
init_schema();
|
|
3486
3513
|
|
|
@@ -3512,10 +3539,11 @@ import { and as and12, eq as eq19 } from "drizzle-orm";
|
|
|
3512
3539
|
init_esm_shims();
|
|
3513
3540
|
init_database_wrapper();
|
|
3514
3541
|
init_schema();
|
|
3515
|
-
import { and as and13, eq as eq20, isNull as
|
|
3542
|
+
import { and as and13, eq as eq20, isNull as isNull2 } from "drizzle-orm";
|
|
3516
3543
|
|
|
3517
3544
|
// src/db/repositories/users.ts
|
|
3518
3545
|
init_esm_shims();
|
|
3546
|
+
init_types();
|
|
3519
3547
|
import { eq as eq21, like as like12 } from "drizzle-orm";
|
|
3520
3548
|
init_ids();
|
|
3521
3549
|
init_database_wrapper();
|
|
@@ -3527,18 +3555,7 @@ init_types();
|
|
|
3527
3555
|
init_ids();
|
|
3528
3556
|
init_database_wrapper();
|
|
3529
3557
|
init_schema();
|
|
3530
|
-
import {
|
|
3531
|
-
and as and14,
|
|
3532
|
-
desc as desc3,
|
|
3533
|
-
eq as eq22,
|
|
3534
|
-
getTableColumns,
|
|
3535
|
-
inArray as inArray3,
|
|
3536
|
-
isNotNull as isNotNull3,
|
|
3537
|
-
isNull as isNull4,
|
|
3538
|
-
like as like13,
|
|
3539
|
-
or as or4,
|
|
3540
|
-
sql as sql9
|
|
3541
|
-
} from "drizzle-orm";
|
|
3558
|
+
import { and as and14, desc as desc3, eq as eq22, getTableColumns, inArray as inArray3, isNotNull as isNotNull3, like as like13, or as or4, sql as sql9 } from "drizzle-orm";
|
|
3542
3559
|
|
|
3543
3560
|
// src/db/index.ts
|
|
3544
3561
|
init_schema();
|
|
@@ -3572,7 +3589,18 @@ async function resolveApiKey(keyName, context = {}) {
|
|
|
3572
3589
|
const row = await select(context.db).from(users3).where(eq24(users3.user_id, context.userId)).one();
|
|
3573
3590
|
if (row) {
|
|
3574
3591
|
const data = row.data;
|
|
3575
|
-
|
|
3592
|
+
let encryptedKey;
|
|
3593
|
+
const tools = data.agentic_tools ?? {};
|
|
3594
|
+
if (context.tool) {
|
|
3595
|
+
encryptedKey = tools[context.tool]?.[keyName];
|
|
3596
|
+
} else {
|
|
3597
|
+
for (const fields of Object.values(tools)) {
|
|
3598
|
+
if (fields?.[keyName]) {
|
|
3599
|
+
encryptedKey = fields[keyName];
|
|
3600
|
+
break;
|
|
3601
|
+
}
|
|
3602
|
+
}
|
|
3603
|
+
}
|
|
3576
3604
|
if (encryptedKey) {
|
|
3577
3605
|
try {
|
|
3578
3606
|
const decryptedKey = decryptApiKey(encryptedKey);
|
|
@@ -3597,12 +3625,13 @@ async function resolveApiKey(keyName, context = {}) {
|
|
|
3597
3625
|
} else if (!context.db) {
|
|
3598
3626
|
console.log(` \u2192 Skipping user-level check (no database connection)`);
|
|
3599
3627
|
}
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3628
|
+
if (isConfigCredentialKey(keyName)) {
|
|
3629
|
+
console.log(` \u2192 Checking app-level configuration (config.yaml)...`);
|
|
3630
|
+
const globalKey = getCredential(keyName);
|
|
3631
|
+
if (globalKey && globalKey.length > 0) {
|
|
3632
|
+
console.log(` \u2713 Found app-level API key for ${keyName} (from config.yaml)`);
|
|
3633
|
+
return { apiKey: globalKey, source: "config", useNativeAuth: false };
|
|
3634
|
+
}
|
|
3606
3635
|
console.log(` \u2717 No app-level API key for ${keyName}`);
|
|
3607
3636
|
}
|
|
3608
3637
|
console.log(` \u2192 Checking OS-level environment variables...`);
|
|
@@ -3610,16 +3639,17 @@ async function resolveApiKey(keyName, context = {}) {
|
|
|
3610
3639
|
if (envKey && envKey.length > 0) {
|
|
3611
3640
|
console.log(` \u2713 Found OS-level environment variable ${keyName}`);
|
|
3612
3641
|
return { apiKey: envKey, source: "env", useNativeAuth: false };
|
|
3613
|
-
} else {
|
|
3614
|
-
console.log(` \u2717 No OS-level environment variable ${keyName}`);
|
|
3615
3642
|
}
|
|
3643
|
+
console.log(` \u2717 No OS-level environment variable ${keyName}`);
|
|
3616
3644
|
console.log(` \u2139\uFE0F No API key found for ${keyName} - SDK will use native authentication`);
|
|
3617
3645
|
return { apiKey: void 0, source: "none", useNativeAuth: true };
|
|
3618
3646
|
}
|
|
3619
3647
|
function resolveApiKeySync(keyName) {
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3648
|
+
if (isConfigCredentialKey(keyName)) {
|
|
3649
|
+
const globalKey = getCredential(keyName);
|
|
3650
|
+
if (globalKey && globalKey.length > 0) {
|
|
3651
|
+
return { apiKey: globalKey, source: "config", useNativeAuth: false };
|
|
3652
|
+
}
|
|
3623
3653
|
}
|
|
3624
3654
|
const envKey = process.env[keyName];
|
|
3625
3655
|
if (envKey && envKey.length > 0) {
|
|
@@ -4218,6 +4248,7 @@ export {
|
|
|
4218
4248
|
getWorktreesDir,
|
|
4219
4249
|
getWorktreesDirAsync,
|
|
4220
4250
|
initConfig,
|
|
4251
|
+
isConfigCredentialKey,
|
|
4221
4252
|
isEnvVarAllowed,
|
|
4222
4253
|
isUnixImpersonationEnabled,
|
|
4223
4254
|
isValid,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as AgorConfig } from './types-
|
|
1
|
+
import { a as AgorConfig } from './types-D4Rl6ZKN.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Agor Config Manager
|
|
@@ -139,6 +139,15 @@ declare function requirePublicBaseUrl(): Promise<string>;
|
|
|
139
139
|
* Use for hot paths where async is not possible.
|
|
140
140
|
*/
|
|
141
141
|
declare function loadConfigSync(): AgorConfig;
|
|
142
|
+
/**
|
|
143
|
+
* Credential keys that are valid in `config.yaml`'s `credentials` section
|
|
144
|
+
* (i.e., keys that have a meaningful global / app-level value). User-only
|
|
145
|
+
* tokens like `CLAUDE_CODE_OAUTH_TOKEN` (Pro/Max subscription) and
|
|
146
|
+
* `COPILOT_GITHUB_TOKEN` are intentionally excluded — they don't make sense
|
|
147
|
+
* as a global default.
|
|
148
|
+
*/
|
|
149
|
+
type ConfigCredentialKey = 'ANTHROPIC_API_KEY' | 'ANTHROPIC_AUTH_TOKEN' | 'ANTHROPIC_BASE_URL' | 'OPENAI_API_KEY' | 'GEMINI_API_KEY';
|
|
150
|
+
declare function isConfigCredentialKey(key: string): key is ConfigCredentialKey;
|
|
142
151
|
/**
|
|
143
152
|
* Get credential with precedence: config.yaml > process.env
|
|
144
153
|
*
|
|
@@ -148,7 +157,7 @@ declare function loadConfigSync(): AgorConfig;
|
|
|
148
157
|
* @param key - Credential key from CredentialKey enum
|
|
149
158
|
* @returns API key or undefined
|
|
150
159
|
*/
|
|
151
|
-
declare function getCredential(key:
|
|
160
|
+
declare function getCredential(key: ConfigCredentialKey): string | undefined;
|
|
152
161
|
/**
|
|
153
162
|
* Get the Unix user that the Agor daemon runs as
|
|
154
163
|
*
|
|
@@ -268,4 +277,4 @@ declare function getReposDirAsync(): Promise<string>;
|
|
|
268
277
|
*/
|
|
269
278
|
declare function getWorktreesDirAsync(): Promise<string>;
|
|
270
279
|
|
|
271
|
-
export {
|
|
280
|
+
export { resolveCodexHome as A, saveConfig as B, type ConfigCredentialKey as C, setConfigValue as D, unsetConfigValue as E, PublicBaseUrlNotConfiguredError as P, expandHomePath as a, getBaseUrl as b, getConfigPath as c, getConfigValue as d, ensureCodexHome as e, getCredential as f, getAgorHome as g, getDaemonUrl as h, getDaemonUser as i, getDataHome as j, getDataHomeAsync as k, getDefaultConfig as l, getReposDir as m, getReposDirAsync as n, getWorktreePath as o, getWorktreesDir as p, getWorktreesDirAsync as q, initConfig as r, isConfigCredentialKey as s, isUnixImpersonationEnabled as t, isWorktreeRbacEnabled as u, loadConfig as v, loadConfigFromFile as w, loadConfigSync as x, requireDaemonUser as y, requirePublicBaseUrl as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as AgorConfig } from './types-
|
|
1
|
+
import { a as AgorConfig } from './types-n61iaXub.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Agor Config Manager
|
|
@@ -139,6 +139,15 @@ declare function requirePublicBaseUrl(): Promise<string>;
|
|
|
139
139
|
* Use for hot paths where async is not possible.
|
|
140
140
|
*/
|
|
141
141
|
declare function loadConfigSync(): AgorConfig;
|
|
142
|
+
/**
|
|
143
|
+
* Credential keys that are valid in `config.yaml`'s `credentials` section
|
|
144
|
+
* (i.e., keys that have a meaningful global / app-level value). User-only
|
|
145
|
+
* tokens like `CLAUDE_CODE_OAUTH_TOKEN` (Pro/Max subscription) and
|
|
146
|
+
* `COPILOT_GITHUB_TOKEN` are intentionally excluded — they don't make sense
|
|
147
|
+
* as a global default.
|
|
148
|
+
*/
|
|
149
|
+
type ConfigCredentialKey = 'ANTHROPIC_API_KEY' | 'ANTHROPIC_AUTH_TOKEN' | 'ANTHROPIC_BASE_URL' | 'OPENAI_API_KEY' | 'GEMINI_API_KEY';
|
|
150
|
+
declare function isConfigCredentialKey(key: string): key is ConfigCredentialKey;
|
|
142
151
|
/**
|
|
143
152
|
* Get credential with precedence: config.yaml > process.env
|
|
144
153
|
*
|
|
@@ -148,7 +157,7 @@ declare function loadConfigSync(): AgorConfig;
|
|
|
148
157
|
* @param key - Credential key from CredentialKey enum
|
|
149
158
|
* @returns API key or undefined
|
|
150
159
|
*/
|
|
151
|
-
declare function getCredential(key:
|
|
160
|
+
declare function getCredential(key: ConfigCredentialKey): string | undefined;
|
|
152
161
|
/**
|
|
153
162
|
* Get the Unix user that the Agor daemon runs as
|
|
154
163
|
*
|
|
@@ -268,4 +277,4 @@ declare function getReposDirAsync(): Promise<string>;
|
|
|
268
277
|
*/
|
|
269
278
|
declare function getWorktreesDirAsync(): Promise<string>;
|
|
270
279
|
|
|
271
|
-
export {
|
|
280
|
+
export { resolveCodexHome as A, saveConfig as B, type ConfigCredentialKey as C, setConfigValue as D, unsetConfigValue as E, PublicBaseUrlNotConfiguredError as P, expandHomePath as a, getBaseUrl as b, getConfigPath as c, getConfigValue as d, ensureCodexHome as e, getCredential as f, getAgorHome as g, getDaemonUrl as h, getDaemonUser as i, getDataHome as j, getDataHomeAsync as k, getDefaultConfig as l, getReposDir as m, getReposDirAsync as n, getWorktreePath as o, getWorktreesDir as p, getWorktreesDirAsync as q, initConfig as r, isConfigCredentialKey as s, isUnixImpersonationEnabled as t, isWorktreeRbacEnabled as u, loadConfig as v, loadConfigFromFile as w, loadConfigSync as x, requireDaemonUser as y, requirePublicBaseUrl as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as AgenticToolName } from './agentic-tool-BulhIUGb.cjs';
|
|
2
2
|
import { R as Repo, h as Worktree } from './repo-Ckl-vaAk.cjs';
|
|
3
3
|
import { P as PermissionMode } from './session-MNU4BQv4.cjs';
|
|
4
|
-
import {
|
|
4
|
+
import { q as User } from './user-CpfkcV2C.cjs';
|
|
5
5
|
|
|
6
6
|
type ResourceRepoConfig = Pick<Repo, 'repo_id' | 'slug' | 'remote_url' | 'repo_type' | 'default_branch'> & {
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as AgenticToolName } from './agentic-tool-cYqsU5i5.js';
|
|
2
2
|
import { R as Repo, h as Worktree } from './repo-84E0A2gV.js';
|
|
3
3
|
import { P as PermissionMode } from './session-CAfhv1qL.js';
|
|
4
|
-
import {
|
|
4
|
+
import { q as User } from './user-DP-XZMIM.js';
|
|
5
5
|
|
|
6
6
|
type ResourceRepoConfig = Pick<Repo, 'repo_id' | 'slug' | 'remote_url' | 'repo_type' | 'default_branch'> & {
|
|
7
7
|
/**
|