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
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import '../id-CoIbY_uc.cjs';
|
|
2
|
-
export { i as isForeignKeyConstraintError, w as withSessionGuard } from '../session-guard-
|
|
2
|
+
export { i as isForeignKeyConstraintError, w as withSessionGuard } from '../session-guard-KHh0cnET.cjs';
|
|
3
3
|
import '../session-MNU4BQv4.cjs';
|
|
4
4
|
import '../agentic-tool-BulhIUGb.cjs';
|
|
5
5
|
import '../context-BpkCELpO.cjs';
|
|
6
|
-
import '../client-
|
|
6
|
+
import '../client-CemqXk0v.cjs';
|
|
7
7
|
import 'drizzle-orm/libsql';
|
|
8
8
|
import 'drizzle-orm/postgres-js';
|
|
9
9
|
import 'drizzle-orm';
|
|
10
|
-
import '../message-
|
|
10
|
+
import '../message-CSWOsdcZ.cjs';
|
|
11
11
|
import '../board-D7SnPqp-.cjs';
|
|
12
|
-
import '../task-
|
|
12
|
+
import '../task-C2Hy7H6u.cjs';
|
|
13
13
|
import 'drizzle-orm/pg-core';
|
|
14
14
|
import 'drizzle-orm/sqlite-core';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import '../id-CoIbY_uc.js';
|
|
2
|
-
export { i as isForeignKeyConstraintError, w as withSessionGuard } from '../session-guard-
|
|
2
|
+
export { i as isForeignKeyConstraintError, w as withSessionGuard } from '../session-guard-BFqVtBoS.js';
|
|
3
3
|
import '../session-CAfhv1qL.js';
|
|
4
4
|
import '../agentic-tool-cYqsU5i5.js';
|
|
5
5
|
import '../context-BpkCELpO.js';
|
|
6
|
-
import '../client-
|
|
6
|
+
import '../client-uYEOha6g.js';
|
|
7
7
|
import 'drizzle-orm/libsql';
|
|
8
8
|
import 'drizzle-orm/postgres-js';
|
|
9
9
|
import 'drizzle-orm';
|
|
10
|
-
import '../message-
|
|
10
|
+
import '../message-DZa8g0s0.js';
|
|
11
11
|
import '../board-D3YJ0_ih.js';
|
|
12
|
-
import '../task-
|
|
12
|
+
import '../task-BHV-YHg1.js';
|
|
13
13
|
import 'drizzle-orm/pg-core';
|
|
14
14
|
import 'drizzle-orm/sqlite-core';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- Task-centric queue refactor (Section C of never-lose-prompt design) — part 1
|
|
2
|
+
--
|
|
3
|
+
-- Mirror of sqlite/0039_queued_tasks.sql. Additive: introduces
|
|
4
|
+
-- tasks.queue_position + tasks_queue_idx. Backfill + messages-column drop
|
|
5
|
+
-- ships in 0029 alongside the code refactor.
|
|
6
|
+
|
|
7
|
+
ALTER TABLE "tasks" ADD COLUMN IF NOT EXISTS "queue_position" integer;--> statement-breakpoint
|
|
8
|
+
CREATE INDEX IF NOT EXISTS "tasks_queue_idx" ON "tasks" ("session_id", "status", "queue_position");
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- Task-centric queue refactor (Section C of never-lose-prompt design) — part 2
|
|
2
|
+
--
|
|
3
|
+
-- Mirror of sqlite/0040_migrate_queued_messages.sql. Drops the legacy
|
|
4
|
+
-- message-level queue without backfilling: any prompts queued at daemon
|
|
5
|
+
-- restart can be re-issued by the caller, so we do not preserve them.
|
|
6
|
+
--
|
|
7
|
+
-- Belt-and-suspenders: a partial unique index on
|
|
8
|
+
-- (session_id, queue_position) WHERE status='queued' guards the new
|
|
9
|
+
-- `tasks.createPending` race fix at the storage layer.
|
|
10
|
+
|
|
11
|
+
-- 1. Drop legacy queued message rows.
|
|
12
|
+
DELETE FROM "messages" WHERE "status" = 'queued';
|
|
13
|
+
--> statement-breakpoint
|
|
14
|
+
|
|
15
|
+
-- 2. Drop messages.status / messages.queue_position + their composite index.
|
|
16
|
+
DROP INDEX IF EXISTS "messages_queue_idx";--> statement-breakpoint
|
|
17
|
+
ALTER TABLE "messages" DROP COLUMN IF EXISTS "status";--> statement-breakpoint
|
|
18
|
+
ALTER TABLE "messages" DROP COLUMN IF EXISTS "queue_position";--> statement-breakpoint
|
|
19
|
+
|
|
20
|
+
-- 3. Partial unique index — defense-in-depth for `tasks.createPending` race
|
|
21
|
+
-- serialization.
|
|
22
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "tasks_queued_position_unique"
|
|
23
|
+
ON "tasks" ("session_id", "queue_position")
|
|
24
|
+
WHERE "status" = 'queued';
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
-- Restructure per-tool credentials into per-tool buckets.
|
|
2
|
+
--
|
|
3
|
+
-- Lifts encrypted credential strings from two legacy locations:
|
|
4
|
+
-- 1. data.api_keys.<FIELD> (flat map, current PR's intermediate shape)
|
|
5
|
+
-- 2. data.env_vars.<FIELD> (legacy plaintext form: string)
|
|
6
|
+
-- 3. data.env_vars.<FIELD>.value_encrypted (v0.5 object form)
|
|
7
|
+
--
|
|
8
|
+
-- ...into the new per-tool structure:
|
|
9
|
+
-- data.agentic_tools.<tool>.<FIELD> (encrypted string, uniform shape)
|
|
10
|
+
--
|
|
11
|
+
-- Source priority is api_keys > env_vars (api_keys is more recently/explicitly set).
|
|
12
|
+
-- All values stay encrypted at rest — the runtime decrypts on read; URL-typed
|
|
13
|
+
-- fields are still stored as encrypted blobs for shape uniformity.
|
|
14
|
+
--
|
|
15
|
+
-- Idempotency: per-field lift is skipped if the target is already populated.
|
|
16
|
+
-- Non-destructive: source rows are only removed AFTER the target is verified
|
|
17
|
+
-- populated, so a partial run can be safely retried.
|
|
18
|
+
|
|
19
|
+
-- ============================================================
|
|
20
|
+
-- Lift step: agentic_tools.<tool>.<FIELD> ← api_keys/env_vars
|
|
21
|
+
-- ============================================================
|
|
22
|
+
|
|
23
|
+
-- claude-code: ANTHROPIC_API_KEY
|
|
24
|
+
UPDATE users SET data = jsonb_set(
|
|
25
|
+
data,
|
|
26
|
+
'{agentic_tools,claude-code,ANTHROPIC_API_KEY}',
|
|
27
|
+
COALESCE(
|
|
28
|
+
data->'api_keys'->'ANTHROPIC_API_KEY',
|
|
29
|
+
CASE jsonb_typeof(data->'env_vars'->'ANTHROPIC_API_KEY')
|
|
30
|
+
WHEN 'string' THEN data->'env_vars'->'ANTHROPIC_API_KEY'
|
|
31
|
+
WHEN 'object' THEN data->'env_vars'->'ANTHROPIC_API_KEY'->'value_encrypted'
|
|
32
|
+
END
|
|
33
|
+
),
|
|
34
|
+
true
|
|
35
|
+
)
|
|
36
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'claude-code', '{}'::jsonb) ? 'ANTHROPIC_API_KEY')
|
|
37
|
+
AND COALESCE(
|
|
38
|
+
data->'api_keys'->'ANTHROPIC_API_KEY',
|
|
39
|
+
CASE jsonb_typeof(data->'env_vars'->'ANTHROPIC_API_KEY')
|
|
40
|
+
WHEN 'string' THEN data->'env_vars'->'ANTHROPIC_API_KEY'
|
|
41
|
+
WHEN 'object' THEN data->'env_vars'->'ANTHROPIC_API_KEY'->'value_encrypted'
|
|
42
|
+
END
|
|
43
|
+
) IS NOT NULL;
|
|
44
|
+
|
|
45
|
+
-- claude-code: CLAUDE_CODE_OAUTH_TOKEN
|
|
46
|
+
UPDATE users SET data = jsonb_set(
|
|
47
|
+
data,
|
|
48
|
+
'{agentic_tools,claude-code,CLAUDE_CODE_OAUTH_TOKEN}',
|
|
49
|
+
COALESCE(
|
|
50
|
+
data->'api_keys'->'CLAUDE_CODE_OAUTH_TOKEN',
|
|
51
|
+
CASE jsonb_typeof(data->'env_vars'->'CLAUDE_CODE_OAUTH_TOKEN')
|
|
52
|
+
WHEN 'string' THEN data->'env_vars'->'CLAUDE_CODE_OAUTH_TOKEN'
|
|
53
|
+
WHEN 'object' THEN data->'env_vars'->'CLAUDE_CODE_OAUTH_TOKEN'->'value_encrypted'
|
|
54
|
+
END
|
|
55
|
+
),
|
|
56
|
+
true
|
|
57
|
+
)
|
|
58
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'claude-code', '{}'::jsonb) ? 'CLAUDE_CODE_OAUTH_TOKEN')
|
|
59
|
+
AND COALESCE(
|
|
60
|
+
data->'api_keys'->'CLAUDE_CODE_OAUTH_TOKEN',
|
|
61
|
+
CASE jsonb_typeof(data->'env_vars'->'CLAUDE_CODE_OAUTH_TOKEN')
|
|
62
|
+
WHEN 'string' THEN data->'env_vars'->'CLAUDE_CODE_OAUTH_TOKEN'
|
|
63
|
+
WHEN 'object' THEN data->'env_vars'->'CLAUDE_CODE_OAUTH_TOKEN'->'value_encrypted'
|
|
64
|
+
END
|
|
65
|
+
) IS NOT NULL;
|
|
66
|
+
|
|
67
|
+
-- claude-code: ANTHROPIC_BASE_URL (env_vars only — was never in api_keys)
|
|
68
|
+
UPDATE users SET data = jsonb_set(
|
|
69
|
+
data,
|
|
70
|
+
'{agentic_tools,claude-code,ANTHROPIC_BASE_URL}',
|
|
71
|
+
CASE jsonb_typeof(data->'env_vars'->'ANTHROPIC_BASE_URL')
|
|
72
|
+
WHEN 'string' THEN data->'env_vars'->'ANTHROPIC_BASE_URL'
|
|
73
|
+
WHEN 'object' THEN data->'env_vars'->'ANTHROPIC_BASE_URL'->'value_encrypted'
|
|
74
|
+
END,
|
|
75
|
+
true
|
|
76
|
+
)
|
|
77
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'claude-code', '{}'::jsonb) ? 'ANTHROPIC_BASE_URL')
|
|
78
|
+
AND CASE jsonb_typeof(data->'env_vars'->'ANTHROPIC_BASE_URL')
|
|
79
|
+
WHEN 'string' THEN data->'env_vars'->'ANTHROPIC_BASE_URL'
|
|
80
|
+
WHEN 'object' THEN data->'env_vars'->'ANTHROPIC_BASE_URL'->'value_encrypted'
|
|
81
|
+
ELSE NULL
|
|
82
|
+
END IS NOT NULL;
|
|
83
|
+
|
|
84
|
+
-- claude-code: ANTHROPIC_AUTH_TOKEN (env_vars only)
|
|
85
|
+
UPDATE users SET data = jsonb_set(
|
|
86
|
+
data,
|
|
87
|
+
'{agentic_tools,claude-code,ANTHROPIC_AUTH_TOKEN}',
|
|
88
|
+
CASE jsonb_typeof(data->'env_vars'->'ANTHROPIC_AUTH_TOKEN')
|
|
89
|
+
WHEN 'string' THEN data->'env_vars'->'ANTHROPIC_AUTH_TOKEN'
|
|
90
|
+
WHEN 'object' THEN data->'env_vars'->'ANTHROPIC_AUTH_TOKEN'->'value_encrypted'
|
|
91
|
+
END,
|
|
92
|
+
true
|
|
93
|
+
)
|
|
94
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'claude-code', '{}'::jsonb) ? 'ANTHROPIC_AUTH_TOKEN')
|
|
95
|
+
AND CASE jsonb_typeof(data->'env_vars'->'ANTHROPIC_AUTH_TOKEN')
|
|
96
|
+
WHEN 'string' THEN data->'env_vars'->'ANTHROPIC_AUTH_TOKEN'
|
|
97
|
+
WHEN 'object' THEN data->'env_vars'->'ANTHROPIC_AUTH_TOKEN'->'value_encrypted'
|
|
98
|
+
ELSE NULL
|
|
99
|
+
END IS NOT NULL;
|
|
100
|
+
|
|
101
|
+
-- codex: OPENAI_API_KEY
|
|
102
|
+
UPDATE users SET data = jsonb_set(
|
|
103
|
+
data,
|
|
104
|
+
'{agentic_tools,codex,OPENAI_API_KEY}',
|
|
105
|
+
COALESCE(
|
|
106
|
+
data->'api_keys'->'OPENAI_API_KEY',
|
|
107
|
+
CASE jsonb_typeof(data->'env_vars'->'OPENAI_API_KEY')
|
|
108
|
+
WHEN 'string' THEN data->'env_vars'->'OPENAI_API_KEY'
|
|
109
|
+
WHEN 'object' THEN data->'env_vars'->'OPENAI_API_KEY'->'value_encrypted'
|
|
110
|
+
END
|
|
111
|
+
),
|
|
112
|
+
true
|
|
113
|
+
)
|
|
114
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'codex', '{}'::jsonb) ? 'OPENAI_API_KEY')
|
|
115
|
+
AND COALESCE(
|
|
116
|
+
data->'api_keys'->'OPENAI_API_KEY',
|
|
117
|
+
CASE jsonb_typeof(data->'env_vars'->'OPENAI_API_KEY')
|
|
118
|
+
WHEN 'string' THEN data->'env_vars'->'OPENAI_API_KEY'
|
|
119
|
+
WHEN 'object' THEN data->'env_vars'->'OPENAI_API_KEY'->'value_encrypted'
|
|
120
|
+
END
|
|
121
|
+
) IS NOT NULL;
|
|
122
|
+
|
|
123
|
+
-- gemini: GEMINI_API_KEY
|
|
124
|
+
UPDATE users SET data = jsonb_set(
|
|
125
|
+
data,
|
|
126
|
+
'{agentic_tools,gemini,GEMINI_API_KEY}',
|
|
127
|
+
COALESCE(
|
|
128
|
+
data->'api_keys'->'GEMINI_API_KEY',
|
|
129
|
+
CASE jsonb_typeof(data->'env_vars'->'GEMINI_API_KEY')
|
|
130
|
+
WHEN 'string' THEN data->'env_vars'->'GEMINI_API_KEY'
|
|
131
|
+
WHEN 'object' THEN data->'env_vars'->'GEMINI_API_KEY'->'value_encrypted'
|
|
132
|
+
END
|
|
133
|
+
),
|
|
134
|
+
true
|
|
135
|
+
)
|
|
136
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'gemini', '{}'::jsonb) ? 'GEMINI_API_KEY')
|
|
137
|
+
AND COALESCE(
|
|
138
|
+
data->'api_keys'->'GEMINI_API_KEY',
|
|
139
|
+
CASE jsonb_typeof(data->'env_vars'->'GEMINI_API_KEY')
|
|
140
|
+
WHEN 'string' THEN data->'env_vars'->'GEMINI_API_KEY'
|
|
141
|
+
WHEN 'object' THEN data->'env_vars'->'GEMINI_API_KEY'->'value_encrypted'
|
|
142
|
+
END
|
|
143
|
+
) IS NOT NULL;
|
|
144
|
+
|
|
145
|
+
-- copilot: COPILOT_GITHUB_TOKEN
|
|
146
|
+
-- (Note: GH_TOKEN / GITHUB_TOKEN are intentionally NOT migrated — they have
|
|
147
|
+
-- legitimate non-Copilot uses (git, gh CLI). The Copilot SDK's own fallback
|
|
148
|
+
-- chain still picks them up at runtime if no per-tool token is set.)
|
|
149
|
+
UPDATE users SET data = jsonb_set(
|
|
150
|
+
data,
|
|
151
|
+
'{agentic_tools,copilot,COPILOT_GITHUB_TOKEN}',
|
|
152
|
+
COALESCE(
|
|
153
|
+
data->'api_keys'->'COPILOT_GITHUB_TOKEN',
|
|
154
|
+
CASE jsonb_typeof(data->'env_vars'->'COPILOT_GITHUB_TOKEN')
|
|
155
|
+
WHEN 'string' THEN data->'env_vars'->'COPILOT_GITHUB_TOKEN'
|
|
156
|
+
WHEN 'object' THEN data->'env_vars'->'COPILOT_GITHUB_TOKEN'->'value_encrypted'
|
|
157
|
+
END
|
|
158
|
+
),
|
|
159
|
+
true
|
|
160
|
+
)
|
|
161
|
+
WHERE NOT (COALESCE(data->'agentic_tools'->'copilot', '{}'::jsonb) ? 'COPILOT_GITHUB_TOKEN')
|
|
162
|
+
AND COALESCE(
|
|
163
|
+
data->'api_keys'->'COPILOT_GITHUB_TOKEN',
|
|
164
|
+
CASE jsonb_typeof(data->'env_vars'->'COPILOT_GITHUB_TOKEN')
|
|
165
|
+
WHEN 'string' THEN data->'env_vars'->'COPILOT_GITHUB_TOKEN'
|
|
166
|
+
WHEN 'object' THEN data->'env_vars'->'COPILOT_GITHUB_TOKEN'->'value_encrypted'
|
|
167
|
+
END
|
|
168
|
+
) IS NOT NULL;
|
|
169
|
+
|
|
170
|
+
-- ============================================================
|
|
171
|
+
-- Cleanup: remove now-redundant source entries.
|
|
172
|
+
-- Each runs only if the corresponding target is verifiably populated.
|
|
173
|
+
-- ============================================================
|
|
174
|
+
|
|
175
|
+
-- claude-code: ANTHROPIC_API_KEY
|
|
176
|
+
UPDATE users SET data = (data #- '{api_keys,ANTHROPIC_API_KEY}') #- '{env_vars,ANTHROPIC_API_KEY}'
|
|
177
|
+
WHERE data->'agentic_tools'->'claude-code'->'ANTHROPIC_API_KEY' IS NOT NULL;
|
|
178
|
+
|
|
179
|
+
-- claude-code: CLAUDE_CODE_OAUTH_TOKEN
|
|
180
|
+
UPDATE users SET data = (data #- '{api_keys,CLAUDE_CODE_OAUTH_TOKEN}') #- '{env_vars,CLAUDE_CODE_OAUTH_TOKEN}'
|
|
181
|
+
WHERE data->'agentic_tools'->'claude-code'->'CLAUDE_CODE_OAUTH_TOKEN' IS NOT NULL;
|
|
182
|
+
|
|
183
|
+
-- claude-code: ANTHROPIC_BASE_URL
|
|
184
|
+
UPDATE users SET data = data #- '{env_vars,ANTHROPIC_BASE_URL}'
|
|
185
|
+
WHERE data->'agentic_tools'->'claude-code'->'ANTHROPIC_BASE_URL' IS NOT NULL;
|
|
186
|
+
|
|
187
|
+
-- claude-code: ANTHROPIC_AUTH_TOKEN
|
|
188
|
+
UPDATE users SET data = data #- '{env_vars,ANTHROPIC_AUTH_TOKEN}'
|
|
189
|
+
WHERE data->'agentic_tools'->'claude-code'->'ANTHROPIC_AUTH_TOKEN' IS NOT NULL;
|
|
190
|
+
|
|
191
|
+
-- codex: OPENAI_API_KEY
|
|
192
|
+
UPDATE users SET data = (data #- '{api_keys,OPENAI_API_KEY}') #- '{env_vars,OPENAI_API_KEY}'
|
|
193
|
+
WHERE data->'agentic_tools'->'codex'->'OPENAI_API_KEY' IS NOT NULL;
|
|
194
|
+
|
|
195
|
+
-- gemini: GEMINI_API_KEY
|
|
196
|
+
UPDATE users SET data = (data #- '{api_keys,GEMINI_API_KEY}') #- '{env_vars,GEMINI_API_KEY}'
|
|
197
|
+
WHERE data->'agentic_tools'->'gemini'->'GEMINI_API_KEY' IS NOT NULL;
|
|
198
|
+
|
|
199
|
+
-- copilot: COPILOT_GITHUB_TOKEN
|
|
200
|
+
UPDATE users SET data = (data #- '{api_keys,COPILOT_GITHUB_TOKEN}') #- '{env_vars,COPILOT_GITHUB_TOKEN}'
|
|
201
|
+
WHERE data->'agentic_tools'->'copilot'->'COPILOT_GITHUB_TOKEN' IS NOT NULL;
|
|
@@ -197,6 +197,27 @@
|
|
|
197
197
|
"when": 1777000000000,
|
|
198
198
|
"tag": "0027_mcp_oauth_token_refresh",
|
|
199
199
|
"breakpoints": true
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"idx": 28,
|
|
203
|
+
"version": "7",
|
|
204
|
+
"when": 1777200000000,
|
|
205
|
+
"tag": "0028_queued_tasks",
|
|
206
|
+
"breakpoints": true
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"idx": 29,
|
|
210
|
+
"version": "7",
|
|
211
|
+
"when": 1777200100000,
|
|
212
|
+
"tag": "0030_migrate_queued_messages",
|
|
213
|
+
"breakpoints": true
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"idx": 30,
|
|
217
|
+
"version": "7",
|
|
218
|
+
"when": 1777300000000,
|
|
219
|
+
"tag": "0031_restructure_agentic_tool_config",
|
|
220
|
+
"breakpoints": true
|
|
200
221
|
}
|
|
201
222
|
]
|
|
202
223
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
-- Task-centric queue refactor (Section C of never-lose-prompt design) — part 1
|
|
2
|
+
--
|
|
3
|
+
-- Additive migration: introduces queue_position on tasks. The status enum
|
|
4
|
+
-- gains a 'queued' value at the application layer (tasks.status is `text NOT
|
|
5
|
+
-- NULL` with no DB-level CHECK).
|
|
6
|
+
--
|
|
7
|
+
-- The follow-up migration (0040) backfills queued *messages* into queued
|
|
8
|
+
-- *tasks* and drops `messages.status` / `messages.queue_position` once the
|
|
9
|
+
-- code base no longer reads them. Splitting it lets each migration be safely
|
|
10
|
+
-- deployable in isolation.
|
|
11
|
+
|
|
12
|
+
ALTER TABLE `tasks` ADD `queue_position` integer;--> statement-breakpoint
|
|
13
|
+
CREATE INDEX `tasks_queue_idx` ON `tasks` (`session_id`,`status`,`queue_position`);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
-- Task-centric queue refactor (Section C of never-lose-prompt design) — part 2
|
|
2
|
+
--
|
|
3
|
+
-- Drops the legacy message-level queue (`messages.status='queued'`,
|
|
4
|
+
-- `messages.queue_position`). Queued rows are simply discarded — preserving
|
|
5
|
+
-- them across the upgrade is not a goal: any prompts queued at daemon
|
|
6
|
+
-- restart can be re-issued by the caller. Pairs with
|
|
7
|
+
-- postgres/0030_migrate_queued_messages.sql.
|
|
8
|
+
--
|
|
9
|
+
-- Belt-and-suspenders: a partial unique index on
|
|
10
|
+
-- (session_id, queue_position) WHERE status='queued' guards the new
|
|
11
|
+
-- `tasks.createPending` race fix at the storage layer, so even if a
|
|
12
|
+
-- transactional read-then-insert ever slipped, the DB would reject the
|
|
13
|
+
-- collision instead of silently double-queuing.
|
|
14
|
+
|
|
15
|
+
-- 1. Drop legacy queued message rows. They had `index = -1` and never
|
|
16
|
+
-- participated in the conversation, so they're safe to discard.
|
|
17
|
+
DELETE FROM `messages` WHERE `status` = 'queued';
|
|
18
|
+
--> statement-breakpoint
|
|
19
|
+
|
|
20
|
+
-- 2. Drop messages.status / messages.queue_position via SQLite's
|
|
21
|
+
-- table-rebuild idiom. The composite `messages_queue_idx` covered both
|
|
22
|
+
-- columns and goes away with them.
|
|
23
|
+
PRAGMA foreign_keys=OFF;--> statement-breakpoint
|
|
24
|
+
DROP INDEX IF EXISTS `messages_queue_idx`;--> statement-breakpoint
|
|
25
|
+
CREATE TABLE `__new_messages` (
|
|
26
|
+
`message_id` text(36) PRIMARY KEY NOT NULL,
|
|
27
|
+
`created_at` integer NOT NULL,
|
|
28
|
+
`session_id` text(36) NOT NULL,
|
|
29
|
+
`task_id` text(36),
|
|
30
|
+
`type` text NOT NULL,
|
|
31
|
+
`role` text NOT NULL,
|
|
32
|
+
`index` integer NOT NULL,
|
|
33
|
+
`timestamp` integer NOT NULL,
|
|
34
|
+
`content_preview` text,
|
|
35
|
+
`parent_tool_use_id` text,
|
|
36
|
+
`data` text NOT NULL,
|
|
37
|
+
FOREIGN KEY (`session_id`) REFERENCES `sessions`(`session_id`) ON UPDATE no action ON DELETE cascade,
|
|
38
|
+
FOREIGN KEY (`task_id`) REFERENCES `tasks`(`task_id`) ON UPDATE no action ON DELETE set null
|
|
39
|
+
);
|
|
40
|
+
--> statement-breakpoint
|
|
41
|
+
INSERT INTO `__new_messages` (
|
|
42
|
+
`message_id`, `created_at`, `session_id`, `task_id`, `type`, `role`,
|
|
43
|
+
`index`, `timestamp`, `content_preview`, `parent_tool_use_id`, `data`
|
|
44
|
+
) SELECT
|
|
45
|
+
`message_id`, `created_at`, `session_id`, `task_id`, `type`, `role`,
|
|
46
|
+
`index`, `timestamp`, `content_preview`, `parent_tool_use_id`, `data`
|
|
47
|
+
FROM `messages`;
|
|
48
|
+
--> statement-breakpoint
|
|
49
|
+
DROP TABLE `messages`;--> statement-breakpoint
|
|
50
|
+
ALTER TABLE `__new_messages` RENAME TO `messages`;--> statement-breakpoint
|
|
51
|
+
PRAGMA foreign_keys=ON;--> statement-breakpoint
|
|
52
|
+
CREATE INDEX `messages_session_id_idx` ON `messages` (`session_id`);--> statement-breakpoint
|
|
53
|
+
CREATE INDEX `messages_task_id_idx` ON `messages` (`task_id`);--> statement-breakpoint
|
|
54
|
+
CREATE INDEX `messages_session_index_idx` ON `messages` (`session_id`,`index`);--> statement-breakpoint
|
|
55
|
+
|
|
56
|
+
-- 3. Partial unique index — defense-in-depth for `tasks.createPending` race
|
|
57
|
+
-- serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
|
|
58
|
+
-- rows have NULL queue_position and are unaffected.
|
|
59
|
+
CREATE UNIQUE INDEX `tasks_queued_position_unique`
|
|
60
|
+
ON `tasks` (`session_id`, `queue_position`)
|
|
61
|
+
WHERE `status` = 'queued';
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
-- Restructure per-tool credentials into per-tool buckets.
|
|
2
|
+
--
|
|
3
|
+
-- Lifts encrypted credential strings from two legacy locations:
|
|
4
|
+
-- 1. data.api_keys.<FIELD> (flat map, current PR's intermediate shape)
|
|
5
|
+
-- 2. data.env_vars.<FIELD> (legacy plaintext form: string)
|
|
6
|
+
-- 3. data.env_vars.<FIELD>.value_encrypted (v0.5 object form)
|
|
7
|
+
--
|
|
8
|
+
-- ...into the new per-tool structure:
|
|
9
|
+
-- data.agentic_tools.<tool>.<FIELD> (encrypted string, uniform shape)
|
|
10
|
+
--
|
|
11
|
+
-- Source priority is api_keys > env_vars (api_keys is more recently/explicitly set).
|
|
12
|
+
-- All values stay encrypted at rest — the runtime decrypts on read; URL-typed
|
|
13
|
+
-- fields are still stored as encrypted blobs for shape uniformity.
|
|
14
|
+
--
|
|
15
|
+
-- Idempotency: per-field lift is skipped if the target is already populated.
|
|
16
|
+
-- Non-destructive: source rows are only removed AFTER the target is verified
|
|
17
|
+
-- populated, so a partial run can be safely retried.
|
|
18
|
+
|
|
19
|
+
-- ============================================================
|
|
20
|
+
-- Lift step: agentic_tools.<tool>.<FIELD> ← api_keys/env_vars
|
|
21
|
+
-- ============================================================
|
|
22
|
+
|
|
23
|
+
-- claude-code: ANTHROPIC_API_KEY
|
|
24
|
+
UPDATE users SET data = json_set(
|
|
25
|
+
data,
|
|
26
|
+
'$.agentic_tools."claude-code".ANTHROPIC_API_KEY',
|
|
27
|
+
COALESCE(
|
|
28
|
+
json_extract(data, '$.api_keys.ANTHROPIC_API_KEY'),
|
|
29
|
+
CASE json_type(data, '$.env_vars.ANTHROPIC_API_KEY')
|
|
30
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.ANTHROPIC_API_KEY')
|
|
31
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.ANTHROPIC_API_KEY.value_encrypted')
|
|
32
|
+
END
|
|
33
|
+
)
|
|
34
|
+
)
|
|
35
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".ANTHROPIC_API_KEY') IS NULL
|
|
36
|
+
AND COALESCE(
|
|
37
|
+
json_extract(data, '$.api_keys.ANTHROPIC_API_KEY'),
|
|
38
|
+
CASE json_type(data, '$.env_vars.ANTHROPIC_API_KEY')
|
|
39
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.ANTHROPIC_API_KEY')
|
|
40
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.ANTHROPIC_API_KEY.value_encrypted')
|
|
41
|
+
END
|
|
42
|
+
) IS NOT NULL;
|
|
43
|
+
|
|
44
|
+
-- claude-code: CLAUDE_CODE_OAUTH_TOKEN
|
|
45
|
+
UPDATE users SET data = json_set(
|
|
46
|
+
data,
|
|
47
|
+
'$.agentic_tools."claude-code".CLAUDE_CODE_OAUTH_TOKEN',
|
|
48
|
+
COALESCE(
|
|
49
|
+
json_extract(data, '$.api_keys.CLAUDE_CODE_OAUTH_TOKEN'),
|
|
50
|
+
CASE json_type(data, '$.env_vars.CLAUDE_CODE_OAUTH_TOKEN')
|
|
51
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.CLAUDE_CODE_OAUTH_TOKEN')
|
|
52
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.CLAUDE_CODE_OAUTH_TOKEN.value_encrypted')
|
|
53
|
+
END
|
|
54
|
+
)
|
|
55
|
+
)
|
|
56
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".CLAUDE_CODE_OAUTH_TOKEN') IS NULL
|
|
57
|
+
AND COALESCE(
|
|
58
|
+
json_extract(data, '$.api_keys.CLAUDE_CODE_OAUTH_TOKEN'),
|
|
59
|
+
CASE json_type(data, '$.env_vars.CLAUDE_CODE_OAUTH_TOKEN')
|
|
60
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.CLAUDE_CODE_OAUTH_TOKEN')
|
|
61
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.CLAUDE_CODE_OAUTH_TOKEN.value_encrypted')
|
|
62
|
+
END
|
|
63
|
+
) IS NOT NULL;
|
|
64
|
+
|
|
65
|
+
-- claude-code: ANTHROPIC_BASE_URL (env_vars only — was never in api_keys)
|
|
66
|
+
UPDATE users SET data = json_set(
|
|
67
|
+
data,
|
|
68
|
+
'$.agentic_tools."claude-code".ANTHROPIC_BASE_URL',
|
|
69
|
+
CASE json_type(data, '$.env_vars.ANTHROPIC_BASE_URL')
|
|
70
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.ANTHROPIC_BASE_URL')
|
|
71
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.ANTHROPIC_BASE_URL.value_encrypted')
|
|
72
|
+
END
|
|
73
|
+
)
|
|
74
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".ANTHROPIC_BASE_URL') IS NULL
|
|
75
|
+
AND CASE json_type(data, '$.env_vars.ANTHROPIC_BASE_URL')
|
|
76
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.ANTHROPIC_BASE_URL')
|
|
77
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.ANTHROPIC_BASE_URL.value_encrypted')
|
|
78
|
+
ELSE NULL
|
|
79
|
+
END IS NOT NULL;
|
|
80
|
+
|
|
81
|
+
-- claude-code: ANTHROPIC_AUTH_TOKEN (env_vars only)
|
|
82
|
+
UPDATE users SET data = json_set(
|
|
83
|
+
data,
|
|
84
|
+
'$.agentic_tools."claude-code".ANTHROPIC_AUTH_TOKEN',
|
|
85
|
+
CASE json_type(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN')
|
|
86
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN')
|
|
87
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN.value_encrypted')
|
|
88
|
+
END
|
|
89
|
+
)
|
|
90
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".ANTHROPIC_AUTH_TOKEN') IS NULL
|
|
91
|
+
AND CASE json_type(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN')
|
|
92
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN')
|
|
93
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN.value_encrypted')
|
|
94
|
+
ELSE NULL
|
|
95
|
+
END IS NOT NULL;
|
|
96
|
+
|
|
97
|
+
-- codex: OPENAI_API_KEY
|
|
98
|
+
UPDATE users SET data = json_set(
|
|
99
|
+
data,
|
|
100
|
+
'$.agentic_tools.codex.OPENAI_API_KEY',
|
|
101
|
+
COALESCE(
|
|
102
|
+
json_extract(data, '$.api_keys.OPENAI_API_KEY'),
|
|
103
|
+
CASE json_type(data, '$.env_vars.OPENAI_API_KEY')
|
|
104
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.OPENAI_API_KEY')
|
|
105
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.OPENAI_API_KEY.value_encrypted')
|
|
106
|
+
END
|
|
107
|
+
)
|
|
108
|
+
)
|
|
109
|
+
WHERE json_extract(data, '$.agentic_tools.codex.OPENAI_API_KEY') IS NULL
|
|
110
|
+
AND COALESCE(
|
|
111
|
+
json_extract(data, '$.api_keys.OPENAI_API_KEY'),
|
|
112
|
+
CASE json_type(data, '$.env_vars.OPENAI_API_KEY')
|
|
113
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.OPENAI_API_KEY')
|
|
114
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.OPENAI_API_KEY.value_encrypted')
|
|
115
|
+
END
|
|
116
|
+
) IS NOT NULL;
|
|
117
|
+
|
|
118
|
+
-- gemini: GEMINI_API_KEY
|
|
119
|
+
UPDATE users SET data = json_set(
|
|
120
|
+
data,
|
|
121
|
+
'$.agentic_tools.gemini.GEMINI_API_KEY',
|
|
122
|
+
COALESCE(
|
|
123
|
+
json_extract(data, '$.api_keys.GEMINI_API_KEY'),
|
|
124
|
+
CASE json_type(data, '$.env_vars.GEMINI_API_KEY')
|
|
125
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.GEMINI_API_KEY')
|
|
126
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.GEMINI_API_KEY.value_encrypted')
|
|
127
|
+
END
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
WHERE json_extract(data, '$.agentic_tools.gemini.GEMINI_API_KEY') IS NULL
|
|
131
|
+
AND COALESCE(
|
|
132
|
+
json_extract(data, '$.api_keys.GEMINI_API_KEY'),
|
|
133
|
+
CASE json_type(data, '$.env_vars.GEMINI_API_KEY')
|
|
134
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.GEMINI_API_KEY')
|
|
135
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.GEMINI_API_KEY.value_encrypted')
|
|
136
|
+
END
|
|
137
|
+
) IS NOT NULL;
|
|
138
|
+
|
|
139
|
+
-- copilot: COPILOT_GITHUB_TOKEN
|
|
140
|
+
-- (Note: GH_TOKEN / GITHUB_TOKEN are intentionally NOT migrated — they have
|
|
141
|
+
-- legitimate non-Copilot uses (git, gh CLI). The Copilot SDK's own fallback
|
|
142
|
+
-- chain still picks them up at runtime if no per-tool token is set.)
|
|
143
|
+
UPDATE users SET data = json_set(
|
|
144
|
+
data,
|
|
145
|
+
'$.agentic_tools.copilot.COPILOT_GITHUB_TOKEN',
|
|
146
|
+
COALESCE(
|
|
147
|
+
json_extract(data, '$.api_keys.COPILOT_GITHUB_TOKEN'),
|
|
148
|
+
CASE json_type(data, '$.env_vars.COPILOT_GITHUB_TOKEN')
|
|
149
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.COPILOT_GITHUB_TOKEN')
|
|
150
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.COPILOT_GITHUB_TOKEN.value_encrypted')
|
|
151
|
+
END
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
WHERE json_extract(data, '$.agentic_tools.copilot.COPILOT_GITHUB_TOKEN') IS NULL
|
|
155
|
+
AND COALESCE(
|
|
156
|
+
json_extract(data, '$.api_keys.COPILOT_GITHUB_TOKEN'),
|
|
157
|
+
CASE json_type(data, '$.env_vars.COPILOT_GITHUB_TOKEN')
|
|
158
|
+
WHEN 'text' THEN json_extract(data, '$.env_vars.COPILOT_GITHUB_TOKEN')
|
|
159
|
+
WHEN 'object' THEN json_extract(data, '$.env_vars.COPILOT_GITHUB_TOKEN.value_encrypted')
|
|
160
|
+
END
|
|
161
|
+
) IS NOT NULL;
|
|
162
|
+
|
|
163
|
+
-- ============================================================
|
|
164
|
+
-- Cleanup: remove now-redundant source entries.
|
|
165
|
+
-- Each runs only if the corresponding target is verifiably populated.
|
|
166
|
+
-- ============================================================
|
|
167
|
+
|
|
168
|
+
-- claude-code: ANTHROPIC_API_KEY
|
|
169
|
+
UPDATE users SET data = json_remove(json_remove(data,
|
|
170
|
+
'$.api_keys.ANTHROPIC_API_KEY'),
|
|
171
|
+
'$.env_vars.ANTHROPIC_API_KEY')
|
|
172
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".ANTHROPIC_API_KEY') IS NOT NULL;
|
|
173
|
+
|
|
174
|
+
-- claude-code: CLAUDE_CODE_OAUTH_TOKEN
|
|
175
|
+
UPDATE users SET data = json_remove(json_remove(data,
|
|
176
|
+
'$.api_keys.CLAUDE_CODE_OAUTH_TOKEN'),
|
|
177
|
+
'$.env_vars.CLAUDE_CODE_OAUTH_TOKEN')
|
|
178
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".CLAUDE_CODE_OAUTH_TOKEN') IS NOT NULL;
|
|
179
|
+
|
|
180
|
+
-- claude-code: ANTHROPIC_BASE_URL
|
|
181
|
+
UPDATE users SET data = json_remove(data, '$.env_vars.ANTHROPIC_BASE_URL')
|
|
182
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".ANTHROPIC_BASE_URL') IS NOT NULL;
|
|
183
|
+
|
|
184
|
+
-- claude-code: ANTHROPIC_AUTH_TOKEN
|
|
185
|
+
UPDATE users SET data = json_remove(data, '$.env_vars.ANTHROPIC_AUTH_TOKEN')
|
|
186
|
+
WHERE json_extract(data, '$.agentic_tools."claude-code".ANTHROPIC_AUTH_TOKEN') IS NOT NULL;
|
|
187
|
+
|
|
188
|
+
-- codex: OPENAI_API_KEY
|
|
189
|
+
UPDATE users SET data = json_remove(json_remove(data,
|
|
190
|
+
'$.api_keys.OPENAI_API_KEY'),
|
|
191
|
+
'$.env_vars.OPENAI_API_KEY')
|
|
192
|
+
WHERE json_extract(data, '$.agentic_tools.codex.OPENAI_API_KEY') IS NOT NULL;
|
|
193
|
+
|
|
194
|
+
-- gemini: GEMINI_API_KEY
|
|
195
|
+
UPDATE users SET data = json_remove(json_remove(data,
|
|
196
|
+
'$.api_keys.GEMINI_API_KEY'),
|
|
197
|
+
'$.env_vars.GEMINI_API_KEY')
|
|
198
|
+
WHERE json_extract(data, '$.agentic_tools.gemini.GEMINI_API_KEY') IS NOT NULL;
|
|
199
|
+
|
|
200
|
+
-- copilot: COPILOT_GITHUB_TOKEN
|
|
201
|
+
UPDATE users SET data = json_remove(json_remove(data,
|
|
202
|
+
'$.api_keys.COPILOT_GITHUB_TOKEN'),
|
|
203
|
+
'$.env_vars.COPILOT_GITHUB_TOKEN')
|
|
204
|
+
WHERE json_extract(data, '$.agentic_tools.copilot.COPILOT_GITHUB_TOKEN') IS NOT NULL;
|
|
@@ -260,6 +260,27 @@
|
|
|
260
260
|
"when": 1777000000000,
|
|
261
261
|
"tag": "0038_mcp_oauth_token_refresh",
|
|
262
262
|
"breakpoints": true
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"idx": 39,
|
|
266
|
+
"version": "6",
|
|
267
|
+
"when": 1777200000000,
|
|
268
|
+
"tag": "0039_queued_tasks",
|
|
269
|
+
"breakpoints": true
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"idx": 40,
|
|
273
|
+
"version": "6",
|
|
274
|
+
"when": 1777200100000,
|
|
275
|
+
"tag": "0040_migrate_queued_messages",
|
|
276
|
+
"breakpoints": true
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"idx": 41,
|
|
280
|
+
"version": "6",
|
|
281
|
+
"when": 1777300000000,
|
|
282
|
+
"tag": "0041_restructure_agentic_tool_config",
|
|
283
|
+
"breakpoints": true
|
|
263
284
|
}
|
|
264
285
|
]
|
|
265
286
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { C as ChannelType } from '../gateway-
|
|
1
|
+
import { C as ChannelType } from '../gateway-BWq4j_Ll.cjs';
|
|
2
2
|
import '../agentic-tool-BulhIUGb.cjs';
|
|
3
3
|
import '../id-CoIbY_uc.cjs';
|
|
4
4
|
import '../session-MNU4BQv4.cjs';
|
|
5
5
|
import '../context-BpkCELpO.cjs';
|
|
6
|
-
import '../user-
|
|
6
|
+
import '../user-CpfkcV2C.cjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Gateway Connector Interface
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { C as ChannelType } from '../gateway-
|
|
1
|
+
import { C as ChannelType } from '../gateway-C3Jm_akw.js';
|
|
2
2
|
import '../agentic-tool-cYqsU5i5.js';
|
|
3
3
|
import '../id-CoIbY_uc.js';
|
|
4
4
|
import '../session-CAfhv1qL.js';
|
|
5
5
|
import '../context-BpkCELpO.js';
|
|
6
|
-
import '../user-
|
|
6
|
+
import '../user-DP-XZMIM.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Gateway Connector Interface
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as AgenticToolName, g as CodexSandboxMode, d as CodexApprovalPolicy } from './agentic-tool-BulhIUGb.cjs';
|
|
2
2
|
import { e as UUID, W as WorktreeID, f as UserID, S as SessionID } from './id-CoIbY_uc.cjs';
|
|
3
3
|
import { P as PermissionMode } from './session-MNU4BQv4.cjs';
|
|
4
|
-
import {
|
|
4
|
+
import { l as DefaultModelConfig } from './user-CpfkcV2C.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Gateway Service Types
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as AgenticToolName, g as CodexSandboxMode, d as CodexApprovalPolicy } from './agentic-tool-cYqsU5i5.js';
|
|
2
2
|
import { e as UUID, W as WorktreeID, f as UserID, S as SessionID } from './id-CoIbY_uc.js';
|
|
3
3
|
import { P as PermissionMode } from './session-CAfhv1qL.js';
|
|
4
|
-
import {
|
|
4
|
+
import { l as DefaultModelConfig } from './user-DP-XZMIM.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Gateway Service Types
|