agor-live 0.11.1 → 0.11.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/commands/config/index.js +16 -0
- package/dist/cli/commands/init.js +4 -4
- package/dist/core/claude/index.cjs +6 -6
- package/dist/core/claude/index.js +7 -6
- package/dist/core/{client-DuwBpnZS.d.ts → client-BOMc8S1H.d.ts} +9 -9
- package/dist/core/{client-rXuir36R.d.cts → client-fIC5YbDo.d.cts} +9 -9
- package/dist/core/config/index.cjs +13 -7
- package/dist/core/config/index.d.cts +12 -5
- package/dist/core/config/index.d.ts +12 -5
- package/dist/core/config/index.js +14 -7
- package/dist/core/db/index.cjs +12 -9
- package/dist/core/db/index.d.cts +11 -11
- package/dist/core/db/index.d.ts +11 -11
- package/dist/core/db/index.js +13 -9
- package/dist/core/drizzle/postgres/0011_fix_schedule_timestamp_overflow.sql +7 -0
- package/dist/core/drizzle/postgres/0012_fix_session_timestamp_overflow.sql +6 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +14 -0
- package/dist/core/git/index.cjs +39 -2
- package/dist/core/git/index.d.cts +6 -1
- package/dist/core/git/index.d.ts +6 -1
- package/dist/core/git/index.js +39 -2
- package/dist/core/index.cjs +59 -13
- package/dist/core/index.d.cts +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +60 -13
- package/dist/core/lib/feathers-validation.cjs +2 -0
- package/dist/core/lib/feathers-validation.d.cts +1 -0
- package/dist/core/lib/feathers-validation.d.ts +1 -0
- package/dist/core/lib/feathers-validation.js +2 -0
- package/dist/core/mcp/index.cjs +6 -6
- package/dist/core/mcp/index.js +7 -6
- package/dist/core/models/index.cjs +75 -19
- package/dist/core/models/index.d.cts +130 -17
- package/dist/core/models/index.d.ts +130 -17
- package/dist/core/models/index.js +74 -19
- package/dist/core/seed/index.cjs +12 -9
- package/dist/core/seed/index.js +13 -9
- package/dist/core/unix/index.cjs +14 -8
- package/dist/core/unix/index.d.cts +1 -1
- package/dist/core/unix/index.d.ts +1 -1
- package/dist/core/unix/index.js +15 -8
- package/dist/daemon/index.js +275 -101
- package/dist/daemon/mcp/routes.js +14 -2
- package/dist/daemon/services/mcp-servers.d.ts +2 -7
- package/dist/daemon/services/repos.js +10 -3
- package/dist/daemon/services/scheduler.d.ts +20 -3
- package/dist/daemon/services/scheduler.js +95 -32
- package/dist/daemon/services/tasks.js +29 -1
- package/dist/daemon/services/terminals.js +6 -1
- package/dist/daemon/services/worktrees.js +4 -4
- package/dist/executor/sdk-handlers/codex/models.d.ts +2 -26
- package/dist/executor/sdk-handlers/codex/models.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/models.js +2 -61
- package/dist/executor/sdk-handlers/gemini/models.d.ts +3 -30
- package/dist/executor/sdk-handlers/gemini/models.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/models.js +3 -69
- package/dist/executor/sdk-handlers/gemini/permission-mapper.d.ts +8 -2
- package/dist/executor/sdk-handlers/gemini/permission-mapper.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/permission-mapper.js +20 -3
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +53 -75
- package/dist/executor/sdk-handlers/models.d.ts +1 -1
- package/dist/executor/sdk-handlers/models.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/models.js +1 -1
- package/dist/executor/sdk-handlers/opencode/client.d.ts +108 -0
- package/dist/executor/sdk-handlers/opencode/client.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/opencode/client.js +366 -0
- package/dist/ui/assets/{_basePickBy-D1zFnaqs.js → _basePickBy-Dd6cdu7w.js} +1 -1
- package/dist/ui/assets/_basePickBy-Dd6cdu7w.js.gz +0 -0
- package/dist/ui/assets/{_baseUniq-D8LATcRr.js → _baseUniq-RJEcVuxa.js} +1 -1
- package/dist/ui/assets/_baseUniq-RJEcVuxa.js.gz +0 -0
- package/dist/ui/assets/abap-BdImnpbu.js.gz +0 -0
- package/dist/ui/assets/actionscript-3-CfeIJUat.js.gz +0 -0
- package/dist/ui/assets/ada-bCR0ucgS.js.gz +0 -0
- package/dist/ui/assets/andromeeda-C-Jbm3Hp.js.gz +0 -0
- package/dist/ui/assets/angular-html-CU67Zn6k.js.gz +0 -0
- package/dist/ui/assets/angular-ts-BwZT4LLn.js.gz +0 -0
- package/dist/ui/assets/apache-Pmp26Uib.js.gz +0 -0
- package/dist/ui/assets/apex-DhZLUxFE.js.gz +0 -0
- package/dist/ui/assets/apl-dKokRX4l.js.gz +0 -0
- package/dist/ui/assets/applescript-Co6uUVPk.js.gz +0 -0
- package/dist/ui/assets/ara-BRHolxvo.js.gz +0 -0
- package/dist/ui/assets/{arc-D8U6s2jg.js → arc-BlYyOC-L.js} +1 -1
- package/dist/ui/assets/arc-BlYyOC-L.js.gz +0 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-Zps5hHAf.js → architectureDiagram-VXUJARFQ-DhcrErQT.js} +1 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DhcrErQT.js.gz +0 -0
- package/dist/ui/assets/asciidoc-Dv7Oe6Be.js.gz +0 -0
- package/dist/ui/assets/asm-D_Q5rh1f.js.gz +0 -0
- package/dist/ui/assets/astro-CbQHKStN.js.gz +0 -0
- package/dist/ui/assets/aurora-x-D-2ljcwZ.js.gz +0 -0
- package/dist/ui/assets/awk-DMzUqQB5.js.gz +0 -0
- package/dist/ui/assets/ayu-dark-Cv9koXgw.js.gz +0 -0
- package/dist/ui/assets/ballerina-BFfxhgS-.js.gz +0 -0
- package/dist/ui/assets/bat-BkioyH1T.js.gz +0 -0
- package/dist/ui/assets/beancount-k_qm7-4y.js.gz +0 -0
- package/dist/ui/assets/berry-D08WgyRC.js.gz +0 -0
- package/dist/ui/assets/bibtex-CHM0blh-.js.gz +0 -0
- package/dist/ui/assets/bicep-Bmn6On1c.js.gz +0 -0
- package/dist/ui/assets/blade-DVc8C-J4.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-re5iSrSJ.js → blockDiagram-VD42YOAC-CYmIKBpx.js} +1 -1
- package/dist/ui/assets/blockDiagram-VD42YOAC-CYmIKBpx.js.gz +0 -0
- package/dist/ui/assets/bsl-BO_Y6i37.js.gz +0 -0
- package/dist/ui/assets/c-BIGW1oBm.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-BWV8l1xr.js → c4Diagram-YG6GDRKO-GtroFxtX.js} +1 -1
- package/dist/ui/assets/c4Diagram-YG6GDRKO-GtroFxtX.js.gz +0 -0
- package/dist/ui/assets/cadence-Bv_4Rxtq.js.gz +0 -0
- package/dist/ui/assets/cairo-KRGpt6FW.js.gz +0 -0
- package/dist/ui/assets/catppuccin-frappe-DFWUc33u.js.gz +0 -0
- package/dist/ui/assets/catppuccin-latte-C9dUb6Cb.js.gz +0 -0
- package/dist/ui/assets/catppuccin-macchiato-DQyhUUbL.js.gz +0 -0
- package/dist/ui/assets/catppuccin-mocha-D87Tk5Gz.js.gz +0 -0
- package/dist/ui/assets/channel-Cb1EAb5q.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-DmaLgEot.js → chunk-4BX2VUAB-xcIdo-Jt.js} +1 -1
- package/dist/ui/assets/{chunk-55IACEB6-CC4O9o0l.js → chunk-55IACEB6-CwT2Yi3s.js} +1 -1
- package/dist/ui/assets/{chunk-B4BG7PRW-B9y5I_4g.js → chunk-B4BG7PRW-CBdCcNRg.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-CBdCcNRg.js.gz +0 -0
- package/dist/ui/assets/{chunk-DI55MBZ5-DdxJatuV.js → chunk-DI55MBZ5-D2UyS3rr.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-D2UyS3rr.js.gz +0 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-Bka6pzNO.js → chunk-FMBD7UC4-BYuIr-z-.js} +1 -1
- package/dist/ui/assets/{chunk-QN33PNHL-DoxBWKMe.js → chunk-QN33PNHL-CPFeqPBS.js} +1 -1
- package/dist/ui/assets/{chunk-QZHKN3VN-D6ckztZA.js → chunk-QZHKN3VN-CpImR60v.js} +1 -1
- package/dist/ui/assets/{chunk-TZMSLE5B-CSZ-Do9o.js → chunk-TZMSLE5B-BIFhAsrw.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BIFhAsrw.js.gz +0 -0
- package/dist/ui/assets/clarity-D53aC0YG.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-DVudl7LL.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-DVudl7LL.js +1 -0
- package/dist/ui/assets/clojure-P80f7IUj.js.gz +0 -0
- package/dist/ui/assets/clone-hzvfyFuU.js +1 -0
- package/dist/ui/assets/cmake-D1j8_8rp.js.gz +0 -0
- package/dist/ui/assets/cobol-nwyudZeR.js.gz +0 -0
- package/dist/ui/assets/codeql-DsOJ9woJ.js.gz +0 -0
- package/dist/ui/assets/coffee-Ch7k5sss.js.gz +0 -0
- package/dist/ui/assets/common-lisp-Cg-RD9OK.js.gz +0 -0
- package/dist/ui/assets/coq-DkFqJrB1.js.gz +0 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-DrBUfYnR.js → cose-bilkent-S5V4N54A-BaSYx8Vm.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-BaSYx8Vm.js.gz +0 -0
- package/dist/ui/assets/cpp-CofmeUqb.js.gz +0 -0
- package/dist/ui/assets/crystal-tKQVLTB8.js.gz +0 -0
- package/dist/ui/assets/csharp-CX12Zw3r.js.gz +0 -0
- package/dist/ui/assets/css-DPfMkruS.js.gz +0 -0
- package/dist/ui/assets/csv-fuZLfV_i.js.gz +0 -0
- package/dist/ui/assets/cue-D82EKSYY.js.gz +0 -0
- package/dist/ui/assets/cypher-COkxafJQ.js.gz +0 -0
- package/dist/ui/assets/cytoscape.esm-CF_z7lu9.js.gz +0 -0
- package/dist/ui/assets/d-85-TOEBH.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-FCRVHvCA.js → dagre-6UL2VRFP-Ck4QxjYp.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-Ck4QxjYp.js.gz +0 -0
- package/dist/ui/assets/dark-plus-eOWES_5F.js.gz +0 -0
- package/dist/ui/assets/dart-CF10PKvl.js.gz +0 -0
- package/dist/ui/assets/dax-CEL-wOlO.js.gz +0 -0
- package/dist/ui/assets/defaultLocale-C4B-KCzX.js.gz +0 -0
- package/dist/ui/assets/desktop-BmXAJ9_W.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-DOZvPtVc.js → diagram-PSM6KHXK-rgHhMBpZ.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-rgHhMBpZ.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-CK7zONT5.js → diagram-QEK2KX5R-BvJJM5Yx.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BvJJM5Yx.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-Dtw59dKH.js → diagram-S2PKOQOG-C_DZRzrA.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-C_DZRzrA.js.gz +0 -0
- package/dist/ui/assets/diff-D97Zzqfu.js.gz +0 -0
- package/dist/ui/assets/docker-BcOcwvcX.js.gz +0 -0
- package/dist/ui/assets/dotenv-Da5cRb03.js.gz +0 -0
- package/dist/ui/assets/dracula-BzJJZx-M.js.gz +0 -0
- package/dist/ui/assets/dracula-soft-BXkSAIEj.js.gz +0 -0
- package/dist/ui/assets/dream-maker-BtqSS_iP.js.gz +0 -0
- package/dist/ui/assets/edge-BkV0erSs.js.gz +0 -0
- package/dist/ui/assets/elixir-CDX3lj18.js.gz +0 -0
- package/dist/ui/assets/elm-DbKCFpqz.js.gz +0 -0
- package/dist/ui/assets/emacs-lisp-C9XAeP06.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-Cy45dpA1.js → erDiagram-Q2GNP2WA-W5ErP_Wx.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-W5ErP_Wx.js.gz +0 -0
- package/dist/ui/assets/erb-BOJIQeun.js.gz +0 -0
- package/dist/ui/assets/erlang-DsQrWhSR.js.gz +0 -0
- package/dist/ui/assets/everforest-dark-BgDCqdQA.js.gz +0 -0
- package/dist/ui/assets/everforest-light-C8M2exoo.js.gz +0 -0
- package/dist/ui/assets/fennel-BYunw83y.js.gz +0 -0
- package/dist/ui/assets/fish-BvzEVeQv.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-XuyJ5bBo.js → flowDiagram-NV44I4VS-C_IQtBOc.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-C_IQtBOc.js.gz +0 -0
- package/dist/ui/assets/fluent-C4IJs8-o.js.gz +0 -0
- package/dist/ui/assets/fortran-fixed-form-BZjJHVRy.js.gz +0 -0
- package/dist/ui/assets/fortran-free-form-D22FLkUw.js.gz +0 -0
- package/dist/ui/assets/fsharp-CXgrBDvD.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-DqaL_wJl.js → ganttDiagram-LVOFAZNH-CyfgIj_q.js} +1 -1
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CyfgIj_q.js.gz +0 -0
- package/dist/ui/assets/gdresource-B7Tvp0Sc.js.gz +0 -0
- package/dist/ui/assets/gdscript-DTMYz4Jt.js.gz +0 -0
- package/dist/ui/assets/gdshader-DkwncUOv.js.gz +0 -0
- package/dist/ui/assets/genie-D0YGMca9.js.gz +0 -0
- package/dist/ui/assets/gherkin-DyxjwDmM.js.gz +0 -0
- package/dist/ui/assets/git-commit-F4YmCXRG.js.gz +0 -0
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-B3FuWwlr.js → gitGraphDiagram-NY62KEGX-BXXHtimG.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-BXXHtimG.js.gz +0 -0
- package/dist/ui/assets/github-dark-DHJKELXO.js.gz +0 -0
- package/dist/ui/assets/github-dark-default-Cuk6v7N8.js.gz +0 -0
- package/dist/ui/assets/github-dark-dimmed-DH5Ifo-i.js.gz +0 -0
- package/dist/ui/assets/github-dark-high-contrast-E3gJ1_iC.js.gz +0 -0
- package/dist/ui/assets/github-light-DAi9KRSo.js.gz +0 -0
- package/dist/ui/assets/github-light-default-D7oLnXFd.js.gz +0 -0
- package/dist/ui/assets/github-light-high-contrast-BfjtVDDH.js.gz +0 -0
- package/dist/ui/assets/gleam-BspZqrRM.js.gz +0 -0
- package/dist/ui/assets/glimmer-js-Rg0-pVw9.js.gz +0 -0
- package/dist/ui/assets/glimmer-ts-U6CK756n.js.gz +0 -0
- package/dist/ui/assets/glsl-DplSGwfg.js.gz +0 -0
- package/dist/ui/assets/gnuplot-DdkO51Og.js.gz +0 -0
- package/dist/ui/assets/go-Dn2_MT6a.js.gz +0 -0
- package/dist/ui/assets/{graph-BG5dWzaR.js → graph-BhYMNTB9.js} +1 -1
- package/dist/ui/assets/graph-BhYMNTB9.js.gz +0 -0
- package/dist/ui/assets/graphql-ChdNCCLP.js.gz +0 -0
- package/dist/ui/assets/groovy-gcz8RCvz.js.gz +0 -0
- package/dist/ui/assets/gruvbox-dark-hard-CFHQjOhq.js.gz +0 -0
- package/dist/ui/assets/gruvbox-dark-medium-GsRaNv29.js.gz +0 -0
- package/dist/ui/assets/gruvbox-dark-soft-CVdnzihN.js.gz +0 -0
- package/dist/ui/assets/gruvbox-light-hard-CH1njM8p.js.gz +0 -0
- package/dist/ui/assets/gruvbox-light-medium-DRw_LuNl.js.gz +0 -0
- package/dist/ui/assets/gruvbox-light-soft-hJgmCMqR.js.gz +0 -0
- package/dist/ui/assets/hack-CaT9iCJl.js.gz +0 -0
- package/dist/ui/assets/haml-B8DHNrY2.js.gz +0 -0
- package/dist/ui/assets/handlebars-BL8al0AC.js.gz +0 -0
- package/dist/ui/assets/haskell-Df6bDoY_.js.gz +0 -0
- package/dist/ui/assets/haxe-CzTSHFRz.js.gz +0 -0
- package/dist/ui/assets/hcl-BWvSN4gD.js.gz +0 -0
- package/dist/ui/assets/hjson-D5-asLiD.js.gz +0 -0
- package/dist/ui/assets/hlsl-D3lLCCz7.js.gz +0 -0
- package/dist/ui/assets/houston-DnULxvSX.js.gz +0 -0
- package/dist/ui/assets/html-GMplVEZG.js.gz +0 -0
- package/dist/ui/assets/http-jrhK8wxY.js.gz +0 -0
- package/dist/ui/assets/hurl-irOxFIW8.js.gz +0 -0
- package/dist/ui/assets/hxml-Bvhsp5Yf.js.gz +0 -0
- package/dist/ui/assets/hy-DFXneXwc.js.gz +0 -0
- package/dist/ui/assets/imba-DGztddWO.js.gz +0 -0
- package/dist/ui/assets/index-CoHRmHKF.css.gz +0 -0
- package/dist/ui/assets/{index-BJJVQgAF.js → index-D-mUF0ER.js} +197 -197
- package/dist/ui/assets/index-D-mUF0ER.js.gz +0 -0
- package/dist/ui/assets/{infoDiagram-ER5ION4S-nL4GZAX1.js → infoDiagram-ER5ION4S-bZln55ER.js} +1 -1
- package/dist/ui/assets/ini-BEwlwnbL.js.gz +0 -0
- package/dist/ui/assets/java-CylS5w8V.js.gz +0 -0
- package/dist/ui/assets/javascript-wDzz0qaB.js.gz +0 -0
- package/dist/ui/assets/jinja-4LBKfQ-Z.js.gz +0 -0
- package/dist/ui/assets/jison-wvAkD_A8.js.gz +0 -0
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-B8plV6tX.js → journeyDiagram-XKPGCS4Q-BoxqjCLk.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-BoxqjCLk.js.gz +0 -0
- package/dist/ui/assets/json-Cp-IABpG.js.gz +0 -0
- package/dist/ui/assets/json5-C9tS-k6U.js.gz +0 -0
- package/dist/ui/assets/jsonc-Des-eS-w.js.gz +0 -0
- package/dist/ui/assets/jsonl-DcaNXYhu.js.gz +0 -0
- package/dist/ui/assets/jsonnet-DFQXde-d.js.gz +0 -0
- package/dist/ui/assets/jssm-C2t-YnRu.js.gz +0 -0
- package/dist/ui/assets/jsx-g9-lgVsj.js.gz +0 -0
- package/dist/ui/assets/julia-C8NyazO9.js.gz +0 -0
- package/dist/ui/assets/kanagawa-dragon-CkXjmgJE.js.gz +0 -0
- package/dist/ui/assets/kanagawa-lotus-CfQXZHmo.js.gz +0 -0
- package/dist/ui/assets/kanagawa-wave-DWedfzmr.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-BGguxVOE.js → kanban-definition-3W4ZIXB7-C1qBProe.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-C1qBProe.js.gz +0 -0
- package/dist/ui/assets/katex-Br2y_YL1.css.gz +0 -0
- package/dist/ui/assets/kdl-DV7GczEv.js.gz +0 -0
- package/dist/ui/assets/kotlin-BdnUsdx6.js.gz +0 -0
- package/dist/ui/assets/kusto-BvAqAH-y.js.gz +0 -0
- package/dist/ui/assets/laserwave-DUszq2jm.js.gz +0 -0
- package/dist/ui/assets/latex-BUKiar2Z.js.gz +0 -0
- package/dist/ui/assets/{layout-LkpUHcLK.js → layout-0gRRcyCZ.js} +1 -1
- package/dist/ui/assets/layout-0gRRcyCZ.js.gz +0 -0
- package/dist/ui/assets/lean-DP1Csr6i.js.gz +0 -0
- package/dist/ui/assets/less-B1dDrJ26.js.gz +0 -0
- package/dist/ui/assets/light-plus-B7mTdjB0.js.gz +0 -0
- package/dist/ui/assets/{linear-0Xbt3wIH.js → linear-CW-x7WtK.js} +1 -1
- package/dist/ui/assets/linear-CW-x7WtK.js.gz +0 -0
- package/dist/ui/assets/liquid-DYVedYrR.js.gz +0 -0
- package/dist/ui/assets/llvm-BtvRca6l.js.gz +0 -0
- package/dist/ui/assets/log-2UxHyX5q.js.gz +0 -0
- package/dist/ui/assets/logo-BtOb2qkB.js.gz +0 -0
- package/dist/ui/assets/lua-BbnMAYS6.js.gz +0 -0
- package/dist/ui/assets/luau-CXu1NL6O.js.gz +0 -0
- package/dist/ui/assets/make-CHLpvVh8.js.gz +0 -0
- package/dist/ui/assets/markdown-Cvjx9yec.js.gz +0 -0
- package/dist/ui/assets/marko-CPi9NSCl.js.gz +0 -0
- package/dist/ui/assets/material-theme-D5KoaKCx.js.gz +0 -0
- package/dist/ui/assets/material-theme-darker-BfHTSMKl.js.gz +0 -0
- package/dist/ui/assets/material-theme-lighter-B0m2ddpp.js.gz +0 -0
- package/dist/ui/assets/material-theme-ocean-CyktbL80.js.gz +0 -0
- package/dist/ui/assets/material-theme-palenight-Csfq5Kiy.js.gz +0 -0
- package/dist/ui/assets/matlab-D7o27uSR.js.gz +0 -0
- package/dist/ui/assets/mdc-DUICxH0z.js.gz +0 -0
- package/dist/ui/assets/mdx-Cmh6b_Ma.js.gz +0 -0
- package/dist/ui/assets/mermaid-DKYwYmdq.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-C1LOO7zE.js → mermaid.core-DyosMICf.js} +5 -5
- package/dist/ui/assets/mermaid.core-DyosMICf.js.gz +0 -0
- package/dist/ui/assets/min-dark-CafNBF8u.js.gz +0 -0
- package/dist/ui/assets/min-light-CTRr51gU.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-B7HVGNJs.js → mindmap-definition-VGOIOE7T-w2junnrr.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-w2junnrr.js.gz +0 -0
- package/dist/ui/assets/mipsasm-CKIfxQSi.js.gz +0 -0
- package/dist/ui/assets/mojo-1DNp92w6.js.gz +0 -0
- package/dist/ui/assets/monokai-D4h5O-jR.js.gz +0 -0
- package/dist/ui/assets/move-Bu9oaDYs.js.gz +0 -0
- package/dist/ui/assets/narrat-DRg8JJMk.js.gz +0 -0
- package/dist/ui/assets/nextflow-CUEJCptM.js.gz +0 -0
- package/dist/ui/assets/nginx-DknmC5AR.js.gz +0 -0
- package/dist/ui/assets/night-owl-C39BiMTA.js.gz +0 -0
- package/dist/ui/assets/nim-CVrawwO9.js.gz +0 -0
- package/dist/ui/assets/nix-BbRYJGeE.js.gz +0 -0
- package/dist/ui/assets/nord-Ddv68eIx.js.gz +0 -0
- package/dist/ui/assets/nushell-C-sUppwS.js.gz +0 -0
- package/dist/ui/assets/objective-c-DXmwc3jG.js.gz +0 -0
- package/dist/ui/assets/objective-cpp-CLxacb5B.js.gz +0 -0
- package/dist/ui/assets/ocaml-C0hk2d4L.js.gz +0 -0
- package/dist/ui/assets/one-dark-pro-DVMEJ2y_.js.gz +0 -0
- package/dist/ui/assets/one-light-PoHY5YXO.js.gz +0 -0
- package/dist/ui/assets/ordinal-Cboi1Yqb.js.gz +0 -0
- package/dist/ui/assets/pascal-D93ZcfNL.js.gz +0 -0
- package/dist/ui/assets/perl-C0TMdlhV.js.gz +0 -0
- package/dist/ui/assets/php-CDn_0X-4.js.gz +0 -0
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-CHG8R2Po.js → pieDiagram-ADFJNKIX-F-R6Axq2.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-F-R6Axq2.js.gz +0 -0
- package/dist/ui/assets/pkl-u5AG7uiY.js.gz +0 -0
- package/dist/ui/assets/plastic-3e1v2bzS.js.gz +0 -0
- package/dist/ui/assets/plsql-ChMvpjG-.js.gz +0 -0
- package/dist/ui/assets/po-BTJTHyun.js.gz +0 -0
- package/dist/ui/assets/poimandres-CS3Unz2-.js.gz +0 -0
- package/dist/ui/assets/polar-C0HS_06l.js.gz +0 -0
- package/dist/ui/assets/postcss-CXtECtnM.js.gz +0 -0
- package/dist/ui/assets/powerquery-CEu0bR-o.js.gz +0 -0
- package/dist/ui/assets/powershell-Dpen1YoG.js.gz +0 -0
- package/dist/ui/assets/prisma-Dd19v3D-.js.gz +0 -0
- package/dist/ui/assets/prolog-CbFg5uaA.js.gz +0 -0
- package/dist/ui/assets/proto-DyJlTyXw.js.gz +0 -0
- package/dist/ui/assets/pug-CGlum2m_.js.gz +0 -0
- package/dist/ui/assets/puppet-BMWR74SV.js.gz +0 -0
- package/dist/ui/assets/purescript-CklMAg4u.js.gz +0 -0
- package/dist/ui/assets/python-B6aJPvgy.js.gz +0 -0
- package/dist/ui/assets/qml-3beO22l8.js.gz +0 -0
- package/dist/ui/assets/qss-IeuSbFQv.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-CEsy1_LZ.js → quadrantDiagram-AYHSOK5B-BIiQdf0y.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-BIiQdf0y.js.gz +0 -0
- package/dist/ui/assets/r-DiinP2Uv.js.gz +0 -0
- package/dist/ui/assets/racket-BqYA7rlc.js.gz +0 -0
- package/dist/ui/assets/raku-DXvB9xmW.js.gz +0 -0
- package/dist/ui/assets/razor-WgofotgN.js.gz +0 -0
- package/dist/ui/assets/red-bN70gL4F.js.gz +0 -0
- package/dist/ui/assets/reg-C-SQnVFl.js.gz +0 -0
- package/dist/ui/assets/regexp-CDVJQ6XC.js.gz +0 -0
- package/dist/ui/assets/rel-C3B-1QV4.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-DEs05ytR.js → requirementDiagram-UZGBJVZJ-CXPvkYi3.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-CXPvkYi3.js.gz +0 -0
- package/dist/ui/assets/riscv-BM1_JUlF.js.gz +0 -0
- package/dist/ui/assets/rose-pine-BHrmToEH.js.gz +0 -0
- package/dist/ui/assets/rose-pine-dawn-CnK8MTSM.js.gz +0 -0
- package/dist/ui/assets/rose-pine-moon-NleAzG8P.js.gz +0 -0
- package/dist/ui/assets/rosmsg-BJDFO7_C.js.gz +0 -0
- package/dist/ui/assets/rst-B0xPkSld.js.gz +0 -0
- package/dist/ui/assets/ruby-BvKwtOVI.js.gz +0 -0
- package/dist/ui/assets/rust-B1yitclQ.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-DXGYSrCF.js → sankeyDiagram-TZEHDZUN-bJz5cNkh.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-bJz5cNkh.js.gz +0 -0
- package/dist/ui/assets/sas-cz2c8ADy.js.gz +0 -0
- package/dist/ui/assets/sass-Cj5Yp3dK.js.gz +0 -0
- package/dist/ui/assets/scala-C151Ov-r.js.gz +0 -0
- package/dist/ui/assets/scheme-C98Dy4si.js.gz +0 -0
- package/dist/ui/assets/scss-OYdSNvt2.js.gz +0 -0
- package/dist/ui/assets/sdbl-DVxCFoDh.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-BgwC9Kjd.js → sequenceDiagram-WL72ISMW-RUfVoGfg.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-RUfVoGfg.js.gz +0 -0
- package/dist/ui/assets/shaderlab-Dg9Lc6iA.js.gz +0 -0
- package/dist/ui/assets/shellscript-Yzrsuije.js.gz +0 -0
- package/dist/ui/assets/slack-dark-BthQWCQV.js.gz +0 -0
- package/dist/ui/assets/slack-ochin-DqwNpetd.js.gz +0 -0
- package/dist/ui/assets/smalltalk-BERRCDM3.js.gz +0 -0
- package/dist/ui/assets/snazzy-light-Bw305WKR.js.gz +0 -0
- package/dist/ui/assets/solarized-dark-DXbdFlpD.js.gz +0 -0
- package/dist/ui/assets/solarized-light-L9t79GZl.js.gz +0 -0
- package/dist/ui/assets/solidity-BbcW6ACK.js.gz +0 -0
- package/dist/ui/assets/soy-Brmx7dQM.js.gz +0 -0
- package/dist/ui/assets/sparql-rVzFXLq3.js.gz +0 -0
- package/dist/ui/assets/splunk-BtCnVYZw.js.gz +0 -0
- package/dist/ui/assets/sql-BLtJtn59.js.gz +0 -0
- package/dist/ui/assets/ssh-config-_ykCGR6B.js.gz +0 -0
- package/dist/ui/assets/stata-BH5u7GGu.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-CzhOiaAT.js → stateDiagram-FKZM4ZOC-C-ojs54n.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-C-ojs54n.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CD6ifGQo.js +1 -0
- package/dist/ui/assets/stylus-BEDo0Tqx.js.gz +0 -0
- package/dist/ui/assets/svelte-3Dk4HxPD.js.gz +0 -0
- package/dist/ui/assets/swift-Dg5xB15N.js.gz +0 -0
- package/dist/ui/assets/synthwave-84-CbfX1IO0.js.gz +0 -0
- package/dist/ui/assets/system-verilog-CnnmHF94.js.gz +0 -0
- package/dist/ui/assets/systemd-4A_iFExJ.js.gz +0 -0
- package/dist/ui/assets/talonscript-CkByrt1z.js.gz +0 -0
- package/dist/ui/assets/tasl-QIJgUcNo.js.gz +0 -0
- package/dist/ui/assets/tcl-dwOrl1Do.js.gz +0 -0
- package/dist/ui/assets/templ-W15q3VgB.js.gz +0 -0
- package/dist/ui/assets/terraform-BETggiCN.js.gz +0 -0
- package/dist/ui/assets/tex-Cppo0RY3.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-D5WfZKkX.js → timeline-definition-IT6M3QCI-BHcwgYS1.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-BHcwgYS1.js.gz +0 -0
- package/dist/ui/assets/tokyo-night-hegEt444.js.gz +0 -0
- package/dist/ui/assets/toml-vGWfd6FD.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Fb1GjBc1.js → treemap-KMMF4GRG-Box5aD63.js} +1 -1
- package/dist/ui/assets/treemap-KMMF4GRG-Box5aD63.js.gz +0 -0
- package/dist/ui/assets/ts-tags-zn1MmPIZ.js.gz +0 -0
- package/dist/ui/assets/tsx-COt5Ahok.js.gz +0 -0
- package/dist/ui/assets/turtle-BsS91CYL.js.gz +0 -0
- package/dist/ui/assets/twig-CO9l9SDP.js.gz +0 -0
- package/dist/ui/assets/typescript-BPQ3VLAy.js.gz +0 -0
- package/dist/ui/assets/typespec-Df68jz8_.js.gz +0 -0
- package/dist/ui/assets/typst-DHCkPAjA.js.gz +0 -0
- package/dist/ui/assets/v-BcVCzyr7.js.gz +0 -0
- package/dist/ui/assets/vala-CsfeWuGM.js.gz +0 -0
- package/dist/ui/assets/vb-D17OF-Vu.js.gz +0 -0
- package/dist/ui/assets/verilog-BQ8w6xss.js.gz +0 -0
- package/dist/ui/assets/vesper-DU1UobuO.js.gz +0 -0
- package/dist/ui/assets/vhdl-CeAyd5Ju.js.gz +0 -0
- package/dist/ui/assets/viml-CJc9bBzg.js.gz +0 -0
- package/dist/ui/assets/vitesse-black-Bkuqu6BP.js.gz +0 -0
- package/dist/ui/assets/vitesse-dark-D0r3Knsf.js.gz +0 -0
- package/dist/ui/assets/vitesse-light-CVO1_9PV.js.gz +0 -0
- package/dist/ui/assets/vue-CCoi5OLL.js.gz +0 -0
- package/dist/ui/assets/vue-html-DAAvJJDi.js.gz +0 -0
- package/dist/ui/assets/vue-vine-_Ih-lPRR.js.gz +0 -0
- package/dist/ui/assets/vyper-CDx5xZoG.js.gz +0 -0
- package/dist/ui/assets/wasm-CG6Dc4jp.js.gz +0 -0
- package/dist/ui/assets/wasm-MzD3tlZU.js.gz +0 -0
- package/dist/ui/assets/wenyan-BV7otONQ.js.gz +0 -0
- package/dist/ui/assets/wgsl-Dx-B1_4e.js.gz +0 -0
- package/dist/ui/assets/wikitext-BhOHFoWU.js.gz +0 -0
- package/dist/ui/assets/wit-5i3qLPDT.js.gz +0 -0
- package/dist/ui/assets/wolfram-lXgVvXCa.js.gz +0 -0
- package/dist/ui/assets/xml-sdJ4AIDG.js.gz +0 -0
- package/dist/ui/assets/xsl-CtQFsRM5.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-l1lSswOS.js → xychartDiagram-PRI3JC2R-B9_eb9Fp.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-B9_eb9Fp.js.gz +0 -0
- package/dist/ui/assets/yaml-Buea-lGh.js.gz +0 -0
- package/dist/ui/assets/zenscript-DVFEvuxE.js.gz +0 -0
- package/dist/ui/assets/zig-VOosw3JB.js.gz +0 -0
- package/dist/ui/index.html +1 -1
- package/package.json +6 -6
- package/dist/ui/assets/_basePickBy-D1zFnaqs.js.gz +0 -0
- package/dist/ui/assets/_baseUniq-D8LATcRr.js.gz +0 -0
- package/dist/ui/assets/arc-D8U6s2jg.js.gz +0 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-Zps5hHAf.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-re5iSrSJ.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-BWV8l1xr.js.gz +0 -0
- package/dist/ui/assets/channel-BMzwRO98.js +0 -1
- package/dist/ui/assets/chunk-B4BG7PRW-B9y5I_4g.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-DdxJatuV.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-CSZ-Do9o.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-ByzA3PuH.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-ByzA3PuH.js +0 -1
- package/dist/ui/assets/clone-BbHiLFFC.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-DrBUfYnR.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-FCRVHvCA.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DOZvPtVc.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-CK7zONT5.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-Dtw59dKH.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-Cy45dpA1.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-XuyJ5bBo.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DqaL_wJl.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-B3FuWwlr.js.gz +0 -0
- package/dist/ui/assets/graph-BG5dWzaR.js.gz +0 -0
- package/dist/ui/assets/index-BJJVQgAF.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B8plV6tX.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-BGguxVOE.js.gz +0 -0
- package/dist/ui/assets/layout-LkpUHcLK.js.gz +0 -0
- package/dist/ui/assets/linear-0Xbt3wIH.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-C1LOO7zE.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-B7HVGNJs.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-CHG8R2Po.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-CEsy1_LZ.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-DEs05ytR.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DXGYSrCF.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-BgwC9Kjd.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CzhOiaAT.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DPyBpCML.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-D5WfZKkX.js.gz +0 -0
- package/dist/ui/assets/treemap-KMMF4GRG-Fb1GjBc1.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-l1lSswOS.js.gz +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/commands/config/index.ts
|
|
2
2
|
import { getConfigPath, getDefaultConfig, loadConfig } from "@agor/core/config";
|
|
3
|
+
import { getDatabaseUrl } from "@agor/core/db";
|
|
3
4
|
import { Command } from "@oclif/core";
|
|
4
5
|
import chalk from "chalk";
|
|
5
6
|
var ConfigIndex = class extends Command {
|
|
@@ -38,6 +39,21 @@ var ConfigIndex = class extends Command {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
}
|
|
42
|
+
const databaseUrl = getDatabaseUrl();
|
|
43
|
+
const dialect = process.env.AGOR_DB_DIALECT === "postgresql" ? "postgresql" : "sqlite";
|
|
44
|
+
this.log(chalk.bold("\nDatabase Settings:"));
|
|
45
|
+
this.log(` dialect: ${chalk.gray(dialect)}`);
|
|
46
|
+
if (dialect === "postgresql") {
|
|
47
|
+
const maskedUrl = databaseUrl.replace(/:([^:@]+)@/, ":****@");
|
|
48
|
+
this.log(` connection: ${chalk.gray(maskedUrl)}`);
|
|
49
|
+
} else {
|
|
50
|
+
this.log(` database file: ${chalk.gray(databaseUrl)}`);
|
|
51
|
+
}
|
|
52
|
+
this.log(
|
|
53
|
+
chalk.dim(
|
|
54
|
+
" (Configure via AGOR_DB_DIALECT, DATABASE_URL, or AGOR_DB_PATH environment variables)"
|
|
55
|
+
)
|
|
56
|
+
);
|
|
41
57
|
const daemonConfig = { ...defaults.daemon, ...config.daemon };
|
|
42
58
|
if (daemonConfig) {
|
|
43
59
|
this.log(chalk.bold("\nDaemon Settings:"));
|
|
@@ -67,7 +67,7 @@ var Init = class _Init extends Command {
|
|
|
67
67
|
async getDbStats(dbPath) {
|
|
68
68
|
try {
|
|
69
69
|
const { createDatabase: createDatabase2, select, sessions, tasks, messages, repos } = await import("@agor/core/db");
|
|
70
|
-
const db = createDatabase2({ url: `file:${dbPath}
|
|
70
|
+
const db = createDatabase2({ url: `file:${dbPath}`, dialect: "sqlite" });
|
|
71
71
|
const sessionRows = await select(db).from(sessions).all();
|
|
72
72
|
const taskRows = await select(db).from(tasks).all();
|
|
73
73
|
const messageRows = await select(db).from(messages).all();
|
|
@@ -251,7 +251,7 @@ var Init = class _Init extends Command {
|
|
|
251
251
|
}
|
|
252
252
|
this.log("");
|
|
253
253
|
this.log("\u{1F4BE} Setting up database...");
|
|
254
|
-
const db = createDatabase({ url: `file:${dbPath}
|
|
254
|
+
const db = createDatabase({ url: `file:${dbPath}`, dialect: "sqlite" });
|
|
255
255
|
await runMigrations(db);
|
|
256
256
|
this.log(`${chalk.green(" \u2713")} Created ${dbPath}`);
|
|
257
257
|
this.log("");
|
|
@@ -265,7 +265,7 @@ var Init = class _Init extends Command {
|
|
|
265
265
|
await setConfigValue("daemon.allowAnonymous", false);
|
|
266
266
|
this.log(`${chalk.green(" \u2713")} Enabled authentication (multiplayer mode)`);
|
|
267
267
|
try {
|
|
268
|
-
const db2 = createDatabase({ url: `file:${dbPath}
|
|
268
|
+
const db2 = createDatabase({ url: `file:${dbPath}`, dialect: "sqlite" });
|
|
269
269
|
const defaultEmail = "admin@agor.live";
|
|
270
270
|
const defaultPassword = "admin";
|
|
271
271
|
await createUser(db2, {
|
|
@@ -404,7 +404,7 @@ var Init = class _Init extends Command {
|
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
406
|
]);
|
|
407
|
-
const db = createDatabase({ url: `file:${dbPath}
|
|
407
|
+
const db = createDatabase({ url: `file:${dbPath}`, dialect: "sqlite" });
|
|
408
408
|
const _user = await createUser(db, {
|
|
409
409
|
email,
|
|
410
410
|
password,
|
|
@@ -110,8 +110,8 @@ var init_schema_postgres = __esm({
|
|
|
110
110
|
// Cascade delete sessions when worktree is deleted
|
|
111
111
|
}),
|
|
112
112
|
// Scheduler tracking (materialized for deduplication and retention cleanup)
|
|
113
|
-
scheduled_run_at: (0, import_pg_core.
|
|
114
|
-
// Unix timestamp (ms) - authoritative run ID
|
|
113
|
+
scheduled_run_at: (0, import_pg_core.bigint)("scheduled_run_at", { mode: "number" }),
|
|
114
|
+
// Unix timestamp (ms) - authoritative run ID - bigint to support dates beyond 2038
|
|
115
115
|
scheduled_from_worktree: t.bool("scheduled_from_worktree").notNull().default(false),
|
|
116
116
|
// UI state (materialized for efficient highlighting queries)
|
|
117
117
|
ready_for_prompt: t.bool("ready_for_prompt").notNull().default(false),
|
|
@@ -286,10 +286,10 @@ var init_schema_postgres = __esm({
|
|
|
286
286
|
schedule_enabled: t.bool("schedule_enabled").notNull().default(false),
|
|
287
287
|
schedule_cron: (0, import_pg_core.text)("schedule_cron"),
|
|
288
288
|
// Cron expression (e.g., "0 9 * * 1-5")
|
|
289
|
-
schedule_last_triggered_at: (0, import_pg_core.
|
|
290
|
-
// Unix timestamp (ms)
|
|
291
|
-
schedule_next_run_at: (0, import_pg_core.
|
|
292
|
-
// Unix timestamp (ms)
|
|
289
|
+
schedule_last_triggered_at: (0, import_pg_core.bigint)("schedule_last_triggered_at", { mode: "number" }),
|
|
290
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
291
|
+
schedule_next_run_at: (0, import_pg_core.bigint)("schedule_next_run_at", { mode: "number" }),
|
|
292
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
293
293
|
// UI state (materialized for efficient highlighting queries)
|
|
294
294
|
needs_attention: t.bool("needs_attention").notNull().default(true),
|
|
295
295
|
// Default true for new worktrees
|
|
@@ -47,6 +47,7 @@ __export(schema_postgres_exports, {
|
|
|
47
47
|
});
|
|
48
48
|
import { sql } from "drizzle-orm";
|
|
49
49
|
import {
|
|
50
|
+
bigint,
|
|
50
51
|
boolean,
|
|
51
52
|
index,
|
|
52
53
|
integer,
|
|
@@ -99,8 +100,8 @@ var init_schema_postgres = __esm({
|
|
|
99
100
|
// Cascade delete sessions when worktree is deleted
|
|
100
101
|
}),
|
|
101
102
|
// Scheduler tracking (materialized for deduplication and retention cleanup)
|
|
102
|
-
scheduled_run_at:
|
|
103
|
-
// Unix timestamp (ms) - authoritative run ID
|
|
103
|
+
scheduled_run_at: bigint("scheduled_run_at", { mode: "number" }),
|
|
104
|
+
// Unix timestamp (ms) - authoritative run ID - bigint to support dates beyond 2038
|
|
104
105
|
scheduled_from_worktree: t.bool("scheduled_from_worktree").notNull().default(false),
|
|
105
106
|
// UI state (materialized for efficient highlighting queries)
|
|
106
107
|
ready_for_prompt: t.bool("ready_for_prompt").notNull().default(false),
|
|
@@ -275,10 +276,10 @@ var init_schema_postgres = __esm({
|
|
|
275
276
|
schedule_enabled: t.bool("schedule_enabled").notNull().default(false),
|
|
276
277
|
schedule_cron: text("schedule_cron"),
|
|
277
278
|
// Cron expression (e.g., "0 9 * * 1-5")
|
|
278
|
-
schedule_last_triggered_at:
|
|
279
|
-
// Unix timestamp (ms)
|
|
280
|
-
schedule_next_run_at:
|
|
281
|
-
// Unix timestamp (ms)
|
|
279
|
+
schedule_last_triggered_at: bigint("schedule_last_triggered_at", { mode: "number" }),
|
|
280
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
281
|
+
schedule_next_run_at: bigint("schedule_next_run_at", { mode: "number" }),
|
|
282
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
282
283
|
// UI state (materialized for efficient highlighting queries)
|
|
283
284
|
needs_attention: t.bool("needs_attention").notNull().default(true),
|
|
284
285
|
// Default true for new worktrees
|
|
@@ -221,7 +221,7 @@ declare const sessions$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
221
221
|
name: "scheduled_run_at";
|
|
222
222
|
tableName: "sessions";
|
|
223
223
|
dataType: "number";
|
|
224
|
-
columnType: "
|
|
224
|
+
columnType: "PgBigInt53";
|
|
225
225
|
data: number;
|
|
226
226
|
driverParam: string | number;
|
|
227
227
|
notNull: false;
|
|
@@ -673,7 +673,7 @@ declare const messages$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
673
673
|
tableName: "messages";
|
|
674
674
|
dataType: "string";
|
|
675
675
|
columnType: "PgText";
|
|
676
|
-
data: "
|
|
676
|
+
data: "system" | "user" | "assistant" | "file-history-snapshot" | "permission_request";
|
|
677
677
|
driverParam: string;
|
|
678
678
|
notNull: true;
|
|
679
679
|
hasDefault: false;
|
|
@@ -690,7 +690,7 @@ declare const messages$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
690
690
|
tableName: "messages";
|
|
691
691
|
dataType: "string";
|
|
692
692
|
columnType: "PgText";
|
|
693
|
-
data: "
|
|
693
|
+
data: "system" | "user" | "assistant";
|
|
694
694
|
driverParam: string;
|
|
695
695
|
notNull: true;
|
|
696
696
|
hasDefault: false;
|
|
@@ -1473,7 +1473,7 @@ declare const worktrees$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1473
1473
|
name: "schedule_last_triggered_at";
|
|
1474
1474
|
tableName: "worktrees";
|
|
1475
1475
|
dataType: "number";
|
|
1476
|
-
columnType: "
|
|
1476
|
+
columnType: "PgBigInt53";
|
|
1477
1477
|
data: number;
|
|
1478
1478
|
driverParam: string | number;
|
|
1479
1479
|
notNull: false;
|
|
@@ -1490,7 +1490,7 @@ declare const worktrees$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1490
1490
|
name: "schedule_next_run_at";
|
|
1491
1491
|
tableName: "worktrees";
|
|
1492
1492
|
dataType: "number";
|
|
1493
|
-
columnType: "
|
|
1493
|
+
columnType: "PgBigInt53";
|
|
1494
1494
|
data: number;
|
|
1495
1495
|
driverParam: string | number;
|
|
1496
1496
|
notNull: false;
|
|
@@ -2252,7 +2252,7 @@ declare const mcpServers$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
2252
2252
|
tableName: "mcp_servers";
|
|
2253
2253
|
dataType: "string";
|
|
2254
2254
|
columnType: "PgText";
|
|
2255
|
-
data: "
|
|
2255
|
+
data: "global" | "session";
|
|
2256
2256
|
driverParam: string;
|
|
2257
2257
|
notNull: true;
|
|
2258
2258
|
hasDefault: false;
|
|
@@ -3677,7 +3677,7 @@ declare const messages: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
|
3677
3677
|
tableName: "messages";
|
|
3678
3678
|
dataType: "string";
|
|
3679
3679
|
columnType: "SQLiteText";
|
|
3680
|
-
data: "
|
|
3680
|
+
data: "system" | "user" | "assistant" | "file-history-snapshot" | "permission_request";
|
|
3681
3681
|
driverParam: string;
|
|
3682
3682
|
notNull: true;
|
|
3683
3683
|
hasDefault: false;
|
|
@@ -3696,7 +3696,7 @@ declare const messages: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
|
3696
3696
|
tableName: "messages";
|
|
3697
3697
|
dataType: "string";
|
|
3698
3698
|
columnType: "SQLiteText";
|
|
3699
|
-
data: "
|
|
3699
|
+
data: "system" | "user" | "assistant";
|
|
3700
3700
|
driverParam: string;
|
|
3701
3701
|
notNull: true;
|
|
3702
3702
|
hasDefault: false;
|
|
@@ -5320,7 +5320,7 @@ declare const mcpServers: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
|
5320
5320
|
tableName: "mcp_servers";
|
|
5321
5321
|
dataType: "string";
|
|
5322
5322
|
columnType: "SQLiteText";
|
|
5323
|
-
data: "
|
|
5323
|
+
data: "global" | "session";
|
|
5324
5324
|
driverParam: string;
|
|
5325
5325
|
notNull: true;
|
|
5326
5326
|
hasDefault: false;
|
|
@@ -221,7 +221,7 @@ declare const sessions$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
221
221
|
name: "scheduled_run_at";
|
|
222
222
|
tableName: "sessions";
|
|
223
223
|
dataType: "number";
|
|
224
|
-
columnType: "
|
|
224
|
+
columnType: "PgBigInt53";
|
|
225
225
|
data: number;
|
|
226
226
|
driverParam: string | number;
|
|
227
227
|
notNull: false;
|
|
@@ -673,7 +673,7 @@ declare const messages$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
673
673
|
tableName: "messages";
|
|
674
674
|
dataType: "string";
|
|
675
675
|
columnType: "PgText";
|
|
676
|
-
data: "
|
|
676
|
+
data: "system" | "user" | "assistant" | "file-history-snapshot" | "permission_request";
|
|
677
677
|
driverParam: string;
|
|
678
678
|
notNull: true;
|
|
679
679
|
hasDefault: false;
|
|
@@ -690,7 +690,7 @@ declare const messages$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
690
690
|
tableName: "messages";
|
|
691
691
|
dataType: "string";
|
|
692
692
|
columnType: "PgText";
|
|
693
|
-
data: "
|
|
693
|
+
data: "system" | "user" | "assistant";
|
|
694
694
|
driverParam: string;
|
|
695
695
|
notNull: true;
|
|
696
696
|
hasDefault: false;
|
|
@@ -1473,7 +1473,7 @@ declare const worktrees$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1473
1473
|
name: "schedule_last_triggered_at";
|
|
1474
1474
|
tableName: "worktrees";
|
|
1475
1475
|
dataType: "number";
|
|
1476
|
-
columnType: "
|
|
1476
|
+
columnType: "PgBigInt53";
|
|
1477
1477
|
data: number;
|
|
1478
1478
|
driverParam: string | number;
|
|
1479
1479
|
notNull: false;
|
|
@@ -1490,7 +1490,7 @@ declare const worktrees$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1490
1490
|
name: "schedule_next_run_at";
|
|
1491
1491
|
tableName: "worktrees";
|
|
1492
1492
|
dataType: "number";
|
|
1493
|
-
columnType: "
|
|
1493
|
+
columnType: "PgBigInt53";
|
|
1494
1494
|
data: number;
|
|
1495
1495
|
driverParam: string | number;
|
|
1496
1496
|
notNull: false;
|
|
@@ -2252,7 +2252,7 @@ declare const mcpServers$1: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
2252
2252
|
tableName: "mcp_servers";
|
|
2253
2253
|
dataType: "string";
|
|
2254
2254
|
columnType: "PgText";
|
|
2255
|
-
data: "
|
|
2255
|
+
data: "global" | "session";
|
|
2256
2256
|
driverParam: string;
|
|
2257
2257
|
notNull: true;
|
|
2258
2258
|
hasDefault: false;
|
|
@@ -3677,7 +3677,7 @@ declare const messages: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
|
3677
3677
|
tableName: "messages";
|
|
3678
3678
|
dataType: "string";
|
|
3679
3679
|
columnType: "SQLiteText";
|
|
3680
|
-
data: "
|
|
3680
|
+
data: "system" | "user" | "assistant" | "file-history-snapshot" | "permission_request";
|
|
3681
3681
|
driverParam: string;
|
|
3682
3682
|
notNull: true;
|
|
3683
3683
|
hasDefault: false;
|
|
@@ -3696,7 +3696,7 @@ declare const messages: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
|
3696
3696
|
tableName: "messages";
|
|
3697
3697
|
dataType: "string";
|
|
3698
3698
|
columnType: "SQLiteText";
|
|
3699
|
-
data: "
|
|
3699
|
+
data: "system" | "user" | "assistant";
|
|
3700
3700
|
driverParam: string;
|
|
3701
3701
|
notNull: true;
|
|
3702
3702
|
hasDefault: false;
|
|
@@ -5320,7 +5320,7 @@ declare const mcpServers: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
|
5320
5320
|
tableName: "mcp_servers";
|
|
5321
5321
|
dataType: "string";
|
|
5322
5322
|
columnType: "SQLiteText";
|
|
5323
|
-
data: "
|
|
5323
|
+
data: "global" | "session";
|
|
5324
5324
|
driverParam: string;
|
|
5325
5325
|
notNull: true;
|
|
5326
5326
|
hasDefault: false;
|
|
@@ -187,8 +187,8 @@ var init_schema_postgres = __esm({
|
|
|
187
187
|
// Cascade delete sessions when worktree is deleted
|
|
188
188
|
}),
|
|
189
189
|
// Scheduler tracking (materialized for deduplication and retention cleanup)
|
|
190
|
-
scheduled_run_at: (0, import_pg_core.
|
|
191
|
-
// Unix timestamp (ms) - authoritative run ID
|
|
190
|
+
scheduled_run_at: (0, import_pg_core.bigint)("scheduled_run_at", { mode: "number" }),
|
|
191
|
+
// Unix timestamp (ms) - authoritative run ID - bigint to support dates beyond 2038
|
|
192
192
|
scheduled_from_worktree: t.bool("scheduled_from_worktree").notNull().default(false),
|
|
193
193
|
// UI state (materialized for efficient highlighting queries)
|
|
194
194
|
ready_for_prompt: t.bool("ready_for_prompt").notNull().default(false),
|
|
@@ -363,10 +363,10 @@ var init_schema_postgres = __esm({
|
|
|
363
363
|
schedule_enabled: t.bool("schedule_enabled").notNull().default(false),
|
|
364
364
|
schedule_cron: (0, import_pg_core.text)("schedule_cron"),
|
|
365
365
|
// Cron expression (e.g., "0 9 * * 1-5")
|
|
366
|
-
schedule_last_triggered_at: (0, import_pg_core.
|
|
367
|
-
// Unix timestamp (ms)
|
|
368
|
-
schedule_next_run_at: (0, import_pg_core.
|
|
369
|
-
// Unix timestamp (ms)
|
|
366
|
+
schedule_last_triggered_at: (0, import_pg_core.bigint)("schedule_last_triggered_at", { mode: "number" }),
|
|
367
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
368
|
+
schedule_next_run_at: (0, import_pg_core.bigint)("schedule_next_run_at", { mode: "number" }),
|
|
369
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
370
370
|
// UI state (materialized for efficient highlighting queries)
|
|
371
371
|
needs_attention: t.bool("needs_attention").notNull().default(true),
|
|
372
372
|
// Default true for new worktrees
|
|
@@ -1844,11 +1844,17 @@ function resolveSystemEnvironment() {
|
|
|
1844
1844
|
return { ...process.env };
|
|
1845
1845
|
}
|
|
1846
1846
|
var AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
1847
|
-
async function createUserProcessEnvironment(userId, db, additionalEnv) {
|
|
1847
|
+
async function createUserProcessEnvironment(userId, db, additionalEnv, forImpersonation = false) {
|
|
1848
1848
|
const env = { ...process.env };
|
|
1849
1849
|
for (const internalVar of AGOR_INTERNAL_ENV_VARS) {
|
|
1850
1850
|
delete env[internalVar];
|
|
1851
1851
|
}
|
|
1852
|
+
const USER_IDENTITY_VARS = ["HOME", "USER", "LOGNAME", "SHELL"];
|
|
1853
|
+
if (forImpersonation) {
|
|
1854
|
+
for (const identityVar of USER_IDENTITY_VARS) {
|
|
1855
|
+
delete env[identityVar];
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1852
1858
|
const userEnvKeys = [];
|
|
1853
1859
|
if (userId && db) {
|
|
1854
1860
|
const userEnv = await resolveUserEnvironment(userId, db);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h as RepoEnvironmentConfig } from '../worktree-hZImhblR.cjs';
|
|
2
2
|
export { c as ensureCodexHome, e as expandHomePath, g as getAgorHome, a as getConfigPath, d as getConfigValue, k as getCredential, h as getDaemonUrl, m as getDaemonUser, q as getDataHome, x as getDataHomeAsync, b as getDefaultConfig, t as getReposDir, y as getReposDirAsync, w as getWorktreePath, v as getWorktreesDir, z as getWorktreesDirAsync, i as initConfig, p as isUnixImpersonationEnabled, o as isWorktreeRbacEnabled, l as loadConfig, j as loadConfigSync, n as requireDaemonUser, r as resolveCodexHome, s as saveConfig, f as setConfigValue, u as unsetConfigValue } from '../config-manager-tIFWlS73.cjs';
|
|
3
3
|
export { DAEMON, DATABASE, ENVIRONMENT, GIT, PAGINATION, RepoReference, RepoReferenceOption, SESSION, WEBSOCKET, extractSlugFromUrl, formatRepoReference, getDefaultRepoReference, getGroupedRepoReferenceOptions, getRepoReferenceOptions, isValidGitUrl, isValidSlug, parseRepoReference, resolveRepoReference } from './browser.cjs';
|
|
4
|
-
import { d as Database } from '../client-
|
|
4
|
+
import { d as Database } from '../client-fIC5YbDo.cjs';
|
|
5
5
|
import { b as UserID } from '../id-BwPJtWxW.cjs';
|
|
6
6
|
export { f as AgorCodexSettings, j as AgorConfig, i as AgorCredentials, b as AgorDaemonSettings, e as AgorDatabaseSettings, A as AgorDefaults, a as AgorDisplaySettings, g as AgorExecutionSettings, d as AgorOpenCodeSettings, h as AgorPathSettings, c as AgorUISettings, k as ConfigKey, C as CredentialKey, U as UnknownJson } from '../types-eb2uYaBV.cjs';
|
|
7
7
|
import 'drizzle-orm/libsql';
|
|
@@ -137,13 +137,15 @@ declare const AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
|
137
137
|
* This function:
|
|
138
138
|
* 1. Starts with system environment (process.env)
|
|
139
139
|
* 2. Filters out Agor-internal variables (NODE_ENV, AGOR_*, etc.)
|
|
140
|
-
* 3.
|
|
141
|
-
* 4.
|
|
142
|
-
* 5.
|
|
140
|
+
* 3. Optionally filters out user-identity vars (HOME/USER/LOGNAME/SHELL) for impersonation
|
|
141
|
+
* 4. Resolves and merges user-specific encrypted environment variables
|
|
142
|
+
* 5. Optionally merges additional environment variables
|
|
143
|
+
* 6. Sets AGOR_USER_ENV_KEYS with comma-separated list of user-defined var keys
|
|
143
144
|
*
|
|
144
145
|
* @param userId - User ID to resolve environment for (optional)
|
|
145
146
|
* @param db - Database instance (required if userId provided)
|
|
146
147
|
* @param additionalEnv - Additional env vars to merge (optional, highest priority)
|
|
148
|
+
* @param forImpersonation - If true, strips HOME/USER/LOGNAME/SHELL so sudo -u can set them (default: false)
|
|
147
149
|
* @returns Clean environment object ready for child process spawning
|
|
148
150
|
*
|
|
149
151
|
* @example
|
|
@@ -152,6 +154,11 @@ declare const AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
|
152
154
|
* spawn(command, { cwd, shell: true, env });
|
|
153
155
|
*
|
|
154
156
|
* @example
|
|
157
|
+
* // For user impersonation (strips HOME/USER/LOGNAME/SHELL)
|
|
158
|
+
* const env = await createUserProcessEnvironment(worktree.created_by, db, undefined, true);
|
|
159
|
+
* buildSpawnArgs(command, [], { asUser: 'alice', env });
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
155
162
|
* // For worktree environment with custom NODE_ENV
|
|
156
163
|
* const env = await createUserProcessEnvironment(worktree.created_by, db, {
|
|
157
164
|
* NODE_ENV: 'development',
|
|
@@ -162,7 +169,7 @@ declare const AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
|
162
169
|
* const env = await createUserProcessEnvironment();
|
|
163
170
|
* spawn(command, { env });
|
|
164
171
|
*/
|
|
165
|
-
declare function createUserProcessEnvironment(userId?: UserID, db?: Database, additionalEnv?: Record<string, string
|
|
172
|
+
declare function createUserProcessEnvironment(userId?: UserID, db?: Database, additionalEnv?: Record<string, string>, forImpersonation?: boolean): Promise<Record<string, string>>;
|
|
166
173
|
|
|
167
174
|
/**
|
|
168
175
|
* Validation constraints for environment variables
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h as RepoEnvironmentConfig } from '../worktree-BR7Inm0-.js';
|
|
2
2
|
export { c as ensureCodexHome, e as expandHomePath, g as getAgorHome, a as getConfigPath, d as getConfigValue, k as getCredential, h as getDaemonUrl, m as getDaemonUser, q as getDataHome, x as getDataHomeAsync, b as getDefaultConfig, t as getReposDir, y as getReposDirAsync, w as getWorktreePath, v as getWorktreesDir, z as getWorktreesDirAsync, i as initConfig, p as isUnixImpersonationEnabled, o as isWorktreeRbacEnabled, l as loadConfig, j as loadConfigSync, n as requireDaemonUser, r as resolveCodexHome, s as saveConfig, f as setConfigValue, u as unsetConfigValue } from '../config-manager-CAIQUOj8.js';
|
|
3
3
|
export { DAEMON, DATABASE, ENVIRONMENT, GIT, PAGINATION, RepoReference, RepoReferenceOption, SESSION, WEBSOCKET, extractSlugFromUrl, formatRepoReference, getDefaultRepoReference, getGroupedRepoReferenceOptions, getRepoReferenceOptions, isValidGitUrl, isValidSlug, parseRepoReference, resolveRepoReference } from './browser.js';
|
|
4
|
-
import { d as Database } from '../client-
|
|
4
|
+
import { d as Database } from '../client-BOMc8S1H.js';
|
|
5
5
|
import { b as UserID } from '../id-BwPJtWxW.js';
|
|
6
6
|
export { f as AgorCodexSettings, j as AgorConfig, i as AgorCredentials, b as AgorDaemonSettings, e as AgorDatabaseSettings, A as AgorDefaults, a as AgorDisplaySettings, g as AgorExecutionSettings, d as AgorOpenCodeSettings, h as AgorPathSettings, c as AgorUISettings, k as ConfigKey, C as CredentialKey, U as UnknownJson } from '../types-eb2uYaBV.js';
|
|
7
7
|
import 'drizzle-orm/libsql';
|
|
@@ -137,13 +137,15 @@ declare const AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
|
137
137
|
* This function:
|
|
138
138
|
* 1. Starts with system environment (process.env)
|
|
139
139
|
* 2. Filters out Agor-internal variables (NODE_ENV, AGOR_*, etc.)
|
|
140
|
-
* 3.
|
|
141
|
-
* 4.
|
|
142
|
-
* 5.
|
|
140
|
+
* 3. Optionally filters out user-identity vars (HOME/USER/LOGNAME/SHELL) for impersonation
|
|
141
|
+
* 4. Resolves and merges user-specific encrypted environment variables
|
|
142
|
+
* 5. Optionally merges additional environment variables
|
|
143
|
+
* 6. Sets AGOR_USER_ENV_KEYS with comma-separated list of user-defined var keys
|
|
143
144
|
*
|
|
144
145
|
* @param userId - User ID to resolve environment for (optional)
|
|
145
146
|
* @param db - Database instance (required if userId provided)
|
|
146
147
|
* @param additionalEnv - Additional env vars to merge (optional, highest priority)
|
|
148
|
+
* @param forImpersonation - If true, strips HOME/USER/LOGNAME/SHELL so sudo -u can set them (default: false)
|
|
147
149
|
* @returns Clean environment object ready for child process spawning
|
|
148
150
|
*
|
|
149
151
|
* @example
|
|
@@ -152,6 +154,11 @@ declare const AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
|
152
154
|
* spawn(command, { cwd, shell: true, env });
|
|
153
155
|
*
|
|
154
156
|
* @example
|
|
157
|
+
* // For user impersonation (strips HOME/USER/LOGNAME/SHELL)
|
|
158
|
+
* const env = await createUserProcessEnvironment(worktree.created_by, db, undefined, true);
|
|
159
|
+
* buildSpawnArgs(command, [], { asUser: 'alice', env });
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
155
162
|
* // For worktree environment with custom NODE_ENV
|
|
156
163
|
* const env = await createUserProcessEnvironment(worktree.created_by, db, {
|
|
157
164
|
* NODE_ENV: 'development',
|
|
@@ -162,7 +169,7 @@ declare const AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
|
162
169
|
* const env = await createUserProcessEnvironment();
|
|
163
170
|
* spawn(command, { env });
|
|
164
171
|
*/
|
|
165
|
-
declare function createUserProcessEnvironment(userId?: UserID, db?: Database, additionalEnv?: Record<string, string
|
|
172
|
+
declare function createUserProcessEnvironment(userId?: UserID, db?: Database, additionalEnv?: Record<string, string>, forImpersonation?: boolean): Promise<Record<string, string>>;
|
|
166
173
|
|
|
167
174
|
/**
|
|
168
175
|
* Validation constraints for environment variables
|
|
@@ -124,6 +124,7 @@ __export(schema_postgres_exports, {
|
|
|
124
124
|
});
|
|
125
125
|
import { sql as sql2 } from "drizzle-orm";
|
|
126
126
|
import {
|
|
127
|
+
bigint,
|
|
127
128
|
boolean,
|
|
128
129
|
index,
|
|
129
130
|
integer,
|
|
@@ -176,8 +177,8 @@ var init_schema_postgres = __esm({
|
|
|
176
177
|
// Cascade delete sessions when worktree is deleted
|
|
177
178
|
}),
|
|
178
179
|
// Scheduler tracking (materialized for deduplication and retention cleanup)
|
|
179
|
-
scheduled_run_at:
|
|
180
|
-
// Unix timestamp (ms) - authoritative run ID
|
|
180
|
+
scheduled_run_at: bigint("scheduled_run_at", { mode: "number" }),
|
|
181
|
+
// Unix timestamp (ms) - authoritative run ID - bigint to support dates beyond 2038
|
|
181
182
|
scheduled_from_worktree: t.bool("scheduled_from_worktree").notNull().default(false),
|
|
182
183
|
// UI state (materialized for efficient highlighting queries)
|
|
183
184
|
ready_for_prompt: t.bool("ready_for_prompt").notNull().default(false),
|
|
@@ -352,10 +353,10 @@ var init_schema_postgres = __esm({
|
|
|
352
353
|
schedule_enabled: t.bool("schedule_enabled").notNull().default(false),
|
|
353
354
|
schedule_cron: text("schedule_cron"),
|
|
354
355
|
// Cron expression (e.g., "0 9 * * 1-5")
|
|
355
|
-
schedule_last_triggered_at:
|
|
356
|
-
// Unix timestamp (ms)
|
|
357
|
-
schedule_next_run_at:
|
|
358
|
-
// Unix timestamp (ms)
|
|
356
|
+
schedule_last_triggered_at: bigint("schedule_last_triggered_at", { mode: "number" }),
|
|
357
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
358
|
+
schedule_next_run_at: bigint("schedule_next_run_at", { mode: "number" }),
|
|
359
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
359
360
|
// UI state (materialized for efficient highlighting queries)
|
|
360
361
|
needs_attention: t.bool("needs_attention").notNull().default(true),
|
|
361
362
|
// Default true for new worktrees
|
|
@@ -1766,11 +1767,17 @@ function resolveSystemEnvironment() {
|
|
|
1766
1767
|
return { ...process.env };
|
|
1767
1768
|
}
|
|
1768
1769
|
var AGOR_USER_ENV_KEYS_VAR = "AGOR_USER_ENV_KEYS";
|
|
1769
|
-
async function createUserProcessEnvironment(userId, db, additionalEnv) {
|
|
1770
|
+
async function createUserProcessEnvironment(userId, db, additionalEnv, forImpersonation = false) {
|
|
1770
1771
|
const env = { ...process.env };
|
|
1771
1772
|
for (const internalVar of AGOR_INTERNAL_ENV_VARS) {
|
|
1772
1773
|
delete env[internalVar];
|
|
1773
1774
|
}
|
|
1775
|
+
const USER_IDENTITY_VARS = ["HOME", "USER", "LOGNAME", "SHELL"];
|
|
1776
|
+
if (forImpersonation) {
|
|
1777
|
+
for (const identityVar of USER_IDENTITY_VARS) {
|
|
1778
|
+
delete env[identityVar];
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1774
1781
|
const userEnvKeys = [];
|
|
1775
1782
|
if (userId && db) {
|
|
1776
1783
|
const userEnv = await resolveUserEnvironment(userId, db);
|
package/dist/core/db/index.cjs
CHANGED
|
@@ -264,8 +264,8 @@ var init_schema_postgres = __esm({
|
|
|
264
264
|
// Cascade delete sessions when worktree is deleted
|
|
265
265
|
}),
|
|
266
266
|
// Scheduler tracking (materialized for deduplication and retention cleanup)
|
|
267
|
-
scheduled_run_at: (0, import_pg_core.
|
|
268
|
-
// Unix timestamp (ms) - authoritative run ID
|
|
267
|
+
scheduled_run_at: (0, import_pg_core.bigint)("scheduled_run_at", { mode: "number" }),
|
|
268
|
+
// Unix timestamp (ms) - authoritative run ID - bigint to support dates beyond 2038
|
|
269
269
|
scheduled_from_worktree: t.bool("scheduled_from_worktree").notNull().default(false),
|
|
270
270
|
// UI state (materialized for efficient highlighting queries)
|
|
271
271
|
ready_for_prompt: t.bool("ready_for_prompt").notNull().default(false),
|
|
@@ -440,10 +440,10 @@ var init_schema_postgres = __esm({
|
|
|
440
440
|
schedule_enabled: t.bool("schedule_enabled").notNull().default(false),
|
|
441
441
|
schedule_cron: (0, import_pg_core.text)("schedule_cron"),
|
|
442
442
|
// Cron expression (e.g., "0 9 * * 1-5")
|
|
443
|
-
schedule_last_triggered_at: (0, import_pg_core.
|
|
444
|
-
// Unix timestamp (ms)
|
|
445
|
-
schedule_next_run_at: (0, import_pg_core.
|
|
446
|
-
// Unix timestamp (ms)
|
|
443
|
+
schedule_last_triggered_at: (0, import_pg_core.bigint)("schedule_last_triggered_at", { mode: "number" }),
|
|
444
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
445
|
+
schedule_next_run_at: (0, import_pg_core.bigint)("schedule_next_run_at", { mode: "number" }),
|
|
446
|
+
// Unix timestamp (ms) - bigint to support dates beyond 2038
|
|
447
447
|
// UI state (materialized for efficient highlighting queries)
|
|
448
448
|
needs_attention: t.bool("needs_attention").notNull().default(true),
|
|
449
449
|
// Default true for new worktrees
|
|
@@ -1574,14 +1574,17 @@ function createDatabase(config) {
|
|
|
1574
1574
|
}
|
|
1575
1575
|
function createPostgresDatabase(config) {
|
|
1576
1576
|
try {
|
|
1577
|
-
const
|
|
1577
|
+
const options = {
|
|
1578
1578
|
max: config.pool?.max || 10,
|
|
1579
1579
|
idle_timeout: config.pool?.idleTimeout || 30,
|
|
1580
|
-
ssl: config.ssl,
|
|
1581
1580
|
// Disable prepared statements - they can cause issues with DDL statements like CREATE SCHEMA
|
|
1582
1581
|
// and with Drizzle's migration system
|
|
1583
1582
|
prepare: false
|
|
1584
|
-
}
|
|
1583
|
+
};
|
|
1584
|
+
if (config.ssl !== void 0) {
|
|
1585
|
+
options.ssl = config.ssl;
|
|
1586
|
+
}
|
|
1587
|
+
const sql10 = (0, import_postgres.default)(config.url, options);
|
|
1585
1588
|
return (0, import_postgres_js.drizzle)(sql10, { schema: schema_postgres_exports });
|
|
1586
1589
|
} catch (error) {
|
|
1587
1590
|
throw new DatabaseConnectionError(
|
package/dist/core/db/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SQL } from 'drizzle-orm';
|
|
2
2
|
export { SQL, and, asc, desc, eq, inArray, like, or, sql } from 'drizzle-orm';
|
|
3
3
|
import bcryptjs from 'bcryptjs';
|
|
4
|
-
import { d as Database, w as sqliteSchema, x as postgresSchema } from '../client-
|
|
5
|
-
export { v as BoardCommentInsert, u as BoardCommentRow, k as BoardInsert, t as BoardObjectInsert, s as BoardObjectRow, B as BoardRow, e as DEFAULT_DB_PATH, a as DatabaseConnectionError, D as DbConfig, p as MCPServerInsert, o as MCPServerRow, j as MessageInsert, M as MessageRow, l as RepoInsert, R as RepoRow, h as SessionInsert, r as SessionMCPServerInsert, q as SessionMCPServerRow, S as SessionRow, i as TaskInsert, T as TaskRow, n as UserInsert, U as UserRow, m as WorktreeInsert, W as WorktreeRow, c as createDatabase, b as createDatabaseAsync, f as createLocalDatabase, g as getDatabaseUrl } from '../client-
|
|
4
|
+
import { d as Database, w as sqliteSchema, x as postgresSchema } from '../client-fIC5YbDo.cjs';
|
|
5
|
+
export { v as BoardCommentInsert, u as BoardCommentRow, k as BoardInsert, t as BoardObjectInsert, s as BoardObjectRow, B as BoardRow, e as DEFAULT_DB_PATH, a as DatabaseConnectionError, D as DbConfig, p as MCPServerInsert, o as MCPServerRow, j as MessageInsert, M as MessageRow, l as RepoInsert, R as RepoRow, h as SessionInsert, r as SessionMCPServerInsert, q as SessionMCPServerRow, S as SessionRow, i as TaskInsert, T as TaskRow, n as UserInsert, U as UserRow, m as WorktreeInsert, W as WorktreeRow, c as createDatabase, b as createDatabaseAsync, f as createLocalDatabase, g as getDatabaseUrl } from '../client-fIC5YbDo.cjs';
|
|
6
6
|
import { LibSQLDatabase } from 'drizzle-orm/libsql';
|
|
7
7
|
import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
|
|
8
8
|
import { PgTable } from 'drizzle-orm/pg-core';
|
|
@@ -1714,7 +1714,7 @@ declare const sessions: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1714
1714
|
name: "scheduled_run_at";
|
|
1715
1715
|
tableName: "sessions";
|
|
1716
1716
|
dataType: "number";
|
|
1717
|
-
columnType: "
|
|
1717
|
+
columnType: "PgBigInt53";
|
|
1718
1718
|
data: number;
|
|
1719
1719
|
driverParam: string | number;
|
|
1720
1720
|
notNull: false;
|
|
@@ -2732,7 +2732,7 @@ declare const messages: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
2732
2732
|
tableName: "messages";
|
|
2733
2733
|
dataType: "string";
|
|
2734
2734
|
columnType: "PgText";
|
|
2735
|
-
data: "
|
|
2735
|
+
data: "system" | "user" | "assistant" | "file-history-snapshot" | "permission_request";
|
|
2736
2736
|
driverParam: string;
|
|
2737
2737
|
notNull: true;
|
|
2738
2738
|
hasDefault: false;
|
|
@@ -2749,7 +2749,7 @@ declare const messages: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
2749
2749
|
tableName: "messages";
|
|
2750
2750
|
dataType: "string";
|
|
2751
2751
|
columnType: "PgText";
|
|
2752
|
-
data: "
|
|
2752
|
+
data: "system" | "user" | "assistant";
|
|
2753
2753
|
driverParam: string;
|
|
2754
2754
|
notNull: true;
|
|
2755
2755
|
hasDefault: false;
|
|
@@ -2975,7 +2975,7 @@ declare const messages: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
2975
2975
|
tableName: "messages";
|
|
2976
2976
|
dataType: "string";
|
|
2977
2977
|
columnType: "SQLiteText";
|
|
2978
|
-
data: "
|
|
2978
|
+
data: "system" | "user" | "assistant" | "file-history-snapshot" | "permission_request";
|
|
2979
2979
|
driverParam: string;
|
|
2980
2980
|
notNull: true;
|
|
2981
2981
|
hasDefault: false;
|
|
@@ -2994,7 +2994,7 @@ declare const messages: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
2994
2994
|
tableName: "messages";
|
|
2995
2995
|
dataType: "string";
|
|
2996
2996
|
columnType: "SQLiteText";
|
|
2997
|
-
data: "
|
|
2997
|
+
data: "system" | "user" | "assistant";
|
|
2998
2998
|
driverParam: string;
|
|
2999
2999
|
notNull: true;
|
|
3000
3000
|
hasDefault: false;
|
|
@@ -4080,7 +4080,7 @@ declare const worktrees: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
4080
4080
|
name: "schedule_last_triggered_at";
|
|
4081
4081
|
tableName: "worktrees";
|
|
4082
4082
|
dataType: "number";
|
|
4083
|
-
columnType: "
|
|
4083
|
+
columnType: "PgBigInt53";
|
|
4084
4084
|
data: number;
|
|
4085
4085
|
driverParam: string | number;
|
|
4086
4086
|
notNull: false;
|
|
@@ -4097,7 +4097,7 @@ declare const worktrees: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
4097
4097
|
name: "schedule_next_run_at";
|
|
4098
4098
|
tableName: "worktrees";
|
|
4099
4099
|
dataType: "number";
|
|
4100
|
-
columnType: "
|
|
4100
|
+
columnType: "PgBigInt53";
|
|
4101
4101
|
data: number;
|
|
4102
4102
|
driverParam: string | number;
|
|
4103
4103
|
notNull: false;
|
|
@@ -5865,7 +5865,7 @@ declare const mcpServers: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
5865
5865
|
tableName: "mcp_servers";
|
|
5866
5866
|
dataType: "string";
|
|
5867
5867
|
columnType: "PgText";
|
|
5868
|
-
data: "
|
|
5868
|
+
data: "global" | "session";
|
|
5869
5869
|
driverParam: string;
|
|
5870
5870
|
notNull: true;
|
|
5871
5871
|
hasDefault: false;
|
|
@@ -6137,7 +6137,7 @@ declare const mcpServers: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
6137
6137
|
tableName: "mcp_servers";
|
|
6138
6138
|
dataType: "string";
|
|
6139
6139
|
columnType: "SQLiteText";
|
|
6140
|
-
data: "
|
|
6140
|
+
data: "global" | "session";
|
|
6141
6141
|
driverParam: string;
|
|
6142
6142
|
notNull: true;
|
|
6143
6143
|
hasDefault: false;
|