keating 0.3.8 → 0.3.10

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 (404) hide show
  1. package/dist/src/core/benchmark.js +37 -31
  2. package/dist/src/core/pi-agent.js +1 -1
  3. package/dist/src/pi/hyperteacher-extension.js +30 -4
  4. package/dist/src/runtime/pi.js +4 -3
  5. package/package.json +4 -3
  6. package/web/.output/nitro.json +17 -0
  7. package/web/.output/public/.well-known/llms.txt +44 -0
  8. package/web/.output/public/apple-touch-icon.svg +10 -0
  9. package/web/.output/public/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  10. package/web/.output/public/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  11. package/web/.output/public/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  12. package/web/.output/public/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  13. package/web/.output/public/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  14. package/web/.output/public/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  15. package/web/.output/public/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  16. package/web/.output/public/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  17. package/web/.output/public/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  18. package/web/.output/public/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  19. package/web/.output/public/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  20. package/web/.output/public/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  21. package/web/.output/public/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  22. package/web/.output/public/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  23. package/web/.output/public/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  24. package/web/.output/public/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  25. package/web/.output/public/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  26. package/web/.output/public/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  27. package/web/.output/public/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  28. package/web/.output/public/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  29. package/web/.output/public/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  30. package/web/.output/public/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  31. package/web/.output/public/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  32. package/web/.output/public/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  33. package/web/.output/public/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  34. package/web/.output/public/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  35. package/web/.output/public/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  36. package/web/.output/public/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  37. package/web/.output/public/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  38. package/web/.output/public/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  39. package/web/.output/public/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  40. package/web/.output/public/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  41. package/web/.output/public/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  42. package/web/.output/public/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  43. package/web/.output/public/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  44. package/web/.output/public/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  45. package/web/.output/public/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  46. package/web/.output/public/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  47. package/web/.output/public/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  48. package/web/.output/public/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  49. package/web/.output/public/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  50. package/web/.output/public/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  51. package/web/.output/public/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  52. package/web/.output/public/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  53. package/web/.output/public/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  54. package/web/.output/public/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  55. package/web/.output/public/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  56. package/web/.output/public/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  57. package/web/.output/public/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  58. package/web/.output/public/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  59. package/web/.output/public/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  60. package/web/.output/public/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  61. package/web/.output/public/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  62. package/web/.output/public/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  63. package/web/.output/public/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  64. package/web/.output/public/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  65. package/web/.output/public/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  66. package/web/.output/public/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  67. package/web/.output/public/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  68. package/web/.output/public/assets/anthropic-D8J8em9_.js +39 -0
  69. package/web/{dist/assets/arc-BgYOxBdg.js → .output/public/assets/arc-oTgBOc9h.js} +1 -1
  70. package/web/.output/public/assets/architecture-YZFGNWBL-DZ_Ec0kf.js +1 -0
  71. package/web/{dist/assets/architectureDiagram-Q4EWVU46-Yh6i8NsV.js → .output/public/assets/architectureDiagram-Q4EWVU46-BkX3k5GJ.js} +1 -1
  72. package/web/.output/public/assets/azure-openai-responses-BllE29wk.js +1 -0
  73. package/web/{dist/assets/band-mY0qgSES.js → .output/public/assets/band-w5KgYWOj.js} +1 -1
  74. package/web/{dist/assets/blockDiagram-DXYQGD6D-DUOEnS09.js → .output/public/assets/blockDiagram-DXYQGD6D-DQcL9Ujg.js} +1 -1
  75. package/web/{dist/assets/c4Diagram-AHTNJAMY-XzNOUnLt.js → .output/public/assets/c4Diagram-AHTNJAMY-D-IePZqI.js} +1 -1
  76. package/web/.output/public/assets/channel-CYyKOAtV.js +1 -0
  77. package/web/{dist/assets/chunk-2KRD3SAO-mLbXjVje.js → .output/public/assets/chunk-2KRD3SAO-B6zL3K_-.js} +1 -1
  78. package/web/{dist/assets/chunk-336JU56O-CQcnUKNW.js → .output/public/assets/chunk-336JU56O-c7e9XQL0.js} +2 -2
  79. package/web/.output/public/assets/chunk-426QAEUC-BjSoaXb2.js +1 -0
  80. package/web/{dist/assets/chunk-4BX2VUAB-DRZjGMDM.js → .output/public/assets/chunk-4BX2VUAB-C-QwaF8o.js} +1 -1
  81. package/web/{dist/assets/chunk-4TB4RGXK-CAwQq2uM.js → .output/public/assets/chunk-4TB4RGXK-BPHoxzPs.js} +1 -1
  82. package/web/{dist/assets/chunk-55IACEB6-C19HKnvd.js → .output/public/assets/chunk-55IACEB6-B1zv33Gi.js} +1 -1
  83. package/web/{dist/assets/chunk-5FUZZQ4R-Bw3BFJJs.js → .output/public/assets/chunk-5FUZZQ4R-Ca04rGKU.js} +1 -1
  84. package/web/{dist/assets/chunk-5PVQY5BW-Ciel-YVc.js → .output/public/assets/chunk-5PVQY5BW-B-37rcM6.js} +1 -1
  85. package/web/{dist/assets/chunk-67CJDMHE-DNZKE79k.js → .output/public/assets/chunk-67CJDMHE-HdGQv4Jx.js} +1 -1
  86. package/web/{dist/assets/chunk-7N4EOEYR-BGZXIfBD.js → .output/public/assets/chunk-7N4EOEYR-DqXAO0Gi.js} +1 -1
  87. package/web/{dist/assets/chunk-AA7GKIK3-CLWjm_Gk.js → .output/public/assets/chunk-AA7GKIK3-DDm8EH48.js} +1 -1
  88. package/web/{dist/assets/chunk-BSJP7CBP-DwT1eVSc.js → .output/public/assets/chunk-BSJP7CBP-c6iSgQvG.js} +1 -1
  89. package/web/.output/public/assets/chunk-Bj-mKKzh.js +1 -0
  90. package/web/{dist/assets/chunk-CIAEETIT-DaQsGVwH.js → .output/public/assets/chunk-CIAEETIT-CJ1fnWwS.js} +1 -1
  91. package/web/{dist/assets/chunk-EDXVE4YY-DNeRJTiS.js → .output/public/assets/chunk-EDXVE4YY-BAD3qlf8.js} +1 -1
  92. package/web/{dist/assets/chunk-ENJZ2VHE-Crfow0Ab.js → .output/public/assets/chunk-ENJZ2VHE-CygEaEHK.js} +1 -1
  93. package/web/{dist/assets/chunk-FMBD7UC4-BWSstEYx.js → .output/public/assets/chunk-FMBD7UC4-DtK74FNN.js} +1 -1
  94. package/web/{dist/assets/chunk-FOC6F5B3-BrTsf5ix.js → .output/public/assets/chunk-FOC6F5B3-B1tJYVCE.js} +1 -1
  95. package/web/{dist/assets/chunk-ICPOFSXX-C04NFfJk.js → .output/public/assets/chunk-ICPOFSXX-Cx8pjnoR.js} +3 -3
  96. package/web/{dist/assets/chunk-K5T4RW27-C6ErEFB0.js → .output/public/assets/chunk-K5T4RW27-BwFJlMGX.js} +1 -1
  97. package/web/{dist/assets/chunk-KGLVRYIC-DWgMrjZr.js → .output/public/assets/chunk-KGLVRYIC-mZuEP_SX.js} +1 -1
  98. package/web/{dist/assets/chunk-LIHQZDEY-D3DWGnJT.js → .output/public/assets/chunk-LIHQZDEY-kAIrsC_z.js} +1 -1
  99. package/web/{dist/assets/chunk-ORNJ4GCN-D0nhq27e.js → .output/public/assets/chunk-ORNJ4GCN-B5sPpxPr.js} +1 -1
  100. package/web/{dist/assets/chunk-OYMX7WX6-CQLx0cU3.js → .output/public/assets/chunk-OYMX7WX6-793CQBwp.js} +1 -1
  101. package/web/.output/public/assets/chunk-QZHKN3VN-BeLnIYwL.js +1 -0
  102. package/web/{dist/assets/chunk-U2HBQHQK-FqDOW_Dq.js → .output/public/assets/chunk-U2HBQHQK-ffKeXnV6.js} +1 -1
  103. package/web/{dist/assets/chunk-X2U36JSP-DiSftNGg.js → .output/public/assets/chunk-X2U36JSP-DntoY71A.js} +1 -1
  104. package/web/{dist/assets/chunk-XPW4576I-CTCFDURY.js → .output/public/assets/chunk-XPW4576I-DuNk6l5T.js} +1 -1
  105. package/web/{dist/assets/chunk-YZCP3GAM-BhxShnp0.js → .output/public/assets/chunk-YZCP3GAM-C6cD67UW.js} +1 -1
  106. package/web/{dist/assets/chunk-ZZ45TVLE-DMfGJuPz.js → .output/public/assets/chunk-ZZ45TVLE-C-NXiDgG.js} +1 -1
  107. package/web/.output/public/assets/classDiagram-6PBFFD2Q-B0p5BvS5.js +1 -0
  108. package/web/.output/public/assets/classDiagram-v2-HSJHXN6E-CNV1kogp.js +1 -0
  109. package/web/.output/public/assets/clone-t_jPG6Vp.js +1 -0
  110. package/web/{dist/assets/cose-bilkent-S5V4N54A-BWrDpSLZ.js → .output/public/assets/cose-bilkent-S5V4N54A-B_r8CGOq.js} +1 -1
  111. package/web/{dist/assets/custom-tts-DA7XkgNJ.js → .output/public/assets/custom-tts-6caJdeJH.js} +1 -1
  112. package/web/{dist/assets/dagre-C_Y5Jrtl.js → .output/public/assets/dagre-B6LvKZOC.js} +1 -1
  113. package/web/{dist/assets/dagre-KV5264BT-DcrvRRX1.js → .output/public/assets/dagre-KV5264BT-kmbpW2Qa.js} +1 -1
  114. package/web/.output/public/assets/diagnostics-Dir03GES.js +1 -0
  115. package/web/{dist/assets/diagram-5BDNPKRD-BsChRck6.js → .output/public/assets/diagram-5BDNPKRD-jScdzoma.js} +1 -1
  116. package/web/{dist/assets/diagram-G4DWMVQ6-raeAsgoe.js → .output/public/assets/diagram-G4DWMVQ6-DpX26eSz.js} +1 -1
  117. package/web/{dist/assets/diagram-MMDJMWI5-CuKsP84I.js → .output/public/assets/diagram-MMDJMWI5-C9dVTkG7.js} +1 -1
  118. package/web/{dist/assets/diagram-TYMM5635-T7ILcS3d.js → .output/public/assets/diagram-TYMM5635-DRTAOPO-.js} +1 -1
  119. package/web/{dist/assets/dist-oYdMaa1U.js → .output/public/assets/dist-mae6wHLp.js} +3 -3
  120. package/web/.output/public/assets/env-api-keys-7u9jMM5_.js +1 -0
  121. package/web/{dist/assets/erDiagram-SMLLAGMA-C9z6kYxH.js → .output/public/assets/erDiagram-SMLLAGMA-Coj28jXq.js} +1 -1
  122. package/web/.output/public/assets/event-stream-DcqAlaOm.js +1 -0
  123. package/web/{dist/assets/flatten-n72VCU_F.js → .output/public/assets/flatten-U6HPKYck.js} +1 -1
  124. package/web/{dist/assets/flowDiagram-DWJPFMVM-BA3HBIvp.js → .output/public/assets/flowDiagram-DWJPFMVM-CrvcpZkH.js} +1 -1
  125. package/web/{dist/assets/ganttDiagram-T4ZO3ILL-BXKKRsbk.js → .output/public/assets/ganttDiagram-T4ZO3ILL-C_IKmfo1.js} +1 -1
  126. package/web/.output/public/assets/gemini-live-yGyuxMZL.js +2 -0
  127. package/web/.output/public/assets/gitGraph-7Q5UKJZL-CqSUwktU.js +1 -0
  128. package/web/{dist/assets/gitGraphDiagram-UUTBAWPF-CfGAccI8.js → .output/public/assets/gitGraphDiagram-UUTBAWPF-BI4Z-mQ2.js} +1 -1
  129. package/web/.output/public/assets/github-copilot-headers-B6Fvsk-Y.js +1 -0
  130. package/web/.output/public/assets/google-Nkegp1GZ.js +1 -0
  131. package/web/.output/public/assets/google-shared-DGeOO0KQ.js +11 -0
  132. package/web/.output/public/assets/google-vertex-g5NuaSdk.js +1 -0
  133. package/web/{dist/assets/graphlib-sK54_wxh.js → .output/public/assets/graphlib-5VtJ2oig.js} +1 -1
  134. package/web/.output/public/assets/headers-DkHU-pcw.js +1 -0
  135. package/web/{dist/assets/index-B_MGHHww.js → .output/public/assets/index-BqQW1iWw.js} +807 -775
  136. package/web/.output/public/assets/index-CGn8E70R.css +2 -0
  137. package/web/.output/public/assets/info-OMHHGYJF-CuBqqD0E.js +1 -0
  138. package/web/{dist/assets/infoDiagram-42DDH7IO-CXoykyfr.js → .output/public/assets/infoDiagram-42DDH7IO-DJwPib2w.js} +1 -1
  139. package/web/{dist/assets/isEmpty-Lz_aOZWI.js → .output/public/assets/isEmpty-Bz-lCaCA.js} +1 -1
  140. package/web/{dist/assets/ishikawaDiagram-UXIWVN3A-BJieXVMt.js → .output/public/assets/ishikawaDiagram-UXIWVN3A-Bm0Zg0-C.js} +1 -1
  141. package/web/{dist/assets/journeyDiagram-VCZTEJTY-CwCyrnqT.js → .output/public/assets/journeyDiagram-VCZTEJTY-7KIiN_Ei.js} +1 -1
  142. package/web/{dist/assets/json-parse-C6tSeIxX.js → .output/public/assets/json-parse-MTOUHjU0.js} +2 -1
  143. package/web/{dist/assets/kanban-definition-6JOO6SKY-8ACmDHsl.js → .output/public/assets/kanban-definition-6JOO6SKY-CWSQfP5S.js} +1 -1
  144. package/web/{dist/assets/line-BqZCcbso.js → .output/public/assets/line-DrNncrSe.js} +1 -1
  145. package/web/{dist/assets/linear-CXf5Bx3D.js → .output/public/assets/linear-BwflsB10.js} +1 -1
  146. package/web/{dist/assets/mermaid-parser.core-C8ylgsWV.js → .output/public/assets/mermaid-parser.core-DMxe11ol.js} +2 -2
  147. package/web/{dist/assets/mermaid.core-BHCT6V24.js → .output/public/assets/mermaid.core-CzgDa8OF.js} +3 -3
  148. package/web/{dist/assets/mindmap-definition-QFDTVHPH-DrDAZL9Q.js → .output/public/assets/mindmap-definition-QFDTVHPH-D-lNkDnE.js} +1 -1
  149. package/web/.output/public/assets/mistral-Ba31w8rV.js +69 -0
  150. package/web/.output/public/assets/openai-codex-responses-X5oqdT0v.js +7 -0
  151. package/web/.output/public/assets/openai-completions-DYxG7eWy.js +5 -0
  152. package/web/.output/public/assets/openai-prompt-cache-9tCK10l1.js +1 -0
  153. package/web/{dist/assets/openai-realtime-BCZmIToJ.js → .output/public/assets/openai-realtime-D1gbzEEc.js} +1 -1
  154. package/web/.output/public/assets/openai-responses-BzceW3eb.js +1 -0
  155. package/web/.output/public/assets/openai-responses-shared-B9_LiyEY.js +12 -0
  156. package/web/{dist/assets/openai-tts-BRg2goic.js → .output/public/assets/openai-tts-DG5Ys3k9.js} +1 -1
  157. package/web/.output/public/assets/openrouter-C9VgLw1K.js +1 -0
  158. package/web/{dist/assets/ordinal-CHOvK70a.js → .output/public/assets/ordinal-Cw77dVkR.js} +1 -1
  159. package/web/.output/public/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm +0 -0
  160. package/web/.output/public/assets/p-retry-mEzMPax9.js +1 -0
  161. package/web/.output/public/assets/packet-4T2RLAQJ-D2x4nN0-.js +1 -0
  162. package/web/.output/public/assets/pdf.worker.min-Cpi8b8z3.mjs +28 -0
  163. package/web/.output/public/assets/pie-ZZUOXDRM-kWPr2BJV.js +1 -0
  164. package/web/{dist/assets/pieDiagram-DEJITSTG-CSnulv9o.js → .output/public/assets/pieDiagram-DEJITSTG-C7FwzQS5.js} +1 -1
  165. package/web/.output/public/assets/preload-helper-DSXbuxSR.js +1 -0
  166. package/web/{dist/assets/quadrantDiagram-34T5L4WZ-DiM-1bw4.js → .output/public/assets/quadrantDiagram-34T5L4WZ-CY7HoVD8.js} +1 -1
  167. package/web/.output/public/assets/radar-PYXPWWZC-C95fU_MN.js +1 -0
  168. package/web/{dist/assets/reduce-r7gP4wdg.js → .output/public/assets/reduce-DQIdC_mC.js} +1 -1
  169. package/web/{dist/assets/renderer-BHoCfdWO-BFpsm4dw.js → .output/public/assets/renderer-BHoCfdWO-COcEnbx-.js} +1 -1
  170. package/web/{dist/assets/requirementDiagram-MS252O5E-CunJUnIN.js → .output/public/assets/requirementDiagram-MS252O5E-paEmPBuX.js} +1 -1
  171. package/web/.output/public/assets/sanitize-unicode-BD2XKRoV.js +1 -0
  172. package/web/{dist/assets/sankeyDiagram-XADWPNL6-DaA_56zq.js → .output/public/assets/sankeyDiagram-XADWPNL6-Ext_g4Ox.js} +1 -1
  173. package/web/{dist/assets/sequenceDiagram-FGHM5R23-CG_SeqVO.js → .output/public/assets/sequenceDiagram-FGHM5R23-CTLnxFUj.js} +1 -1
  174. package/web/{dist/assets/speech-ZNExxXBR.js → .output/public/assets/speech-D3C-KRDP.js} +2 -2
  175. package/web/{dist/assets/src-BfaOho0B.js → .output/public/assets/src-BOZISNbw.js} +1 -1
  176. package/web/{dist/assets/stateDiagram-FHFEXIEX-CSUigMtP.js → .output/public/assets/stateDiagram-FHFEXIEX-B3an23Pn.js} +1 -1
  177. package/web/.output/public/assets/stateDiagram-v2-QKLJ7IA2-D_cYSwJU.js +1 -0
  178. package/web/{dist/assets/supertonic-hDdNdgtO.js → .output/public/assets/supertonic-DzwILFbx.js} +2 -2
  179. package/web/{dist/assets/time-DaCo2z7n.js → .output/public/assets/time-HnfVL2-O.js} +1 -1
  180. package/web/{dist/assets/timeline-definition-GMOUNBTQ-DcMiH-gG.js → .output/public/assets/timeline-definition-GMOUNBTQ-D_chE-0s.js} +1 -1
  181. package/web/.output/public/assets/transform-messages-BQ4ruKay.js +1 -0
  182. package/web/{dist/assets/transformers.web-R9eWI1xg.js → .output/public/assets/transformers.web-Bopumv3I.js} +1 -1
  183. package/web/.output/public/assets/treeView-SZITEDCU-BaJsJYGU.js +1 -0
  184. package/web/.output/public/assets/treemap-W4RFUUIX-CZyrM93a.js +1 -0
  185. package/web/{dist/assets/vennDiagram-DHZGUBPP-C6A75Q3q.js → .output/public/assets/vennDiagram-DHZGUBPP-CVDiEdUR.js} +1 -1
  186. package/web/.output/public/assets/wardley-RL74JXVD-CF0AcTcr.js +1 -0
  187. package/web/{dist/assets/wardleyDiagram-NUSXRM2D-XmYD0oYm.js → .output/public/assets/wardleyDiagram-NUSXRM2D-CroPrw7r.js} +1 -1
  188. package/web/.output/public/assets/web-CVLwkmjx.js +10 -0
  189. package/web/{dist/assets/xychartDiagram-5P7HB3ND-BgSoKcS9.js → .output/public/assets/xychartDiagram-5P7HB3ND-C0_hkOEJ.js} +1 -1
  190. package/web/.output/public/assets/zodToJsonSchema-CS8B3iBY.js +3 -0
  191. package/web/.output/public/favicon.svg +10 -0
  192. package/web/.output/public/index.html +118 -0
  193. package/web/.output/public/keating-metaharness.pdf +10557 -3
  194. package/web/.output/public/llms.txt +44 -0
  195. package/web/.output/public/logo.png +0 -0
  196. package/web/.output/public/manifest.webmanifest +1 -0
  197. package/web/.output/public/og-image.png +0 -0
  198. package/web/.output/public/pwa-192x192.svg +10 -0
  199. package/web/.output/public/pwa-512x512.svg +10 -0
  200. package/web/.output/public/registerSW.js +1 -0
  201. package/web/.output/public/robots.txt +8 -0
  202. package/web/.output/public/sitemap.xml +39 -0
  203. package/web/.output/public/sw.js +665 -0
  204. package/web/.output/public/tapes/doctor.mp4 +0 -0
  205. package/web/.output/public/tapes/feedback-flow.mp4 +0 -0
  206. package/web/.output/public/tapes/improve-flow.mp4 +0 -0
  207. package/web/.output/public/tapes/intro.mp4 +0 -0
  208. package/web/.output/public/tapes/learning-flow.mp4 +0 -0
  209. package/web/.output/public/tapes/session-flow.mp4 +0 -0
  210. package/web/.output/public/tapes/teacher-flow.mp4 +0 -0
  211. package/web/.output/public/tapes/tests.mp4 +0 -0
  212. package/web/.output/public/workbox-2ae722a1.js +4390 -0
  213. package/web/.output/server/_chunks/renderer-template.mjs +10 -0
  214. package/web/.output/server/_libs/h3+rou3+srvx.mjs +1383 -0
  215. package/web/.output/server/_libs/hookable.mjs +41 -0
  216. package/web/.output/server/_libs/ufo.mjs +64 -0
  217. package/web/.output/server/index.mjs +2095 -0
  218. package/web/dist/assets/_baseFor-B4pl5CmD.js +1 -0
  219. package/web/dist/assets/anthropic-D8J8em9_.js +39 -0
  220. package/web/dist/assets/arc-oTgBOc9h.js +1 -0
  221. package/web/dist/assets/architecture-YZFGNWBL-DZ_Ec0kf.js +1 -0
  222. package/web/dist/assets/architectureDiagram-Q4EWVU46-BkX3k5GJ.js +36 -0
  223. package/web/dist/assets/array-DKReyB4R.js +1 -0
  224. package/web/dist/assets/azure-openai-responses-BllE29wk.js +1 -0
  225. package/web/dist/assets/band-w5KgYWOj.js +1 -0
  226. package/web/dist/assets/blockDiagram-DXYQGD6D-DQcL9Ujg.js +132 -0
  227. package/web/dist/assets/c4Diagram-AHTNJAMY-D-IePZqI.js +10 -0
  228. package/web/dist/assets/channel-CYyKOAtV.js +1 -0
  229. package/web/dist/assets/chunk-2KRD3SAO-B6zL3K_-.js +1 -0
  230. package/web/dist/assets/chunk-336JU56O-c7e9XQL0.js +2 -0
  231. package/web/dist/assets/chunk-426QAEUC-BjSoaXb2.js +1 -0
  232. package/web/dist/assets/chunk-4BX2VUAB-C-QwaF8o.js +1 -0
  233. package/web/dist/assets/chunk-4TB4RGXK-BPHoxzPs.js +206 -0
  234. package/web/dist/assets/chunk-55IACEB6-B1zv33Gi.js +1 -0
  235. package/web/dist/assets/chunk-5FUZZQ4R-Ca04rGKU.js +62 -0
  236. package/web/dist/assets/chunk-5PVQY5BW-B-37rcM6.js +2 -0
  237. package/web/dist/assets/chunk-67CJDMHE-HdGQv4Jx.js +1 -0
  238. package/web/dist/assets/chunk-7N4EOEYR-DqXAO0Gi.js +1 -0
  239. package/web/dist/assets/chunk-AA7GKIK3-DDm8EH48.js +1 -0
  240. package/web/dist/assets/chunk-BSJP7CBP-c6iSgQvG.js +1 -0
  241. package/web/dist/assets/chunk-CIAEETIT-CJ1fnWwS.js +1 -0
  242. package/web/dist/assets/chunk-EDXVE4YY-BAD3qlf8.js +1 -0
  243. package/web/dist/assets/chunk-ENJZ2VHE-CygEaEHK.js +10 -0
  244. package/web/dist/assets/chunk-FMBD7UC4-DtK74FNN.js +15 -0
  245. package/web/dist/assets/chunk-FOC6F5B3-B1tJYVCE.js +1 -0
  246. package/web/dist/assets/chunk-ICPOFSXX-Cx8pjnoR.js +123 -0
  247. package/web/dist/assets/chunk-K5T4RW27-BwFJlMGX.js +94 -0
  248. package/web/dist/assets/chunk-KGLVRYIC-mZuEP_SX.js +1 -0
  249. package/web/dist/assets/chunk-LIHQZDEY-kAIrsC_z.js +1 -0
  250. package/web/dist/assets/chunk-ORNJ4GCN-B5sPpxPr.js +1 -0
  251. package/web/dist/assets/chunk-OYMX7WX6-793CQBwp.js +231 -0
  252. package/web/dist/assets/chunk-QZHKN3VN-BeLnIYwL.js +1 -0
  253. package/web/dist/assets/chunk-U2HBQHQK-ffKeXnV6.js +70 -0
  254. package/web/dist/assets/chunk-X2U36JSP-DntoY71A.js +1 -0
  255. package/web/dist/assets/chunk-XPW4576I-DuNk6l5T.js +32 -0
  256. package/web/dist/assets/chunk-YZCP3GAM-C6cD67UW.js +1 -0
  257. package/web/dist/assets/chunk-ZZ45TVLE-C-NXiDgG.js +1 -0
  258. package/web/dist/assets/classDiagram-6PBFFD2Q-B0p5BvS5.js +1 -0
  259. package/web/dist/assets/classDiagram-v2-HSJHXN6E-CNV1kogp.js +1 -0
  260. package/web/dist/assets/clone-t_jPG6Vp.js +1 -0
  261. package/web/dist/assets/cose-bilkent-S5V4N54A-B_r8CGOq.js +1 -0
  262. package/web/dist/assets/custom-tts-6caJdeJH.js +1 -0
  263. package/web/dist/assets/cytoscape.esm-CIAhqqev.js +321 -0
  264. package/web/dist/assets/dagre-B6LvKZOC.js +1 -0
  265. package/web/dist/assets/dagre-KV5264BT-kmbpW2Qa.js +4 -0
  266. package/web/dist/assets/defaultLocale-CzQOUpbn.js +1 -0
  267. package/web/dist/assets/diagnostics-Dir03GES.js +1 -0
  268. package/web/dist/assets/diagram-5BDNPKRD-jScdzoma.js +10 -0
  269. package/web/dist/assets/diagram-G4DWMVQ6-DpX26eSz.js +24 -0
  270. package/web/dist/assets/diagram-MMDJMWI5-C9dVTkG7.js +43 -0
  271. package/web/dist/assets/diagram-TYMM5635-DRTAOPO-.js +24 -0
  272. package/web/dist/assets/dist-DzRHszr6.js +1 -0
  273. package/web/dist/assets/dist-mae6wHLp.js +10 -0
  274. package/web/dist/assets/env-api-keys-7u9jMM5_.js +1 -0
  275. package/web/dist/assets/erDiagram-SMLLAGMA-Coj28jXq.js +85 -0
  276. package/web/dist/assets/event-stream-DcqAlaOm.js +1 -0
  277. package/web/dist/assets/flatten-U6HPKYck.js +1 -0
  278. package/web/dist/assets/flowDiagram-DWJPFMVM-CrvcpZkH.js +162 -0
  279. package/web/dist/assets/ganttDiagram-T4ZO3ILL-C_IKmfo1.js +292 -0
  280. package/web/dist/assets/gemini-live-yGyuxMZL.js +2 -0
  281. package/web/dist/assets/gitGraph-7Q5UKJZL-CqSUwktU.js +1 -0
  282. package/web/dist/assets/gitGraphDiagram-UUTBAWPF-BI4Z-mQ2.js +106 -0
  283. package/web/dist/assets/github-copilot-headers-B6Fvsk-Y.js +1 -0
  284. package/web/dist/assets/google-Nkegp1GZ.js +1 -0
  285. package/web/dist/assets/google-shared-DGeOO0KQ.js +11 -0
  286. package/web/dist/assets/google-vertex-g5NuaSdk.js +1 -0
  287. package/web/dist/assets/graphlib-5VtJ2oig.js +1 -0
  288. package/web/dist/assets/hash-K0cSe8jy.js +1 -0
  289. package/web/dist/assets/headers-DkHU-pcw.js +1 -0
  290. package/web/dist/assets/index-BqQW1iWw.js +3219 -0
  291. package/web/dist/assets/index-CGn8E70R.css +2 -0
  292. package/web/dist/assets/info-OMHHGYJF-CuBqqD0E.js +1 -0
  293. package/web/dist/assets/infoDiagram-42DDH7IO-DJwPib2w.js +2 -0
  294. package/web/dist/assets/init-BPUAOWDF.js +1 -0
  295. package/web/dist/assets/isEmpty-Bz-lCaCA.js +1 -0
  296. package/web/dist/assets/ishikawaDiagram-UXIWVN3A-Bm0Zg0-C.js +70 -0
  297. package/web/dist/assets/journeyDiagram-VCZTEJTY-7KIiN_Ei.js +139 -0
  298. package/web/dist/assets/json-parse-MTOUHjU0.js +3 -0
  299. package/web/dist/assets/kanban-definition-6JOO6SKY-CWSQfP5S.js +89 -0
  300. package/web/dist/assets/katex-C_VFEy8p.js +265 -0
  301. package/web/dist/assets/line-DrNncrSe.js +1 -0
  302. package/web/dist/assets/linear-BwflsB10.js +1 -0
  303. package/web/dist/assets/math-CqsWNv0u.js +1 -0
  304. package/web/dist/assets/mermaid-parser.core-DMxe11ol.js +4 -0
  305. package/web/dist/assets/mermaid.core-CzgDa8OF.js +11 -0
  306. package/web/dist/assets/mindmap-definition-QFDTVHPH-D-lNkDnE.js +96 -0
  307. package/web/dist/assets/mistral-Ba31w8rV.js +69 -0
  308. package/web/dist/assets/openai-DAtqabcb.js +16 -0
  309. package/web/dist/assets/openai-codex-responses-X5oqdT0v.js +7 -0
  310. package/web/dist/assets/openai-completions-DYxG7eWy.js +5 -0
  311. package/web/dist/assets/openai-prompt-cache-9tCK10l1.js +1 -0
  312. package/web/dist/assets/openai-realtime-D1gbzEEc.js +1 -0
  313. package/web/dist/assets/openai-responses-BzceW3eb.js +1 -0
  314. package/web/dist/assets/openai-responses-shared-B9_LiyEY.js +12 -0
  315. package/web/dist/assets/openai-tts-DG5Ys3k9.js +1 -0
  316. package/web/dist/assets/openrouter-C9VgLw1K.js +1 -0
  317. package/web/dist/assets/ordinal-Cw77dVkR.js +1 -0
  318. package/web/dist/assets/ort.bundle.min-CE4lKfUe.js +2805 -0
  319. package/web/dist/assets/p-retry-mEzMPax9.js +1 -0
  320. package/web/dist/assets/packet-4T2RLAQJ-D2x4nN0-.js +1 -0
  321. package/web/dist/assets/path-DceIr1s7.js +1 -0
  322. package/web/dist/assets/pie-ZZUOXDRM-kWPr2BJV.js +1 -0
  323. package/web/dist/assets/pieDiagram-DEJITSTG-C7FwzQS5.js +30 -0
  324. package/web/dist/assets/quadrantDiagram-34T5L4WZ-CY7HoVD8.js +7 -0
  325. package/web/dist/assets/radar-PYXPWWZC-C95fU_MN.js +1 -0
  326. package/web/dist/assets/reduce-DQIdC_mC.js +1 -0
  327. package/web/dist/assets/renderer-BHoCfdWO-COcEnbx-.js +1 -0
  328. package/web/dist/assets/requirementDiagram-MS252O5E-paEmPBuX.js +84 -0
  329. package/web/dist/assets/rough.esm-zabqYs6f.js +1 -0
  330. package/web/dist/assets/sanitize-unicode-BD2XKRoV.js +1 -0
  331. package/web/dist/assets/sankeyDiagram-XADWPNL6-Ext_g4Ox.js +10 -0
  332. package/web/dist/assets/sequenceDiagram-FGHM5R23-CTLnxFUj.js +157 -0
  333. package/web/dist/assets/speech-D3C-KRDP.js +2 -0
  334. package/web/dist/assets/src-BOZISNbw.js +1 -0
  335. package/web/dist/assets/state-CrA0YVPh-CbRahjhd.js +27 -0
  336. package/web/dist/assets/stateDiagram-FHFEXIEX-B3an23Pn.js +1 -0
  337. package/web/dist/assets/stateDiagram-v2-QKLJ7IA2-D_cYSwJU.js +1 -0
  338. package/web/dist/assets/step-Dm9As71j.js +1 -0
  339. package/web/dist/assets/string-DAtruGuJ.js +1 -0
  340. package/web/dist/assets/supertonic-DzwILFbx.js +2 -0
  341. package/web/dist/assets/time-HnfVL2-O.js +1 -0
  342. package/web/dist/assets/timeline-definition-GMOUNBTQ-D_chE-0s.js +120 -0
  343. package/web/dist/assets/transform-messages-BQ4ruKay.js +1 -0
  344. package/web/dist/assets/transformers.web-Bopumv3I.js +14 -0
  345. package/web/dist/assets/treeView-SZITEDCU-BaJsJYGU.js +1 -0
  346. package/web/dist/assets/treemap-W4RFUUIX-CZyrM93a.js +1 -0
  347. package/web/dist/assets/vennDiagram-DHZGUBPP-CVDiEdUR.js +34 -0
  348. package/web/dist/assets/wardley-RL74JXVD-CF0AcTcr.js +1 -0
  349. package/web/dist/assets/wardleyDiagram-NUSXRM2D-CroPrw7r.js +20 -0
  350. package/web/dist/assets/web-CVLwkmjx.js +10 -0
  351. package/web/dist/assets/xychartDiagram-5P7HB3ND-C0_hkOEJ.js +7 -0
  352. package/web/dist/assets/zodToJsonSchema-CS8B3iBY.js +3 -0
  353. package/web/dist/index.html +21 -20
  354. package/web/dist/sw.js +148 -130
  355. package/web/dist/assets/anthropic-mDOoXVZn.js +0 -36
  356. package/web/dist/assets/architecture-YZFGNWBL-MLoSDt-a.js +0 -1
  357. package/web/dist/assets/azure-openai-responses-lDjfaDoj.js +0 -1
  358. package/web/dist/assets/channel-BumC_1wb.js +0 -1
  359. package/web/dist/assets/chunk-426QAEUC-AjoT_j_q.js +0 -1
  360. package/web/dist/assets/chunk-QZHKN3VN-X2zPgEFk.js +0 -1
  361. package/web/dist/assets/classDiagram-6PBFFD2Q-qESk_xyE.js +0 -1
  362. package/web/dist/assets/classDiagram-v2-HSJHXN6E-BM1nmtfm.js +0 -1
  363. package/web/dist/assets/clone-CVy2b825.js +0 -1
  364. package/web/dist/assets/env-api-keys-BNlMKqxw.js +0 -1
  365. package/web/dist/assets/event-stream-D33K9rpL.js +0 -1
  366. package/web/dist/assets/gemini-live-dK40vCc5.js +0 -2
  367. package/web/dist/assets/gitGraph-7Q5UKJZL-Cy0KloCM.js +0 -1
  368. package/web/dist/assets/github-copilot-headers-BuUn5v2j.js +0 -1
  369. package/web/dist/assets/google-BdS4iTyC.js +0 -1
  370. package/web/dist/assets/google-gemini-cli-ECA0sP3z.js +0 -2
  371. package/web/dist/assets/google-shared-DFv4ubOG.js +0 -2
  372. package/web/dist/assets/google-vertex-Duei77qD.js +0 -1
  373. package/web/dist/assets/index-C_k9n6xi.css +0 -2
  374. package/web/dist/assets/info-OMHHGYJF-DiTlPM51.js +0 -1
  375. package/web/dist/assets/mistral-BCIirCkW.js +0 -7
  376. package/web/dist/assets/openai-codex-responses-BgRTWVD_.js +0 -7
  377. package/web/dist/assets/openai-completions-D5AUQEua.js +0 -5
  378. package/web/dist/assets/openai-responses-CTlQ1a-G.js +0 -1
  379. package/web/dist/assets/openai-responses-shared-CLzQyVyy.js +0 -10
  380. package/web/dist/assets/packet-4T2RLAQJ-EXgAtQjm.js +0 -1
  381. package/web/dist/assets/pie-ZZUOXDRM-dKU8mzlj.js +0 -1
  382. package/web/dist/assets/radar-PYXPWWZC-B4d2wh2H.js +0 -1
  383. package/web/dist/assets/stateDiagram-v2-QKLJ7IA2-CgpYzp7D.js +0 -1
  384. package/web/dist/assets/transform-messages-DXDWLrnO.js +0 -1
  385. package/web/dist/assets/treeView-SZITEDCU-V29H5f16.js +0 -1
  386. package/web/dist/assets/treemap-W4RFUUIX-DsAU74TP.js +0 -1
  387. package/web/dist/assets/wardley-RL74JXVD-lGAI4Cps.js +0 -1
  388. package/web/dist/assets/web-jLdm8a1-.js +0 -10
  389. /package/web/{dist/assets/_baseFor-2QgQJAzW.js → .output/public/assets/_baseFor-B4pl5CmD.js} +0 -0
  390. /package/web/{dist/assets/array-B4O_ir3H.js → .output/public/assets/array-DKReyB4R.js} +0 -0
  391. /package/web/{dist/assets/cytoscape.esm-CdzdaUMP.js → .output/public/assets/cytoscape.esm-CIAhqqev.js} +0 -0
  392. /package/web/{dist/assets/defaultLocale-Bhb3osZR.js → .output/public/assets/defaultLocale-CzQOUpbn.js} +0 -0
  393. /package/web/{dist/assets/dist-DQ41Rxbw.js → .output/public/assets/dist-DzRHszr6.js} +0 -0
  394. /package/web/{dist/assets/hash-CQjDwcjR.js → .output/public/assets/hash-K0cSe8jy.js} +0 -0
  395. /package/web/{dist/assets/init-DugVGdkd.js → .output/public/assets/init-BPUAOWDF.js} +0 -0
  396. /package/web/{dist/assets/katex-CyM-5LlM.js → .output/public/assets/katex-C_VFEy8p.js} +0 -0
  397. /package/web/{dist/assets/math-Csj_9zpx.js → .output/public/assets/math-CqsWNv0u.js} +0 -0
  398. /package/web/{dist/assets/openai-CRGaNv9i.js → .output/public/assets/openai-DAtqabcb.js} +0 -0
  399. /package/web/{dist/assets/ort.bundle.min-Drf2fDrC.js → .output/public/assets/ort.bundle.min-CE4lKfUe.js} +0 -0
  400. /package/web/{dist/assets/path-BVVvcbiy.js → .output/public/assets/path-DceIr1s7.js} +0 -0
  401. /package/web/{dist/assets/rough.esm-D5NinLFK.js → .output/public/assets/rough.esm-zabqYs6f.js} +0 -0
  402. /package/web/{dist/assets/state-CrA0YVPh-wJ4Rmm6M.js → .output/public/assets/state-CrA0YVPh-CbRahjhd.js} +0 -0
  403. /package/web/{dist/assets/step-qalMyYGy.js → .output/public/assets/step-Dm9As71j.js} +0 -0
  404. /package/web/{dist/assets/string-DPssBiak.js → .output/public/assets/string-DAtruGuJ.js} +0 -0
@@ -0,0 +1,7 @@
1
+ import{t as e}from"./preload-helper-DSXbuxSR.js";import{t}from"./env-api-keys-7u9jMM5_.js";import{i as n,t as r}from"./event-stream-DcqAlaOm.js";import{i,n as a,r as o,t as s}from"./diagnostics-Dir03GES.js";import{t as c}from"./headers-DkHU-pcw.js";import{r as l}from"./transform-messages-BQ4ruKay.js";import{t as u}from"./openai-prompt-cache-9tCK10l1.js";import{n as d,r as f,t as p}from"./openai-responses-shared-B9_LiyEY.js";var m=function(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e},h=null,g=t=>e(()=>import(m(t)),[]);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&g(`node:os`).then(e=>{h=e});var _=`https://chatgpt.com/backend-api`,v=`https://api.openai.com/auth`,y=3,b=1e3,x=new Set([`openai`,`openai-codex`,`opencode`]),S=1009,ee=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function C(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function w(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}var T=(e,n,i)=>{let o=new r;return(async()=>{let r={role:`assistant`,content:[],api:`openai-codex-responses`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let l=i?.apiKey||t(e.provider)||``;if(!l)throw Error(`No API key for provider: ${e.provider}`);let u=xe(l),d=E(e,n,i),f=await i?.onPayload?.(d,e);f!==void 0&&(d=f);let p=i?.sessionId||Se(),m=Ce(e.headers,i?.headers,u,l,i?.sessionId),h=we(e.headers,i?.headers,u,l,p),g=JSON.stringify(d),_=i?.transport||`auto`,v=_!==`sse`&&V(i?.sessionId);if(v&&H(i?.sessionId),_!==`sse`&&!v){let t=!1;try{if(await ye(re(e.baseUrl),d,h,r,o,e,()=>{t=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);o.push({type:`done`,reason:r.stopReason,message:r}),o.end();return}catch(e){if(i?.signal?.aborted||ie(e)||(s(r,a(`provider_transport_failure`,e,{configuredTransport:_,fallbackTransport:t?void 0:`sse`,eventsEmitted:t,phase:t?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(g).byteLength})),U(i?.sessionId,e),t))throw e;H(i?.sessionId)}}let x,S;for(let t=0;t<=y;t++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(x=await fetch(k(e.baseUrl),{method:`POST`,headers:m,body:g,signal:i?.signal}),await i?.onResponse?.({status:x.status,headers:c(x.headers)},e),x.ok)break;let n=await x.text();if(t<y&&C(x.status,n)){let e=b*2**t,n=x.headers.get(`retry-after-ms`);if(n!==null){let t=Number(n);Number.isFinite(t)&&(e=Math.max(0,t))}else{let t=x.headers.get(`retry-after`);if(t){let n=Number(t);if(Number.isFinite(n))e=Math.max(0,n*1e3);else{let n=Date.parse(t);Number.isNaN(n)||(e=Math.max(0,n-Date.now()))}}}await w(e,i?.signal);continue}let r=await be(new Response(n,{status:x.status,statusText:x.statusText}));throw Error(r.friendlyMessage||r.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(S=e instanceof Error?e:Error(String(e)),t<y&&!S.message.includes(`usage limit`)){await w(b*2**t,i?.signal);continue}throw S}}if(!x?.ok)throw S??Error(`Failed after retries`);if(!x.body)throw Error(`No response body`);if(o.push({type:`start`,partial:r}),await A(x,r,o,e,i),i?.signal?.aborted)throw Error(`Request was aborted`);o.push({type:`done`,reason:r.stopReason,message:r}),o.end()}catch(e){for(let e of r.content)delete e.partialJson;r.stopReason=i?.signal?.aborted?`aborted`:`error`,r.errorMessage=e instanceof Error?e.message:String(e),o.push({type:`error`,reason:r.stopReason,error:r}),o.end()}})(),o},te=(e,r,i)=>{let a=i?.apiKey||t(e.provider);if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=l(e,i,a),s=i?.reasoning?n(e,i.reasoning):void 0,c=s===`off`?void 0:s;return T(e,r,{...o,reasoningEffort:c})};function E(e,t,n){let r=p(e,t,x,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:r,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:u(n?.sessionId),tool_choice:`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(i.temperature=n.temperature),n?.serviceTier!==void 0&&(i.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(i.tools=d(t.tools,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(i.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return i}function ne(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function D(e,t,n){let r=ne(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}function O(e,t){return e===`default`&&(t===`flex`||t===`priority`)?t:e??t}function k(e){let t=(e&&e.trim().length>0?e:_).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function re(e){let t=new URL(k(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function A(e,t,n,r,i){await f(N(F(e)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:O,applyServiceTierPricing:(e,t)=>D(e,t,r)})}var j=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},M=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function ie(e){return e instanceof j||e instanceof M}async function*N(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``;throw new j(`Codex error: ${t.message||e||JSON.stringify(t)}`,{code:e||void 0,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new j(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:P(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function P(e){if(typeof e==`string`)return ee.has(e)?e:void 0}async function*F(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
2
+
3
+ `);for(;a!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=e.split(`
4
+ `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
5
+ `).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new M(`Invalid Codex SSE JSON: ${o(t)}`,{cause:t,payload:e})}}a=r.indexOf(`
6
+
7
+ `)}}}finally{try{await t.cancel()}catch{}try{t.releaseLock()}catch{}}}var ae=`responses_websockets=2026-02-06`,oe=300*1e3,I=new Map,L=new Map,R=new Set;function z(e){let t=L.get(e);return t||(t={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},L.set(e,t)),t}function se(e){let t=L.get(e);return t?{...t}:void 0}function ce(e){if(e){L.delete(e),R.delete(e);return}L.clear(),R.clear()}function B(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),K(e.socket,1e3,`debug_close`)};if(e){let n=I.get(e);n&&t(n),I.delete(e);return}for(let e of I.values())t(e);I.clear()}i(B);function V(e){return e?R.has(e):!1}function H(e){if(!e)return;let t=z(e);t.sseFallbacks++,t.websocketFallbackActive=V(e)}function U(e,t){if(!e)return;R.add(e);let n=z(e);n.websocketFailures++,n.lastWebSocketError=o(t),n.websocketFallbackActive=!0}var W=null;async function le(){if(W)return W;if(process?.versions?.bun&&({}.HTTP_PROXY||{}.HTTPS_PROXY||{}.http_proxy||{}.https_proxy)){let e=(await g(`proxy-from-env`)).getProxyForUrl;return W=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=e(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`));super(t,{...r,...i?{proxy:i}:{}})}},W}let e=globalThis.WebSocket;return typeof e==`function`?e:null}var ue=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function de(e){let t=e.readyState;return typeof t==`number`?t:void 0}function G(e){let t=de(e);return t===void 0||t===1}function K(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function q(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(K(t.socket,1e3,`idle_timeout`),I.delete(e))},oe)}async function J(e,t,n){let r=await le();if(!r)throw Error(`WebSocket transport is not available in this runtime`);let i=c(t);return delete i[`OpenAI-Beta`],new Promise((t,a)=>{let o=!1,s;try{s=new r(e,{headers:i})}catch(e){a(e instanceof Error?e:Error(String(e)));return}let c=()=>{o||(o=!0,f(),t(s))},l=e=>{let t=Y(e);o||(o=!0,f(),a(t))},u=e=>{let t=X(e);o||(o=!0,f(),a(t))},d=()=>{o||(o=!0,f(),s.close(1e3,`aborted`),a(Error(`Request was aborted`)))},f=()=>{s.removeEventListener(`open`,c),s.removeEventListener(`error`,l),s.removeEventListener(`close`,u),n?.removeEventListener(`abort`,d)};s.addEventListener(`open`,c),s.addEventListener(`error`,l),s.addEventListener(`close`,u),n?.addEventListener(`abort`,d)})}async function fe(e,t,n,r){if(!n){let n=await J(e,t,r);return{socket:n,reused:!1,release:({keep:e}={})=>{if(e===!1){K(n);return}K(n)}}}let i=I.get(n);if(i){if(i.idleTimer&&=(clearTimeout(i.idleTimer),void 0),!i.busy&&G(i.socket))return i.busy=!0,{socket:i.socket,entry:i,reused:!0,release:({keep:e}={})=>{if(!e||!G(i.socket)){K(i.socket),I.delete(n);return}i.busy=!1,q(n,i)}};if(i.busy){let n=await J(e,t,r);return{socket:n,reused:!1,release:()=>{K(n)}}}G(i.socket)||(K(i.socket),I.delete(n))}let a=await J(e,t,r),o={socket:a,busy:!0};return I.set(n,o),{socket:a,entry:o,reused:!1,release:({keep:e}={})=>{if(!e||!G(o.socket)){K(o.socket),o.idleTimer&&clearTimeout(o.idleTimer),I.get(n)===o&&I.delete(n);return}o.busy=!1,q(n,o)}}}function Y(e){if(e&&typeof e==`object`){let t=`message`in e?e.message:void 0;if(typeof t==`string`&&t.length>0)return Error(t);let n=`error`in e?e.error:void 0;if(n instanceof Error&&n.message.length>0)return n;if(n&&typeof n==`object`&&`message`in n){let e=n.message;if(typeof e==`string`&&e.length>0)return Error(e)}}return Error(`WebSocket error`)}function X(e){if(e&&typeof e==`object`){let t=`code`in e?e.code:void 0,n=`reason`in e?e.reason:void 0,r=`wasClean`in e?e.wasClean:void 0,i=typeof t==`number`?` ${t}`:``,a=typeof n==`string`&&n.length>0?` ${n}`:``;return!a&&t===S&&(a=` message too big`),new ue(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function pe(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(e&&typeof e==`object`&&`arrayBuffer`in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*me(e,t){let n=[],r=null,i=!1,a=null,s=!1,c=()=>{if(!r)return;let e=r;r=null,e()},l=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await pe(e.data),!t))return;let r=JSON.parse(t),a=typeof r.type==`string`?r.type:``;(a===`response.completed`||a===`response.done`||a===`response.incomplete`)&&(s=!0,i=!0),n.push(r),c()}catch(e){a=new M(`Invalid Codex WebSocket JSON: ${o(e)}`,{cause:e,payload:t}),i=!0,c()}})()},u=e=>{a=Y(e),i=!0,c()},d=e=>{if(s){i=!0,c();return}a||=X(e),i=!0,c()},f=()=>{a=Error(`Request was aborted`),i=!0,c()};e.addEventListener(`message`,l),e.addEventListener(`error`,u),e.addEventListener(`close`,d),t?.addEventListener(`abort`,f);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(n.length>0){yield n.shift();continue}if(i)break;await new Promise(e=>{r=e})}if(a)throw a;if(!s)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,l),e.removeEventListener(`error`,u),e.removeEventListener(`close`,d),t?.removeEventListener(`abort`,f)}}function Z(e){let{input:t,previous_response_id:n,...r}=e;return r}function he(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function ge(e,t){return JSON.stringify(Z(e))===JSON.stringify(Z(t))}function Q(e,t){if(!ge(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&he(n.slice(0,r.length),r))return n.slice(r.length)}function _e(e,t){let n=e.continuation;if(!n)return t;let r=Q(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*ve(e,t,n,r){let i=!1;for await(let a of e)i||(i=!0,r(),n.push({type:`start`,partial:t})),yield a}async function ye(e,t,n,r,i,a,o,s){let{socket:c,entry:l,reused:u,release:d}=await fe(e,n,s?.sessionId,s?.signal),m=!0,h=s?.transport===`websocket-cached`||s?.transport===`auto`,g=t,_=h&&l?_e(l,g):g,v=s?.sessionId?z(s.sessionId):void 0;v&&(v.requests++,u?v.connectionsReused++:v.connectionsCreated++,h&&v.cachedContextRequests++,_.store===!0&&v.storeTrueRequests++,v.lastInputItems=_.input?.length??0,_.previous_response_id?(v.deltaRequests++,v.lastDeltaInputItems=_.input?.length??0,v.lastPreviousResponseId=_.previous_response_id):(v.fullContextRequests++,v.lastDeltaInputItems=void 0,v.lastPreviousResponseId=void 0));try{if(c.send(JSON.stringify({type:`response.create`,..._})),await f(ve(N(me(c,s?.signal)),r,i,o),r,i,a,{serviceTier:s?.serviceTier,resolveServiceTier:O,applyServiceTierPricing:(e,t)=>D(e,t,a)}),s?.signal?.aborted)m=!1;else if(h&&l&&r.responseId){let e=p(a,{messages:[r]},x,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);l.continuation={lastRequestBody:g,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw l&&(l.continuation=void 0),m=!1,e}finally{d({keep:m})}}async function be(e){let t=await e.text(),n=t||e.statusText||`Request failed`,r;try{let i=JSON.parse(t)?.error;if(i){let t=i.code||i.type||``;if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(t)||e.status===429){let e=i.plan_type?` (${i.plan_type.toLowerCase()} plan)`:``,t=i.resets_at?Math.max(0,Math.round((i.resets_at*1e3-Date.now())/6e4)):void 0;r=`You have hit your ChatGPT usage limit${e}.${t===void 0?``:` Try again in ~${t} min.`}`.trim()}n=i.message||r||n}}catch{}return{message:n,friendlyMessage:r}}function xe(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[v]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function Se(){return typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`codex_${Date.now()}_${Math.random().toString(36).slice(2,10)}`}function $(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=h?`pi (${h.platform()} ${h.release()}; ${h.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function Ce(e,t,n,r,i){let a=$(e,t,n,r);return a.set(`OpenAI-Beta`,`responses=experimental`),a.set(`accept`,`text/event-stream`),a.set(`content-type`,`application/json`),i&&(a.set(`session_id`,i),a.set(`x-client-request-id`,i)),a}function we(e,t,n,r,i){let a=$(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,ae),a.set(`x-client-request-id`,i),a.set(`session_id`,i),a}export{B as closeOpenAICodexWebSocketSessions,se as getOpenAICodexWebSocketDebugStats,ce as resetOpenAICodexWebSocketDebugStats,T as streamOpenAICodexResponses,te as streamSimpleOpenAICodexResponses};
@@ -0,0 +1,5 @@
1
+ import{t as e}from"./env-api-keys-7u9jMM5_.js";import{i as t,r as n,t as r}from"./event-stream-DcqAlaOm.js";import{n as i}from"./json-parse-MTOUHjU0.js";import{t as a}from"./headers-DkHU-pcw.js";import{t as o}from"./sanitize-unicode-BD2XKRoV.js";import{i as s,n as c,r as l,t as u}from"./github-copilot-headers-B6Fvsk-Y.js";import{r as d,t as f}from"./transform-messages-BQ4ruKay.js";import{n as p}from"./openai-DAtqabcb.js";import{t as m}from"./openai-prompt-cache-9tCK10l1.js";function h(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function g(e){return e.type===`text`}function _(e){return e.type===`thinking`}function v(e){return e.type===`toolCall`}function y(e){return e.type===`image`}function b(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}var x=(t,n,o)=>{let s=new r;return(async()=>{let r={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=o?.apiKey||e(t.provider)||``,l=R(t),u=b(o?.cacheRetention),d=u===`none`?void 0:o?.sessionId,f=C(t,n,c,o?.headers,d,l),p=w(t,n,o,l,u),m=await o?.onPayload?.(p,t);m!==void 0&&(p=m);let h={...o?.signal?{signal:o.signal}:{},...o?.timeoutMs===void 0?{}:{timeout:o.timeoutMs},...o?.maxRetries===void 0?{}:{maxRetries:o.maxRetries}},{data:g,response:_}=await f.chat.completions.create(p,h).withResponse();await o?.onResponse?.({status:_.status,headers:a(_.headers)},t),s.push({type:`start`,partial:r});let v=null,y=null,x=!1,S=new Map,T=new Map,E=r.content,D=e=>E.indexOf(e),O=e=>{let t=D(e);t!==-1&&(e.type===`text`?s.push({type:`text_end`,contentIndex:t,content:e.text,partial:r}):e.type===`thinking`?s.push({type:`thinking_end`,contentIndex:t,content:e.thinking,partial:r}):e.type===`toolCall`&&(e.arguments=i(e.partialArgs),delete e.partialArgs,delete e.streamIndex,s.push({type:`toolcall_end`,contentIndex:t,toolCall:e,partial:r})))},k=()=>(v||(v={type:`text`,text:``},E.push(v),s.push({type:`text_start`,contentIndex:D(v),partial:r})),v),A=e=>(y||(y={type:`thinking`,thinking:``,thinkingSignature:e},E.push(y),s.push({type:`thinking_start`,contentIndex:D(y),partial:r})),y),j=e=>{let t=typeof e.index==`number`?e.index:void 0,n=t===void 0?void 0:S.get(t);return!n&&e.id&&(n=T.get(e.id)),n||(n={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``,streamIndex:t},t!==void 0&&S.set(t,n),e.id&&T.set(e.id,n),E.push(n),s.push({type:`toolcall_start`,contentIndex:D(n),partial:r})),t!==void 0&&n.streamIndex===void 0&&(n.streamIndex=t,S.set(t,n)),e.id&&T.set(e.id,n),n};for await(let e of g){if(!e||typeof e!=`object`)continue;r.responseId||=e.id,typeof e.model==`string`&&e.model.length>0&&e.model!==t.id&&(r.responseModel||=e.model),e.usage&&(r.usage=F(e.usage,t));let n=Array.isArray(e.choices)?e.choices[0]:void 0;if(n){if(!e.usage&&n.usage&&(r.usage=F(n.usage,t)),n.finish_reason){let e=I(n.finish_reason);r.stopReason=e.stopReason,e.errorMessage&&(r.errorMessage=e.errorMessage),x=!0}if(n.delta){if(n.delta.content!==null&&n.delta.content!==void 0&&n.delta.content.length>0){let e=k();e.text+=n.delta.content,s.push({type:`text_delta`,contentIndex:D(e),delta:n.delta.content,partial:r})}let e=[`reasoning_content`,`reasoning`,`reasoning_text`],a=n.delta,o=null;for(let t of e){let e=a[t];if(typeof e==`string`&&e.length>0){o=t;break}}if(o){let e=a[o];if(typeof e==`string`&&e.length>0){let n=A(t.provider===`opencode-go`&&o===`reasoning`?`reasoning_content`:o);n.thinking+=e,s.push({type:`thinking_delta`,contentIndex:D(n),delta:e,partial:r})}}if(n?.delta?.tool_calls)for(let e of n.delta.tool_calls){let t=j(e);!t.id&&e.id&&(t.id=e.id,T.set(e.id,t)),!t.name&&e.function?.name&&(t.name=e.function.name);let n=``;e.function?.arguments&&(n=e.function.arguments,t.partialArgs=(t.partialArgs??``)+e.function.arguments,t.arguments=i(t.partialArgs)),s.push({type:`toolcall_delta`,contentIndex:D(t),delta:n,partial:r})}let c=n.delta.reasoning_details;if(c&&Array.isArray(c)){for(let e of c)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=r.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}for(let e of E)O(e);if(o?.signal?.aborted||r.stopReason===`aborted`)throw Error(`Request was aborted`);if(r.stopReason===`error`)throw Error(r.errorMessage||`Provider returned an error stop reason`);if(!x)throw Error(`Stream ended without finish_reason`);s.push({type:`done`,reason:r.stopReason,message:r}),s.end()}catch(e){for(let e of r.content)delete e.index,delete e.partialArgs,delete e.streamIndex;r.stopReason=o?.signal?.aborted?`aborted`:`error`,r.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(r.errorMessage+=`\n${t}`),s.push({type:`error`,reason:r.stopReason,error:r}),s.end()}})(),s},S=(n,r,i)=>{let a=i?.apiKey||e(n.provider);if(!a)throw Error(`No API key for provider: ${n.provider}`);let o=d(n,i,a),s=i?.reasoning?t(n,i.reasoning):void 0,c=s===`off`?void 0:s,l=i?.toolChoice;return x(n,r,{...o,reasoningEffort:c,toolChoice:l})};function C(e,t,n,r,i,a=R(e)){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let o={...e.headers};if(e.provider===`github-copilot`){let e=c(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(o,n)}i&&a.sendSessionAffinityHeaders&&(o.session_id=i,o[`x-client-request-id`]=i,o[`x-session-affinity`]=i),r&&Object.assign(o,r);let d=e.provider===`cloudflare-ai-gateway`?{...o,Authorization:o.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:o;return new p({apiKey:n,baseURL:l(e.provider)?s(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:d})}function w(e,t,n,r=R(e),i=b(n?.cacheRetention)){let a=N(e,t,r),o=T(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?m(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};if(r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature),t.tools&&t.tools.length>0?(s.tools=P(t.tools,r),r.zaiToolStream&&(s.tool_stream=!0)):h(t.messages)&&(s.tools=[]),o&&E(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`deepseek`&&e.reasoning)s.thinking={type:n?.reasoningEffort?`enabled`:`disabled`},n?.reasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function T(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function E(e,t,n){D(e,n),k(t,n),O(e,n)}function D(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){A(n,t);return}}function O(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&j(r,t))return}}function k(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function A(e,t){return M(e,t)}function j(e,t){return e.role===`user`||e.role===`assistant`?M(e,t):!1}function M(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function N(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},a=f(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:o(t.systemPrompt)})}let s=null;for(let t=0;t<a.length;t++){let i=a[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:o(i.content)});else{let e=i.content.map(e=>e.type===`text`?{type:`text`,text:o(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(i.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=i.content.filter(g).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:o(e.text)})),s=a.map(e=>e.text).join(``),c=i.content.filter(_).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>o(e.thinking)).join(`
2
+
3
+ `)},...a];else{s.length>0&&(t.content=s);let n=c[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=c.map(e=>e.thinking).join(`
4
+ `))}else s.length>0&&(t.content=s);let l=i.content.filter(v);if(l.length>0){t.tool_calls=l.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=l.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;r.push(t)}else if(i.role===`toolResult`){let i=[],c=t;for(;c<a.length&&a[c].role===`toolResult`;c++){let t=a[c],s=t.content.filter(g).map(e=>e.text).join(`
5
+ `),l=t.content.some(e=>e.type===`image`),u={role:`tool`,content:o(s.length>0?s:`(see attached image)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(u.name=t.toolName),r.push(u),l&&e.input.includes(`image`))for(let e of t.content)y(e)&&i.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}t=c-1,i.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...i]}),s=`user`):s=`toolResult`;continue}s=i.role}return r}function P(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function F(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function I(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function L(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||n.includes(`api.z.ai`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),s=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),c=t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||o||s,l=n.includes(`chutes.ai`)||a||s||i,u=t===`xai`||n.includes(`api.x.ai`),d=t===`deepseek`||n.includes(`deepseek.com`),f=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!c,supportsDeveloperRole:!c,supportsReasoningEffort:!u&&!r&&!a&&!i&&!s,supportsUsageInStreaming:!0,maxTokensField:l?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?`deepseek`:r?`zai`:i?`together`:t===`openrouter`||n.includes(`openrouter.ai`)?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!s,cacheControlFormat:f,sendSessionAffinityHeaders:!1,supportsLongCacheRetention:!(i||o||s)}}function R(e){let t=L(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{N as convertMessages,x as streamOpenAICompletions,S as streamSimpleOpenAICompletions};
@@ -0,0 +1 @@
1
+ function e(e){if(e===void 0)return;let t=Array.from(e);return t.length<=64?e:t.slice(0,64).join(``)}export{e as t};
@@ -1 +1 @@
1
- import{i as e}from"./speech-ZNExxXBR.js";var t=[{value:`gpt-realtime`,label:`gpt-realtime (latest)`},{value:`gpt-realtime-mini`,label:`gpt-realtime-mini`},{value:`gpt-4o-realtime-preview-2024-12-17`,label:`gpt-4o-realtime-preview`},{value:`gpt-4o-mini-realtime-preview-2024-12-17`,label:`gpt-4o-mini-realtime-preview`}],n=[`alloy`,`ash`,`ballad`,`cedar`,`coral`,`echo`,`marin`,`sage`,`shimmer`,`verse`];async function r(e,t,n){let r=await fetch(`https://api.openai.com/v1/realtime/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`},body:JSON.stringify({model:t,voice:n,modalities:[`audio`,`text`]})});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Realtime session mint failed (${r.status}): ${e.slice(0,200)||r.statusText}`)}let i=(await r.json()).client_secret?.value;if(!i)throw Error(`Realtime session mint returned no client_secret.value`);return i}async function i(e){if(typeof navigator>`u`||!navigator.mediaDevices?.getUserMedia)return null;try{let t=await navigator.mediaDevices.getUserMedia({audio:!0});return t.getAudioTracks().forEach(n=>e.addTrack(n,t)),t}catch(e){return console.warn(`[keating:realtime] microphone unavailable`,e),null}}async function a(t){let{utterance:n,settings:a,getApiKey:o,signal:s}=t,c=await o(`openai`);if(!c)throw Error(`No OpenAI API key configured. Add one in Settings → Providers & Models.`);let l=a.model||`gpt-realtime`,u=await r(c,l,n.voice||`marin`),d=new RTCPeerConnection,f=typeof document<`u`?document.createElement(`audio`):null;f&&(f.autoplay=!0,f.style.display=`none`,document.body.appendChild(f));let p=0,m=0,h=null,g=!1,_=()=>{if(!g){g=!0;try{d.close()}catch{}if(h?.getTracks().forEach(e=>e.stop()),f){try{f.pause()}catch{}f.srcObject=null,f.remove()}}};if(s?.aborted)throw _(),Error(`OpenAI Realtime aborted before start.`);s?.addEventListener(`abort`,_,{once:!0}),d.ontrack=e=>{p+=1,f&&e.streams[0]&&(f.srcObject=e.streams[0],f.play().then(()=>{m+=1}).catch(()=>{}))};let v=d.createDataChannel(`oai-events`);return a.microphoneEnabled&&(h=await i(d)),await new Promise(async(t,r)=>{let i=setTimeout(()=>{_(),r(Error(`OpenAI Realtime response timed out.`))},6e4);v.addEventListener(`open`,()=>{v.send(JSON.stringify({type:`response.create`,response:{modalities:[`audio`,`text`],instructions:`Speak this learner-facing line exactly. Affect: ${n.affect}. Pace: ${n.pace}.\n\n${n.text}`}}))}),v.addEventListener(`message`,e=>{try{let o=JSON.parse(e.data);o.type===`response.done`&&(clearTimeout(i),_(),t({audioChunks:p,playedChunks:m,transcript:n.text,warning:a.microphoneEnabled&&!h?`Microphone unavailable`:void 0})),o.type===`error`&&(clearTimeout(i),_(),r(Error(`Realtime error: ${o.error?.message??`unknown`}`)))}catch{}});try{e();let t=await d.createOffer();await d.setLocalDescription(t);let n=await fetch(`https://api.openai.com/v1/realtime?model=${encodeURIComponent(l)}`,{method:`POST`,headers:{Authorization:`Bearer ${u}`,"Content-Type":`application/sdp`},body:t.sdp});if(!n.ok)throw Error(`Realtime SDP exchange failed (${n.status})`);let r={type:`answer`,sdp:await n.text()};await d.setRemoteDescription(r)}catch(e){clearTimeout(i),_(),r(e)}})}var o={id:`openai-realtime`,label:`OpenAI Realtime`,kind:`duplex`,status:`preview`,description:`WebRTC duplex voice with OpenAI Realtime. Supports mic input when enabled. One-shot per utterance — long-lived sessions are a follow-up.`,models:t,voices:n,needsApiKey:`openai`,synthesize:a};export{o as openAIRealtimeProvider};
1
+ import{i as e}from"./speech-D3C-KRDP.js";var t=[{value:`gpt-realtime`,label:`gpt-realtime (latest)`},{value:`gpt-realtime-mini`,label:`gpt-realtime-mini`},{value:`gpt-4o-realtime-preview-2024-12-17`,label:`gpt-4o-realtime-preview`},{value:`gpt-4o-mini-realtime-preview-2024-12-17`,label:`gpt-4o-mini-realtime-preview`}],n=[`alloy`,`ash`,`ballad`,`cedar`,`coral`,`echo`,`marin`,`sage`,`shimmer`,`verse`];async function r(e,t,n){let r=await fetch(`https://api.openai.com/v1/realtime/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`},body:JSON.stringify({model:t,voice:n,modalities:[`audio`,`text`]})});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Realtime session mint failed (${r.status}): ${e.slice(0,200)||r.statusText}`)}let i=(await r.json()).client_secret?.value;if(!i)throw Error(`Realtime session mint returned no client_secret.value`);return i}async function i(e){if(typeof navigator>`u`||!navigator.mediaDevices?.getUserMedia)return null;try{let t=await navigator.mediaDevices.getUserMedia({audio:!0});return t.getAudioTracks().forEach(n=>e.addTrack(n,t)),t}catch(e){return console.warn(`[keating:realtime] microphone unavailable`,e),null}}async function a(t){let{utterance:n,settings:a,getApiKey:o,signal:s}=t,c=await o(`openai`);if(!c)throw Error(`No OpenAI API key configured. Add one in Settings → Providers & Models.`);let l=a.model||`gpt-realtime`,u=await r(c,l,n.voice||`marin`),d=new RTCPeerConnection,f=typeof document<`u`?document.createElement(`audio`):null;f&&(f.autoplay=!0,f.style.display=`none`,document.body.appendChild(f));let p=0,m=0,h=null,g=!1,_=()=>{if(!g){g=!0;try{d.close()}catch{}if(h?.getTracks().forEach(e=>e.stop()),f){try{f.pause()}catch{}f.srcObject=null,f.remove()}}};if(s?.aborted)throw _(),Error(`OpenAI Realtime aborted before start.`);s?.addEventListener(`abort`,_,{once:!0}),d.ontrack=e=>{p+=1,f&&e.streams[0]&&(f.srcObject=e.streams[0],f.play().then(()=>{m+=1}).catch(()=>{}))};let v=d.createDataChannel(`oai-events`);return a.microphoneEnabled&&(h=await i(d)),await new Promise(async(t,r)=>{let i=setTimeout(()=>{_(),r(Error(`OpenAI Realtime response timed out.`))},6e4);v.addEventListener(`open`,()=>{v.send(JSON.stringify({type:`response.create`,response:{modalities:[`audio`,`text`],instructions:`Speak this learner-facing line exactly. Affect: ${n.affect}. Pace: ${n.pace}.\n\n${n.text}`}}))}),v.addEventListener(`message`,e=>{try{let o=JSON.parse(e.data);o.type===`response.done`&&(clearTimeout(i),_(),t({audioChunks:p,playedChunks:m,transcript:n.text,warning:a.microphoneEnabled&&!h?`Microphone unavailable`:void 0})),o.type===`error`&&(clearTimeout(i),_(),r(Error(`Realtime error: ${o.error?.message??`unknown`}`)))}catch{}});try{e();let t=await d.createOffer();await d.setLocalDescription(t);let n=await fetch(`https://api.openai.com/v1/realtime?model=${encodeURIComponent(l)}`,{method:`POST`,headers:{Authorization:`Bearer ${u}`,"Content-Type":`application/sdp`},body:t.sdp});if(!n.ok)throw Error(`Realtime SDP exchange failed (${n.status})`);let r={type:`answer`,sdp:await n.text()};await d.setRemoteDescription(r)}catch(e){clearTimeout(i),_(),r(e)}})}var o={id:`openai-realtime`,label:`OpenAI Realtime`,kind:`duplex`,status:`preview`,description:`WebRTC duplex voice with OpenAI Realtime. Supports mic input when enabled. One-shot per utterance — long-lived sessions are a follow-up.`,models:t,voices:n,needsApiKey:`openai`,synthesize:a};export{o as openAIRealtimeProvider};
@@ -0,0 +1 @@
1
+ import{t as e}from"./env-api-keys-7u9jMM5_.js";import{i as t,t as n}from"./event-stream-DcqAlaOm.js";import{t as r}from"./headers-DkHU-pcw.js";import{i,n as a,r as o,t as s}from"./github-copilot-headers-B6Fvsk-Y.js";import{r as c}from"./transform-messages-BQ4ruKay.js";import{n as l}from"./openai-DAtqabcb.js";import{t as u}from"./openai-prompt-cache-9tCK10l1.js";import{n as d,r as f,t as p}from"./openai-responses-shared-B9_LiyEY.js";var m=new Set([`openai`,`openai-codex`,`opencode`]);function h(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function g(e){return{sendSessionIdHeader:e.compat?.sendSessionIdHeader??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function _(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function v(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}var y=(t,i,a)=>{let o=new n;return(async()=>{let n={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let s=a?.apiKey||e(t.provider)||``,c=h(a?.cacheRetention)===`none`?void 0:a?.sessionId,l=x(t,i,s,a?.headers,c),u=S(t,i,a),d=await a?.onPayload?.(u,t);d!==void 0&&(u=d);let p={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},...a?.maxRetries===void 0?{}:{maxRetries:a.maxRetries}},{data:m,response:g}=await l.responses.create(u,p).withResponse();if(await a?.onResponse?.({status:g.status,headers:r(g.headers)},t),o.push({type:`start`,partial:n}),await f(m,n,o,t,{serviceTier:a?.serviceTier,applyServiceTierPricing:(e,n)=>w(e,n,t)}),a?.signal?.aborted)throw Error(`Request was aborted`);if(n.stopReason===`aborted`||n.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:n.stopReason,message:n}),o.end()}catch(e){for(let e of n.content)delete e.index,delete e.partialJson;n.stopReason=a?.signal?.aborted?`aborted`:`error`,n.errorMessage=v(e),o.push({type:`error`,reason:n.stopReason,error:n}),o.end()}})(),o},b=(n,r,i)=>{let a=i?.apiKey||e(n.provider);if(!a)throw Error(`No API key for provider: ${n.provider}`);let o=c(n,i,a),s=i?.reasoning?t(n,i.reasoning):void 0,l=s===`off`?void 0:s;return y(n,r,{...o,reasoningEffort:l})};function x(e,t,n,r,c){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let u=g(e),d={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=s({messages:t.messages,hasImages:e});Object.assign(d,n)}c&&(u.sendSessionIdHeader&&(d.session_id=c),d[`x-client-request-id`]=c),r&&Object.assign(d,r);let f=e.provider===`cloudflare-ai-gateway`?{...d,Authorization:d.Authorization??null,"cf-aig-authorization":`Bearer ${n}`}:d;return new l({apiKey:n,baseURL:o(e.provider)?i(e):e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:f})}function S(e,t,n){let r=p(e,t,m),i=h(n?.cacheRetention),a=g(e),o={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:u(n?.sessionId),prompt_cache_retention:_(a,i),store:!1};return n?.maxTokens&&(o.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(o.temperature=n?.temperature),n?.serviceTier!==void 0&&(o.service_tier=n.serviceTier),t.tools&&t.tools.length>0&&(o.tools=d(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(o.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},o.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(o.reasoning={effort:e.thinkingLevelMap?.off??`none`})),o}function C(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function w(e,t,n){let r=C(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{y as streamOpenAIResponses,b as streamSimpleOpenAIResponses};
@@ -0,0 +1,12 @@
1
+ import{r as e}from"./event-stream-DcqAlaOm.js";import{n as t}from"./json-parse-MTOUHjU0.js";import{t as n}from"./sanitize-unicode-BD2XKRoV.js";import{t as r}from"./transform-messages-BQ4ruKay.js";import{t as i}from"./hash-K0cSe8jy.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=r(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let r=e.reasoning?`developer`:`system`;c.push({role:r,content:n(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:n(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:n(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;c.push({role:`user`,content:e})}else if(t.role===`assistant`){let r=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);r.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,r.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:n(t.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[n,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),r.push({type:`function_call`,id:a,call_id:n,name:t.name,arguments:JSON.stringify(t.arguments)})}if(r.length===0)continue;c.push(...r)}else if(t.role===`toolResult`){let r=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
+ `),i=t.content.some(e=>e.type===`image`),a=r.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:n(r)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}else s=n(a?r:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(n,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of n)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
3
+
4
+ `,e.text+=`
5
+
6
+ `,i.push({type:`thinking_delta`,contentIndex:f(),delta:`
7
+
8
+ `,partial:r}))}}else if(d.type===`response.reasoning_text.delta`)c?.type===`reasoning`&&l?.type===`thinking`&&(l.thinking+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}));else if(d.type===`response.content_part.added`)c?.type===`message`&&(c.content=c.content||[],(d.part.type===`output_text`||d.part.type===`refusal`)&&c.content.push(d.part));else if(d.type===`response.output_text.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let e=c.content[c.content.length-1];e?.type===`output_text`&&(l.text+=d.delta,e.text+=d.delta,i.push({type:`text_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.refusal.delta`){if(c?.type===`message`&&l?.type===`text`){if(!c.content||c.content.length===0)continue;let e=c.content[c.content.length-1];e?.type===`refusal`&&(l.text+=d.delta,e.refusal+=d.delta,i.push({type:`text_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.function_call_arguments.delta`)c?.type===`function_call`&&l?.type===`toolCall`&&(l.partialJson+=d.delta,l.arguments=t(l.partialJson),i.push({type:`toolcall_delta`,contentIndex:f(),delta:d.delta,partial:r}));else if(d.type===`response.function_call_arguments.done`){if(c?.type===`function_call`&&l?.type===`toolCall`){let e=l.partialJson;if(l.partialJson=d.arguments,l.arguments=t(l.partialJson),d.arguments.startsWith(e)){let t=d.arguments.slice(e.length);t.length>0&&i.push({type:`toolcall_delta`,contentIndex:f(),delta:t,partial:r})}}}else if(d.type===`response.output_item.done`){let e=d.item;if(e.type===`reasoning`&&l?.type===`thinking`){let t=e.summary?.map(e=>e.text).join(`
9
+
10
+ `)||``,n=e.content?.map(e=>e.text).join(`
11
+
12
+ `)||``;l.thinking=t||n||l.thinking,l.thinkingSignature=JSON.stringify(e),i.push({type:`thinking_end`,contentIndex:f(),content:l.thinking,partial:r}),l=null}else if(e.type===`message`&&l?.type===`text`)l.text=e.content.map(e=>e.type===`output_text`?e.text:e.refusal).join(``),l.textSignature=a(e.id,e.phase??void 0),i.push({type:`text_end`,contentIndex:f(),content:l.text,partial:r}),l=null;else if(e.type===`function_call`){let n=l?.type===`toolCall`&&l.partialJson?t(l.partialJson):t(e.arguments||`{}`),a;l?.type===`toolCall`?(l.arguments=n,delete l.partialJson,a=l):a={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:n},l=null,i.push({type:`toolcall_end`,contentIndex:f(),toolCall:a,partial:r})}}else if(d.type===`response.completed`){let t=d.response;if(t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details?.cached_tokens||0;r.usage={input:(t.usage.input_tokens||0)-e,output:t.usage.output_tokens||0,cacheRead:e,cacheWrite:0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(o,r.usage),s?.applyServiceTierPricing){let e=s.resolveServiceTier?s.resolveServiceTier(t?.service_tier,s.serviceTier):t?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,e)}r.stopReason=u(t?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)}else if(d.type===`error`)throw Error(`Error Code ${d.code}: ${d.message}`||`Unknown error`);else if(d.type===`response.failed`){let e=d.response?.error,t=d.response?.incomplete_details,n=e?`${e.code||`unknown`}: ${e.message||`no message`}`:t?.reason?`incomplete: ${t.reason}`:`Unknown error (no error details in response)`;throw Error(n)}}function u(e){if(!e)return`stop`;switch(e){case`completed`:return`stop`;case`incomplete`:return`length`;case`failed`:case`cancelled`:return`error`;case`in_progress`:case`queued`:return`stop`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{c as n,l as r,s as t};
@@ -1 +1 @@
1
- import{l as e}from"./speech-ZNExxXBR.js";var t=[`alloy`,`ash`,`ballad`,`coral`,`echo`,`fable`,`nova`,`onyx`,`sage`,`shimmer`,`verse`],n=[{value:`gpt-4o-mini-tts`,label:`GPT-4o mini TTS (steerable)`},{value:`tts-1`,label:`tts-1 (fast)`},{value:`tts-1-hd`,label:`tts-1 HD (higher quality)`}];async function r(t){let{utterance:n,settings:r,getApiKey:i,signal:a}=t,o=await i(`openai`);if(!o)throw Error(`No OpenAI API key configured. Add one in Settings → Providers & Models.`);let s=r.model||`gpt-4o-mini-tts`,c={model:s,voice:n.voice,input:n.text,response_format:`mp3`};s===`gpt-4o-mini-tts`&&n.affect&&(c.instructions=`Speak with a ${n.affect} affect at a ${n.pace} pace.`);let l=await fetch(`https://api.openai.com/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${o}`},body:JSON.stringify(c),signal:a});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`OpenAI TTS request failed (${l.status}): ${e.slice(0,200)||l.statusText}`)}return{audioChunks:1,playedChunks:+!!await e(await l.blob()).catch(()=>!1),transcript:n.text}}var i={id:`openai-tts`,label:`OpenAI TTS`,kind:`tts`,status:`stable`,description:`OpenAI Audio TTS REST API. Steerable affect/pace on gpt-4o-mini-tts.`,models:n,voices:t,needsApiKey:`openai`,synthesize:r};export{i as openAITtsProvider};
1
+ import{l as e}from"./speech-D3C-KRDP.js";var t=[`alloy`,`ash`,`ballad`,`coral`,`echo`,`fable`,`nova`,`onyx`,`sage`,`shimmer`,`verse`],n=[{value:`gpt-4o-mini-tts`,label:`GPT-4o mini TTS (steerable)`},{value:`tts-1`,label:`tts-1 (fast)`},{value:`tts-1-hd`,label:`tts-1 HD (higher quality)`}];async function r(t){let{utterance:n,settings:r,getApiKey:i,signal:a}=t,o=await i(`openai`);if(!o)throw Error(`No OpenAI API key configured. Add one in Settings → Providers & Models.`);let s=r.model||`gpt-4o-mini-tts`,c={model:s,voice:n.voice,input:n.text,response_format:`mp3`};s===`gpt-4o-mini-tts`&&n.affect&&(c.instructions=`Speak with a ${n.affect} affect at a ${n.pace} pace.`);let l=await fetch(`https://api.openai.com/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${o}`},body:JSON.stringify(c),signal:a});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`OpenAI TTS request failed (${l.status}): ${e.slice(0,200)||l.statusText}`)}return{audioChunks:1,playedChunks:+!!await e(await l.blob()).catch(()=>!1),transcript:n.text}}var i={id:`openai-tts`,label:`OpenAI TTS`,kind:`tts`,status:`stable`,description:`OpenAI Audio TTS REST API. Steerable affect/pace on gpt-4o-mini-tts.`,models:n,voices:t,needsApiKey:`openai`,synthesize:r};export{i as openAITtsProvider};
@@ -0,0 +1 @@
1
+ import{t as e}from"./env-api-keys-7u9jMM5_.js";import{t}from"./headers-DkHU-pcw.js";import{t as n}from"./sanitize-unicode-BD2XKRoV.js";import{n as r}from"./openai-DAtqabcb.js";var i=async(n,r,i)=>{let c={api:n.api,provider:n.provider,model:n.id,output:[],stopReason:`stop`,timestamp:Date.now()};try{let l=i?.apiKey||e(n.provider);if(!l)throw Error(`No API key available for provider: ${n.provider}`);let u=a(n,l,i?.headers),d=o(n,r),f=await i?.onPayload?.(d,n);f!==void 0&&(d=f);let p={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},...i?.maxRetries===void 0?{}:{maxRetries:i.maxRetries}},{data:m,response:h}=await u.chat.completions.create(d,p).withResponse();await i?.onResponse?.({status:h.status,headers:t(h.headers)},n);let g=m;c.responseId=g.id,g.usage&&(c.usage=s(g.usage,n));let _=g.choices[0];if(_){let e=_.message.content;typeof e==`string`&&e.length>0&&c.output.push({type:`text`,text:e});for(let e of _.message.images??[]){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;if(!t?.startsWith(`data:`))continue;let n=t.match(/^data:([^;]+);base64,(.+)$/);n&&c.output.push({type:`image`,mimeType:n[1],data:n[2]})}}return c}catch(e){return c.stopReason=i?.signal?.aborted?`aborted`:`error`,c.errorMessage=e instanceof Error?e.message:JSON.stringify(e),c}};function a(e,t,n){return new r({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:{...e.headers,...n}})}function o(e,t){let r=t.input.map(e=>e.type===`text`?{type:`text`,text:n(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});return{model:e.id,messages:[{role:`user`,content:r}],stream:!1,modalities:e.output.includes(`text`)?[`image`,`text`]:[`image`]}}function s(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens||0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=i>0?Math.max(0,r-i):r,o=Math.max(0,n-a-i),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:a,cacheWrite:i,totalTokens:o+s+a+i,cost:{input:t.cost.input/1e6*o,output:t.cost.output/1e6*s,cacheRead:t.cost.cacheRead/1e6*a,cacheWrite:t.cost.cacheWrite/1e6*i,total:0}};return c.cost.total=c.cost.input+c.cost.output+c.cost.cacheRead+c.cost.cacheWrite,c}export{i as generateImagesOpenRouter};
@@ -1 +1 @@
1
- import{n as e}from"./init-DugVGdkd.js";var t=class extends Map{constructor(e,t=a){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(n(this,e))}has(e){return super.has(n(this,e))}set(e,t){return super.set(r(this,e),t)}delete(e){return super.delete(i(this,e))}};function n({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function r({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function i({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(n),e.delete(r)),n}function a(e){return typeof e==`object`&&e?e.valueOf():e}var o=Symbol(`implicit`);function s(){var n=new t,r=[],i=[],a=o;function c(e){let t=n.get(e);if(t===void 0){if(a!==o)return a;n.set(e,t=r.push(e)-1)}return i[t%i.length]}return c.domain=function(e){if(!arguments.length)return r.slice();r=[],n=new t;for(let t of e)n.has(t)||n.set(t,r.push(t)-1);return c},c.range=function(e){return arguments.length?(i=Array.from(e),c):i.slice()},c.unknown=function(e){return arguments.length?(a=e,c):a},c.copy=function(){return s(r,i).unknown(a)},e.apply(c,arguments),c}export{s as n,o as t};
1
+ import{n as e}from"./init-BPUAOWDF.js";var t=class extends Map{constructor(e,t=a){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(n(this,e))}has(e){return super.has(n(this,e))}set(e,t){return super.set(r(this,e),t)}delete(e){return super.delete(i(this,e))}};function n({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function r({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function i({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(n),e.delete(r)),n}function a(e){return typeof e==`object`&&e?e.valueOf():e}var o=Symbol(`implicit`);function s(){var n=new t,r=[],i=[],a=o;function c(e){let t=n.get(e);if(t===void 0){if(a!==o)return a;n.set(e,t=r.push(e)-1)}return i[t%i.length]}return c.domain=function(e){if(!arguments.length)return r.slice();r=[],n=new t;for(let t of e)n.has(t)||n.set(t,r.push(t)-1);return c},c.range=function(e){return arguments.length?(i=Array.from(e),c):i.slice()},c.unknown=function(e){return arguments.length?(a=e,c):a},c.copy=function(){return s(r,i).unknown(a)},e.apply(c,arguments),c}export{s as n,o as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./chunk-Bj-mKKzh.js";var t=e(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),n=e((e=>{var n=t();e.operation=function(t){return new n(e.timeouts(t),{forever:t&&(t.forever||t.retries===1/0),unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*Math.max(t.minTimeout,1)*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),r=e(((e,t)=>{t.exports=n()})),i=e(((e,t)=>{var n=r(),i=[`Failed to fetch`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`],a=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=Error(e),this.originalError.stack=this.stack),this.name=`AbortError`,this.message=e}},o=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e},s=e=>i.includes(e),c=(e,t)=>new Promise((r,i)=>{t={onFailedAttempt:()=>{},retries:10,...t};let c=n.operation(t);c.attempt(async n=>{try{r(await e(n))}catch(e){if(!(e instanceof Error)){i(TypeError(`Non-error was thrown: "${e}". You should only throw errors.`));return}if(e instanceof a)c.stop(),i(e.originalError);else if(e instanceof TypeError&&!s(e.message))c.stop(),i(e);else{o(e,n,t);try{await t.onFailedAttempt(e)}catch(e){i(e);return}c.retry(e)||i(c.mainError())}}})});t.exports=c,t.exports.default=c,t.exports.AbortError=a}));export{i as t};
@@ -0,0 +1 @@
1
+ import"./chunk-K5T4RW27-BwFJlMGX.js";import{n as e}from"./chunk-FOC6F5B3-B1tJYVCE.js";export{e as createPacketServices};