limixbot 0.2.12 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/assets/{ActivityPanel-BHCUppbs.js → ActivityPanel-O6Su2c-u.js} +1 -1
  2. package/dist/assets/{App-D93hKk8l.js → App-Bcey1qup.js} +108 -108
  3. package/dist/assets/{AppEventEditor-tGh5VM2Z.js → AppEventEditor-BlJGPJ3Z.js} +1 -1
  4. package/dist/assets/{BotSettingsDialog-D6Y7Bflm.js → BotSettingsDialog-PiCk9us7.js} +4 -4
  5. package/dist/assets/{BrowserPanel-k55-4cIw.js → BrowserPanel-BWcb5CXi.js} +1 -1
  6. package/dist/assets/{BrowserProfilesManager-BRZM0q_M.js → BrowserProfilesManager-dKHyQotG.js} +1 -1
  7. package/dist/assets/{CloudAddDialog-BZQDNnKi.js → CloudAddDialog-D1ZSbkxV.js} +1 -1
  8. package/dist/assets/{ComputerFilesPane-DAQhcfSG.js → ComputerFilesPane-wgtikCgi.js} +1 -1
  9. package/dist/assets/{ComputerPanel-ExjbTj4s.js → ComputerPanel-Cyj53a7W.js} +2 -2
  10. package/dist/assets/{DataPanel-DRPDfcrQ.js → DataPanel-BlBidswi.js} +1 -1
  11. package/dist/assets/{DesktopViewer-D9jr2w9X.js → DesktopViewer-D7JeLJbi.js} +1 -1
  12. package/dist/assets/{FilesView-CplahKQt.js → FilesView-CNkEKeZB.js} +1 -1
  13. package/dist/assets/{GrokMoveDialog-Cc5o6HuE.js → GrokMoveDialog-fyBulzXL.js} +2 -2
  14. package/dist/assets/{InspectorPanel-B5iY0Ism.js → InspectorPanel-Cut2OqiB.js} +1 -1
  15. package/dist/assets/{KeyboardShortcutsModal-DhUpWvIZ.js → KeyboardShortcutsModal-DnxUB4cd.js} +1 -1
  16. package/dist/assets/{LiveDesktop-DRcJOYg3.js → LiveDesktop-CnbyXW61.js} +1 -1
  17. package/dist/assets/{LocalVmWorkspace-CrRyugwl.js → LocalVmWorkspace-D9xFPGF0.js} +1 -1
  18. package/dist/assets/{MacLocalControl-D2pf75xx.js → MacLocalControl-CpswtfCI.js} +1 -1
  19. package/dist/assets/{MarkdownFilePreview-CLYypRvz.js → MarkdownFilePreview-V-y-0ksi.js} +1 -1
  20. package/dist/assets/{MenuMotion-CNjHVOE4.js → MenuMotion-VeZ_fZ8M.js} +1 -1
  21. package/dist/assets/NewBotDialog-rBjsSV0e.js +1 -0
  22. package/dist/assets/{PhoneAppDialog-EKN4JV-B.js → PhoneAppDialog-DAW1N-hM.js} +1 -1
  23. package/dist/assets/{PlacesRail-eySktVNq.js → PlacesRail-C_3Mh4C8.js} +1 -1
  24. package/dist/assets/{PluginsPanel-D8Kw3j_E.js → PluginsPanel-CMsgWSNg.js} +1 -1
  25. package/dist/assets/{ProIntroduction-Dutut6C-.js → ProIntroduction-6ByF2_US.js} +1 -1
  26. package/dist/assets/{RemoteAgentSettingsPanel-BuNfrHcn.js → RemoteAgentSettingsPanel-D4X4rHMQ.js} +1 -1
  27. package/dist/assets/{RoomPanel-vlOHVr2o.js → RoomPanel-mg6M04wy.js} +1 -1
  28. package/dist/assets/{RoutinesPage-Dgl6g38a.js → RoutinesPage-DomuZMUT.js} +2 -2
  29. package/dist/assets/{SettingsModal-B6mWaU4-.js → SettingsModal-Dd9l0b2C.js} +1 -1
  30. package/dist/assets/{ShareTeamDialog-BNMxpMeG.js → ShareTeamDialog-B_0Gr8Mq.js} +1 -1
  31. package/dist/assets/{SignedInSites-rqBhWQLe.js → SignedInSites-C-eqeBxT.js} +1 -1
  32. package/dist/assets/TeamLibraryPanel-DpXOFOQr.js +1 -0
  33. package/dist/assets/{TeamMapPage-BPNPSuOR.js → TeamMapPage-CIQPYaxL.js} +1 -1
  34. package/dist/assets/{TriggersPage--eDtuNSl.js → TriggersPage-D7RDjrjV.js} +1 -1
  35. package/dist/assets/{VisibilitySection-BCqfMHFk.js → VisibilitySection-Bimhk6c5.js} +1 -1
  36. package/dist/assets/{WebhookTrigger-AXmqIpLx.js → WebhookTrigger-D5c2bPJu.js} +1 -1
  37. package/dist/assets/{WorksOnGrid-IvyvcWBI.js → WorksOnGrid-PZ-caKHg.js} +1 -1
  38. package/dist/assets/{abnfDiagram-YUKMZFIV-CNbBpzNE.js → abnfDiagram-YUKMZFIV-D7az-C1J.js} +1 -1
  39. package/dist/assets/{activity-CtCHrNz-.js → activity-W_ia4q-Y.js} +1 -1
  40. package/dist/assets/{architectureDiagram-47P4ROYG-BZ3BXsFv.js → architectureDiagram-47P4ROYG-B2IC9169.js} +1 -1
  41. package/dist/assets/{blockDiagram-E7TT5TSB-9DpYtThS.js → blockDiagram-E7TT5TSB-FnweBzU4.js} +1 -1
  42. package/dist/assets/{c4Diagram-CRA5TL53-C9ygyYDI.js → c4Diagram-CRA5TL53-rxgwSaAP.js} +1 -1
  43. package/dist/assets/{calendar-days-7b_rKY9F.js → calendar-days-wM1DS-Cu.js} +1 -1
  44. package/dist/assets/channel-BQyC_QMX.js +1 -0
  45. package/dist/assets/{chunk-2Q5K7J3B-DXA1dGYf.js → chunk-2Q5K7J3B-B7yhqEe8.js} +1 -1
  46. package/dist/assets/{chunk-5VM5RSS4-Cmdn6u6A.js → chunk-5VM5RSS4-Sw6phnaf.js} +1 -1
  47. package/dist/assets/{chunk-7TKQ45FW-C6_3KbD6.js → chunk-7TKQ45FW-CheglUSd.js} +1 -1
  48. package/dist/assets/{chunk-AW2ZBBNX-DE_9xcGW.js → chunk-AW2ZBBNX-CswkqPkf.js} +1 -1
  49. package/dist/assets/{chunk-FVRAUYC3-DeXezLUR.js → chunk-FVRAUYC3-DeN53o4S.js} +2 -2
  50. package/dist/assets/{chunk-HTAEGDNF-WoJSboze.js → chunk-HTAEGDNF-CCZ_Udf0.js} +1 -1
  51. package/dist/assets/{chunk-JWPE2WC7-BarwLFEj.js → chunk-JWPE2WC7-nG1rfC9P.js} +1 -1
  52. package/dist/assets/{chunk-KQW6MTUR-DZV0Hgcq.js → chunk-KQW6MTUR-Bh_TxL0e.js} +1 -1
  53. package/dist/assets/{chunk-XXDRQBXY-XRA7d5ef.js → chunk-XXDRQBXY-CLIJBS-V.js} +1 -1
  54. package/dist/assets/{classDiagram-v2-K4WV4PDN-BB9-8H0H.js → classDiagram-v2-K4WV4PDN-B04FntQx.js} +1 -1
  55. package/dist/assets/{coins-RZxks5Iq.js → coins-81htcDNx.js} +1 -1
  56. package/dist/assets/{core-CNxiO5i6.js → core-BLAzrox0.js} +1 -1
  57. package/dist/assets/{cose-bilkent-JH36ORCC-DlAty1qX.js → cose-bilkent-JH36ORCC-D9PAieWF.js} +1 -1
  58. package/dist/assets/{cynefin-EF2NZ3EQ-DjVt4mTB.js → cynefin-EF2NZ3EQ-BAC2DRg5.js} +1 -1
  59. package/dist/assets/{cynefinDiagram-3GCD6N5R-BP3mxzbM.js → cynefinDiagram-3GCD6N5R-Cc3k_C-5.js} +1 -1
  60. package/dist/assets/{dagre-W4DXFKR2-D6R89cka.js → dagre-W4DXFKR2-CpbzxBGo.js} +1 -1
  61. package/dist/assets/{diagram-2UJZ2QOL-ED6ZLR9P.js → diagram-2UJZ2QOL-d22NGVzG.js} +1 -1
  62. package/dist/assets/{diagram-OVF4WLC6-DS5DPgfj.js → diagram-OVF4WLC6-BFTJTNpN.js} +1 -1
  63. package/dist/assets/{diagram-PFPMY2P6-CkwWFUys.js → diagram-PFPMY2P6-CA_YgAo3.js} +1 -1
  64. package/dist/assets/{diagram-UMYRVEAY-B6_INDe2.js → diagram-UMYRVEAY-CCsuWndY.js} +1 -1
  65. package/dist/assets/{diagram-YEKJPTXX-Dt30zl92.js → diagram-YEKJPTXX-Bcwhmpgl.js} +1 -1
  66. package/dist/assets/{diagram-ZIFT7M5P-BWQrszzW.js → diagram-ZIFT7M5P-Bs1iIjhq.js} +1 -1
  67. package/dist/assets/{ebnfDiagram-VR2GEFS7-B40bZpn4.js → ebnfDiagram-VR2GEFS7-CFr96fLM.js} +1 -1
  68. package/dist/assets/{elk-IJKZMXRS-BOAPURLs.js → elk-IJKZMXRS-DSdTG_hW.js} +1 -1
  69. package/dist/assets/{erDiagram-O2IAPWRE-DhIN8EFk.js → erDiagram-O2IAPWRE-BGdMdwi1.js} +1 -1
  70. package/dist/assets/{file-up-Dg7JsLFP.js → file-up-DvGMRF5I.js} +1 -1
  71. package/dist/assets/{flowDiagram-OXPTDLAJ-o61yZ5Jp.js → flowDiagram-OXPTDLAJ-DL25A20O.js} +1 -1
  72. package/dist/assets/{ganttDiagram-R7TSEDQI-DKwTsk_A.js → ganttDiagram-R7TSEDQI-DQaNIRGv.js} +1 -1
  73. package/dist/assets/{gitGraphDiagram-XJZIOB7I-Dqte4h2a.js → gitGraphDiagram-XJZIOB7I-B6ypA1ZF.js} +1 -1
  74. package/dist/assets/{import-name-BpcY7eF3.js → import-name-Cdh9ZlkK.js} +1 -1
  75. package/dist/assets/{index-y3wal1WK.js → index-BaW02tJl.js} +1 -1
  76. package/dist/assets/{index-Df4sIScD.js → index-CxcnLo81.js} +1 -1
  77. package/dist/assets/{index-CN3qYQZ7.js → index-oVds-_Vz.js} +2 -2
  78. package/dist/assets/{infoDiagram-5W2HQ5XZ-CeOhDqP5.js → infoDiagram-5W2HQ5XZ-8YbtI4S4.js} +1 -1
  79. package/dist/assets/{ishikawaDiagram-K3B6WC7H-BLxBG4Ku.js → ishikawaDiagram-K3B6WC7H-DYpDWk2K.js} +1 -1
  80. package/dist/assets/{journeyDiagram-COXZFDF6-a7-OqFVb.js → journeyDiagram-COXZFDF6-BUd8Vnbq.js} +1 -1
  81. package/dist/assets/{kanban-definition-P3RFRI5V-BpqE9wv9.js → kanban-definition-P3RFRI5V-AywqsEBB.js} +1 -1
  82. package/dist/assets/{mcp-servers-Cb7NFF4i.js → mcp-servers-Bu5RuYBT.js} +1 -1
  83. package/dist/assets/{mermaid.core-DCkDS2l6.js → mermaid.core-B5yiNmEY.js} +4 -4
  84. package/dist/assets/{mindmap-definition-LZFPQGKD-CbVxI-Dw.js → mindmap-definition-LZFPQGKD-DRALSCg6.js} +1 -1
  85. package/dist/assets/{minimize-BzhEcU2C.js → minimize-CWsi9mRL.js} +1 -1
  86. package/dist/assets/{monitor-tq9gQZRc.js → monitor-c1mf38zt.js} +1 -1
  87. package/dist/assets/{new-bot-FZ7p0MaB.js → new-bot-mp2gi3ed.js} +1 -1
  88. package/dist/assets/{org-library-BurlfP-M.js → org-library-Bi3EieNo.js} +1 -1
  89. package/dist/assets/{package-format-B2CMS446.js → package-format-CaPiTXn3.js} +1 -1
  90. package/dist/assets/{pegDiagram-BGZESJAR-JzbTYrpF.js → pegDiagram-BGZESJAR-Drj_UJz5.js} +1 -1
  91. package/dist/assets/{pieDiagram-CAPJLFHJ-FJGAn2CJ.js → pieDiagram-CAPJLFHJ-CL7MryRt.js} +1 -1
  92. package/dist/assets/{quadrantDiagram-GDMTTRAM-BH0XP_4R.js → quadrantDiagram-GDMTTRAM-BvWxqPJn.js} +1 -1
  93. package/dist/assets/{rail-Cq1USSn9.js → rail-DApFzTxo.js} +1 -1
  94. package/dist/assets/{railroadDiagram-SM67HX2B-DdmOm9v7.js → railroadDiagram-SM67HX2B-CGfR0UsO.js} +1 -1
  95. package/dist/assets/{remote-desktop-panel-ByjBIDKD.js → remote-desktop-panel-B4uIIoh3.js} +1 -1
  96. package/dist/assets/{requirementDiagram-X7JNWC4A-CmHsqVU3.js → requirementDiagram-X7JNWC4A-CJq96anP.js} +1 -1
  97. package/dist/assets/{sankeyDiagram-UM26HJRW-20UkT1qC.js → sankeyDiagram-UM26HJRW-BdZSA65i.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-ZO4K6R2Y-DbOCvva9.js → sequenceDiagram-ZO4K6R2Y-B5W6udgn.js} +1 -1
  99. package/dist/assets/{sizeCapture-INFHLROL-BiRygHwv.js → sizeCapture-INFHLROL-CuKCNVLn.js} +1 -1
  100. package/dist/assets/{stateDiagram-v2-TBUQTH76-_b0RTe98.js → stateDiagram-v2-TBUQTH76-C7mAgpvB.js} +1 -1
  101. package/dist/assets/{styles-b2tBrp-F.js → styles-C_rlkDrt.js} +2 -2
  102. package/dist/assets/styles-bUbK33f1.css +1 -0
  103. package/dist/assets/{swimlanes-N4OXWK64-Cph2675B.js → swimlanes-N4OXWK64-D-mimAU7.js} +1 -1
  104. package/dist/assets/swimlanesDiagram-K3J5GTZL-Dn31PG7h.js +8 -0
  105. package/dist/assets/{team-share-BegoEw7-.js → team-share-wuAG66b7.js} +1 -1
  106. package/dist/assets/{timeline-definition-YOQAKGHF-2fj61Rzb.js → timeline-definition-YOQAKGHF-C5prnOXi.js} +1 -1
  107. package/dist/assets/{usecaseDiagram-VIAY4XPW-Cfx3YEF_.js → usecaseDiagram-VIAY4XPW-BC-9KKSF.js} +1 -1
  108. package/dist/assets/{vennDiagram-BLWOH2XV-BX_M6eTv.js → vennDiagram-BLWOH2XV-LCNTQN9e.js} +1 -1
  109. package/dist/assets/{vi-KgT8L8Qj.js → vi-NX09tr5q.js} +1 -1
  110. package/dist/assets/{wardleyDiagram-YMQ3BMBF-BfDn4ghH.js → wardleyDiagram-YMQ3BMBF-CtWGEzVU.js} +1 -1
  111. package/dist/assets/{xychartDiagram-TAQBALBS-CqrDBgpf.js → xychartDiagram-TAQBALBS-DadPRdBp.js} +1 -1
  112. package/dist/index.html +3 -3
  113. package/dist/rail.html +5 -5
  114. package/dist-server/container-mcp.js +22 -21
  115. package/dist-server/index.js +106 -105
  116. package/dist-server/openmausbot.js +24 -24
  117. package/dist-server/package.json +1 -1
  118. package/dist-server/pair-cli.js +24 -24
  119. package/dist-server/server/config.js +6 -1
  120. package/dist-server/server/container-computer.js +4 -4
  121. package/dist-server/server/host/team-connections-host.js +2 -2
  122. package/dist-server/server/index.js +20 -3
  123. package/dist-server/server/mcp-registry.js +2 -2
  124. package/dist-server/server/service-unit.js +1 -1
  125. package/dist-server/server/skill-library.js +1 -1
  126. package/dist-server/server/team-library.js +2 -2
  127. package/dist-server/shared/grok-import.js +1 -1
  128. package/dist-server/shared/package-format.js +3 -3
  129. package/dist-server/vps-container-mcp.js +22 -21
  130. package/dist-server/workspace-backup.worker.js +20 -20
  131. package/package.json +1 -1
  132. package/dist/assets/NewBotDialog-CuYIfLJL.js +0 -1
  133. package/dist/assets/TeamLibraryPanel-pCffPnk4.js +0 -1
  134. package/dist/assets/channel-CkUESPbF.js +0 -1
  135. package/dist/assets/styles-D-yh7Z23.css +0 -1
  136. package/dist/assets/swimlanesDiagram-K3J5GTZL-DqgQUDUL.js +0 -8
@@ -1,4 +1,4 @@
1
- import{p as Mt}from"./chunk-JWPE2WC7-BarwLFEj.js";import{s as Nt,g as Tt,x as zt,v as Lt,a as At,b as Xt,_ as u,V as Et,O as Yt,Q as U,l as K,T as It,d as Bt,D as Ft,c as V}from"./mermaid.core-DCkDS2l6.js";import{p as Ot}from"./cynefin-EF2NZ3EQ-DjVt4mTB.js";import"./styles-b2tBrp-F.js";import"./step-CkmJJ7wq.js";var G=u((o,r)=>{const e=o<=1?o*100:o;if(e<0||e>100)throw new Error(`${r} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${o}`);return e},"toPercent"),A=u((o,r,e)=>({x:G(r,`${e} evolution`),y:G(o,`${e} visibility`)}),"toCoordinates"),J=u(o=>{if(o){if(o==="+<>")return"bidirectional";if(o==="+<")return"backward";if(o==="+>")return"forward"}},"getFlowFromPort"),Rt=u(o=>{if(!o?.startsWith("+"))return{};const e=/^\+'([^']*)'/.exec(o)?.[1];return o.includes("<>")?{flow:"bidirectional",label:e}:o.includes("<")?{flow:"backward",label:e}:o.includes(">")?{flow:"forward",label:e}:{label:e}},"extractFlowFromArrow"),Wt=u((o,r)=>{if(Mt(o,r),o.size&&r.setSize(o.size.width,o.size.height),o.evolution){const e=o.evolution.stages.map(a=>a.secondName?`${a.name.trim()} / ${a.secondName.trim()}`:a.name.trim()),h=o.evolution.stages.filter(a=>a.boundary!==void 0).map(a=>a.boundary);r.updateAxes({stages:e,stageBoundaries:h})}if(o.anchors.forEach(e=>{const h=A(e.visibility,e.evolution,`Anchor "${e.name}"`);r.addNode(e.name,e.name,h.x,h.y,"anchor")}),o.components.forEach(e=>{const h=A(e.visibility,e.evolution,`Component "${e.name}"`),a=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,d=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,w=e.decorator?.strategy;r.addNode(e.name,e.name,h.x,h.y,"component",a,d,e.inertia,w)}),o.notes.forEach(e=>{const h=A(e.visibility,e.evolution,`Note "${e.text}"`);r.addNote(e.text,h.x,h.y)}),o.pipelines.forEach(e=>{const h=r.getNode(e.parent);if(!h||typeof h.y!="number")throw new Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);const a=h.y;r.startPipeline(e.parent),e.components.forEach(d=>{const w=`${e.parent}_${d.name}`,C=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,O=G(d.evolution,`Pipeline component "${d.name}" evolution`);r.addNode(w,d.name,O,a,"pipeline-component",C,g),r.addPipelineComponent(e.parent,w)})}),o.links.forEach(e=>{const h=!!e.arrow&&(e.arrow.includes("-.->")||e.arrow.includes(".-."));let a=J(e.fromPort)??J(e.toPort);const{flow:d,label:w}=Rt(e.arrow);!a&&d&&(a=d);const C=e.linkLabel,g=w??C;r.addLink(r.resolveNodeId(e.from),r.resolveNodeId(e.to),h,g,a)}),o.evolves.forEach(e=>{const h=r.getNode(e.component);if(h?.y!==void 0){const a=G(e.target,`Evolve target for "${e.component}"`);r.addTrend(e.component,a,h.y)}}),o.annotations.length>0){const e=o.annotations[0],h=A(e.x,e.y,"Annotations box");r.setAnnotationsBox(h.x,h.y)}o.annotation.forEach(e=>{const h=A(e.x,e.y,`Annotation ${e.number}`);r.addAnnotation(e.number,[{x:h.x,y:h.y}],e.text)}),o.accelerators.forEach(e=>{const h=A(e.x,e.y,`Accelerator "${e.name}"`);r.addAccelerator(e.name,h.x,h.y)}),o.deaccelerators.forEach(e=>{const h=A(e.x,e.y,`Deaccelerator "${e.name}"`);r.addDeaccelerator(e.name,h.x,h.y)})},"populateDb"),tt={parser:{yy:void 0},parse:u(async o=>{const r=await Ot("wardley",o);K.debug(r);const e=tt.parser?.yy;if(!e||typeof e.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Wt(r,e)},"parse")},E,Dt=(E=class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}addNode(r){const e=this.nodes.get(r.id)??{id:r.id,label:r.label},h={...e,...r,className:r.className??e.className,labelOffsetX:r.labelOffsetX??e.labelOffsetX,labelOffsetY:r.labelOffsetY??e.labelOffsetY};this.nodes.set(r.id,h)}addLink(r){this.links.push(r)}addTrend(r){this.trends.set(r.nodeId,r)}startPipeline(r){this.pipelines.set(r,{nodeId:r,componentIds:[]});const e=this.nodes.get(r);e&&(e.isPipelineParent=!0)}addPipelineComponent(r,e){const h=this.pipelines.get(r);h&&h.componentIds.push(e);const a=this.nodes.get(e);a&&(a.inPipeline=!0)}addAnnotation(r){this.annotations.push(r)}addNote(r){this.notes.push(r)}addAccelerator(r){this.accelerators.push(r)}addDeaccelerator(r){this.deaccelerators.push(r)}setAnnotationsBox(r,e){this.annotationsBox={x:r,y:e}}setAxes(r){this.axes={...this.axes,...r}}setSize(r,e){this.size={width:r,height:e}}getNode(r){return this.nodes.get(r)}resolveNodeId(r){if(this.nodes.has(r))return r;for(const[e,h]of this.nodes)if(h.label===r)return e;return r}build(){const r=[];for(const e of this.nodes.values()){if(typeof e.x!="number"||typeof e.y!="number")throw new Error(`Node "${e.label}" is missing coordinates`);r.push(e)}return{nodes:r,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}},u(E,"WardleyBuilder"),E),k=new Dt;function et(){return V()["wardley-beta"]}u(et,"getConfig");function at(o,r,e,h,a,d,w,C,g){k.addNode({id:o,label:r,x:e,y:h,className:a,labelOffsetX:d,labelOffsetY:w,inertia:C,sourceStrategy:g})}u(at,"addNode");function rt(o,r,e=!1,h,a){k.addLink({source:o,target:r,dashed:e,label:h,flow:a})}u(rt,"addLink");function ot(o,r,e){k.addTrend({nodeId:o,targetX:r,targetY:e})}u(ot,"addTrend");function nt(o,r,e){k.addAnnotation({number:o,coordinates:r,text:e})}u(nt,"addAnnotation");function st(o,r,e){k.addNote({text:o,x:r,y:e})}u(st,"addNote");function it(o,r,e){k.addAccelerator({name:o,x:r,y:e})}u(it,"addAccelerator");function dt(o,r,e){k.addDeaccelerator({name:o,x:r,y:e})}u(dt,"addDeaccelerator");function lt(o,r){k.setAnnotationsBox(o,r)}u(lt,"setAnnotationsBox");function ct(o,r){k.setSize(o,r)}u(ct,"setSize");function pt(o){k.startPipeline(o)}u(pt,"startPipeline");function ft(o,r){k.addPipelineComponent(o,r)}u(ft,"addPipelineComponent");function ht(o){k.setAxes(o)}u(ht,"updateAxes");function xt(o){return k.getNode(o)}u(xt,"getNode");function gt(o){return k.resolveNodeId(o)}u(gt,"resolveNodeId");function yt(){return k.build()}u(yt,"getWardleyData");function ut(){k.clear(),Ft()}u(ut,"clear");var Gt={getConfig:et,addNode:at,addLink:rt,addTrend:ot,addAnnotation:nt,addNote:st,addAccelerator:it,addDeaccelerator:dt,setAnnotationsBox:lt,setSize:ct,startPipeline:pt,addPipelineComponent:ft,updateAxes:ht,getNode:xt,resolveNodeId:gt,getWardleyData:yt,clear:ut,setAccTitle:Xt,getAccTitle:At,setDiagramTitle:Lt,getDiagramTitle:zt,getAccDescription:Tt,setAccDescription:Nt},qt=["Genesis","Custom Built","Product","Commodity"],Ht=u(()=>{const{themeVariables:o}=V();return{backgroundColor:o.wardley?.backgroundColor??o.background??"#fff",axisColor:o.wardley?.axisColor??"#000",axisTextColor:o.wardley?.axisTextColor??o.primaryTextColor??"#222",gridColor:o.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:o.wardley?.componentFill??"#fff",componentStroke:o.wardley?.componentStroke??"#000",componentLabelColor:o.wardley?.componentLabelColor??o.primaryTextColor??"#222",linkStroke:o.wardley?.linkStroke??"#000",evolutionStroke:o.wardley?.evolutionStroke??"#dc3545",annotationStroke:o.wardley?.annotationStroke??"#000",annotationTextColor:o.wardley?.annotationTextColor??o.primaryTextColor??"#222",annotationFill:o.wardley?.annotationFill??o.background??"#fff"}},"getTheme"),jt=u(()=>{const o=V()["wardley-beta"];return{width:o?.width??900,height:o?.height??600,padding:o?.padding??48,nodeRadius:o?.nodeRadius??6,nodeLabelOffset:o?.nodeLabelOffset??8,axisFontSize:o?.axisFontSize??12,labelFontSize:o?.labelFontSize??10,showGrid:o?.showGrid??!1,useMaxWidth:o?.useMaxWidth??!0}},"getConfigValues"),Vt=u((o,r,e,h)=>{K.debug(`Rendering Wardley map
1
+ import{p as Mt}from"./chunk-JWPE2WC7-nG1rfC9P.js";import{s as Nt,g as Tt,x as zt,v as Lt,a as At,b as Xt,_ as u,V as Et,O as Yt,Q as U,l as K,T as It,d as Bt,D as Ft,c as V}from"./mermaid.core-B5yiNmEY.js";import{p as Ot}from"./cynefin-EF2NZ3EQ-BAC2DRg5.js";import"./styles-C_rlkDrt.js";import"./step-CkmJJ7wq.js";var G=u((o,r)=>{const e=o<=1?o*100:o;if(e<0||e>100)throw new Error(`${r} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${o}`);return e},"toPercent"),A=u((o,r,e)=>({x:G(r,`${e} evolution`),y:G(o,`${e} visibility`)}),"toCoordinates"),J=u(o=>{if(o){if(o==="+<>")return"bidirectional";if(o==="+<")return"backward";if(o==="+>")return"forward"}},"getFlowFromPort"),Rt=u(o=>{if(!o?.startsWith("+"))return{};const e=/^\+'([^']*)'/.exec(o)?.[1];return o.includes("<>")?{flow:"bidirectional",label:e}:o.includes("<")?{flow:"backward",label:e}:o.includes(">")?{flow:"forward",label:e}:{label:e}},"extractFlowFromArrow"),Wt=u((o,r)=>{if(Mt(o,r),o.size&&r.setSize(o.size.width,o.size.height),o.evolution){const e=o.evolution.stages.map(a=>a.secondName?`${a.name.trim()} / ${a.secondName.trim()}`:a.name.trim()),h=o.evolution.stages.filter(a=>a.boundary!==void 0).map(a=>a.boundary);r.updateAxes({stages:e,stageBoundaries:h})}if(o.anchors.forEach(e=>{const h=A(e.visibility,e.evolution,`Anchor "${e.name}"`);r.addNode(e.name,e.name,h.x,h.y,"anchor")}),o.components.forEach(e=>{const h=A(e.visibility,e.evolution,`Component "${e.name}"`),a=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,d=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,w=e.decorator?.strategy;r.addNode(e.name,e.name,h.x,h.y,"component",a,d,e.inertia,w)}),o.notes.forEach(e=>{const h=A(e.visibility,e.evolution,`Note "${e.text}"`);r.addNote(e.text,h.x,h.y)}),o.pipelines.forEach(e=>{const h=r.getNode(e.parent);if(!h||typeof h.y!="number")throw new Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);const a=h.y;r.startPipeline(e.parent),e.components.forEach(d=>{const w=`${e.parent}_${d.name}`,C=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,O=G(d.evolution,`Pipeline component "${d.name}" evolution`);r.addNode(w,d.name,O,a,"pipeline-component",C,g),r.addPipelineComponent(e.parent,w)})}),o.links.forEach(e=>{const h=!!e.arrow&&(e.arrow.includes("-.->")||e.arrow.includes(".-."));let a=J(e.fromPort)??J(e.toPort);const{flow:d,label:w}=Rt(e.arrow);!a&&d&&(a=d);const C=e.linkLabel,g=w??C;r.addLink(r.resolveNodeId(e.from),r.resolveNodeId(e.to),h,g,a)}),o.evolves.forEach(e=>{const h=r.getNode(e.component);if(h?.y!==void 0){const a=G(e.target,`Evolve target for "${e.component}"`);r.addTrend(e.component,a,h.y)}}),o.annotations.length>0){const e=o.annotations[0],h=A(e.x,e.y,"Annotations box");r.setAnnotationsBox(h.x,h.y)}o.annotation.forEach(e=>{const h=A(e.x,e.y,`Annotation ${e.number}`);r.addAnnotation(e.number,[{x:h.x,y:h.y}],e.text)}),o.accelerators.forEach(e=>{const h=A(e.x,e.y,`Accelerator "${e.name}"`);r.addAccelerator(e.name,h.x,h.y)}),o.deaccelerators.forEach(e=>{const h=A(e.x,e.y,`Deaccelerator "${e.name}"`);r.addDeaccelerator(e.name,h.x,h.y)})},"populateDb"),tt={parser:{yy:void 0},parse:u(async o=>{const r=await Ot("wardley",o);K.debug(r);const e=tt.parser?.yy;if(!e||typeof e.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Wt(r,e)},"parse")},E,Dt=(E=class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}addNode(r){const e=this.nodes.get(r.id)??{id:r.id,label:r.label},h={...e,...r,className:r.className??e.className,labelOffsetX:r.labelOffsetX??e.labelOffsetX,labelOffsetY:r.labelOffsetY??e.labelOffsetY};this.nodes.set(r.id,h)}addLink(r){this.links.push(r)}addTrend(r){this.trends.set(r.nodeId,r)}startPipeline(r){this.pipelines.set(r,{nodeId:r,componentIds:[]});const e=this.nodes.get(r);e&&(e.isPipelineParent=!0)}addPipelineComponent(r,e){const h=this.pipelines.get(r);h&&h.componentIds.push(e);const a=this.nodes.get(e);a&&(a.inPipeline=!0)}addAnnotation(r){this.annotations.push(r)}addNote(r){this.notes.push(r)}addAccelerator(r){this.accelerators.push(r)}addDeaccelerator(r){this.deaccelerators.push(r)}setAnnotationsBox(r,e){this.annotationsBox={x:r,y:e}}setAxes(r){this.axes={...this.axes,...r}}setSize(r,e){this.size={width:r,height:e}}getNode(r){return this.nodes.get(r)}resolveNodeId(r){if(this.nodes.has(r))return r;for(const[e,h]of this.nodes)if(h.label===r)return e;return r}build(){const r=[];for(const e of this.nodes.values()){if(typeof e.x!="number"||typeof e.y!="number")throw new Error(`Node "${e.label}" is missing coordinates`);r.push(e)}return{nodes:r,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}},u(E,"WardleyBuilder"),E),k=new Dt;function et(){return V()["wardley-beta"]}u(et,"getConfig");function at(o,r,e,h,a,d,w,C,g){k.addNode({id:o,label:r,x:e,y:h,className:a,labelOffsetX:d,labelOffsetY:w,inertia:C,sourceStrategy:g})}u(at,"addNode");function rt(o,r,e=!1,h,a){k.addLink({source:o,target:r,dashed:e,label:h,flow:a})}u(rt,"addLink");function ot(o,r,e){k.addTrend({nodeId:o,targetX:r,targetY:e})}u(ot,"addTrend");function nt(o,r,e){k.addAnnotation({number:o,coordinates:r,text:e})}u(nt,"addAnnotation");function st(o,r,e){k.addNote({text:o,x:r,y:e})}u(st,"addNote");function it(o,r,e){k.addAccelerator({name:o,x:r,y:e})}u(it,"addAccelerator");function dt(o,r,e){k.addDeaccelerator({name:o,x:r,y:e})}u(dt,"addDeaccelerator");function lt(o,r){k.setAnnotationsBox(o,r)}u(lt,"setAnnotationsBox");function ct(o,r){k.setSize(o,r)}u(ct,"setSize");function pt(o){k.startPipeline(o)}u(pt,"startPipeline");function ft(o,r){k.addPipelineComponent(o,r)}u(ft,"addPipelineComponent");function ht(o){k.setAxes(o)}u(ht,"updateAxes");function xt(o){return k.getNode(o)}u(xt,"getNode");function gt(o){return k.resolveNodeId(o)}u(gt,"resolveNodeId");function yt(){return k.build()}u(yt,"getWardleyData");function ut(){k.clear(),Ft()}u(ut,"clear");var Gt={getConfig:et,addNode:at,addLink:rt,addTrend:ot,addAnnotation:nt,addNote:st,addAccelerator:it,addDeaccelerator:dt,setAnnotationsBox:lt,setSize:ct,startPipeline:pt,addPipelineComponent:ft,updateAxes:ht,getNode:xt,resolveNodeId:gt,getWardleyData:yt,clear:ut,setAccTitle:Xt,getAccTitle:At,setDiagramTitle:Lt,getDiagramTitle:zt,getAccDescription:Tt,setAccDescription:Nt},qt=["Genesis","Custom Built","Product","Commodity"],Ht=u(()=>{const{themeVariables:o}=V();return{backgroundColor:o.wardley?.backgroundColor??o.background??"#fff",axisColor:o.wardley?.axisColor??"#000",axisTextColor:o.wardley?.axisTextColor??o.primaryTextColor??"#222",gridColor:o.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:o.wardley?.componentFill??"#fff",componentStroke:o.wardley?.componentStroke??"#000",componentLabelColor:o.wardley?.componentLabelColor??o.primaryTextColor??"#222",linkStroke:o.wardley?.linkStroke??"#000",evolutionStroke:o.wardley?.evolutionStroke??"#dc3545",annotationStroke:o.wardley?.annotationStroke??"#000",annotationTextColor:o.wardley?.annotationTextColor??o.primaryTextColor??"#222",annotationFill:o.wardley?.annotationFill??o.background??"#fff"}},"getTheme"),jt=u(()=>{const o=V()["wardley-beta"];return{width:o?.width??900,height:o?.height??600,padding:o?.padding??48,nodeRadius:o?.nodeRadius??6,nodeLabelOffset:o?.nodeLabelOffset??8,axisFontSize:o?.axisFontSize??12,labelFontSize:o?.labelFontSize??10,showGrid:o?.showGrid??!1,useMaxWidth:o?.useMaxWidth??!0}},"getConfigValues"),Vt=u((o,r,e,h)=>{K.debug(`Rendering Wardley map
2
2
  `+o);const a=jt(),d=Ht(),w=a.nodeRadius*1.6,C=h.db,g=C.getWardleyData(),O=C.getDiagramTitle(),S=g.size?.width??a.width,b=g.size?.height??a.height,Y=It(r);Y.selectAll("*").remove(),Bt(Y,b,S,a.useMaxWidth),Y.attr("viewBox",`0 0 ${S} ${b}`);const v=Y.append("g").attr("class","wardley-map"),q=Y.append("defs");q.append("marker").attr("id",`arrow-${r}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.evolutionStroke).attr("stroke","none"),q.append("marker").attr("id",`link-arrow-end-${r}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.linkStroke).attr("stroke","none"),q.append("marker").attr("id",`link-arrow-start-${r}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",d.linkStroke).attr("stroke","none"),v.append("rect").attr("class","wardley-background").attr("width",S).attr("height",b).attr("fill",d.backgroundColor);const I=S-a.padding*2,B=b-a.padding*2;O&&v.append("text").attr("class","wardley-title").attr("x",S/2).attr("y",a.padding/2).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize*1.05).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(O);const T=u(t=>a.padding+t/100*I,"projectX"),z=u(t=>b-a.padding-t/100*B,"projectY"),R=v.append("g").attr("class","wardley-axes");R.append("line").attr("x1",a.padding).attr("x2",S-a.padding).attr("y1",b-a.padding).attr("y2",b-a.padding).attr("stroke",d.axisColor).attr("stroke-width",1),R.append("line").attr("x1",a.padding).attr("x2",a.padding).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke",d.axisColor).attr("stroke-width",1);const wt=g.axes.xLabel??"Evolution",mt=g.axes.yLabel??"Visibility";R.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",a.padding+I/2).attr("y",b-a.padding/4).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(wt),R.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",a.padding/3).attr("y",a.padding+B/2).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${a.padding/3} ${a.padding+B/2})`).text(mt);const F=g.axes.stages&&g.axes.stages.length>0?g.axes.stages:qt;if(F.length>0){const t=v.append("g").attr("class","wardley-stages"),s=g.axes.stageBoundaries,n=[];if(s&&s.length===F.length){let i=0;s.forEach(p=>{n.push({start:i,end:p}),i=p})}else{const i=1/F.length;F.forEach((p,l)=>{n.push({start:l*i,end:(l+1)*i})})}F.forEach((i,p)=>{const l=n[p],f=a.padding+l.start*I,x=a.padding+l.end*I,y=(f+x)/2;p>0&&t.append("line").attr("x1",f).attr("x2",f).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",y).attr("y",b-a.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize-2).attr("text-anchor","middle").text(i)})}if(a.showGrid){const t=v.append("g").attr("class","wardley-grid");for(let s=1;s<4;s++){const n=s/4,i=a.padding+I*n;t.append("line").attr("x1",i).attr("x2",i).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",a.padding).attr("x2",S-a.padding).attr("y1",b-a.padding-B*n).attr("y2",b-a.padding-B*n).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}const c=new Map;if(g.nodes.forEach(t=>{c.set(t.id,{x:T(t.x),y:z(t.y),node:t})}),g.pipelines.length>0){const t=v.append("g").attr("class","wardley-pipelines"),s=v.append("g").attr("class","wardley-pipeline-links");g.pipelines.forEach(n=>{if(n.componentIds.length===0)return;const i=n.componentIds.map(x=>({id:x,pos:c.get(x),node:g.nodes.find(y=>y.id===x)})).filter(x=>x.pos&&x.node).sort((x,y)=>x.node.x-y.node.x);for(let x=0;x<i.length-1;x++){const y=i[x],m=i[x+1];s.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",y.pos.x).attr("y1",y.pos.y).attr("x2",m.pos.x).attr("y2",m.pos.y).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let p=1/0,l=-1/0,f=0;if(n.componentIds.forEach(x=>{const y=c.get(x);y&&(p=Math.min(p,y.x),l=Math.max(l,y.x),f=y.y)}),p!==1/0&&l!==-1/0){const y=a.nodeRadius*4,m=f-y/2,P=c.get(n.nodeId);if(P){const N=(p+l)/2;P.x=N,P.y=m-w/6}t.append("rect").attr("class","wardley-pipeline-box").attr("x",p-15).attr("y",m).attr("width",l-p+30).attr("height",y).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}const _=v.append("g").attr("class","wardley-links"),Z=new Map;g.pipelines.forEach(t=>{Z.set(t.nodeId,new Set(t.componentIds))});const Q=g.links.filter(t=>!(!c.has(t.source)||!c.has(t.target)||Z.get(t.target)?.has(t.source)));_.selectAll("line").data(Q).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{const s=c.get(t.source),n=c.get(t.target),p=g.nodes.find(y=>y.id===t.source).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=n.x-s.x,f=n.y-s.y,x=Math.sqrt(l*l+f*f);return s.x+l/x*p}).attr("y1",t=>{const s=c.get(t.source),n=c.get(t.target),p=g.nodes.find(y=>y.id===t.source).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=n.x-s.x,f=n.y-s.y,x=Math.sqrt(l*l+f*f);return s.y+f/x*p}).attr("x2",t=>{const s=c.get(t.source),n=c.get(t.target),p=g.nodes.find(y=>y.id===t.target).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=s.x-n.x,f=s.y-n.y,x=Math.sqrt(l*l+f*f);return n.x+l/x*p}).attr("y2",t=>{const s=c.get(t.source),n=c.get(t.target),p=g.nodes.find(y=>y.id===t.target).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=s.x-n.x,f=s.y-n.y,x=Math.sqrt(l*l+f*f);return n.y+f/x*p}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>t.flow==="forward"||t.flow==="bidirectional"?`url(#link-arrow-end-${r})`:null).attr("marker-start",t=>t.flow==="backward"||t.flow==="bidirectional"?`url(#link-arrow-start-${r})`:null),_.selectAll("text").data(Q.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{const s=c.get(t.source),n=c.get(t.target),i=(s.x+n.x)/2,p=n.y-s.y,l=n.x-s.x,f=Math.sqrt(l*l+p*p),x=8,y=p/f;return i+y*x}).attr("y",t=>{const s=c.get(t.source),n=c.get(t.target),i=(s.y+n.y)/2,p=n.x-s.x,l=n.y-s.y,f=Math.sqrt(p*p+l*l),x=8,y=-p/f;return i+y*x}).attr("fill",d.axisTextColor).attr("font-size",a.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{const s=c.get(t.source),n=c.get(t.target),i=(s.x+n.x)/2,p=(s.y+n.y)/2,l=n.x-s.x,f=n.y-s.y,x=Math.sqrt(l*l+f*f),y=8,m=f/x,P=-l/x,N=i+m*y,W=p+P*y;let X=Math.atan2(f,l)*180/Math.PI;return(X>90||X<-90)&&(X+=180),`rotate(${X} ${N} ${W})`}).text(t=>t.label);const kt=v.append("g").attr("class","wardley-trends"),bt=g.trends.map(t=>{const s=c.get(t.nodeId);if(!s)return null;const n=T(t.targetX),i=z(t.targetY),p=n-s.x,l=i-s.y,f=Math.sqrt(p*p+l*l),x=a.nodeRadius+2,y=f>x?n-p/f*x:n,m=f>x?i-l/f*x:i;return{origin:s,targetX:n,targetY:i,adjustedX2:y,adjustedY2:m}}).filter(t=>t!==null);kt.selectAll("line").data(bt).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${r})`);const M=v.append("g").attr("class","wardley-nodes").selectAll("g").data(g.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));M.filter(t=>t.sourceStrategy==="outsource").append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.sourceStrategy==="buy").append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.sourceStrategy==="build").append("circle").attr("class","wardley-build-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);const L=M.filter(t=>t.sourceStrategy==="market");L.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>!t.isPipelineParent&&t.sourceStrategy!=="market"&&t.className!=="anchor").append("circle").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);const H=a.nodeRadius*.7,$=a.nodeRadius*1.2;if(L.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x).attr("y1",t=>c.get(t.id).y-$).attr("x2",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),L.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),L.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x).attr("y2",t=>c.get(t.id).y-$).attr("stroke",d.componentStroke).attr("stroke-width",1),L.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y-$).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),L.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),L.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),M.filter(t=>t.isPipelineParent===!0).append("rect").attr("x",t=>c.get(t.id).x-w/2).attr("y",t=>c.get(t.id).y-w/2).attr("width",w).attr("height",w).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.inertia===!0).append("line").attr("class","wardley-inertia").attr("x1",t=>{const s=c.get(t.id);let n=t.isPipelineParent?w/2+15:a.nodeRadius+15;return t.sourceStrategy&&(n+=a.nodeRadius+10),s.x+n}).attr("y1",t=>{const s=c.get(t.id),n=t.isPipelineParent?w:a.nodeRadius*2;return s.y-n/2}).attr("x2",t=>{const s=c.get(t.id);let n=t.isPipelineParent?w/2+15:a.nodeRadius+15;return t.sourceStrategy&&(n+=a.nodeRadius+10),s.x+n}).attr("y2",t=>{const s=c.get(t.id),n=t.isPipelineParent?w:a.nodeRadius*2;return s.y+n/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),M.append("text").attr("x",t=>{const s=c.get(t.id);if(t.className==="anchor")return t.labelOffsetX!==void 0?s.x+t.labelOffsetX:s.x;let n=a.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetX===void 0&&(n+=10);const i=t.labelOffsetX??n;return s.x+i}).attr("y",t=>{const s=c.get(t.id);if(t.className==="anchor")return t.labelOffsetY!==void 0?s.y+t.labelOffsetY:s.y-3;let n=-a.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetY===void 0&&(n-=10);const i=t.labelOffsetY??n;return s.y+i}).attr("class","wardley-node-label").attr("fill",t=>t.className==="evolved"?d.evolutionStroke:t.className==="anchor"?"#000":d.componentLabelColor).attr("font-size",a.labelFontSize).attr("font-weight",t=>t.className==="anchor"?"bold":"normal").attr("text-anchor",t=>t.className==="anchor"?"middle":"start").attr("dominant-baseline",t=>t.className==="anchor"?"middle":"auto").text(t=>t.label),g.annotations.length>0){const t=v.append("g").attr("class","wardley-annotations");if(g.annotations.forEach(s=>{const n=s.coordinates.map(i=>({x:T(i.x),y:z(i.y)}));if(n.length>1)for(let i=0;i<n.length-1;i++)t.append("line").attr("class","wardley-annotation-line").attr("x1",n[i].x).attr("y1",n[i].y).attr("x2",n[i+1].x).attr("y2",n[i+1].y).attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");n.forEach(i=>{const p=t.append("g").attr("class","wardley-annotation");p.append("circle").attr("cx",i.x).attr("cy",i.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),p.append("text").attr("x",i.x).attr("y",i.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.number)})}),g.annotationsBox){let s=T(g.annotationsBox.x),n=z(g.annotationsBox.y);const i=10,p=16,l=11,f=t.append("g").attr("class","wardley-annotations-box"),x=[...g.annotations].filter(m=>m.text).sort((m,P)=>m.number-P.number),y=[];if(x.forEach((m,P)=>{const N=f.append("text").attr("x",s+i).attr("y",n+i+(P+1)*p).attr("font-size",l).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${m.number}. ${m.text}`);y.push(N)}),y.length>0){let m=0,P=0;y.forEach(j=>{const D=j.node(),Ct=D.getComputedTextLength();m=Math.max(m,Ct);const St=D.getBBox();P=Math.max(P,St.height)});const N=m+i*2+105,W=x.length*p+i*2+P/2,X=a.padding,$t=S-a.padding-N,vt=a.padding,Pt=b-a.padding-W;s=Math.max(X,Math.min(s,$t)),n=Math.max(vt,Math.min(n,Pt)),y.forEach((j,D)=>{j.attr("x",s+i).attr("y",n+i+(D+1)*p)}),f.insert("rect","text").attr("x",s).attr("y",n).attr("width",N).attr("height",W).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(g.notes.length>0){const t=v.append("g").attr("class","wardley-notes");g.notes.forEach(s=>{const n=T(s.x),i=z(s.y);t.append("text").attr("x",n).attr("y",i).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.text)})}if(g.accelerators.length>0){const t=v.append("g").attr("class","wardley-accelerators");g.accelerators.forEach(s=>{const n=T(s.x),i=z(s.y),p=60,l=30,f=20,x=`
3
3
  M ${n} ${i-l/2}
4
4
  L ${n+p-f} ${i-l/2}
@@ -1,4 +1,4 @@
1
- import{s as pi,g as mi,x as $t,v as yi,a as bi,b as wi,_ as a,l as Ut,T as Ai,d as Ci,D as Si,O as Dt,j as Ri,Q as Gt,R as _i,V as ki,au as Ti}from"./mermaid.core-DCkDS2l6.js";import{i as Di}from"./init-Dmth1JHB.js";import{o as Pi}from"./ordinal-BeghXfj9.js";import{r as vi}from"./range-OtVwhkKS.js";import{l as Xt}from"./linear-ChbPfC31.js";import{l as Yt}from"./step-CkmJJ7wq.js";import"./styles-b2tBrp-F.js";import"./defaultLocale-CzDG__Ur.js";function St(){var e=Pi().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,l,p=!1,d=0,u=0,b=.5;delete e.unknown;function A(){var m=t().length,E=n<s,v=E?n:s,L=E?s:n;o=(L-v)/Math.max(1,m-d+u*2),p&&(o=Math.floor(o)),v+=(L-v-o*(m-d))*b,l=o*(1-d),p&&(v=Math.round(v),l=Math.round(l));var M=vi(m).map(function(w){return v+o*w});return i(E?M.reverse():M)}return e.domain=function(m){return arguments.length?(t(m),A()):t()},e.range=function(m){return arguments.length?([s,n]=m,s=+s,n=+n,A()):[s,n]},e.rangeRound=function(m){return[s,n]=m,s=+s,n=+n,p=!0,A()},e.bandwidth=function(){return l},e.step=function(){return o},e.round=function(m){return arguments.length?(p=!!m,A()):p},e.padding=function(m){return arguments.length?(d=Math.min(1,u=+m),A()):d},e.paddingInner=function(m){return arguments.length?(d=Math.min(1,m),A()):d},e.paddingOuter=function(m){return arguments.length?(u=+m,A()):u},e.align=function(m){return arguments.length?(b=Math.max(0,Math.min(1,m)),A()):b},e.copy=function(){return St(t(),[s,n]).round(p).paddingInner(d).paddingOuter(u).align(b)},Di.apply(A(),arguments)}var Rt=(function(){var e=a(function(F,h,g,x){for(g=g||{},x=F.length;x--;g[F[x]]=h);return g},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],l=[1,7],p=[1,5,10,12,14,16,18,19,21,23,36,37,38],d=[1,25],u=[1,26],b=[1,28],A=[1,29],m=[1,30],E=[1,31],v=[1,32],L=[1,33],M=[1,34],w=[1,35],D=[1,36],c=[1,37],B=[1,43],W=[1,42],X=[1,47],Y=[1,50],k=[1,10,12,14,16,18,19,21,23,36,37,38],H=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],S=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],R=[1,65],O=[26,28],T={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:a(function(h,g,x,f,_,r,lt){var y=r.length-1;switch(_){case 5:f.setOrientation(r[y]);break;case 9:f.setDiagramTitle(r[y].text.trim());break;case 12:f.setLineData({text:"",type:"text"},r[y]);break;case 13:f.setLineData(r[y-1],r[y]);break;case 14:f.setBarData({text:"",type:"text"},r[y]);break;case 15:f.setBarData(r[y-1],r[y]);break;case 16:this.$=r[y].trim(),f.setAccTitle(this.$);break;case 17:case 18:this.$=r[y].trim(),f.setAccDescription(this.$);break;case 19:this.$=r[y-1];break;case 20:case 30:this.$=[r[y-2],...r[y]];break;case 21:case 31:this.$=[r[y]];break;case 22:this.$={value:Number(r[y-1]),label:r[y]};break;case 23:this.$={value:Number(r[y]),label:""};break;case 24:f.setXAxisTitle(r[y]);break;case 25:f.setXAxisTitle(r[y-1]);break;case 26:f.setXAxisTitle({type:"text",text:""});break;case 27:f.setXAxisBand(r[y]);break;case 28:f.setXAxisRangeData(Number(r[y-2]),Number(r[y]));break;case 29:this.$=r[y-1];break;case 32:f.setYAxisTitle(r[y]);break;case 33:f.setYAxisTitle(r[y-1]);break;case 34:f.setYAxisTitle({type:"text",text:""});break;case 35:f.setYAxisRangeData(Number(r[y-2]),Number(r[y]));break;case 39:this.$={text:r[y],type:"text"};break;case 40:this.$={text:r[y],type:"text"};break;case 41:this.$={text:r[y],type:"markdown"};break;case 42:this.$=r[y];break;case 43:this.$=r[y-1]+""+r[y];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:n,37:o,38:l}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:n,37:o,38:l}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:n,37:o,38:l}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,36]),e(p,[2,37]),e(p,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:n,37:o,38:l}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,36:n,37:o,38:l}),{11:23,30:d,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:39,13:38,24:B,29:W,30:d,31:40,32:41,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:45,15:44,29:X,30:d,35:46,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:49,17:48,24:Y,30:d,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:52,17:51,24:Y,30:d,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{20:[1,53]},{22:[1,54]},e(k,[2,18]),{1:[2,2]},e(k,[2,8]),e(k,[2,9]),e(H,[2,39],{41:55,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c}),e(H,[2,40]),e(H,[2,41]),e(S,[2,42]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(S,[2,52]),e(S,[2,53]),e(k,[2,10]),e(k,[2,24],{32:41,31:56,24:B,29:W}),e(k,[2,26]),e(k,[2,27]),{33:[1,57]},{11:59,30:d,34:58,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},e(k,[2,11]),e(k,[2,32],{35:60,29:X}),e(k,[2,34]),{33:[1,61]},e(k,[2,12]),{17:62,24:Y},{25:63,27:64,29:R},e(k,[2,14]),{17:66,24:Y},e(k,[2,16]),e(k,[2,17]),e(S,[2,43]),e(k,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(k,[2,33]),{29:[1,70]},e(k,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(O,[2,23],{30:[1,73]}),e(k,[2,15]),e(k,[2,28]),e(k,[2,29]),{11:59,30:d,34:74,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},e(k,[2,35]),e(k,[2,19]),{25:75,27:64,29:R},e(O,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:a(function(h,g){if(g.recoverable)this.trace(h);else{var x=new Error(h);throw x.hash=g,x}},"parseError"),parse:a(function(h){var g=this,x=[0],f=[],_=[null],r=[],lt=this.table,y="",dt=0,Ot=0,ui=2,Vt=1,di=r.slice.call(arguments,1),P=Object.create(this.lexer),$={yy:{}};for(var bt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,bt)&&($.yy[bt]=this.yy[bt]);P.setInput(h,$.yy),$.yy.lexer=P,$.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var wt=P.yylloc;r.push(wt);var xi=P.options&&P.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function fi(z){x.length=x.length-2*z,_.length=_.length-z,r.length=r.length-z}a(fi,"popStack");function Wt(){var z;return z=f.pop()||P.lex()||Vt,typeof z!="number"&&(z instanceof Array&&(f=z,z=f.pop()),z=g.symbols_[z]||z),z}a(Wt,"lex");for(var I,U,V,At,j={},xt,N,Ft,ft;;){if(U=x[x.length-1],this.defaultActions[U]?V=this.defaultActions[U]:((I===null||typeof I>"u")&&(I=Wt()),V=lt[U]&&lt[U][I]),typeof V>"u"||!V.length||!V[0]){var Ct="";ft=[];for(xt in lt[U])this.terminals_[xt]&&xt>ui&&ft.push("'"+this.terminals_[xt]+"'");P.showPosition?Ct="Parse error on line "+(dt+1)+`:
1
+ import{s as pi,g as mi,x as $t,v as yi,a as bi,b as wi,_ as a,l as Ut,T as Ai,d as Ci,D as Si,O as Dt,j as Ri,Q as Gt,R as _i,V as ki,au as Ti}from"./mermaid.core-B5yiNmEY.js";import{i as Di}from"./init-Dmth1JHB.js";import{o as Pi}from"./ordinal-BeghXfj9.js";import{r as vi}from"./range-OtVwhkKS.js";import{l as Xt}from"./linear-ChbPfC31.js";import{l as Yt}from"./step-CkmJJ7wq.js";import"./styles-C_rlkDrt.js";import"./defaultLocale-CzDG__Ur.js";function St(){var e=Pi().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,l,p=!1,d=0,u=0,b=.5;delete e.unknown;function A(){var m=t().length,E=n<s,v=E?n:s,L=E?s:n;o=(L-v)/Math.max(1,m-d+u*2),p&&(o=Math.floor(o)),v+=(L-v-o*(m-d))*b,l=o*(1-d),p&&(v=Math.round(v),l=Math.round(l));var M=vi(m).map(function(w){return v+o*w});return i(E?M.reverse():M)}return e.domain=function(m){return arguments.length?(t(m),A()):t()},e.range=function(m){return arguments.length?([s,n]=m,s=+s,n=+n,A()):[s,n]},e.rangeRound=function(m){return[s,n]=m,s=+s,n=+n,p=!0,A()},e.bandwidth=function(){return l},e.step=function(){return o},e.round=function(m){return arguments.length?(p=!!m,A()):p},e.padding=function(m){return arguments.length?(d=Math.min(1,u=+m),A()):d},e.paddingInner=function(m){return arguments.length?(d=Math.min(1,m),A()):d},e.paddingOuter=function(m){return arguments.length?(u=+m,A()):u},e.align=function(m){return arguments.length?(b=Math.max(0,Math.min(1,m)),A()):b},e.copy=function(){return St(t(),[s,n]).round(p).paddingInner(d).paddingOuter(u).align(b)},Di.apply(A(),arguments)}var Rt=(function(){var e=a(function(F,h,g,x){for(g=g||{},x=F.length;x--;g[F[x]]=h);return g},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],l=[1,7],p=[1,5,10,12,14,16,18,19,21,23,36,37,38],d=[1,25],u=[1,26],b=[1,28],A=[1,29],m=[1,30],E=[1,31],v=[1,32],L=[1,33],M=[1,34],w=[1,35],D=[1,36],c=[1,37],B=[1,43],W=[1,42],X=[1,47],Y=[1,50],k=[1,10,12,14,16,18,19,21,23,36,37,38],H=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],S=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],R=[1,65],O=[26,28],T={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:a(function(h,g,x,f,_,r,lt){var y=r.length-1;switch(_){case 5:f.setOrientation(r[y]);break;case 9:f.setDiagramTitle(r[y].text.trim());break;case 12:f.setLineData({text:"",type:"text"},r[y]);break;case 13:f.setLineData(r[y-1],r[y]);break;case 14:f.setBarData({text:"",type:"text"},r[y]);break;case 15:f.setBarData(r[y-1],r[y]);break;case 16:this.$=r[y].trim(),f.setAccTitle(this.$);break;case 17:case 18:this.$=r[y].trim(),f.setAccDescription(this.$);break;case 19:this.$=r[y-1];break;case 20:case 30:this.$=[r[y-2],...r[y]];break;case 21:case 31:this.$=[r[y]];break;case 22:this.$={value:Number(r[y-1]),label:r[y]};break;case 23:this.$={value:Number(r[y]),label:""};break;case 24:f.setXAxisTitle(r[y]);break;case 25:f.setXAxisTitle(r[y-1]);break;case 26:f.setXAxisTitle({type:"text",text:""});break;case 27:f.setXAxisBand(r[y]);break;case 28:f.setXAxisRangeData(Number(r[y-2]),Number(r[y]));break;case 29:this.$=r[y-1];break;case 32:f.setYAxisTitle(r[y]);break;case 33:f.setYAxisTitle(r[y-1]);break;case 34:f.setYAxisTitle({type:"text",text:""});break;case 35:f.setYAxisRangeData(Number(r[y-2]),Number(r[y]));break;case 39:this.$={text:r[y],type:"text"};break;case 40:this.$={text:r[y],type:"text"};break;case 41:this.$={text:r[y],type:"markdown"};break;case 42:this.$=r[y];break;case 43:this.$=r[y-1]+""+r[y];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:n,37:o,38:l}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:n,37:o,38:l}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:n,37:o,38:l}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,36]),e(p,[2,37]),e(p,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:n,37:o,38:l}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,36:n,37:o,38:l}),{11:23,30:d,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:39,13:38,24:B,29:W,30:d,31:40,32:41,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:45,15:44,29:X,30:d,35:46,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:49,17:48,24:Y,30:d,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{11:52,17:51,24:Y,30:d,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},{20:[1,53]},{22:[1,54]},e(k,[2,18]),{1:[2,2]},e(k,[2,8]),e(k,[2,9]),e(H,[2,39],{41:55,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c}),e(H,[2,40]),e(H,[2,41]),e(S,[2,42]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(S,[2,52]),e(S,[2,53]),e(k,[2,10]),e(k,[2,24],{32:41,31:56,24:B,29:W}),e(k,[2,26]),e(k,[2,27]),{33:[1,57]},{11:59,30:d,34:58,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},e(k,[2,11]),e(k,[2,32],{35:60,29:X}),e(k,[2,34]),{33:[1,61]},e(k,[2,12]),{17:62,24:Y},{25:63,27:64,29:R},e(k,[2,14]),{17:66,24:Y},e(k,[2,16]),e(k,[2,17]),e(S,[2,43]),e(k,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(k,[2,33]),{29:[1,70]},e(k,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(O,[2,23],{30:[1,73]}),e(k,[2,15]),e(k,[2,28]),e(k,[2,29]),{11:59,30:d,34:74,39:24,40:u,41:27,42:b,43:A,44:m,45:E,46:v,47:L,48:M,49:w,50:D,51:c},e(k,[2,35]),e(k,[2,19]),{25:75,27:64,29:R},e(O,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:a(function(h,g){if(g.recoverable)this.trace(h);else{var x=new Error(h);throw x.hash=g,x}},"parseError"),parse:a(function(h){var g=this,x=[0],f=[],_=[null],r=[],lt=this.table,y="",dt=0,Ot=0,ui=2,Vt=1,di=r.slice.call(arguments,1),P=Object.create(this.lexer),$={yy:{}};for(var bt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,bt)&&($.yy[bt]=this.yy[bt]);P.setInput(h,$.yy),$.yy.lexer=P,$.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var wt=P.yylloc;r.push(wt);var xi=P.options&&P.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function fi(z){x.length=x.length-2*z,_.length=_.length-z,r.length=r.length-z}a(fi,"popStack");function Wt(){var z;return z=f.pop()||P.lex()||Vt,typeof z!="number"&&(z instanceof Array&&(f=z,z=f.pop()),z=g.symbols_[z]||z),z}a(Wt,"lex");for(var I,U,V,At,j={},xt,N,Ft,ft;;){if(U=x[x.length-1],this.defaultActions[U]?V=this.defaultActions[U]:((I===null||typeof I>"u")&&(I=Wt()),V=lt[U]&&lt[U][I]),typeof V>"u"||!V.length||!V[0]){var Ct="";ft=[];for(xt in lt[U])this.terminals_[xt]&&xt>ui&&ft.push("'"+this.terminals_[xt]+"'");P.showPosition?Ct="Parse error on line "+(dt+1)+`:
2
2
  `+P.showPosition()+`
3
3
  Expecting `+ft.join(", ")+", got '"+(this.terminals_[I]||I)+"'":Ct="Parse error on line "+(dt+1)+": Unexpected "+(I==Vt?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(Ct,{text:P.match,token:this.terminals_[I]||I,line:P.yylineno,loc:wt,expected:ft})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+I);switch(V[0]){case 1:x.push(I),_.push(P.yytext),r.push(P.yylloc),x.push(V[1]),I=null,Ot=P.yyleng,y=P.yytext,dt=P.yylineno,wt=P.yylloc;break;case 2:if(N=this.productions_[V[1]][1],j.$=_[_.length-N],j._$={first_line:r[r.length-(N||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(N||1)].first_column,last_column:r[r.length-1].last_column},xi&&(j._$.range=[r[r.length-(N||1)].range[0],r[r.length-1].range[1]]),At=this.performAction.apply(j,[y,Ot,dt,$.yy,V[1],_,r].concat(di)),typeof At<"u")return At;N&&(x=x.slice(0,-1*N*2),_=_.slice(0,-1*N),r=r.slice(0,-1*N)),x.push(this.productions_[V[1]][0]),_.push(j.$),r.push(j._$),Ft=lt[x[x.length-2]][x[x.length-1]],x.push(Ft);break;case 3:return!0}}return!0},"parse")},ht=(function(){var F={EOF:1,parseError:a(function(g,x){if(this.yy.parser)this.yy.parser.parseError(g,x);else throw new Error(g)},"parseError"),setInput:a(function(h,g){return this.yy=g||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var g=h.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var g=h.length,x=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var f=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),x.length-1&&(this.yylineno-=x.length-1);var _=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:x?(x.length===f.length?this.yylloc.first_column:0)+f[f.length-x.length].length-x[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),g=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
package/dist/index.html CHANGED
@@ -11,9 +11,9 @@
11
11
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
12
12
  <link rel="manifest" href="/manifest.webmanifest" />
13
13
  <title>Limix Bot</title>
14
- <script type="module" crossorigin src="/assets/index-CN3qYQZ7.js"></script>
15
- <link rel="modulepreload" crossorigin href="/assets/styles-b2tBrp-F.js">
16
- <link rel="stylesheet" crossorigin href="/assets/styles-D-yh7Z23.css">
14
+ <script type="module" crossorigin src="/assets/index-oVds-_Vz.js"></script>
15
+ <link rel="modulepreload" crossorigin href="/assets/styles-C_rlkDrt.js">
16
+ <link rel="stylesheet" crossorigin href="/assets/styles-bUbK33f1.css">
17
17
  </head>
18
18
  <body>
19
19
  <div id="root"></div>
package/dist/rail.html CHANGED
@@ -4,11 +4,11 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>MausBot</title>
7
- <script type="module" crossorigin src="/assets/rail-Cq1USSn9.js"></script>
8
- <link rel="modulepreload" crossorigin href="/assets/styles-b2tBrp-F.js">
9
- <link rel="modulepreload" crossorigin href="/assets/monitor-tq9gQZRc.js">
10
- <link rel="modulepreload" crossorigin href="/assets/PlacesRail-eySktVNq.js">
11
- <link rel="stylesheet" crossorigin href="/assets/styles-D-yh7Z23.css">
7
+ <script type="module" crossorigin src="/assets/rail-DApFzTxo.js"></script>
8
+ <link rel="modulepreload" crossorigin href="/assets/styles-C_rlkDrt.js">
9
+ <link rel="modulepreload" crossorigin href="/assets/monitor-c1mf38zt.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/PlacesRail-C_3Mh4C8.js">
11
+ <link rel="stylesheet" crossorigin href="/assets/styles-bUbK33f1.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
@@ -1398,30 +1398,31 @@ toLowerCase())]);rawBases.forEach((base,index)=>{if(canonicalIds[index]!==void 0
1398
1398
  set(folded,index)});let effectivePartitions=requestedPartitions.map((partitionId,index)=>partitionWinner.get(partitionId.toLowerCase())===index?partitionId:canonicalIds[index]),conflictingIdOwners=new Set;canonicalIds.forEach((id,owner)=>{effectivePartitions.forEach((partitionId,partitionOwner)=>{partitionOwner!==owner&&partitionId.toLowerCase()===id&&conflictingIdOwners.add(owner)})});let unavailable=new Set([...reserved,...used]);for(let owner of conflictingIdOwners){let id=suffixedBrowserProfileId(
1399
1399
  rawBases[owner],unavailable);canonicalIds[owner]=id,unavailable.add(id)}conflictingIdOwners.size>0&&(effectivePartitions=requestedPartitions.map((partitionId,index)=>partitionWinner.get(partitionId.toLowerCase())===index?partitionId:canonicalIds[index]));let aliases=new Map;return{profiles:profiles.map((profile,index)=>{let id=canonicalIds[index],partitionId=effectivePartitions[index],migrated={id,name:profile.name};return profile.browser&&(migrated.browser=profile.browser),partitionId!==id&&(migrated.
1400
1400
  partitionId=partitionId),aliases.has(profile.id)||aliases.set(profile.id,id),migrated}),aliases}}var legacyBrowserProfilesSchema=external_exports.array(legacyBrowserProfileSchema).max(20),storedBrowserProfilesSchema=legacyBrowserProfilesSchema.transform(profiles=>migrateStoredBrowserProfiles(profiles).profiles),browserProfilesSchema=external_exports.array(browserProfileSchema).max(20).superRefine((profiles,ctx)=>{let seen=new Set;profiles.forEach((profile,index)=>{if(!seen.has(profile.id)){seen.
1401
- add(profile.id);return}ctx.addIssue({code:"custom",path:[index,"id"],message:`browser profile id ${profile.id} is duplicated`})})}),featureConfigSchema=external_exports.object({skillAuthoring:external_exports.boolean().optional(),skillReview:external_exports.boolean().optional(),skillReviewSteps:external_exports.number().int().min(3).max(100).optional(),showToolCalls:external_exports.boolean().optional(),browser:external_exports.boolean().optional(),sharedComputers:external_exports.boolean().optional(),
1402
- claudeUserMcp:external_exports.boolean().optional(),claudeUserSkills:external_exports.boolean().optional(),llmThreadTitles:external_exports.boolean().optional(),smartSetupChoices:external_exports.boolean().optional(),autoRecall:external_exports.boolean().optional(),skillsLibrary:external_exports.boolean().optional(),shareLearnedSkills:external_exports.enum(["off","ask","auto"]).optional(),roomMemoryCapture:external_exports.boolean().optional(),parallelRoomJobs:external_exports.boolean().optional(),
1403
- acpPlanLines:external_exports.boolean().optional()}).extend({agentsToolBridge:external_exports.boolean().optional(),savedSteps:external_exports.boolean().optional()}),onboardingConfigSchema=external_exports.object({completedAt:external_exports.string().trim().max(40).optional(),version:external_exports.number().int().min(0).max(1e3).optional(),reelSeen:external_exports.boolean().optional(),hintsSeen:external_exports.array(external_exports.string().trim().min(1).max(60)).max(100).optional(),firstTurnAt:external_exports.
1404
- string().trim().max(40).optional()}).strict(),instanceConfigSchema=external_exports.object({driver:external_exports.string().min(1),displayName:optionalText2,accentColor:optionalText2,icon:external_exports.discriminatedUnion("kind",[external_exports.object({kind:external_exports.literal("preset"),preset:external_exports.enum(PROVIDER_ICON_PRESETS)}).strict(),external_exports.object({kind:external_exports.literal("custom"),dataUrl:external_exports.string()}).strict().refine(icon=>providerIconError(
1405
- icon)===null,{message:"Invalid provider icon"})]).optional(),environment:external_exports.record(external_exports.string(),external_exports.string()).optional(),enabled:external_exports.boolean().optional(),hidden:external_exports.boolean().optional(),access:external_exports.enum(["subscription","custom","api"]).optional(),config:external_exports.json().optional()}),instanceConfigMapSchema=external_exports.record(external_exports.string(),instanceConfigSchema),defaultModelSelectionSchema=external_exports.
1406
- object({instanceId:external_exports.string().trim().min(1).max(200),model:external_exports.string().trim().min(1).max(500),effort:external_exports.enum(EFFORT_LEVELS).optional(),variant:external_exports.string().refine(isModelVariant,"invalid model variant").optional()}).refine(selection=>selection.variant===void 0||selection.effort===void 0,"choose either a model variant or an effort level"),automaticRecoverySchema=external_exports.object({enabled:external_exports.boolean(),backup:defaultModelSelectionSchema.
1407
- optional()}).strict().refine(recovery=>!recovery.enabled||recovery.backup!==void 0,{message:"Choose a backup model before enabling automatic recovery",path:["backup"]}),cacheKeepWarmSchema=external_exports.object({enabled:external_exports.boolean(),windowMinutes:external_exports.number().int().min(15).max(1440).optional()}).strict(),threadsConfigSchema=external_exports.object({maxConcurrentPerBot:external_exports.number().int().min(1).max(MAX_CONCURRENT_BOT_THREADS),eventLogMaxBytes:external_exports.
1408
- number().int().min(MIN_THREAD_EVENT_LOG_BYTES).max(MAX_THREAD_EVENT_LOG_BYTES).optional(),eventLogRetentionDays:external_exports.number().int().min(1).max(3650).optional()}).strict(),newBotsConfigSchema=external_exports.object({effort:external_exports.enum(EFFORT_LEVELS).optional()}).strict(),newBotsPatchSchema=external_exports.object({effort:newBotsConfigSchema.shape.effort.nullable()}).strict(),threadsPatchSchema=threadsConfigSchema.extend({maxConcurrentPerBot:threadsConfigSchema.shape.maxConcurrentPerBot.
1409
- optional(),eventLogMaxBytes:threadsConfigSchema.shape.eventLogMaxBytes.nullable(),eventLogRetentionDays:threadsConfigSchema.shape.eventLogRetentionDays.nullable()}),appConfigSchema=external_exports.object({customDomain:external_exports.string().optional(),signIn:external_exports.object({admins:external_exports.array(external_exports.string().max(320)).max(500).optional(),members:external_exports.array(external_exports.string().max(320)).max(5e3).optional()}).optional(),defaultModelSelection:defaultModelSelectionSchema.
1410
- optional(),automaticRecovery:automaticRecoverySchema.optional(),cacheKeepWarm:cacheKeepWarmSchema.optional(),newBotDefaults:newBotDefaultsSchema.optional(),newBots:newBotsConfigSchema.optional(),cliStartup:external_exports.object({access:external_exports.enum(["local","tunnel","tailscale","public-url"]),publicUrl:external_exports.string().url().optional(),phone:external_exports.enum(["ios","android"]).optional()}).optional(),mistral:external_exports.object({key:optionalText2}).optional(),cerebras:external_exports.
1411
- object({key:optionalText2}).optional(),treg:external_exports.object({key:optionalText2}).optional(),postiz:external_exports.object({key:optionalText2,url:optionalText2}).optional(),groq:external_exports.object({key:optionalText2,url:optionalText2}).optional(),greenference:external_exports.object({key:optionalText2}).optional(),modelgo:external_exports.object({key:optionalText2}).optional(),meta:external_exports.object({key:optionalText2,url:optionalText2}).optional(),deepseek:external_exports.object(
1412
- {key:optionalText2}).optional(),xai:external_exports.object({key:optionalText2,url:optionalText2}).optional(),anthropic:external_exports.object({key:optionalText2,url:optionalText2,everyClaudeBot:external_exports.boolean().optional()}).optional(),openai:external_exports.object({key:optionalText2}).optional(),openrouter:external_exports.object({key:optionalText2}).optional(),budgets:external_exports.object({monthlyUsd:external_exports.number().min(0).max(1e6).optional(),warnAtPercent:external_exports.
1413
- number().int().min(1).max(100).optional()}).optional(),billing:external_exports.object({currency:external_exports.string().regex(/^[A-Z]{3}$/).optional(),prices:external_exports.record(external_exports.string().min(1).max(160),external_exports.object({inputPerMillion:external_exports.number().min(0).max(1e6),outputPerMillion:external_exports.number().min(0).max(1e6),cachedInputPerMillion:external_exports.number().min(0).max(1e6).optional()})).optional()}).optional(),openaiCompat:external_exports.
1414
- object({key:optionalText2,url:optionalText2,model:optionalText2,provider:optionalText2}).optional(),composio:external_exports.object({apiKey:optionalText2,userId:optionalText2,sessionId:optionalText2}).optional(),box:external_exports.object({token:optionalText2}).optional(),vps:vpsConfigSchema.optional(),opencodeGo:external_exports.object({apiKey:optionalText2,providerKeys:external_exports.record(external_exports.string(),external_exports.string()).optional()}).optional(),tts:external_exports.object(
1415
- {key:optionalText2,fishKey:optionalText2,geminiKey:optionalText2,voice:optionalText2,provider:external_exports.enum(["elevenlabs","fish","system","chatterbox","xai","gemini","openai"]).optional(),baseUrl:external_exports.string().trim().max(2048).refine(value=>!value||/^https?:\/\//i.test(value),"the Chatterbox server address must start with http:// or https://").optional(),model:optionalText2,fishModel:external_exports.enum(FISH_TTS_MODELS).optional(),everyReply:external_exports.boolean().optional()}).
1416
- optional(),decider:deciderConfigSchema.optional(),live:liveConfigSchema.optional(),imageGen:imageGenConfigSchema.optional(),everyBotRules:external_exports.string().max(24e3).optional(),profile:external_exports.object({name:optionalText2,email:optionalText2,aboutMe:external_exports.string().max(24e3).optional(),avatarUrl:external_exports.union([external_exports.literal(""),botAvatarUrlSchema]).optional()}).optional(),language:optionalText2,computerName:external_exports.string().trim().max(63).optional(),
1417
- rooms:roomConfigSchema.optional(),mcp:mcpConfigSchema.optional(),context:external_exports.object({compactAt:external_exports.number().positive().max(1e7).optional(),autoCompact:external_exports.boolean().optional()}).extend(roomContextSettings).extend(replaySettings).optional(),memory:external_exports.object({captureQuietMs:external_exports.number().int().min(1e3).max(1440*6e4).optional(),tidyHour:external_exports.number().int().min(0).max(23).optional()}).strict().optional(),threads:threadsConfigSchema.
1418
- optional(),burst:external_exports.object({maxParallel:external_exports.number().int().min(1).max(100).optional()}).strict().optional(),decisions:external_exports.object({retentionDays:external_exports.number().int().min(1).max(3650).optional()}).strict().optional(),loopGuard:loopGuardConfigSchema.optional(),safetyFloor:external_exports.object({enabled:external_exports.boolean().optional()}).strict().optional(),localVm:localVmConfigSchema.optional(),features:featureConfigSchema.optional(),onboarding:onboardingConfigSchema.
1419
- optional(),browserEngine:browserEngineConfigSchema.optional(),browserProfiles:browserProfilesSchema.optional(),instances:instanceConfigMapSchema.optional(),mcpServers:external_exports.record(external_exports.string(),external_exports.unknown()).optional()}),storedAppConfigSchema=appConfigSchema.extend(helperStoredShape).extend({browserProfiles:storedBrowserProfilesSchema.optional(),opencodeGo:external_exports.object({apiKey:optionalText2,providerKeys:external_exports.record(external_exports.string(),
1420
- external_exports.unknown()).catch({}).transform(keys=>Object.fromEntries(Object.entries(keys).filter(entry=>typeof entry[1]=="string"))).optional()}).optional()}),appConfigPatchSchema=appConfigSchema.omit({instances:!0,mcpServers:!0,cliStartup:!0,customDomain:!0}).extend({threads:threadsPatchSchema.optional(),newBots:newBotsPatchSchema.optional(),imageGen:imageGenPatchSchema.optional()}),jsonObjectSchema2=external_exports.record(external_exports.string(),external_exports.json());function parseStoredConfig(value){let parsed=storedAppConfigSchema.safeParse(value);if(!parsed.success)throw new Error(schemaIssue(parsed.error,"Invalid stored configuration"));return parsed.data}var DEFAULT_CAPTURE_QUIET_MS=2*6e4;var DATA_DIR=process.env.OMB_DATA_DIR||join5(dataHome(),".limixbot"),LEGACY_DATA_DIR=join5(dataHome(),".opengrokbot"),EVENTS_DIR=join5(DATA_DIR,"events"),NATIVE_DIR=join5(DATA_DIR,"native");var storedConfig=settledFileCache(()=>join5(DATA_DIR,"config.json"),()=>parseStoredConfig(parseJson(readFileSync3(join5(DATA_DIR,"config.json"),"utf8"))));var GIB=1024*1024*1024;var SUPERVISOR_CAPS=["SETGID","SETUID"],PACKAGE_INSTALL_CAPS=["CHOWN","DAC_OVERRIDE","FOWNER","FSETID",...SUPERVISOR_CAPS];var SUPERVISORD="/usr/bin/supervisord -c /etc/supervisor/supervisord.conf",GUEST_IDS_SCRIPT=["set -eu",'uid="$1"; gid="$2"; old_uid="$(id -u cua)"; old_gid="$(id -g cua)"','if [ "$old_uid:$old_gid" != "$uid:$gid" ]; then',' find / -xdev -uid "$old_uid" -exec chown -h "$uid" {} +',' find / -xdev -gid "$old_gid" -exec chgrp -h "$gid" {} +',' sed -i "s/^cua:x:$old_uid:$old_gid:/cua:x:$uid:$gid:/" /etc/passwd',' sed -i "s/^cua:x:$old_gid:/cua:x:$gid:/" /etc/group',' [ "$(id -u cua):$(id -g cua)\
1401
+ add(profile.id);return}ctx.addIssue({code:"custom",path:[index,"id"],message:`browser profile id ${profile.id} is duplicated`})})}),featureConfigSchema=external_exports.object({skillAuthoring:external_exports.boolean().optional(),skillReview:external_exports.boolean().optional(),skillAutoApply:external_exports.boolean().optional(),skillReviewSteps:external_exports.number().int().min(3).max(100).optional(),showToolCalls:external_exports.boolean().optional(),browser:external_exports.boolean().optional(),
1402
+ sharedComputers:external_exports.boolean().optional(),claudeUserMcp:external_exports.boolean().optional(),claudeUserSkills:external_exports.boolean().optional(),llmThreadTitles:external_exports.boolean().optional(),smartSetupChoices:external_exports.boolean().optional(),autoRecall:external_exports.boolean().optional(),skillsLibrary:external_exports.boolean().optional(),shareLearnedSkills:external_exports.enum(["off","ask","auto"]).optional(),roomMemoryCapture:external_exports.boolean().optional(),
1403
+ parallelRoomJobs:external_exports.boolean().optional(),acpPlanLines:external_exports.boolean().optional()}).extend({agentsToolBridge:external_exports.boolean().optional(),savedSteps:external_exports.boolean().optional()}),onboardingConfigSchema=external_exports.object({completedAt:external_exports.string().trim().max(40).optional(),version:external_exports.number().int().min(0).max(1e3).optional(),reelSeen:external_exports.boolean().optional(),hintsSeen:external_exports.array(external_exports.string().
1404
+ trim().min(1).max(60)).max(100).optional(),firstTurnAt:external_exports.string().trim().max(40).optional()}).strict(),instanceConfigSchema=external_exports.object({driver:external_exports.string().min(1),displayName:optionalText2,accentColor:optionalText2,icon:external_exports.discriminatedUnion("kind",[external_exports.object({kind:external_exports.literal("preset"),preset:external_exports.enum(PROVIDER_ICON_PRESETS)}).strict(),external_exports.object({kind:external_exports.literal("custom"),dataUrl:external_exports.
1405
+ string()}).strict().refine(icon=>providerIconError(icon)===null,{message:"Invalid provider icon"})]).optional(),environment:external_exports.record(external_exports.string(),external_exports.string()).optional(),enabled:external_exports.boolean().optional(),hidden:external_exports.boolean().optional(),access:external_exports.enum(["subscription","custom","api"]).optional(),config:external_exports.json().optional()}),instanceConfigMapSchema=external_exports.record(external_exports.string(),instanceConfigSchema),
1406
+ defaultModelSelectionSchema=external_exports.object({instanceId:external_exports.string().trim().min(1).max(200),model:external_exports.string().trim().min(1).max(500),effort:external_exports.enum(EFFORT_LEVELS).optional(),variant:external_exports.string().refine(isModelVariant,"invalid model variant").optional()}).refine(selection=>selection.variant===void 0||selection.effort===void 0,"choose either a model variant or an effort level"),automaticRecoverySchema=external_exports.object({enabled:external_exports.
1407
+ boolean(),backup:defaultModelSelectionSchema.optional()}).strict().refine(recovery=>!recovery.enabled||recovery.backup!==void 0,{message:"Choose a backup model before enabling automatic recovery",path:["backup"]}),cacheKeepWarmSchema=external_exports.object({enabled:external_exports.boolean(),windowMinutes:external_exports.number().int().min(15).max(1440).optional()}).strict(),threadsConfigSchema=external_exports.object({maxConcurrentPerBot:external_exports.number().int().min(1).max(MAX_CONCURRENT_BOT_THREADS),
1408
+ eventLogMaxBytes:external_exports.number().int().min(MIN_THREAD_EVENT_LOG_BYTES).max(MAX_THREAD_EVENT_LOG_BYTES).optional(),eventLogRetentionDays:external_exports.number().int().min(1).max(3650).optional()}).strict(),newBotsConfigSchema=external_exports.object({effort:external_exports.enum(EFFORT_LEVELS).optional()}).strict(),newBotsPatchSchema=external_exports.object({effort:newBotsConfigSchema.shape.effort.nullable()}).strict(),threadsPatchSchema=threadsConfigSchema.extend({maxConcurrentPerBot:threadsConfigSchema.
1409
+ shape.maxConcurrentPerBot.optional(),eventLogMaxBytes:threadsConfigSchema.shape.eventLogMaxBytes.nullable(),eventLogRetentionDays:threadsConfigSchema.shape.eventLogRetentionDays.nullable()}),appConfigSchema=external_exports.object({customDomain:external_exports.string().optional(),signIn:external_exports.object({admins:external_exports.array(external_exports.string().max(320)).max(500).optional(),members:external_exports.array(external_exports.string().max(320)).max(5e3).optional()}).optional(),
1410
+ defaultModelSelection:defaultModelSelectionSchema.optional(),automaticRecovery:automaticRecoverySchema.optional(),cacheKeepWarm:cacheKeepWarmSchema.optional(),newBotDefaults:newBotDefaultsSchema.optional(),newBots:newBotsConfigSchema.optional(),cliStartup:external_exports.object({access:external_exports.enum(["local","tunnel","tailscale","public-url"]),publicUrl:external_exports.string().url().optional(),phone:external_exports.enum(["ios","android"]).optional()}).optional(),mistral:external_exports.
1411
+ object({key:optionalText2}).optional(),cerebras:external_exports.object({key:optionalText2}).optional(),treg:external_exports.object({key:optionalText2}).optional(),postiz:external_exports.object({key:optionalText2,url:optionalText2}).optional(),groq:external_exports.object({key:optionalText2,url:optionalText2}).optional(),greenference:external_exports.object({key:optionalText2}).optional(),modelgo:external_exports.object({key:optionalText2}).optional(),meta:external_exports.object({key:optionalText2,
1412
+ url:optionalText2}).optional(),deepseek:external_exports.object({key:optionalText2}).optional(),xai:external_exports.object({key:optionalText2,url:optionalText2}).optional(),anthropic:external_exports.object({key:optionalText2,url:optionalText2,everyClaudeBot:external_exports.boolean().optional()}).optional(),openai:external_exports.object({key:optionalText2}).optional(),openrouter:external_exports.object({key:optionalText2}).optional(),budgets:external_exports.object({monthlyUsd:external_exports.
1413
+ number().min(0).max(1e6).optional(),warnAtPercent:external_exports.number().int().min(1).max(100).optional()}).optional(),billing:external_exports.object({currency:external_exports.string().regex(/^[A-Z]{3}$/).optional(),prices:external_exports.record(external_exports.string().min(1).max(160),external_exports.object({inputPerMillion:external_exports.number().min(0).max(1e6),outputPerMillion:external_exports.number().min(0).max(1e6),cachedInputPerMillion:external_exports.number().min(0).max(1e6).
1414
+ optional()})).optional()}).optional(),openaiCompat:external_exports.object({key:optionalText2,url:optionalText2,model:optionalText2,provider:optionalText2}).optional(),composio:external_exports.object({apiKey:optionalText2,userId:optionalText2,sessionId:optionalText2}).optional(),box:external_exports.object({token:optionalText2}).optional(),vps:vpsConfigSchema.optional(),opencodeGo:external_exports.object({apiKey:optionalText2,providerKeys:external_exports.record(external_exports.string(),external_exports.
1415
+ string()).optional()}).optional(),tts:external_exports.object({key:optionalText2,fishKey:optionalText2,geminiKey:optionalText2,voice:optionalText2,provider:external_exports.enum(["elevenlabs","fish","system","chatterbox","xai","gemini","openai"]).optional(),baseUrl:external_exports.string().trim().max(2048).refine(value=>!value||/^https?:\/\//i.test(value),"the Chatterbox server address must start with http:// or https://").optional(),model:optionalText2,fishModel:external_exports.enum(FISH_TTS_MODELS).
1416
+ optional(),everyReply:external_exports.boolean().optional()}).optional(),decider:deciderConfigSchema.optional(),live:liveConfigSchema.optional(),imageGen:imageGenConfigSchema.optional(),everyBotRules:external_exports.string().max(24e3).optional(),profile:external_exports.object({name:optionalText2,email:optionalText2,aboutMe:external_exports.string().max(24e3).optional(),avatarUrl:external_exports.union([external_exports.literal(""),botAvatarUrlSchema]).optional()}).optional(),language:optionalText2,
1417
+ computerName:external_exports.string().trim().max(63).optional(),rooms:roomConfigSchema.optional(),mcp:mcpConfigSchema.optional(),context:external_exports.object({compactAt:external_exports.number().positive().max(1e7).optional(),autoCompact:external_exports.boolean().optional()}).extend(roomContextSettings).extend(replaySettings).optional(),memory:external_exports.object({captureQuietMs:external_exports.number().int().min(1e3).max(1440*6e4).optional(),tidyHour:external_exports.number().int().min(
1418
+ 0).max(23).optional()}).strict().optional(),threads:threadsConfigSchema.optional(),burst:external_exports.object({maxParallel:external_exports.number().int().min(1).max(100).optional()}).strict().optional(),decisions:external_exports.object({retentionDays:external_exports.number().int().min(1).max(3650).optional()}).strict().optional(),loopGuard:loopGuardConfigSchema.optional(),safetyFloor:external_exports.object({enabled:external_exports.boolean().optional()}).strict().optional(),localVm:localVmConfigSchema.
1419
+ optional(),features:featureConfigSchema.optional(),onboarding:onboardingConfigSchema.optional(),browserEngine:browserEngineConfigSchema.optional(),browserProfiles:browserProfilesSchema.optional(),instances:instanceConfigMapSchema.optional(),mcpServers:external_exports.record(external_exports.string(),external_exports.unknown()).optional()}),storedAppConfigSchema=appConfigSchema.extend(helperStoredShape).extend({browserProfiles:storedBrowserProfilesSchema.optional(),opencodeGo:external_exports.object(
1420
+ {apiKey:optionalText2,providerKeys:external_exports.record(external_exports.string(),external_exports.unknown()).catch({}).transform(keys=>Object.fromEntries(Object.entries(keys).filter(entry=>typeof entry[1]=="string"))).optional()}).optional()}),appConfigPatchSchema=appConfigSchema.omit({instances:!0,mcpServers:!0,cliStartup:!0,customDomain:!0}).extend({threads:threadsPatchSchema.optional(),newBots:newBotsPatchSchema.optional(),imageGen:imageGenPatchSchema.optional()}),jsonObjectSchema2=external_exports.
1421
+ record(external_exports.string(),external_exports.json());function parseStoredConfig(value){let parsed=storedAppConfigSchema.safeParse(value);if(!parsed.success)throw new Error(schemaIssue(parsed.error,"Invalid stored configuration"));return parsed.data}var DEFAULT_CAPTURE_QUIET_MS=2*6e4;var DATA_DIR=process.env.OMB_DATA_DIR||join5(dataHome(),".limixbot"),LEGACY_DATA_DIR=join5(dataHome(),".opengrokbot"),EVENTS_DIR=join5(DATA_DIR,"events"),NATIVE_DIR=join5(DATA_DIR,"native");var storedConfig=settledFileCache(()=>join5(DATA_DIR,"config.json"),()=>parseStoredConfig(parseJson(readFileSync3(join5(DATA_DIR,"config.json"),"utf8"))));var GIB=1024*1024*1024;var SUPERVISOR_CAPS=["SETGID","SETUID"],PACKAGE_INSTALL_CAPS=["CHOWN","DAC_OVERRIDE","FOWNER","FSETID",...SUPERVISOR_CAPS];var SUPERVISORD="/usr/bin/supervisord -c /etc/supervisor/supervisord.conf",GUEST_IDS_SCRIPT=["set -eu",'uid="$1"; gid="$2"; old_uid="$(id -u cua)"; old_gid="$(id -g cua)"','if [ "$old_uid:$old_gid" != "$uid:$gid" ]; then',' find / -xdev -uid "$old_uid" -exec chown -h "$uid" {} +',' find / -xdev -gid "$old_gid" -exec chgrp -h "$gid" {} +',' sed -i "s/^cua:x:$old_uid:$old_gid:/cua:x:$uid:$gid:/" /etc/passwd',' sed -i "s/^cua:x:$old_gid:/cua:x:$gid:/" /etc/group',' [ "$(id -u cua):$(id -g cua)\
1421
1422
  " = "$uid:$gid" ] || { echo "cua did not take uid $uid gid $gid" >&2; exit 1; }',"fi",`exec ${SUPERVISORD}`].join(`
1422
1423
  `);import{existsSync as existsSync4}from"node:fs";import{dirname as dirname3,join as join6}from"node:path";import{fileURLToPath}from"node:url";var SERVER_ROOT=dirname3(fileURLToPath(import.meta.url));function resolveProxy(relative2){let source=join6(SERVER_ROOT,`${relative2}.ts`);return existsSync4(source)?source:join6(SERVER_ROOT,`${relative2}.js`)}var SPAWNED_PROXIES={harnessMcp:resolveProxy("harness-mcp-proxy"),localComputer:resolveProxy("local-computer-proxy"),permission:resolveProxy("permissio\
1423
1424
  n-proxy"),containerMcp:resolveProxy("container-mcp"),vpsContainerMcp:resolveProxy("vps-container-mcp"),agents:resolveProxy("drivers/agents-proxy"),dweb:resolveProxy("drivers/dweb-proxy"),connectors:resolveProxy("connector-proxy"),mcpGate:resolveProxy("mcp-gate"),mcpRemote:resolveProxy("mcp-remote-proxy"),phone:resolveProxy("drivers/phone-proxy"),chatgptPlanToken:resolveProxy("drivers/chatgpt-plan-token-command"),hook:resolveProxy("hooks/omb-hook"),piMcpExtension:resolveProxy("drivers/pi-mcp-exte\
1424
- nsion")};var run=promisify(execFile2);var CUA_DRIVER_VERSION="0.37.0",BASE_IMAGE_REPOSITORY="docker.io/trycua/xfce-cua",BASE_IMAGE_DIGEST="sha256:274eb636f5cf3fc58f705916ee72b7a701270b3877369d08533a385c5325be9b",BASE_IMAGE=`${BASE_IMAGE_REPOSITORY}@${BASE_IMAGE_DIGEST}`,IMAGE_REPOSITORY="localhost/openmausbot/cua-local-vm",IMAGE_LAYER_VERSION="8";var IMAGE=`${IMAGE_REPOSITORY}:driver-${CUA_DRIVER_VERSION}-v${IMAGE_LAYER_VERSION}`,CONTAINER="openmausbot-computer";var VM_WORKSPACE_DIR=join7(DATA_DIR,"vm-home");var DISPLAY=":1";var CUA_EXECUTABLE="/usr/local/libexec/openmausbot/cua-driver";function cuaExecArgs(args,options={}){return["exec",...options.interactive?["-i"]:[],"-u","cua","-e","HOME=/home/cua","-e",`DISPLAY=${DISPLAY}`,"-e","CUA_DRIVER_INSTALL_CHANNEL=python_package","-e","CUA_DRIVER_RS_TELEMETRY_ENABLED=0",options.container??CONTAINER,CUA_EXECUTABLE,...args]}var containerMcpPath=SPAWNED_PROXIES.containerMcp;import{spawn}from"node:child_process";import{StringDecoder}from"node:string_decoder";var WAIT_WORDS="45 seconds",CONTROL_REFUSAL_PLAIN=`A person has taken control of this computer, so this call was NOT performed. Do not act until they hand it back \u2014 the screen is changing under their hands. To wait for them, take a screenshot: each computer call waits up to ${WAIT_WORDS} and returns as soon as they hand control back. Meanwhile you may work on anything that does not need this computer.`;var CONTROL_WAITED="This computer is free now, but this call had to wait for it, so it was NOT performed. Call again: the next call goes through at once. If you meant to click or type from an earlier screenshot, take a fresh one first \u2014 the screen may have changed while you waited.",CONTROL_BUSY=`Another thread is using this computer. This call was not performed. This turn gets the computer as soon as it is free: to keep waiting, take a screenshot (each computer call waits up to ${WAIT_WORDS}\
1425
+ nsion")};var run=promisify(execFile2);var CUA_DRIVER_VERSION="0.37.0",BASE_IMAGE_REPOSITORY="docker.io/trycua/xfce-cua",BASE_IMAGE_DIGEST="sha256:274eb636f5cf3fc58f705916ee72b7a701270b3877369d08533a385c5325be9b",BASE_IMAGE=`${BASE_IMAGE_REPOSITORY}@${BASE_IMAGE_DIGEST}`,IMAGE_REPOSITORY="localhost/limixbot/cua-local-vm",IMAGE_LAYER_VERSION="9";var IMAGE=`${IMAGE_REPOSITORY}:driver-${CUA_DRIVER_VERSION}-v${IMAGE_LAYER_VERSION}`,CONTAINER="openmausbot-computer";var VM_WORKSPACE_DIR=join7(DATA_DIR,"vm-home");var DISPLAY=":1";var CUA_EXECUTABLE="/usr/local/libexec/limixbot/cua-driver";function cuaExecArgs(args,options={}){return["exec",...options.interactive?["-i"]:[],"-u","cua","-e","HOME=/home/cua","-e",`DISPLAY=${DISPLAY}`,"-e","CUA_DRIVER_INSTALL_CHANNEL=python_package","-e","CUA_DRIVER_RS_TELEMETRY_ENABLED=0",options.container??CONTAINER,CUA_EXECUTABLE,...args]}var containerMcpPath=SPAWNED_PROXIES.containerMcp;import{spawn}from"node:child_process";import{StringDecoder}from"node:string_decoder";var WAIT_WORDS="45 seconds",CONTROL_REFUSAL_PLAIN=`A person has taken control of this computer, so this call was NOT performed. Do not act until they hand it back \u2014 the screen is changing under their hands. To wait for them, take a screenshot: each computer call waits up to ${WAIT_WORDS} and returns as soon as they hand control back. Meanwhile you may work on anything that does not need this computer.`;var CONTROL_WAITED="This computer is free now, but this call had to wait for it, so it was NOT performed. Call again: the next call goes through at once. If you meant to click or type from an earlier screenshot, take a fresh one first \u2014 the screen may have changed while you waited.",CONTROL_BUSY=`Another thread is using this computer. This call was not performed. This turn gets the computer as soon as it is free: to keep waiting, take a screenshot (each computer call waits up to ${WAIT_WORDS}\
1425
1426
  ) instead of ending your turn.`,CONTROL_UNCONFIRMED="Limix Bot could not confirm that this computer is free, so this call was NOT performed and nothing happened on the screen. Retry in a few seconds.",CONTROL_TURN_ENDED="This turn no longer has access to this computer (the turn already ended, or the computer was switched or taken back), so this call was NOT performed and nothing happened on the screen. Retrying will not help: stop calling the computer tools now and end your turn. The computer ca\
1426
1427
  n be used again in a new turn.",DISENGAGED={held:!1,helpOpen:!1},UNCONFIRMED={held:!0,helpOpen:!1,blockedReason:CONTROL_UNCONFIRMED},TURN_ENDED={held:!0,helpOpen:!1,blockedReason:CONTROL_TURN_ENDED};function controlRefusal(state){return state.blockedReason??(state.reason==="person"?CONTROL_REFUSAL_PLAIN:CONTROL_UNCONFIRMED)}function createControlClient(options){let url2=options?.url??process.env.OMB_CONTROL_URL??"",token=options?.token??process.env.OMB_CONTROL_TOKEN??"",cacheMs=options?.cacheMs??
1427
1428
  750,timeoutMs=options?.timeoutMs??55e3,fetchImpl=options?.fetchImpl??fetch,configured=!!(url2&&token),headers={authorization:`Bearer ${token}`,"content-type":"application/json"},cachedAt=0,cached3=DISENGAGED;async function read(call){try{let target=url2;if(call&&Object.keys(call).length){let withCall=new URL(url2);for(let[key,value]of Object.entries(call))withCall.searchParams.set(key,value);target=withCall.href}let res=await fetchImpl(target,{headers,signal:AbortSignal.timeout(timeoutMs)});if(res.