@maudecode/talaria-web 1.11.0 → 1.12.1
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/_release.json +4 -4
- package/dist/api/chat-router.d.ts +68 -4
- package/dist/api/chat-router.js +11 -8
- package/dist/api/chat-router.js.map +1 -1
- package/dist/api/router.d.ts +10 -0
- package/dist/api/router.js +2 -1
- package/dist/api/router.js.map +1 -1
- package/dist/api/sessions-router.d.ts +407 -51
- package/dist/api/sessions-router.js +2 -2
- package/dist/api/sessions-router.js.map +1 -1
- package/dist/api/sse-routes.js +52 -8
- package/dist/api/sse-routes.js.map +1 -1
- package/dist/api/tools-router.d.ts +329 -0
- package/dist/api/tools-router.js +97 -4
- package/dist/api/tools-router.js.map +1 -1
- package/dist/app.d.ts +812 -55
- package/dist/auth/oidc.js +2 -0
- package/dist/auth/oidc.js.map +1 -1
- package/dist/auth/store.d.ts +17 -0
- package/dist/auth/store.js +77 -19
- package/dist/auth/store.js.map +1 -1
- package/dist/fs/atomic.d.ts +8 -1
- package/dist/fs/atomic.js +52 -3
- package/dist/fs/atomic.js.map +1 -1
- package/dist/http/context.d.ts +2 -0
- package/dist/http/context.js.map +1 -1
- package/dist/redact.d.ts +15 -0
- package/dist/redact.js +1393 -9
- package/dist/redact.js.map +1 -1
- package/dist/release.js +3 -1
- package/dist/release.js.map +1 -1
- package/dist/runtime.js +20 -9
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +11 -5
- package/dist/server.js.map +1 -1
- package/dist/sessions/anchor.d.ts +2 -0
- package/dist/sessions/anchor.js +22 -17
- package/dist/sessions/anchor.js.map +1 -1
- package/dist/sessions/file-changes.d.ts +15 -0
- package/dist/sessions/file-changes.js +58 -0
- package/dist/sessions/file-changes.js.map +1 -0
- package/dist/sessions/journal.d.ts +6 -1
- package/dist/sessions/journal.js +9 -15
- package/dist/sessions/journal.js.map +1 -1
- package/dist/sessions/list.d.ts +21 -1
- package/dist/sessions/list.js +81 -17
- package/dist/sessions/list.js.map +1 -1
- package/dist/sessions/merge.d.ts +66 -2
- package/dist/sessions/merge.js +291 -9
- package/dist/sessions/merge.js.map +1 -1
- package/dist/sessions/pending.d.ts +11 -2
- package/dist/sessions/pending.js +52 -3
- package/dist/sessions/pending.js.map +1 -1
- package/dist/sessions/service.d.ts +16 -3
- package/dist/sessions/service.js +92 -54
- package/dist/sessions/service.js.map +1 -1
- package/dist/sessions/state-db.d.ts +5 -0
- package/dist/sessions/state-db.js +34 -0
- package/dist/sessions/state-db.js.map +1 -1
- package/dist/sessions/streams.d.ts +4 -1
- package/dist/sessions/streams.js +3 -0
- package/dist/sessions/streams.js.map +1 -1
- package/dist/sessions/tool-display.d.ts +21 -0
- package/dist/sessions/tool-display.js +113 -0
- package/dist/sessions/tool-display.js.map +1 -0
- package/dist/sessions/turn.d.ts +25 -7
- package/dist/sessions/turn.js +153 -90
- package/dist/sessions/turn.js.map +1 -1
- package/dist/spa.d.ts +2 -0
- package/dist/spa.js +9 -0
- package/dist/spa.js.map +1 -1
- package/dist/test/harness.d.ts +2 -0
- package/dist/test/harness.js +1 -1
- package/dist/test/harness.js.map +1 -1
- package/dist/tools/terminal.d.ts +6 -0
- package/dist/tools/terminal.js +24 -3
- package/dist/tools/terminal.js.map +1 -1
- package/dist/tools/update-notifications.d.ts +120 -0
- package/dist/tools/update-notifications.js +387 -0
- package/dist/tools/update-notifications.js.map +1 -0
- package/dist/tools/updates.d.ts +49 -3
- package/dist/tools/updates.js +319 -53
- package/dist/tools/updates.js.map +1 -1
- package/package.json +2 -2
- package/sidecar/scripts/replay_sidecar.py +17 -0
- package/sidecar/talaria_sidecar/__init__.py +1 -1
- package/sidecar/talaria_sidecar/home.py +39 -16
- package/sidecar/talaria_sidecar/methods/chat.py +113 -4
- package/static/dist/FILES.txt +115 -116
- package/static/dist/assets/AppShell-m4w420jl.js +1 -0
- package/static/dist/assets/ChatPage-cuqcnisv.js +20 -0
- package/static/dist/assets/HubRoute-hqgqtm35.js +2 -0
- package/static/dist/assets/{Markdown-ftyfzds0.js → Markdown-j2hlu30v.js} +7 -7
- package/static/dist/assets/RightPanel-oid5q557.js +1 -0
- package/static/dist/assets/Select-ot2zr0il.js +1 -0
- package/static/dist/assets/SessionListPanel-o3sgjnrq.js +1 -0
- package/static/dist/assets/{SettingsLayout-pdpmhy1o.js → SettingsLayout-b0idn649.js} +1 -1
- package/static/dist/assets/States-htz1oee5.js +1 -0
- package/static/dist/assets/Toaster-h49pk1hy.js +1 -0
- package/static/dist/assets/_app-h7eaezs7.js +1 -0
- package/static/dist/assets/_app.ext._extensionId-h8oaqzsj.js +1 -0
- package/static/dist/assets/_app.index-xinao3xh.js +1 -0
- package/static/dist/assets/_app.insights-cxplvhkm.js +1 -0
- package/static/dist/assets/_app.kanban-hhli8h0h.js +1 -0
- package/static/dist/assets/_app.logs-f6srwjfl.js +1 -0
- package/static/dist/assets/_app.memory-lntcea85.js +1 -0
- package/static/dist/assets/_app.profiles-lftyp6of.js +1 -0
- package/static/dist/assets/{_app.session._sessionId-n1ggcf5e.js → _app.session._sessionId-hhpcqih4.js} +1 -1
- package/static/dist/assets/_app.settings-rs93zpvw.js +1 -0
- package/static/dist/assets/_app.settings._section-nafqsbwm.js +1 -0
- package/static/dist/assets/_app.skills-jzoi1ivd.js +1 -0
- package/static/dist/assets/_app.tasks-ijphsw56.js +2 -0
- package/static/dist/assets/_app.todos-emyh8inv.js +1 -0
- package/static/dist/assets/_app.workspaces-fwr1cum8.js +1 -0
- package/static/dist/assets/{abnfDiagram-VCTEODGH-i4bgzu83.js → abnfDiagram-VCTEODGH-egykbz8h.js} +1 -1
- package/static/dist/assets/architecture-7GRP2DOG-l6y92mbn.js +1 -0
- package/static/dist/assets/{architectureDiagram-5GKGNRK7-mx21lwqa.js → architectureDiagram-5GKGNRK7-b2e0wk3y.js} +1 -1
- package/static/dist/assets/{blockDiagram-I7D4REHJ-o1hhchxv.js → blockDiagram-I7D4REHJ-i3cq67dn.js} +1 -1
- package/static/dist/assets/{c4Diagram-7LVT6UL2-jygqtvd8.js → c4Diagram-7LVT6UL2-lg1p1s7a.js} +1 -1
- package/static/dist/assets/channel-gq8cwu71.js +1 -0
- package/static/dist/assets/{chunk-4HAMMTFA-hjcpubgk.js → chunk-4HAMMTFA-i0s1s7zi.js} +1 -1
- package/static/dist/assets/{chunk-75Z2AOVW-eibnex6m.js → chunk-75Z2AOVW-kwinpapo.js} +1 -1
- package/static/dist/assets/{chunk-DU6HZSFF-k1tp3qnp.js → chunk-DU6HZSFF-hb8qrbc3.js} +3 -3
- package/static/dist/assets/{chunk-F27PBJKO-lvcgn16f.js → chunk-F27PBJKO-dy2tqtcs.js} +1 -1
- package/static/dist/assets/{chunk-GMAD6QVW-ldlzruv1.js → chunk-GMAD6QVW-fqox5yvt.js} +1 -1
- package/static/dist/assets/{chunk-GVQU2GXP-hs1mva9d.js → chunk-GVQU2GXP-bo3x6ze4.js} +1 -1
- package/static/dist/assets/{chunk-IMKFNOWR-o7eqx3yb.js → chunk-IMKFNOWR-nxs6rrcq.js} +1 -1
- package/static/dist/assets/{chunk-L3NEJ4N5-bp1ofl70.js → chunk-L3NEJ4N5-f9yeq1fi.js} +1 -1
- package/static/dist/assets/{chunk-OSK3NFVY-o8m6mdz5.js → chunk-OSK3NFVY-c7df44qv.js} +1 -1
- package/static/dist/assets/{chunk-P2QGCYS3-kx83fti2.js → chunk-P2QGCYS3-eyjzf5o5.js} +1 -1
- package/static/dist/assets/{chunk-POPQ4Y6H-mwl99e9y.js → chunk-POPQ4Y6H-iy3hp9rc.js} +1 -1
- package/static/dist/assets/{chunk-PWAF6VOD-oriuokxy.js → chunk-PWAF6VOD-co2yoefz.js} +1 -1
- package/static/dist/assets/{chunk-SHT3W25Y-ab5cf00v.js → chunk-SHT3W25Y-obzqmn9k.js} +1 -1
- package/static/dist/assets/{chunk-SVP7TREG-kqdrpr17.js → chunk-SVP7TREG-hqwdo6vt.js} +1 -1
- package/static/dist/assets/{chunk-TICWLB2K-kfbnjabk.js → chunk-TICWLB2K-l8t1mdfd.js} +1 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-fg9sc5r8.js +1 -0
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-fg9sc5r8.js +1 -0
- package/static/dist/assets/{copied-dp33szhq.js → copied-hurn8vn4.js} +1 -1
- package/static/dist/assets/{cynefin-OW5HDTMX-mm5sj9s7.js → cynefin-OW5HDTMX-ngx2ihay.js} +1 -1
- package/static/dist/assets/{cynefinDiagram-5FMLGOSQ-nfon5q38.js → cynefinDiagram-5FMLGOSQ-fiyooys3.js} +1 -1
- package/static/dist/assets/{dagre-GXQ25YYZ-dzdp9ypb.js → dagre-GXQ25YYZ-fctryel6.js} +1 -1
- package/static/dist/assets/{diagram-S7CK7UJ4-ckxzqo01.js → diagram-S7CK7UJ4-m27jopok.js} +1 -1
- package/static/dist/assets/{diagram-UQ7AKVKN-hw16h1um.js → diagram-UQ7AKVKN-ojgkbmp4.js} +1 -1
- package/static/dist/assets/{diagram-VSXAHHWV-mu7wu2zg.js → diagram-VSXAHHWV-gfafpgyj.js} +1 -1
- package/static/dist/assets/{diagram-VX7I27RA-k9uprwtj.js → diagram-VX7I27RA-daobicg4.js} +1 -1
- package/static/dist/assets/{diagram-Z3DM3KII-csdjzrg9.js → diagram-Z3DM3KII-mi475zvk.js} +1 -1
- package/static/dist/assets/{ebnfDiagram-PWID7BFC-n8mbw2jj.js → ebnfDiagram-PWID7BFC-daf4zvsy.js} +1 -1
- package/static/dist/assets/endpoints-cyjhnrbn.js +64 -0
- package/static/dist/assets/{erDiagram-RLTQ6QDP-fsfe1uj0.js → erDiagram-RLTQ6QDP-gxfhxvfp.js} +1 -1
- package/static/dist/assets/eventmodeling-NTZA5JFV-manga0bq.js +1 -0
- package/static/dist/assets/flowDiagram-HODETNUW-bpt13uny.js +1 -0
- package/static/dist/assets/{ganttDiagram-EL5Y4UJY-gsba3iq9.js → ganttDiagram-EL5Y4UJY-k3208e0p.js} +1 -1
- package/static/dist/assets/{gitGraph-4MIJSDKK-na86q1pu.js → gitGraph-4MIJSDKK-gjuhj4zk.js} +1 -1
- package/static/dist/assets/{gitGraphDiagram-WWUBYQGX-g72ew3xz.js → gitGraphDiagram-WWUBYQGX-jglxvux1.js} +1 -1
- package/static/dist/assets/{highlighted-body-KPVGNVTW-okn18cp1.js → highlighted-body-KPVGNVTW-gh24xc9c.js} +1 -1
- package/static/dist/assets/index-gsg78cb4.css +2 -0
- package/static/dist/assets/index-jb47los5.js +11 -0
- package/static/dist/assets/{info-A6RAGUB7-i01jeltk.js → info-A6RAGUB7-huf0xaoq.js} +1 -1
- package/static/dist/assets/{infoDiagram-27XIBGKW-cayiv6fa.js → infoDiagram-27XIBGKW-jk3n96ix.js} +1 -1
- package/static/dist/assets/{ishikawaDiagram-5VMMS53U-g4rf14bv.js → ishikawaDiagram-5VMMS53U-o95uo5dx.js} +1 -1
- package/static/dist/assets/{journeyDiagram-3NMN7TZE-fusb2424.js → journeyDiagram-3NMN7TZE-h5ye2l70.js} +1 -1
- package/static/dist/assets/{kanban-definition-UXKFOSKX-g831pwlr.js → kanban-definition-UXKFOSKX-lgrpk5yi.js} +1 -1
- package/static/dist/assets/{lazyRouteComponent-ol965zwk.js → lazyRouteComponent-owywngyt.js} +1 -1
- package/static/dist/assets/{line-md6em6gc.js → line-cihmc0pn.js} +1 -1
- package/static/dist/assets/{login-kfclsqd2.js → login-g063apx6.js} +1 -1
- package/static/dist/assets/mermaid-HWGCJPDP-okd1mnvj.js +1 -0
- package/static/dist/assets/{mermaid-parser.core-mq3uns9m.js → mermaid-parser.core-d1609aga.js} +3 -3
- package/static/dist/assets/{mindmap-definition-YA3MSWOX-oxafrned.js → mindmap-definition-YA3MSWOX-lbvtir31.js} +1 -1
- package/static/dist/assets/{onboarding-fo6hnkyv.js → onboarding-ngw0x0pr.js} +1 -1
- package/static/dist/assets/{packet-AYTQ26CC-ggxyvbym.js → packet-AYTQ26CC-o4cp5z3k.js} +1 -1
- package/static/dist/assets/{pegDiagram-XKGWAZYB-nk7xcqgp.js → pegDiagram-XKGWAZYB-e8xqu1qj.js} +1 -1
- package/static/dist/assets/{pie-WAS4IAKB-ito2razh.js → pie-WAS4IAKB-hm9icuov.js} +1 -1
- package/static/dist/assets/{pieDiagram-E7YTZNPT-g02xexar.js → pieDiagram-E7YTZNPT-hj96x7hn.js} +1 -1
- package/static/dist/assets/{quadrantDiagram-AXDQQJYC-d4jn4xq5.js → quadrantDiagram-AXDQQJYC-80utbxhm.js} +1 -1
- package/static/dist/assets/{radar-RG4KPBEZ-nebvfdzt.js → radar-RG4KPBEZ-k39b6100.js} +1 -1
- package/static/dist/assets/{railroad-74A4TZTK-ny3gebse.js → railroad-74A4TZTK-ewyqz67j.js} +1 -1
- package/static/dist/assets/railroad-abnf-HS5TGJTU-dx2q0evz.js +1 -0
- package/static/dist/assets/railroad-ebnf-LZEXJU2U-l8xt49t5.js +1 -0
- package/static/dist/assets/railroad-peg-WCYAUIDC-kuxha9yz.js +1 -0
- package/static/dist/assets/{railroadDiagram-O6MQD6OU-m09mmu67.js → railroadDiagram-O6MQD6OU-iwv9dby8.js} +1 -1
- package/static/dist/assets/{refresh-cw-eitd7yva.js → refresh-cw-hjzomwlo.js} +1 -1
- package/static/dist/assets/{requirementDiagram-BXWQKSXE-evggpcbk.js → requirementDiagram-BXWQKSXE-cdgh5jha.js} +1 -1
- package/static/dist/assets/{sankeyDiagram-P5KCCOFB-bun89039.js → sankeyDiagram-P5KCCOFB-dbu6p97m.js} +1 -1
- package/static/dist/assets/{saved-culx14ii.js → saved-feqhycco.js} +1 -1
- package/static/dist/assets/{search-nu6kzq55.js → search-n3jdc20p.js} +1 -1
- package/static/dist/assets/{sequenceDiagram-WJ2MYXX4-hhs9f09o.js → sequenceDiagram-WJ2MYXX4-b0wchifg.js} +1 -1
- package/static/dist/assets/{settings_section_extensions_title-mj0gcozh.js → settings_section_extensions_title-mtyviexd.js} +1 -1
- package/static/dist/assets/{share._token-k4pcnxqu.js → share._token-cwov8uqh.js} +2 -2
- package/static/dist/assets/{sliders-horizontal-b9ljga1o.js → sliders-horizontal-i1lseyg0.js} +1 -1
- package/static/dist/assets/{stateDiagram-D77RDMKH-gi7t1tro.js → stateDiagram-D77RDMKH-mb4b38xh.js} +1 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-cn1fnqrg.js +1 -0
- package/static/dist/assets/{swimlanes-42K2YHIH-ea5urvph.js → swimlanes-42K2YHIH-ofrpfwj0.js} +1 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-d652ummv.js +8 -0
- package/static/dist/assets/{timeline-definition-24CTP7MA-mq64rm3b.js → timeline-definition-24CTP7MA-hlw0jg6o.js} +1 -1
- package/static/dist/assets/todoStore-mfy9lpio.js +1 -0
- package/static/dist/assets/{treeView-Q6P3EWNA-cimbtxlz.js → treeView-Q6P3EWNA-d93wr19c.js} +1 -1
- package/static/dist/assets/{treemap-WGGIJYW6-wig5gi1y.js → treemap-WGGIJYW6-g7ezdedz.js} +1 -1
- package/static/dist/assets/{untitled-mbwemvxf.js → untitled-mqxhd1eh.js} +1 -1
- package/static/dist/assets/{useForm-li4bljlv.js → useForm-hh33yrwa.js} +1 -1
- package/static/dist/assets/useLocale-cr30vl7r.js +1 -0
- package/static/dist/assets/{vennDiagram-4TSXK5OY-ez63kh7n.js → vennDiagram-4TSXK5OY-m5vgeba5.js} +1 -1
- package/static/dist/assets/{wardley-WFR3VGLG-r7rftz31.js → wardley-WFR3VGLG-gpao9bxv.js} +1 -1
- package/static/dist/assets/{wardleyDiagram-VM6X3IG4-mvqg9eqc.js → wardleyDiagram-VM6X3IG4-g2yzwshm.js} +1 -1
- package/static/dist/assets/{xychartDiagram-S5SC5T6Z-eqxdfc91.js → xychartDiagram-S5SC5T6Z-itakhpic.js} +1 -1
- package/static/dist/index.html +1 -1
- package/static/dist/sw.js +114 -152
- package/static/dist/assets/AppShell-hikzkcql.js +0 -1
- package/static/dist/assets/ChatPage-ofqn89h9.js +0 -21
- package/static/dist/assets/HubRoute-f2zrs9si.js +0 -2
- package/static/dist/assets/RightPanel-febk3dkd.js +0 -1
- package/static/dist/assets/Select-lvx8gihl.js +0 -1
- package/static/dist/assets/SessionListPanel-o70ljmik.js +0 -1
- package/static/dist/assets/States-i46tz8an.js +0 -1
- package/static/dist/assets/Toaster-fklyeeyh.js +0 -1
- package/static/dist/assets/_app-j3rors25.js +0 -1
- package/static/dist/assets/_app.ext._extensionId-c0ey5ec9.js +0 -1
- package/static/dist/assets/_app.index-coy9jrto.js +0 -1
- package/static/dist/assets/_app.insights-ebd2k0i5.js +0 -1
- package/static/dist/assets/_app.kanban-e2p7ypi5.js +0 -1
- package/static/dist/assets/_app.logs-ml21mfyz.js +0 -1
- package/static/dist/assets/_app.memory-lhu5mm47.js +0 -1
- package/static/dist/assets/_app.profiles-egx0fgjo.js +0 -1
- package/static/dist/assets/_app.settings-d0vqtyid.js +0 -1
- package/static/dist/assets/_app.settings._section-cnzj6pli.js +0 -1
- package/static/dist/assets/_app.skills-kkug8obu.js +0 -1
- package/static/dist/assets/_app.tasks-nf285d2o.js +0 -2
- package/static/dist/assets/_app.todos-dxalqp1e.js +0 -1
- package/static/dist/assets/_app.workspaces-bqtduujs.js +0 -1
- package/static/dist/assets/architecture-7GRP2DOG-o8zqevhv.js +0 -1
- package/static/dist/assets/channel-mw8l793e.js +0 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-egajr1wp.js +0 -1
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-egajr1wp.js +0 -1
- package/static/dist/assets/endpoints-f6ngsyu5.js +0 -64
- package/static/dist/assets/eventmodeling-NTZA5JFV-k3zhqcyl.js +0 -1
- package/static/dist/assets/flowDiagram-HODETNUW-bdxes51f.js +0 -1
- package/static/dist/assets/index-ab0wj9ik.css +0 -2
- package/static/dist/assets/index-fd27xooo.js +0 -11
- package/static/dist/assets/mermaid-HWGCJPDP-ejk0d88t.js +0 -1
- package/static/dist/assets/railroad-abnf-HS5TGJTU-gtd38edw.js +0 -1
- package/static/dist/assets/railroad-ebnf-LZEXJU2U-o238oax2.js +0 -1
- package/static/dist/assets/railroad-peg-WCYAUIDC-c4acqp2j.js +0 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-jtadbol7.js +0 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-ki7weepw.js +0 -8
- package/static/dist/assets/todoStore-azvfuqbv.js +0 -1
- package/static/dist/assets/trash-osyo895g.js +0 -1
- package/static/dist/assets/useLocale-kdew6auf.js +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ApiContext } from './router.js';
|
|
2
2
|
import { type Dict } from '../config/agent-config.js';
|
|
3
|
+
import type { SessionInfo } from '../auth/store.js';
|
|
4
|
+
export declare function updateNotificationOwner(session: SessionInfo | null): string;
|
|
3
5
|
/** Rate limiter keyed by client IP over a sliding window (Python `_csp_report_rate_limited` / `_client_event_rate_limited`). */
|
|
4
6
|
export declare class WindowLimiter {
|
|
5
7
|
private readonly windowSeconds;
|
|
@@ -387,10 +389,12 @@ export declare const toolsRouter: {
|
|
|
387
389
|
no_git: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
388
390
|
install_kind: import("zod").ZodOptional<import("zod").ZodLiteral<"npm">>;
|
|
389
391
|
npm: import("zod").ZodOptional<import("zod").ZodString>;
|
|
392
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
390
393
|
dirty: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
391
394
|
metadata_repair: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
392
395
|
release_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
393
396
|
ignored: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
397
|
+
stale_check: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
394
398
|
current_version: import("zod").ZodOptional<import("zod").ZodString>;
|
|
395
399
|
}, import("zod/v4/core").$loose>>>;
|
|
396
400
|
agent: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
@@ -414,10 +418,12 @@ export declare const toolsRouter: {
|
|
|
414
418
|
no_git: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
415
419
|
install_kind: import("zod").ZodOptional<import("zod").ZodLiteral<"npm">>;
|
|
416
420
|
npm: import("zod").ZodOptional<import("zod").ZodString>;
|
|
421
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
417
422
|
dirty: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
418
423
|
metadata_repair: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
419
424
|
release_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
420
425
|
ignored: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
426
|
+
stale_check: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
421
427
|
current_version: import("zod").ZodOptional<import("zod").ZodString>;
|
|
422
428
|
}, import("zod/v4/core").$loose>>>;
|
|
423
429
|
}, import("zod/v4/core").$loose>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
@@ -459,10 +465,12 @@ export declare const toolsRouter: {
|
|
|
459
465
|
no_git: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
460
466
|
install_kind: import("zod").ZodOptional<import("zod").ZodLiteral<"npm">>;
|
|
461
467
|
npm: import("zod").ZodOptional<import("zod").ZodString>;
|
|
468
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
462
469
|
dirty: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
463
470
|
metadata_repair: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
464
471
|
release_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
465
472
|
ignored: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
473
|
+
stale_check: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
466
474
|
current_version: import("zod").ZodOptional<import("zod").ZodString>;
|
|
467
475
|
}, import("zod/v4/core").$loose>>>;
|
|
468
476
|
agent: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
@@ -486,10 +494,12 @@ export declare const toolsRouter: {
|
|
|
486
494
|
no_git: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
487
495
|
install_kind: import("zod").ZodOptional<import("zod").ZodLiteral<"npm">>;
|
|
488
496
|
npm: import("zod").ZodOptional<import("zod").ZodString>;
|
|
497
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
489
498
|
dirty: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
490
499
|
metadata_repair: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
491
500
|
release_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
492
501
|
ignored: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
502
|
+
stale_check: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
493
503
|
current_version: import("zod").ZodOptional<import("zod").ZodString>;
|
|
494
504
|
}, import("zod/v4/core").$loose>>>;
|
|
495
505
|
}, import("zod/v4/core").$loose>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
@@ -515,6 +525,10 @@ export declare const toolsRouter: {
|
|
|
515
525
|
stable: "stable";
|
|
516
526
|
experimental: "experimental";
|
|
517
527
|
}>>;
|
|
528
|
+
notification_id: import("zod").ZodOptional<import("zod").ZodUUID>;
|
|
529
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
530
|
+
backup_dir: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
531
|
+
backup_failed: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
518
532
|
}, import("zod/v4/core").$loose>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
519
533
|
force: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
520
534
|
agent_channel: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
@@ -538,6 +552,10 @@ export declare const toolsRouter: {
|
|
|
538
552
|
stable: "stable";
|
|
539
553
|
experimental: "experimental";
|
|
540
554
|
}>>;
|
|
555
|
+
notification_id: import("zod").ZodOptional<import("zod").ZodUUID>;
|
|
556
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
557
|
+
backup_dir: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
558
|
+
backup_failed: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
541
559
|
}, import("zod/v4/core").$loose>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
542
560
|
clearLock: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
543
561
|
agent_channel: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
@@ -561,6 +579,10 @@ export declare const toolsRouter: {
|
|
|
561
579
|
stable: "stable";
|
|
562
580
|
experimental: "experimental";
|
|
563
581
|
}>>;
|
|
582
|
+
notification_id: import("zod").ZodOptional<import("zod").ZodUUID>;
|
|
583
|
+
channel_switch: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
584
|
+
backup_dir: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
585
|
+
backup_failed: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
564
586
|
}, import("zod/v4/core").$loose>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
565
587
|
summary: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
566
588
|
updates: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
@@ -573,6 +595,313 @@ export declare const toolsRouter: {
|
|
|
573
595
|
diff_links: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnknown>>;
|
|
574
596
|
}, import("zod/v4/core").$loose>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
575
597
|
};
|
|
598
|
+
updateNotifications: {
|
|
599
|
+
list: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
600
|
+
tab_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
601
|
+
loaded_build: import("zod").ZodOptional<import("zod").ZodString>;
|
|
602
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
603
|
+
scope_id: import("zod").ZodString;
|
|
604
|
+
frontend_build: import("zod").ZodObject<{
|
|
605
|
+
current_build: import("zod").ZodNullable<import("zod").ZodString>;
|
|
606
|
+
loaded_build: import("zod").ZodNullable<import("zod").ZodString>;
|
|
607
|
+
refresh_required: import("zod").ZodBoolean;
|
|
608
|
+
notification_id: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
609
|
+
}, import("zod/v4/core").$strip>;
|
|
610
|
+
notifications: import("zod").ZodArray<import("zod").ZodObject<{
|
|
611
|
+
id: import("zod").ZodUUID;
|
|
612
|
+
kind: import("zod").ZodString;
|
|
613
|
+
target: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
614
|
+
agent: "agent";
|
|
615
|
+
webui: "webui";
|
|
616
|
+
}>>;
|
|
617
|
+
phase: import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
618
|
+
unknown: "unknown";
|
|
619
|
+
failed: "failed";
|
|
620
|
+
applying: "applying";
|
|
621
|
+
awaiting_confirmation: "awaiting_confirmation";
|
|
622
|
+
restarting: "restarting";
|
|
623
|
+
succeeded: "succeeded";
|
|
624
|
+
blocked: "blocked";
|
|
625
|
+
}>, import("zod").ZodString]>;
|
|
626
|
+
severity: import("zod").ZodEnum<{
|
|
627
|
+
warning: "warning";
|
|
628
|
+
info: "info";
|
|
629
|
+
critical: "critical";
|
|
630
|
+
}>;
|
|
631
|
+
persistent: import("zod").ZodBoolean;
|
|
632
|
+
requires_acknowledgement: import("zod").ZodBoolean;
|
|
633
|
+
actions: import("zod").ZodArray<import("zod").ZodObject<{
|
|
634
|
+
id: import("zod").ZodString;
|
|
635
|
+
label: import("zod").ZodString;
|
|
636
|
+
style: import("zod").ZodEnum<{
|
|
637
|
+
default: "default";
|
|
638
|
+
primary: "primary";
|
|
639
|
+
destructive: "destructive";
|
|
640
|
+
}>;
|
|
641
|
+
acknowledges: import("zod").ZodBoolean;
|
|
642
|
+
}, import("zod/v4/core").$strip>>;
|
|
643
|
+
destination: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
644
|
+
key: import("zod").ZodString;
|
|
645
|
+
label: import("zod").ZodString;
|
|
646
|
+
}, import("zod/v4/core").$strip>>;
|
|
647
|
+
title: import("zod").ZodString;
|
|
648
|
+
message: import("zod").ZodString;
|
|
649
|
+
created_at: import("zod").ZodISODateTime;
|
|
650
|
+
updated_at: import("zod").ZodISODateTime;
|
|
651
|
+
read_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
652
|
+
acknowledged_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
653
|
+
acknowledged_action_id: import("zod").ZodNullable<import("zod").ZodString>;
|
|
654
|
+
verified_revision: import("zod").ZodNullable<import("zod").ZodString>;
|
|
655
|
+
verified_version: import("zod").ZodNullable<import("zod").ZodString>;
|
|
656
|
+
unread: import("zod").ZodBoolean;
|
|
657
|
+
active: import("zod").ZodBoolean;
|
|
658
|
+
requires_interaction: import("zod").ZodBoolean;
|
|
659
|
+
can_dismiss: import("zod").ZodBoolean;
|
|
660
|
+
}, import("zod/v4/core").$strip>>;
|
|
661
|
+
unread_count: import("zod").ZodNumber;
|
|
662
|
+
clearable_count: import("zod").ZodNumber;
|
|
663
|
+
can_clear: import("zod").ZodBoolean;
|
|
664
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
665
|
+
read: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
666
|
+
id: import("zod").ZodUUID;
|
|
667
|
+
read: import("zod").ZodLiteral<true>;
|
|
668
|
+
tab_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
669
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
670
|
+
id: import("zod").ZodUUID;
|
|
671
|
+
kind: import("zod").ZodString;
|
|
672
|
+
target: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
673
|
+
agent: "agent";
|
|
674
|
+
webui: "webui";
|
|
675
|
+
}>>;
|
|
676
|
+
phase: import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
677
|
+
unknown: "unknown";
|
|
678
|
+
failed: "failed";
|
|
679
|
+
applying: "applying";
|
|
680
|
+
awaiting_confirmation: "awaiting_confirmation";
|
|
681
|
+
restarting: "restarting";
|
|
682
|
+
succeeded: "succeeded";
|
|
683
|
+
blocked: "blocked";
|
|
684
|
+
}>, import("zod").ZodString]>;
|
|
685
|
+
severity: import("zod").ZodEnum<{
|
|
686
|
+
warning: "warning";
|
|
687
|
+
info: "info";
|
|
688
|
+
critical: "critical";
|
|
689
|
+
}>;
|
|
690
|
+
persistent: import("zod").ZodBoolean;
|
|
691
|
+
requires_acknowledgement: import("zod").ZodBoolean;
|
|
692
|
+
actions: import("zod").ZodArray<import("zod").ZodObject<{
|
|
693
|
+
id: import("zod").ZodString;
|
|
694
|
+
label: import("zod").ZodString;
|
|
695
|
+
style: import("zod").ZodEnum<{
|
|
696
|
+
default: "default";
|
|
697
|
+
primary: "primary";
|
|
698
|
+
destructive: "destructive";
|
|
699
|
+
}>;
|
|
700
|
+
acknowledges: import("zod").ZodBoolean;
|
|
701
|
+
}, import("zod/v4/core").$strip>>;
|
|
702
|
+
destination: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
703
|
+
key: import("zod").ZodString;
|
|
704
|
+
label: import("zod").ZodString;
|
|
705
|
+
}, import("zod/v4/core").$strip>>;
|
|
706
|
+
title: import("zod").ZodString;
|
|
707
|
+
message: import("zod").ZodString;
|
|
708
|
+
created_at: import("zod").ZodISODateTime;
|
|
709
|
+
updated_at: import("zod").ZodISODateTime;
|
|
710
|
+
read_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
711
|
+
acknowledged_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
712
|
+
acknowledged_action_id: import("zod").ZodNullable<import("zod").ZodString>;
|
|
713
|
+
verified_revision: import("zod").ZodNullable<import("zod").ZodString>;
|
|
714
|
+
verified_version: import("zod").ZodNullable<import("zod").ZodString>;
|
|
715
|
+
unread: import("zod").ZodBoolean;
|
|
716
|
+
active: import("zod").ZodBoolean;
|
|
717
|
+
requires_interaction: import("zod").ZodBoolean;
|
|
718
|
+
can_dismiss: import("zod").ZodBoolean;
|
|
719
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
720
|
+
dismiss: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
721
|
+
id: import("zod").ZodUUID;
|
|
722
|
+
dismiss: import("zod").ZodLiteral<true>;
|
|
723
|
+
tab_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
724
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
725
|
+
ok: import("zod").ZodLiteral<true>;
|
|
726
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
727
|
+
clear: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
728
|
+
clear: import("zod").ZodLiteral<true>;
|
|
729
|
+
tab_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
730
|
+
loaded_build: import("zod").ZodOptional<import("zod").ZodString>;
|
|
731
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
732
|
+
scope_id: import("zod").ZodString;
|
|
733
|
+
frontend_build: import("zod").ZodObject<{
|
|
734
|
+
current_build: import("zod").ZodNullable<import("zod").ZodString>;
|
|
735
|
+
loaded_build: import("zod").ZodNullable<import("zod").ZodString>;
|
|
736
|
+
refresh_required: import("zod").ZodBoolean;
|
|
737
|
+
notification_id: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
738
|
+
}, import("zod/v4/core").$strip>;
|
|
739
|
+
notifications: import("zod").ZodArray<import("zod").ZodObject<{
|
|
740
|
+
id: import("zod").ZodUUID;
|
|
741
|
+
kind: import("zod").ZodString;
|
|
742
|
+
target: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
743
|
+
agent: "agent";
|
|
744
|
+
webui: "webui";
|
|
745
|
+
}>>;
|
|
746
|
+
phase: import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
747
|
+
unknown: "unknown";
|
|
748
|
+
failed: "failed";
|
|
749
|
+
applying: "applying";
|
|
750
|
+
awaiting_confirmation: "awaiting_confirmation";
|
|
751
|
+
restarting: "restarting";
|
|
752
|
+
succeeded: "succeeded";
|
|
753
|
+
blocked: "blocked";
|
|
754
|
+
}>, import("zod").ZodString]>;
|
|
755
|
+
severity: import("zod").ZodEnum<{
|
|
756
|
+
warning: "warning";
|
|
757
|
+
info: "info";
|
|
758
|
+
critical: "critical";
|
|
759
|
+
}>;
|
|
760
|
+
persistent: import("zod").ZodBoolean;
|
|
761
|
+
requires_acknowledgement: import("zod").ZodBoolean;
|
|
762
|
+
actions: import("zod").ZodArray<import("zod").ZodObject<{
|
|
763
|
+
id: import("zod").ZodString;
|
|
764
|
+
label: import("zod").ZodString;
|
|
765
|
+
style: import("zod").ZodEnum<{
|
|
766
|
+
default: "default";
|
|
767
|
+
primary: "primary";
|
|
768
|
+
destructive: "destructive";
|
|
769
|
+
}>;
|
|
770
|
+
acknowledges: import("zod").ZodBoolean;
|
|
771
|
+
}, import("zod/v4/core").$strip>>;
|
|
772
|
+
destination: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
773
|
+
key: import("zod").ZodString;
|
|
774
|
+
label: import("zod").ZodString;
|
|
775
|
+
}, import("zod/v4/core").$strip>>;
|
|
776
|
+
title: import("zod").ZodString;
|
|
777
|
+
message: import("zod").ZodString;
|
|
778
|
+
created_at: import("zod").ZodISODateTime;
|
|
779
|
+
updated_at: import("zod").ZodISODateTime;
|
|
780
|
+
read_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
781
|
+
acknowledged_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
782
|
+
acknowledged_action_id: import("zod").ZodNullable<import("zod").ZodString>;
|
|
783
|
+
verified_revision: import("zod").ZodNullable<import("zod").ZodString>;
|
|
784
|
+
verified_version: import("zod").ZodNullable<import("zod").ZodString>;
|
|
785
|
+
unread: import("zod").ZodBoolean;
|
|
786
|
+
active: import("zod").ZodBoolean;
|
|
787
|
+
requires_interaction: import("zod").ZodBoolean;
|
|
788
|
+
can_dismiss: import("zod").ZodBoolean;
|
|
789
|
+
}, import("zod/v4/core").$strip>>;
|
|
790
|
+
unread_count: import("zod").ZodNumber;
|
|
791
|
+
clearable_count: import("zod").ZodNumber;
|
|
792
|
+
can_clear: import("zod").ZodBoolean;
|
|
793
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
794
|
+
cancel: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
795
|
+
id: import("zod").ZodUUID;
|
|
796
|
+
cancel: import("zod").ZodLiteral<true>;
|
|
797
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
798
|
+
id: import("zod").ZodUUID;
|
|
799
|
+
kind: import("zod").ZodString;
|
|
800
|
+
target: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
801
|
+
agent: "agent";
|
|
802
|
+
webui: "webui";
|
|
803
|
+
}>>;
|
|
804
|
+
phase: import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
805
|
+
unknown: "unknown";
|
|
806
|
+
failed: "failed";
|
|
807
|
+
applying: "applying";
|
|
808
|
+
awaiting_confirmation: "awaiting_confirmation";
|
|
809
|
+
restarting: "restarting";
|
|
810
|
+
succeeded: "succeeded";
|
|
811
|
+
blocked: "blocked";
|
|
812
|
+
}>, import("zod").ZodString]>;
|
|
813
|
+
severity: import("zod").ZodEnum<{
|
|
814
|
+
warning: "warning";
|
|
815
|
+
info: "info";
|
|
816
|
+
critical: "critical";
|
|
817
|
+
}>;
|
|
818
|
+
persistent: import("zod").ZodBoolean;
|
|
819
|
+
requires_acknowledgement: import("zod").ZodBoolean;
|
|
820
|
+
actions: import("zod").ZodArray<import("zod").ZodObject<{
|
|
821
|
+
id: import("zod").ZodString;
|
|
822
|
+
label: import("zod").ZodString;
|
|
823
|
+
style: import("zod").ZodEnum<{
|
|
824
|
+
default: "default";
|
|
825
|
+
primary: "primary";
|
|
826
|
+
destructive: "destructive";
|
|
827
|
+
}>;
|
|
828
|
+
acknowledges: import("zod").ZodBoolean;
|
|
829
|
+
}, import("zod/v4/core").$strip>>;
|
|
830
|
+
destination: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
831
|
+
key: import("zod").ZodString;
|
|
832
|
+
label: import("zod").ZodString;
|
|
833
|
+
}, import("zod/v4/core").$strip>>;
|
|
834
|
+
title: import("zod").ZodString;
|
|
835
|
+
message: import("zod").ZodString;
|
|
836
|
+
created_at: import("zod").ZodISODateTime;
|
|
837
|
+
updated_at: import("zod").ZodISODateTime;
|
|
838
|
+
read_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
839
|
+
acknowledged_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
840
|
+
acknowledged_action_id: import("zod").ZodNullable<import("zod").ZodString>;
|
|
841
|
+
verified_revision: import("zod").ZodNullable<import("zod").ZodString>;
|
|
842
|
+
verified_version: import("zod").ZodNullable<import("zod").ZodString>;
|
|
843
|
+
unread: import("zod").ZodBoolean;
|
|
844
|
+
active: import("zod").ZodBoolean;
|
|
845
|
+
requires_interaction: import("zod").ZodBoolean;
|
|
846
|
+
can_dismiss: import("zod").ZodBoolean;
|
|
847
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
848
|
+
action: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("zod").ZodObject<{
|
|
849
|
+
id: import("zod").ZodUUID;
|
|
850
|
+
action_id: import("zod").ZodString;
|
|
851
|
+
perform: import("zod").ZodLiteral<true>;
|
|
852
|
+
tab_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
853
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
854
|
+
id: import("zod").ZodUUID;
|
|
855
|
+
kind: import("zod").ZodString;
|
|
856
|
+
target: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
857
|
+
agent: "agent";
|
|
858
|
+
webui: "webui";
|
|
859
|
+
}>>;
|
|
860
|
+
phase: import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
861
|
+
unknown: "unknown";
|
|
862
|
+
failed: "failed";
|
|
863
|
+
applying: "applying";
|
|
864
|
+
awaiting_confirmation: "awaiting_confirmation";
|
|
865
|
+
restarting: "restarting";
|
|
866
|
+
succeeded: "succeeded";
|
|
867
|
+
blocked: "blocked";
|
|
868
|
+
}>, import("zod").ZodString]>;
|
|
869
|
+
severity: import("zod").ZodEnum<{
|
|
870
|
+
warning: "warning";
|
|
871
|
+
info: "info";
|
|
872
|
+
critical: "critical";
|
|
873
|
+
}>;
|
|
874
|
+
persistent: import("zod").ZodBoolean;
|
|
875
|
+
requires_acknowledgement: import("zod").ZodBoolean;
|
|
876
|
+
actions: import("zod").ZodArray<import("zod").ZodObject<{
|
|
877
|
+
id: import("zod").ZodString;
|
|
878
|
+
label: import("zod").ZodString;
|
|
879
|
+
style: import("zod").ZodEnum<{
|
|
880
|
+
default: "default";
|
|
881
|
+
primary: "primary";
|
|
882
|
+
destructive: "destructive";
|
|
883
|
+
}>;
|
|
884
|
+
acknowledges: import("zod").ZodBoolean;
|
|
885
|
+
}, import("zod/v4/core").$strip>>;
|
|
886
|
+
destination: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
887
|
+
key: import("zod").ZodString;
|
|
888
|
+
label: import("zod").ZodString;
|
|
889
|
+
}, import("zod/v4/core").$strip>>;
|
|
890
|
+
title: import("zod").ZodString;
|
|
891
|
+
message: import("zod").ZodString;
|
|
892
|
+
created_at: import("zod").ZodISODateTime;
|
|
893
|
+
updated_at: import("zod").ZodISODateTime;
|
|
894
|
+
read_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
895
|
+
acknowledged_at: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
896
|
+
acknowledged_action_id: import("zod").ZodNullable<import("zod").ZodString>;
|
|
897
|
+
verified_revision: import("zod").ZodNullable<import("zod").ZodString>;
|
|
898
|
+
verified_version: import("zod").ZodNullable<import("zod").ZodString>;
|
|
899
|
+
unread: import("zod").ZodBoolean;
|
|
900
|
+
active: import("zod").ZodBoolean;
|
|
901
|
+
requires_interaction: import("zod").ZodBoolean;
|
|
902
|
+
can_dismiss: import("zod").ZodBoolean;
|
|
903
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
904
|
+
};
|
|
576
905
|
transcribeCapability: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<import("@orpc/server").MergedInitialContext<ApiContext & Record<never, never>, ApiContext & Record<never, never>, ApiContext>, ApiContext & Record<never, never> & Omit<ApiContext & Record<never, never>, "ctx">, import("@orpc/server").MergedCurrentContext<ApiContext, Record<never, never>>>, Omit<ApiContext, never> & Record<never, never>, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodObject<{
|
|
577
906
|
ok: import("zod").ZodLiteral<true>;
|
|
578
907
|
available: import("zod").ZodBoolean;
|
package/dist/api/tools-router.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/** Skills, memory, prompts, commands, notes, insights, logs, health, MCP, plugins, updates, diagnostics (Python `api/routes.py` handlers of the same paths). */
|
|
2
2
|
import { implement } from '@orpc/server';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
3
4
|
import { toolsContract } from '@maudecode/talaria-web-contracts';
|
|
4
5
|
import { HttpError, requireFields } from './router.js';
|
|
5
6
|
import { requestSessionIdGuard } from './session-visibility.js';
|
|
6
|
-
import { activeProfileName } from '../auth/gate.js';
|
|
7
|
+
import { activeProfileName, ensureTrustedAuthSession, sessionCanManageServer } from '../auth/gate.js';
|
|
7
8
|
import { HttpFailure } from '../sessions/service.js';
|
|
8
9
|
import { SessionNotFound } from '../sessions/store.js';
|
|
9
10
|
import { ConfigUnavailable } from '../config/agent-config.js';
|
|
@@ -39,6 +40,62 @@ async function run(fn) {
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
const home = (ctx) => ctx.deps.profileHome(activeProfileName(ctx));
|
|
43
|
+
const principalHash = (...parts) => createHash('sha256').update(JSON.stringify(parts), 'utf8').digest('hex');
|
|
44
|
+
export function updateNotificationOwner(session) {
|
|
45
|
+
const authType = str(session?.auth_type).trim();
|
|
46
|
+
if (authType === 'oidc') {
|
|
47
|
+
const issuer = str(session?.oidc_issuer).trim();
|
|
48
|
+
const subject = typeof session?.oidc_subject === 'string' ? session.oidc_subject : '';
|
|
49
|
+
if (issuer && subject.trim())
|
|
50
|
+
return `oidc:${principalHash(issuer, subject)}`;
|
|
51
|
+
const token = str(session?.token).trim();
|
|
52
|
+
if (token)
|
|
53
|
+
return `oidc-session:${principalHash(token)}`;
|
|
54
|
+
}
|
|
55
|
+
const username = str(session?.username).trim();
|
|
56
|
+
return username ? `${authType || 'auth'}:${username}` : 'local-owner';
|
|
57
|
+
}
|
|
58
|
+
async function updateNotificationScope(ctx, tab) {
|
|
59
|
+
const session = await ensureTrustedAuthSession(ctx);
|
|
60
|
+
return {
|
|
61
|
+
owner: updateNotificationOwner(session),
|
|
62
|
+
profile: activeProfileName(ctx),
|
|
63
|
+
serverOwner: await sessionCanManageServer(ctx, session),
|
|
64
|
+
tab: tab ?? null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async function applyWithNotification(ctx, target, apply, confirmed = false) {
|
|
68
|
+
const scope = await updateNotificationScope(ctx);
|
|
69
|
+
const active = ctx.deps.updateNotifications.activeUpdate(scope, target);
|
|
70
|
+
if (active && (active.phase === 'applying' || active.phase === 'restarting')) {
|
|
71
|
+
return { ok: false, status: 'already_in_progress', message: 'Update already in progress', notification_id: active.id };
|
|
72
|
+
}
|
|
73
|
+
const notification = active ?? ctx.deps.updateNotifications.begin(scope, target);
|
|
74
|
+
if (active?.phase === 'awaiting_confirmation' && confirmed)
|
|
75
|
+
ctx.deps.updateNotifications.transition(notification.id, 'applying');
|
|
76
|
+
try {
|
|
77
|
+
const result = await apply();
|
|
78
|
+
const verifiedIdentity = typeof result.verified_revision === 'string'
|
|
79
|
+
? { revision: result.verified_revision, version: typeof result.verified_version === 'string' ? result.verified_version : null }
|
|
80
|
+
: undefined;
|
|
81
|
+
if (result.confirmation_required === true)
|
|
82
|
+
ctx.deps.updateNotifications.transition(notification.id, 'awaiting_confirmation', null, verifiedIdentity);
|
|
83
|
+
else if (result.restart_blocked === true)
|
|
84
|
+
ctx.deps.updateNotifications.transition(notification.id, 'blocked', null, verifiedIdentity);
|
|
85
|
+
else if (result.ok !== true)
|
|
86
|
+
ctx.deps.updateNotifications.transition(notification.id, 'failed', null, verifiedIdentity);
|
|
87
|
+
else if (target === 'webui' && result.restart_scheduled === true) {
|
|
88
|
+
ctx.deps.updateNotifications.transition(notification.id, 'restarting', str(result.sourceRevision || result.candidate_revision), verifiedIdentity);
|
|
89
|
+
}
|
|
90
|
+
else
|
|
91
|
+
ctx.deps.updateNotifications.transition(notification.id, 'succeeded', null, verifiedIdentity);
|
|
92
|
+
return { ...result, notification_id: notification.id };
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
ctx.deps.updateNotifications.transition(notification.id, 'failed');
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
42
99
|
/** Rate limiter keyed by client IP over a sliding window (Python `_csp_report_rate_limited` / `_client_event_rate_limited`). */
|
|
43
100
|
export class WindowLimiter {
|
|
44
101
|
windowSeconds;
|
|
@@ -315,11 +372,47 @@ export const toolsRouter = os.router({
|
|
|
315
372
|
ctx.deps.log(`[updates] checking for updates (force=${String(force)}, channel=${channel})`);
|
|
316
373
|
return (await ctx.deps.updates.check(force, !pyBool(settings.ignore_agent_updates), channel, input.agent_channel));
|
|
317
374
|
})),
|
|
318
|
-
apply: os.updates.apply.handler(({ input, context: { ctx } }) => run(() => ctx.deps.updates.apply(
|
|
319
|
-
force: os.updates.force.handler(({ input, context: { ctx } }) => run(() => ctx.deps.updates.force(
|
|
320
|
-
clearLock: os.updates.clearLock.handler(({ input, context: { ctx } }) => run(() => ctx.deps.updates.clearLock(
|
|
375
|
+
apply: os.updates.apply.handler(({ input, context: { ctx } }) => run(() => { const target = updateTarget(input.target); return applyWithNotification(ctx, target, () => ctx.deps.updates.apply(target, bodyChannel(input.channel), () => true, { agentChannel: input.agent_channel, confirmedRevision: input.confirmed_agent_revision }), input.confirmed_agent_revision !== undefined); })),
|
|
376
|
+
force: os.updates.force.handler(({ input, context: { ctx } }) => run(() => { const target = updateTarget(input.target); return applyWithNotification(ctx, target, () => ctx.deps.updates.force(target, bodyChannel(input.channel), { agentChannel: input.agent_channel, confirmedRevision: input.confirmed_agent_revision }), input.confirmed_agent_revision !== undefined); })),
|
|
377
|
+
clearLock: os.updates.clearLock.handler(({ input, context: { ctx } }) => run(() => { const target = updateTarget(input.target); return applyWithNotification(ctx, target, () => ctx.deps.updates.clearLock(target, { agentChannel: input.agent_channel, confirmedRevision: input.confirmed_agent_revision }), input.confirmed_agent_revision !== undefined); })),
|
|
321
378
|
summary: os.updates.summary.handler(({ input, context: { ctx } }) => run(() => ctx.deps.updates.summarize(input.updates ?? {}, input.target))),
|
|
322
379
|
},
|
|
380
|
+
updateNotifications: {
|
|
381
|
+
list: os.updateNotifications.list.handler(({ input, context: { ctx } }) => run(async () => {
|
|
382
|
+
const scope = await updateNotificationScope(ctx, input.tab_id);
|
|
383
|
+
const frontendBuild = ctx.deps.updateNotifications.syncTabBuild(scope, input.loaded_build ?? null, ctx.deps.spa.buildId());
|
|
384
|
+
return { ...ctx.deps.updateNotifications.list(scope), frontend_build: frontendBuild };
|
|
385
|
+
})),
|
|
386
|
+
read: os.updateNotifications.read.handler(({ input, context: { ctx } }) => run(async () => {
|
|
387
|
+
const notification = ctx.deps.updateNotifications.read(await updateNotificationScope(ctx, input.tab_id), input.id);
|
|
388
|
+
if (!notification)
|
|
389
|
+
throw new HttpError(404, 'Update notification not found');
|
|
390
|
+
return notification;
|
|
391
|
+
})),
|
|
392
|
+
dismiss: os.updateNotifications.dismiss.handler(({ input, context: { ctx } }) => run(async () => {
|
|
393
|
+
const result = ctx.deps.updateNotifications.dismiss(await updateNotificationScope(ctx, input.tab_id), input.id);
|
|
394
|
+
if (result === 'acknowledgement_required')
|
|
395
|
+
throw new HttpError(409, 'This notification requires acknowledgement before it can be dismissed');
|
|
396
|
+
return { ok: true };
|
|
397
|
+
})),
|
|
398
|
+
clear: os.updateNotifications.clear.handler(({ input, context: { ctx } }) => run(async () => {
|
|
399
|
+
const scope = await updateNotificationScope(ctx, input.tab_id);
|
|
400
|
+
const frontendBuild = ctx.deps.updateNotifications.syncTabBuild(scope, input.loaded_build ?? null, ctx.deps.spa.buildId());
|
|
401
|
+
return { ...ctx.deps.updateNotifications.clear(scope), frontend_build: frontendBuild };
|
|
402
|
+
})),
|
|
403
|
+
cancel: os.updateNotifications.cancel.handler(({ input, context: { ctx } }) => run(async () => {
|
|
404
|
+
const notification = ctx.deps.updateNotifications.cancelUpdate(await updateNotificationScope(ctx), input.id);
|
|
405
|
+
if (!notification)
|
|
406
|
+
throw new HttpError(404, 'Awaiting update notification not found');
|
|
407
|
+
return notification;
|
|
408
|
+
})),
|
|
409
|
+
action: os.updateNotifications.action.handler(({ input, context: { ctx } }) => run(async () => {
|
|
410
|
+
const notification = ctx.deps.updateNotifications.action(await updateNotificationScope(ctx, input.tab_id), input.id, input.action_id);
|
|
411
|
+
if (!notification)
|
|
412
|
+
throw new HttpError(404, 'Notification action not found');
|
|
413
|
+
return notification;
|
|
414
|
+
})),
|
|
415
|
+
},
|
|
323
416
|
transcribeCapability: os.transcribeCapability.handler(({ context: { ctx } }) => run(async () => {
|
|
324
417
|
const sidecar = ctx.deps.sidecar();
|
|
325
418
|
if (!sidecar)
|