@maudecode/talaria-web 1.22.0 → 1.23.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/_release.json +4 -4
- package/dist/api/chat-router.d.ts +8 -0
- package/dist/api/raw-routes.d.ts +1 -1
- package/dist/api/raw-routes.js +12 -2
- package/dist/api/raw-routes.js.map +1 -1
- package/dist/api/router.d.ts +41 -0
- package/dist/api/router.js +2 -0
- package/dist/api/router.js.map +1 -1
- package/dist/api/sessions-router.d.ts +59 -0
- package/dist/api/sessions-router.js +5 -2
- package/dist/api/sessions-router.js.map +1 -1
- package/dist/api/settings-router.d.ts +37 -0
- package/dist/api/settings-router.js +2 -1
- package/dist/api/settings-router.js.map +1 -1
- package/dist/api/tools-router.js +5 -2
- package/dist/api/tools-router.js.map +1 -1
- package/dist/cli/ctl.d.ts +5 -2
- package/dist/cli/ctl.js +90 -42
- package/dist/cli/ctl.js.map +1 -1
- package/dist/feedback.d.ts +8 -5
- package/dist/feedback.js +204 -21
- package/dist/feedback.js.map +1 -1
- package/dist/http/context.d.ts +3 -1
- package/dist/http/context.js.map +1 -1
- package/dist/providers/catalog.d.ts +1 -1
- package/dist/providers/catalog.js +27 -9
- package/dist/providers/catalog.js.map +1 -1
- package/dist/release.d.ts +14 -1
- package/dist/release.js +40 -2
- package/dist/release.js.map +1 -1
- package/dist/runtime.js +2 -1
- package/dist/runtime.js.map +1 -1
- package/dist/sessions/list.d.ts +1 -1
- package/dist/sessions/list.js +11 -5
- package/dist/sessions/list.js.map +1 -1
- package/dist/sessions/relay.d.ts +31 -2
- package/dist/sessions/relay.js +43 -3
- package/dist/sessions/relay.js.map +1 -1
- package/dist/sessions/service.js +2 -0
- package/dist/sessions/service.js.map +1 -1
- package/dist/sessions/shares.d.ts +2 -0
- package/dist/sessions/shares.js +20 -7
- package/dist/sessions/shares.js.map +1 -1
- package/dist/sessions/source-kind.js +2 -0
- package/dist/sessions/source-kind.js.map +1 -1
- package/dist/sessions/state-db.js +5 -2
- package/dist/sessions/state-db.js.map +1 -1
- package/dist/sessions/streams.d.ts +5 -2
- package/dist/sessions/streams.js +4 -6
- package/dist/sessions/streams.js.map +1 -1
- package/dist/sessions/titles.d.ts +2 -0
- package/dist/sessions/titles.js +11 -0
- package/dist/sessions/titles.js.map +1 -1
- package/dist/sessions/turn.js +17 -12
- package/dist/sessions/turn.js.map +1 -1
- package/dist/settings.js +4 -0
- package/dist/settings.js.map +1 -1
- package/dist/sidecar/client.d.ts +3 -0
- package/dist/sidecar/client.js +2 -1
- package/dist/sidecar/client.js.map +1 -1
- package/dist/sidecar/discover.js +3 -2
- package/dist/sidecar/discover.js.map +1 -1
- package/dist/tools/insights.d.ts +3 -0
- package/dist/tools/insights.js +6 -7
- package/dist/tools/insights.js.map +1 -1
- package/dist/tools/update-notifications.d.ts +2 -0
- package/dist/tools/update-notifications.js +7 -3
- package/dist/tools/update-notifications.js.map +1 -1
- package/dist/tools/updates.d.ts +10 -0
- package/dist/tools/updates.js +81 -22
- package/dist/tools/updates.js.map +1 -1
- package/dist/workspace/media-refs.js +10 -3
- package/dist/workspace/media-refs.js.map +1 -1
- package/package.json +4 -3
- package/sidecar/scripts/suite_runner.py +55 -8
- package/static/dist/FILES.txt +133 -134
- package/static/dist/assets/AppShell-gqksikn6.js +8 -0
- package/static/dist/assets/{Button-dlsibkzq.js → Button-jb6xj81a.js} +1 -1
- package/static/dist/assets/ChatPage-gn8tw8iz.js +2 -0
- package/static/dist/assets/Composer-ciob0r67.js +5 -0
- package/static/dist/assets/{ConnectTargets-ejplzo4q.js → ConnectTargets-ia7cjrnj.js} +1 -1
- package/static/dist/assets/{Dialog-rksfyyq5.js → Dialog-f3v9qr7e.js} +1 -1
- package/static/dist/assets/ExtensionRoute-ljky7jna.js +1 -0
- package/static/dist/assets/HubRoute-jm9l1ukv.js +2 -0
- package/static/dist/assets/Markdown-gxs8oram.js +2 -0
- package/static/dist/assets/{MarkdownRenderer-74ysuomr.js → MarkdownRenderer-f10z0l04.js} +6 -6
- package/static/dist/assets/{OAuthSignIn-i4flsuq2.js → OAuthSignIn-ki08dz6o.js} +1 -1
- package/static/dist/assets/{QueueCard-msz9wd1m.js → QueueCard-drffrjx8.js} +1 -1
- package/static/dist/assets/{ResourceSwitch-b70zg4xd.js → ResourceSwitch-cgybm4i0.js} +1 -1
- package/static/dist/assets/{RightPanel-f5v61m8j.js → RightPanel-df81kzcn.js} +1 -1
- package/static/dist/assets/{Select-f3l897pt.js → Select-jp3nv3t3.js} +1 -1
- package/static/dist/assets/SessionListPanel-kk343vgy.js +1 -0
- package/static/dist/assets/{SettingsLayout-f4akmrt2.js → SettingsLayout-byvxpnsd.js} +1 -1
- package/static/dist/assets/TerminalPanel-gzeygyic.js +16 -0
- package/static/dist/assets/Toaster-m2sdn0wn.js +1 -0
- package/static/dist/assets/{_app-lrjgufcy.js → _app-dt0pkffy.js} +1 -1
- package/static/dist/assets/{_app.ext._extensionId-k3xitxr1.js → _app.ext._extensionId-hdqpjuex.js} +1 -1
- package/static/dist/assets/_app.groups-moxntnwj.js +1 -0
- package/static/dist/assets/{_app.index-n3otiki0.js → _app.index-cl2gm9em.js} +1 -1
- package/static/dist/assets/{_app.insights-b0mzlh6m.js → _app.insights-bcp4gxdl.js} +1 -1
- package/static/dist/assets/{_app.kanban-d923g7j5.js → _app.kanban-gdd14nha.js} +1 -1
- package/static/dist/assets/{_app.logs-donegue1.js → _app.logs-db8a8laq.js} +1 -1
- package/static/dist/assets/{_app.memory-hdnled08.js → _app.memory-lgdi2669.js} +1 -1
- package/static/dist/assets/{_app.profiles-fumot3jk.js → _app.profiles-dkg4fm1b.js} +1 -1
- package/static/dist/assets/{_app.session._sessionId-crmdl2ux.js → _app.session._sessionId-d7cr52yh.js} +1 -1
- package/static/dist/assets/{_app.settings-jui8iesz.js → _app.settings-k0vrjcz3.js} +1 -1
- package/static/dist/assets/_app.settings._section-jgjqzy3i.js +3 -0
- package/static/dist/assets/{_app.skills-heqcn21m.js → _app.skills-j5pd1f46.js} +1 -1
- package/static/dist/assets/_app.tasks-fmr2hs25.js +1 -0
- package/static/dist/assets/{_app.todos-bl6kk2zq.js → _app.todos-n1rbjgs1.js} +1 -1
- package/static/dist/assets/{_app.workspaces-frvh3o7w.js → _app.workspaces-jabuzmma.js} +1 -1
- package/static/dist/assets/{abnfDiagram-VCTEODGH-dppg3yfx.js → abnfDiagram-VCTEODGH-cwtu63e4.js} +1 -1
- package/static/dist/assets/{architecture-7GRP2DOG-gbajejh3.js → architecture-7GRP2DOG-e8ck2qln.js} +1 -1
- package/static/dist/assets/{architectureDiagram-5GKGNRK7-bzrxyais.js → architectureDiagram-5GKGNRK7-l5uhvf2v.js} +1 -1
- package/static/dist/assets/{archive-yhdyz231.js → archive-mgopz8hd.js} +1 -1
- package/static/dist/assets/{blockDiagram-I7D4REHJ-gmk9koab.js → blockDiagram-I7D4REHJ-lvqprrhm.js} +1 -1
- package/static/dist/assets/{c4Diagram-7LVT6UL2-bfqiqqcz.js → c4Diagram-7LVT6UL2-hyd1bxif.js} +1 -1
- package/static/dist/assets/channel-ce4j80w5.js +1 -0
- package/static/dist/assets/{chunk-4HAMMTFA-i9s6h4wv.js → chunk-4HAMMTFA-d5t6xbqw.js} +1 -1
- package/static/dist/assets/{chunk-75Z2AOVW-gnt6pnso.js → chunk-75Z2AOVW-hnipvlu1.js} +1 -1
- package/static/dist/assets/{chunk-DU6HZSFF-gq439wot.js → chunk-DU6HZSFF-f2bonwqc.js} +1 -1
- package/static/dist/assets/{chunk-F27PBJKO-wvx90pbt.js → chunk-F27PBJKO-imfznb35.js} +1 -1
- package/static/dist/assets/{chunk-GMAD6QVW-mc2gu30k.js → chunk-GMAD6QVW-hvo88yc8.js} +1 -1
- package/static/dist/assets/{chunk-GVQU2GXP-f8fxa2ym.js → chunk-GVQU2GXP-jfhd47pz.js} +1 -1
- package/static/dist/assets/{chunk-IMKFNOWR-lnsl31hj.js → chunk-IMKFNOWR-jvhamece.js} +1 -1
- package/static/dist/assets/{chunk-L3NEJ4N5-kbfdidwu.js → chunk-L3NEJ4N5-jbkt3z9p.js} +1 -1
- package/static/dist/assets/{chunk-OSK3NFVY-dvxsduj6.js → chunk-OSK3NFVY-nnn8mve5.js} +1 -1
- package/static/dist/assets/{chunk-P2QGCYS3-ivo3i1wf.js → chunk-P2QGCYS3-n9so2yzs.js} +1 -1
- package/static/dist/assets/{chunk-POPQ4Y6H-i0gfu0hx.js → chunk-POPQ4Y6H-b8anbnt4.js} +1 -1
- package/static/dist/assets/{chunk-PWAF6VOD-jb0fdyb0.js → chunk-PWAF6VOD-liiad75u.js} +1 -1
- package/static/dist/assets/{chunk-SHT3W25Y-b7ou2xsp.js → chunk-SHT3W25Y-gsw9gt9o.js} +1 -1
- package/static/dist/assets/{chunk-SVP7TREG-e2v7me5v.js → chunk-SVP7TREG-hncvhoeu.js} +1 -1
- package/static/dist/assets/{chunk-TICWLB2K-e5zlai62.js → chunk-TICWLB2K-eirs0boy.js} +1 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-jq8hkfss.js +1 -0
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-jq8hkfss.js +1 -0
- package/static/dist/assets/{completionAudio-c5at041z.js → completionAudio-efhz2964.js} +1 -1
- package/static/dist/assets/{copy-jj3oiw13.js → copy-penlemr7.js} +1 -1
- package/static/dist/assets/{cynefin-OW5HDTMX-n5n1ck70.js → cynefin-OW5HDTMX-lse8sgjo.js} +1 -1
- package/static/dist/assets/{cynefinDiagram-5FMLGOSQ-b33npu4f.js → cynefinDiagram-5FMLGOSQ-lh1lr5jh.js} +1 -1
- package/static/dist/assets/{dagre-GXQ25YYZ-miwvae07.js → dagre-GXQ25YYZ-ksgzal5q.js} +1 -1
- package/static/dist/assets/{diagram-S7CK7UJ4-j8fphsp4.js → diagram-S7CK7UJ4-b1dg2vqu.js} +1 -1
- package/static/dist/assets/{diagram-UQ7AKVKN-5cixo166.js → diagram-UQ7AKVKN-oi4tooeu.js} +1 -1
- package/static/dist/assets/{diagram-VSXAHHWV-ii3bf92m.js → diagram-VSXAHHWV-i200wbxt.js} +1 -1
- package/static/dist/assets/{diagram-VX7I27RA-b3cfgx81.js → diagram-VX7I27RA-klkvwv2v.js} +1 -1
- package/static/dist/assets/{diagram-Z3DM3KII-bey9lqr8.js → diagram-Z3DM3KII-hl0yuaua.js} +1 -1
- package/static/dist/assets/{dist-cb8um5dh.js → dist-f027inn3.js} +4 -4
- package/static/dist/assets/{ebnfDiagram-PWID7BFC-2m4wrnqc.js → ebnfDiagram-PWID7BFC-m0dvixp4.js} +1 -1
- package/static/dist/assets/{erDiagram-RLTQ6QDP-kak5te0n.js → erDiagram-RLTQ6QDP-o4ion00y.js} +1 -1
- package/static/dist/assets/{eventmodeling-NTZA5JFV-ojcc486t.js → eventmodeling-NTZA5JFV-cto4lz9x.js} +1 -1
- package/static/dist/assets/feedbackVideo.worker-JBVT3sDD.js +480 -0
- package/static/dist/assets/flowDiagram-HODETNUW-g3mqinb3.js +1 -0
- package/static/dist/assets/{folder-plus-fk6j7tlv.js → folder-plus-juyoa9t5.js} +1 -1
- package/static/dist/assets/{ganttDiagram-EL5Y4UJY-k6nfmhrh.js → ganttDiagram-EL5Y4UJY-ibcujv8n.js} +1 -1
- package/static/dist/assets/{getPseudoElementBounds-mwj3vqni.js → getPseudoElementBounds-k2g02exy.js} +1 -1
- package/static/dist/assets/{gitGraph-4MIJSDKK-bxq1lbhy.js → gitGraph-4MIJSDKK-imd4cuj0.js} +1 -1
- package/static/dist/assets/{gitGraphDiagram-WWUBYQGX-ehvoankt.js → gitGraphDiagram-WWUBYQGX-j1upe2p9.js} +1 -1
- package/static/dist/assets/{highlighted-body-KPVGNVTW-nr4nfdq7.js → highlighted-body-KPVGNVTW-bba59apd.js} +1 -1
- package/static/dist/assets/{host-dhgqiozp.js → host-b0vy4fmt.js} +1 -1
- package/static/dist/assets/index-f2zqyt9g.js +13 -0
- package/static/dist/assets/index-o1y6ztpz.css +2 -0
- package/static/dist/assets/{info-A6RAGUB7-dtsj0ybw.js → info-A6RAGUB7-hs8nxymo.js} +1 -1
- package/static/dist/assets/{infoDiagram-27XIBGKW-jena90ao.js → infoDiagram-27XIBGKW-bacbjycq.js} +1 -1
- package/static/dist/assets/{ishikawaDiagram-5VMMS53U-kia6bn5u.js → ishikawaDiagram-5VMMS53U-km1x9nh9.js} +1 -1
- package/static/dist/assets/{journeyDiagram-3NMN7TZE-ipsa6icb.js → journeyDiagram-3NMN7TZE-cdog9ipl.js} +1 -1
- package/static/dist/assets/{kanban-definition-UXKFOSKX-moxx59kp.js → kanban-definition-UXKFOSKX-ej65w4ml.js} +1 -1
- package/static/dist/assets/{lazyRouteComponent-i74ujrfk.js → lazyRouteComponent-n94laok7.js} +1 -1
- package/static/dist/assets/{line-lgrkg9no.js → line-hogjbhn0.js} +1 -1
- package/static/dist/assets/{link-2-fp49mwl2.js → link-2-ke0n3wfv.js} +1 -1
- package/static/dist/assets/{link-es18mse1.js → link-cegpbi7n.js} +2 -2
- package/static/dist/assets/{login-o6gfl4gy.js → login-nfckx8au.js} +1 -1
- package/static/dist/assets/mermaid-HWGCJPDP-hd0jj0vp.js +1 -0
- package/static/dist/assets/{mermaid-parser.core-fflovwf2.js → mermaid-parser.core-otfins17.js} +3 -3
- package/static/dist/assets/{mindmap-definition-YA3MSWOX-ic8l9whi.js → mindmap-definition-YA3MSWOX-e5qtwbyi.js} +1 -1
- package/static/dist/assets/{onboarding-bxm7gdrr.js → onboarding-jzh8f4l4.js} +1 -1
- package/static/dist/assets/{packet-AYTQ26CC-ntci3088.js → packet-AYTQ26CC-h02x81cf.js} +1 -1
- package/static/dist/assets/{pegDiagram-XKGWAZYB-e3btz04w.js → pegDiagram-XKGWAZYB-g9y7743p.js} +1 -1
- package/static/dist/assets/{pie-WAS4IAKB-o2dc7l36.js → pie-WAS4IAKB-nk4yj7x1.js} +1 -1
- package/static/dist/assets/{pieDiagram-E7YTZNPT-gro55rrw.js → pieDiagram-E7YTZNPT-gqs39a41.js} +1 -1
- package/static/dist/assets/{presence-lq6m12ga.js → presence-izfzh7wv.js} +1 -1
- package/static/dist/assets/{quadrantDiagram-AXDQQJYC-fxulmd7d.js → quadrantDiagram-AXDQQJYC-im3m9pv6.js} +1 -1
- package/static/dist/assets/queryKeys-i9qbt7i5.js +9 -0
- package/static/dist/assets/{radar-RG4KPBEZ-9pcospra.js → radar-RG4KPBEZ-fzapkstq.js} +1 -1
- package/static/dist/assets/{railroad-74A4TZTK-nzdga12j.js → railroad-74A4TZTK-23sief4p.js} +1 -1
- package/static/dist/assets/{railroad-abnf-HS5TGJTU-ep3ytel0.js → railroad-abnf-HS5TGJTU-ffkapsp5.js} +1 -1
- package/static/dist/assets/{railroad-ebnf-LZEXJU2U-iw7uc1wy.js → railroad-ebnf-LZEXJU2U-oylukhb3.js} +1 -1
- package/static/dist/assets/{railroad-peg-WCYAUIDC-fo3b3gme.js → railroad-peg-WCYAUIDC-oibw2zhx.js} +1 -1
- package/static/dist/assets/{railroadDiagram-O6MQD6OU-lxpxf8f0.js → railroadDiagram-O6MQD6OU-hl0s0erl.js} +1 -1
- package/static/dist/assets/{requirementDiagram-BXWQKSXE-lrozucd2.js → requirementDiagram-BXWQKSXE-ide499vb.js} +1 -1
- package/static/dist/assets/{sankeyDiagram-P5KCCOFB-iusxy9mq.js → sankeyDiagram-P5KCCOFB-jcri7jou.js} +1 -1
- package/static/dist/assets/{sequenceDiagram-WJ2MYXX4-o987q8ti.js → sequenceDiagram-WJ2MYXX4-cwr73aj7.js} +1 -1
- package/static/dist/assets/{share._token-bfw7f9m5.js → share._token-hw9yyjl4.js} +2 -2
- package/static/dist/assets/{sliders-horizontal-l65hoa3x.js → sliders-horizontal-n7u17ayj.js} +1 -1
- package/static/dist/assets/{stateDiagram-D77RDMKH-hh23v7y5.js → stateDiagram-D77RDMKH-k4mrb97t.js} +1 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-ua4axhbr.js +1 -0
- package/static/dist/assets/{swimlanes-42K2YHIH-gj2t3rm8.js → swimlanes-42K2YHIH-w9p0wqk5.js} +1 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-om5at2aj.js +8 -0
- package/static/dist/assets/{timeline-definition-24CTP7MA-84s2w2sr.js → timeline-definition-24CTP7MA-cipbmg69.js} +1 -1
- package/static/dist/assets/{toast-gqqcvxiy.js → toast-nskepge4.js} +1 -1
- package/static/dist/assets/{treeView-Q6P3EWNA-cmuj50l7.js → treeView-Q6P3EWNA-dr7af67f.js} +1 -1
- package/static/dist/assets/{treemap-WGGIJYW6-dpjlg0xc.js → treemap-WGGIJYW6-m8eq8ad4.js} +1 -1
- package/static/dist/assets/{tts-jw84jlqy.js → tts-d0hv9xzo.js} +1 -1
- package/static/dist/assets/{useForm-lxzhiqao.js → useForm-l0383y9g.js} +1 -1
- package/static/dist/assets/{useParams-dt6gkoq7.js → useParams-iin0s8xu.js} +1 -1
- package/static/dist/assets/{useSearch-o8t49csk.js → useSearch-ha7eumeg.js} +1 -1
- package/static/dist/assets/{useTranscript-gx9umcc2.js → useTranscript-imk5pwg3.js} +1 -1
- package/static/dist/assets/{vennDiagram-4TSXK5OY-g9g5o8vy.js → vennDiagram-4TSXK5OY-blyr9wa6.js} +1 -1
- package/static/dist/assets/{wardley-WFR3VGLG-ij35obrl.js → wardley-WFR3VGLG-c66wxxyf.js} +1 -1
- package/static/dist/assets/{wardleyDiagram-VM6X3IG4-f9my7q7w.js → wardleyDiagram-VM6X3IG4-h4o81ma2.js} +1 -1
- package/static/dist/assets/{xychartDiagram-S5SC5T6Z-olqx1s1p.js → xychartDiagram-S5SC5T6Z-lh1casu6.js} +1 -1
- package/static/dist/index.html +1 -1
- package/static/dist/sw.js +1 -1
- package/static/dist/assets/AppShell-hvysbd9x.js +0 -8
- package/static/dist/assets/ChatPage-jikwrwfd.js +0 -2
- package/static/dist/assets/Composer-mnke8ss2.js +0 -5
- package/static/dist/assets/ExtensionRoute-igk5h0rj.js +0 -1
- package/static/dist/assets/HubRoute-eooassx4.js +0 -2
- package/static/dist/assets/Markdown-m5pzgvtx.js +0 -2
- package/static/dist/assets/SessionListPanel-brnzacw9.js +0 -1
- package/static/dist/assets/States-msohx3c0.js +0 -1
- package/static/dist/assets/TerminalPanel-bnu5xawo.js +0 -16
- package/static/dist/assets/Toaster-d6col3ch.js +0 -1
- package/static/dist/assets/_app.groups-bt4wdwnd.js +0 -1
- package/static/dist/assets/_app.settings._section-do84hsqw.js +0 -3
- package/static/dist/assets/_app.tasks-jiudtutt.js +0 -1
- package/static/dist/assets/channel-grt3rob4.js +0 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-nnsp49jr.js +0 -1
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-nnsp49jr.js +0 -1
- package/static/dist/assets/flowDiagram-HODETNUW-kxr9sicu.js +0 -1
- package/static/dist/assets/index-hx7z4wdj.js +0 -13
- package/static/dist/assets/index-o8ebuc5x.css +0 -2
- package/static/dist/assets/mermaid-HWGCJPDP-n2kbzsao.js +0 -1
- package/static/dist/assets/queryKeys-cnvn6pea.js +0 -9
- package/static/dist/assets/refresh-cw-d14h79x5.js +0 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-jukr0d8h.js +0 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-ik9m9j2m.js +0 -8
|
@@ -70,7 +70,8 @@ function textEdits(source, from, to, resolver) {
|
|
|
70
70
|
const refStart = isToken ? cursor + MEDIA.length : cursor;
|
|
71
71
|
const refEnd = referenceEnd(source, refStart, to, isFileUrl);
|
|
72
72
|
const raw = refEnd === null ? '' : source.slice(refStart, refEnd);
|
|
73
|
-
const
|
|
73
|
+
const ref = raw && isFileUrl ? fileUrlPath(raw) : raw;
|
|
74
|
+
const media = ref ? mediaFor(ref, resolver) : null;
|
|
74
75
|
if (media && refEnd !== null) {
|
|
75
76
|
const label = escapeLabel(media.name);
|
|
76
77
|
edits.push({ start: cursor, end: refEnd, text: media.kind === 'image' ? `` : `[${label}](${media.url})`, media });
|
|
@@ -141,14 +142,20 @@ function kindFor(mime) {
|
|
|
141
142
|
return 'video';
|
|
142
143
|
return mime === 'application/pdf' ? 'pdf' : 'file';
|
|
143
144
|
}
|
|
145
|
+
/** Hosts that name this machine; `localhost` already parses to an empty host. */
|
|
146
|
+
const LOCAL_FILE_HOSTS = new Set(['', 'localhost', '127.0.0.1', '[::1]']);
|
|
147
|
+
/** A file URL's local path, or null when it names another host (`file://server/share/x`) and is not this machine's file. */
|
|
144
148
|
function fileUrlPath(raw) {
|
|
145
149
|
try {
|
|
146
|
-
const { pathname } = new URL(raw);
|
|
150
|
+
const { hostname, pathname } = new URL(raw);
|
|
151
|
+
if (!LOCAL_FILE_HOSTS.has(hostname))
|
|
152
|
+
return null;
|
|
147
153
|
if (pathname)
|
|
148
154
|
return safeDecode(pathname);
|
|
149
155
|
}
|
|
150
156
|
catch { /* not a parseable URL */ }
|
|
151
|
-
|
|
157
|
+
const rest = raw.slice(FILE_URL.length);
|
|
158
|
+
return rest.startsWith('/') ? safeDecode(rest) : null;
|
|
152
159
|
}
|
|
153
160
|
function safeDecode(text) {
|
|
154
161
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-refs.js","sourceRoot":"","sources":["../../src/workspace/media-refs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"media-refs.js","sourceRoot":"","sources":["../../src/workspace/media-refs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maudecode/talaria-web",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.23.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Talaria Web server: Node 24 HTTP server for the Hermes Agent browser workbench, with the talaria-web launcher, daemon control, self-update, and MCP bins.",
|
|
6
6
|
"bin": {
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"static/brand",
|
|
14
14
|
"sidecar",
|
|
15
15
|
"contract_versions.json",
|
|
16
|
-
"_release.json"
|
|
16
|
+
"_release.json",
|
|
17
|
+
"_whats_new.json"
|
|
17
18
|
],
|
|
18
19
|
"scripts": {
|
|
19
20
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
"postpack": "node scripts/prepack.mjs --clean"
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|
|
28
|
-
"@maudecode/talaria-web-contracts": "1.
|
|
29
|
+
"@maudecode/talaria-web-contracts": "1.23.3",
|
|
29
30
|
"@modelcontextprotocol/sdk": "1.32.0",
|
|
30
31
|
"@orpc/contract": "1.15.2",
|
|
31
32
|
"@orpc/openapi": "1.15.2",
|
|
@@ -48,6 +48,9 @@ _collected, _started, _layers = [], [], {}
|
|
|
48
48
|
_inventory, _active_case, _harness_launch = {}, None, False
|
|
49
49
|
_launches, _violations = [], []
|
|
50
50
|
_active_phase = 'collection'
|
|
51
|
+
# A shard's worker runs its modules' listed cases only (TAL-1599).
|
|
52
|
+
SELECTION = 'TALARIA_PYTEST_SELECTION'
|
|
53
|
+
_selection = None
|
|
51
54
|
|
|
52
55
|
|
|
53
56
|
def pytest_addoption(parser):
|
|
@@ -116,6 +119,9 @@ def case_layer(nodeid):
|
|
|
116
119
|
|
|
117
120
|
|
|
118
121
|
def pytest_collection_modifyitems(items, config):
|
|
122
|
+
global _selection
|
|
123
|
+
if path := os.environ.get(SELECTION):
|
|
124
|
+
_selection = set(json.loads(Path(path).read_text()))
|
|
119
125
|
selected, deselected = [], []
|
|
120
126
|
layer = config.getoption('--talaria-layer')
|
|
121
127
|
for item in items:
|
|
@@ -128,7 +134,8 @@ def pytest_collection_modifyitems(items, config):
|
|
|
128
134
|
raise ValueError(f'unclassified Agent case: {item.nodeid}')
|
|
129
135
|
if entry and ('[' + case if bracket else '') not in entry['cases']:
|
|
130
136
|
raise ValueError(f'unreviewed process case: {item.nodeid}')
|
|
131
|
-
target = selected if layer == 'all' or layer == case_layer(item.nodeid)
|
|
137
|
+
target = selected if (layer == 'all' or layer == case_layer(item.nodeid)) and (
|
|
138
|
+
_selection is None or item.nodeid in _selection) else deselected
|
|
132
139
|
target.append(item)
|
|
133
140
|
config.hook.pytest_deselected(items=deselected)
|
|
134
141
|
items[:] = selected
|
|
@@ -183,6 +190,32 @@ def layer_arguments(args):
|
|
|
183
190
|
return remaining, layers
|
|
184
191
|
|
|
185
192
|
|
|
193
|
+
def shard_argument(args):
|
|
194
|
+
"""``--shard=N/M`` runs the full suite's Nth of M case sets (TAL-1599); every other argument passes through."""
|
|
195
|
+
remaining, shard = [], None
|
|
196
|
+
for arg in args:
|
|
197
|
+
if arg.startswith('--shard='):
|
|
198
|
+
index, _, count = arg.split('=', 1)[1].partition('/')
|
|
199
|
+
if not (index.isdecimal() and count.isdecimal() and 1 <= int(index) <= int(count)):
|
|
200
|
+
raise ValueError('shard must be N/M with 1 <= N <= M')
|
|
201
|
+
shard = (int(index), int(count))
|
|
202
|
+
else:
|
|
203
|
+
remaining.append(arg)
|
|
204
|
+
return remaining, shard
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def shard_cases(nodeids, layers, index, count):
|
|
208
|
+
"""Each layer's cases in collection order, dealt round-robin: a module's cases, slow ones included, spread over
|
|
209
|
+
every shard, and every shard computes the same split from the same collection."""
|
|
210
|
+
dealt = Counter()
|
|
211
|
+
chosen = []
|
|
212
|
+
for node in nodeids:
|
|
213
|
+
if dealt[layers[node]] % count == index - 1:
|
|
214
|
+
chosen.append(node)
|
|
215
|
+
dealt[layers[node]] += 1
|
|
216
|
+
return chosen
|
|
217
|
+
|
|
218
|
+
|
|
186
219
|
def report_argument(args):
|
|
187
220
|
"""Only an unfiltered full suite is parallelized; all other pytest arguments pass through serially."""
|
|
188
221
|
remaining, report = [], None
|
|
@@ -285,7 +318,7 @@ def cleanup(processes, state):
|
|
|
285
318
|
reap_orphans(processes, terminate=True)
|
|
286
319
|
|
|
287
320
|
|
|
288
|
-
def merge_reports(jobs, destination):
|
|
321
|
+
def merge_reports(jobs, destination, extra=None):
|
|
289
322
|
merged = ET.Element("testsuites")
|
|
290
323
|
durations, modules, manifests = [], defaultdict(float), []
|
|
291
324
|
for job, expected in jobs:
|
|
@@ -330,7 +363,7 @@ def merge_reports(jobs, destination):
|
|
|
330
363
|
coverage = {'collected': [node for manifest in manifests for node in manifest['collected']],
|
|
331
364
|
'started': [node for manifest in manifests for node in manifest['started']],
|
|
332
365
|
'layers': {node: layer for manifest in manifests for node, layer in manifest.get('layers', {}).items()},
|
|
333
|
-
'launches': [launch for manifest in manifests for launch in manifest.get('launches', [])]}
|
|
366
|
+
'launches': [launch for manifest in manifests for launch in manifest.get('launches', [])], **(extra or {})}
|
|
334
367
|
coverage_path = Path(str(destination) + '.coverage.json')
|
|
335
368
|
coverage_temporary = coverage_path.with_suffix('.tmp')
|
|
336
369
|
coverage_temporary.write_text(json.dumps(coverage))
|
|
@@ -349,7 +382,10 @@ def run(args):
|
|
|
349
382
|
if report:
|
|
350
383
|
report.unlink(missing_ok=True) # A stale report must never prove this run passed.
|
|
351
384
|
Path(str(report) + '.coverage.json').unlink(missing_ok=True)
|
|
385
|
+
remaining, shard = shard_argument(remaining)
|
|
352
386
|
remaining, layers = layer_arguments(remaining)
|
|
387
|
+
if shard and remaining:
|
|
388
|
+
raise ValueError('--shard runs the full suite and takes no other selection')
|
|
353
389
|
count = worker_count(os.environ.get(WORKERS))
|
|
354
390
|
selected = 1 if remaining else count
|
|
355
391
|
print(f"Sidecar pytest: workers={selected}, host budget={os.environ.get('TALARIA_SIDECAR_TOTAL_WORKERS', count)}", flush=True)
|
|
@@ -361,7 +397,7 @@ def run(args):
|
|
|
361
397
|
with tempfile.TemporaryDirectory(prefix="talaria-pytest-state-") as directory:
|
|
362
398
|
state = Path(directory)
|
|
363
399
|
|
|
364
|
-
def launch(name, arguments, layer=None, complete=False):
|
|
400
|
+
def launch(name, arguments, layer=None, complete=False, cases=None):
|
|
365
401
|
job, home = output / name, state / name
|
|
366
402
|
job.mkdir()
|
|
367
403
|
for child in ("home", "tmp"):
|
|
@@ -374,6 +410,10 @@ def run(args):
|
|
|
374
410
|
env.pop('HERMES_WEBUI_PYTHON', None)
|
|
375
411
|
env['TALARIA_TEST_LAYER'] = layer or 'collection'
|
|
376
412
|
env['TALARIA_POLICY_CHECK_ALL'] = '1' if complete else '0'
|
|
413
|
+
env.pop(SELECTION, None)
|
|
414
|
+
if cases is not None:
|
|
415
|
+
(home / 'selection.json').write_text(json.dumps(cases))
|
|
416
|
+
env[SELECTION] = str(home / 'selection.json')
|
|
377
417
|
log = (job / "output.log").open("w")
|
|
378
418
|
streams.append(log)
|
|
379
419
|
proc = subprocess.Popen([sys.executable, "-m", "pytest", "-p", "suite_runner", "-q",
|
|
@@ -396,7 +436,14 @@ def run(args):
|
|
|
396
436
|
if any(arg in ('--collect-only', '--collectonly', '--co') for arg in remaining):
|
|
397
437
|
print('\n'.join(expected), flush=True)
|
|
398
438
|
return 0
|
|
399
|
-
|
|
439
|
+
suite = None
|
|
440
|
+
if shard:
|
|
441
|
+
suite = {'shard': f'{shard[0]}/{shard[1]}', 'suite': expected}
|
|
442
|
+
expected = shard_cases(expected, collected['layers'], *shard)
|
|
443
|
+
if not expected:
|
|
444
|
+
raise ValueError(f'shard {shard[0]}/{shard[1]} selected no cases')
|
|
445
|
+
print(f"Collected {len(nodeids)} cases; selected {len(expected)} in {layers}"
|
|
446
|
+
f"{f' for shard {shard[0]}/{shard[1]}' if shard else ''}; diagnostics: {output}", flush=True)
|
|
400
447
|
jobs = []
|
|
401
448
|
failed = False
|
|
402
449
|
for layer in layers:
|
|
@@ -406,7 +453,7 @@ def run(args):
|
|
|
406
453
|
name = f'worker-{len(jobs) + 1}'
|
|
407
454
|
selection = remaining if remaining else list(dict.fromkeys(node.split('::', 1)[0] for node in group))
|
|
408
455
|
job, proc = launch(name, [f"--junitxml={output / name / 'junit.xml'}",
|
|
409
|
-
f'--talaria-layer={layer}', *selection], layer)
|
|
456
|
+
f'--talaria-layer={layer}', *selection], layer, cases=group if shard else None)
|
|
410
457
|
jobs.append((job, group, proc))
|
|
411
458
|
current.append((job, proc))
|
|
412
459
|
for job, proc in current:
|
|
@@ -415,7 +462,7 @@ def run(args):
|
|
|
415
462
|
failed |= code != 0
|
|
416
463
|
if Counter(node for _, group, _ in jobs for node in group) != Counter(expected):
|
|
417
464
|
raise ValueError('missing or duplicate selected layer coverage')
|
|
418
|
-
report_failed = merge_reports([(job, group) for job, group, _ in jobs], report or output / "junit.xml")
|
|
465
|
+
report_failed = merge_reports([(job, group) for job, group, _ in jobs], report or output / "junit.xml", suite)
|
|
419
466
|
return int(failed or report_failed)
|
|
420
467
|
finally:
|
|
421
468
|
for sig in (signal.SIGINT, signal.SIGTERM):
|
|
@@ -434,7 +481,7 @@ def run(args):
|
|
|
434
481
|
|
|
435
482
|
def main():
|
|
436
483
|
if sys.argv[1:2] == ['--requires-agent']:
|
|
437
|
-
print(str('compatibility' in layer_arguments(sys.argv[2:])[1]).lower())
|
|
484
|
+
print(str('compatibility' in layer_arguments(shard_argument(sys.argv[2:])[0])[1]).lower())
|
|
438
485
|
return 0
|
|
439
486
|
if sys.platform == "linux":
|
|
440
487
|
import ctypes
|