@mavea/mavea 1.0.13 → 1.0.15

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.
Files changed (163) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +4 -3
  3. package/dist/.vite/manifest.json +605 -623
  4. package/dist/assets/{AppCommandPalette-D_g8-7C0.js → AppCommandPalette-Dzl_DbDd.js} +1 -1
  5. package/dist/assets/{BlockEmpty-Ddhgr5pu.js → BlockEmpty-B5Q0hgDJ.js} +1 -1
  6. package/dist/assets/{BriefingPlayer-D-QhLgXI.js → BriefingPlayer-Dy7JCGm-.js} +1 -1
  7. package/dist/assets/{CanvasSkeleton-BIiOmCMG.js → CanvasSkeleton-CJwPWnFG.js} +2 -2
  8. package/dist/assets/{CheckLogRail-ZrDqyjQ7.js → CheckLogRail-DNtXlkcR.js} +1 -1
  9. package/dist/assets/{CodeOutput-D7sVg1Nr.js → CodeOutput-Bg64AyKu.js} +1 -1
  10. package/dist/assets/{CommandPalette-DNa2q8E_.js → CommandPalette-mO1FEvlx.js} +1 -1
  11. package/dist/assets/{CourseLessonReader-BIpGjcJk.js → CourseLessonReader-CKfvBMtL.js} +2 -2
  12. package/dist/assets/{CourseRail-CQaotzN0.js → CourseRail-CRcB319H.js} +1 -1
  13. package/dist/assets/{CoursesApp-q3kZJmu1.js → CoursesApp-BbCGxAav.js} +2 -2
  14. package/dist/assets/{CrossExamPanel-BIJslibV.js → CrossExamPanel-Deywo95y.js} +1 -1
  15. package/dist/assets/{DashPresent-DGSE0vYM.js → DashPresent-BEm1tGse.js} +1 -1
  16. package/dist/assets/{DashboardDetail-BpaLNg8R.js → DashboardDetail-tK6FpgtH.js} +2 -2
  17. package/dist/assets/DashboardLoopRuntime-Cis4WMqk.js +1 -0
  18. package/dist/assets/{DashboardOverview-8x3OxX2i.js → DashboardOverview-DrdqBgds.js} +1 -1
  19. package/dist/assets/{DashboardSettings-f_zxcs5j.js → DashboardSettings-CBhzLW0P.js} +1 -1
  20. package/dist/assets/DashboardsApp-Dc43FBIi.js +2 -0
  21. package/dist/assets/{DeepZoomApp-E7bDmzuL.js → DeepZoomApp-Chz6laKc.js} +1 -1
  22. package/dist/assets/{DelegatePanel-_9RZiLHM.css → DelegatePanel-Cf85-0qE.css} +1 -1
  23. package/dist/assets/DelegatePanel-DmtTY_lE.js +33 -0
  24. package/dist/assets/{DemoGallery-DDzX8Z7I.js → DemoGallery-zw3d7ap9.js} +1 -1
  25. package/dist/assets/{DropSelect-BMZYAX6q.js → DropSelect-Bo2Oyi-2.js} +1 -1
  26. package/dist/assets/{ExportModal-CTMJaU1l.js → ExportModal-DICXavg9.js} +2 -2
  27. package/dist/assets/{ExtractionPreview-C9wq7CrK.js → ExtractionPreview-C636AVw-.js} +1 -1
  28. package/dist/assets/{FlagshipCTA-DPNSflKv.js → FlagshipCTA-B-7nH43r.js} +1 -1
  29. package/dist/assets/{FlagshipCommandPalette-55zqyPFm.js → FlagshipCommandPalette-DgTL_Kjj.js} +1 -1
  30. package/dist/assets/{FlagshipShowcase-BWpoPWOn.js → FlagshipShowcase-CbAC2s4X.js} +1 -1
  31. package/dist/assets/{FlashcardsApp-apCj3I17.js → FlashcardsApp-CatYcaJJ.js} +1 -1
  32. package/dist/assets/{ForecastPanel-CMRD-UKn.js → ForecastPanel-BOG361kr.js} +1 -1
  33. package/dist/assets/{GalleryApp-CcsbirLT.js → GalleryApp-uW6b1Y0d.js} +1 -1
  34. package/dist/assets/{HonestByDesign-DU4qmc61.js → HonestByDesign-hCxc0A7b.js} +1 -1
  35. package/dist/assets/{HowItWorks-CkZXftN-.js → HowItWorks-BlbQcUxx.js} +1 -1
  36. package/dist/assets/{LegalApp-BmZpqH-6.js → LegalApp-sCZjJYWx.js} +1 -1
  37. package/dist/assets/{LegalMarkdownDocument-CcbAfubz.js → LegalMarkdownDocument-Bk3U7ChN.js} +1 -1
  38. package/dist/assets/{LegalPageShell-raMATqhx.js → LegalPageShell-BsgRV7aL.js} +1 -1
  39. package/dist/assets/{LeverPanel-DVUgGcYW.js → LeverPanel-CP32QcIf.js} +1 -1
  40. package/dist/assets/{Library-D725dNcx.js → Library-CJTnp1pC.js} +1 -1
  41. package/dist/assets/{LibraryOverlay-D7PzQIpH.js → LibraryOverlay-geQRGAzG.js} +1 -1
  42. package/dist/assets/LiveApp-C0BN0o3_.js +61 -0
  43. package/dist/assets/LiveApp-Dj_6EQuL.css +1 -0
  44. package/dist/assets/LiveSettings-CzSXXMoo.js +6 -0
  45. package/dist/assets/{MindMapViewerDrawer-CIMuABKE.js → MindMapViewerDrawer-7HLErRQF.js} +1 -1
  46. package/dist/assets/{MindShape-0KPrv0CF.js → MindShape-Bhu4yoIj.js} +1 -1
  47. package/dist/assets/MindShape-DjHtMW_5.css +1 -0
  48. package/dist/assets/{PinToDashboard-ML4NFCAU.js → PinToDashboard-Cj8S9XKC.js} +1 -1
  49. package/dist/assets/{PlanReview-CbJ_7Ld1.js → PlanReview-3NxZD9wt.js} +1 -1
  50. package/dist/assets/{Presence-B_zDfiE7.js → Presence-DDxb6yE5.js} +1 -1
  51. package/dist/assets/{PresentationDeck-Tm3PUdh5.js → PresentationDeck-B6AHRYEA.js} +1 -1
  52. package/dist/assets/{PrismApp-Bc-6PO_P.js → PrismApp-BlPpWxao.js} +2 -2
  53. package/dist/assets/{PrismAskController-OwqFx5Pk.js → PrismAskController-DUvOTeW9.js} +1 -1
  54. package/dist/assets/{PrismBriefingPlayer-Bu_ZxYdh.js → PrismBriefingPlayer-Bmo9tOGX.js} +2 -2
  55. package/dist/assets/{PrismOverlay-UTsJ8R5d.js → PrismOverlay-9Q_14eEO.js} +4 -4
  56. package/dist/assets/{PrivacyApp-BLXan6dm.js → PrivacyApp-CatB3OpJ.js} +1 -1
  57. package/dist/assets/{Recap-5rYrcMCC.js → Recap-DkKrrqi5.js} +1 -1
  58. package/dist/assets/{ReelJelly-Dg3XGB0c.js → ReelJelly-DCD4bG10.js} +1 -1
  59. package/dist/assets/{ReplayCard-wMIMlorH.js → ReplayCard-Bz69tOST.js} +2 -2
  60. package/dist/assets/{ReplayOverlay-BomkTonB.js → ReplayOverlay-DbJX08Kr.js} +1 -1
  61. package/dist/assets/{RewindOverlay-Izf89nG9.js → RewindOverlay-Bop4a63b.js} +1 -1
  62. package/dist/assets/{RippleApp-8QSIEjTX.js → RippleApp-u3hCfb5b.js} +2 -2
  63. package/dist/assets/{RippleAskController-Cd86GrKs.js → RippleAskController-CK4iSwT0.js} +1 -1
  64. package/dist/assets/{RippleOverlay-SCrXZTqz.js → RippleOverlay-BM_B9JEc.js} +2 -2
  65. package/dist/assets/{SeeDontRead-Bp8qsF20.js → SeeDontRead-CGGKmvBV.js} +1 -1
  66. package/dist/assets/{ShareModal-C-sD-aia.js → ShareModal-D4En6Y3L.js} +1 -1
  67. package/dist/assets/{ShipCascade-Cq_I4c_v.js → ShipCascade-k_GWrcau.js} +1 -1
  68. package/dist/assets/{ShipCourse-CzsJyMnT.js → ShipCourse-BQOY4MyI.js} +1 -1
  69. package/dist/assets/{ShipHotspots-OMjPhQWP.js → ShipHotspots-vLRK0w_b.js} +1 -1
  70. package/dist/assets/{ShipIncident-Cqn6ZmKz.js → ShipIncident-BWxerYtX.js} +1 -1
  71. package/dist/assets/{ShipMigration-5_ZWn7K9.js → ShipMigration-OgAGEbjm.js} +1 -1
  72. package/dist/assets/{ShipOnboarding-Yr8oKgmQ.js → ShipOnboarding-B_2IEq3N.js} +1 -1
  73. package/dist/assets/{ShipRead-Bnw7mnv3.js → ShipRead--gGqg2SE.js} +1 -1
  74. package/dist/assets/{ShipRollout-ECsDrqAd.js → ShipRollout-B_U2P8Yw.js} +1 -1
  75. package/dist/assets/{ShipSuggestions-C6oDw2F8.js → ShipSuggestions-D9coTmgw.js} +1 -1
  76. package/dist/assets/{ShipWorkspace-BT6gZrqd.js → ShipWorkspace-BmdcHZXa.js} +1 -1
  77. package/dist/assets/{SignatureLoop-D7sibSnc.js → SignatureLoop-KA6Cf93g.js} +1 -1
  78. package/dist/assets/{SynthesisApp-B768x2r_.js → SynthesisApp-BCBhCJhx.js} +2 -2
  79. package/dist/assets/{SynthesisOverlay-Ds0MhZLQ.js → SynthesisOverlay-BuGIeaKq.js} +1 -1
  80. package/dist/assets/{TermsApp-Da8FeMj3.js → TermsApp-CleIlDtR.js} +1 -1
  81. package/dist/assets/{TopicCanvas-D64O3lvD.js → TopicCanvas-BRu3xVL8.js} +2 -2
  82. package/dist/assets/{TopicCanvas-D2Nax9II.css → TopicCanvas-uRuHi99s.css} +1 -1
  83. package/dist/assets/{TourPrism-CTf1G-Vv.js → TourPrism-zbVLe2ag.js} +1 -1
  84. package/dist/assets/{TrackerTile-DeujTCk-.js → TrackerTile-D9Wa3CSq.js} +2 -2
  85. package/dist/assets/{TwoSurfaces-kyK2yqm0.js → TwoSurfaces-TyWXgAdq.js} +1 -1
  86. package/dist/assets/{UnderstoodPanel-Dgwk_Cuj.js → UnderstoodPanel-BS9OhgLJ.js} +1 -1
  87. package/dist/assets/{WhyMachineOverlay-C4eQC0lg.js → WhyMachineOverlay-B-KJhCjr.js} +1 -1
  88. package/dist/assets/{WowFeatures-CaBZ5WPM.js → WowFeatures-Bv1-PmXF.js} +1 -1
  89. package/dist/assets/{ZoomDeck-DnCtbhx1.js → ZoomDeck-C2Q6xbgX.js} +1 -1
  90. package/dist/assets/{alternateFinishes-FSV_gA1A.js → alternateFinishes-BG6svkXG.js} +1 -1
  91. package/dist/assets/{annotationAuto-x_dV8z65.js → annotationAuto-BpBsjbDQ.js} +1 -1
  92. package/dist/assets/{annotationReel-SeXzv0P-.js → annotationReel-yzysA-Gr.js} +1 -1
  93. package/dist/assets/{backup-0zODkqi-.js → backup-BdeBr3wq.js} +1 -1
  94. package/dist/assets/canvas-Ep2Kfupo.js +1 -0
  95. package/dist/assets/{catalog-Car_1ocN.js → catalog-DF7YTNju.js} +1 -1
  96. package/dist/assets/{dashboardEvents-BqcPN-K8.js → dashboardEvents-C_XvGVLJ.js} +1 -1
  97. package/dist/assets/{dist-BTg4yEWr.js → dist-CBEt6Q8V.js} +1 -1
  98. package/dist/assets/{fit-I3tuibfX.js → fit-B1LJWvMO.js} +1 -1
  99. package/dist/assets/{generateLive-Dk24OxVt.js → generateLive-ChhSWKbq.js} +1 -1
  100. package/dist/assets/gesture-Bouqjr3g.js +2 -0
  101. package/dist/assets/{index-CWqRe4-B.js → index-C7H7A1rW.js} +3 -3
  102. package/dist/assets/{jspdf.es.min-wkD3BzGZ.js → jspdf.es.min-DutJi91O.js} +1 -1
  103. package/dist/assets/{kokoro-B-3GqktX.js → kokoro-kGWf7M0e.js} +1 -1
  104. package/dist/assets/{lib-CwruVYU_.js → lib-C7zXL8h0.js} +1 -1
  105. package/dist/assets/{liveSchema-CCpVMy0H.js → liveSchema-DCL21WdS.js} +2 -2
  106. package/dist/assets/{motion-CURfDtdH.js → motion-dfA87zbb.js} +1 -1
  107. package/dist/assets/{notes-BG5QP-Dj.js → notes-DblI4Ko_.js} +1 -1
  108. package/dist/assets/{pdf-x4qTBJIZ.js → pdf-DFYCstCC.js} +1 -1
  109. package/dist/assets/{penStrokes-9Q_l7NTt.js → penStrokes-DlHnO9xE.js} +1 -1
  110. package/dist/assets/{perfProbe-BFwfpxJt.js → perfProbe-CCSPF3EA.js} +1 -1
  111. package/dist/assets/{pin-DRN5H7py.js → pin-D5_Ebl_s.js} +1 -1
  112. package/dist/assets/{portal-BYHo9LOD.js → portal-BndazODr.js} +1 -1
  113. package/dist/assets/{pptxgen.es-DGywGiaX.js → pptxgen.es-CwCkoJdp.js} +1 -1
  114. package/dist/assets/{prewarm-CQNCE4Uq.js → prewarm--KODwuMi.js} +1 -1
  115. package/dist/assets/{quietHours-CKjQ2pGY.js → quietHours-DVPplPtM.js} +1 -1
  116. package/dist/assets/{registry-CfTTYQrE.js → registry-0E1uKPCI.js} +1 -1
  117. package/dist/assets/{registry-Bpx4VBWb.js → registry-B3V5-8v0.js} +1 -1
  118. package/dist/assets/{registry-_T6pLDPG.js → registry-B51MhOLx.js} +2 -2
  119. package/dist/assets/{registry-DrqQbf_n.js → registry-BH6FfyZk.js} +1 -1
  120. package/dist/assets/{registry-CqfjqOX5.js → registry-Ba9xMFO4.js} +2 -2
  121. package/dist/assets/{registry-CNr6L-3z.js → registry-BlB0FYf0.js} +1 -1
  122. package/dist/assets/{registry-DFmFBfRz.js → registry-C30HGS2G.js} +1 -1
  123. package/dist/assets/{registry-1BWL6SXY.js → registry-CIa1EU-G.js} +1 -1
  124. package/dist/assets/{registry-DEgW3zel.js → registry-COxprhRN.js} +1 -1
  125. package/dist/assets/{registry-Dw42uggW.js → registry-CWkBxxsI.js} +1 -1
  126. package/dist/assets/{registry-9S6KiKjR.js → registry-D-qEhm1d.js} +1 -1
  127. package/dist/assets/registry-D5oMqeSa.js +1 -0
  128. package/dist/assets/{registry-BZQeYzgv.js → registry-D7rspCZr.js} +1 -1
  129. package/dist/assets/{registry-Bl3NkU-0.js → registry-DNzF-nvu.js} +1 -1
  130. package/dist/assets/{registry-aUZZeh27.js → registry-DQIm_hbI.js} +1 -1
  131. package/dist/assets/{registry-cPmSqaRu.js → registry-Dphh5ADP.js} +1 -1
  132. package/dist/assets/{registry-GLjcQX0n.js → registry-DrNMbrA_.js} +1 -1
  133. package/dist/assets/{registry-DBsjgIxw.js → registry-Dvv84L9K.js} +1 -1
  134. package/dist/assets/{registry-D84Bs-bD.js → registry-M3VgAiQv.js} +1 -1
  135. package/dist/assets/{registry-BueBIP-N.js → registry-Pr5IKqro.js} +1 -1
  136. package/dist/assets/{registry-BpBiRe-o.js → registry-WJE8Z0T1.js} +1 -1
  137. package/dist/assets/registry-hsSlT6pi.js +1 -0
  138. package/dist/assets/{registry-Bc6_RQ8l.js → registry-nG70-amx.js} +1 -1
  139. package/dist/assets/{registry-BklPTZre.js → registry-wJhGGVuP.js} +1 -1
  140. package/dist/assets/{relate-yq30L3hZ.js → relate-DxAi8xpo.js} +1 -1
  141. package/dist/assets/{shikiHighlight-BgZoQAHs.js → shikiHighlight-B_TEagaE.js} +1 -1
  142. package/dist/assets/{useDashboardLoop-mGmJwv27.js → useDashboardLoop-DzbRz-V9.js} +3 -3
  143. package/dist/assets/{useLiveConfig-vMyjo2gV.js → useLiveConfig-Lm0cYTcu.js} +1 -1
  144. package/dist/assets/{useSpatialCanvas-CEXy6ZC2.js → useSpatialCanvas-D_C8VoCy.js} +1 -1
  145. package/dist/assets/{useSpotlightWalk-B9XJ6OLK.js → useSpotlightWalk-CCQT0-_g.js} +1 -1
  146. package/dist/assets/{useSrsCards-Vc6B2_he.js → useSrsCards-BKCPBPYw.js} +1 -1
  147. package/dist/assets/{useStudy-6QnY-Fw_.js → useStudy-Diy4ITBm.js} +1 -1
  148. package/dist/assets/{useZoomGesture-BONUz5cE.js → useZoomGesture-B82XnSfi.js} +1 -1
  149. package/dist/index.html +1 -1
  150. package/package.json +1 -1
  151. package/dist/assets/DashboardLoopRuntime-14yzj-xx.js +0 -1
  152. package/dist/assets/DashboardsApp-mvMbGmp0.js +0 -2
  153. package/dist/assets/DelegatePanel-pwRk9pFf.js +0 -26
  154. package/dist/assets/LiveApp-B8Jw1Q0h.js +0 -61
  155. package/dist/assets/LiveApp-DQhDk2ma.css +0 -1
  156. package/dist/assets/LiveSettings-BQ06gZB7.js +0 -6
  157. package/dist/assets/MindShape-Bel2yDqO.css +0 -1
  158. package/dist/assets/RehearsalPanel-BCU615wg.css +0 -1
  159. package/dist/assets/RehearsalPanel-CM4466Os.js +0 -6
  160. package/dist/assets/canvas-uhcwigAL.js +0 -1
  161. package/dist/assets/gesture-DabMpPcq.js +0 -2
  162. package/dist/assets/registry-BffpZK5w.js +0 -1
  163. package/dist/assets/registry-Z3TIPbYJ.js +0 -1
@@ -0,0 +1,33 @@
1
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-C7H7A1rW.js";import{t as r}from"./useFocusTrap-DbfG6zbM.js";import{u as i}from"./kokoro-kGWf7M0e.js";import{n as a}from"./spokenText-D4zPX9JY.js";import{t as o}from"./FeatureUseNotice-CoK5HkbR.js";import{t as s}from"./Presence-DDxb6yE5.js";import{t as c}from"./providers-wzm7E8Pa.js";import{t as l}from"./pageVisibility-BxUVsw7Z.js";var u=e(),d=n(),f=1600,p=1300;function m(e){let t=`right`,n=e.speaking;return n?.side===`yours`?n.pointing?{state:`acting`,emotion:`focused`,gaze:t}:{state:`speaking`,emotion:`focused`,gaze:t}:n?.side===`theirs`?{state:`idle`,emotion:n.offer?`curious`:`neutral`,gaze:t}:e.whoseTurn===`yours`?{state:`thinking`,emotion:e.guarded?`concerned`:`focused`,gaze:t}:{state:`idle`,emotion:`neutral`,gaze:t}}function h(e){let t=`left`,n=e.speaking;return n?.side===`theirs`?{state:`speaking`,emotion:n.offer?`focused`:`neutral`,gaze:t}:n?.side===`yours`?{state:`idle`,emotion:n.offer?`curious`:`neutral`,gaze:t}:e.whoseTurn===`theirs`?{state:`thinking`,emotion:`neutral`,gaze:t}:{state:`idle`,emotion:e.guarded?`curious`:`neutral`,gaze:t}}function g(e){switch(e.kind){case`running`:return{yours:m(e),theirs:h(e)};case`deal`:return{yours:{state:`idle`,emotion:`celebrate`,gaze:`center`},theirs:{state:`idle`,emotion:`warm`,gaze:`center`}};case`approved`:return{yours:{state:`idle`,emotion:`warm`,gaze:`center`},theirs:{state:`idle`,emotion:`neutral`,gaze:`center`}};case`nodeal`:return{yours:{state:`idle`,emotion:e.boundaryHeld?`focused`:`concerned`,gaze:`center`},theirs:{state:`idle`,emotion:`neutral`,gaze:`center`}};case`stopped`:return{yours:{state:`idle`,emotion:`sleepy`,gaze:`down`},theirs:{state:`idle`,emotion:`sleepy`,gaze:`down`}}}}function _(e){return[`You are role-playing the OTHER SIDE of a conversation the user is rehearsing: ${e.counterpart}.`,`The conversation: ${e.scenario}.`,`Ground everything in this context the user supplied — and NOTHING else:`,`"""${e.context||`(none given)`}"""`,`If the context does not tell you how this person would react, play a realistic, generic version of the role — never invent specific facts, history, or quotes about the real person.`,`Stay in character. Push back the way this role realistically would; do not cave easily, do not be cartoonishly hostile.`,`The reply is displayed AND spoken. Keep normal spelling on screen, but wrap every name, place, brand, or non-English term a voice might mispronounce as [[shown|said]] — for example [[Omakase|oh-mah-kah-seh]]. The said side must be lowercase voice-safe syllables matching a native/source-language pronunciation, never IPA or an Anglicized guess.`,`Reply ONLY with JSON: {"reply":"what you say next, 1-3 sentences, spoken language"}. No other keys, no prose outside the JSON.`].join(`
2
+ `)}function v(){return[`You are a direct, warm conversation coach. The user just finished a practice take of a hard conversation.`,`Judge ONLY what is in the transcript — quote or reference their actual words; never invent things they said.`,`If an earlier take summary is given, say concretely what improved or regressed since it.`,`Reply ONLY with JSON: {"note":"how this take went, 1-2 sentences","tip":"ONE concrete thing to do differently next take, 1-2 sentences"}.`].join(`
3
+ `)}var y=900,ee=1e3;function b(e){try{return typeof e==`string`?JSON.parse(e.match(/\{[\s\S]*\}/)?.[0]??`{}`):e}catch{return{}}}function te(e){return e.map(e=>({role:e.who===`you`?`user`:`assistant`,content:e.text}))}async function x(e,t,n,r){try{let i=te(t),a=i.pop();if(!a||a.role!==`user`)return``;let o=await c(n.provider).generate({system:_(e),history:i,user:a.content,maxTokens:y,thinkingLevel:`minimal`},n);if(r.aborted)return``;let s=b(o.raw).reply;return typeof s==`string`?s.trim().slice(0,600):``}catch{return``}}async function ne(e,t,n,r,i,a){try{if(!t.some(e=>e.who===`you`))return null;let o=t.map(t=>`${t.who===`you`?`USER`:e.counterpart.toUpperCase()}: ${t.text}`).join(`
4
+ `),s=[`Conversation being rehearsed: ${e.scenario}`,r?`Earlier take, your summary then: ${r}`:null,`Take ${n} transcript:`,o].filter(Boolean).join(`
5
+ `),l=await c(i.provider).generate({system:v(),history:[],user:s,maxTokens:ee,thinkingLevel:`minimal`},i);if(a.aborted)return null;let u=b(l.raw),d=typeof u.note==`string`?u.note.trim().slice(0,400):``,f=typeof u.tip==`string`?u.tip.trim().slice(0,400):``;return d&&f?{note:d,tip:f}:null}catch{return null}}function S(e){return`Debrief: I had the real "${e.scenario}" conversation. Here's what happened: `}var C=t();function w(e){let t=(0,d.c)(105),{setup:n,themLabel:r,cfg:c,speak:l,onDebrief:p,onAdjustBrief:m}=e,[h,_]=(0,u.useState)(1),v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v=[],t[0]=v):v=t[0];let[y,ee]=(0,u.useState)(v),[b,te]=(0,u.useState)(``),[w,ie]=(0,u.useState)(null),[E,ae]=(0,u.useState)(!1),[D,oe]=(0,u.useState)(null),se=(0,u.useRef)(null),ce=(0,u.useRef)(null),O=(0,u.useRef)(null),le,ue;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>()=>{O.current?.abort(),i()},ue=[],t[1]=le,t[2]=ue):(le=t[1],ue=t[2]),(0,u.useEffect)(le,ue);let k;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>{let e=ce.current;e&&(e.scrollTop=e.scrollHeight)},t[3]=k):k=t[3];let A;t[4]!==w||t[5]!==y?(A=[y,w],t[4]=w,t[5]=y,t[6]=A):A=t[6],(0,u.useEffect)(k,A);let[de,j]=(0,u.useState)(!1),fe=(0,u.useRef)(0),pe,me;t[7]===y?(pe=t[8],me=t[9]):(pe=()=>{if(y.length===fe.current)return;if(fe.current=y.length,y[y.length-1]?.who!==`them`){j(!1);return}j(!0);let e=window.setTimeout(()=>j(!1),f);return()=>window.clearTimeout(e)},me=[y],t[7]=y,t[8]=pe,t[9]=me),(0,u.useEffect)(pe,me);let he=w===`reply`?`theirs`:`yours`,ge;t[10]!==de||t[11]!==he?(ge=g({kind:`running`,whoseTurn:he,guarded:!1,speaking:de?{side:`theirs`,offer:!1,pointing:!1}:null}),t[10]=de,t[11]=he,t[12]=ge):ge=t[12];let M=ge,_e;t[13]!==c||t[14]!==n||t[15]!==l?(_e=async e=>{O.current?.abort();let t=new AbortController;O.current=t,ie(`reply`),ae(!1);let r=await x(n,e,c,t.signal);if(!t.signal.aborted){if(ie(null),!r){ae(!0);return}ee([...e,{who:`them`,text:a(r)}]),l?.(r)}},t[13]=c,t[14]=n,t[15]=l,t[16]=_e):_e=t[16];let ve=_e,ye;t[17]!==w||t[18]!==b||t[19]!==y||t[20]!==ve?(ye=()=>{let e=b.trim();if(!e||w)return;te(``),oe(null);let t=[...y,{who:`you`,text:e}];ee(t),ve(t)},t[17]=w,t[18]=b,t[19]=y,t[20]=ve,t[21]=ye):ye=t[21];let N=ye,be;t[22]!==w||t[23]!==c||t[24]!==y||t[25]!==n||t[26]!==h?(be=async()=>{if(w)return;O.current?.abort();let e=new AbortController;O.current=e,ie(`coach`);let t=await ne(n,y,h,se.current,c,e.signal);e.signal.aborted||(ie(null),oe(t),t&&(se.current=t.note),_(T),ee([]))},t[22]=w,t[23]=c,t[24]=y,t[25]=n,t[26]=h,t[27]=be):be=t[27];let xe=be,Se;t[28]===r?Se=t[29]:(Se=e=>(0,C.jsxs)(`span`,{className:`dlg-side ${e===`you`?`yours`:`theirs`}`,children:[(0,C.jsx)(`span`,{className:`dlg-avatar`,"aria-hidden":`true`}),(0,C.jsx)(`span`,{className:`dlg-side-text`,children:(0,C.jsx)(`span`,{className:`dlg-side-name`,children:e===`you`?`You`:r})})]}),t[28]=r,t[29]=Se);let P=Se,Ce;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,C.jsx)(o,{kind:`simulation`,from:`live`}),t[30]=Ce):Ce=t[30];let we;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,C.jsxs)(`div`,{className:`dlg-seat yours`,children:[(0,C.jsx)(`span`,{className:`dlg-seat-you`,"aria-hidden":`true`}),(0,C.jsx)(`span`,{className:`dlg-seat-name`,children:`You`})]}),t[31]=we):we=t[31];let F;t[32]===h?F=t[33]:(F=(0,C.jsx)(`div`,{className:`dlg-meta`,children:(0,C.jsxs)(`span`,{className:`dlg-take-badge`,children:[`Take `,h]})}),t[32]=h,t[33]=F);let I;t[34]===M.theirs?I=t[35]:(I=(0,C.jsx)(`span`,{className:`dlg-jelly ghost`,"aria-hidden":`true`,children:(0,C.jsx)(s,{...M.theirs})}),t[34]=M.theirs,t[35]=I);let L;t[36]===r?L=t[37]:(L=(0,C.jsx)(`span`,{className:`dlg-seat-name`,children:r}),t[36]=r,t[37]=L);let Te;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,C.jsx)(`span`,{className:`dlg-seat-tag`,children:`in character`}),t[38]=Te):Te=t[38];let Ee;t[39]!==I||t[40]!==L?(Ee=(0,C.jsxs)(`div`,{className:`dlg-seat theirs`,children:[I,L,Te]}),t[39]=I,t[40]=L,t[41]=Ee):Ee=t[41];let De;t[42]!==F||t[43]!==Ee?(De=(0,C.jsxs)(`div`,{className:`dlg-tablescape`,children:[we,F,Ee]}),t[42]=F,t[43]=Ee,t[44]=De):De=t[44];let Oe;if(t[45]!==P||t[46]!==y){let e;t[48]===P?e=t[49]:(e=(e,t)=>(0,C.jsxs)(`li`,{className:`dlg-turn ${e.who===`you`?`yours`:`theirs`}`,children:[P(e.who),(0,C.jsx)(`p`,{className:`dlg-turn-say`,children:e.text})]},t),t[48]=P,t[49]=e),Oe=y.map(e),t[45]=P,t[46]=y,t[47]=Oe}else Oe=t[47];let ke;t[50]!==w||t[51]!==P?(ke=w===`reply`&&(0,C.jsxs)(`li`,{className:`dlg-turn theirs thinking`,"aria-hidden":`true`,children:[P(`them`),(0,C.jsxs)(`span`,{className:`dlg-typing`,children:[(0,C.jsx)(`i`,{}),(0,C.jsx)(`i`,{}),(0,C.jsx)(`i`,{})]})]}),t[50]=w,t[51]=P,t[52]=ke):ke=t[52];let Ae;t[53]!==E||t[54]!==y||t[55]!==ve?(Ae=E&&(0,C.jsxs)(`li`,{className:`dlg-failed`,children:[`They didn't respond.`,` `,(0,C.jsx)(`button`,{type:`button`,onClick:()=>void ve(y),children:`Try again`})]}),t[53]=E,t[54]=y,t[55]=ve,t[56]=Ae):Ae=t[56];let je;t[57]!==Oe||t[58]!==ke||t[59]!==Ae?(je=(0,C.jsxs)(`ol`,{className:`dlg-log`,ref:ce,role:`log`,"aria-live":`polite`,"aria-label":`The take`,children:[Oe,ke,Ae]}),t[57]=Oe,t[58]=ke,t[59]=Ae,t[60]=je):je=t[60];let Me;t[61]===D?Me=t[62]:(Me=D&&(0,C.jsxs)(`aside`,{className:`dlg-coach`,"aria-label":`Coach, between takes`,children:[(0,C.jsx)(`span`,{className:`dlg-coach-kicker`,children:`COACH — BETWEEN TAKES`}),(0,C.jsx)(`p`,{className:`dlg-coach-note`,children:D.note}),(0,C.jsx)(`p`,{className:`dlg-coach-tip`,children:D.tip})]}),t[61]=D,t[62]=Me);let R;t[63]===w?R=t[64]:(R=w===`coach`&&(0,C.jsx)(`p`,{className:`dlg-coach-wait`,children:`Coach is watching the take back…`}),t[63]=w,t[64]=R);let Ne;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=e=>te(e.target.value),t[65]=Ne):Ne=t[65];let z;t[66]===N?z=t[67]:(z=e=>{e.key===`Enter`&&N()},t[66]=N,t[67]=z);let Pe=y.length===0?`Open the conversation — your first line`:`Your next line`,B;t[68]!==b||t[69]!==z||t[70]!==Pe?(B=(0,C.jsx)(`input`,{value:b,onChange:Ne,onKeyDown:z,placeholder:Pe,"aria-label":`Your line`}),t[68]=b,t[69]=z,t[70]=Pe,t[71]=B):B=t[71];let V;t[72]!==w||t[73]!==b?(V=!b.trim()||w!==null,t[72]=w,t[73]=b,t[74]=V):V=t[74];let H;t[75]!==N||t[76]!==V?(H=(0,C.jsx)(`button`,{type:`button`,className:`dlg-say`,disabled:V,onClick:N,children:`Say it`}),t[75]=N,t[76]=V,t[77]=H):H=t[77];let U;t[78]!==B||t[79]!==H?(U=(0,C.jsxs)(`div`,{className:`dlg-compose`,children:[B,H]}),t[78]=B,t[79]=H,t[80]=U):U=t[80];let Fe;t[81]!==w||t[82]!==y?(Fe=w!==null||!y.some(re),t[81]=w,t[82]=y,t[83]=Fe):Fe=t[83];let W;t[84]===xe?W=t[85]:(W=()=>void xe(),t[84]=xe,t[85]=W);let G;t[86]!==Fe||t[87]!==W?(G=(0,C.jsx)(`button`,{type:`button`,className:`dlg-end-take`,disabled:Fe,onClick:W,children:`End take · get coached`}),t[86]=Fe,t[87]=W,t[88]=G):G=t[88];let K;t[89]===m?K=t[90]:(K=(0,C.jsx)(`button`,{type:`button`,className:`dlg-followup-btn ghost`,onClick:m,children:`Adjust the brief`}),t[89]=m,t[90]=K);let q;t[91]!==p||t[92]!==n?(q=p&&(0,C.jsx)(`button`,{type:`button`,className:`dlg-real-debrief`,onClick:()=>p(S(n)),title:`Had the real conversation? Tell Mavéa how it went.`,children:`Debrief the real one`}),t[91]=p,t[92]=n,t[93]=q):q=t[93];let J;t[94]!==G||t[95]!==K||t[96]!==q?(J=(0,C.jsxs)(`div`,{className:`dlg-take-actions`,children:[G,K,q]}),t[94]=G,t[95]=K,t[96]=q,t[97]=J):J=t[97];let Ie;return t[98]!==De||t[99]!==je||t[100]!==Me||t[101]!==R||t[102]!==U||t[103]!==J?(Ie=(0,C.jsxs)(`div`,{className:`dlg-table`,"data-seat":`you`,children:[Ce,De,je,Me,R,U,J]}),t[98]=De,t[99]=je,t[100]=Me,t[101]=R,t[102]=U,t[103]=J,t[104]=Ie):Ie=t[104],Ie}function re(e){return e.who===`you`}function T(e){return e+1}var ie=`Reply with ONLY a JSON object (no prose, no fences):
6
+ {"say": "<ONE short spoken line for the negotiation log>", "offer": "<the full current proposal in plain words, or null>", "decision": "offer" | "accept" | "pass"}
7
+ "accept" means you take the OTHER side's standing offer as-is (only when one exists). "pass" ends the talks with no deal. Keep every "say" under 25 words.`;function E(e){return`You are the user's Mavéa, negotiating on their behalf with ${e.counterpart}'s side.
8
+ THE GOAL: ${e.goal}
9
+ YOU MAY OFFER (nothing else exists): ${e.mine}
10
+ ${e.boundaries.length?`HARD BOUNDARIES — these are NEVER offered, in any form: ${e.boundaries.join(`; `)}`:``}
11
+ You are at the table to REACH an agreement the goal can live with, not to demonstrate firmness: open your first move with a concrete offer near the goal (never pass on your first move), concede in small steps toward the middle, and accept a standing offer when it clearly serves the goal. Walking away is a last resort for a genuinely unacceptable table, not a default. ${ie}`}function ae(e){return`You are a stand-in negotiator for ${e.counterpart}. Everything you know about ${e.counterpart}'s side: ${e.theirs}
12
+ Argue that side's interest in GOOD FAITH: counter with concrete terms rather than walking away, concede only for real gains, and accept a standing offer when it is genuinely fair to ${e.counterpart}. Never pass on your first move, and never invent assets the brief above doesn't mention. ${ie}`}function D(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`);if(t<0||n<=t)return null;try{let r=JSON.parse(e.slice(t,n+1)),i=typeof r.say==`string`?r.say.trim():``,a=typeof r.offer==`string`&&r.offer.trim()?r.offer.trim():null,o=r.decision===`accept`||r.decision===`pass`||r.decision===`offer`?r.decision:`offer`;return i?{say:i,offer:a,decision:o}:null}catch{return null}}var oe=e=>e.toLowerCase().replace(/[\s,]/g,``);function se(e,t){let n=oe(e);for(let e of t){let t=oe(e);if(t&&n.includes(t))return e}return null}function ce(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.offer&&(n.side===`yours`||n.side===`theirs`))return{offer:n.offer,by:n.side}}return null}function O(e){let t=new Set,n=[];for(let r of e.split(/(?<!\d)[,;\n]|[,;\n](?!\d)/)){let e=r.trim();if(!e)continue;let i=e.toLowerCase();t.has(i)||(t.add(i),n.push(e))}return n}function le(e,t){return e.length===0?`(no moves yet — you open)`:e.map(e=>`${e.side===`yours`?`YOUR SIDE`:e.side===`theirs`?`${t.counterpart}'S SIDE`:`—`}: ${e.say}${e.offer?` [standing offer: ${e.offer}]`:``}`).join(`
13
+ `)}async function ue(e,t,n,r){let i=[],a=e=>{i.push(e),n(e)},o=e.maxRounds??8,s=null,c=null,l=0;for(;l<o&&!c&&!r?.aborted;l++){let n=l%2==0?`yours`:`theirs`,o=n===`yours`?E(e):ae(e),u=`Negotiation so far:\n${le(i,e)}\nYour move.`,d=null,f=!i.some(e=>e.side===n),p=!1;for(let i=0;i<3;i++){let i=await t(o,u).catch(()=>``);if(r?.aborted)break;if(d=D(i),!d){p=!0,u+=`
14
+ Your last reply was not the required JSON object. Reply with ONLY {"say":…, "offer":…, "decision":…} — no prose, no fences.`;continue}if(p=!1,f&&d.decision===`pass`){u+=`
15
+ It is too early to end the talks — the table deserves your best concrete move first. Make an offer or a counter.`,d=null;continue}let s=n===`yours`&&d.offer?se(d.offer,e.boundaries):null;if(!s)break;a({side:`engine`,kind:`boundary`,say:`Withheld — "${s}" is outside your boundary.`}),u+=`\nYour previous offer was WITHHELD: it included "${s}", which is never offered. Make a different move.`,d=null}if(r?.aborted)break;if(!d){a({side:n,kind:`pass`,say:p?`No reply arrived — the run ended early.`:`No further moves.`});break}if(d.decision===`accept`&&s&&s.by!==n){c=s.offer,a({side:n,kind:`accept`,say:d.say,offer:c});break}if(d.decision===`pass`||d.decision===`accept`&&(!s||s.by===n)){a({side:n,kind:`pass`,say:d.say});break}d.offer&&(s={offer:d.offer,by:n}),a({side:n,kind:i.some(e=>e.kind===`offer`||e.kind===`counter`)?`counter`:`offer`,say:d.say,offer:d.offer??void 0})}return{events:i,deal:c,rounds:l}}var k=`Reply with ONLY a JSON object (no prose, no fences):
16
+ {"moved": [{"point": "<an argument the user's side made that the other side visibly responded to>", "turn": <the 1-based line number it happened on>}],
17
+ "exposed": [{"point": "<something the other side pushed that the user's side had no good answer for>", "turn": <line number>}],
18
+ "openers": ["<a line to open the REAL conversation with>", "...", "..."]}
19
+ "moved" and "exposed" may each be an empty array when the transcript doesn't support them — never invent one just to fill the slot — and otherwise at most 2 entries each. "openers" is up to 3 short lines (under 20 words), each usable as-is, grounded only in the brief and transcript below. Cite ONLY real line numbers from the transcript; never invent facts, numbers, or concessions.`;function A(e){return e?`They agreed: ${e}.`:`No deal was reached.`}function de(e,t){return e.map((e,n)=>{let r=e.side===`yours`?`YOUR SIDE`:e.side===`theirs`?`${t.counterpart}'S SIDE`:`REFEREE`;return`${n+1}. ${r}: ${e.say}${e.offer?` [standing offer: ${e.offer}]`:``}`}).join(`
20
+ `)}function j(e,t,n){return{system:`You are a negotiation coach reviewing a practice run. Judge ONLY the numbered transcript below — never anything outside it. ${k}`,user:`THE GOAL: ${e.goal}
21
+ WHAT THE USER COULD OFFER: ${e.mine}
22
+ ${e.counterpart.toUpperCase()}'S POSITION, AS THE USER DESCRIBED IT: ${e.theirs}
23
+ THE TRANSCRIPT:
24
+ ${de(t,e)}
25
+ OUTCOME: ${A(n)}`}}function fe(e,t){let n=e.indexOf(`{`),r=e.lastIndexOf(`}`);if(n<0||r<=n)return null;try{let i=JSON.parse(e.slice(n,r+1)),a=e=>{if(!Array.isArray(e))return[];let n=[];for(let r of e){if(n.length>=2)break;if(!r||typeof r!=`object`)continue;let e=r,i=typeof e.point==`string`?e.point.trim():``;if(!i)continue;let a=typeof e.turn==`number`&&e.turn>=1&&e.turn<=t?Math.trunc(e.turn):null;n.push({point:i,turn:a})}return n},o=a(i.moved),s=a(i.exposed),c=Array.isArray(i.openers)?i.openers.filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()).slice(0,3):[];return!o.length&&!s.length&&!c.length?null:{moved:o,exposed:s,openers:c}}catch{return null}}async function pe(e,t,n,r,i){if(i?.aborted)return null;let{system:a,user:o}=j(e,t,n),s=await r(a,o).catch(()=>``);return i?.aborted||!s?null:fe(s,t.length)}function me(e,t,n){return`I ran a practice negotiation as a rehearsal: my Mavéa argued my side against a stand-in for ${e.counterpart}, built only from my own notes. Nothing was sent to anyone — this was a scouting run on my own key.
26
+ My goal: ${e.goal}
27
+ What I could offer: ${e.mine}
28
+ ${e.counterpart}'s position, as I described it: ${e.theirs}
29
+ The full exchange:
30
+ ${de(t,e)}
31
+ Outcome: ${A(n)}
32
+ Help me prepare for the real conversation: what to open with, where my case is weakest, and how to phrase my strongest point. Work only from this transcript and brief — invent nothing about ${e.counterpart}.`}function he(e){let t=`Negotiation prep: ${e.trim()}`;return t.length>60?`${t.slice(0,57)}…`:t}function ge(e,t,n=1200){return async(r,i)=>{let a=await c(e.provider).generate({system:r,history:[],user:i,maxTokens:n,temperature:.7,thinkingLevel:`minimal`,signal:t},e);return typeof a.raw==`string`?a.raw:JSON.stringify(a.raw)}}var M=1200,_e=[{tag:`Ask for a raise`,counterpart:`Priya`,goal:`A raise to $95k, up from $82k, this cycle`,mine:`I led the billing migration and can mentor two juniors`,theirs:`My manager. Budget's tight this quarter; she values retention and won't set precedents`,boundaries:`working weekends, a title bump instead of pay`},{tag:`Buy a used car`,counterpart:`the dealer`,goal:`Get the 2019 Civic to $14,000 out the door`,mine:`Pay cash today, skip the extended warranty, take it as-is`,theirs:`Wants it off the lot this month; won't budge on the doc fee`,boundaries:`going above $15,000, financing through them`},{tag:`Split the rent`,counterpart:`Sam`,goal:`Split rent by room size — I take the smaller room for $200 less`,mine:`I'll set up the utilities and cover the parking spot`,theirs:`My roommate. Thinks a straight 50/50 split is only fair, and always pays on time`,boundaries:`paying more than half`}],ve=e=>`${Math.floor(e/60)}:${String(e%60).padStart(2,`0`)}`;function ye(){let e=(0,d.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,C.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:(0,C.jsx)(`path`,{d:`M6 6l12 12M18 6L6 18`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`})}),e[0]=t):t=e[0],t}function N(){let e=(0,d.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,C.jsxs)(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{d:`M12 3l7 2.5v5c0 4.4-2.9 8-7 9.5-4.1-1.5-7-5.1-7-9.5v-5L12 3z`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinejoin:`round`}),(0,C.jsx)(`path`,{d:`M9 12l2 2 4-4.5`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`})]}),e[0]=t):t=e[0],t}function be(){let e=(0,d.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,C.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:(0,C.jsx)(`path`,{d:`M4 12.5l5 5 11-12`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),e[0]=t):t=e[0],t}function xe(e){let t=(0,d.c)(6),{side:n,name:r}=e,i=n===`yours`,a=`dlg-side ${n}`,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,C.jsx)(`span`,{className:`dlg-avatar`,"aria-hidden":`true`}),t[0]=o):o=t[0];let s=i?`Your Mavéa`:r,c;t[1]===s?c=t[2]:(c=(0,C.jsx)(`span`,{className:`dlg-side-text`,children:(0,C.jsx)(`span`,{className:`dlg-side-name`,children:s})}),t[1]=s,t[2]=c);let l;return t[3]!==a||t[4]!==c?(l=(0,C.jsxs)(`span`,{className:a,children:[o,c]}),t[3]=a,t[4]=c,t[5]=l):l=t[5],l}function Se(e){let t=(0,d.c)(10),{turns:n,running:r}=e,i=r?Math.min(n+1,8):n,a=r?`Round ${i} of 8`:`${n} turns`,o=r?`Round ${i}`:`${n} turn${n===1?``:`s`}`,s;t[0]===o?s=t[1]:(s=(0,C.jsx)(`span`,{className:`dlg-rounds-label`,children:o}),t[0]=o,t[1]=s);let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=Array.from({length:8}),t[2]=c):c=t[2];let l;t[3]!==r||t[4]!==n?(l=(0,C.jsx)(`span`,{className:`dlg-rounds-track`,"aria-hidden":`true`,children:c.map((e,t)=>(0,C.jsx)(`i`,{className:t<n?`on`:t===n&&r?`now`:``},t))}),t[3]=r,t[4]=n,t[5]=l):l=t[5];let u;return t[6]!==a||t[7]!==s||t[8]!==l?(u=(0,C.jsxs)(`div`,{className:`dlg-rounds`,"aria-label":a,children:[s,l]}),t[6]=a,t[7]=s,t[8]=l,t[9]=u):u=t[9],u}function P(e){let t=(0,d.c)(15),{label:n,onConfirm:r}=e,[i,a]=(0,u.useState)(!1),o=(0,u.useRef)(void 0),s;t[0]===r?s=t[1]:(s=()=>{window.clearTimeout(o.current),a(!0),o.current=window.setTimeout(()=>{a(!1),r()},M)},t[0]=r,t[1]=s);let c=s,l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{a(!1),window.clearTimeout(o.current)},t[2]=l):l=t[2];let f=l,p,m;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>window.clearTimeout(o.current),m=[],t[3]=p,t[4]=m):(p=t[3],m=t[4]),(0,u.useEffect)(p,m);let h=`dlg-hold`+(i?` holding`:``),g;t[5]===c?g=t[6]:(g=e=>{e.repeat||(e.key===`Enter`||e.key===` `)&&c()},t[5]=c,t[6]=g);let _;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,C.jsx)(`span`,{className:`dlg-hold-fill`,"aria-hidden":`true`}),t[7]=_):_=t[7];let v;t[8]===n?v=t[9]:(v=(0,C.jsx)(`span`,{className:`dlg-hold-label`,children:n}),t[8]=n,t[9]=v);let y;return t[10]!==c||t[11]!==h||t[12]!==g||t[13]!==v?(y=(0,C.jsxs)(`button`,{type:`button`,className:h,onPointerDown:c,onPointerUp:f,onPointerLeave:f,onKeyDown:g,onKeyUp:f,children:[_,v]}),t[10]=c,t[11]=h,t[12]=g,t[13]=v,t[14]=y):y=t[14],y}function Ce(e){let t=(0,d.c)(5),[n,r]=(0,u.useState)(null),i=(0,u.useRef)(void 0),a=(0,u.useRef)(0),o,s;t[0]===e?(o=t[1],s=t[2]):(o=()=>{if(e.length===a.current)return;a.current=e.length,window.clearTimeout(i.current);let t=e[e.length-1];if(!t||t.side===`engine`){r(null);return}let n=!!t.offer;r({side:t.side,offer:n,pointing:!1}),t.side===`yours`&&n?i.current=window.setTimeout(()=>{r({side:`yours`,offer:!0,pointing:!0}),i.current=window.setTimeout(()=>r(null),p)},f):i.current=window.setTimeout(()=>r(null),f)},s=[e],t[0]=e,t[1]=o,t[2]=s),(0,u.useEffect)(o,s);let c,l;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>()=>window.clearTimeout(i.current),l=[],t[3]=c,t[4]=l):(c=t[3],l=t[4]),(0,u.useEffect)(c,l),n}function we(e,t){return e.side===`yours`?`Your Mavéa`:e.side===`theirs`?`${t}’s stand-in`:`Referee`}function F(e){let t=(0,d.c)(21),{debrief:n,events:r,themLabel:i,onRetry:a}=e;if(n===`idle`)return null;if(n===`loading`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsxs)(`div`,{className:`dlg-debrief`,"data-state":`loading`,children:[(0,C.jsx)(`span`,{className:`dlg-debrief-eyebrow`,children:`Debrief — drawn from this run`}),(0,C.jsx)(`p`,{className:`dlg-debrief-wait`,children:`Reading back what happened…`})]}),t[0]=e):e=t[0],e}if(n===`failed`){let e,n;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsx)(`span`,{className:`dlg-debrief-eyebrow`,children:`Debrief — drawn from this run`}),n=(0,C.jsx)(`p`,{className:`dlg-debrief-wait`,children:`Couldn’t draw a debrief from this run.`}),t[1]=e,t[2]=n):(e=t[1],n=t[2]);let r;return t[3]===a?r=t[4]:(r=(0,C.jsxs)(`div`,{className:`dlg-debrief`,"data-state":`failed`,children:[e,n,(0,C.jsx)(`button`,{type:`button`,className:`dlg-debrief-retry`,onClick:a,children:`Try again`})]}),t[3]=a,t[4]=r),r}let o;t[5]!==r||t[6]!==i?(o=e=>{if(e===null)return null;let t=r[e-1];return t?(0,C.jsxs)(`p`,{className:`dlg-debrief-quote`,children:[(0,C.jsx)(`span`,{className:`dlg-debrief-quote-who`,children:we(t,i)}),`“${t.say}”`]}):null},t[5]=r,t[6]=i,t[7]=o):o=t[7];let s=o,c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,C.jsx)(`span`,{className:`dlg-debrief-eyebrow`,children:`Debrief — drawn from this run`}),t[8]=c):c=t[8];let l;t[9]!==n.moved||t[10]!==s?(l=n.moved.length>0&&(0,C.jsxs)(`div`,{className:`dlg-debrief-group`,children:[(0,C.jsx)(`h4`,{children:`What moved them`}),(0,C.jsx)(`ul`,{children:n.moved.map((e,t)=>(0,C.jsxs)(`li`,{children:[(0,C.jsx)(`p`,{className:`dlg-debrief-point`,children:e.point}),s(e.turn)]},t))})]}),t[9]=n.moved,t[10]=s,t[11]=l):l=t[11];let u;t[12]!==n.exposed||t[13]!==s?(u=n.exposed.length>0&&(0,C.jsxs)(`div`,{className:`dlg-debrief-group`,children:[(0,C.jsx)(`h4`,{children:`Where you’re exposed`}),(0,C.jsx)(`ul`,{children:n.exposed.map((e,t)=>(0,C.jsxs)(`li`,{children:[(0,C.jsx)(`p`,{className:`dlg-debrief-point`,children:e.point}),s(e.turn)]},t))})]}),t[12]=n.exposed,t[13]=s,t[14]=u):u=t[14];let f;t[15]===n.openers?f=t[16]:(f=n.openers.length>0&&(0,C.jsxs)(`div`,{className:`dlg-debrief-group`,children:[(0,C.jsx)(`h4`,{children:`Say this first`}),(0,C.jsx)(`ol`,{className:`dlg-debrief-openers`,children:n.openers.map(I)}),(0,C.jsx)(`p`,{className:`dlg-debrief-footnote`,children:`Mavéa’s suggestions, drawn from the run above — the stand-in only knows what you wrote.`})]}),t[15]=n.openers,t[16]=f);let p;return t[17]!==l||t[18]!==u||t[19]!==f?(p=(0,C.jsxs)(`div`,{className:`dlg-debrief`,"data-state":`ready`,children:[c,l,u,f]}),t[17]=l,t[18]=u,t[19]=f,t[20]=p):p=t[20],p}function I(e,t){return(0,C.jsx)(`li`,{children:e},t)}function L(e){let t=(0,d.c)(199),{cfg:n,onClose:i,onPrepTurn:a,memoryNodes:c,speak:f,onDebrief:p}=e,m=(0,u.useRef)(null);r(m);let h=(0,u.useRef)(null),[_,v]=(0,u.useState)(`brief`),[y,ee]=(0,u.useState)(`mavea`),[b,te]=(0,u.useState)(!1),[x,ne]=(0,u.useState)(``),[S,re]=(0,u.useState)(``),[T,ie]=(0,u.useState)(``),[E,ae]=(0,u.useState)(``),[D,oe]=(0,u.useState)(``),[se,le]=(0,u.useState)(!1),k;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(k=[],t[0]=k):k=t[0];let[A,de]=(0,u.useState)(k),[j,fe]=(0,u.useState)(null),[M,we]=(0,u.useState)(!1),[I,L]=(0,u.useState)(!1),[R,Ne]=(0,u.useState)(!1),[z,Pe]=(0,u.useState)(0),[B,V]=(0,u.useState)(`idle`),H;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(H=[],t[1]=H):H=t[1];let[U,Fe]=(0,u.useState)(H),W=(0,u.useRef)(null),G=(0,u.useRef)(null),K=(0,u.useRef)(!1),q=(0,u.useRef)(!0),J,Ie;t[2]===_?(J=t[3],Ie=t[4]):(J=()=>{if(_!==`running`)return;let e=window.setInterval(()=>{l()||Pe(Me)},1e3);return()=>window.clearInterval(e)},Ie=[_],t[2]=_,t[3]=J,t[4]=Ie),(0,u.useEffect)(J,Ie);let Le,Re;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(Le=()=>()=>{q.current=!1,W.current?.abort(),G.current?.abort()},Re=[],t[5]=Le,t[6]=Re):(Le=t[5],Re=t[6]),(0,u.useEffect)(Le,Re);let ze,Be;t[7]===i?(ze=t[8],Be=t[9]):(ze=()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},Be=[i],t[7]=i,t[8]=ze,t[9]=Be),(0,u.useEffect)(ze,Be);let Ve;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=()=>{let e=h.current;e&&(e.scrollTop=e.scrollHeight)},t[10]=Ve):Ve=t[10];let He;t[11]===A?He=t[12]:(He=[A],t[11]=A,t[12]=He),(0,u.useEffect)(Ve,He);let Ue;t[13]===D?Ue=t[14]:(Ue=O(D),t[13]=D,t[14]=Ue);let We=Ue,Ge;t[15]===x?Ge=t[16]:(Ge=x.trim(),t[15]=x,t[16]=Ge);let Ke;t[17]===S?Ke=t[18]:(Ke=S.trim(),t[17]=S,t[18]=Ke);let qe;t[19]===T?qe=t[20]:(qe=T.trim(),t[19]=T,t[20]=qe);let Je;t[21]===E?Je=t[22]:(Je=E.trim(),t[21]=E,t[22]=Je);let Ye;t[23]!==We||t[24]!==Ge||t[25]!==Ke||t[26]!==qe||t[27]!==Je?(Ye={counterpart:Ge,goal:Ke,mine:qe,theirs:Je,boundaries:We},t[23]=We,t[24]=Ge,t[25]=Ke,t[26]=qe,t[27]=Je,t[28]=Ye):Ye=t[28];let Y=Ye,Xe;t[29]!==c||t[30]!==b?(Xe=b?(c??[]).map(je).join(`. `):``,t[29]=c,t[30]=b,t[31]=Xe):Xe=t[31];let Ze=Xe,Qe;t[32]===S?Qe=t[33]:(Qe=S.trim(),t[32]=S,t[33]=Qe);let $e;t[34]===x?$e=t[35]:($e=x.trim(),t[34]=x,t[35]=$e);let et;t[36]===E?et=t[37]:(et=E.trim(),t[36]=E,t[37]=et);let tt;t[38]!==Ze||t[39]!==et?(tt=[et,Ze].filter(Boolean),t[38]=Ze,t[39]=et,t[40]=tt):tt=t[40];let nt=tt.join(`
33
+ `),rt;t[41]!==Qe||t[42]!==$e||t[43]!==nt?(rt={scenario:Qe,counterpart:$e,context:nt},t[41]=Qe,t[42]=$e,t[43]=nt,t[44]=rt):rt=t[44];let it=rt,at;t[45]===A?at=t[46]:(at=ce(A),t[45]=A,t[46]=at);let ot=at,st;t[47]===A?st=t[48]:(st=A.filter(Ae),t[47]=A,t[48]=st);let ct=st.length,lt;t[49]===A?lt=t[50]:(lt=A.some(ke),t[49]=A,t[50]=lt);let ut=lt,dt=A.length>0&&A[A.length-1].side===`engine`,ft=[...A].reverse().find(Oe),pt=ft&&ft.side===`yours`?`theirs`:`yours`,mt=Ce(A),ht;bb0:{if(_===`done`){if(j&&M){let e;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(e={kind:`approved`},t[51]=e):e=t[51],ht=e;break bb0}if(j){let e;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(e={kind:`deal`},t[52]=e):e=t[52],ht=e;break bb0}if(R){let e;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(e={kind:`stopped`},t[53]=e):e=t[53],ht=e;break bb0}let e;t[54]===ut?e=t[55]:(e={kind:`nodeal`,boundaryHeld:ut},t[54]=ut,t[55]=e),ht=e;break bb0}let e;t[56]!==dt||t[57]!==mt||t[58]!==pt?(e={kind:`running`,whoseTurn:pt,guarded:dt,speaking:mt},t[56]=dt,t[57]=mt,t[58]=pt,t[59]=e):e=t[59],ht=e}let gt=ht,_t;t[60]===gt?_t=t[61]:(_t=g(gt),t[60]=gt,t[61]=_t);let vt=_t,yt;t[62]!==x||t[63]!==S||t[64]!==T||t[65]!==y||t[66]!==E?(yt=y===`you`?!!(x.trim()&&S.trim()):!!(x.trim()&&S.trim()&&T.trim()&&E.trim()),t[62]=x,t[63]=S,t[64]=T,t[65]=y,t[66]=E,t[67]=yt):yt=t[67];let X=yt,bt;t[68]===x?bt=t[69]:(bt=x.trim()||`the other side`,t[68]=x,t[69]=bt);let Z=bt,xt;t[70]!==D||t[71]!==x||t[72]!==S||t[73]!==T||t[74]!==E?(xt=e=>x===e.counterpart&&S===e.goal&&T===e.mine&&E===e.theirs&&D===e.boundaries,t[70]=D,t[71]=x,t[72]=S,t[73]=T,t[74]=E,t[75]=xt):xt=t[75];let St=xt,Ct,wt,Q,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,$;if(t[76]!==D||t[77]!==We||t[78]!==Y||t[79]!==n||t[80]!==x||t[81]!==j||t[82]!==A||t[83]!==S||t[84]!==c||t[85]!==T||t[86]!==i||t[87]!==a||t[88]!==X||t[89]!==y||t[90]!==St||t[91]!==se||t[92]!==_||t[93]!==E||t[94]!==b){let e=e=>{ne(e.counterpart),re(e.goal),ie(e.mine),ae(e.theirs),oe(e.boundaries),le(!1),requestAnimationFrame(()=>{q.current&&le(!0)})},r;t[114]!==Y||t[115]!==n?(r=(e,t)=>{V(`loading`);let r=new AbortController;G.current=r,pe(Y,e,t,ge(n,r.signal,1600),r.signal).then(e=>{!q.current||r.signal.aborted||V(e??`failed`)})},t[114]=Y,t[115]=n,t[116]=r):r=t[116],Q=r;let l;t[117]!==Y||t[118]!==n||t[119]!==X||t[120]!==Q?(l=()=>{if(!X)return;let e=new AbortController;W.current=e,G.current?.abort(),de([]),fe(null),we(!1),L(!1),Ne(!1),K.current=!1,Pe(0),V(`idle`),v(`running`),ue(Y,ge(n,e.signal),e=>{q.current&&de(t=>[...t,e])},e.signal).then(e=>{if(!q.current)return;fe(e.deal),v(`done`);let t=e.events.filter(De).length;Fe(n=>[...n,{n:n.length+1,outcome:K.current?`stopped`:e.deal?`deal`:`nodeal`,deal:e.deal,turns:t}]),!K.current&&t>=2&&Q(e.events,e.deal)}).catch(()=>{q.current&&v(`done`)})},t[117]=Y,t[118]=n,t[119]=X,t[120]=Q,t[121]=l):l=t[121],Ct=l;let u;t[122]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{K.current=!0,Ne(!0),W.current?.abort()},t[122]=u):u=t[122],Tt=u;let d;t[123]!==Y||t[124]!==j||t[125]!==A||t[126]!==a?(d=()=>{a?.(me(Y,A,j),he(Y.goal))},t[123]=Y,t[124]=j,t[125]=A,t[126]=a,t[127]=d):d=t[127],wt=d,Ft=`dlg-scrim`,t[128]===i?It=t[129]:(It=e=>{e.target===e.currentTarget&&i()},t[128]=i,t[129]=It),Lt=`button`,Rt=0,zt=`Close`,t[130]===i?$=t[131]:($=e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),i())},t[130]=i,t[131]=$),Et=`dlg-panel`,Dt=m,Ot=-1,kt=`dialog`,At=`true`,jt=`The Rehearsal — practice a hard conversation`,Mt=_;let f;t[132]!==X||t[133]!==_?(f=_===`brief`&&(0,C.jsx)(`span`,{className:`dlg-jelly brief`,"aria-hidden":`true`,children:(0,C.jsx)(s,{state:X?`thinking`:`reading`,gaze:X?`center`:`down`})}),t[132]=X,t[133]=_,t[134]=f):f=t[134];let p;t[135]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,C.jsx)(`h2`,{children:`The Rehearsal`}),t[135]=p):p=t[135];let h=_===`brief`?`Practice the conversation before you have it for real`:y===`you`?`Your take — say it like you will for real`:`Two agents, talking it out on your key`,g;t[136]===h?g=t[137]:(g=(0,C.jsxs)(`div`,{className:`dlg-title`,children:[p,(0,C.jsx)(`p`,{className:`dlg-kicker`,children:h})]}),t[136]=h,t[137]=g);let w;t[138]!==f||t[139]!==g?(w=(0,C.jsxs)(`div`,{className:`dlg-head-id`,children:[f,g]}),t[138]=f,t[139]=g,t[140]=w):w=t[140];let ce;t[141]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,C.jsx)(ye,{}),t[141]=ce):ce=t[141];let O;t[142]===i?O=t[143]:(O=(0,C.jsx)(`button`,{type:`button`,className:`dlg-x`,onClick:i,"aria-label":`Close`,children:ce}),t[142]=i,t[143]=O),t[144]!==w||t[145]!==O?(Nt=(0,C.jsxs)(`header`,{className:`dlg-head`,children:[w,O]}),t[144]=w,t[145]=O,t[146]=Nt):Nt=t[146],Pt=_===`brief`&&(0,C.jsxs)(`form`,{className:`dlg-brief`,onSubmit:e=>{e.preventDefault(),y===`you`?X&&v(`running`):Ct()},children:[(0,C.jsxs)(`p`,{className:`dlg-lede`,children:[`The other side is a `,(0,C.jsx)(`strong`,{children:`stand-in`}),`, played only from what you write here — nothing is sent to them.`]}),(0,C.jsxs)(`div`,{className:`dlg-seatpick`,role:`radiogroup`,"aria-label":`Who sits on your side`,children:[(0,C.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":y===`mavea`,className:`dlg-seatpick-opt`,onClick:()=>ee(`mavea`),children:[(0,C.jsx)(`span`,{className:`dlg-seatpick-name`,children:`Send your Mavéa`}),(0,C.jsx)(`span`,{className:`dlg-seatpick-sub`,children:`Two agents talk it out while you watch`})]}),(0,C.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":y===`you`,className:`dlg-seatpick-opt`,onClick:()=>ee(`you`),children:[(0,C.jsx)(`span`,{className:`dlg-seatpick-name`,children:`Take the seat yourself`}),(0,C.jsx)(`span`,{className:`dlg-seatpick-sub`,children:`You say your lines; they answer in character, out loud`})]})]}),(0,C.jsx)(o,{kind:`simulation`,from:`live`}),(0,C.jsxs)(`div`,{className:`dlg-seeds`,role:`group`,"aria-label":`Start from an example`,children:[(0,C.jsx)(`span`,{className:`dlg-seeds-label`,children:`Try one`}),_e.map(t=>(0,C.jsx)(`button`,{type:`button`,className:`dlg-seed`,"aria-pressed":St(t),onClick:()=>e(t),children:t.tag},t.tag))]}),(0,C.jsxs)(`fieldset`,{className:`dlg-group`+(se?` dlg-seed-fill`:``),children:[(0,C.jsx)(`legend`,{children:`The other side`}),(0,C.jsxs)(`label`,{className:`dlg-field`,children:[(0,C.jsx)(`span`,{className:`dlg-field-name`,children:`Who you're negotiating with`}),(0,C.jsx)(`input`,{value:x,onChange:e=>ne(e.target.value),placeholder:`Priya, my manager`})]}),(0,C.jsxs)(`label`,{className:`dlg-field`,children:[(0,C.jsx)(`span`,{className:`dlg-field-name`,children:`Their position, as you see it`}),(0,C.jsx)(`textarea`,{rows:2,value:E,onChange:e=>ae(e.target.value),placeholder:`Budget's tight this quarter; she values retention and won't set precedents`}),(0,C.jsx)(`span`,{className:`dlg-field-hint`,children:y===`you`?`This is all they'll know — where it runs out, they play the role straight instead of pretending to know the real person.`:`This is all the stand-in knows — it argues only from this.`})]}),y===`you`&&c&&c.length>0&&(0,C.jsxs)(`label`,{className:`dlg-memory`,children:[(0,C.jsx)(`input`,{type:`checkbox`,checked:b,onChange:e=>te(e.target.checked)}),`Also ground them in what Mavéa remembers (`,c.length,` `,c.length===1?`concept`:`concepts`,`)`]})]}),(0,C.jsxs)(`fieldset`,{className:`dlg-group`+(se?` dlg-seed-fill`:``),children:[(0,C.jsx)(`legend`,{children:`Your side`}),(0,C.jsxs)(`label`,{className:`dlg-field`,children:[(0,C.jsx)(`span`,{className:`dlg-field-name`,children:`What you're after`}),(0,C.jsx)(`input`,{value:S,onChange:e=>re(e.target.value),placeholder:`A raise to $95k, up from $82k, this cycle`})]}),y===`mavea`&&(0,C.jsxs)(`label`,{className:`dlg-field`,children:[(0,C.jsx)(`span`,{className:`dlg-field-name`,children:`What you'll put on the table`}),(0,C.jsx)(`textarea`,{rows:2,value:T,onChange:e=>ie(e.target.value),placeholder:`I led the billing migration; I can mentor two juniors`})]})]}),y===`mavea`&&(0,C.jsxs)(`fieldset`,{className:`dlg-group dlg-group-line`+(se?` dlg-seed-fill`:``),children:[(0,C.jsxs)(`legend`,{children:[`Your line `,(0,C.jsx)(`span`,{className:`dlg-enforced`,children:`enforced`})]}),(0,C.jsx)(`p`,{className:`dlg-line-note`,children:`Mavéa never offers these. Every proposal is checked in code, and any that crosses your line is pulled back — not just discouraged.`}),(0,C.jsxs)(`label`,{className:`dlg-field`,children:[(0,C.jsx)(`span`,{className:`dlg-field-name sr-only`,children:`Never offer`}),(0,C.jsx)(`input`,{value:D,onChange:e=>oe(e.target.value),placeholder:`working weekends, a title bump instead of pay`})]}),We.length>0&&(0,C.jsx)(`ul`,{className:`dlg-line-chips`,"aria-hidden":`true`,children:We.map(Ee)})]}),(0,C.jsxs)(`div`,{className:`dlg-brief-actions`,children:[(0,C.jsx)(`button`,{type:`submit`,className:`dlg-start`,disabled:!X,children:y===`you`?`Start take 1`:`Start the negotiation`}),(0,C.jsx)(`span`,{className:`dlg-brief-cost`,children:y===`you`?`one short call per line, one for the coach`:`≈ one answer's worth of calls, debrief included`})]})]}),t[76]=D,t[77]=We,t[78]=Y,t[79]=n,t[80]=x,t[81]=j,t[82]=A,t[83]=S,t[84]=c,t[85]=T,t[86]=i,t[87]=a,t[88]=X,t[89]=y,t[90]=St,t[91]=se,t[92]=_,t[93]=E,t[94]=b,t[95]=Ct,t[96]=wt,t[97]=Q,t[98]=Tt,t[99]=Et,t[100]=Dt,t[101]=Ot,t[102]=kt,t[103]=At,t[104]=jt,t[105]=Mt,t[106]=Nt,t[107]=Pt,t[108]=Ft,t[109]=It,t[110]=Lt,t[111]=Rt,t[112]=zt,t[113]=$}else Ct=t[95],wt=t[96],Q=t[97],Tt=t[98],Et=t[99],Dt=t[100],Ot=t[101],kt=t[102],At=t[103],jt=t[104],Mt=t[105],Nt=t[106],Pt=t[107],Ft=t[108],It=t[109],Lt=t[110],Rt=t[111],zt=t[112],$=t[113];let Bt;t[147]!==n||t[148]!==p||t[149]!==it||t[150]!==y||t[151]!==f||t[152]!==_||t[153]!==Z?(Bt=_!==`brief`&&y===`you`&&(0,C.jsx)(w,{setup:it,themLabel:Z,cfg:n,speak:f,onDebrief:p,onAdjustBrief:()=>v(`brief`)}),t[147]=n,t[148]=p,t[149]=it,t[150]=y,t[151]=f,t[152]=_,t[153]=Z,t[154]=Bt):Bt=t[154];let Vt;t[155]!==M||t[156]!==Ct||t[157]!==ut||t[158]!==I||t[159]!==x||t[160]!==j||t[161]!==B||t[162]!==z||t[163]!==A||t[164]!==wt||t[165]!==vt||t[166]!==i||t[167]!==a||t[168]!==U||t[169]!==y||t[170]!==_||t[171]!==ot||t[172]!==Q||t[173]!==Tt||t[174]!==R||t[175]!==Z||t[176]!==ct||t[177]!==pt?(Vt=_!==`brief`&&y===`mavea`&&(0,C.jsxs)(`div`,{className:`dlg-table`,children:[(0,C.jsxs)(`div`,{className:`dlg-tablescape`,children:[(0,C.jsxs)(`div`,{className:`dlg-seat yours`,children:[(0,C.jsx)(`span`,{className:`dlg-jelly`,"aria-hidden":`true`,children:(0,C.jsx)(s,{...vt.yours})}),(0,C.jsx)(`span`,{className:`dlg-seat-name`,children:`Your Mavéa`})]}),(0,C.jsxs)(`div`,{className:`dlg-meta`,children:[(0,C.jsx)(Se,{turns:ct,running:_===`running`}),(0,C.jsx)(`span`,{className:`dlg-clock tab-num`,"aria-label":`${z} seconds elapsed`,children:ve(z)})]}),(0,C.jsxs)(`div`,{className:`dlg-seat theirs`,children:[(0,C.jsx)(`span`,{className:`dlg-jelly ghost`,"aria-hidden":`true`,children:(0,C.jsx)(s,{...vt.theirs})}),(0,C.jsx)(`span`,{className:`dlg-seat-name`,children:x}),(0,C.jsx)(`span`,{className:`dlg-seat-tag`,children:`stand-in`})]})]}),(0,C.jsxs)(`div`,{className:`dlg-offer`,"data-empty":ot?void 0:!0,"data-by":ot?.by,children:[(0,C.jsx)(`span`,{className:`dlg-offer-eyebrow`,children:`On the table`}),ot?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`p`,{className:`dlg-offer-text`,children:ot.offer},ot.offer),(0,C.jsx)(`span`,{className:`dlg-offer-by`,children:ot.by===`yours`?`Your Mavéa proposed this`:`${Z}'s stand-in countered`})]}):(0,C.jsx)(`p`,{className:`dlg-offer-empty`,children:_===`running`?`Opening the table…`:`No offer was tabled.`})]}),(0,C.jsxs)(`ol`,{className:`dlg-log`,ref:h,role:`log`,"aria-live":`polite`,"aria-label":`The exchange`,children:[A.map((e,t)=>e.side===`engine`?(0,C.jsxs)(`li`,{className:`dlg-referee`,children:[(0,C.jsx)(N,{}),(0,C.jsx)(`span`,{children:e.say})]},t):(0,C.jsxs)(`li`,{className:`dlg-turn ${e.side} ${e.kind}`,children:[(0,C.jsx)(xe,{side:e.side,name:x}),(0,C.jsx)(`p`,{className:`dlg-turn-say`,children:e.say}),e.offer&&e.kind!==`accept`&&(0,C.jsx)(`span`,{className:`dlg-turn-tag`,children:`Now on the table`}),e.kind===`accept`&&(0,C.jsx)(`span`,{className:`dlg-turn-tag agreed`,children:`Accepted`})]},t)),_===`running`&&(0,C.jsxs)(`li`,{className:`dlg-turn ${pt} thinking`,"aria-hidden":`true`,children:[(0,C.jsx)(xe,{side:pt,name:x}),(0,C.jsxs)(`span`,{className:`dlg-typing`,children:[(0,C.jsx)(`i`,{}),(0,C.jsx)(`i`,{}),(0,C.jsx)(`i`,{})]})]})]}),_===`running`&&(0,C.jsx)(`div`,{className:`dlg-foot`,children:(0,C.jsx)(`button`,{type:`button`,className:`dlg-stop`,onClick:Tt,children:`Stop`})}),_===`done`&&j&&!M&&(0,C.jsxs)(`div`,{className:`dlg-result deal`,children:[(0,C.jsxs)(`div`,{className:`dlg-result-head`,children:[(0,C.jsx)(`span`,{className:`dlg-result-mark`,children:(0,C.jsx)(be,{})}),(0,C.jsx)(`h3`,{children:`Both Mavéas agreed`})]}),(0,C.jsx)(`p`,{className:`dlg-result-terms`,children:j}),(0,C.jsxs)(`p`,{className:`dlg-result-honest`,children:[`Pending both humans — nothing's been sent. Approve your side and you'll get the summary to send to `,Z,` yourself.`]}),(0,C.jsx)(F,{debrief:B,events:A,themLabel:Z,onRetry:()=>Q(A,j)}),(0,C.jsxs)(`div`,{className:`dlg-result-actions`,children:[(0,C.jsx)(P,{label:`Hold to approve your side`,onConfirm:()=>{we(!0),navigator.clipboard?.writeText(`Proposed deal with ${x}: ${j}`).then(()=>L(!0)).catch(()=>L(!1))}}),(0,C.jsx)(`button`,{type:`button`,className:`dlg-pass`,onClick:i,children:`Not yet`})]})]}),_===`done`&&j&&M&&(0,C.jsxs)(`div`,{className:`dlg-result approved`,children:[(0,C.jsxs)(`div`,{className:`dlg-result-head`,children:[(0,C.jsx)(`span`,{className:`dlg-result-mark`,children:(0,C.jsx)(be,{})}),(0,C.jsx)(`h3`,{children:`Approved on your side`})]}),(0,C.jsx)(`p`,{className:`dlg-result-terms`,children:j}),(0,C.jsx)(`p`,{className:`dlg-result-honest`,children:I?`The summary's on your clipboard. ${Z} still has to say yes for real — you send it.`:`${Z} still has to say yes for real — copy the summary above and send it yourself.`}),(0,C.jsx)(F,{debrief:B,events:A,themLabel:Z,onRetry:()=>Q(A,j)}),(0,C.jsx)(`button`,{type:`button`,className:`dlg-done`,onClick:i,children:`Done`})]}),_===`done`&&!j&&(0,C.jsxs)(`div`,{className:`dlg-result nodeal`,children:[(0,C.jsxs)(`div`,{className:`dlg-result-head`,children:[(0,C.jsx)(`span`,{className:`dlg-result-mark line`,"aria-hidden":`true`}),(0,C.jsx)(`h3`,{children:R?`Stopped`:ut?`No deal — your line held`:`No deal this run`})]}),(0,C.jsx)(`p`,{className:`dlg-result-honest`,children:R?`You called it off — nothing was sent.`:ut?`Mavéa pulled back every offer that crossed your line, and the sides couldn’t meet without it. Nothing was sent — that’s the point of scouting. Here’s where your case got tested.`:`The two sides couldn’t meet in ${ct} turn${ct===1?``:`s`}. Nothing was sent — that’s the point of scouting. Here’s where your case got tested.`}),R&&ct>=2&&B===`idle`?(0,C.jsx)(`button`,{type:`button`,className:`dlg-followup-btn`,onClick:()=>Q(A,j),children:`Debrief what happened`}):(0,C.jsx)(F,{debrief:B,events:A,themLabel:Z,onRetry:()=>Q(A,j)}),(0,C.jsx)(`button`,{type:`button`,className:`dlg-done`,onClick:i,children:`Close`})]}),_===`done`&&(0,C.jsxs)(`div`,{className:`dlg-followup`,children:[a&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`button`,{type:`button`,className:`dlg-followup-btn`,onClick:wt,children:`Bring this into the conversation`}),(0,C.jsx)(`span`,{className:`dlg-followup-hint`,children:`Runs one normal answer in Live, grounded in this transcript.`})]}),(0,C.jsxs)(`div`,{className:`dlg-followup-actions`,children:[(0,C.jsx)(`button`,{type:`button`,className:`dlg-followup-btn ghost`,onClick:()=>v(`brief`),children:`Adjust the brief`}),(0,C.jsx)(`button`,{type:`button`,className:`dlg-followup-btn ghost`,onClick:Ct,children:`Run it again`})]})]}),_===`done`&&U.length>=2&&(0,C.jsx)(`div`,{className:`dlg-runs`,"aria-label":`Runs this session`,children:U.map(Te)})]}),t[155]=M,t[156]=Ct,t[157]=ut,t[158]=I,t[159]=x,t[160]=j,t[161]=B,t[162]=z,t[163]=A,t[164]=wt,t[165]=vt,t[166]=i,t[167]=a,t[168]=U,t[169]=y,t[170]=_,t[171]=ot,t[172]=Q,t[173]=Tt,t[174]=R,t[175]=Z,t[176]=ct,t[177]=pt,t[178]=Vt):Vt=t[178];let Ht;t[179]!==Et||t[180]!==Dt||t[181]!==Ot||t[182]!==kt||t[183]!==At||t[184]!==jt||t[185]!==Mt||t[186]!==Nt||t[187]!==Pt||t[188]!==Bt||t[189]!==Vt?(Ht=(0,C.jsxs)(`section`,{className:Et,ref:Dt,tabIndex:Ot,role:kt,"aria-modal":At,"aria-label":jt,"data-stage":Mt,children:[Nt,Pt,Bt,Vt]}),t[179]=Et,t[180]=Dt,t[181]=Ot,t[182]=kt,t[183]=At,t[184]=jt,t[185]=Mt,t[186]=Nt,t[187]=Pt,t[188]=Bt,t[189]=Vt,t[190]=Ht):Ht=t[190];let Ut;return t[191]!==Ft||t[192]!==It||t[193]!==Lt||t[194]!==Rt||t[195]!==zt||t[196]!==$||t[197]!==Ht?(Ut=(0,C.jsx)(`div`,{className:Ft,onClick:It,role:Lt,tabIndex:Rt,"aria-label":zt,onKeyDown:$,children:Ht}),t[191]=Ft,t[192]=It,t[193]=Lt,t[194]=Rt,t[195]=zt,t[196]=$,t[197]=Ht,t[198]=Ut):Ut=t[198],Ut}function Te(e){return(0,C.jsx)(`span`,{className:`dlg-runs-item`,children:`Run ${e.n} — ${e.outcome===`deal`?`deal`:e.outcome===`stopped`?`stopped`:`no deal`} · ${e.turns} turn${e.turns===1?``:`s`}${e.deal?` · ${e.deal}`:``}`},e.n)}function Ee(e){return(0,C.jsxs)(`li`,{className:`dlg-line-chip`,children:[(0,C.jsx)(N,{}),e]},e)}function De(e){return e.side!==`engine`}function Oe(e){return e.side!==`engine`}function ke(e){return e.side===`engine`}function Ae(e){return e.side!==`engine`}function je(e){return e.body}function Me(e){return e+1}export{L as DelegatePanel};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{n as t,r as n,ut as r}from"./index-CWqRe4-B.js";import{n as i}from"./icons-CHVz6kv_.js";var a=e();function o(e){return/\p{Extended_Pictographic}/u.test(e)}var s=t.map(e=>({cat:e,persona:n(e.persona)})).filter(e=>!!e.persona);function c({onPlay:e}){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r,{eyebrow:`See it for real`,sub:`Each is a frozen, model-generated session replayed on the production UI — not a live provider call.`,children:`Watch a frozen session`}),(0,a.jsx)(`div`,{className:`fl-demo-grid`,children:s.map(({cat:t,persona:n})=>(0,a.jsxs)(`button`,{type:`button`,className:`fl-demo-card`,style:{"--accent":n.accent},onClick:()=>e(n),children:[(0,a.jsxs)(`div`,{className:`fl-demo-top`,children:[(0,a.jsx)(`span`,{className:`fl-demo-avatar`+(o(n.avatar)?` emoji`:``),children:n.avatar}),(0,a.jsxs)(`span`,{className:`fl-demo-who`,children:[(0,a.jsx)(`span`,{className:`fl-demo-name`,children:n.useCase}),(0,a.jsxs)(`span`,{className:`fl-demo-role`,children:[n.name,` · `,n.role]})]}),(0,a.jsx)(`span`,{className:`fl-demo-badge`,children:t.label})]}),(0,a.jsx)(`span`,{className:`fl-demo-blurb`,children:n.blurb}),(0,a.jsxs)(`span`,{className:`fl-demo-play`,children:[(0,a.jsx)(i.play,{}),` Play the session`]})]},n.id))})]})}export{c as DemoGallery};
1
+ import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{n as t,r as n,ut as r}from"./index-C7H7A1rW.js";import{n as i}from"./icons-CHVz6kv_.js";var a=e();function o(e){return/\p{Extended_Pictographic}/u.test(e)}var s=t.map(e=>({cat:e,persona:n(e.persona)})).filter(e=>!!e.persona);function c({onPlay:e}){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r,{eyebrow:`See it for real`,sub:`Each is a frozen, model-generated session replayed on the production UI — not a live provider call.`,children:`Watch a frozen session`}),(0,a.jsx)(`div`,{className:`fl-demo-grid`,children:s.map(({cat:t,persona:n})=>(0,a.jsxs)(`button`,{type:`button`,className:`fl-demo-card`,style:{"--accent":n.accent},onClick:()=>e(n),children:[(0,a.jsxs)(`div`,{className:`fl-demo-top`,children:[(0,a.jsx)(`span`,{className:`fl-demo-avatar`+(o(n.avatar)?` emoji`:``),children:n.avatar}),(0,a.jsxs)(`span`,{className:`fl-demo-who`,children:[(0,a.jsx)(`span`,{className:`fl-demo-name`,children:n.useCase}),(0,a.jsxs)(`span`,{className:`fl-demo-role`,children:[n.name,` · `,n.role]})]}),(0,a.jsx)(`span`,{className:`fl-demo-badge`,children:t.label})]}),(0,a.jsx)(`span`,{className:`fl-demo-blurb`,children:n.blurb}),(0,a.jsxs)(`span`,{className:`fl-demo-play`,children:[(0,a.jsx)(i.play,{}),` Play the session`]})]},n.id))})]})}export{c as DemoGallery};
@@ -1 +1 @@
1
- import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n,mt as r}from"./index-CWqRe4-B.js";var i=r(),a=n(),o=e();function s(e,t){let n=(0,a.c)(4),[r,i]=(0,o.useState)(),s,c;return n[0]!==t||n[1]!==e?(s=()=>{if(!e){i(void 0);return}let n=()=>{let e=t.current;if(!e)return;let n=e.getBoundingClientRect();i({position:`fixed`,left:n.left,top:n.bottom+6,width:n.width,right:`auto`,bottom:`auto`,maxHeight:Math.max(160,window.innerHeight-n.bottom-16),zIndex:1e3})};n();let r=0,a=()=>{cancelAnimationFrame(r),r=requestAnimationFrame(n)};return window.addEventListener(`scroll`,a,!0),window.addEventListener(`resize`,a),()=>{cancelAnimationFrame(r),window.removeEventListener(`scroll`,a,!0),window.removeEventListener(`resize`,a)}},c=[e,t],n[0]=t,n[1]=e,n[2]=s,n[3]=c):(s=n[2],c=n[3]),(0,o.useLayoutEffect)(s,c),r}var c=t();function l({options:e,value:t,onChange:n,ariaLabel:r,disabled:a=!1,focusOnMount:l=!1,triggerClassName:u=`setup-input`}){let d=(0,o.useId)(),f=(0,o.useRef)(null),[p,m]=(0,o.useState)(!1),[h,g]=(0,o.useState)(-1),_=s(p,f),v=e.find(e=>e.value===t),y=e=>`${d}-opt-${e}`,b=()=>{g(e.findIndex(e=>e.value===t)),m(!0)},x=e=>{n(e),m(!1),f.current?.focus()};return(0,o.useEffect)(()=>{p&&h>=0&&document.getElementById(y(h))?.scrollIntoView?.({block:`nearest`})},[p,h]),(0,c.jsxs)(`div`,{className:`drop-select`,children:[(0,c.jsxs)(`button`,{ref:f,type:`button`,className:`${u} drop-select-trigger`,role:`combobox`,"aria-expanded":p,"aria-controls":d,"aria-activedescendant":p&&h>=0?y(h):void 0,"aria-label":r,disabled:a,autoFocus:l,onClick:()=>p?m(!1):b(),onKeyDown:t=>{if(t.key===`ArrowDown`||t.key===`ArrowUp`){if(t.preventDefault(),!p)return b();let n=t.key===`ArrowDown`?1:-1;g(t=>(t+n+e.length)%e.length)}else t.key===`Enter`&&p&&h>=0?(t.preventDefault(),x(e[h].value)):t.key===`Escape`&&p&&(t.preventDefault(),m(!1))},onBlur:()=>m(!1),children:[(0,c.jsx)(`span`,{children:v?.label??t}),(0,c.jsx)(`svg`,{viewBox:`0 0 12 8`,fill:`none`,"aria-hidden":!0,children:(0,c.jsx)(`path`,{d:`M1 1.5L6 6.5L11 1.5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})]}),p&&(0,i.createPortal)((0,c.jsx)(`div`,{className:`drop-select-menu`,style:_,role:`listbox`,id:d,"aria-label":r,onPointerDown:e=>e.preventDefault(),children:e.map((e,n)=>(0,c.jsxs)(`div`,{id:y(n),role:`option`,tabIndex:-1,"aria-selected":e.value===t,className:`drop-select-option`+(n===h?` is-active`:``)+(e.value===t?` is-current`:``),onMouseEnter:()=>g(n),onClick:()=>x(e.value),children:[(0,c.jsx)(`span`,{className:`drop-select-option-head`,children:(0,c.jsx)(`span`,{className:`drop-select-option-label`,children:e.label})}),e.note&&(0,c.jsx)(`span`,{className:`drop-select-note`,children:e.note})]},e.value))}),document.body)]})}export{s as n,l as t};
1
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n,mt as r}from"./index-C7H7A1rW.js";var i=r(),a=n(),o=e();function s(e,t){let n=(0,a.c)(4),[r,i]=(0,o.useState)(),s,c;return n[0]!==t||n[1]!==e?(s=()=>{if(!e){i(void 0);return}let n=()=>{let e=t.current;if(!e)return;let n=e.getBoundingClientRect();i({position:`fixed`,left:n.left,top:n.bottom+6,width:n.width,right:`auto`,bottom:`auto`,maxHeight:Math.max(160,window.innerHeight-n.bottom-16),zIndex:1e3})};n();let r=0,a=()=>{cancelAnimationFrame(r),r=requestAnimationFrame(n)};return window.addEventListener(`scroll`,a,!0),window.addEventListener(`resize`,a),()=>{cancelAnimationFrame(r),window.removeEventListener(`scroll`,a,!0),window.removeEventListener(`resize`,a)}},c=[e,t],n[0]=t,n[1]=e,n[2]=s,n[3]=c):(s=n[2],c=n[3]),(0,o.useLayoutEffect)(s,c),r}var c=t();function l({options:e,value:t,onChange:n,ariaLabel:r,disabled:a=!1,focusOnMount:l=!1,triggerClassName:u=`setup-input`}){let d=(0,o.useId)(),f=(0,o.useRef)(null),[p,m]=(0,o.useState)(!1),[h,g]=(0,o.useState)(-1),_=s(p,f),v=e.find(e=>e.value===t),y=e=>`${d}-opt-${e}`,b=()=>{g(e.findIndex(e=>e.value===t)),m(!0)},x=e=>{n(e),m(!1),f.current?.focus()};return(0,o.useEffect)(()=>{p&&h>=0&&document.getElementById(y(h))?.scrollIntoView?.({block:`nearest`})},[p,h]),(0,c.jsxs)(`div`,{className:`drop-select`,children:[(0,c.jsxs)(`button`,{ref:f,type:`button`,className:`${u} drop-select-trigger`,role:`combobox`,"aria-expanded":p,"aria-controls":d,"aria-activedescendant":p&&h>=0?y(h):void 0,"aria-label":r,disabled:a,autoFocus:l,onClick:()=>p?m(!1):b(),onKeyDown:t=>{if(t.key===`ArrowDown`||t.key===`ArrowUp`){if(t.preventDefault(),!p)return b();let n=t.key===`ArrowDown`?1:-1;g(t=>(t+n+e.length)%e.length)}else t.key===`Enter`&&p&&h>=0?(t.preventDefault(),x(e[h].value)):t.key===`Escape`&&p&&(t.preventDefault(),m(!1))},onBlur:()=>m(!1),children:[(0,c.jsx)(`span`,{children:v?.label??t}),(0,c.jsx)(`svg`,{viewBox:`0 0 12 8`,fill:`none`,"aria-hidden":!0,children:(0,c.jsx)(`path`,{d:`M1 1.5L6 6.5L11 1.5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})]}),p&&(0,i.createPortal)((0,c.jsx)(`div`,{className:`drop-select-menu`,style:_,role:`listbox`,id:d,"aria-label":r,onPointerDown:e=>e.preventDefault(),children:e.map((e,n)=>(0,c.jsxs)(`div`,{id:y(n),role:`option`,tabIndex:-1,"aria-selected":e.value===t,className:`drop-select-option`+(n===h?` is-active`:``)+(e.value===t?` is-current`:``),onMouseEnter:()=>g(n),onClick:()=>x(e.value),children:[(0,c.jsx)(`span`,{className:`drop-select-option-head`,children:(0,c.jsx)(`span`,{className:`drop-select-option-label`,children:e.label})}),e.note&&(0,c.jsx)(`span`,{className:`drop-select-note`,children:e.note})]},e.value))}),document.body)]})}export{s as n,l as t};