@recombine-ai/bosun 0.11.1 → 0.12.0
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/build/client/_app/immutable/assets/0.CH-WU4JN.css +1 -0
- package/build/client/_app/immutable/assets/0.CH-WU4JN.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CH-WU4JN.css.gz +0 -0
- package/build/client/_app/immutable/assets/{10.BX46PfEJ.css → 10.DIVePEYf.css} +1 -1
- package/build/client/_app/immutable/assets/10.DIVePEYf.css.br +0 -0
- package/build/client/_app/immutable/assets/10.DIVePEYf.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{AocOovHL.js → 07xNIa59.js} +2 -2
- package/build/client/_app/immutable/chunks/07xNIa59.js.br +0 -0
- package/build/client/_app/immutable/chunks/07xNIa59.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDl2QuyN.js +1 -0
- package/build/client/_app/immutable/chunks/BDl2QuyN.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDl2QuyN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CqxCTxvJ.js → BI42X8h_.js} +1 -1
- package/build/client/_app/immutable/chunks/BI42X8h_.js.br +0 -0
- package/build/client/_app/immutable/chunks/BI42X8h_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJTwdUYr.js +1 -0
- package/build/client/_app/immutable/chunks/BJTwdUYr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJTwdUYr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLu86SbA.js +1 -0
- package/build/client/_app/immutable/chunks/BLu86SbA.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLu86SbA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNifnXkO.js +1 -0
- package/build/client/_app/immutable/chunks/BNifnXkO.js.br +2 -0
- package/build/client/_app/immutable/chunks/BNifnXkO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BM0jKynj.js → BPNEONy5.js} +1 -1
- package/build/client/_app/immutable/chunks/BPNEONy5.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPNEONy5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQ3mPfLC.js +1 -0
- package/build/client/_app/immutable/chunks/BQ3mPfLC.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQ3mPfLC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BRQsk2Ii.js +1 -0
- package/build/client/_app/immutable/chunks/BRQsk2Ii.js.br +0 -0
- package/build/client/_app/immutable/chunks/BRQsk2Ii.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_K7D6rX.js +2 -0
- package/build/client/_app/immutable/chunks/B_K7D6rX.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_K7D6rX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BirMtEut.js +3 -0
- package/build/client/_app/immutable/chunks/BirMtEut.js.br +0 -0
- package/build/client/_app/immutable/chunks/BirMtEut.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js +1 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsDZe4N6.js +1 -0
- package/build/client/_app/immutable/chunks/BsDZe4N6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsDZe4N6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CXo2BVs0.js → Buo-57fF.js} +1 -1
- package/build/client/_app/immutable/chunks/Buo-57fF.js.br +0 -0
- package/build/client/_app/immutable/chunks/Buo-57fF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C-whEtKd.js → C39ai1md.js} +1 -1
- package/build/client/_app/immutable/chunks/C39ai1md.js.br +0 -0
- package/build/client/_app/immutable/chunks/C39ai1md.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C7he4XPB.js +1 -0
- package/build/client/_app/immutable/chunks/C7he4XPB.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7he4XPB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DYhTBLDc.js → CAjPRvNs.js} +2 -2
- package/build/client/_app/immutable/chunks/CAjPRvNs.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAjPRvNs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJYOmGlC.js +1 -0
- package/build/client/_app/immutable/chunks/CJYOmGlC.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJYOmGlC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{HJHYLHDn.js → CPXdAKdv.js} +1 -1
- package/build/client/_app/immutable/chunks/CPXdAKdv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPXdAKdv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DTlGvFHe.js → CVlsAO8k.js} +1 -1
- package/build/client/_app/immutable/chunks/CVlsAO8k.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVlsAO8k.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DNLcpWO_.js → CX0Ekq8t.js} +1 -1
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ca197UDq.js +1 -0
- package/build/client/_app/immutable/chunks/Ca197UDq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ca197UDq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CaHl3dME.js +1 -0
- package/build/client/_app/immutable/chunks/CaHl3dME.js.br +0 -0
- package/build/client/_app/immutable/chunks/CaHl3dME.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cql_e8Of.js +1 -0
- package/build/client/_app/immutable/chunks/Cql_e8Of.js.br +2 -0
- package/build/client/_app/immutable/chunks/Cql_e8Of.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dv8m1cTI.js → CxLomzuE.js} +1 -1
- package/build/client/_app/immutable/chunks/CxLomzuE.js.br +0 -0
- package/build/client/_app/immutable/chunks/{Dv8m1cTI.js.gz → CxLomzuE.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/Cyai3SOj.js +1 -0
- package/build/client/_app/immutable/chunks/Cyai3SOj.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cyai3SOj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{-g1l5aoS.js → CyvQWZoe.js} +4 -4
- package/build/client/_app/immutable/chunks/CyvQWZoe.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyvQWZoe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CzXNWL4m.js +1 -0
- package/build/client/_app/immutable/chunks/CzXNWL4m.js.br +1 -0
- package/build/client/_app/immutable/chunks/CzXNWL4m.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-B5X35l.js +1 -0
- package/build/client/_app/immutable/chunks/D-B5X35l.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-B5X35l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJriQKD9.js +2 -0
- package/build/client/_app/immutable/chunks/DJriQKD9.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJriQKD9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CZLNSMhF.js → Dslf9OwW.js} +10 -10
- package/build/client/_app/immutable/chunks/Dslf9OwW.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dslf9OwW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{UiXQyKcj.js → Dyryn8e8.js} +1 -1
- package/build/client/_app/immutable/chunks/Dyryn8e8.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dyryn8e8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QpaC6J6s.js +1 -0
- package/build/client/_app/immutable/chunks/QpaC6J6s.js.br +0 -0
- package/build/client/_app/immutable/chunks/QpaC6J6s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{HXxIsSOO.js → iAhzu4tv.js} +1 -1
- package/build/client/_app/immutable/chunks/iAhzu4tv.js.br +0 -0
- package/build/client/_app/immutable/chunks/iAhzu4tv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cosugfe8.js → nYD9wsyN.js} +1 -1
- package/build/client/_app/immutable/chunks/nYD9wsyN.js.br +0 -0
- package/build/client/_app/immutable/chunks/nYD9wsyN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BIpSIzUr.js → uLGP0py1.js} +1 -1
- package/build/client/_app/immutable/chunks/uLGP0py1.js.br +0 -0
- package/build/client/_app/immutable/chunks/uLGP0py1.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.D4Xt4iAw.js +2 -0
- package/build/client/_app/immutable/entry/app.D4Xt4iAw.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D4Xt4iAw.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.wAOD4JjG.js +1 -0
- package/build/client/_app/immutable/entry/start.wAOD4JjG.js.br +2 -0
- package/build/client/_app/immutable/entry/start.wAOD4JjG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.BiYgQci8.js → 0.Cu9qsozo.js} +2 -2
- package/build/client/_app/immutable/nodes/0.Cu9qsozo.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Cu9qsozo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Couoma7h.js +1 -0
- package/build/client/_app/immutable/nodes/1.Couoma7h.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Couoma7h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.D9Is7Tuj.js +7 -0
- package/build/client/_app/immutable/nodes/10.D9Is7Tuj.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.D9Is7Tuj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{15.Wmhj7gOy.js → 15.BFy4oAT6.js} +1 -1
- package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.BFy4oAT6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.4BKUGLfv.js +3 -0
- package/build/client/_app/immutable/nodes/17.4BKUGLfv.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.4BKUGLfv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.BS-4NZTI.js +11 -0
- package/build/client/_app/immutable/nodes/18.BS-4NZTI.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.BS-4NZTI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DniQTiGZ.js → 2.DFjSU1Pb.js} +20 -20
- package/build/client/_app/immutable/nodes/2.DFjSU1Pb.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DFjSU1Pb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DS3LgAwM.js +1 -0
- package/build/client/_app/immutable/nodes/3.DS3LgAwM.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DS3LgAwM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CgSeFwiS.js +1 -0
- package/build/client/_app/immutable/nodes/4.CgSeFwiS.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CgSeFwiS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.-ESdbp9e.js +1 -0
- package/build/client/_app/immutable/nodes/5.-ESdbp9e.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.-ESdbp9e.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CX8TfGzw.js +1 -0
- package/build/client/_app/immutable/nodes/6.CX8TfGzw.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CX8TfGzw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.2oZsfzo8.js → 8.Bu3UjNq7.js} +1 -1
- package/build/client/_app/immutable/nodes/8.Bu3UjNq7.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Bu3UjNq7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DsvEYdNE.js +2 -0
- package/build/client/_app/immutable/nodes/9.DsvEYdNE.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DsvEYdNE.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-BsZDBUML.js +9 -0
- package/build/server/chunks/0-BsZDBUML.js.map +1 -0
- package/build/server/chunks/1-BSnA3oUp.js +9 -0
- package/build/server/chunks/{1-BQkMpHdq.js.map → 1-BSnA3oUp.js.map} +1 -1
- package/build/server/chunks/10-Z1taG_Ws.js +9 -0
- package/build/server/chunks/10-Z1taG_Ws.js.map +1 -0
- package/build/server/chunks/{15-CZBxPMAc.js → 15-BMEAVslz.js} +2 -2
- package/build/server/chunks/{15-CZBxPMAc.js.map → 15-BMEAVslz.js.map} +1 -1
- package/build/server/chunks/17-ChcBYZZX.js +9 -0
- package/build/server/chunks/17-ChcBYZZX.js.map +1 -0
- package/build/server/chunks/18-lUysJblN.js +9 -0
- package/build/server/chunks/18-lUysJblN.js.map +1 -0
- package/build/server/chunks/2-Fea6hX08.js +9 -0
- package/build/server/chunks/2-Fea6hX08.js.map +1 -0
- package/build/server/chunks/3-CMzmyLKz.js +9 -0
- package/build/server/chunks/3-CMzmyLKz.js.map +1 -0
- package/build/server/chunks/4-DIgalIci.js +9 -0
- package/build/server/chunks/4-DIgalIci.js.map +1 -0
- package/build/server/chunks/5-BtBVzSzb.js +9 -0
- package/build/server/chunks/{5-C7KuaSU9.js.map → 5-BtBVzSzb.js.map} +1 -1
- package/build/server/chunks/6-DY6GY4a1.js +9 -0
- package/build/server/chunks/6-DY6GY4a1.js.map +1 -0
- package/build/server/chunks/8-CjiKpoR-.js +9 -0
- package/build/server/chunks/8-CjiKpoR-.js.map +1 -0
- package/build/server/chunks/9-CJYLhcDY.js +9 -0
- package/build/server/chunks/9-CJYLhcDY.js.map +1 -0
- package/build/server/chunks/{AgentSidebar-XdGj1sqT.js → AgentSidebar-DvIlda-E.js} +5 -6
- package/build/server/chunks/AgentSidebar-DvIlda-E.js.map +1 -0
- package/build/server/chunks/{ChatStepTrace-DnvGtFpb.js → ChatStepTrace-CqqIjRLU.js} +41 -7
- package/build/server/chunks/ChatStepTrace-CqqIjRLU.js.map +1 -0
- package/build/server/chunks/MockGenerator-GEpXTgX0.js +117 -0
- package/build/server/chunks/MockGenerator-GEpXTgX0.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-C5Y9nSXi.js → _layout.svelte-B-CkD4a0.js} +12 -6
- package/build/server/chunks/_layout.svelte-B-CkD4a0.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-_oqm8kmr.js → _layout.svelte-BBFCF-xw.js} +7 -3
- package/build/server/chunks/_layout.svelte-BBFCF-xw.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-C7JgNCIu.js → _layout.svelte-cPhmW5bZ.js} +3 -1
- package/build/server/chunks/_layout.svelte-cPhmW5bZ.js.map +1 -0
- package/build/server/chunks/{_page.svelte-QlYvVgTj.js → _page.svelte-0J2xaeyC.js} +70 -15
- package/build/server/chunks/_page.svelte-0J2xaeyC.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BpRksNEG.js → _page.svelte-BgoX8Y6N.js} +2 -2
- package/build/server/chunks/{_page.svelte-BpRksNEG.js.map → _page.svelte-BgoX8Y6N.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-bkzbqII3.js → _page.svelte-C_S_qUgZ.js} +479 -71
- package/build/server/chunks/_page.svelte-C_S_qUgZ.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DDpBtd3X.js → _page.svelte-CqGOvPRO.js} +3 -4
- package/build/server/chunks/_page.svelte-CqGOvPRO.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DOhPbizt.js → _page.svelte-Cxh9_vUl.js} +34 -22
- package/build/server/chunks/_page.svelte-Cxh9_vUl.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CEhhEdMi.js → _page.svelte-_sXVlB3C.js} +122 -72
- package/build/server/chunks/_page.svelte-_sXVlB3C.js.map +1 -0
- package/build/server/chunks/conversation-view-memory-BZguFlTt.js +20 -0
- package/build/server/chunks/conversation-view-memory-BZguFlTt.js.map +1 -0
- package/build/server/chunks/log-content.svelte-CfQzj-v_.js.map +1 -1
- package/build/server/chunks/{client-DzvEkq51.js → source-selection-CcN1cgXc.js} +122 -117
- package/build/server/chunks/source-selection-CcN1cgXc.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +14 -14
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -3
- package/src/backend/lib/get-agent-factories.spec.ts +59 -0
- package/src/backend/lib/get-agent-factories.ts +31 -1
- package/src/backend/lib/voice-agent-lifecycle.test.ts +12 -8
- package/src/backend/lib/voice-agent-lifecycle.ts +2 -1
- package/src/backend/roleplay/agents.ts +18 -0
- package/src/backend/roleplay/router.ts +8 -3
- package/src/backend/tests/academy.ts +185 -133
- package/src/backend/tests/active-test-runs.spec.ts +27 -0
- package/src/backend/tests/active-test-runs.ts +41 -0
- package/src/backend/tests/analyze.ts +0 -3
- package/src/backend/tests/best-effort-log-writer.spec.ts +39 -0
- package/src/backend/tests/best-effort-log-writer.ts +52 -0
- package/src/backend/tests/data.spec.ts +139 -0
- package/src/backend/tests/data.ts +296 -65
- package/src/backend/tests/emulate-agents.ts +45 -45
- package/src/backend/tests/openai-prompt-cache.ts +68 -0
- package/src/backend/tests/promptfoo-runtime.spec.ts +41 -0
- package/src/backend/tests/promptfoo-runtime.ts +27 -0
- package/src/backend/tests/report-files.spec.ts +44 -0
- package/src/backend/tests/report-files.ts +120 -0
- package/src/backend/tests/router.ts +7 -1
- package/build/client/_app/immutable/assets/0.Dz9hcoGY.css +0 -1
- package/build/client/_app/immutable/assets/0.Dz9hcoGY.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Dz9hcoGY.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.BX46PfEJ.css.br +0 -0
- package/build/client/_app/immutable/assets/10.BX46PfEJ.css.gz +0 -0
- package/build/client/_app/immutable/chunks/-g1l5aoS.js.br +0 -0
- package/build/client/_app/immutable/chunks/-g1l5aoS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/7E8m6dwk.js +0 -1
- package/build/client/_app/immutable/chunks/7E8m6dwk.js.br +0 -0
- package/build/client/_app/immutable/chunks/7E8m6dwk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/7qRqthsa.js +0 -1
- package/build/client/_app/immutable/chunks/7qRqthsa.js.br +0 -2
- package/build/client/_app/immutable/chunks/7qRqthsa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/AocOovHL.js.br +0 -0
- package/build/client/_app/immutable/chunks/AocOovHL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B0iEglSe.js +0 -1
- package/build/client/_app/immutable/chunks/B0iEglSe.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0iEglSe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BIpSIzUr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BIpSIzUr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BL8rPcmP.js +0 -1
- package/build/client/_app/immutable/chunks/BL8rPcmP.js.br +0 -0
- package/build/client/_app/immutable/chunks/BL8rPcmP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BM0jKynj.js.br +0 -0
- package/build/client/_app/immutable/chunks/BM0jKynj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BR5f5i_E.js +0 -1
- package/build/client/_app/immutable/chunks/BR5f5i_E.js.br +0 -0
- package/build/client/_app/immutable/chunks/BR5f5i_E.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BTvePR6r.js +0 -1
- package/build/client/_app/immutable/chunks/BTvePR6r.js.br +0 -2
- package/build/client/_app/immutable/chunks/BTvePR6r.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bcu62lFq.js +0 -1
- package/build/client/_app/immutable/chunks/Bcu62lFq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bcu62lFq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C-whEtKd.js.br +0 -2
- package/build/client/_app/immutable/chunks/C-whEtKd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1WqE8CP.js +0 -1
- package/build/client/_app/immutable/chunks/C1WqE8CP.js.br +0 -2
- package/build/client/_app/immutable/chunks/C1WqE8CP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4SnSfql.js +0 -1
- package/build/client/_app/immutable/chunks/C4SnSfql.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4SnSfql.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CSv1VDXg.js +0 -1
- package/build/client/_app/immutable/chunks/CSv1VDXg.js.br +0 -0
- package/build/client/_app/immutable/chunks/CSv1VDXg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXo2BVs0.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXo2BVs0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZLNSMhF.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZLNSMhF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cosugfe8.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cosugfe8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqxCTxvJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqxCTxvJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxLG58rb.js +0 -1
- package/build/client/_app/immutable/chunks/CxLG58rb.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxLG58rb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-puyTnN.js +0 -1
- package/build/client/_app/immutable/chunks/D-puyTnN.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-puyTnN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4obUD_s.js +0 -1
- package/build/client/_app/immutable/chunks/D4obUD_s.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4obUD_s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8e7SQh9.js +0 -1
- package/build/client/_app/immutable/chunks/D8e7SQh9.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8e7SQh9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNLcpWO_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNLcpWO_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTlGvFHe.js.br +0 -0
- package/build/client/_app/immutable/chunks/DTlGvFHe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYhTBLDc.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYhTBLDc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DlZKMmqG.js +0 -4
- package/build/client/_app/immutable/chunks/DlZKMmqG.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlZKMmqG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dv0gjm25.js +0 -1
- package/build/client/_app/immutable/chunks/Dv0gjm25.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dv0gjm25.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dv8m1cTI.js.br +0 -0
- package/build/client/_app/immutable/chunks/HJHYLHDn.js.br +0 -0
- package/build/client/_app/immutable/chunks/HJHYLHDn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HXxIsSOO.js.br +0 -0
- package/build/client/_app/immutable/chunks/HXxIsSOO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/UiXQyKcj.js.br +0 -0
- package/build/client/_app/immutable/chunks/UiXQyKcj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_yZg6Sf-.js +0 -2
- package/build/client/_app/immutable/chunks/_yZg6Sf-.js.br +0 -0
- package/build/client/_app/immutable/chunks/_yZg6Sf-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ks45gSgq.js +0 -1
- package/build/client/_app/immutable/chunks/ks45gSgq.js.br +0 -0
- package/build/client/_app/immutable/chunks/ks45gSgq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.qxHHRD2v.js +0 -2
- package/build/client/_app/immutable/entry/app.qxHHRD2v.js.br +0 -0
- package/build/client/_app/immutable/entry/app.qxHHRD2v.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CSxD7zE8.js +0 -1
- package/build/client/_app/immutable/entry/start.CSxD7zE8.js.br +0 -2
- package/build/client/_app/immutable/entry/start.CSxD7zE8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BiYgQci8.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BiYgQci8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CShtqUFK.js +0 -1
- package/build/client/_app/immutable/nodes/1.CShtqUFK.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CShtqUFK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.dE-XOJgk.js +0 -7
- package/build/client/_app/immutable/nodes/10.dE-XOJgk.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.dE-XOJgk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.Wmhj7gOy.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.Wmhj7gOy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.BwzZwCD0.js +0 -3
- package/build/client/_app/immutable/nodes/17.BwzZwCD0.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.BwzZwCD0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.BUMDuaQF.js +0 -11
- package/build/client/_app/immutable/nodes/18.BUMDuaQF.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.BUMDuaQF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DniQTiGZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DniQTiGZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BIO1e-qq.js +0 -1
- package/build/client/_app/immutable/nodes/3.BIO1e-qq.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BIO1e-qq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.BwfVTawo.js +0 -1
- package/build/client/_app/immutable/nodes/4.BwfVTawo.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BwfVTawo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DdodCQcX.js +0 -1
- package/build/client/_app/immutable/nodes/5.DdodCQcX.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DdodCQcX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.EIjYVI_W.js +0 -1
- package/build/client/_app/immutable/nodes/6.EIjYVI_W.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.EIjYVI_W.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.2oZsfzo8.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.2oZsfzo8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CjWG6Ha9.js +0 -2
- package/build/client/_app/immutable/nodes/9.CjWG6Ha9.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CjWG6Ha9.js.gz +0 -0
- package/build/server/chunks/0-S8VzkGgQ.js +0 -9
- package/build/server/chunks/0-S8VzkGgQ.js.map +0 -1
- package/build/server/chunks/1-BQkMpHdq.js +0 -9
- package/build/server/chunks/10-D1k3_nkw.js +0 -9
- package/build/server/chunks/10-D1k3_nkw.js.map +0 -1
- package/build/server/chunks/17-B72NO3Iu.js +0 -9
- package/build/server/chunks/17-B72NO3Iu.js.map +0 -1
- package/build/server/chunks/18-4kgQqgz-.js +0 -9
- package/build/server/chunks/18-4kgQqgz-.js.map +0 -1
- package/build/server/chunks/2-DO8jW3Pl.js +0 -9
- package/build/server/chunks/2-DO8jW3Pl.js.map +0 -1
- package/build/server/chunks/3-0_f3eZZi.js +0 -9
- package/build/server/chunks/3-0_f3eZZi.js.map +0 -1
- package/build/server/chunks/4-UxjRsyDW.js +0 -9
- package/build/server/chunks/4-UxjRsyDW.js.map +0 -1
- package/build/server/chunks/5-C7KuaSU9.js +0 -9
- package/build/server/chunks/6-C6EG0SXo.js +0 -9
- package/build/server/chunks/6-C6EG0SXo.js.map +0 -1
- package/build/server/chunks/8-BTSvDZhI.js +0 -9
- package/build/server/chunks/8-BTSvDZhI.js.map +0 -1
- package/build/server/chunks/9-CepnUatA.js +0 -9
- package/build/server/chunks/9-CepnUatA.js.map +0 -1
- package/build/server/chunks/AgentSidebar-XdGj1sqT.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-DnvGtFpb.js.map +0 -1
- package/build/server/chunks/_layout.svelte-C5Y9nSXi.js.map +0 -1
- package/build/server/chunks/_layout.svelte-C7JgNCIu.js.map +0 -1
- package/build/server/chunks/_layout.svelte-_oqm8kmr.js.map +0 -1
- package/build/server/chunks/_page.svelte-CEhhEdMi.js.map +0 -1
- package/build/server/chunks/_page.svelte-DDpBtd3X.js.map +0 -1
- package/build/server/chunks/_page.svelte-DOhPbizt.js.map +0 -1
- package/build/server/chunks/_page.svelte-QlYvVgTj.js.map +0 -1
- package/build/server/chunks/_page.svelte-bkzbqII3.js.map +0 -1
- package/build/server/chunks/client-DzvEkq51.js.map +0 -1
- package/build/server/chunks/source-selection-eA--VEKo.js +0 -124
- package/build/server/chunks/source-selection-eA--VEKo.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSidebar-DvIlda-E.js","sources":["../../../.svelte-kit/adapter-node/chunks/AgentSidebar.js"],"sourcesContent":["import { i as attributes, g as clsx, f as derived, b as attr_class, d as attr, a as ensure_array_like, c as attr_style, e as escape_html } from \"./index.js\";\nimport { w as writable, g as get } from \"./index3.js\";\nimport { I as Icon } from \"./Icon.js\";\nconst PALETTE = [\n \"#FB60DF\",\n \"#EAFF6D\",\n \"#65E3FF\",\n \"#FF8165\",\n \"#826DFF\",\n \"#FF8C3F\",\n \"#1269FF\",\n \"#FFA812\",\n \"#60FB7C\",\n \"#3FB2FF\"\n];\nfunction load() {\n try {\n if (typeof sessionStorage === \"undefined\") return {};\n const raw = sessionStorage.getItem(\"agentColors\");\n return raw ? JSON.parse(raw) : {};\n } catch {\n return {};\n }\n}\nconst agentColorsStore = writable(load());\nagentColorsStore.subscribe((m) => {\n try {\n if (typeof sessionStorage !== \"undefined\") {\n sessionStorage.setItem(\"agentColors\", JSON.stringify(m));\n }\n } catch {\n }\n});\nfunction colorForAgent(agent) {\n const map = get(agentColorsStore);\n if (map[agent]) return map[agent];\n const used = new Set(Object.values(map));\n const available = PALETTE.filter((c) => !used.has(c));\n const pick = available.length > 0 ? available[Math.floor(Math.random() * available.length)] : PALETTE[Math.floor(Math.random() * PALETTE.length)];\n agentColorsStore.set({ ...map, [agent]: pick });\n return pick;\n}\nfunction Link($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n href = \"\",\n variant = \"default\",\n children,\n class: className = \"\",\n target: targetProp,\n rel: relProp,\n $$slots,\n $$events,\n ...rest\n } = $$props;\n const linkClasses = derived(() => `link ${className}`.trim());\n const isExternal = derived(() => variant === \"external\");\n const target = derived(() => targetProp ?? (isExternal() ? \"_blank\" : void 0));\n const rel = derived(() => relProp ?? (target() === \"_blank\" ? \"noopener noreferrer\" : void 0));\n $$renderer2.push(`<a${attributes(\n {\n href,\n class: clsx(linkClasses()),\n target: target(),\n rel: rel(),\n ...rest\n },\n \"svelte-1jt144g\"\n )}>`);\n children($$renderer2);\n $$renderer2.push(`<!----></a>`);\n });\n}\nfunction AgentSidebar($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n agents = [],\n currentAgent,\n onSelect,\n onToggle,\n className = \"\",\n showAgents = true,\n onAgentClick,\n onCreateAgent,\n showAllAgentsOption = false,\n onAllAgentsClick,\n initiallyCollapsed = true,\n hoverCollapse = true\n } = $$props;\n function getInitial(displayName) {\n const first = displayName.trim().charAt(0);\n return first ? first.toUpperCase() : \"?\";\n }\n const hasAgents = derived(() => showAgents && agents.length > 0);\n const activeInitialsStyle = \"background-color: var(--agent-color); color: black;\";\n const isAllAgentsActive = derived(() => showAllAgentsOption && !currentAgent);\n $$renderer2.push(`<div${attr_class(`sidebar border-r border-r-gray-700/50 ${\"sidebar--collapsed w-16\"} ${className}`, \"svelte-ubnu4b\")}><div class=\"relative top-2 flex h-14 items-center gap-5 py-4 pl-5 pr-3\">`);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <button class=\"toggle-btn svelte-ubnu4b\"${attr(\"title\", \"Expand sidebar\")}${attr(\"aria-expanded\", false)}${attr(\"aria-label\", \"Expand sidebar\")}><span class=\"toggle-btn__front svelte-ubnu4b\">`);\n {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<img src=\"/recombine.svg\" alt=\"Recombine Logo\" class=\"size-6\" width=\"24\" height=\"24\" decoding=\"async\" loading=\"eager\"/>`);\n }\n $$renderer2.push(`<!--]--></span> <span class=\"toggle-btn__back svelte-ubnu4b\" aria-hidden=\"true\">`);\n Icon($$renderer2, { name: \"chevron-right\", width: 24, height: 24 });\n $$renderer2.push(`<!----></span></button></div> <div class=\"mt-3 min-h-0 flex-1 overflow-y-auto overflow-x-hidden\">`);\n if (hasAgents()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(`flex flex-col`, \"svelte-ubnu4b\")}><!--[-->`);\n const each_array = ensure_array_like(agents);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let agent = each_array[$$index];\n const isActive = agent.id === currentAgent;\n $$renderer2.push(`<button class=\"agent-item svelte-ubnu4b\"${attr(\"title\", agent.displayName)}${attr(\"aria-current\", isActive ? \"page\" : void 0)}${attr_style(`--agent-color: ${colorForAgent(agent.id)}`)}><div class=\"agent-initials svelte-ubnu4b\"${attr_style(isActive ? activeInitialsStyle : void 0)}${attr(\"title\", agent.displayName)}>${escape_html(getInitial(agent.displayName))}</div> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></button>`);\n }\n $$renderer2.push(`<!--]--> `);\n if (showAllAgentsOption) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<button class=\"agent-item svelte-ubnu4b\" title=\"All agents\" aria-label=\"All agents\"${attr(\"aria-current\", isAllAgentsActive() ? \"page\" : void 0)}><span class=\"agent-initials svelte-ubnu4b\" aria-hidden=\"true\"${attr_style(isAllAgentsActive() ? activeInitialsStyle : void 0)}>*</span></button>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (onCreateAgent) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<button class=\"agent-item new-agent svelte-ubnu4b\" title=\"New Agent\" aria-label=\"Create new agent\">`);\n {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"agent-initials new-agent__initial w-full svelte-ubnu4b\"></div>`);\n }\n $$renderer2.push(`<!--]--></button>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div${attr_class(clsx(\"px-1 py-2\"))}></div>`);\n }\n $$renderer2.push(`<!--]--></div> <footer${attr_class(`sidebar__footer ${\"hidden\"}`, \"svelte-ubnu4b\")}><div class=\"footer-links svelte-ubnu4b\">`);\n Link($$renderer2, {\n variant: \"external\",\n href: \"https://recombine.ai/policy.html\",\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Privacy Policy`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Link($$renderer2, {\n variant: \"external\",\n href: \"https://recombine.ai/terms.html\",\n children: ($$renderer3) => {\n $$renderer3.push(`<!---->Terms and Conditions`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div> <div class=\"footer-links svelte-ubnu4b\"><p class=\"svelte-ubnu4b\">@ Recombine 2025</p> <p class=\"svelte-ubnu4b\">London, UK</p> <p class=\"svelte-ubnu4b\">Budva, Montenegro</p></div></footer></div>`);\n });\n}\nexport {\n AgentSidebar as A,\n colorForAgent as c\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -117,12 +117,36 @@ function ChatApiCallTrace($$renderer, $$props) {
|
|
|
117
117
|
$$renderer2.subsume($$inner_renderer);
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
|
+
function isStepTrace(entry) {
|
|
121
|
+
return !("operationName" in entry) && !("eventName" in entry);
|
|
122
|
+
}
|
|
123
|
+
function isMainStepTrace(entry) {
|
|
124
|
+
return isStepTrace(entry) && (entry.name === "main" || entry.name === "mainReply");
|
|
125
|
+
}
|
|
126
|
+
function findMainStepTraceNear(entries, index, options = {}) {
|
|
127
|
+
if (index < 0) return null;
|
|
128
|
+
const matches = (entry) => {
|
|
129
|
+
if (!isMainStepTrace(entry)) return false;
|
|
130
|
+
if (!options.requireRenderedPrompt) return true;
|
|
131
|
+
return typeof entry.renderedPrompt === "string" && entry.renderedPrompt.trim().length > 0;
|
|
132
|
+
};
|
|
133
|
+
return [...entries.slice(0, index)].reverse().find(matches) ?? entries.slice(index + 1).find(matches) ?? null;
|
|
134
|
+
}
|
|
135
|
+
function findStringifiedConversationBefore(entries, index) {
|
|
136
|
+
if (index <= 0) return null;
|
|
137
|
+
return [...entries.slice(0, index)].reverse().map((entry) => isStepTrace(entry) ? entry.stringifiedConversation?.trim() : "").find(Boolean) ?? null;
|
|
138
|
+
}
|
|
120
139
|
function ChatConversationalTrace($$renderer, $$props) {
|
|
121
140
|
$$renderer.component(($$renderer2) => {
|
|
122
141
|
let {
|
|
123
142
|
trace,
|
|
124
143
|
context,
|
|
125
144
|
agentId,
|
|
145
|
+
region = null,
|
|
146
|
+
allowAddTest = true,
|
|
147
|
+
testSourceStep = void 0,
|
|
148
|
+
testFallbackConversation = null,
|
|
149
|
+
requireTestSourceStep = false,
|
|
126
150
|
analyzeDisabled = false,
|
|
127
151
|
onAnalyze,
|
|
128
152
|
onRegenerate,
|
|
@@ -133,6 +157,7 @@ function ChatConversationalTrace($$renderer, $$props) {
|
|
|
133
157
|
onSelectInVariantMode,
|
|
134
158
|
suppressActionRow = false
|
|
135
159
|
} = $$props;
|
|
160
|
+
let added = "idle";
|
|
136
161
|
const clickGuard = createDragSelectClickGuard();
|
|
137
162
|
onDestroy(clickGuard.cleanup);
|
|
138
163
|
function agentName(id) {
|
|
@@ -172,8 +197,14 @@ function ChatConversationalTrace($$renderer, $$props) {
|
|
|
172
197
|
return `${hh}:${mm}:${ss}`;
|
|
173
198
|
}
|
|
174
199
|
const time = derived(() => formatHHmmss(trace?.createdAt));
|
|
200
|
+
function isAddTestCandidate() {
|
|
201
|
+
const responseIsEligible = allowAddTest && sender() === "agent" && trace.eventName !== "transfer-requested" && (trace.eventName === "finished-main-streaming-step" || trace.eventName === "sent-message");
|
|
202
|
+
if (!responseIsEligible) return false;
|
|
203
|
+
if (!requireTestSourceStep) return !!(agentId && agentId.trim());
|
|
204
|
+
return !!testSourceStep && typeof testSourceStep.receivedContext !== "undefined" && typeof testSourceStep.response === "string" && testSourceStep.response.trim().length > 0;
|
|
205
|
+
}
|
|
175
206
|
function isAddTestEligible() {
|
|
176
|
-
return
|
|
207
|
+
return isAddTestCandidate() && !!(agentId && agentId.trim());
|
|
177
208
|
}
|
|
178
209
|
function isAnalyzeEligible() {
|
|
179
210
|
return sender() === "agent" && trace.eventName !== "transfer-requested" && !!(agentId && agentId.trim()) && (trace.eventName === "finished-main-streaming-step" || trace.eventName === "sent-message");
|
|
@@ -228,13 +259,16 @@ function ChatConversationalTrace($$renderer, $$props) {
|
|
|
228
259
|
$$renderer3.push("<!--[-1-->");
|
|
229
260
|
}
|
|
230
261
|
$$renderer3.push(`<!--]--></div></div> `);
|
|
231
|
-
if (!suppressActionRow && (isAnalyzeEligible() ||
|
|
262
|
+
if (!suppressActionRow && (isAnalyzeEligible() || isAddTestCandidate() || isRegenerateEligible() && onRegenerate || showSeeVariants)) {
|
|
232
263
|
$$renderer3.push("<!--[0-->");
|
|
233
264
|
$$renderer3.push(`<div class="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1">`);
|
|
234
|
-
if (
|
|
265
|
+
if (isAddTestCandidate()) {
|
|
235
266
|
$$renderer3.push("<!--[0-->");
|
|
236
|
-
$$renderer3.push(`<button type="button"${attr_class(`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${"cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200"}`)}>`);
|
|
237
|
-
{
|
|
267
|
+
$$renderer3.push(`<button type="button"${attr("disabled", !isAddTestEligible() || added !== "idle", true)}${attr("title", !isAddTestEligible() ? "Select an agent in the sidebar before adding a test" : void 0)}${attr_class(`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${!isAddTestEligible() ? "cursor-default text-rc-gray-400" : "cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200"}`)}>`);
|
|
268
|
+
if (!isAddTestEligible()) {
|
|
269
|
+
$$renderer3.push("<!--[2-->");
|
|
270
|
+
$$renderer3.push(`Select agent to add test`);
|
|
271
|
+
} else {
|
|
238
272
|
$$renderer3.push("<!--[-1-->");
|
|
239
273
|
$$renderer3.push(`Add test`);
|
|
240
274
|
}
|
|
@@ -434,5 +468,5 @@ function ChatStepTrace($$renderer, $$props) {
|
|
|
434
468
|
});
|
|
435
469
|
}
|
|
436
470
|
|
|
437
|
-
export { ChatApiCallTrace as C, ChatConversationalTrace as a, ChatStepTrace as b };
|
|
438
|
-
//# sourceMappingURL=ChatStepTrace-
|
|
471
|
+
export { ChatApiCallTrace as C, ChatConversationalTrace as a, ChatStepTrace as b, findStringifiedConversationBefore as c, findMainStepTraceNear as f };
|
|
472
|
+
//# sourceMappingURL=ChatStepTrace-CqqIjRLU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatStepTrace-CqqIjRLU.js","sources":["../../../.svelte-kit/adapter-node/chunks/ChatStepTrace.js"],"sourcesContent":["import { e as escape_html, b as attr_class, g as clsx, f as derived, d as attr, s as stringify } from \"./index.js\";\nimport { o as onDestroy } from \"./index-server.js\";\n/* empty css */\n/* empty css */\nimport { I as Icon } from \"./Icon.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"./exports.js\";\nimport \"./utils2.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"./root.js\";\nimport \"./state.svelte.js\";\nimport \"./trpc-client.js\";\nfunction createDragSelectClickGuard(options = {}) {\n const thresholdPx = options.thresholdPx ?? 4;\n const dragCursor = options.dragCursor ?? \"text\";\n let startX = 0;\n let startY = 0;\n let didDrag = false;\n let pointerDown = false;\n let cursorEl = null;\n let abortController = null;\n function cleanup() {\n pointerDown = false;\n didDrag = false;\n cursorEl?.style.removeProperty(\"cursor\");\n cursorEl = null;\n abortController?.abort();\n abortController = null;\n }\n function onPointerDown(event) {\n if (typeof window === \"undefined\") return;\n if (event.button !== 0) return;\n abortController?.abort();\n abortController = null;\n cursorEl?.style.removeProperty(\"cursor\");\n startX = event.clientX;\n startY = event.clientY;\n didDrag = false;\n pointerDown = true;\n cursorEl = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;\n const controller = new AbortController();\n abortController = controller;\n const onMove = (moveEvent) => {\n if (!pointerDown || didDrag) return;\n const dx = Math.abs(moveEvent.clientX - startX);\n const dy = Math.abs(moveEvent.clientY - startY);\n if (dx + dy < thresholdPx) return;\n didDrag = true;\n cursorEl?.style.setProperty(\"cursor\", dragCursor);\n };\n const onEnd = () => {\n pointerDown = false;\n cursorEl?.style.removeProperty(\"cursor\");\n cursorEl = null;\n controller.abort();\n if (abortController === controller) abortController = null;\n };\n window.addEventListener(\"pointermove\", onMove, { signal: controller.signal });\n window.addEventListener(\"pointerup\", onEnd, { signal: controller.signal });\n window.addEventListener(\"pointercancel\", onEnd, { signal: controller.signal });\n }\n function shouldSuppressClick(event) {\n return event.detail > 0 && didDrag;\n }\n return { onPointerDown, shouldSuppressClick, cleanup };\n}\nfunction ChatApiCallTrace($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { trace } = $$props;\n const clickGuard = createDragSelectClickGuard();\n onDestroy(clickGuard.cleanup);\n function formatHHmmss(ms) {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) return null;\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return null;\n const hh = String(d.getHours()).padStart(2, \"0\");\n const mm = String(d.getMinutes()).padStart(2, \"0\");\n const ss = String(d.getSeconds()).padStart(2, \"0\");\n return `${hh}:${mm}:${ss}`;\n }\n const time = derived(() => formatHHmmss(trace.createdAt));\n const derivedError = derived(() => {\n if (trace.error != null) return trace.error;\n const isFailed = trace.ok === false || typeof trace.status === \"number\" && trace.status >= 400;\n if (!isFailed) return void 0;\n const resp = trace.response;\n if (resp && typeof resp === \"object\") {\n if (\"error\" in resp && resp.error != null) return resp.error;\n }\n return { status: trace.status, ok: trace.ok };\n });\n const hasError = derived(() => derivedError() != null);\n const oneLine = derived(() => trace.operationName);\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<button type=\"button\" class=\"flex w-full cursor-pointer select-text items-baseline gap-2 truncate rounded-md bg-transparent px-2 py-1 text-left text-sm text-rc-gray-200 hover:bg-rc-gray-800/40\">`);\n Icon($$renderer3, {\n name: hasError() ? \"close\" : \"checkmark\",\n width: 18,\n height: 18,\n class: hasError() ? \"self-center text-red-400\" : \"self-center text-rc-green-200\"\n });\n $$renderer3.push(`<!----> `);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-[13px] leading-none text-rc-gray-400\">${escape_html(time())}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <span${attr_class(clsx(hasError() ? \"text-red-200\" : \"\"))}>${escape_html(oneLine())}</span></button> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nfunction isStepTrace(entry) {\n return !(\"operationName\" in entry) && !(\"eventName\" in entry);\n}\nfunction isMainStepTrace(entry) {\n return isStepTrace(entry) && (entry.name === \"main\" || entry.name === \"mainReply\");\n}\nfunction findMainStepTraceNear(entries, index, options = {}) {\n if (index < 0) return null;\n const matches = (entry) => {\n if (!isMainStepTrace(entry)) return false;\n if (!options.requireRenderedPrompt) return true;\n return typeof entry.renderedPrompt === \"string\" && entry.renderedPrompt.trim().length > 0;\n };\n return [...entries.slice(0, index)].reverse().find(matches) ?? entries.slice(index + 1).find(matches) ?? null;\n}\nfunction findStringifiedConversationBefore(entries, index) {\n if (index <= 0) return null;\n return [...entries.slice(0, index)].reverse().map((entry) => isStepTrace(entry) ? entry.stringifiedConversation?.trim() : \"\").find(Boolean) ?? null;\n}\nfunction ChatConversationalTrace($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n trace,\n context,\n agentId,\n region = null,\n allowAddTest = true,\n testSourceStep = void 0,\n testFallbackConversation = null,\n requireTestSourceStep = false,\n analyzeDisabled = false,\n onAnalyze,\n onRegenerate,\n onRevert,\n showSeeVariants = false,\n onSeeVariants,\n variantSelectionState = \"none\",\n onSelectInVariantMode,\n suppressActionRow = false\n } = $$props;\n let added = \"idle\";\n const clickGuard = createDragSelectClickGuard();\n onDestroy(clickGuard.cleanup);\n function agentName(id) {\n if (!id) return \"\";\n return id.split(\"/\").at(-1) ?? id;\n }\n function getInitial(id) {\n const first = agentName(id).trim().charAt(0);\n return first ? first.toUpperCase() : \"?\";\n }\n const sender = derived(() => {\n if (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\") {\n return \"agent\";\n }\n if (trace.role === \"system\" || trace?.bosunInputMessageSender === \"system\") {\n return \"system\";\n }\n return trace.role === \"user\" ? \"user\" : \"user\";\n });\n const bubbleMaxWidthClass = derived(() => {\n if (sender() === \"agent\") return \"max-w-[83%]\";\n if (sender() === \"user\") return \"max-w-[90%] sm:max-w-[80%] md:max-w-[70%]\";\n if (sender() === \"system\") return \"max-w-[90%] sm:max-w-[85%] md:max-w-[75%]\";\n return \"\";\n });\n const showRevert = derived(() => (sender() === \"user\" || sender() === \"system\") && !!onRevert && // Hide for older traces that predate bosun state metadata.\n trace?.bosunPrevStateId !== void 0);\n const hasError = derived(() => trace.error != null);\n const isVariantSelectable = derived(() => variantSelectionState === \"source\");\n function formatHHmmss(ms) {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) return null;\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return null;\n const hh = String(d.getHours()).padStart(2, \"0\");\n const mm = String(d.getMinutes()).padStart(2, \"0\");\n const ss = String(d.getSeconds()).padStart(2, \"0\");\n return `${hh}:${mm}:${ss}`;\n }\n const time = derived(() => formatHHmmss(trace?.createdAt));\n function isAddTestCandidate() {\n const responseIsEligible = allowAddTest && sender() === \"agent\" && trace.eventName !== \"transfer-requested\" && (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\");\n if (!responseIsEligible) return false;\n if (!requireTestSourceStep) return !!(agentId && agentId.trim());\n return !!testSourceStep && typeof testSourceStep.receivedContext !== \"undefined\" && typeof testSourceStep.response === \"string\" && testSourceStep.response.trim().length > 0;\n }\n function isAddTestEligible() {\n return isAddTestCandidate() && !!(agentId && agentId.trim());\n }\n function isAnalyzeEligible() {\n return sender() === \"agent\" && trace.eventName !== \"transfer-requested\" && !!(agentId && agentId.trim()) && (trace.eventName === \"finished-main-streaming-step\" || trace.eventName === \"sent-message\");\n }\n function isRegenerateEligible() {\n return isAnalyzeEligible();\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div${attr_class(\"group mb-2 flex w-full items-start\", void 0, { \"justify-end\": sender() === \"user\" || sender() === \"system\" })}>`);\n if (trace.eventName === \"transfer-requested\" || trace.eventName === \"hangup-requested\") {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"flex w-full justify-center\"><div${attr_class(`cursor-pointer select-text rounded-full border border-rc-gray-650 bg-rc-gray-800/40 px-4 py-2 text-sm text-rc-gray-100 ${hasError() ? \"border-red-500 bg-red-950/30 text-red-200\" : \"\"}`)} role=\"button\" tabindex=\"0\"><div class=\"flex flex-wrap items-baseline gap-x-2 gap-y-0\">`);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-[13px] leading-none text-rc-gray-400\">${escape_html(time())}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (trace.eventName === \"transfer-requested\") {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"min-w-0 break-words\">Transfer requested: ${escape_html(trace.content)}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<div class=\"min-w-0 break-words\">Conversation hanged up.</div>`);\n }\n $$renderer3.push(`<!--]--></div></div></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n if (sender() === \"agent\" && agentId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mr-2 mt-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-sm bg-rc-green-700 text-sm uppercase text-rc-gray-100 backdrop-blur-md\"${attr(\"title\", agentName(agentId))}>${escape_html(getInitial(agentId))}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (showRevert()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" title=\"Edit this message\" class=\"mr-2 mt-1 shrink-0 self-start rounded p-1 text-rc-gray-500 opacity-80 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none\">`);\n Icon($$renderer3, { name: \"undo\", width: 16, height: 16 });\n $$renderer3.push(`<!----></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <div${attr_class(`min-w-0 ${stringify(bubbleMaxWidthClass())}`)}><div role=\"button\" tabindex=\"0\" class=\"cursor-pointer select-text\"><div${attr_class(`rounded-lg ${sender() === \"system\" ? \"justify-between whitespace-pre-line break-words border border-emerald-500 text-emerald-500\" : isVariantSelectable() ? \"w-full whitespace-pre-line break-words border border-rc-green-450 bg-transparent backdrop-blur-md hover:bg-rc-green-700\" : sender() !== \"user\" ? \"w-full whitespace-pre-line break-words bg-rc-green-700 backdrop-blur-md\" : \"whitespace-pre-line break-words bg-rc-gray-700\"} ${sender() === \"system\" || isVariantSelectable() ? \"\" : \"border-thin border-rc-gray-110\"} p-2 pt-1 text-rc-gray-100 ${hasError() ? \"border-red-500 bg-red-950/30 text-red-200\" : \"\"}`)}><div>${escape_html(trace.content)}</div> `);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-1 text-right text-xs text-rc-gray-200/70\">${escape_html(time())}</div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div></div> `);\n if (!suppressActionRow && (isAnalyzeEligible() || isAddTestCandidate() || isRegenerateEligible() && onRegenerate || showSeeVariants)) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1\">`);\n if (isAddTestCandidate()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\"${attr(\"disabled\", !isAddTestEligible() || added !== \"idle\", true)}${attr(\"title\", !isAddTestEligible() ? \"Select an agent in the sidebar before adding a test\" : void 0)}${attr_class(`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${!isAddTestEligible() ? \"cursor-default text-rc-gray-400\" : \"cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200\"}`)}>`);\n if (!isAddTestEligible()) {\n $$renderer3.push(\"<!--[2-->\");\n $$renderer3.push(`Select agent to add test`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`Add test`);\n }\n $$renderer3.push(`<!--]--></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (isAnalyzeEligible() && onAnalyze) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\"${attr(\"disabled\", analyzeDisabled, true)} class=\"inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400\">Analyze</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (isRegenerateEligible() && onRegenerate) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" class=\"inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none\">Regenerate</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (showSeeVariants && onSeeVariants) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" class=\"inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none\">See variants</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]--></div> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nfunction ChatStepTrace($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { trace, compareTrace } = $$props;\n const clickGuard = createDragSelectClickGuard();\n onDestroy(clickGuard.cleanup);\n function getPromptForDiff(t) {\n if (!t) return null;\n if (typeof t.renderedPrompt === \"string\") return t.renderedPrompt;\n return null;\n }\n function commonPrefixLength(a, b) {\n if (a === b) return a.length;\n const max = Math.min(a.length, b.length);\n for (let i = 0; i < max; i++) {\n if (a.charCodeAt(i) !== b.charCodeAt(i)) return i;\n }\n return max;\n }\n function similarityPercent(current, baseline) {\n const denom = Math.max(current.length, baseline.length);\n if (denom === 0) return 100;\n const prefixLen = commonPrefixLength(current, baseline);\n return Math.floor(prefixLen / denom * 100);\n }\n function cachedPromptTokensPercent(trace2) {\n const usage = trace2.llmUsage;\n if (!usage) return null;\n if (typeof usage.promptTokens !== \"number\" || !Number.isFinite(usage.promptTokens)) return null;\n if (usage.promptTokens <= 0) return null;\n if (typeof usage.cachedPromptTokens !== \"number\" || !Number.isFinite(usage.cachedPromptTokens)) return null;\n if (usage.cachedPromptTokens < 0) return null;\n return Math.max(0, Math.min(100, Math.floor(usage.cachedPromptTokens / usage.promptTokens * 100)));\n }\n function formatHHmmss(ms) {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) return null;\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return null;\n const hh = String(d.getHours()).padStart(2, \"0\");\n const mm = String(d.getMinutes()).padStart(2, \"0\");\n const ss = String(d.getSeconds()).padStart(2, \"0\");\n return `${hh}:${mm}:${ss}`;\n }\n const time = derived(() => formatHHmmss(trace.createdAt));\n const hasError = derived(() => trace.error != null);\n const oneLine = derived(() => trace.name);\n const mainPromptSimilarityPct = derived(() => {\n if (trace.name !== \"main\") return null;\n const current = getPromptForDiff(trace);\n const baseline = getPromptForDiff(compareTrace);\n if (current == null || baseline == null) return null;\n return similarityPercent(current, baseline);\n });\n const mainCachedTokensPct = derived(() => {\n if (trace.name !== \"main\") return null;\n return cachedPromptTokensPercent(trace);\n });\n const CACHE_OK_THRESHOLD_PCT = 90;\n const CACHE_MISS_SIMILARITY_THRESHOLD_PCT = 90;\n const BREAK_TAG_REGEX = /<break\\b[^>]*\\/?>/i;\n const BREAK_TAG_TOOLTIP = '<break /> tag disables streaming and increases latency. If pauses are not large enough, use \"...\" instead.';\n function hasBreakTag(value) {\n return typeof value === \"string\" && BREAK_TAG_REGEX.test(value);\n }\n const mainPromptCacheLabel = derived(() => {\n if (trace.name !== \"main\") return null;\n if (mainCachedTokensPct() != null) {\n const cacheMiss = mainCachedTokensPct() === 0 && mainPromptSimilarityPct() != null && mainPromptSimilarityPct() >= CACHE_MISS_SIMILARITY_THRESHOLD_PCT;\n if (cacheMiss) {\n return {\n text: \"0% tokens cached. Cache miss\",\n className: \"text-red-200\"\n };\n }\n const ok = mainCachedTokensPct() >= CACHE_OK_THRESHOLD_PCT;\n return ok ? {\n text: `${mainCachedTokensPct()}% tokens cached`,\n className: \"text-rc-gray-400\"\n } : {\n text: `${mainCachedTokensPct()}% tokens cached - move dynamic parts of prompt to the bottom`,\n className: \"text-red-200\"\n };\n }\n if (mainPromptSimilarityPct() != null) {\n const ok = mainPromptSimilarityPct() >= CACHE_OK_THRESHOLD_PCT;\n return ok ? {\n text: `${mainPromptSimilarityPct()}%`,\n className: \"text-rc-gray-400\"\n } : {\n text: `${mainPromptSimilarityPct()}% cached - move dynamic parts of prompt to the bottom`,\n className: \"text-red-200\"\n };\n }\n return null;\n });\n const breakTagLabel = derived(() => {\n if (!hasBreakTag(trace.response)) return null;\n return {\n text: \"LLM output has <break /> tags\",\n className: \"text-red-200\"\n };\n });\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div class=\"flex w-full select-text items-baseline gap-2 truncate rounded-md bg-transparent px-2 py-1 text-left text-sm text-rc-gray-200 hover:bg-rc-gray-800/40\"><button type=\"button\" class=\"flex min-w-0 cursor-pointer items-baseline gap-2 truncate bg-transparent p-0 text-left text-sm text-rc-gray-200\">`);\n Icon($$renderer3, {\n name: hasError() ? \"close\" : \"checkmark\",\n width: 18,\n height: 18,\n class: hasError() ? \"self-center text-red-400\" : \"self-center text-rc-green-200\"\n });\n $$renderer3.push(`<!----> `);\n if (time()) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-[13px] leading-none text-rc-gray-400\">${escape_html(time())}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <span${attr_class(clsx(hasError() ? \"text-red-200\" : \"\"))}>AI: ${escape_html(oneLine())}</span></button> `);\n if (mainPromptCacheLabel() != null) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span${attr_class(`shrink-0 text-xs ${mainPromptCacheLabel().className}`)}><span class=\"cursor-pointer\" title=\"Show prompt-cache calc\">${escape_html(mainPromptCacheLabel().text)}</span></span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (breakTagLabel() != null) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span${attr_class(`shrink-0 text-xs ${breakTagLabel().className}`)}${attr(\"title\", BREAK_TAG_TOOLTIP)}>${escape_html(breakTagLabel().text)}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n ChatApiCallTrace as C,\n ChatConversationalTrace as a,\n ChatStepTrace as b,\n findStringifiedConversationBefore as c,\n findMainStepTraceNear as f\n};\n"],"names":[],"mappings":";;;;;;;AAYA,SAAS,0BAA0B,CAAC,OAAO,GAAG,EAAE,EAAE;AAClD,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;AAC9C,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM;AACjD,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,KAAK;AACrB,EAAE,IAAI,WAAW,GAAG,KAAK;AACzB,EAAE,IAAI,QAAQ,GAAG,IAAI;AACrB,EAAE,IAAI,eAAe,GAAG,IAAI;AAC5B,EAAE,SAAS,OAAO,GAAG;AACrB,IAAI,WAAW,GAAG,KAAK;AACvB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC5C,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,eAAe,EAAE,KAAK,EAAE;AAC5B,IAAI,eAAe,GAAG,IAAI;AAC1B,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,IAAI,eAAe,EAAE,KAAK,EAAE;AAC5B,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC5C,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO;AAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO;AAC1B,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,QAAQ,GAAG,KAAK,CAAC,aAAa,YAAY,WAAW,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI;AACtF,IAAI,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAC5C,IAAI,eAAe,GAAG,UAAU;AAChC,IAAI,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK;AAClC,MAAM,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AACnC,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;AACrD,MAAM,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE;AACjC,MAAM,OAAO,GAAG,IAAI;AACpB,MAAM,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC;AACvD,IAAI,CAAC;AACL,IAAI,MAAM,KAAK,GAAG,MAAM;AACxB,MAAM,WAAW,GAAG,KAAK;AACzB,MAAM,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC9C,MAAM,QAAQ,GAAG,IAAI;AACrB,MAAM,UAAU,CAAC,KAAK,EAAE;AACxB,MAAM,IAAI,eAAe,KAAK,UAAU,EAAE,eAAe,GAAG,IAAI;AAChE,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AACjF,IAAI,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAC9E,IAAI,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAClF,EAAE;AACF,EAAE,SAAS,mBAAmB,CAAC,KAAK,EAAE;AACtC,IAAI,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO;AACtC,EAAE;AACF,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,EAAE;AACxD;AACA,SAAS,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE;AAC/C,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;AAC3B,IAAI,MAAM,UAAU,GAAG,0BAA0B,EAAE;AACnD,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;AACjC,IAAI,SAAS,YAAY,CAAC,EAAE,EAAE;AAC9B,MAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;AACrE,MAAM,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;AAC5B,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI;AAChD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACtD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACxD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACxD,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7D,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;AACvC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC,KAAK;AACjD,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;AACpG,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,MAAM;AAClC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ;AACjC,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5C,QAAQ,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK;AACpE,MAAM;AACN,MAAM,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;AACnD,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,YAAY,EAAE,IAAI,IAAI,CAAC;AAC1D,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC;AACtD,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,gBAAgB;AACxB,IAAI,SAAS,cAAc,CAAC,WAAW,EAAE;AACzC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,kMAAkM,CAAC,CAAC;AAC5N,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,QAAQ,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,WAAW;AAChD,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,KAAK,EAAE,QAAQ,EAAE,GAAG,0BAA0B,GAAG;AACzD,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,IAAI,IAAI,EAAE,EAAE;AAClB,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,wDAAwD,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACjH,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxI,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI;AACJ,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,IAAI;AACtB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE;AAC3C,MAAM,cAAc,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,QAAQ,CAAC,SAAS;AACvB,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACzC,EAAE,CAAC,CAAC;AACJ;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC;AAC/D;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AACpF;AACA,SAAS,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE;AAC7D,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI;AAC5B,EAAE,MAAM,OAAO,GAAG,CAAC,KAAK,KAAK;AAC7B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;AAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,IAAI;AACnD,IAAI,OAAO,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAC7F,EAAE,CAAC;AACH,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AAC/G;AACA,SAAS,iCAAiC,CAAC,OAAO,EAAE,KAAK,EAAE;AAC3D,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,IAAI;AAC7B,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,uBAAuB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AACrJ;AACA,SAAS,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE;AACtD,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI;AACR,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,MAAM,GAAG,IAAI;AACnB,MAAM,YAAY,GAAG,IAAI;AACzB,MAAM,cAAc,GAAG,MAAM;AAC7B,MAAM,wBAAwB,GAAG,IAAI;AACrC,MAAM,qBAAqB,GAAG,KAAK;AACnC,MAAM,eAAe,GAAG,KAAK;AAC7B,MAAM,SAAS;AACf,MAAM,YAAY;AAClB,MAAM,QAAQ;AACd,MAAM,eAAe,GAAG,KAAK;AAC7B,MAAM,aAAa;AACnB,MAAM,qBAAqB,GAAG,MAAM;AACpC,MAAM,qBAAqB;AAC3B,MAAM,iBAAiB,GAAG;AAC1B,KAAK,GAAG,OAAO;AACf,IAAI,IAAI,KAAK,GAAG,MAAM;AACtB,IAAI,MAAM,UAAU,GAAG,0BAA0B,EAAE;AACnD,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;AACjC,IAAI,SAAS,SAAS,CAAC,EAAE,EAAE;AAC3B,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;AACxB,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE;AACvC,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,EAAE,EAAE;AAC5B,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,MAAM,OAAO,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,GAAG;AAC9C,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;AACjC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,8BAA8B,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,EAAE;AACpG,QAAQ,OAAO,OAAO;AACtB,MAAM;AACN,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,EAAE,uBAAuB,KAAK,QAAQ,EAAE;AAClF,QAAQ,OAAO,QAAQ;AACvB,MAAM;AACN,MAAM,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM;AACpD,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM;AAC9C,MAAM,IAAI,MAAM,EAAE,KAAK,OAAO,EAAE,OAAO,aAAa;AACpD,MAAM,IAAI,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,2CAA2C;AACjF,MAAM,IAAI,MAAM,EAAE,KAAK,QAAQ,EAAE,OAAO,2CAA2C;AACnF,MAAM,OAAO,EAAE;AACf,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,MAAM,IAAI,MAAM,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,QAAQ;AACjG,IAAI,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;AACvD,IAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,qBAAqB,KAAK,QAAQ,CAAC;AACjF,IAAI,SAAS,YAAY,CAAC,EAAE,EAAE;AAC9B,MAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;AACrE,MAAM,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;AAC5B,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI;AAChD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACtD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACxD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACxD,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC9D,IAAI,SAAS,kBAAkB,GAAG;AAClC,MAAM,MAAM,kBAAkB,GAAG,YAAY,IAAI,MAAM,EAAE,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,KAAK,KAAK,CAAC,SAAS,KAAK,8BAA8B,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC;AAC/M,MAAM,IAAI,CAAC,kBAAkB,EAAE,OAAO,KAAK;AAC3C,MAAM,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AACtE,MAAM,OAAO,CAAC,CAAC,cAAc,IAAI,OAAO,cAAc,CAAC,eAAe,KAAK,WAAW,IAAI,OAAO,cAAc,CAAC,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAClL,IAAI;AACJ,IAAI,SAAS,iBAAiB,GAAG;AACjC,MAAM,OAAO,kBAAkB,EAAE,IAAI,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AAClE,IAAI;AACJ,IAAI,SAAS,iBAAiB,GAAG;AACjC,MAAM,OAAO,MAAM,EAAE,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,IAAI,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,KAAK,8BAA8B,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC;AAC5M,IAAI;AACJ,IAAI,SAAS,oBAAoB,GAAG;AACpC,MAAM,OAAO,iBAAiB,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,gBAAgB;AACxB,IAAI,SAAS,cAAc,CAAC,WAAW,EAAE;AACzC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,oCAAoC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,MAAM,IAAI,MAAM,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3J,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,EAAE;AAC9F,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,4CAA4C,EAAE,UAAU,CAAC,CAAC,uHAAuH,EAAE,QAAQ,EAAE,GAAG,2CAA2C,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC;AACvW,QAAQ,IAAI,IAAI,EAAE,EAAE;AACpB,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,wDAAwD,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACnH,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACrC,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,EAAE;AACtD,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,qDAAqD,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AACtH,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,8DAA8D,CAAC,CAAC;AAC5F,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,QAAQ,IAAI,MAAM,EAAE,KAAK,OAAO,IAAI,OAAO,EAAE;AAC7C,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,uJAAuJ,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACnQ,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACrC,QAAQ,IAAI,UAAU,EAAE,EAAE;AAC1B,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,0OAA0O,CAAC,CAAC;AACxQ,UAAU,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACpE,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,wEAAwE,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,QAAQ,GAAG,4FAA4F,GAAG,mBAAmB,EAAE,GAAG,yHAAyH,GAAG,MAAM,EAAE,KAAK,MAAM,GAAG,yEAAyE,GAAG,gDAAgD,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,QAAQ,IAAI,mBAAmB,EAAE,GAAG,EAAE,GAAG,gCAAgC,CAAC,2BAA2B,EAAE,QAAQ,EAAE,GAAG,2CAA2C,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AACx0B,QAAQ,IAAI,IAAI,EAAE,EAAE;AACpB,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,yDAAyD,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AACnH,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,EAAE,IAAI,kBAAkB,EAAE,IAAI,oBAAoB,EAAE,IAAI,YAAY,IAAI,eAAe,CAAC,EAAE;AAC9I,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,8DAA8D,CAAC,CAAC;AAC5F,UAAU,IAAI,kBAAkB,EAAE,EAAE;AACpC,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,IAAI,KAAK,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,EAAE,GAAG,qDAAqD,GAAG,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,iJAAiJ,EAAE,CAAC,iBAAiB,EAAE,GAAG,iCAAiC,GAAG,6EAA6E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7gB,YAAY,IAAI,CAAC,iBAAiB,EAAE,EAAE;AACtC,cAAc,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC1D,YAAY,CAAC,MAAM;AACnB,cAAc,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5C,cAAc,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAY;AACZ,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACjD,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACvC,UAAU,IAAI,iBAAiB,EAAE,IAAI,SAAS,EAAE;AAChD,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,qVAAqV,CAAC,CAAC;AACpb,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACvC,UAAU,IAAI,oBAAoB,EAAE,IAAI,YAAY,EAAE;AACtD,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,+PAA+P,CAAC,CAAC;AAC/R,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACvC,UAAU,IAAI,eAAe,IAAI,aAAa,EAAE;AAChD,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,iQAAiQ,CAAC,CAAC;AACjS,UAAU,CAAC,MAAM;AACjB,YAAY,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,UAAU;AACV,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5C,QAAQ,CAAC,MAAM;AACf,UAAU,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAQ;AACR,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAC1C,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACzC,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI;AACJ,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,IAAI;AACtB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE;AAC3C,MAAM,cAAc,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,QAAQ,CAAC,SAAS;AACvB,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACzC,EAAE,CAAC,CAAC;AACJ;AACA,SAAS,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5C,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO;AACzC,IAAI,MAAM,UAAU,GAAG,0BAA0B,EAAE;AACnD,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;AACjC,IAAI,SAAS,gBAAgB,CAAC,CAAC,EAAE;AACjC,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI;AACzB,MAAM,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,EAAE,OAAO,CAAC,CAAC,cAAc;AACvE,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,SAAS,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM;AAClC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;AAC9C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACzD,MAAM;AACN,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,IAAI,SAAS,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE;AAClD,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC7D,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,GAAG;AACjC,MAAM,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC7D,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;AAChD,IAAI;AACJ,IAAI,SAAS,yBAAyB,CAAC,MAAM,EAAE;AAC/C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ;AACnC,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AAC7B,MAAM,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,IAAI;AACrG,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,OAAO,IAAI;AAC9C,MAAM,IAAI,OAAO,KAAK,CAAC,kBAAkB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,OAAO,IAAI;AACjH,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAAE,OAAO,IAAI;AACnD,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;AACxG,IAAI;AACJ,IAAI,SAAS,YAAY,CAAC,EAAE,EAAE;AAC9B,MAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;AACrE,MAAM,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;AAC5B,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI;AAChD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACtD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACxD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACxD,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7D,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;AACvD,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC;AAC7C,IAAI,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM;AAClD,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI;AAC5C,MAAM,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC7C,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC;AACrD,MAAM,IAAI,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO,IAAI;AAC1D,MAAM,OAAO,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC;AACjD,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM;AAC9C,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI;AAC5C,MAAM,OAAO,yBAAyB,CAAC,KAAK,CAAC;AAC7C,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,sBAAsB,GAAG,EAAE;AACrC,IAAI,MAAM,mCAAmC,GAAG,EAAE;AAClD,IAAI,MAAM,eAAe,GAAG,oBAAoB;AAChD,IAAI,MAAM,iBAAiB,GAAG,4GAA4G;AAC1I,IAAI,SAAS,WAAW,CAAC,KAAK,EAAE;AAChC,MAAM,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AACrE,IAAI;AACJ,IAAI,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM;AAC/C,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI;AAC5C,MAAM,IAAI,mBAAmB,EAAE,IAAI,IAAI,EAAE;AACzC,QAAQ,MAAM,SAAS,GAAG,mBAAmB,EAAE,KAAK,CAAC,IAAI,uBAAuB,EAAE,IAAI,IAAI,IAAI,uBAAuB,EAAE,IAAI,mCAAmC;AAC9J,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,OAAO;AACjB,YAAY,IAAI,EAAE,8BAA8B;AAChD,YAAY,SAAS,EAAE;AACvB,WAAW;AACX,QAAQ;AACR,QAAQ,MAAM,EAAE,GAAG,mBAAmB,EAAE,IAAI,sBAAsB;AAClE,QAAQ,OAAO,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,eAAe,CAAC;AACzD,UAAU,SAAS,EAAE;AACrB,SAAS,GAAG;AACZ,UAAU,IAAI,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,4DAA4D,CAAC;AACtG,UAAU,SAAS,EAAE;AACrB,SAAS;AACT,MAAM;AACN,MAAM,IAAI,uBAAuB,EAAE,IAAI,IAAI,EAAE;AAC7C,QAAQ,MAAM,EAAE,GAAG,uBAAuB,EAAE,IAAI,sBAAsB;AACtE,QAAQ,OAAO,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;AAC/C,UAAU,SAAS,EAAE;AACrB,SAAS,GAAG;AACZ,UAAU,IAAI,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC,qDAAqD,CAAC;AACnG,UAAU,SAAS,EAAE;AACrB,SAAS;AACT,MAAM;AACN,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM;AACxC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI;AACnD,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,+BAA+B;AAC7C,QAAQ,SAAS,EAAE;AACnB,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,gBAAgB;AACxB,IAAI,SAAS,cAAc,CAAC,WAAW,EAAE;AACzC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gTAAgT,CAAC,CAAC;AAC1U,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,QAAQ,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAG,WAAW;AAChD,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,KAAK,EAAE,QAAQ,EAAE,GAAG,0BAA0B,GAAG;AACzD,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,IAAI,IAAI,EAAE,EAAE;AAClB,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,wDAAwD,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACjH,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC5I,MAAM,IAAI,oBAAoB,EAAE,IAAI,IAAI,EAAE;AAC1C,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,6DAA6D,EAAE,WAAW,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5N,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,IAAI,aAAa,EAAE,IAAI,IAAI,EAAE;AACnC,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9K,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACzC,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI;AACJ,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,IAAI;AACtB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE;AAC3C,MAAM,cAAc,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,QAAQ,CAAC,SAAS;AACvB,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACzC,EAAE,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
class MockGenerator {
|
|
2
|
+
poolSize = 120;
|
|
3
|
+
// ----- CONVERSATIONS -----
|
|
4
|
+
async fetchConversations(limit, phoneFilter, lastConversationId) {
|
|
5
|
+
await delay(150);
|
|
6
|
+
return this.generateConversations(limit, phoneFilter, lastConversationId);
|
|
7
|
+
}
|
|
8
|
+
generateConversations(limit, phoneFilter, lastConversationId) {
|
|
9
|
+
const now = Date.now();
|
|
10
|
+
const items = [];
|
|
11
|
+
for (let i = 0; i < this.poolSize; i++) {
|
|
12
|
+
const id = String(1e5 + i);
|
|
13
|
+
items.push({
|
|
14
|
+
conversationId: id,
|
|
15
|
+
medium: i % 2 === 0 ? "phone" : "whatsapp",
|
|
16
|
+
phoneNumber: `+44 7700 ${String(1e3 + i % 90).padStart(4, "0")}`,
|
|
17
|
+
duration: Math.floor(Math.random() * 600),
|
|
18
|
+
createdAt: now - i * 36e5
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
let filtered = items;
|
|
22
|
+
if (phoneFilter) {
|
|
23
|
+
const q = phoneFilter.replace(/\s+/g, "");
|
|
24
|
+
filtered = items.filter((it) => it.phoneNumber?.replace(/\s+/g, "").includes(q));
|
|
25
|
+
}
|
|
26
|
+
filtered.sort((a, b) => b.createdAt - a.createdAt);
|
|
27
|
+
if (lastConversationId) {
|
|
28
|
+
const idx = filtered.findIndex((it) => it.conversationId === lastConversationId);
|
|
29
|
+
if (idx >= 0) filtered = filtered.slice(idx + 1);
|
|
30
|
+
}
|
|
31
|
+
const pageItems = filtered.slice(0, limit);
|
|
32
|
+
const nextLastConversationId = pageItems.length ? pageItems[pageItems.length - 1].conversationId : void 0;
|
|
33
|
+
return { limit, items: pageItems, lastConversationId: nextLastConversationId };
|
|
34
|
+
}
|
|
35
|
+
// ----- MIXED TRACES -----
|
|
36
|
+
async fetchTraces(conversationId) {
|
|
37
|
+
await delay(150);
|
|
38
|
+
return { items: this.generateTraces(conversationId) };
|
|
39
|
+
}
|
|
40
|
+
generateTraces(conversationId) {
|
|
41
|
+
const rng = mulberry32(hashString(conversationId));
|
|
42
|
+
const count = Math.floor(rng() * 5) + 3;
|
|
43
|
+
const now = Date.now();
|
|
44
|
+
const traces = Array.from({ length: count }, (_, i) => {
|
|
45
|
+
const ts = now - (count - i) * 3e4;
|
|
46
|
+
const kind = i % 3;
|
|
47
|
+
if (kind === 0) {
|
|
48
|
+
return {
|
|
49
|
+
traceType: "CONVERSATIONAL",
|
|
50
|
+
traceId: `conv-${conversationId}-${i}`,
|
|
51
|
+
conversationId,
|
|
52
|
+
eventName: "received-message",
|
|
53
|
+
role: "user",
|
|
54
|
+
medium: "phone",
|
|
55
|
+
content: `Hello (${i})`,
|
|
56
|
+
createdAt: ts
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (kind === 1) {
|
|
60
|
+
return {
|
|
61
|
+
traceType: "API_CALL",
|
|
62
|
+
traceId: `api-${conversationId}-${i}`,
|
|
63
|
+
conversationId,
|
|
64
|
+
operationName: "getBooking",
|
|
65
|
+
method: "GET",
|
|
66
|
+
path: `/bookings/${conversationId}`,
|
|
67
|
+
createdAt: ts,
|
|
68
|
+
durationMs: Math.floor(rng() * 200) + 50,
|
|
69
|
+
status: 200,
|
|
70
|
+
ok: true
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
traceType: "STEP",
|
|
75
|
+
traceId: `step-${conversationId}-${i}`,
|
|
76
|
+
conversationId,
|
|
77
|
+
scopeId: `scope-${i}`,
|
|
78
|
+
workflowId: `workflow-${i}`,
|
|
79
|
+
workflowRunId: `run-${conversationId}-${i}`,
|
|
80
|
+
name: `main`,
|
|
81
|
+
renderedPrompt: `Rendered prompt for ${conversationId}/${i}`,
|
|
82
|
+
receivedContext: { foo: "bar" },
|
|
83
|
+
receivedPrompt: `User says #${i}`,
|
|
84
|
+
createdAt: ts,
|
|
85
|
+
stringifiedConversation: `user: hi
|
|
86
|
+
agent: ok (${i})`,
|
|
87
|
+
response: `response ${i}`,
|
|
88
|
+
model: "gpt-4"
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
traces.sort((a, b) => a.createdAt - b.createdAt);
|
|
92
|
+
return traces;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function delay(ms) {
|
|
96
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
97
|
+
}
|
|
98
|
+
function hashString(s) {
|
|
99
|
+
let h = 1779033703 ^ s.length;
|
|
100
|
+
for (let i = 0; i < s.length; i++) {
|
|
101
|
+
h = Math.imul(h ^ s.charCodeAt(i), 3432918353);
|
|
102
|
+
h = h << 13 | h >>> 19;
|
|
103
|
+
}
|
|
104
|
+
return h >>> 0;
|
|
105
|
+
}
|
|
106
|
+
function mulberry32(seed) {
|
|
107
|
+
return function() {
|
|
108
|
+
let t = seed += 1831565813;
|
|
109
|
+
t = Math.imul(t ^ t >>> 15, t | 1);
|
|
110
|
+
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
|
|
111
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const mockGenerator = new MockGenerator();
|
|
115
|
+
|
|
116
|
+
export { mockGenerator as m };
|
|
117
|
+
//# sourceMappingURL=MockGenerator-GEpXTgX0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockGenerator-GEpXTgX0.js","sources":["../../../.svelte-kit/adapter-node/chunks/MockGenerator.js"],"sourcesContent":["class MockGenerator {\n poolSize = 120;\n // ----- CONVERSATIONS -----\n async fetchConversations(limit, phoneFilter, lastConversationId) {\n await delay(150);\n return this.generateConversations(limit, phoneFilter, lastConversationId);\n }\n generateConversations(limit, phoneFilter, lastConversationId) {\n const now = Date.now();\n const items = [];\n for (let i = 0; i < this.poolSize; i++) {\n const id = String(1e5 + i);\n items.push({\n conversationId: id,\n medium: i % 2 === 0 ? \"phone\" : \"whatsapp\",\n phoneNumber: `+44 7700 ${String(1e3 + i % 90).padStart(4, \"0\")}`,\n duration: Math.floor(Math.random() * 600),\n createdAt: now - i * 36e5\n });\n }\n let filtered = items;\n if (phoneFilter) {\n const q = phoneFilter.replace(/\\s+/g, \"\");\n filtered = items.filter((it) => it.phoneNumber?.replace(/\\s+/g, \"\").includes(q));\n }\n filtered.sort((a, b) => b.createdAt - a.createdAt);\n if (lastConversationId) {\n const idx = filtered.findIndex((it) => it.conversationId === lastConversationId);\n if (idx >= 0) filtered = filtered.slice(idx + 1);\n }\n const pageItems = filtered.slice(0, limit);\n const nextLastConversationId = pageItems.length ? pageItems[pageItems.length - 1].conversationId : void 0;\n return { limit, items: pageItems, lastConversationId: nextLastConversationId };\n }\n // ----- MIXED TRACES -----\n async fetchTraces(conversationId) {\n await delay(150);\n return { items: this.generateTraces(conversationId) };\n }\n generateTraces(conversationId) {\n const rng = mulberry32(hashString(conversationId));\n const count = Math.floor(rng() * 5) + 3;\n const now = Date.now();\n const traces = Array.from({ length: count }, (_, i) => {\n const ts = now - (count - i) * 3e4;\n const kind = i % 3;\n if (kind === 0) {\n return {\n traceType: \"CONVERSATIONAL\",\n traceId: `conv-${conversationId}-${i}`,\n conversationId,\n eventName: \"received-message\",\n role: \"user\",\n medium: \"phone\",\n content: `Hello (${i})`,\n createdAt: ts\n };\n }\n if (kind === 1) {\n return {\n traceType: \"API_CALL\",\n traceId: `api-${conversationId}-${i}`,\n conversationId,\n operationName: \"getBooking\",\n method: \"GET\",\n path: `/bookings/${conversationId}`,\n createdAt: ts,\n durationMs: Math.floor(rng() * 200) + 50,\n status: 200,\n ok: true\n };\n }\n return {\n traceType: \"STEP\",\n traceId: `step-${conversationId}-${i}`,\n conversationId,\n scopeId: `scope-${i}`,\n workflowId: `workflow-${i}`,\n workflowRunId: `run-${conversationId}-${i}`,\n name: `main`,\n renderedPrompt: `Rendered prompt for ${conversationId}/${i}`,\n receivedContext: { foo: \"bar\" },\n receivedPrompt: `User says #${i}`,\n createdAt: ts,\n stringifiedConversation: `user: hi\nagent: ok (${i})`,\n response: `response ${i}`,\n model: \"gpt-4\"\n };\n });\n traces.sort((a, b) => a.createdAt - b.createdAt);\n return traces;\n }\n}\nfunction delay(ms) {\n return new Promise((r) => setTimeout(r, ms));\n}\nfunction hashString(s) {\n let h = 1779033703 ^ s.length;\n for (let i = 0; i < s.length; i++) {\n h = Math.imul(h ^ s.charCodeAt(i), 3432918353);\n h = h << 13 | h >>> 19;\n }\n return h >>> 0;\n}\nfunction mulberry32(seed) {\n return function() {\n let t = seed += 1831565813;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n };\n}\nconst mockGenerator = new MockGenerator();\nexport {\n mockGenerator as m\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ import { p as page, g as goto } from './index2-DO4B3D-P.js';
|
|
|
3
3
|
import { B as Button } from './Button-BLigKkGG.js';
|
|
4
4
|
import { I as Icon } from './Icon-CXFHkSIr.js';
|
|
5
5
|
import { I as Input } from './Input-OdQKNdS6.js';
|
|
6
|
-
import {
|
|
7
|
-
import { p as persistTelescopeSourceId } from './source-selection-
|
|
6
|
+
import { m as mockGenerator } from './MockGenerator-GEpXTgX0.js';
|
|
7
|
+
import { p as persistTelescopeSourceId, T as TelescopeClient } from './source-selection-CcN1cgXc.js';
|
|
8
8
|
import { T as Tabs, a as Tab } from './Tab-CD1H0E3P.js';
|
|
9
|
-
import { A as AgentSidebar } from './AgentSidebar-
|
|
9
|
+
import { A as AgentSidebar } from './AgentSidebar-DvIlda-E.js';
|
|
10
10
|
import { g as getAgentsContext } from './agents-context-rV2narXG.js';
|
|
11
11
|
import './trpc-client-D8L6vWf4.js';
|
|
12
12
|
import './state.svelte-DT7cgvTK.js';
|
|
@@ -25,6 +25,7 @@ function _layout($$renderer, $$props) {
|
|
|
25
25
|
let conversations = void 0;
|
|
26
26
|
let selectedConversation = null;
|
|
27
27
|
const currentAgent = derived(() => (page.url.searchParams.get("agent") ?? "").trim());
|
|
28
|
+
const currentRegion = derived(() => (page.url.searchParams.get("region") ?? "").trim());
|
|
28
29
|
let phoneQuery = "";
|
|
29
30
|
let pageSize = 20;
|
|
30
31
|
let pageSizeStr = "20";
|
|
@@ -46,9 +47,10 @@ function _layout($$renderer, $$props) {
|
|
|
46
47
|
const ss = sec % 60;
|
|
47
48
|
return `${mm}:${String(ss).padStart(2, "0")}`;
|
|
48
49
|
}
|
|
49
|
-
function buildAgentSearch(agentId = currentAgent()) {
|
|
50
|
+
function buildAgentSearch(agentId = currentAgent(), region = agentId === currentAgent() ? currentRegion() : "") {
|
|
50
51
|
const params = new URLSearchParams();
|
|
51
52
|
if (agentId) params.set("agent", agentId);
|
|
53
|
+
if (agentId && region) params.set("region", region);
|
|
52
54
|
const search = params.toString();
|
|
53
55
|
return search ? `?${search}` : "";
|
|
54
56
|
}
|
|
@@ -144,7 +146,11 @@ function _layout($$renderer, $$props) {
|
|
|
144
146
|
function handleTabChange({ value }) {
|
|
145
147
|
if (value === activeTopTab()) return;
|
|
146
148
|
if (value === "edit") {
|
|
147
|
-
|
|
149
|
+
if (!currentAgent()) return goto();
|
|
150
|
+
const params = new URLSearchParams();
|
|
151
|
+
if (currentRegion()) params.set("region", currentRegion());
|
|
152
|
+
const search = params.toString();
|
|
153
|
+
return goto(`/edit/${encodeURIComponent(currentAgent())}/roleplay${search ? `?${search}` : ""}`);
|
|
148
154
|
}
|
|
149
155
|
if (value === "view") return goto(buildConversationsUrl());
|
|
150
156
|
goto();
|
|
@@ -358,4 +364,4 @@ function _layout($$renderer, $$props) {
|
|
|
358
364
|
}
|
|
359
365
|
|
|
360
366
|
export { _layout as default };
|
|
361
|
-
//# sourceMappingURL=_layout.svelte-
|
|
367
|
+
//# sourceMappingURL=_layout.svelte-B-CkD4a0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_layout.svelte-B-CkD4a0.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/traces/conversations/_layout.svelte.js"],"sourcesContent":["import { h as head, a as ensure_array_like, e as escape_html, f as derived, b as attr_class, d as attr } from \"../../../../chunks/index.js\";\nimport { g as goto, p as page } from \"../../../../chunks/index2.js\";\nimport { B as Button } from \"../../../../chunks/Button.js\";\nimport { I as Icon } from \"../../../../chunks/Icon.js\";\nimport { I as Input } from \"../../../../chunks/Input.js\";\nimport { m as mockGenerator } from \"../../../../chunks/MockGenerator.js\";\nimport { p as persistTelescopeSourceId, T as TelescopeClient } from \"../../../../chunks/source-selection.js\";\nimport { T as Tabs, a as Tab } from \"../../../../chunks/Tab.js\";\nimport { A as AgentSidebar } from \"../../../../chunks/AgentSidebar.js\";\nimport { g as getAgentsContext } from \"../../../../chunks/agents-context.js\";\nimport \"../../../../chunks/trpc-client.js\";\nfunction _layout($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const client = new TelescopeClient(fetch);\n let agents = [];\n let conversations = void 0;\n let selectedConversation = null;\n const currentAgent = derived(() => (page.url.searchParams.get(\"agent\") ?? \"\").trim());\n const currentRegion = derived(() => (page.url.searchParams.get(\"region\") ?? \"\").trim());\n let phoneQuery = \"\";\n let pageSize = 20;\n let pageSizeStr = \"20\";\n let sortDesc = true;\n let cursorStack = [];\n let lastConversationId = null;\n let loading = false;\n let error = null;\n let totalLoaded = 0;\n let telescopeSources = [];\n let telescopeSourceId = \"\";\n let { useMock = false, children } = $$props;\n const { onError } = getAgentsContext();\n function fmtDate(ms) {\n return new Date(ms).toLocaleString();\n }\n function fmtDuration(sec) {\n const mm = Math.floor(sec / 60);\n const ss = sec % 60;\n return `${mm}:${String(ss).padStart(2, \"0\")}`;\n }\n function buildAgentSearch(agentId = currentAgent(), region = agentId === currentAgent() ? currentRegion() : \"\") {\n const params = new URLSearchParams();\n if (agentId) params.set(\"agent\", agentId);\n if (agentId && region) params.set(\"region\", region);\n const search = params.toString();\n return search ? `?${search}` : \"\";\n }\n function buildConversationsUrl(agentId = currentAgent()) {\n return `${// Filter results client-side if phoneQuery exists\n // When user clicks Next: push current cursor to stack and advance\n // Prev: pop one cursor and request page starting before that cursor (or empty to go first)\n // Already on first page, do nothing\n // pop last cursor (we are currently after it)\n viewBase()}/conversations${buildAgentSearch(agentId)}`;\n }\n async function fetchConversationsFromApi(phoneNumber, limit = pageSize, lastConversationId2, agentId) {\n if (useMock) {\n return mockGenerator.fetchConversations(limit, phoneNumber, lastConversationId2 ?? void 0);\n } else {\n return client.getConversations({\n phoneNumber,\n agentId,\n limit: Number(limit),\n lastConversationId: lastConversationId2 ?? void 0\n });\n }\n }\n async function loadFirstPage() {\n cursorStack = [];\n lastConversationId = null;\n await loadPage();\n }\n async function onTelescopeSourceChange(e) {\n const next = e.target.value;\n telescopeSourceId = next;\n persistTelescopeSourceId(next);\n client.setSourceId(next);\n selectedConversation = null;\n await goto(buildConversationsUrl());\n await loadFirstPage();\n }\n async function loadPage() {\n loading = true;\n error = null;\n try {\n const resp = await fetchConversationsFromApi(phoneQuery || void 0, pageSize, lastConversationId ?? void 0, currentAgent() || void 0);\n let filteredItems = Array.isArray(resp.items) ? resp.items.slice() : [];\n filteredItems = filteredItems.filter((c) => !!c?.phoneNumber);\n conversations = {\n limit: resp.limit,\n items: filteredItems,\n lastConversationId: resp.lastConversationId\n };\n totalLoaded = filteredItems.length;\n lastConversationId = resp.lastConversationId ?? null;\n loading = false;\n } catch (e) {\n loading = false;\n error = e.message || \"Unknown error\";\n onError(`Error loading conversations: ${error}`);\n console.error(\"Load page error:\", e);\n }\n }\n async function onNext() {\n if (!conversations?.lastConversationId) return;\n cursorStack.push(conversations.lastConversationId);\n lastConversationId = conversations.lastConversationId;\n await loadPage();\n }\n async function onPrev() {\n if (!cursorStack.length) {\n return;\n }\n cursorStack.pop();\n lastConversationId = cursorStack.length ? cursorStack[cursorStack.length - 1] : null;\n await loadPage();\n }\n function toggleSort() {\n sortDesc = !sortDesc;\n if (conversations?.items) {\n conversations.items.sort((a, b) => sortDesc ? b.createdAt - a.createdAt : a.createdAt - b.createdAt);\n }\n }\n function onPageSizeChange(e) {\n const v = e.target.value;\n pageSizeStr = v;\n pageSize = parseInt(pageSizeStr, 10) || 20;\n }\n async function onSearch() {\n await loadFirstPage();\n }\n const activeTopTab = derived(() => {\n const head2 = page.url.pathname.split(\"/\")[1];\n return head2 === \"traces\" ? \"view\" : head2;\n });\n const viewBase = derived(() => page.url.pathname.startsWith(\"/view\") ? \"/view\" : \"/traces\");\n function handleTabChange({ value }) {\n if (value === activeTopTab()) return;\n if (value === \"edit\") {\n if (!currentAgent()) return goto();\n const params = new URLSearchParams();\n if (currentRegion()) params.set(\"region\", currentRegion());\n const search = params.toString();\n return goto(`/edit/${encodeURIComponent(currentAgent())}/roleplay${search ? `?${search}` : \"\"}`);\n }\n if (value === \"view\") return goto(buildConversationsUrl());\n goto();\n }\n async function handleAgentClick(agentId, event) {\n event?.stopPropagation();\n if (agentId === currentAgent()) return;\n selectedConversation = null;\n await goto(buildConversationsUrl(agentId));\n }\n async function handleAllAgentsClick(event) {\n event?.stopPropagation();\n if (!currentAgent()) return;\n selectedConversation = null;\n await goto(buildConversationsUrl(\"\"));\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1uk1thp\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Bosun: Telescope</title>`);\n });\n });\n $$renderer3.push(`<div class=\"flex h-screen\">`);\n AgentSidebar($$renderer3, {\n agents,\n currentAgent: currentAgent(),\n onAgentClick: handleAgentClick,\n showAllAgentsOption: true,\n onAllAgentsClick: handleAllAgentsClick,\n className: \"flex-none\"\n });\n $$renderer3.push(`<!----> <div class=\"flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2\"><nav class=\"flex flex-none flex-col bg-rc-gray-980\"><div class=\"flex items-center justify-center\">`);\n Tabs($$renderer3, {\n value: activeTopTab(),\n ariaLabel: \"Top tabs\",\n onChange: handleTabChange,\n children: ($$renderer4) => {\n Tab($$renderer4, {\n value: \"edit\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Edit`);\n }\n });\n $$renderer4.push(`<!----> `);\n Tab($$renderer4, {\n value: \"view\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->View`);\n }\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div> <div class=\"flex flex-wrap items-center gap-4\"><div class=\"flex-1\"><label class=\"block\"><div class=\"flex gap-2\">`);\n $$renderer3.select(\n {\n class: \"select\",\n value: telescopeSourceId,\n disabled: !telescopeSources.length,\n onchange: onTelescopeSourceChange,\n \"aria-label\": \"Telescope source\",\n title: \"Telescope source\"\n },\n ($$renderer4) => {\n if (telescopeSources.length) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<!--[-->`);\n const each_array = ensure_array_like(telescopeSources);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let source = each_array[$$index];\n $$renderer4.option({ value: source.id }, ($$renderer5) => {\n $$renderer5.push(`${escape_html(source.label)}`);\n });\n }\n $$renderer4.push(`<!--]-->`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n $$renderer4.option({ value: \"\" }, ($$renderer5) => {\n $$renderer5.push(`${escape_html(\"No sources\")}`);\n });\n }\n $$renderer4.push(`<!--]-->`);\n },\n \"svelte-1uk1thp\"\n );\n $$renderer3.push(` <div class=\"relative\">`);\n Input($$renderer3, {\n class: \"w-56 rounded-r-none !border !border-rc-gray-500 !p-2 !pr-8 hover:border-rc-gray-400\",\n placeholder: \"Search by phone...\",\n onkeydown: (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n onSearch();\n }\n },\n get value() {\n return phoneQuery;\n },\n set value($$value) {\n phoneQuery = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!---->`);\n if (phoneQuery) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button type=\"button\" aria-label=\"Clear search\" class=\"absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded p-1 text-rc-gray-200 hover:bg-rc-gray-600 hover:text-rc-gray-100 focus:outline-none\">`);\n Icon($$renderer3, { name: \"close\", width: 18, height: 18 });\n $$renderer3.push(`<!----></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> `);\n Button($$renderer3, {\n onclick: onSearch,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Search`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div></label></div> <div class=\"hidden items-center gap-2\"><div class=\"text-rc-gray-200\">Sort:</div> `);\n Button($$renderer3, {\n onclick: toggleSort,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->${escape_html(sortDesc ? \"Newest first\" : \"Oldest first\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div> <div class=\"hidden items-center gap-2\"><div class=\"text-rc-gray-200\">Page size:</div> `);\n $$renderer3.select(\n {\n class: \"rounded-sm border border-rc-gray-300 bg-rc-gray-700 p-2 pr-8 text-rc-gray-100\",\n value: pageSizeStr,\n onchange: onPageSizeChange\n },\n ($$renderer4) => {\n $$renderer4.option({ value: \"5\" }, ($$renderer5) => {\n $$renderer5.push(`5`);\n });\n $$renderer4.option({ value: \"10\" }, ($$renderer5) => {\n $$renderer5.push(`10`);\n });\n $$renderer4.option({ value: \"20\" }, ($$renderer5) => {\n $$renderer5.push(`20`);\n });\n $$renderer4.option({ value: \"50\" }, ($$renderer5) => {\n $$renderer5.push(`50`);\n });\n }\n );\n $$renderer3.push(`</div> <div class=\"flex items-center gap-3\"><div class=\"flex items-center gap-2\">`);\n Button($$renderer3, {\n onclick: onPrev,\n disabled: cursorStack.length === 0 && !lastConversationId,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Prev`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n Button($$renderer3, {\n onclick: onNext,\n disabled: !conversations?.items.length,\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Next`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> <div class=\"text-sm text-rc-gray-200\">Items: ${escape_html(totalLoaded)}</div></div></div> <div class=\"ml-auto whitespace-nowrap text-sm\"><span class=\"text-gray-400\">API Mode:</span> <span class=\"font-semibold text-rc-green-200\">${escape_html(useMock ? \"Mock (local)\" : \"Live\")}</span></div></div></nav> <main class=\"flex flex-1 overflow-hidden\"><div class=\"flex h-full w-1/3 flex-col\"><div class=\"flex-none border-b border-rc-gray-300/40 p-4\"><h2 class=\"text-lg font-semibold text-rc-gray-100\">Conversations</h2></div> <div class=\"rc-scroll min-h-0 flex-1 overflow-scroll px-3 py-4\">`);\n if (loading) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<p class=\"py-8 text-center text-rc-gray-200\">Loading...</p>`);\n } else if (!conversations?.items?.length) {\n $$renderer3.push(\"<!--[1-->\");\n $$renderer3.push(`<p class=\"py-8 text-center text-rc-gray-300\">No conversations found</p>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<ul class=\"space-y-2\"><!--[-->`);\n const each_array_1 = ensure_array_like(conversations.items);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let conversation = each_array_1[$$index_1];\n $$renderer3.push(`<li${attr_class(\n `cursor-pointer rounded-lg p-3 transition-colors ${(page.params.conversationId ? conversation.conversationId === page.params.conversationId : conversation.conversationId === selectedConversation?.conversationId) ? \"bg-rc-gray-600\" : \"bg-rc-gray-700 hover:bg-rc-gray-650\"}`,\n \"svelte-1uk1thp\"\n )}${attr(\"aria-selected\", page.params.conversationId ? conversation.conversationId === page.params.conversationId : conversation.conversationId === selectedConversation?.conversationId)}><div class=\"flex w-full flex-col gap-2\"><div class=\"flex w-full items-center justify-between\"><div class=\"text-gray-300\">${escape_html(fmtDate(conversation.createdAt))}</div> <div class=\"flex items-center gap-2\"><span class=\"text-xs text-rc-gray-300\">${escape_html(conversation.medium)}</span> <span class=\"font-semibold text-rc-gray-100\">${escape_html(conversation.phoneNumber)}</span></div></div> <div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm\"><span class=\"text-rc-gray-200\">Conversation Id:</span> <span class=\"text-rc-green-200\">${escape_html(conversation.conversationId)}</span> `);\n if (!currentAgent() && conversation.agentId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"text-rc-gray-200\">, Agent Id:</span> <span class=\"text-rc-green-200\">${escape_html(conversation.agentId)}</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> <p class=\"text-sm text-gray-400\">Duration: ${escape_html(fmtDuration(conversation.duration ?? 0))}</p></div></div></li>`);\n }\n $$renderer3.push(`<!--]--></ul>`);\n }\n $$renderer3.push(`<!--]--></div></div> <div class=\"flex h-full w-2/3 flex-col bg-rc-gray-980\">`);\n children($$renderer3);\n $$renderer3.push(`<!----></div></main></div></div>`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _layout as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { p as page, g as goto, r as replaceState } from './index2-DO4B3D-P.js';
|
|
|
10
10
|
import { p as public_env } from './shared-server-DaWdgxVh.js';
|
|
11
11
|
import { t as trpc } from './trpc-client-D8L6vWf4.js';
|
|
12
12
|
import 'nunjucks';
|
|
13
|
-
import { A as AgentSidebar } from './AgentSidebar-
|
|
13
|
+
import { A as AgentSidebar } from './AgentSidebar-DvIlda-E.js';
|
|
14
14
|
import { g as getAgentsContext } from './agents-context-rV2narXG.js';
|
|
15
15
|
import { C as ContextEditor } from './ContextEditor-D5B2mO8Z.js';
|
|
16
16
|
import { c as clearChatContent, a as clearLogs } from './log-content.svelte-CfQzj-v_.js';
|
|
@@ -557,7 +557,11 @@ function _layout($$renderer, $$props) {
|
|
|
557
557
|
void flushPromptSave();
|
|
558
558
|
closeAllPopovers();
|
|
559
559
|
if (value === "edit") return goto();
|
|
560
|
-
if (value === "view")
|
|
560
|
+
if (value === "view") {
|
|
561
|
+
const qs = new URLSearchParams({ agent: workspace.agentId });
|
|
562
|
+
if (workspace.region) qs.set("region", workspace.region);
|
|
563
|
+
return goto(`/view?${qs.toString()}`);
|
|
564
|
+
}
|
|
561
565
|
goto();
|
|
562
566
|
}
|
|
563
567
|
function openModePopover(kind) {
|
|
@@ -1004,4 +1008,4 @@ function _layout($$renderer, $$props) {
|
|
|
1004
1008
|
}
|
|
1005
1009
|
|
|
1006
1010
|
export { _layout as default };
|
|
1007
|
-
//# sourceMappingURL=_layout.svelte-
|
|
1011
|
+
//# sourceMappingURL=_layout.svelte-BBFCF-xw.js.map
|