@keystrokehq/cli 0.0.53 → 0.0.55

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 (77) hide show
  1. package/dist/{anthropic-BW7tKfye.mjs → anthropic-OIjNEgxk.mjs} +3 -3
  2. package/dist/{anthropic-BW7tKfye.mjs.map → anthropic-OIjNEgxk.mjs.map} +1 -1
  3. package/dist/{azure-openai-responses-CbpqfHpG.mjs → azure-openai-responses-J2iGyy4d.mjs} +3 -3
  4. package/dist/{azure-openai-responses-CbpqfHpG.mjs.map → azure-openai-responses-J2iGyy4d.mjs.map} +1 -1
  5. package/dist/{cat-TSFMZVYS-BfwZOafs.mjs → cat-TSFMZVYS-BUlDi5Qf.mjs} +2 -2
  6. package/dist/{cat-TSFMZVYS-BfwZOafs.mjs.map → cat-TSFMZVYS-BUlDi5Qf.mjs.map} +1 -1
  7. package/dist/{cut-OKARJCCV-Cm3OStWG.mjs → cut-OKARJCCV-p9v-ig7a.mjs} +2 -2
  8. package/dist/{cut-OKARJCCV-Cm3OStWG.mjs.map → cut-OKARJCCV-p9v-ig7a.mjs.map} +1 -1
  9. package/dist/{dist-BSgBg_mF.mjs → dist-OeT0Z7by.mjs} +3 -3
  10. package/dist/{dist-BSgBg_mF.mjs.map → dist-OeT0Z7by.mjs.map} +1 -1
  11. package/dist/{du-572XNP42-DeJ11TW7.mjs → du-572XNP42-Br0wC4cR.mjs} +2 -2
  12. package/dist/{du-572XNP42-DeJ11TW7.mjs.map → du-572XNP42-Br0wC4cR.mjs.map} +1 -1
  13. package/dist/{emit-route-manifest-DRcNXHCP-CSOVo0UZ.mjs → emit-route-manifest-DRcNXHCP-CuH5IaKl.mjs} +210 -209
  14. package/dist/emit-route-manifest-DRcNXHCP-CuH5IaKl.mjs.map +1 -0
  15. package/dist/{env-api-keys-CjsGqLnm.mjs → env-api-keys-Dj0phNAZ.mjs} +2 -2
  16. package/dist/{env-api-keys-CjsGqLnm.mjs.map → env-api-keys-Dj0phNAZ.mjs.map} +1 -1
  17. package/dist/{from-BVavsm7Y.mjs → from-CM85M090.mjs} +2 -2
  18. package/dist/{from-BVavsm7Y.mjs.map → from-CM85M090.mjs.map} +1 -1
  19. package/dist/{google-B3pBIkED.mjs → google-CZqUzYLL.mjs} +3 -3
  20. package/dist/{google-B3pBIkED.mjs.map → google-CZqUzYLL.mjs.map} +1 -1
  21. package/dist/{google-shared-CZrnlDVf.mjs → google-shared-DpSg5iXi.mjs} +5 -5
  22. package/dist/{google-shared-CZrnlDVf.mjs.map → google-shared-DpSg5iXi.mjs.map} +1 -1
  23. package/dist/{google-vertex-CK79qwUV.mjs → google-vertex-BM9RkknB.mjs} +2 -2
  24. package/dist/{google-vertex-CK79qwUV.mjs.map → google-vertex-BM9RkknB.mjs.map} +1 -1
  25. package/dist/{html-to-markdown-JW4MSQZO-CvfnlE0t.mjs → html-to-markdown-JW4MSQZO-CL7jZmA2.mjs} +2 -2
  26. package/dist/{html-to-markdown-JW4MSQZO-CvfnlE0t.mjs.map → html-to-markdown-JW4MSQZO-CL7jZmA2.mjs.map} +1 -1
  27. package/dist/index.mjs +717 -8
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/{jq-4XLYLOS5-DrYXLsYH.mjs → jq-4XLYLOS5-KSRW1t5y.mjs} +2 -2
  30. package/dist/{jq-4XLYLOS5-DrYXLsYH.mjs.map → jq-4XLYLOS5-KSRW1t5y.mjs.map} +1 -1
  31. package/dist/{json-parse-4wvL0yab.mjs → json-parse-D7gmIw6y.mjs} +2 -2
  32. package/dist/{json-parse-4wvL0yab.mjs.map → json-parse-D7gmIw6y.mjs.map} +1 -1
  33. package/dist/{lib-L8rwARiF.mjs → lib-15JvMO_y.mjs} +2 -2
  34. package/dist/{lib-L8rwARiF.mjs.map → lib-15JvMO_y.mjs.map} +1 -1
  35. package/dist/{ls-ZJGQER7M-C_1bAeGq.mjs → ls-ZJGQER7M-CvMghjGY.mjs} +2 -2
  36. package/dist/{ls-ZJGQER7M-C_1bAeGq.mjs.map → ls-ZJGQER7M-CvMghjGY.mjs.map} +1 -1
  37. package/dist/{mistral-CO6JoIDU.mjs → mistral-BMK3QxKa.mjs} +3 -3
  38. package/dist/{mistral-CO6JoIDU.mjs.map → mistral-BMK3QxKa.mjs.map} +1 -1
  39. package/dist/{multipart-parser-CybO63Pn.mjs → multipart-parser-ChdFj-Tf.mjs} +3 -3
  40. package/dist/{multipart-parser-CybO63Pn.mjs.map → multipart-parser-ChdFj-Tf.mjs.map} +1 -1
  41. package/dist/{openai-codex-responses-BsV2OXkO.mjs → openai-codex-responses-FPOFDQCI.mjs} +3 -3
  42. package/dist/{openai-codex-responses-BsV2OXkO.mjs.map → openai-codex-responses-FPOFDQCI.mjs.map} +1 -1
  43. package/dist/{openai-completions-DtKMQJXz.mjs → openai-completions-DaFkurXZ.mjs} +3 -3
  44. package/dist/{openai-completions-DtKMQJXz.mjs.map → openai-completions-DaFkurXZ.mjs.map} +1 -1
  45. package/dist/{openai-responses-Dn8IOWpx.mjs → openai-responses-DjcjpFVd.mjs} +3 -3
  46. package/dist/{openai-responses-Dn8IOWpx.mjs.map → openai-responses-DjcjpFVd.mjs.map} +1 -1
  47. package/dist/{openai-responses-shared-rmpfdSMl.mjs → openai-responses-shared-DOajVKFM.mjs} +2 -2
  48. package/dist/{openai-responses-shared-rmpfdSMl.mjs.map → openai-responses-shared-DOajVKFM.mjs.map} +1 -1
  49. package/dist/{openrouter-Cq37VS4X.mjs → openrouter-BD82J9ov.mjs} +2 -2
  50. package/dist/{openrouter-Cq37VS4X.mjs.map → openrouter-BD82J9ov.mjs.map} +1 -1
  51. package/dist/{printf-TWGXF445-BcIEiMjE.mjs → printf-TWGXF445-CtbOGcY-.mjs} +2 -2
  52. package/dist/{printf-TWGXF445-BcIEiMjE.mjs.map → printf-TWGXF445-CtbOGcY-.mjs.map} +1 -1
  53. package/dist/{sort-SW2YEO5B-D08jaQ5v.mjs → sort-SW2YEO5B-BT2dtrqE.mjs} +2 -2
  54. package/dist/{sort-SW2YEO5B-D08jaQ5v.mjs.map → sort-SW2YEO5B-BT2dtrqE.mjs.map} +1 -1
  55. package/dist/{sqlite3-CGOEFJAO-DVuaAgm0.mjs → sqlite3-CGOEFJAO-DKaf3b_T.mjs} +2 -2
  56. package/dist/{sqlite3-CGOEFJAO-DVuaAgm0.mjs.map → sqlite3-CGOEFJAO-DKaf3b_T.mjs.map} +1 -1
  57. package/dist/{src-xQsWiElt.mjs → src-BhFu0wxf.mjs} +4 -4
  58. package/dist/{src-xQsWiElt.mjs.map → src-BhFu0wxf.mjs.map} +1 -1
  59. package/dist/{src-DuFA6S6A.mjs → src-CO4ATuDw.mjs} +2 -2
  60. package/dist/{src-DuFA6S6A.mjs.map → src-CO4ATuDw.mjs.map} +1 -1
  61. package/dist/{tar-STHHZTZ6-C7-gpnmi.mjs → tar-STHHZTZ6-Cy8WppFl.mjs} +3 -3
  62. package/dist/{tar-STHHZTZ6-C7-gpnmi.mjs.map → tar-STHHZTZ6-Cy8WppFl.mjs.map} +1 -1
  63. package/dist/{tree-YLD52CNT-DiHyiFBi.mjs → tree-YLD52CNT-CFtEJCzO.mjs} +2 -2
  64. package/dist/{tree-YLD52CNT-DiHyiFBi.mjs.map → tree-YLD52CNT-CFtEJCzO.mjs.map} +1 -1
  65. package/dist/{uniq-XSIZR6PB-BA-vRB1O.mjs → uniq-XSIZR6PB-ERG9Mu92.mjs} +2 -2
  66. package/dist/{uniq-XSIZR6PB-BA-vRB1O.mjs.map → uniq-XSIZR6PB-ERG9Mu92.mjs.map} +1 -1
  67. package/dist/{watch-app-DTIeKrbl-BdEadl4m.mjs → watch-app-DTIeKrbl-C-BThJEO.mjs} +2 -2
  68. package/dist/{watch-app-DTIeKrbl-BdEadl4m.mjs.map → watch-app-DTIeKrbl-C-BThJEO.mjs.map} +1 -1
  69. package/dist/{wc-LF7NU4LA-BWoItyXd.mjs → wc-LF7NU4LA-CsPoPEAk.mjs} +2 -2
  70. package/dist/{wc-LF7NU4LA-BWoItyXd.mjs.map → wc-LF7NU4LA-CsPoPEAk.mjs.map} +1 -1
  71. package/dist/{websocket-server-DBCa1Df9.mjs → websocket-server-m6wiYSFm.mjs} +2 -2
  72. package/dist/{websocket-server-DBCa1Df9.mjs.map → websocket-server-m6wiYSFm.mjs.map} +1 -1
  73. package/dist/{xan-Y6WF3IRG-BilR2MsH.mjs → xan-Y6WF3IRG-ovCpFLkA.mjs} +2 -2
  74. package/dist/{xan-Y6WF3IRG-BilR2MsH.mjs.map → xan-Y6WF3IRG-ovCpFLkA.mjs.map} +1 -1
  75. package/package.json +8 -4
  76. package/dist/chunk-lXUa1qmO.mjs +0 -37
  77. package/dist/emit-route-manifest-DRcNXHCP-CSOVo0UZ.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { n as __esmMin } from "./chunk-lXUa1qmO.mjs";
3
- import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-BVavsm7Y.mjs";
2
+ import { jn as __esmMin } from "./index.mjs";
3
+ import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-CM85M090.mjs";
4
4
  //#region ../../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js
5
5
  function _fileName(headerValue) {
6
6
  const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
@@ -294,4 +294,4 @@ __esmMin((() => {
294
294
  }))();
295
295
  export { toFormData };
296
296
 
297
- //# sourceMappingURL=multipart-parser-CybO63Pn.mjs.map
297
+ //# sourceMappingURL=multipart-parser-ChdFj-Tf.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"multipart-parser-CybO63Pn.mjs","names":[],"sources":["../../../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js"],"sourcesContent":["import {File} from 'fetch-blob/from.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\n\nlet s = 0;\nconst S = {\n\tSTART_BOUNDARY: s++,\n\tHEADER_FIELD_START: s++,\n\tHEADER_FIELD: s++,\n\tHEADER_VALUE_START: s++,\n\tHEADER_VALUE: s++,\n\tHEADER_VALUE_ALMOST_DONE: s++,\n\tHEADERS_ALMOST_DONE: s++,\n\tPART_DATA_START: s++,\n\tPART_DATA: s++,\n\tEND: s++\n};\n\nlet f = 1;\nconst F = {\n\tPART_BOUNDARY: f,\n\tLAST_BOUNDARY: f *= 2\n};\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst lower = c => c | 0x20;\n\nconst noop = () => {};\n\nclass MultipartParser {\n\t/**\n\t * @param {string} boundary\n\t */\n\tconstructor(boundary) {\n\t\tthis.index = 0;\n\t\tthis.flags = 0;\n\n\t\tthis.onHeaderEnd = noop;\n\t\tthis.onHeaderField = noop;\n\t\tthis.onHeadersEnd = noop;\n\t\tthis.onHeaderValue = noop;\n\t\tthis.onPartBegin = noop;\n\t\tthis.onPartData = noop;\n\t\tthis.onPartEnd = noop;\n\n\t\tthis.boundaryChars = {};\n\n\t\tboundary = '\\r\\n--' + boundary;\n\t\tconst ui8a = new Uint8Array(boundary.length);\n\t\tfor (let i = 0; i < boundary.length; i++) {\n\t\t\tui8a[i] = boundary.charCodeAt(i);\n\t\t\tthis.boundaryChars[ui8a[i]] = true;\n\t\t}\n\n\t\tthis.boundary = ui8a;\n\t\tthis.lookbehind = new Uint8Array(this.boundary.length + 8);\n\t\tthis.state = S.START_BOUNDARY;\n\t}\n\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\twrite(data) {\n\t\tlet i = 0;\n\t\tconst length_ = data.length;\n\t\tlet previousIndex = this.index;\n\t\tlet {lookbehind, boundary, boundaryChars, index, state, flags} = this;\n\t\tconst boundaryLength = this.boundary.length;\n\t\tconst boundaryEnd = boundaryLength - 1;\n\t\tconst bufferLength = data.length;\n\t\tlet c;\n\t\tlet cl;\n\n\t\tconst mark = name => {\n\t\t\tthis[name + 'Mark'] = i;\n\t\t};\n\n\t\tconst clear = name => {\n\t\t\tdelete this[name + 'Mark'];\n\t\t};\n\n\t\tconst callback = (callbackSymbol, start, end, ui8a) => {\n\t\t\tif (start === undefined || start !== end) {\n\t\t\t\tthis[callbackSymbol](ui8a && ui8a.subarray(start, end));\n\t\t\t}\n\t\t};\n\n\t\tconst dataCallback = (name, clear) => {\n\t\t\tconst markSymbol = name + 'Mark';\n\t\t\tif (!(markSymbol in this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (clear) {\n\t\t\t\tcallback(name, this[markSymbol], i, data);\n\t\t\t\tdelete this[markSymbol];\n\t\t\t} else {\n\t\t\t\tcallback(name, this[markSymbol], data.length, data);\n\t\t\t\tthis[markSymbol] = 0;\n\t\t\t}\n\t\t};\n\n\t\tfor (i = 0; i < length_; i++) {\n\t\t\tc = data[i];\n\n\t\t\tswitch (state) {\n\t\t\t\tcase S.START_BOUNDARY:\n\t\t\t\t\tif (index === boundary.length - 2) {\n\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else if (c !== CR) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (index - 1 === boundary.length - 2) {\n\t\t\t\t\t\tif (flags & F.LAST_BOUNDARY && c === HYPHEN) {\n\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c !== boundary[index + 2]) {\n\t\t\t\t\t\tindex = -2;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === boundary[index + 2]) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_FIELD_START:\n\t\t\t\t\tstate = S.HEADER_FIELD;\n\t\t\t\t\tmark('onHeaderField');\n\t\t\t\t\tindex = 0;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_FIELD:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tclear('onHeaderField');\n\t\t\t\t\t\tstate = S.HEADERS_ALMOST_DONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === COLON) {\n\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t// empty header field\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataCallback('onHeaderField', true);\n\t\t\t\t\t\tstate = S.HEADER_VALUE_START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcl = lower(c);\n\t\t\t\t\tif (cl < A || cl > Z) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_START:\n\t\t\t\t\tif (c === SPACE) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tmark('onHeaderValue');\n\t\t\t\t\tstate = S.HEADER_VALUE;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_VALUE:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tdataCallback('onHeaderValue', true);\n\t\t\t\t\t\tcallback('onHeaderEnd');\n\t\t\t\t\t\tstate = S.HEADER_VALUE_ALMOST_DONE;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADERS_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback('onHeadersEnd');\n\t\t\t\t\tstate = S.PART_DATA_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.PART_DATA_START:\n\t\t\t\t\tstate = S.PART_DATA;\n\t\t\t\t\tmark('onPartData');\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.PART_DATA:\n\t\t\t\t\tpreviousIndex = index;\n\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// boyer-moore derrived algorithm to safely skip non-boundary data\n\t\t\t\t\t\ti += boundaryEnd;\n\t\t\t\t\t\twhile (i < bufferLength && !(data[i] in boundaryChars)) {\n\t\t\t\t\t\t\ti += boundaryLength;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ti -= boundaryEnd;\n\t\t\t\t\t\tc = data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < boundary.length) {\n\t\t\t\t\t\tif (boundary[index] === c) {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\tdataCallback('onPartData', true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tindex++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index === boundary.length) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\t\t// CR = part boundary\n\t\t\t\t\t\t\tflags |= F.PART_BOUNDARY;\n\t\t\t\t\t\t} else if (c === HYPHEN) {\n\t\t\t\t\t\t\t// HYPHEN = end boundary\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index - 1 === boundary.length) {\n\t\t\t\t\t\tif (flags & F.PART_BOUNDARY) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tif (c === LF) {\n\t\t\t\t\t\t\t\t// unset the PART_BOUNDARY flag\n\t\t\t\t\t\t\t\tflags &= ~F.PART_BOUNDARY;\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (flags & F.LAST_BOUNDARY) {\n\t\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t// when matching a possible boundary, keep a lookbehind reference\n\t\t\t\t\t\t// in case it turns out to be a false lead\n\t\t\t\t\t\tlookbehind[index - 1] = c;\n\t\t\t\t\t} else if (previousIndex > 0) {\n\t\t\t\t\t\t// if our boundary turned out to be rubbish, the captured lookbehind\n\t\t\t\t\t\t// belongs to partData\n\t\t\t\t\t\tconst _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);\n\t\t\t\t\t\tcallback('onPartData', 0, previousIndex, _lookbehind);\n\t\t\t\t\t\tpreviousIndex = 0;\n\t\t\t\t\t\tmark('onPartData');\n\n\t\t\t\t\t\t// reconsider the current character even so it interrupted the sequence\n\t\t\t\t\t\t// it could be the beginning of a new sequence\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.END:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected state entered: ${state}`);\n\t\t\t}\n\t\t}\n\n\t\tdataCallback('onHeaderField');\n\t\tdataCallback('onHeaderValue');\n\t\tdataCallback('onPartData');\n\n\t\t// Update properties for the next call\n\t\tthis.index = index;\n\t\tthis.state = state;\n\t\tthis.flags = flags;\n\t}\n\n\tend() {\n\t\tif ((this.state === S.HEADER_FIELD_START && this.index === 0) ||\n\t\t\t(this.state === S.PART_DATA && this.index === this.boundary.length)) {\n\t\t\tthis.onPartEnd();\n\t\t} else if (this.state !== S.END) {\n\t\t\tthrow new Error('MultipartParser.end(): stream ended unexpectedly');\n\t\t}\n\t}\n}\n\nfunction _fileName(headerValue) {\n\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\tconst m = headerValue.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);\n\tif (!m) {\n\t\treturn;\n\t}\n\n\tconst match = m[2] || m[3] || '';\n\tlet filename = match.slice(match.lastIndexOf('\\\\') + 1);\n\tfilename = filename.replace(/%22/g, '\"');\n\tfilename = filename.replace(/&#(\\d{4});/g, (m, code) => {\n\t\treturn String.fromCharCode(code);\n\t});\n\treturn filename;\n}\n\nexport async function toFormData(Body, ct) {\n\tif (!/multipart/i.test(ct)) {\n\t\tthrow new TypeError('Failed to fetch');\n\t}\n\n\tconst m = ct.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n\n\tif (!m) {\n\t\tthrow new TypeError('no or bad content-type header, no multipart boundary');\n\t}\n\n\tconst parser = new MultipartParser(m[1] || m[2]);\n\n\tlet headerField;\n\tlet headerValue;\n\tlet entryValue;\n\tlet entryName;\n\tlet contentType;\n\tlet filename;\n\tconst entryChunks = [];\n\tconst formData = new FormData();\n\n\tconst onPartData = ui8a => {\n\t\tentryValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tconst appendToFile = ui8a => {\n\t\tentryChunks.push(ui8a);\n\t};\n\n\tconst appendFileToFormData = () => {\n\t\tconst file = new File(entryChunks, filename, {type: contentType});\n\t\tformData.append(entryName, file);\n\t};\n\n\tconst appendEntryToFormData = () => {\n\t\tformData.append(entryName, entryValue);\n\t};\n\n\tconst decoder = new TextDecoder('utf-8');\n\tdecoder.decode();\n\n\tparser.onPartBegin = function () {\n\t\tparser.onPartData = onPartData;\n\t\tparser.onPartEnd = appendEntryToFormData;\n\n\t\theaderField = '';\n\t\theaderValue = '';\n\t\tentryValue = '';\n\t\tentryName = '';\n\t\tcontentType = '';\n\t\tfilename = null;\n\t\tentryChunks.length = 0;\n\t};\n\n\tparser.onHeaderField = function (ui8a) {\n\t\theaderField += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderValue = function (ui8a) {\n\t\theaderValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderEnd = function () {\n\t\theaderValue += decoder.decode();\n\t\theaderField = headerField.toLowerCase();\n\n\t\tif (headerField === 'content-disposition') {\n\t\t\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\t\t\tconst m = headerValue.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);\n\n\t\t\tif (m) {\n\t\t\t\tentryName = m[2] || m[3] || '';\n\t\t\t}\n\n\t\t\tfilename = _fileName(headerValue);\n\n\t\t\tif (filename) {\n\t\t\t\tparser.onPartData = appendToFile;\n\t\t\t\tparser.onPartEnd = appendFileToFormData;\n\t\t\t}\n\t\t} else if (headerField === 'content-type') {\n\t\t\tcontentType = headerValue;\n\t\t}\n\n\t\theaderValue = '';\n\t\theaderField = '';\n\t};\n\n\tfor await (const chunk of Body) {\n\t\tparser.write(chunk);\n\t}\n\n\tparser.end();\n\n\treturn formData;\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;AA+TA,SAAS,UAAU,aAAa;CAE/B,MAAM,IAAI,YAAY,MAAM,4DAA4D;CACxF,IAAI,CAAC,GACJ;CAGD,MAAM,QAAQ,EAAE,MAAM,EAAE,MAAM;CAC9B,IAAI,WAAW,MAAM,MAAM,MAAM,YAAY,IAAI,IAAI,CAAC;CACtD,WAAW,SAAS,QAAQ,QAAQ,IAAG;CACvC,WAAW,SAAS,QAAQ,gBAAgB,GAAG,SAAS;EACvD,OAAO,OAAO,aAAa,IAAI;CAChC,CAAC;CACD,OAAO;AACR;AAEA,eAAsB,WAAW,MAAM,IAAI;CAC1C,IAAI,CAAC,aAAa,KAAK,EAAE,GACxB,MAAM,IAAI,UAAU,iBAAiB;CAGtC,MAAM,IAAI,GAAG,MAAM,iCAAiC;CAEpD,IAAI,CAAC,GACJ,MAAM,IAAI,UAAU,sDAAsD;CAG3E,MAAM,SAAS,IAAI,gBAAgB,EAAE,MAAM,EAAE,EAAE;CAE/C,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM,cAAc,CAAC;CACrB,MAAM,WAAW,IAAI,SAAS;CAE9B,MAAM,cAAa,SAAQ;EAC1B,cAAc,QAAQ,OAAO,MAAM,EAAC,QAAQ,KAAI,CAAC;CAClD;CAEA,MAAM,gBAAe,SAAQ;EAC5B,YAAY,KAAK,IAAI;CACtB;CAEA,MAAM,6BAA6B;EAClC,MAAM,OAAO,IAAI,KAAK,aAAa,UAAU,EAAC,MAAM,YAAW,CAAC;EAChE,SAAS,OAAO,WAAW,IAAI;CAChC;CAEA,MAAM,8BAA8B;EACnC,SAAS,OAAO,WAAW,UAAU;CACtC;CAEA,MAAM,UAAU,IAAI,YAAY,OAAO;CACvC,QAAQ,OAAO;CAEf,OAAO,cAAc,WAAY;EAChC,OAAO,aAAa;EACpB,OAAO,YAAY;EAEnB,cAAc;EACd,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,WAAW;EACX,YAAY,SAAS;CACtB;CAEA,OAAO,gBAAgB,SAAU,MAAM;EACtC,eAAe,QAAQ,OAAO,MAAM,EAAC,QAAQ,KAAI,CAAC;CACnD;CAEA,OAAO,gBAAgB,SAAU,MAAM;EACtC,eAAe,QAAQ,OAAO,MAAM,EAAC,QAAQ,KAAI,CAAC;CACnD;CAEA,OAAO,cAAc,WAAY;EAChC,eAAe,QAAQ,OAAO;EAC9B,cAAc,YAAY,YAAY;EAEtC,IAAI,gBAAgB,uBAAuB;GAE1C,MAAM,IAAI,YAAY,MAAM,mDAAmD;GAE/E,IAAI,GACH,YAAY,EAAE,MAAM,EAAE,MAAM;GAG7B,WAAW,UAAU,WAAW;GAEhC,IAAI,UAAU;IACb,OAAO,aAAa;IACpB,OAAO,YAAY;GACpB;EACD,OAAO,IAAI,gBAAgB,gBAC1B,cAAc;EAGf,cAAc;EACd,cAAc;CACf;CAEA,WAAW,MAAM,SAAS,MACzB,OAAO,MAAM,KAAK;CAGnB,OAAO,IAAI;CAEX,OAAO;AACR;;;;WA/auC;cACc;CAEjD,IAAI;CACF,IAAI;EACT,gBAAgB;EAChB,oBAAoB;EACpB,cAAc;EACd,oBAAoB;EACpB,cAAc;EACd,0BAA0B;EAC1B,qBAAqB;EACrB,iBAAiB;EACjB,WAAW;EACX,KAAK;CACN;CAEI,IAAI;CACF,IAAI;EACT,eAAe;EACf,eAAe,KAAK;CACrB;CAEM,KAAK;CACL,KAAK;CACL,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,IAAI;CACJ,IAAI;CAEJ,SAAQ,MAAK,IAAI;CAEjB,aAAa,CAAC;CAEd,kBAAN,MAAsB;;;;EAIrB,YAAY,UAAU;GACrB,KAAK,QAAQ;GACb,KAAK,QAAQ;GAEb,KAAK,cAAc;GACnB,KAAK,gBAAgB;GACrB,KAAK,eAAe;GACpB,KAAK,gBAAgB;GACrB,KAAK,cAAc;GACnB,KAAK,aAAa;GAClB,KAAK,YAAY;GAEjB,KAAK,gBAAgB,CAAC;GAEtB,WAAW,WAAW;GACtB,MAAM,OAAO,IAAI,WAAW,SAAS,MAAM;GAC3C,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACzC,KAAK,KAAK,SAAS,WAAW,CAAC;IAC/B,KAAK,cAAc,KAAK,MAAM;GAC/B;GAEA,KAAK,WAAW;GAChB,KAAK,aAAa,IAAI,WAAW,KAAK,SAAS,SAAS,CAAC;GACzD,KAAK,QAAQ,EAAE;EAChB;;;;EAKA,MAAM,MAAM;GACX,IAAI,IAAI;GACR,MAAM,UAAU,KAAK;GACrB,IAAI,gBAAgB,KAAK;GACzB,IAAI,EAAC,YAAY,UAAU,eAAe,OAAO,OAAO,UAAS;GACjE,MAAM,iBAAiB,KAAK,SAAS;GACrC,MAAM,cAAc,iBAAiB;GACrC,MAAM,eAAe,KAAK;GAC1B,IAAI;GACJ,IAAI;GAEJ,MAAM,QAAO,SAAQ;IACpB,KAAK,OAAO,UAAU;GACvB;GAEA,MAAM,SAAQ,SAAQ;IACrB,OAAO,KAAK,OAAO;GACpB;GAEA,MAAM,YAAY,gBAAgB,OAAO,KAAK,SAAS;IACtD,IAAI,UAAU,KAAA,KAAa,UAAU,KACpC,KAAK,gBAAgB,QAAQ,KAAK,SAAS,OAAO,GAAG,CAAC;GAExD;GAEA,MAAM,gBAAgB,MAAM,UAAU;IACrC,MAAM,aAAa,OAAO;IAC1B,IAAI,EAAE,cAAc,OACnB;IAGD,IAAI,OAAO;KACV,SAAS,MAAM,KAAK,aAAa,GAAG,IAAI;KACxC,OAAO,KAAK;IACb,OAAO;KACN,SAAS,MAAM,KAAK,aAAa,KAAK,QAAQ,IAAI;KAClD,KAAK,cAAc;IACpB;GACD;GAEA,KAAK,IAAI,GAAG,IAAI,SAAS,KAAK;IAC7B,IAAI,KAAK;IAET,QAAQ,OAAR;KACC,KAAK,EAAE;MACN,IAAI,UAAU,SAAS,SAAS,GAAG;OAClC,IAAI,MAAM,QACT,SAAS,EAAE;YACL,IAAI,MAAM,IAChB;OAGD;OACA;MACD,OAAO,IAAI,QAAQ,MAAM,SAAS,SAAS,GAAG;OAC7C,IAAI,QAAQ,EAAE,iBAAiB,MAAM,QAAQ;QAC5C,QAAQ,EAAE;QACV,QAAQ;OACT,OAAO,IAAI,EAAE,QAAQ,EAAE,kBAAkB,MAAM,IAAI;QAClD,QAAQ;QACR,SAAS,aAAa;QACtB,QAAQ,EAAE;OACX,OACC;OAGD;MACD;MAEA,IAAI,MAAM,SAAS,QAAQ,IAC1B,QAAQ;MAGT,IAAI,MAAM,SAAS,QAAQ,IAC1B;MAGD;KACD,KAAK,EAAE;MACN,QAAQ,EAAE;MACV,KAAK,eAAe;MACpB,QAAQ;KAET,KAAK,EAAE;MACN,IAAI,MAAM,IAAI;OACb,MAAM,eAAe;OACrB,QAAQ,EAAE;OACV;MACD;MAEA;MACA,IAAI,MAAM,QACT;MAGD,IAAI,MAAM,OAAO;OAChB,IAAI,UAAU,GAEb;OAGD,aAAa,iBAAiB,IAAI;OAClC,QAAQ,EAAE;OACV;MACD;MAEA,KAAK,MAAM,CAAC;MACZ,IAAI,KAAK,KAAK,KAAK,GAClB;MAGD;KACD,KAAK,EAAE;MACN,IAAI,MAAM,OACT;MAGD,KAAK,eAAe;MACpB,QAAQ,EAAE;KAEX,KAAK,EAAE;MACN,IAAI,MAAM,IAAI;OACb,aAAa,iBAAiB,IAAI;OAClC,SAAS,aAAa;OACtB,QAAQ,EAAE;MACX;MAEA;KACD,KAAK,EAAE;MACN,IAAI,MAAM,IACT;MAGD,QAAQ,EAAE;MACV;KACD,KAAK,EAAE;MACN,IAAI,MAAM,IACT;MAGD,SAAS,cAAc;MACvB,QAAQ,EAAE;MACV;KACD,KAAK,EAAE;MACN,QAAQ,EAAE;MACV,KAAK,YAAY;KAElB,KAAK,EAAE;MACN,gBAAgB;MAEhB,IAAI,UAAU,GAAG;OAEhB,KAAK;OACL,OAAO,IAAI,gBAAgB,EAAE,KAAK,MAAM,gBACvC,KAAK;OAGN,KAAK;OACL,IAAI,KAAK;MACV;MAEA,IAAI,QAAQ,SAAS,QACpB,IAAI,SAAS,WAAW,GAAG;OAC1B,IAAI,UAAU,GACb,aAAa,cAAc,IAAI;OAGhC;MACD,OACC,QAAQ;WAEH,IAAI,UAAU,SAAS,QAAQ;OACrC;OACA,IAAI,MAAM,IAET,SAAS,EAAE;YACL,IAAI,MAAM,QAEhB,SAAS,EAAE;YAEX,QAAQ;MAEV,OAAO,IAAI,QAAQ,MAAM,SAAS,QACjC,IAAI,QAAQ,EAAE,eAAe;OAC5B,QAAQ;OACR,IAAI,MAAM,IAAI;QAEb,SAAS,CAAC,EAAE;QACZ,SAAS,WAAW;QACpB,SAAS,aAAa;QACtB,QAAQ,EAAE;QACV;OACD;MACD,OAAO,IAAI,QAAQ,EAAE,eACpB,IAAI,MAAM,QAAQ;OACjB,SAAS,WAAW;OACpB,QAAQ,EAAE;OACV,QAAQ;MACT,OACC,QAAQ;WAGT,QAAQ;MAIV,IAAI,QAAQ,GAGX,WAAW,QAAQ,KAAK;WAClB,IAAI,gBAAgB,GAAG;OAG7B,MAAM,cAAc,IAAI,WAAW,WAAW,QAAQ,WAAW,YAAY,WAAW,UAAU;OAClG,SAAS,cAAc,GAAG,eAAe,WAAW;OACpD,gBAAgB;OAChB,KAAK,YAAY;OAIjB;MACD;MAEA;KACD,KAAK,EAAE,KACN;KACD,SACC,MAAM,IAAI,MAAM,6BAA6B,OAAO;IACtD;GACD;GAEA,aAAa,eAAe;GAC5B,aAAa,eAAe;GAC5B,aAAa,YAAY;GAGzB,KAAK,QAAQ;GACb,KAAK,QAAQ;GACb,KAAK,QAAQ;EACd;EAEA,MAAM;GACL,IAAK,KAAK,UAAU,EAAE,sBAAsB,KAAK,UAAU,KACzD,KAAK,UAAU,EAAE,aAAa,KAAK,UAAU,KAAK,SAAS,QAC5D,KAAK,UAAU;QACT,IAAI,KAAK,UAAU,EAAE,KAC3B,MAAM,IAAI,MAAM,kDAAkD;EAEpE;CACD"}
1
+ {"version":3,"file":"multipart-parser-ChdFj-Tf.mjs","names":[],"sources":["../../../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js"],"sourcesContent":["import {File} from 'fetch-blob/from.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\n\nlet s = 0;\nconst S = {\n\tSTART_BOUNDARY: s++,\n\tHEADER_FIELD_START: s++,\n\tHEADER_FIELD: s++,\n\tHEADER_VALUE_START: s++,\n\tHEADER_VALUE: s++,\n\tHEADER_VALUE_ALMOST_DONE: s++,\n\tHEADERS_ALMOST_DONE: s++,\n\tPART_DATA_START: s++,\n\tPART_DATA: s++,\n\tEND: s++\n};\n\nlet f = 1;\nconst F = {\n\tPART_BOUNDARY: f,\n\tLAST_BOUNDARY: f *= 2\n};\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst lower = c => c | 0x20;\n\nconst noop = () => {};\n\nclass MultipartParser {\n\t/**\n\t * @param {string} boundary\n\t */\n\tconstructor(boundary) {\n\t\tthis.index = 0;\n\t\tthis.flags = 0;\n\n\t\tthis.onHeaderEnd = noop;\n\t\tthis.onHeaderField = noop;\n\t\tthis.onHeadersEnd = noop;\n\t\tthis.onHeaderValue = noop;\n\t\tthis.onPartBegin = noop;\n\t\tthis.onPartData = noop;\n\t\tthis.onPartEnd = noop;\n\n\t\tthis.boundaryChars = {};\n\n\t\tboundary = '\\r\\n--' + boundary;\n\t\tconst ui8a = new Uint8Array(boundary.length);\n\t\tfor (let i = 0; i < boundary.length; i++) {\n\t\t\tui8a[i] = boundary.charCodeAt(i);\n\t\t\tthis.boundaryChars[ui8a[i]] = true;\n\t\t}\n\n\t\tthis.boundary = ui8a;\n\t\tthis.lookbehind = new Uint8Array(this.boundary.length + 8);\n\t\tthis.state = S.START_BOUNDARY;\n\t}\n\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\twrite(data) {\n\t\tlet i = 0;\n\t\tconst length_ = data.length;\n\t\tlet previousIndex = this.index;\n\t\tlet {lookbehind, boundary, boundaryChars, index, state, flags} = this;\n\t\tconst boundaryLength = this.boundary.length;\n\t\tconst boundaryEnd = boundaryLength - 1;\n\t\tconst bufferLength = data.length;\n\t\tlet c;\n\t\tlet cl;\n\n\t\tconst mark = name => {\n\t\t\tthis[name + 'Mark'] = i;\n\t\t};\n\n\t\tconst clear = name => {\n\t\t\tdelete this[name + 'Mark'];\n\t\t};\n\n\t\tconst callback = (callbackSymbol, start, end, ui8a) => {\n\t\t\tif (start === undefined || start !== end) {\n\t\t\t\tthis[callbackSymbol](ui8a && ui8a.subarray(start, end));\n\t\t\t}\n\t\t};\n\n\t\tconst dataCallback = (name, clear) => {\n\t\t\tconst markSymbol = name + 'Mark';\n\t\t\tif (!(markSymbol in this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (clear) {\n\t\t\t\tcallback(name, this[markSymbol], i, data);\n\t\t\t\tdelete this[markSymbol];\n\t\t\t} else {\n\t\t\t\tcallback(name, this[markSymbol], data.length, data);\n\t\t\t\tthis[markSymbol] = 0;\n\t\t\t}\n\t\t};\n\n\t\tfor (i = 0; i < length_; i++) {\n\t\t\tc = data[i];\n\n\t\t\tswitch (state) {\n\t\t\t\tcase S.START_BOUNDARY:\n\t\t\t\t\tif (index === boundary.length - 2) {\n\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else if (c !== CR) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (index - 1 === boundary.length - 2) {\n\t\t\t\t\t\tif (flags & F.LAST_BOUNDARY && c === HYPHEN) {\n\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c !== boundary[index + 2]) {\n\t\t\t\t\t\tindex = -2;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === boundary[index + 2]) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_FIELD_START:\n\t\t\t\t\tstate = S.HEADER_FIELD;\n\t\t\t\t\tmark('onHeaderField');\n\t\t\t\t\tindex = 0;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_FIELD:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tclear('onHeaderField');\n\t\t\t\t\t\tstate = S.HEADERS_ALMOST_DONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === COLON) {\n\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t// empty header field\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataCallback('onHeaderField', true);\n\t\t\t\t\t\tstate = S.HEADER_VALUE_START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcl = lower(c);\n\t\t\t\t\tif (cl < A || cl > Z) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_START:\n\t\t\t\t\tif (c === SPACE) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tmark('onHeaderValue');\n\t\t\t\t\tstate = S.HEADER_VALUE;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_VALUE:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tdataCallback('onHeaderValue', true);\n\t\t\t\t\t\tcallback('onHeaderEnd');\n\t\t\t\t\t\tstate = S.HEADER_VALUE_ALMOST_DONE;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADERS_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback('onHeadersEnd');\n\t\t\t\t\tstate = S.PART_DATA_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.PART_DATA_START:\n\t\t\t\t\tstate = S.PART_DATA;\n\t\t\t\t\tmark('onPartData');\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.PART_DATA:\n\t\t\t\t\tpreviousIndex = index;\n\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// boyer-moore derrived algorithm to safely skip non-boundary data\n\t\t\t\t\t\ti += boundaryEnd;\n\t\t\t\t\t\twhile (i < bufferLength && !(data[i] in boundaryChars)) {\n\t\t\t\t\t\t\ti += boundaryLength;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ti -= boundaryEnd;\n\t\t\t\t\t\tc = data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < boundary.length) {\n\t\t\t\t\t\tif (boundary[index] === c) {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\tdataCallback('onPartData', true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tindex++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index === boundary.length) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\t\t// CR = part boundary\n\t\t\t\t\t\t\tflags |= F.PART_BOUNDARY;\n\t\t\t\t\t\t} else if (c === HYPHEN) {\n\t\t\t\t\t\t\t// HYPHEN = end boundary\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index - 1 === boundary.length) {\n\t\t\t\t\t\tif (flags & F.PART_BOUNDARY) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tif (c === LF) {\n\t\t\t\t\t\t\t\t// unset the PART_BOUNDARY flag\n\t\t\t\t\t\t\t\tflags &= ~F.PART_BOUNDARY;\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (flags & F.LAST_BOUNDARY) {\n\t\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t// when matching a possible boundary, keep a lookbehind reference\n\t\t\t\t\t\t// in case it turns out to be a false lead\n\t\t\t\t\t\tlookbehind[index - 1] = c;\n\t\t\t\t\t} else if (previousIndex > 0) {\n\t\t\t\t\t\t// if our boundary turned out to be rubbish, the captured lookbehind\n\t\t\t\t\t\t// belongs to partData\n\t\t\t\t\t\tconst _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);\n\t\t\t\t\t\tcallback('onPartData', 0, previousIndex, _lookbehind);\n\t\t\t\t\t\tpreviousIndex = 0;\n\t\t\t\t\t\tmark('onPartData');\n\n\t\t\t\t\t\t// reconsider the current character even so it interrupted the sequence\n\t\t\t\t\t\t// it could be the beginning of a new sequence\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.END:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected state entered: ${state}`);\n\t\t\t}\n\t\t}\n\n\t\tdataCallback('onHeaderField');\n\t\tdataCallback('onHeaderValue');\n\t\tdataCallback('onPartData');\n\n\t\t// Update properties for the next call\n\t\tthis.index = index;\n\t\tthis.state = state;\n\t\tthis.flags = flags;\n\t}\n\n\tend() {\n\t\tif ((this.state === S.HEADER_FIELD_START && this.index === 0) ||\n\t\t\t(this.state === S.PART_DATA && this.index === this.boundary.length)) {\n\t\t\tthis.onPartEnd();\n\t\t} else if (this.state !== S.END) {\n\t\t\tthrow new Error('MultipartParser.end(): stream ended unexpectedly');\n\t\t}\n\t}\n}\n\nfunction _fileName(headerValue) {\n\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\tconst m = headerValue.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);\n\tif (!m) {\n\t\treturn;\n\t}\n\n\tconst match = m[2] || m[3] || '';\n\tlet filename = match.slice(match.lastIndexOf('\\\\') + 1);\n\tfilename = filename.replace(/%22/g, '\"');\n\tfilename = filename.replace(/&#(\\d{4});/g, (m, code) => {\n\t\treturn String.fromCharCode(code);\n\t});\n\treturn filename;\n}\n\nexport async function toFormData(Body, ct) {\n\tif (!/multipart/i.test(ct)) {\n\t\tthrow new TypeError('Failed to fetch');\n\t}\n\n\tconst m = ct.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n\n\tif (!m) {\n\t\tthrow new TypeError('no or bad content-type header, no multipart boundary');\n\t}\n\n\tconst parser = new MultipartParser(m[1] || m[2]);\n\n\tlet headerField;\n\tlet headerValue;\n\tlet entryValue;\n\tlet entryName;\n\tlet contentType;\n\tlet filename;\n\tconst entryChunks = [];\n\tconst formData = new FormData();\n\n\tconst onPartData = ui8a => {\n\t\tentryValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tconst appendToFile = ui8a => {\n\t\tentryChunks.push(ui8a);\n\t};\n\n\tconst appendFileToFormData = () => {\n\t\tconst file = new File(entryChunks, filename, {type: contentType});\n\t\tformData.append(entryName, file);\n\t};\n\n\tconst appendEntryToFormData = () => {\n\t\tformData.append(entryName, entryValue);\n\t};\n\n\tconst decoder = new TextDecoder('utf-8');\n\tdecoder.decode();\n\n\tparser.onPartBegin = function () {\n\t\tparser.onPartData = onPartData;\n\t\tparser.onPartEnd = appendEntryToFormData;\n\n\t\theaderField = '';\n\t\theaderValue = '';\n\t\tentryValue = '';\n\t\tentryName = '';\n\t\tcontentType = '';\n\t\tfilename = null;\n\t\tentryChunks.length = 0;\n\t};\n\n\tparser.onHeaderField = function (ui8a) {\n\t\theaderField += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderValue = function (ui8a) {\n\t\theaderValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderEnd = function () {\n\t\theaderValue += decoder.decode();\n\t\theaderField = headerField.toLowerCase();\n\n\t\tif (headerField === 'content-disposition') {\n\t\t\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\t\t\tconst m = headerValue.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);\n\n\t\t\tif (m) {\n\t\t\t\tentryName = m[2] || m[3] || '';\n\t\t\t}\n\n\t\t\tfilename = _fileName(headerValue);\n\n\t\t\tif (filename) {\n\t\t\t\tparser.onPartData = appendToFile;\n\t\t\t\tparser.onPartEnd = appendFileToFormData;\n\t\t\t}\n\t\t} else if (headerField === 'content-type') {\n\t\t\tcontentType = headerValue;\n\t\t}\n\n\t\theaderValue = '';\n\t\theaderField = '';\n\t};\n\n\tfor await (const chunk of Body) {\n\t\tparser.write(chunk);\n\t}\n\n\tparser.end();\n\n\treturn formData;\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { t as getEnvApiKey } from "./env-api-keys-CjsGqLnm.mjs";
2
+ import { t as getEnvApiKey } from "./env-api-keys-Dj0phNAZ.mjs";
3
3
  import { r as clampThinkingLevel, t as AssistantMessageEventStream } from "./event-stream-FOdgPz2L.mjs";
4
4
  import { t as headersToRecord } from "./headers-CFU1lxB-.mjs";
5
5
  import { r as buildBaseOptions } from "./transform-messages-B-d7Y4P2.mjs";
6
6
  import { t as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-BxDT7VXm.mjs";
7
- import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-rmpfdSMl.mjs";
7
+ import { n as convertResponsesTools, r as processResponsesStream, t as convertResponsesMessages } from "./openai-responses-shared-DOajVKFM.mjs";
8
8
  import { i as registerSessionResourceCleanup, n as createAssistantMessageDiagnostic, r as formatThrownValue, t as appendAssistantMessageDiagnostic } from "./diagnostics-6WwOZgy7.mjs";
9
9
  //#region ../../node_modules/.pnpm/@earendil-works+pi-ai@0.75.4_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.20.1_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js
10
10
  var __rewriteRelativeImportExtension = function(path, preserveJsx) {
@@ -926,4 +926,4 @@ function buildWebSocketHeaders(initHeaders, additionalHeaders, accountId, token,
926
926
  //#endregion
927
927
  export { closeOpenAICodexWebSocketSessions, getOpenAICodexWebSocketDebugStats, resetOpenAICodexWebSocketDebugStats, streamOpenAICodexResponses, streamSimpleOpenAICodexResponses };
928
928
 
929
- //# sourceMappingURL=openai-codex-responses-BsV2OXkO.mjs.map
929
+ //# sourceMappingURL=openai-codex-responses-FPOFDQCI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-codex-responses-BsV2OXkO.mjs","names":["blobLike"],"sources":["../../../node_modules/.pnpm/@earendil-works+pi-ai@0.75.4_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.20.1_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js"],"sourcesContent":["var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n};\n// NEVER convert to top-level runtime imports - breaks browser/Vite builds\nlet _os = null;\nconst dynamicImport = (specifier) => import(__rewriteRelativeImportExtension(specifier));\nconst NODE_OS_SPECIFIER = \"node:\" + \"os\";\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n dynamicImport(NODE_OS_SPECIFIER).then((m) => {\n _os = m;\n });\n}\nimport { getEnvApiKey } from \"../env-api-keys.js\";\nimport { clampThinkingLevel } from \"../models.js\";\nimport { registerSessionResourceCleanup } from \"../session-resources.js\";\nimport { appendAssistantMessageDiagnostic, createAssistantMessageDiagnostic, formatThrownValue, } from \"../utils/diagnostics.js\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.js\";\nimport { headersToRecord } from \"../utils/headers.js\";\nimport { clampOpenAIPromptCacheKey } from \"./openai-prompt-cache.js\";\nimport { convertResponsesMessages, convertResponsesTools, processResponsesStream } from \"./openai-responses-shared.js\";\nimport { buildBaseOptions } from \"./simple-options.js\";\n// ============================================================================\n// Configuration\n// ============================================================================\nconst DEFAULT_CODEX_BASE_URL = \"https://chatgpt.com/backend-api\";\nconst JWT_CLAIM_PATH = \"https://api.openai.com/auth\";\nconst MAX_RETRIES = 3;\nconst BASE_DELAY_MS = 1000;\nconst CODEX_TOOL_CALL_PROVIDERS = new Set([\"openai\", \"openai-codex\", \"opencode\"]);\nconst WEBSOCKET_MESSAGE_TOO_BIG_CLOSE_CODE = 1009;\nconst CODEX_RESPONSE_STATUSES = new Set([\n \"completed\",\n \"incomplete\",\n \"failed\",\n \"cancelled\",\n \"queued\",\n \"in_progress\",\n]);\n// ============================================================================\n// Retry Helpers\n// ============================================================================\nfunction isRetryableError(status, errorText) {\n if (status === 429 || status === 500 || status === 502 || status === 503 || status === 504) {\n return true;\n }\n return /rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(errorText);\n}\nfunction sleep(ms, signal) {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(new Error(\"Request was aborted\"));\n return;\n }\n const timeout = setTimeout(resolve, ms);\n signal?.addEventListener(\"abort\", () => {\n clearTimeout(timeout);\n reject(new Error(\"Request was aborted\"));\n });\n });\n}\n// ============================================================================\n// Main Stream Function\n// ============================================================================\nexport const streamOpenAICodexResponses = (model, context, options) => {\n const stream = new AssistantMessageEventStream();\n (async () => {\n const output = {\n role: \"assistant\",\n content: [],\n api: \"openai-codex-responses\",\n provider: model.provider,\n model: model.id,\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n },\n stopReason: \"stop\",\n timestamp: Date.now(),\n };\n try {\n const apiKey = options?.apiKey || getEnvApiKey(model.provider) || \"\";\n if (!apiKey) {\n throw new Error(`No API key for provider: ${model.provider}`);\n }\n const accountId = extractAccountId(apiKey);\n let body = buildRequestBody(model, context, options);\n const nextBody = await options?.onPayload?.(body, model);\n if (nextBody !== undefined) {\n body = nextBody;\n }\n const websocketRequestId = options?.sessionId || createCodexRequestId();\n const sseHeaders = buildSSEHeaders(model.headers, options?.headers, accountId, apiKey, options?.sessionId);\n const websocketHeaders = buildWebSocketHeaders(model.headers, options?.headers, accountId, apiKey, websocketRequestId);\n const bodyJson = JSON.stringify(body);\n const transport = options?.transport || \"auto\";\n const websocketDisabledForSession = transport !== \"sse\" && isWebSocketSseFallbackActive(options?.sessionId);\n if (websocketDisabledForSession) {\n recordWebSocketSseFallback(options?.sessionId);\n }\n if (transport !== \"sse\" && !websocketDisabledForSession) {\n let websocketStarted = false;\n try {\n await processWebSocketStream(resolveCodexWebSocketUrl(model.baseUrl), body, websocketHeaders, output, stream, model, () => {\n websocketStarted = true;\n }, options);\n if (options?.signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n stream.push({\n type: \"done\",\n reason: output.stopReason,\n message: output,\n });\n stream.end();\n return;\n }\n catch (error) {\n const aborted = options?.signal?.aborted;\n if (aborted || isCodexNonTransportError(error)) {\n throw error;\n }\n appendAssistantMessageDiagnostic(output, createAssistantMessageDiagnostic(\"provider_transport_failure\", error, {\n configuredTransport: transport,\n fallbackTransport: websocketStarted ? undefined : \"sse\",\n eventsEmitted: websocketStarted,\n phase: websocketStarted ? \"after_message_stream_start\" : \"before_message_stream_start\",\n requestBytes: new TextEncoder().encode(bodyJson).byteLength,\n }));\n recordWebSocketFailure(options?.sessionId, error);\n if (websocketStarted) {\n throw error;\n }\n recordWebSocketSseFallback(options?.sessionId);\n }\n }\n // Fetch with retry logic for rate limits and transient errors\n let response;\n let lastError;\n for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {\n if (options?.signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n try {\n response = await fetch(resolveCodexUrl(model.baseUrl), {\n method: \"POST\",\n headers: sseHeaders,\n body: bodyJson,\n signal: options?.signal,\n });\n await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);\n if (response.ok) {\n break;\n }\n const errorText = await response.text();\n if (attempt < MAX_RETRIES && isRetryableError(response.status, errorText)) {\n let delayMs = BASE_DELAY_MS * 2 ** attempt;\n const retryAfterMs = response.headers.get(\"retry-after-ms\");\n if (retryAfterMs !== null) {\n const millis = Number(retryAfterMs);\n if (Number.isFinite(millis)) {\n delayMs = Math.max(0, millis);\n }\n }\n else {\n const retryAfter = response.headers.get(\"retry-after\");\n if (retryAfter) {\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds)) {\n delayMs = Math.max(0, seconds * 1000);\n }\n else {\n const date = Date.parse(retryAfter);\n if (!Number.isNaN(date)) {\n delayMs = Math.max(0, date - Date.now());\n }\n }\n }\n }\n await sleep(delayMs, options?.signal);\n continue;\n }\n // Parse error for friendly message on final attempt or non-retryable error\n const fakeResponse = new Response(errorText, {\n status: response.status,\n statusText: response.statusText,\n });\n const info = await parseErrorResponse(fakeResponse);\n throw new Error(info.friendlyMessage || info.message);\n }\n catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\" || error.message === \"Request was aborted\") {\n throw new Error(\"Request was aborted\");\n }\n }\n lastError = error instanceof Error ? error : new Error(String(error));\n // Network errors are retryable\n if (attempt < MAX_RETRIES && !lastError.message.includes(\"usage limit\")) {\n const delayMs = BASE_DELAY_MS * 2 ** attempt;\n await sleep(delayMs, options?.signal);\n continue;\n }\n throw lastError;\n }\n }\n if (!response?.ok) {\n throw lastError ?? new Error(\"Failed after retries\");\n }\n if (!response.body) {\n throw new Error(\"No response body\");\n }\n stream.push({ type: \"start\", partial: output });\n await processStream(response, output, stream, model, options);\n if (options?.signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n stream.push({ type: \"done\", reason: output.stopReason, message: output });\n stream.end();\n }\n catch (error) {\n for (const block of output.content) {\n // partialJson is only a streaming scratch buffer; never persist it.\n delete block.partialJson;\n }\n output.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n output.errorMessage = error instanceof Error ? error.message : String(error);\n stream.push({ type: \"error\", reason: output.stopReason, error: output });\n stream.end();\n }\n })();\n return stream;\n};\nexport const streamSimpleOpenAICodexResponses = (model, context, options) => {\n const apiKey = options?.apiKey || getEnvApiKey(model.provider);\n if (!apiKey) {\n throw new Error(`No API key for provider: ${model.provider}`);\n }\n const base = buildBaseOptions(model, options, apiKey);\n const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;\n const reasoningEffort = clampedReasoning === \"off\" ? undefined : clampedReasoning;\n return streamOpenAICodexResponses(model, context, {\n ...base,\n reasoningEffort,\n });\n};\n// ============================================================================\n// Request Building\n// ============================================================================\nfunction buildRequestBody(model, context, options) {\n const messages = convertResponsesMessages(model, context, CODEX_TOOL_CALL_PROVIDERS, {\n includeSystemPrompt: false,\n });\n const body = {\n model: model.id,\n store: false,\n stream: true,\n instructions: context.systemPrompt || \"You are a helpful assistant.\",\n input: messages,\n text: { verbosity: options?.textVerbosity || \"low\" },\n include: [\"reasoning.encrypted_content\"],\n prompt_cache_key: clampOpenAIPromptCacheKey(options?.sessionId),\n tool_choice: \"auto\",\n parallel_tool_calls: true,\n };\n if (options?.temperature !== undefined) {\n body.temperature = options.temperature;\n }\n if (options?.serviceTier !== undefined) {\n body.service_tier = options.serviceTier;\n }\n if (context.tools && context.tools.length > 0) {\n body.tools = convertResponsesTools(context.tools, { strict: null });\n }\n if (options?.reasoningEffort !== undefined) {\n const effort = options.reasoningEffort === \"none\"\n ? (model.thinkingLevelMap?.off ?? \"none\")\n : (model.thinkingLevelMap?.[options.reasoningEffort] ?? options.reasoningEffort);\n if (effort !== null) {\n body.reasoning = {\n effort,\n summary: options.reasoningSummary ?? \"auto\",\n };\n }\n }\n return body;\n}\nfunction getServiceTierCostMultiplier(model, serviceTier) {\n switch (serviceTier) {\n case \"flex\":\n return 0.5;\n case \"priority\":\n return model.id === \"gpt-5.5\" ? 2.5 : 2;\n default:\n return 1;\n }\n}\nfunction applyServiceTierPricing(usage, serviceTier, model) {\n const multiplier = getServiceTierCostMultiplier(model, serviceTier);\n if (multiplier === 1)\n return;\n usage.cost.input *= multiplier;\n usage.cost.output *= multiplier;\n usage.cost.cacheRead *= multiplier;\n usage.cost.cacheWrite *= multiplier;\n usage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n}\nfunction resolveCodexServiceTier(responseServiceTier, requestServiceTier) {\n if (responseServiceTier === \"default\" && (requestServiceTier === \"flex\" || requestServiceTier === \"priority\")) {\n return requestServiceTier;\n }\n return responseServiceTier ?? requestServiceTier;\n}\nfunction resolveCodexUrl(baseUrl) {\n const raw = baseUrl && baseUrl.trim().length > 0 ? baseUrl : DEFAULT_CODEX_BASE_URL;\n const normalized = raw.replace(/\\/+$/, \"\");\n if (normalized.endsWith(\"/codex/responses\"))\n return normalized;\n if (normalized.endsWith(\"/codex\"))\n return `${normalized}/responses`;\n return `${normalized}/codex/responses`;\n}\nfunction resolveCodexWebSocketUrl(baseUrl) {\n const url = new URL(resolveCodexUrl(baseUrl));\n if (url.protocol === \"https:\")\n url.protocol = \"wss:\";\n if (url.protocol === \"http:\")\n url.protocol = \"ws:\";\n return url.toString();\n}\n// ============================================================================\n// Response Processing\n// ============================================================================\nasync function processStream(response, output, stream, model, options) {\n await processResponsesStream(mapCodexEvents(parseSSE(response)), output, stream, model, {\n serviceTier: options?.serviceTier,\n resolveServiceTier: resolveCodexServiceTier,\n applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model),\n });\n}\nclass CodexApiError extends Error {\n code;\n payload;\n constructor(message, options) {\n super(message);\n this.name = \"CodexApiError\";\n this.code = options?.code;\n this.payload = options?.payload;\n this.cause = options?.cause;\n }\n}\nclass CodexProtocolError extends Error {\n payload;\n constructor(message, options) {\n super(message);\n this.name = \"CodexProtocolError\";\n this.payload = options?.payload;\n this.cause = options?.cause;\n }\n}\nfunction isCodexNonTransportError(error) {\n return error instanceof CodexApiError || error instanceof CodexProtocolError;\n}\nasync function* mapCodexEvents(events) {\n for await (const event of events) {\n const type = typeof event.type === \"string\" ? event.type : undefined;\n if (!type)\n continue;\n if (type === \"error\") {\n const code = event.code || \"\";\n const message = event.message || \"\";\n throw new CodexApiError(`Codex error: ${message || code || JSON.stringify(event)}`, {\n code: code || undefined,\n payload: event,\n });\n }\n if (type === \"response.failed\") {\n const response = event.response;\n const code = response?.error?.code;\n const message = response?.error?.message;\n throw new CodexApiError(message || \"Codex response failed\", { code, payload: event });\n }\n if (type === \"response.done\" || type === \"response.completed\" || type === \"response.incomplete\") {\n const response = event.response;\n const normalizedResponse = response\n ? { ...response, status: normalizeCodexStatus(response.status) }\n : response;\n yield { ...event, type: \"response.completed\", response: normalizedResponse };\n return;\n }\n yield event;\n }\n}\nfunction normalizeCodexStatus(status) {\n if (typeof status !== \"string\")\n return undefined;\n return CODEX_RESPONSE_STATUSES.has(status) ? status : undefined;\n}\n// ============================================================================\n// SSE Parsing\n// ============================================================================\nasync function* parseSSE(response) {\n if (!response.body)\n return;\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n buffer += decoder.decode(value, { stream: true });\n let idx = buffer.indexOf(\"\\n\\n\");\n while (idx !== -1) {\n const chunk = buffer.slice(0, idx);\n buffer = buffer.slice(idx + 2);\n const dataLines = chunk\n .split(\"\\n\")\n .filter((l) => l.startsWith(\"data:\"))\n .map((l) => l.slice(5).trim());\n if (dataLines.length > 0) {\n const data = dataLines.join(\"\\n\").trim();\n if (data && data !== \"[DONE]\") {\n try {\n yield JSON.parse(data);\n }\n catch (cause) {\n throw new CodexProtocolError(`Invalid Codex SSE JSON: ${formatThrownValue(cause)}`, {\n cause,\n payload: data,\n });\n }\n }\n }\n idx = buffer.indexOf(\"\\n\\n\");\n }\n }\n }\n finally {\n try {\n await reader.cancel();\n }\n catch { }\n try {\n reader.releaseLock();\n }\n catch { }\n }\n}\n// ============================================================================\n// WebSocket Parsing\n// ============================================================================\nconst OPENAI_BETA_RESPONSES_WEBSOCKETS = \"responses_websockets=2026-02-06\";\nconst SESSION_WEBSOCKET_CACHE_TTL_MS = 5 * 60 * 1000;\nconst websocketSessionCache = new Map();\nconst websocketDebugStats = new Map();\nconst websocketSseFallbackSessions = new Set();\nfunction getOrCreateWebSocketDebugStats(sessionId) {\n let stats = websocketDebugStats.get(sessionId);\n if (!stats) {\n stats = {\n requests: 0,\n connectionsCreated: 0,\n connectionsReused: 0,\n cachedContextRequests: 0,\n storeTrueRequests: 0,\n fullContextRequests: 0,\n deltaRequests: 0,\n lastInputItems: 0,\n websocketFailures: 0,\n sseFallbacks: 0,\n };\n websocketDebugStats.set(sessionId, stats);\n }\n return stats;\n}\nexport function getOpenAICodexWebSocketDebugStats(sessionId) {\n const stats = websocketDebugStats.get(sessionId);\n return stats ? { ...stats } : undefined;\n}\nexport function resetOpenAICodexWebSocketDebugStats(sessionId) {\n if (sessionId) {\n websocketDebugStats.delete(sessionId);\n websocketSseFallbackSessions.delete(sessionId);\n return;\n }\n websocketDebugStats.clear();\n websocketSseFallbackSessions.clear();\n}\nexport function closeOpenAICodexWebSocketSessions(sessionId) {\n const closeEntry = (entry) => {\n if (entry.idleTimer)\n clearTimeout(entry.idleTimer);\n closeWebSocketSilently(entry.socket, 1000, \"debug_close\");\n };\n if (sessionId) {\n const entry = websocketSessionCache.get(sessionId);\n if (entry)\n closeEntry(entry);\n websocketSessionCache.delete(sessionId);\n return;\n }\n for (const entry of websocketSessionCache.values()) {\n closeEntry(entry);\n }\n websocketSessionCache.clear();\n}\nregisterSessionResourceCleanup(closeOpenAICodexWebSocketSessions);\nfunction isWebSocketSseFallbackActive(sessionId) {\n return sessionId ? websocketSseFallbackSessions.has(sessionId) : false;\n}\nfunction recordWebSocketSseFallback(sessionId) {\n if (!sessionId)\n return;\n const stats = getOrCreateWebSocketDebugStats(sessionId);\n stats.sseFallbacks++;\n stats.websocketFallbackActive = isWebSocketSseFallbackActive(sessionId);\n}\nfunction recordWebSocketFailure(sessionId, error) {\n if (!sessionId)\n return;\n websocketSseFallbackSessions.add(sessionId);\n const stats = getOrCreateWebSocketDebugStats(sessionId);\n stats.websocketFailures++;\n stats.lastWebSocketError = formatThrownValue(error);\n stats.websocketFallbackActive = true;\n}\nlet _cachedWebsocket = null;\nasync function getWebSocketConstructor() {\n if (_cachedWebsocket)\n return _cachedWebsocket;\n // bun doesn't respect http proxy envs, ref: https://github.com/oven-sh/bun/issues/15489\n // TODO: remove this when bun supports proxy envs in websocket.\n if (process?.versions?.bun &&\n (process.env.HTTP_PROXY || process.env.HTTPS_PROXY || process.env.http_proxy || process.env.https_proxy)) {\n const m = await dynamicImport(\"proxy-from-env\");\n const getProxyForUrl = m.getProxyForUrl;\n _cachedWebsocket = class extends WebSocket {\n constructor(url, options) {\n let _opts = {};\n if (Array.isArray(options) || typeof options === \"string\") {\n _opts = { protocols: options };\n }\n else {\n _opts = { ...options };\n }\n const proxy = getProxyForUrl(url.toString().replace(/^wss:/, \"https:\").replace(/^ws:/, \"http:\"));\n super(url, { ..._opts, ...(proxy ? { proxy } : {}) });\n }\n };\n return _cachedWebsocket;\n }\n const ctor = globalThis.WebSocket;\n if (typeof ctor !== \"function\")\n return null;\n return ctor;\n}\nclass WebSocketCloseError extends Error {\n code;\n reason;\n wasClean;\n constructor(message, options) {\n super(message);\n this.name = \"WebSocketCloseError\";\n this.code = options?.code;\n this.reason = options?.reason;\n this.wasClean = options?.wasClean;\n }\n}\nfunction getWebSocketReadyState(socket) {\n const readyState = socket.readyState;\n return typeof readyState === \"number\" ? readyState : undefined;\n}\nfunction isWebSocketReusable(socket) {\n const readyState = getWebSocketReadyState(socket);\n // If readyState is unavailable, assume the runtime keeps it open/reusable.\n return readyState === undefined || readyState === 1;\n}\nfunction closeWebSocketSilently(socket, code = 1000, reason = \"done\") {\n try {\n socket.close(code, reason);\n }\n catch { }\n}\nfunction scheduleSessionWebSocketExpiry(sessionId, entry) {\n if (entry.idleTimer) {\n clearTimeout(entry.idleTimer);\n }\n entry.idleTimer = setTimeout(() => {\n if (entry.busy)\n return;\n closeWebSocketSilently(entry.socket, 1000, \"idle_timeout\");\n websocketSessionCache.delete(sessionId);\n }, SESSION_WEBSOCKET_CACHE_TTL_MS);\n}\nasync function connectWebSocket(url, headers, signal) {\n const WebSocketCtor = await getWebSocketConstructor();\n if (!WebSocketCtor) {\n throw new Error(\"WebSocket transport is not available in this runtime\");\n }\n const wsHeaders = headersToRecord(headers);\n delete wsHeaders[\"OpenAI-Beta\"];\n return new Promise((resolve, reject) => {\n let settled = false;\n let socket;\n try {\n socket = new WebSocketCtor(url, { headers: wsHeaders });\n }\n catch (error) {\n reject(error instanceof Error ? error : new Error(String(error)));\n return;\n }\n const onOpen = () => {\n if (settled)\n return;\n settled = true;\n cleanup();\n resolve(socket);\n };\n const onError = (event) => {\n const error = extractWebSocketError(event);\n if (settled)\n return;\n settled = true;\n cleanup();\n reject(error);\n };\n const onClose = (event) => {\n const error = extractWebSocketCloseError(event);\n if (settled)\n return;\n settled = true;\n cleanup();\n reject(error);\n };\n const onAbort = () => {\n if (settled)\n return;\n settled = true;\n cleanup();\n socket.close(1000, \"aborted\");\n reject(new Error(\"Request was aborted\"));\n };\n const cleanup = () => {\n socket.removeEventListener(\"open\", onOpen);\n socket.removeEventListener(\"error\", onError);\n socket.removeEventListener(\"close\", onClose);\n signal?.removeEventListener(\"abort\", onAbort);\n };\n socket.addEventListener(\"open\", onOpen);\n socket.addEventListener(\"error\", onError);\n socket.addEventListener(\"close\", onClose);\n signal?.addEventListener(\"abort\", onAbort);\n });\n}\nasync function acquireWebSocket(url, headers, sessionId, signal) {\n if (!sessionId) {\n const socket = await connectWebSocket(url, headers, signal);\n return {\n socket,\n reused: false,\n release: ({ keep } = {}) => {\n if (keep === false) {\n closeWebSocketSilently(socket);\n return;\n }\n closeWebSocketSilently(socket);\n },\n };\n }\n const cached = websocketSessionCache.get(sessionId);\n if (cached) {\n if (cached.idleTimer) {\n clearTimeout(cached.idleTimer);\n cached.idleTimer = undefined;\n }\n if (!cached.busy && isWebSocketReusable(cached.socket)) {\n cached.busy = true;\n return {\n socket: cached.socket,\n entry: cached,\n reused: true,\n release: ({ keep } = {}) => {\n if (!keep || !isWebSocketReusable(cached.socket)) {\n closeWebSocketSilently(cached.socket);\n websocketSessionCache.delete(sessionId);\n return;\n }\n cached.busy = false;\n scheduleSessionWebSocketExpiry(sessionId, cached);\n },\n };\n }\n if (cached.busy) {\n const socket = await connectWebSocket(url, headers, signal);\n return {\n socket,\n reused: false,\n release: () => {\n closeWebSocketSilently(socket);\n },\n };\n }\n if (!isWebSocketReusable(cached.socket)) {\n closeWebSocketSilently(cached.socket);\n websocketSessionCache.delete(sessionId);\n }\n }\n const socket = await connectWebSocket(url, headers, signal);\n const entry = { socket, busy: true };\n websocketSessionCache.set(sessionId, entry);\n return {\n socket,\n entry,\n reused: false,\n release: ({ keep } = {}) => {\n if (!keep || !isWebSocketReusable(entry.socket)) {\n closeWebSocketSilently(entry.socket);\n if (entry.idleTimer)\n clearTimeout(entry.idleTimer);\n if (websocketSessionCache.get(sessionId) === entry) {\n websocketSessionCache.delete(sessionId);\n }\n return;\n }\n entry.busy = false;\n scheduleSessionWebSocketExpiry(sessionId, entry);\n },\n };\n}\nfunction extractWebSocketError(event) {\n if (event && typeof event === \"object\") {\n const message = \"message\" in event ? event.message : undefined;\n if (typeof message === \"string\" && message.length > 0) {\n return new Error(message);\n }\n const nestedError = \"error\" in event ? event.error : undefined;\n if (nestedError instanceof Error && nestedError.message.length > 0) {\n return nestedError;\n }\n if (nestedError && typeof nestedError === \"object\" && \"message\" in nestedError) {\n const nestedMessage = nestedError.message;\n if (typeof nestedMessage === \"string\" && nestedMessage.length > 0) {\n return new Error(nestedMessage);\n }\n }\n }\n return new Error(\"WebSocket error\");\n}\nfunction extractWebSocketCloseError(event) {\n if (event && typeof event === \"object\") {\n const code = \"code\" in event ? event.code : undefined;\n const reason = \"reason\" in event ? event.reason : undefined;\n const wasClean = \"wasClean\" in event ? event.wasClean : undefined;\n const codeText = typeof code === \"number\" ? ` ${code}` : \"\";\n let reasonText = typeof reason === \"string\" && reason.length > 0 ? ` ${reason}` : \"\";\n if (!reasonText && code === WEBSOCKET_MESSAGE_TOO_BIG_CLOSE_CODE) {\n reasonText = \" message too big\";\n }\n return new WebSocketCloseError(`WebSocket closed${codeText}${reasonText}`.trim(), {\n code: typeof code === \"number\" ? code : undefined,\n reason: typeof reason === \"string\" && reason.length > 0 ? reason : undefined,\n wasClean: typeof wasClean === \"boolean\" ? wasClean : undefined,\n });\n }\n return new Error(\"WebSocket closed\");\n}\nasync function decodeWebSocketData(data) {\n if (typeof data === \"string\")\n return data;\n if (data instanceof ArrayBuffer) {\n return new TextDecoder().decode(new Uint8Array(data));\n }\n if (ArrayBuffer.isView(data)) {\n const view = data;\n return new TextDecoder().decode(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));\n }\n if (data && typeof data === \"object\" && \"arrayBuffer\" in data) {\n const blobLike = data;\n const arrayBuffer = await blobLike.arrayBuffer();\n return new TextDecoder().decode(new Uint8Array(arrayBuffer));\n }\n return null;\n}\nasync function* parseWebSocket(socket, signal) {\n const queue = [];\n let pending = null;\n let done = false;\n let failed = null;\n let sawCompletion = false;\n const wake = () => {\n if (!pending)\n return;\n const resolve = pending;\n pending = null;\n resolve();\n };\n const onMessage = (event) => {\n void (async () => {\n let text = null;\n try {\n if (!event || typeof event !== \"object\" || !(\"data\" in event))\n return;\n text = await decodeWebSocketData(event.data);\n if (!text)\n return;\n const parsed = JSON.parse(text);\n const type = typeof parsed.type === \"string\" ? parsed.type : \"\";\n if (type === \"response.completed\" || type === \"response.done\" || type === \"response.incomplete\") {\n sawCompletion = true;\n done = true;\n }\n queue.push(parsed);\n wake();\n }\n catch (cause) {\n failed = new CodexProtocolError(`Invalid Codex WebSocket JSON: ${formatThrownValue(cause)}`, {\n cause,\n payload: text,\n });\n done = true;\n wake();\n }\n })();\n };\n const onError = (event) => {\n failed = extractWebSocketError(event);\n done = true;\n wake();\n };\n const onClose = (event) => {\n if (sawCompletion) {\n done = true;\n wake();\n return;\n }\n if (!failed) {\n failed = extractWebSocketCloseError(event);\n }\n done = true;\n wake();\n };\n const onAbort = () => {\n failed = new Error(\"Request was aborted\");\n done = true;\n wake();\n };\n socket.addEventListener(\"message\", onMessage);\n socket.addEventListener(\"error\", onError);\n socket.addEventListener(\"close\", onClose);\n signal?.addEventListener(\"abort\", onAbort);\n try {\n while (true) {\n if (signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n if (queue.length > 0) {\n yield queue.shift();\n continue;\n }\n if (done)\n break;\n await new Promise((resolve) => {\n pending = resolve;\n });\n }\n if (failed) {\n throw failed;\n }\n if (!sawCompletion) {\n throw new Error(\"WebSocket stream closed before response.completed\");\n }\n }\n finally {\n socket.removeEventListener(\"message\", onMessage);\n socket.removeEventListener(\"error\", onError);\n socket.removeEventListener(\"close\", onClose);\n signal?.removeEventListener(\"abort\", onAbort);\n }\n}\nfunction requestBodyWithoutInput(body) {\n const { input: _input, previous_response_id: _previousResponseId, ...rest } = body;\n return rest;\n}\nfunction responseInputsEqual(a, b) {\n return JSON.stringify(a ?? []) === JSON.stringify(b ?? []);\n}\nfunction requestBodiesMatchExceptInput(a, b) {\n return JSON.stringify(requestBodyWithoutInput(a)) === JSON.stringify(requestBodyWithoutInput(b));\n}\nfunction getCachedWebSocketInputDelta(body, continuation) {\n if (!requestBodiesMatchExceptInput(body, continuation.lastRequestBody)) {\n return undefined;\n }\n const currentInput = body.input ?? [];\n const baseline = [...(continuation.lastRequestBody.input ?? []), ...continuation.lastResponseItems];\n if (currentInput.length < baseline.length) {\n return undefined;\n }\n const prefix = currentInput.slice(0, baseline.length);\n if (!responseInputsEqual(prefix, baseline)) {\n return undefined;\n }\n return currentInput.slice(baseline.length);\n}\nfunction buildCachedWebSocketRequestBody(entry, body) {\n const continuation = entry.continuation;\n if (!continuation) {\n return body;\n }\n const delta = getCachedWebSocketInputDelta(body, continuation);\n if (!delta || !continuation.lastResponseId) {\n entry.continuation = undefined;\n return body;\n }\n return {\n ...body,\n previous_response_id: continuation.lastResponseId,\n input: delta,\n };\n}\nasync function* startWebSocketOutputOnFirstEvent(events, output, stream, onStart) {\n let started = false;\n for await (const event of events) {\n if (!started) {\n started = true;\n onStart();\n stream.push({ type: \"start\", partial: output });\n }\n yield event;\n }\n}\nasync function processWebSocketStream(url, body, headers, output, stream, model, onStart, options) {\n const { socket, entry, reused, release } = await acquireWebSocket(url, headers, options?.sessionId, options?.signal);\n let keepConnection = true;\n const useCachedContext = options?.transport === \"websocket-cached\" || options?.transport === \"auto\";\n // ChatGPT Codex Responses rejects `store: true` (\"Store must be set to false\").\n // WebSocket continuation still works via connection-scoped previous_response_id state.\n const fullBody = body;\n const requestBody = useCachedContext && entry ? buildCachedWebSocketRequestBody(entry, fullBody) : fullBody;\n const stats = options?.sessionId ? getOrCreateWebSocketDebugStats(options.sessionId) : undefined;\n if (stats) {\n stats.requests++;\n if (reused)\n stats.connectionsReused++;\n else\n stats.connectionsCreated++;\n if (useCachedContext)\n stats.cachedContextRequests++;\n if (requestBody.store === true)\n stats.storeTrueRequests++;\n stats.lastInputItems = requestBody.input?.length ?? 0;\n if (requestBody.previous_response_id) {\n stats.deltaRequests++;\n stats.lastDeltaInputItems = requestBody.input?.length ?? 0;\n stats.lastPreviousResponseId = requestBody.previous_response_id;\n }\n else {\n stats.fullContextRequests++;\n stats.lastDeltaInputItems = undefined;\n stats.lastPreviousResponseId = undefined;\n }\n }\n try {\n socket.send(JSON.stringify({ type: \"response.create\", ...requestBody }));\n await processResponsesStream(startWebSocketOutputOnFirstEvent(mapCodexEvents(parseWebSocket(socket, options?.signal)), output, stream, onStart), output, stream, model, {\n serviceTier: options?.serviceTier,\n resolveServiceTier: resolveCodexServiceTier,\n applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model),\n });\n if (options?.signal?.aborted) {\n keepConnection = false;\n }\n else if (useCachedContext && entry && output.responseId) {\n const responseItems = convertResponsesMessages(model, { messages: [output] }, CODEX_TOOL_CALL_PROVIDERS, {\n includeSystemPrompt: false,\n }).filter((item) => item.type !== \"function_call_output\");\n entry.continuation = {\n lastRequestBody: fullBody,\n lastResponseId: output.responseId,\n lastResponseItems: responseItems,\n };\n }\n }\n catch (error) {\n if (entry) {\n entry.continuation = undefined;\n }\n keepConnection = false;\n throw error;\n }\n finally {\n release({ keep: keepConnection });\n }\n}\n// ============================================================================\n// Error Handling\n// ============================================================================\nasync function parseErrorResponse(response) {\n const raw = await response.text();\n let message = raw || response.statusText || \"Request failed\";\n let friendlyMessage;\n try {\n const parsed = JSON.parse(raw);\n const err = parsed?.error;\n if (err) {\n const code = err.code || err.type || \"\";\n if (/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(code) || response.status === 429) {\n const plan = err.plan_type ? ` (${err.plan_type.toLowerCase()} plan)` : \"\";\n const mins = err.resets_at\n ? Math.max(0, Math.round((err.resets_at * 1000 - Date.now()) / 60000))\n : undefined;\n const when = mins !== undefined ? ` Try again in ~${mins} min.` : \"\";\n friendlyMessage = `You have hit your ChatGPT usage limit${plan}.${when}`.trim();\n }\n message = err.message || friendlyMessage || message;\n }\n }\n catch { }\n return { message, friendlyMessage };\n}\n// ============================================================================\n// Auth & Headers\n// ============================================================================\nfunction extractAccountId(token) {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3)\n throw new Error(\"Invalid token\");\n const payload = JSON.parse(atob(parts[1]));\n const accountId = payload?.[JWT_CLAIM_PATH]?.chatgpt_account_id;\n if (!accountId)\n throw new Error(\"No account ID in token\");\n return accountId;\n }\n catch {\n throw new Error(\"Failed to extract accountId from token\");\n }\n}\nfunction createCodexRequestId() {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n return `codex_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\n}\nfunction buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token) {\n const headers = new Headers(initHeaders);\n for (const [key, value] of Object.entries(additionalHeaders || {})) {\n headers.set(key, value);\n }\n headers.set(\"Authorization\", `Bearer ${token}`);\n headers.set(\"chatgpt-account-id\", accountId);\n headers.set(\"originator\", \"pi\");\n const userAgent = _os ? `pi (${_os.platform()} ${_os.release()}; ${_os.arch()})` : \"pi (browser)\";\n headers.set(\"User-Agent\", userAgent);\n return headers;\n}\nfunction buildSSEHeaders(initHeaders, additionalHeaders, accountId, token, sessionId) {\n const headers = buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token);\n headers.set(\"OpenAI-Beta\", \"responses=experimental\");\n headers.set(\"accept\", \"text/event-stream\");\n headers.set(\"content-type\", \"application/json\");\n if (sessionId) {\n headers.set(\"session_id\", sessionId);\n headers.set(\"x-client-request-id\", sessionId);\n }\n return headers;\n}\nfunction buildWebSocketHeaders(initHeaders, additionalHeaders, accountId, token, requestId) {\n const headers = buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token);\n headers.delete(\"accept\");\n headers.delete(\"content-type\");\n headers.delete(\"OpenAI-Beta\");\n headers.delete(\"openai-beta\");\n headers.set(\"OpenAI-Beta\", OPENAI_BETA_RESPONSES_WEBSOCKETS);\n headers.set(\"x-client-request-id\", requestId);\n headers.set(\"session_id\", requestId);\n return headers;\n}\n//# sourceMappingURL=openai-codex-responses.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"openai-codex-responses-FPOFDQCI.mjs","names":["blobLike"],"sources":["../../../node_modules/.pnpm/@earendil-works+pi-ai@0.75.4_@modelcontextprotocol+sdk@1.29.0_zod@4.4.3__ws@8.20.1_zod@4.4.3/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js"],"sourcesContent":["var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n};\n// NEVER convert to top-level runtime imports - breaks browser/Vite builds\nlet _os = null;\nconst dynamicImport = (specifier) => import(__rewriteRelativeImportExtension(specifier));\nconst NODE_OS_SPECIFIER = \"node:\" + \"os\";\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n dynamicImport(NODE_OS_SPECIFIER).then((m) => {\n _os = m;\n });\n}\nimport { getEnvApiKey } from \"../env-api-keys.js\";\nimport { clampThinkingLevel } from \"../models.js\";\nimport { registerSessionResourceCleanup } from \"../session-resources.js\";\nimport { appendAssistantMessageDiagnostic, createAssistantMessageDiagnostic, formatThrownValue, } from \"../utils/diagnostics.js\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.js\";\nimport { headersToRecord } from \"../utils/headers.js\";\nimport { clampOpenAIPromptCacheKey } from \"./openai-prompt-cache.js\";\nimport { convertResponsesMessages, convertResponsesTools, processResponsesStream } from \"./openai-responses-shared.js\";\nimport { buildBaseOptions } from \"./simple-options.js\";\n// ============================================================================\n// Configuration\n// ============================================================================\nconst DEFAULT_CODEX_BASE_URL = \"https://chatgpt.com/backend-api\";\nconst JWT_CLAIM_PATH = \"https://api.openai.com/auth\";\nconst MAX_RETRIES = 3;\nconst BASE_DELAY_MS = 1000;\nconst CODEX_TOOL_CALL_PROVIDERS = new Set([\"openai\", \"openai-codex\", \"opencode\"]);\nconst WEBSOCKET_MESSAGE_TOO_BIG_CLOSE_CODE = 1009;\nconst CODEX_RESPONSE_STATUSES = new Set([\n \"completed\",\n \"incomplete\",\n \"failed\",\n \"cancelled\",\n \"queued\",\n \"in_progress\",\n]);\n// ============================================================================\n// Retry Helpers\n// ============================================================================\nfunction isRetryableError(status, errorText) {\n if (status === 429 || status === 500 || status === 502 || status === 503 || status === 504) {\n return true;\n }\n return /rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(errorText);\n}\nfunction sleep(ms, signal) {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(new Error(\"Request was aborted\"));\n return;\n }\n const timeout = setTimeout(resolve, ms);\n signal?.addEventListener(\"abort\", () => {\n clearTimeout(timeout);\n reject(new Error(\"Request was aborted\"));\n });\n });\n}\n// ============================================================================\n// Main Stream Function\n// ============================================================================\nexport const streamOpenAICodexResponses = (model, context, options) => {\n const stream = new AssistantMessageEventStream();\n (async () => {\n const output = {\n role: \"assistant\",\n content: [],\n api: \"openai-codex-responses\",\n provider: model.provider,\n model: model.id,\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n },\n stopReason: \"stop\",\n timestamp: Date.now(),\n };\n try {\n const apiKey = options?.apiKey || getEnvApiKey(model.provider) || \"\";\n if (!apiKey) {\n throw new Error(`No API key for provider: ${model.provider}`);\n }\n const accountId = extractAccountId(apiKey);\n let body = buildRequestBody(model, context, options);\n const nextBody = await options?.onPayload?.(body, model);\n if (nextBody !== undefined) {\n body = nextBody;\n }\n const websocketRequestId = options?.sessionId || createCodexRequestId();\n const sseHeaders = buildSSEHeaders(model.headers, options?.headers, accountId, apiKey, options?.sessionId);\n const websocketHeaders = buildWebSocketHeaders(model.headers, options?.headers, accountId, apiKey, websocketRequestId);\n const bodyJson = JSON.stringify(body);\n const transport = options?.transport || \"auto\";\n const websocketDisabledForSession = transport !== \"sse\" && isWebSocketSseFallbackActive(options?.sessionId);\n if (websocketDisabledForSession) {\n recordWebSocketSseFallback(options?.sessionId);\n }\n if (transport !== \"sse\" && !websocketDisabledForSession) {\n let websocketStarted = false;\n try {\n await processWebSocketStream(resolveCodexWebSocketUrl(model.baseUrl), body, websocketHeaders, output, stream, model, () => {\n websocketStarted = true;\n }, options);\n if (options?.signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n stream.push({\n type: \"done\",\n reason: output.stopReason,\n message: output,\n });\n stream.end();\n return;\n }\n catch (error) {\n const aborted = options?.signal?.aborted;\n if (aborted || isCodexNonTransportError(error)) {\n throw error;\n }\n appendAssistantMessageDiagnostic(output, createAssistantMessageDiagnostic(\"provider_transport_failure\", error, {\n configuredTransport: transport,\n fallbackTransport: websocketStarted ? undefined : \"sse\",\n eventsEmitted: websocketStarted,\n phase: websocketStarted ? \"after_message_stream_start\" : \"before_message_stream_start\",\n requestBytes: new TextEncoder().encode(bodyJson).byteLength,\n }));\n recordWebSocketFailure(options?.sessionId, error);\n if (websocketStarted) {\n throw error;\n }\n recordWebSocketSseFallback(options?.sessionId);\n }\n }\n // Fetch with retry logic for rate limits and transient errors\n let response;\n let lastError;\n for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {\n if (options?.signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n try {\n response = await fetch(resolveCodexUrl(model.baseUrl), {\n method: \"POST\",\n headers: sseHeaders,\n body: bodyJson,\n signal: options?.signal,\n });\n await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);\n if (response.ok) {\n break;\n }\n const errorText = await response.text();\n if (attempt < MAX_RETRIES && isRetryableError(response.status, errorText)) {\n let delayMs = BASE_DELAY_MS * 2 ** attempt;\n const retryAfterMs = response.headers.get(\"retry-after-ms\");\n if (retryAfterMs !== null) {\n const millis = Number(retryAfterMs);\n if (Number.isFinite(millis)) {\n delayMs = Math.max(0, millis);\n }\n }\n else {\n const retryAfter = response.headers.get(\"retry-after\");\n if (retryAfter) {\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds)) {\n delayMs = Math.max(0, seconds * 1000);\n }\n else {\n const date = Date.parse(retryAfter);\n if (!Number.isNaN(date)) {\n delayMs = Math.max(0, date - Date.now());\n }\n }\n }\n }\n await sleep(delayMs, options?.signal);\n continue;\n }\n // Parse error for friendly message on final attempt or non-retryable error\n const fakeResponse = new Response(errorText, {\n status: response.status,\n statusText: response.statusText,\n });\n const info = await parseErrorResponse(fakeResponse);\n throw new Error(info.friendlyMessage || info.message);\n }\n catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\" || error.message === \"Request was aborted\") {\n throw new Error(\"Request was aborted\");\n }\n }\n lastError = error instanceof Error ? error : new Error(String(error));\n // Network errors are retryable\n if (attempt < MAX_RETRIES && !lastError.message.includes(\"usage limit\")) {\n const delayMs = BASE_DELAY_MS * 2 ** attempt;\n await sleep(delayMs, options?.signal);\n continue;\n }\n throw lastError;\n }\n }\n if (!response?.ok) {\n throw lastError ?? new Error(\"Failed after retries\");\n }\n if (!response.body) {\n throw new Error(\"No response body\");\n }\n stream.push({ type: \"start\", partial: output });\n await processStream(response, output, stream, model, options);\n if (options?.signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n stream.push({ type: \"done\", reason: output.stopReason, message: output });\n stream.end();\n }\n catch (error) {\n for (const block of output.content) {\n // partialJson is only a streaming scratch buffer; never persist it.\n delete block.partialJson;\n }\n output.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n output.errorMessage = error instanceof Error ? error.message : String(error);\n stream.push({ type: \"error\", reason: output.stopReason, error: output });\n stream.end();\n }\n })();\n return stream;\n};\nexport const streamSimpleOpenAICodexResponses = (model, context, options) => {\n const apiKey = options?.apiKey || getEnvApiKey(model.provider);\n if (!apiKey) {\n throw new Error(`No API key for provider: ${model.provider}`);\n }\n const base = buildBaseOptions(model, options, apiKey);\n const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;\n const reasoningEffort = clampedReasoning === \"off\" ? undefined : clampedReasoning;\n return streamOpenAICodexResponses(model, context, {\n ...base,\n reasoningEffort,\n });\n};\n// ============================================================================\n// Request Building\n// ============================================================================\nfunction buildRequestBody(model, context, options) {\n const messages = convertResponsesMessages(model, context, CODEX_TOOL_CALL_PROVIDERS, {\n includeSystemPrompt: false,\n });\n const body = {\n model: model.id,\n store: false,\n stream: true,\n instructions: context.systemPrompt || \"You are a helpful assistant.\",\n input: messages,\n text: { verbosity: options?.textVerbosity || \"low\" },\n include: [\"reasoning.encrypted_content\"],\n prompt_cache_key: clampOpenAIPromptCacheKey(options?.sessionId),\n tool_choice: \"auto\",\n parallel_tool_calls: true,\n };\n if (options?.temperature !== undefined) {\n body.temperature = options.temperature;\n }\n if (options?.serviceTier !== undefined) {\n body.service_tier = options.serviceTier;\n }\n if (context.tools && context.tools.length > 0) {\n body.tools = convertResponsesTools(context.tools, { strict: null });\n }\n if (options?.reasoningEffort !== undefined) {\n const effort = options.reasoningEffort === \"none\"\n ? (model.thinkingLevelMap?.off ?? \"none\")\n : (model.thinkingLevelMap?.[options.reasoningEffort] ?? options.reasoningEffort);\n if (effort !== null) {\n body.reasoning = {\n effort,\n summary: options.reasoningSummary ?? \"auto\",\n };\n }\n }\n return body;\n}\nfunction getServiceTierCostMultiplier(model, serviceTier) {\n switch (serviceTier) {\n case \"flex\":\n return 0.5;\n case \"priority\":\n return model.id === \"gpt-5.5\" ? 2.5 : 2;\n default:\n return 1;\n }\n}\nfunction applyServiceTierPricing(usage, serviceTier, model) {\n const multiplier = getServiceTierCostMultiplier(model, serviceTier);\n if (multiplier === 1)\n return;\n usage.cost.input *= multiplier;\n usage.cost.output *= multiplier;\n usage.cost.cacheRead *= multiplier;\n usage.cost.cacheWrite *= multiplier;\n usage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n}\nfunction resolveCodexServiceTier(responseServiceTier, requestServiceTier) {\n if (responseServiceTier === \"default\" && (requestServiceTier === \"flex\" || requestServiceTier === \"priority\")) {\n return requestServiceTier;\n }\n return responseServiceTier ?? requestServiceTier;\n}\nfunction resolveCodexUrl(baseUrl) {\n const raw = baseUrl && baseUrl.trim().length > 0 ? baseUrl : DEFAULT_CODEX_BASE_URL;\n const normalized = raw.replace(/\\/+$/, \"\");\n if (normalized.endsWith(\"/codex/responses\"))\n return normalized;\n if (normalized.endsWith(\"/codex\"))\n return `${normalized}/responses`;\n return `${normalized}/codex/responses`;\n}\nfunction resolveCodexWebSocketUrl(baseUrl) {\n const url = new URL(resolveCodexUrl(baseUrl));\n if (url.protocol === \"https:\")\n url.protocol = \"wss:\";\n if (url.protocol === \"http:\")\n url.protocol = \"ws:\";\n return url.toString();\n}\n// ============================================================================\n// Response Processing\n// ============================================================================\nasync function processStream(response, output, stream, model, options) {\n await processResponsesStream(mapCodexEvents(parseSSE(response)), output, stream, model, {\n serviceTier: options?.serviceTier,\n resolveServiceTier: resolveCodexServiceTier,\n applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model),\n });\n}\nclass CodexApiError extends Error {\n code;\n payload;\n constructor(message, options) {\n super(message);\n this.name = \"CodexApiError\";\n this.code = options?.code;\n this.payload = options?.payload;\n this.cause = options?.cause;\n }\n}\nclass CodexProtocolError extends Error {\n payload;\n constructor(message, options) {\n super(message);\n this.name = \"CodexProtocolError\";\n this.payload = options?.payload;\n this.cause = options?.cause;\n }\n}\nfunction isCodexNonTransportError(error) {\n return error instanceof CodexApiError || error instanceof CodexProtocolError;\n}\nasync function* mapCodexEvents(events) {\n for await (const event of events) {\n const type = typeof event.type === \"string\" ? event.type : undefined;\n if (!type)\n continue;\n if (type === \"error\") {\n const code = event.code || \"\";\n const message = event.message || \"\";\n throw new CodexApiError(`Codex error: ${message || code || JSON.stringify(event)}`, {\n code: code || undefined,\n payload: event,\n });\n }\n if (type === \"response.failed\") {\n const response = event.response;\n const code = response?.error?.code;\n const message = response?.error?.message;\n throw new CodexApiError(message || \"Codex response failed\", { code, payload: event });\n }\n if (type === \"response.done\" || type === \"response.completed\" || type === \"response.incomplete\") {\n const response = event.response;\n const normalizedResponse = response\n ? { ...response, status: normalizeCodexStatus(response.status) }\n : response;\n yield { ...event, type: \"response.completed\", response: normalizedResponse };\n return;\n }\n yield event;\n }\n}\nfunction normalizeCodexStatus(status) {\n if (typeof status !== \"string\")\n return undefined;\n return CODEX_RESPONSE_STATUSES.has(status) ? status : undefined;\n}\n// ============================================================================\n// SSE Parsing\n// ============================================================================\nasync function* parseSSE(response) {\n if (!response.body)\n return;\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n buffer += decoder.decode(value, { stream: true });\n let idx = buffer.indexOf(\"\\n\\n\");\n while (idx !== -1) {\n const chunk = buffer.slice(0, idx);\n buffer = buffer.slice(idx + 2);\n const dataLines = chunk\n .split(\"\\n\")\n .filter((l) => l.startsWith(\"data:\"))\n .map((l) => l.slice(5).trim());\n if (dataLines.length > 0) {\n const data = dataLines.join(\"\\n\").trim();\n if (data && data !== \"[DONE]\") {\n try {\n yield JSON.parse(data);\n }\n catch (cause) {\n throw new CodexProtocolError(`Invalid Codex SSE JSON: ${formatThrownValue(cause)}`, {\n cause,\n payload: data,\n });\n }\n }\n }\n idx = buffer.indexOf(\"\\n\\n\");\n }\n }\n }\n finally {\n try {\n await reader.cancel();\n }\n catch { }\n try {\n reader.releaseLock();\n }\n catch { }\n }\n}\n// ============================================================================\n// WebSocket Parsing\n// ============================================================================\nconst OPENAI_BETA_RESPONSES_WEBSOCKETS = \"responses_websockets=2026-02-06\";\nconst SESSION_WEBSOCKET_CACHE_TTL_MS = 5 * 60 * 1000;\nconst websocketSessionCache = new Map();\nconst websocketDebugStats = new Map();\nconst websocketSseFallbackSessions = new Set();\nfunction getOrCreateWebSocketDebugStats(sessionId) {\n let stats = websocketDebugStats.get(sessionId);\n if (!stats) {\n stats = {\n requests: 0,\n connectionsCreated: 0,\n connectionsReused: 0,\n cachedContextRequests: 0,\n storeTrueRequests: 0,\n fullContextRequests: 0,\n deltaRequests: 0,\n lastInputItems: 0,\n websocketFailures: 0,\n sseFallbacks: 0,\n };\n websocketDebugStats.set(sessionId, stats);\n }\n return stats;\n}\nexport function getOpenAICodexWebSocketDebugStats(sessionId) {\n const stats = websocketDebugStats.get(sessionId);\n return stats ? { ...stats } : undefined;\n}\nexport function resetOpenAICodexWebSocketDebugStats(sessionId) {\n if (sessionId) {\n websocketDebugStats.delete(sessionId);\n websocketSseFallbackSessions.delete(sessionId);\n return;\n }\n websocketDebugStats.clear();\n websocketSseFallbackSessions.clear();\n}\nexport function closeOpenAICodexWebSocketSessions(sessionId) {\n const closeEntry = (entry) => {\n if (entry.idleTimer)\n clearTimeout(entry.idleTimer);\n closeWebSocketSilently(entry.socket, 1000, \"debug_close\");\n };\n if (sessionId) {\n const entry = websocketSessionCache.get(sessionId);\n if (entry)\n closeEntry(entry);\n websocketSessionCache.delete(sessionId);\n return;\n }\n for (const entry of websocketSessionCache.values()) {\n closeEntry(entry);\n }\n websocketSessionCache.clear();\n}\nregisterSessionResourceCleanup(closeOpenAICodexWebSocketSessions);\nfunction isWebSocketSseFallbackActive(sessionId) {\n return sessionId ? websocketSseFallbackSessions.has(sessionId) : false;\n}\nfunction recordWebSocketSseFallback(sessionId) {\n if (!sessionId)\n return;\n const stats = getOrCreateWebSocketDebugStats(sessionId);\n stats.sseFallbacks++;\n stats.websocketFallbackActive = isWebSocketSseFallbackActive(sessionId);\n}\nfunction recordWebSocketFailure(sessionId, error) {\n if (!sessionId)\n return;\n websocketSseFallbackSessions.add(sessionId);\n const stats = getOrCreateWebSocketDebugStats(sessionId);\n stats.websocketFailures++;\n stats.lastWebSocketError = formatThrownValue(error);\n stats.websocketFallbackActive = true;\n}\nlet _cachedWebsocket = null;\nasync function getWebSocketConstructor() {\n if (_cachedWebsocket)\n return _cachedWebsocket;\n // bun doesn't respect http proxy envs, ref: https://github.com/oven-sh/bun/issues/15489\n // TODO: remove this when bun supports proxy envs in websocket.\n if (process?.versions?.bun &&\n (process.env.HTTP_PROXY || process.env.HTTPS_PROXY || process.env.http_proxy || process.env.https_proxy)) {\n const m = await dynamicImport(\"proxy-from-env\");\n const getProxyForUrl = m.getProxyForUrl;\n _cachedWebsocket = class extends WebSocket {\n constructor(url, options) {\n let _opts = {};\n if (Array.isArray(options) || typeof options === \"string\") {\n _opts = { protocols: options };\n }\n else {\n _opts = { ...options };\n }\n const proxy = getProxyForUrl(url.toString().replace(/^wss:/, \"https:\").replace(/^ws:/, \"http:\"));\n super(url, { ..._opts, ...(proxy ? { proxy } : {}) });\n }\n };\n return _cachedWebsocket;\n }\n const ctor = globalThis.WebSocket;\n if (typeof ctor !== \"function\")\n return null;\n return ctor;\n}\nclass WebSocketCloseError extends Error {\n code;\n reason;\n wasClean;\n constructor(message, options) {\n super(message);\n this.name = \"WebSocketCloseError\";\n this.code = options?.code;\n this.reason = options?.reason;\n this.wasClean = options?.wasClean;\n }\n}\nfunction getWebSocketReadyState(socket) {\n const readyState = socket.readyState;\n return typeof readyState === \"number\" ? readyState : undefined;\n}\nfunction isWebSocketReusable(socket) {\n const readyState = getWebSocketReadyState(socket);\n // If readyState is unavailable, assume the runtime keeps it open/reusable.\n return readyState === undefined || readyState === 1;\n}\nfunction closeWebSocketSilently(socket, code = 1000, reason = \"done\") {\n try {\n socket.close(code, reason);\n }\n catch { }\n}\nfunction scheduleSessionWebSocketExpiry(sessionId, entry) {\n if (entry.idleTimer) {\n clearTimeout(entry.idleTimer);\n }\n entry.idleTimer = setTimeout(() => {\n if (entry.busy)\n return;\n closeWebSocketSilently(entry.socket, 1000, \"idle_timeout\");\n websocketSessionCache.delete(sessionId);\n }, SESSION_WEBSOCKET_CACHE_TTL_MS);\n}\nasync function connectWebSocket(url, headers, signal) {\n const WebSocketCtor = await getWebSocketConstructor();\n if (!WebSocketCtor) {\n throw new Error(\"WebSocket transport is not available in this runtime\");\n }\n const wsHeaders = headersToRecord(headers);\n delete wsHeaders[\"OpenAI-Beta\"];\n return new Promise((resolve, reject) => {\n let settled = false;\n let socket;\n try {\n socket = new WebSocketCtor(url, { headers: wsHeaders });\n }\n catch (error) {\n reject(error instanceof Error ? error : new Error(String(error)));\n return;\n }\n const onOpen = () => {\n if (settled)\n return;\n settled = true;\n cleanup();\n resolve(socket);\n };\n const onError = (event) => {\n const error = extractWebSocketError(event);\n if (settled)\n return;\n settled = true;\n cleanup();\n reject(error);\n };\n const onClose = (event) => {\n const error = extractWebSocketCloseError(event);\n if (settled)\n return;\n settled = true;\n cleanup();\n reject(error);\n };\n const onAbort = () => {\n if (settled)\n return;\n settled = true;\n cleanup();\n socket.close(1000, \"aborted\");\n reject(new Error(\"Request was aborted\"));\n };\n const cleanup = () => {\n socket.removeEventListener(\"open\", onOpen);\n socket.removeEventListener(\"error\", onError);\n socket.removeEventListener(\"close\", onClose);\n signal?.removeEventListener(\"abort\", onAbort);\n };\n socket.addEventListener(\"open\", onOpen);\n socket.addEventListener(\"error\", onError);\n socket.addEventListener(\"close\", onClose);\n signal?.addEventListener(\"abort\", onAbort);\n });\n}\nasync function acquireWebSocket(url, headers, sessionId, signal) {\n if (!sessionId) {\n const socket = await connectWebSocket(url, headers, signal);\n return {\n socket,\n reused: false,\n release: ({ keep } = {}) => {\n if (keep === false) {\n closeWebSocketSilently(socket);\n return;\n }\n closeWebSocketSilently(socket);\n },\n };\n }\n const cached = websocketSessionCache.get(sessionId);\n if (cached) {\n if (cached.idleTimer) {\n clearTimeout(cached.idleTimer);\n cached.idleTimer = undefined;\n }\n if (!cached.busy && isWebSocketReusable(cached.socket)) {\n cached.busy = true;\n return {\n socket: cached.socket,\n entry: cached,\n reused: true,\n release: ({ keep } = {}) => {\n if (!keep || !isWebSocketReusable(cached.socket)) {\n closeWebSocketSilently(cached.socket);\n websocketSessionCache.delete(sessionId);\n return;\n }\n cached.busy = false;\n scheduleSessionWebSocketExpiry(sessionId, cached);\n },\n };\n }\n if (cached.busy) {\n const socket = await connectWebSocket(url, headers, signal);\n return {\n socket,\n reused: false,\n release: () => {\n closeWebSocketSilently(socket);\n },\n };\n }\n if (!isWebSocketReusable(cached.socket)) {\n closeWebSocketSilently(cached.socket);\n websocketSessionCache.delete(sessionId);\n }\n }\n const socket = await connectWebSocket(url, headers, signal);\n const entry = { socket, busy: true };\n websocketSessionCache.set(sessionId, entry);\n return {\n socket,\n entry,\n reused: false,\n release: ({ keep } = {}) => {\n if (!keep || !isWebSocketReusable(entry.socket)) {\n closeWebSocketSilently(entry.socket);\n if (entry.idleTimer)\n clearTimeout(entry.idleTimer);\n if (websocketSessionCache.get(sessionId) === entry) {\n websocketSessionCache.delete(sessionId);\n }\n return;\n }\n entry.busy = false;\n scheduleSessionWebSocketExpiry(sessionId, entry);\n },\n };\n}\nfunction extractWebSocketError(event) {\n if (event && typeof event === \"object\") {\n const message = \"message\" in event ? event.message : undefined;\n if (typeof message === \"string\" && message.length > 0) {\n return new Error(message);\n }\n const nestedError = \"error\" in event ? event.error : undefined;\n if (nestedError instanceof Error && nestedError.message.length > 0) {\n return nestedError;\n }\n if (nestedError && typeof nestedError === \"object\" && \"message\" in nestedError) {\n const nestedMessage = nestedError.message;\n if (typeof nestedMessage === \"string\" && nestedMessage.length > 0) {\n return new Error(nestedMessage);\n }\n }\n }\n return new Error(\"WebSocket error\");\n}\nfunction extractWebSocketCloseError(event) {\n if (event && typeof event === \"object\") {\n const code = \"code\" in event ? event.code : undefined;\n const reason = \"reason\" in event ? event.reason : undefined;\n const wasClean = \"wasClean\" in event ? event.wasClean : undefined;\n const codeText = typeof code === \"number\" ? ` ${code}` : \"\";\n let reasonText = typeof reason === \"string\" && reason.length > 0 ? ` ${reason}` : \"\";\n if (!reasonText && code === WEBSOCKET_MESSAGE_TOO_BIG_CLOSE_CODE) {\n reasonText = \" message too big\";\n }\n return new WebSocketCloseError(`WebSocket closed${codeText}${reasonText}`.trim(), {\n code: typeof code === \"number\" ? code : undefined,\n reason: typeof reason === \"string\" && reason.length > 0 ? reason : undefined,\n wasClean: typeof wasClean === \"boolean\" ? wasClean : undefined,\n });\n }\n return new Error(\"WebSocket closed\");\n}\nasync function decodeWebSocketData(data) {\n if (typeof data === \"string\")\n return data;\n if (data instanceof ArrayBuffer) {\n return new TextDecoder().decode(new Uint8Array(data));\n }\n if (ArrayBuffer.isView(data)) {\n const view = data;\n return new TextDecoder().decode(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));\n }\n if (data && typeof data === \"object\" && \"arrayBuffer\" in data) {\n const blobLike = data;\n const arrayBuffer = await blobLike.arrayBuffer();\n return new TextDecoder().decode(new Uint8Array(arrayBuffer));\n }\n return null;\n}\nasync function* parseWebSocket(socket, signal) {\n const queue = [];\n let pending = null;\n let done = false;\n let failed = null;\n let sawCompletion = false;\n const wake = () => {\n if (!pending)\n return;\n const resolve = pending;\n pending = null;\n resolve();\n };\n const onMessage = (event) => {\n void (async () => {\n let text = null;\n try {\n if (!event || typeof event !== \"object\" || !(\"data\" in event))\n return;\n text = await decodeWebSocketData(event.data);\n if (!text)\n return;\n const parsed = JSON.parse(text);\n const type = typeof parsed.type === \"string\" ? parsed.type : \"\";\n if (type === \"response.completed\" || type === \"response.done\" || type === \"response.incomplete\") {\n sawCompletion = true;\n done = true;\n }\n queue.push(parsed);\n wake();\n }\n catch (cause) {\n failed = new CodexProtocolError(`Invalid Codex WebSocket JSON: ${formatThrownValue(cause)}`, {\n cause,\n payload: text,\n });\n done = true;\n wake();\n }\n })();\n };\n const onError = (event) => {\n failed = extractWebSocketError(event);\n done = true;\n wake();\n };\n const onClose = (event) => {\n if (sawCompletion) {\n done = true;\n wake();\n return;\n }\n if (!failed) {\n failed = extractWebSocketCloseError(event);\n }\n done = true;\n wake();\n };\n const onAbort = () => {\n failed = new Error(\"Request was aborted\");\n done = true;\n wake();\n };\n socket.addEventListener(\"message\", onMessage);\n socket.addEventListener(\"error\", onError);\n socket.addEventListener(\"close\", onClose);\n signal?.addEventListener(\"abort\", onAbort);\n try {\n while (true) {\n if (signal?.aborted) {\n throw new Error(\"Request was aborted\");\n }\n if (queue.length > 0) {\n yield queue.shift();\n continue;\n }\n if (done)\n break;\n await new Promise((resolve) => {\n pending = resolve;\n });\n }\n if (failed) {\n throw failed;\n }\n if (!sawCompletion) {\n throw new Error(\"WebSocket stream closed before response.completed\");\n }\n }\n finally {\n socket.removeEventListener(\"message\", onMessage);\n socket.removeEventListener(\"error\", onError);\n socket.removeEventListener(\"close\", onClose);\n signal?.removeEventListener(\"abort\", onAbort);\n }\n}\nfunction requestBodyWithoutInput(body) {\n const { input: _input, previous_response_id: _previousResponseId, ...rest } = body;\n return rest;\n}\nfunction responseInputsEqual(a, b) {\n return JSON.stringify(a ?? []) === JSON.stringify(b ?? []);\n}\nfunction requestBodiesMatchExceptInput(a, b) {\n return JSON.stringify(requestBodyWithoutInput(a)) === JSON.stringify(requestBodyWithoutInput(b));\n}\nfunction getCachedWebSocketInputDelta(body, continuation) {\n if (!requestBodiesMatchExceptInput(body, continuation.lastRequestBody)) {\n return undefined;\n }\n const currentInput = body.input ?? [];\n const baseline = [...(continuation.lastRequestBody.input ?? []), ...continuation.lastResponseItems];\n if (currentInput.length < baseline.length) {\n return undefined;\n }\n const prefix = currentInput.slice(0, baseline.length);\n if (!responseInputsEqual(prefix, baseline)) {\n return undefined;\n }\n return currentInput.slice(baseline.length);\n}\nfunction buildCachedWebSocketRequestBody(entry, body) {\n const continuation = entry.continuation;\n if (!continuation) {\n return body;\n }\n const delta = getCachedWebSocketInputDelta(body, continuation);\n if (!delta || !continuation.lastResponseId) {\n entry.continuation = undefined;\n return body;\n }\n return {\n ...body,\n previous_response_id: continuation.lastResponseId,\n input: delta,\n };\n}\nasync function* startWebSocketOutputOnFirstEvent(events, output, stream, onStart) {\n let started = false;\n for await (const event of events) {\n if (!started) {\n started = true;\n onStart();\n stream.push({ type: \"start\", partial: output });\n }\n yield event;\n }\n}\nasync function processWebSocketStream(url, body, headers, output, stream, model, onStart, options) {\n const { socket, entry, reused, release } = await acquireWebSocket(url, headers, options?.sessionId, options?.signal);\n let keepConnection = true;\n const useCachedContext = options?.transport === \"websocket-cached\" || options?.transport === \"auto\";\n // ChatGPT Codex Responses rejects `store: true` (\"Store must be set to false\").\n // WebSocket continuation still works via connection-scoped previous_response_id state.\n const fullBody = body;\n const requestBody = useCachedContext && entry ? buildCachedWebSocketRequestBody(entry, fullBody) : fullBody;\n const stats = options?.sessionId ? getOrCreateWebSocketDebugStats(options.sessionId) : undefined;\n if (stats) {\n stats.requests++;\n if (reused)\n stats.connectionsReused++;\n else\n stats.connectionsCreated++;\n if (useCachedContext)\n stats.cachedContextRequests++;\n if (requestBody.store === true)\n stats.storeTrueRequests++;\n stats.lastInputItems = requestBody.input?.length ?? 0;\n if (requestBody.previous_response_id) {\n stats.deltaRequests++;\n stats.lastDeltaInputItems = requestBody.input?.length ?? 0;\n stats.lastPreviousResponseId = requestBody.previous_response_id;\n }\n else {\n stats.fullContextRequests++;\n stats.lastDeltaInputItems = undefined;\n stats.lastPreviousResponseId = undefined;\n }\n }\n try {\n socket.send(JSON.stringify({ type: \"response.create\", ...requestBody }));\n await processResponsesStream(startWebSocketOutputOnFirstEvent(mapCodexEvents(parseWebSocket(socket, options?.signal)), output, stream, onStart), output, stream, model, {\n serviceTier: options?.serviceTier,\n resolveServiceTier: resolveCodexServiceTier,\n applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model),\n });\n if (options?.signal?.aborted) {\n keepConnection = false;\n }\n else if (useCachedContext && entry && output.responseId) {\n const responseItems = convertResponsesMessages(model, { messages: [output] }, CODEX_TOOL_CALL_PROVIDERS, {\n includeSystemPrompt: false,\n }).filter((item) => item.type !== \"function_call_output\");\n entry.continuation = {\n lastRequestBody: fullBody,\n lastResponseId: output.responseId,\n lastResponseItems: responseItems,\n };\n }\n }\n catch (error) {\n if (entry) {\n entry.continuation = undefined;\n }\n keepConnection = false;\n throw error;\n }\n finally {\n release({ keep: keepConnection });\n }\n}\n// ============================================================================\n// Error Handling\n// ============================================================================\nasync function parseErrorResponse(response) {\n const raw = await response.text();\n let message = raw || response.statusText || \"Request failed\";\n let friendlyMessage;\n try {\n const parsed = JSON.parse(raw);\n const err = parsed?.error;\n if (err) {\n const code = err.code || err.type || \"\";\n if (/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(code) || response.status === 429) {\n const plan = err.plan_type ? ` (${err.plan_type.toLowerCase()} plan)` : \"\";\n const mins = err.resets_at\n ? Math.max(0, Math.round((err.resets_at * 1000 - Date.now()) / 60000))\n : undefined;\n const when = mins !== undefined ? ` Try again in ~${mins} min.` : \"\";\n friendlyMessage = `You have hit your ChatGPT usage limit${plan}.${when}`.trim();\n }\n message = err.message || friendlyMessage || message;\n }\n }\n catch { }\n return { message, friendlyMessage };\n}\n// ============================================================================\n// Auth & Headers\n// ============================================================================\nfunction extractAccountId(token) {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3)\n throw new Error(\"Invalid token\");\n const payload = JSON.parse(atob(parts[1]));\n const accountId = payload?.[JWT_CLAIM_PATH]?.chatgpt_account_id;\n if (!accountId)\n throw new Error(\"No account ID in token\");\n return accountId;\n }\n catch {\n throw new Error(\"Failed to extract accountId from token\");\n }\n}\nfunction createCodexRequestId() {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n return `codex_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\n}\nfunction buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token) {\n const headers = new Headers(initHeaders);\n for (const [key, value] of Object.entries(additionalHeaders || {})) {\n headers.set(key, value);\n }\n headers.set(\"Authorization\", `Bearer ${token}`);\n headers.set(\"chatgpt-account-id\", accountId);\n headers.set(\"originator\", \"pi\");\n const userAgent = _os ? `pi (${_os.platform()} ${_os.release()}; ${_os.arch()})` : \"pi (browser)\";\n headers.set(\"User-Agent\", userAgent);\n return headers;\n}\nfunction buildSSEHeaders(initHeaders, additionalHeaders, accountId, token, sessionId) {\n const headers = buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token);\n headers.set(\"OpenAI-Beta\", \"responses=experimental\");\n headers.set(\"accept\", \"text/event-stream\");\n headers.set(\"content-type\", \"application/json\");\n if (sessionId) {\n headers.set(\"session_id\", sessionId);\n headers.set(\"x-client-request-id\", sessionId);\n }\n return headers;\n}\nfunction buildWebSocketHeaders(initHeaders, additionalHeaders, accountId, token, requestId) {\n const headers = buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token);\n headers.delete(\"accept\");\n headers.delete(\"content-type\");\n headers.delete(\"OpenAI-Beta\");\n headers.delete(\"openai-beta\");\n headers.set(\"OpenAI-Beta\", OPENAI_BETA_RESPONSES_WEBSOCKETS);\n headers.set(\"x-client-request-id\", requestId);\n headers.set(\"session_id\", requestId);\n return headers;\n}\n//# sourceMappingURL=openai-codex-responses.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { t as getEnvApiKey } from "./env-api-keys-CjsGqLnm.mjs";
2
+ import { t as getEnvApiKey } from "./env-api-keys-Dj0phNAZ.mjs";
3
3
  import { n as calculateCost, r as clampThinkingLevel, t as AssistantMessageEventStream } from "./event-stream-FOdgPz2L.mjs";
4
4
  import { t as headersToRecord } from "./headers-CFU1lxB-.mjs";
5
- import { n as parseStreamingJson } from "./json-parse-4wvL0yab.mjs";
5
+ import { n as parseStreamingJson } from "./json-parse-D7gmIw6y.mjs";
6
6
  import { t as sanitizeSurrogates } from "./sanitize-unicode-DH1T1t81.mjs";
7
7
  import { i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, r as isCloudflareProvider, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-DMo9BAWw.mjs";
8
8
  import { r as buildBaseOptions, t as transformMessages } from "./transform-messages-B-d7Y4P2.mjs";
@@ -713,4 +713,4 @@ function getCompat(model) {
713
713
  //#endregion
714
714
  export { convertMessages, streamOpenAICompletions, streamSimpleOpenAICompletions };
715
715
 
716
- //# sourceMappingURL=openai-completions-DtKMQJXz.mjs.map
716
+ //# sourceMappingURL=openai-completions-DaFkurXZ.mjs.map