keating 0.3.6 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli/main.js +3 -0
- package/dist/src/core/config.js +4 -1
- package/dist/src/core/evolution.js +3 -31
- package/dist/src/core/map-elites.js +2 -29
- package/dist/src/core/map.js +3 -1
- package/dist/src/core/mutation.js +29 -0
- package/dist/src/core/policy.js +40 -14
- package/dist/src/core/project.js +21 -23
- package/dist/src/core/topics.js +6 -1
- package/dist/src/pi/hyperteacher-extension.js +1 -1
- package/dist/src/runtime/pi.js +6 -1
- package/package.json +1 -1
- package/web/dist/assets/{anthropic-BT6Vfzb1.js → anthropic-mDOoXVZn.js} +1 -1
- package/web/dist/assets/arc-BgYOxBdg.js +1 -0
- package/web/dist/assets/architecture-YZFGNWBL-MLoSDt-a.js +1 -0
- package/web/dist/assets/architectureDiagram-Q4EWVU46-Yh6i8NsV.js +36 -0
- package/web/dist/assets/{azure-openai-responses-CommX3YJ.js → azure-openai-responses-lDjfaDoj.js} +1 -1
- package/web/dist/assets/band-mY0qgSES.js +1 -0
- package/web/dist/assets/blockDiagram-DXYQGD6D-DUOEnS09.js +132 -0
- package/web/dist/assets/{c4Diagram-AHTNJAMY-VFfRZWWA.js → c4Diagram-AHTNJAMY-XzNOUnLt.js} +6 -6
- package/web/dist/assets/channel-BumC_1wb.js +1 -0
- package/web/dist/assets/{chunk-2KRD3SAO-B-AqvS0u.js → chunk-2KRD3SAO-mLbXjVje.js} +1 -1
- package/web/dist/assets/chunk-336JU56O-CQcnUKNW.js +2 -0
- package/web/dist/assets/chunk-426QAEUC-AjoT_j_q.js +1 -0
- package/web/dist/assets/{chunk-4BX2VUAB-0Z13aFAn.js → chunk-4BX2VUAB-DRZjGMDM.js} +1 -1
- package/web/dist/assets/{chunk-4TB4RGXK-DqC0Zwm7.js → chunk-4TB4RGXK-CAwQq2uM.js} +6 -6
- package/web/dist/assets/chunk-55IACEB6-C19HKnvd.js +1 -0
- package/web/dist/assets/{chunk-5FUZZQ4R-CApli0xX.js → chunk-5FUZZQ4R-Bw3BFJJs.js} +31 -31
- package/web/dist/assets/chunk-5PVQY5BW-Ciel-YVc.js +2 -0
- package/web/dist/assets/{chunk-67CJDMHE-Cx7uJS4d.js → chunk-67CJDMHE-DNZKE79k.js} +1 -1
- package/web/dist/assets/{chunk-7N4EOEYR-CYPNsFus.js → chunk-7N4EOEYR-BGZXIfBD.js} +1 -1
- package/web/dist/assets/{chunk-AA7GKIK3-rU0uhR_u.js → chunk-AA7GKIK3-CLWjm_Gk.js} +1 -1
- package/web/dist/assets/{chunk-BSJP7CBP-5VmcfR4-.js → chunk-BSJP7CBP-DwT1eVSc.js} +1 -1
- package/web/dist/assets/{chunk-CIAEETIT-CHJ-L8H1.js → chunk-CIAEETIT-DaQsGVwH.js} +1 -1
- package/web/dist/assets/{chunk-EDXVE4YY-DZHAJjMI.js → chunk-EDXVE4YY-DNeRJTiS.js} +1 -1
- package/web/dist/assets/{chunk-ENJZ2VHE-DbUDFa7w.js → chunk-ENJZ2VHE-Crfow0Ab.js} +6 -6
- package/web/dist/assets/{chunk-FMBD7UC4-BsYE5e_h.js → chunk-FMBD7UC4-BWSstEYx.js} +1 -1
- package/web/dist/assets/{chunk-FOC6F5B3-Cm6aoTv7.js → chunk-FOC6F5B3-BrTsf5ix.js} +1 -1
- package/web/dist/assets/{chunk-ICPOFSXX-C5eNZ4L6.js → chunk-ICPOFSXX-C04NFfJk.js} +5 -5
- package/web/dist/assets/{chunk-K5T4RW27-R7dAJ4rq.js → chunk-K5T4RW27-C6ErEFB0.js} +1 -1
- package/web/dist/assets/{chunk-KGLVRYIC-MO99YZXL.js → chunk-KGLVRYIC-DWgMrjZr.js} +1 -1
- package/web/dist/assets/{chunk-LIHQZDEY-DUJ656sT.js → chunk-LIHQZDEY-D3DWGnJT.js} +1 -1
- package/web/dist/assets/{chunk-ORNJ4GCN-DXuuEC1n.js → chunk-ORNJ4GCN-D0nhq27e.js} +1 -1
- package/web/dist/assets/{chunk-OYMX7WX6-pJlEprWq.js → chunk-OYMX7WX6-CQLx0cU3.js} +5 -5
- package/web/dist/assets/chunk-QZHKN3VN-X2zPgEFk.js +1 -0
- package/web/dist/assets/{chunk-U2HBQHQK-Mh_l9PLe.js → chunk-U2HBQHQK-FqDOW_Dq.js} +6 -6
- package/web/dist/assets/{chunk-X2U36JSP-BOeiJW0w.js → chunk-X2U36JSP-DiSftNGg.js} +1 -1
- package/web/dist/assets/{chunk-XPW4576I-fQ9SDvr_.js → chunk-XPW4576I-CTCFDURY.js} +1 -1
- package/web/dist/assets/chunk-YZCP3GAM-BhxShnp0.js +1 -0
- package/web/dist/assets/chunk-ZZ45TVLE-DMfGJuPz.js +1 -0
- package/web/dist/assets/classDiagram-6PBFFD2Q-qESk_xyE.js +1 -0
- package/web/dist/assets/classDiagram-v2-HSJHXN6E-BM1nmtfm.js +1 -0
- package/web/dist/assets/clone-CVy2b825.js +1 -0
- package/web/dist/assets/cose-bilkent-S5V4N54A-BWrDpSLZ.js +1 -0
- package/web/dist/assets/custom-tts-DA7XkgNJ.js +1 -0
- package/web/dist/assets/dagre-C_Y5Jrtl.js +1 -0
- package/web/dist/assets/dagre-KV5264BT-DcrvRRX1.js +4 -0
- package/web/dist/assets/diagram-5BDNPKRD-BsChRck6.js +10 -0
- package/web/dist/assets/{diagram-G4DWMVQ6-CtICKUFi.js → diagram-G4DWMVQ6-raeAsgoe.js} +12 -12
- package/web/dist/assets/diagram-MMDJMWI5-CuKsP84I.js +43 -0
- package/web/dist/assets/diagram-TYMM5635-T7ILcS3d.js +24 -0
- package/web/dist/assets/dist-DQ41Rxbw.js +1 -0
- package/web/dist/assets/dist-oYdMaa1U.js +10 -0
- package/web/dist/assets/{erDiagram-SMLLAGMA-uT88sBlT.js → erDiagram-SMLLAGMA-C9z6kYxH.js} +6 -6
- package/web/dist/assets/{flatten-C-u5nd5-.js → flatten-n72VCU_F.js} +1 -1
- package/web/dist/assets/flowDiagram-DWJPFMVM-BA3HBIvp.js +162 -0
- package/web/dist/assets/ganttDiagram-T4ZO3ILL-BXKKRsbk.js +292 -0
- package/web/dist/assets/gemini-live-dK40vCc5.js +2 -0
- package/web/dist/assets/gitGraph-7Q5UKJZL-Cy0KloCM.js +1 -0
- package/web/dist/assets/gitGraphDiagram-UUTBAWPF-CfGAccI8.js +106 -0
- package/web/dist/assets/{google-BdYNeCP_.js → google-BdS4iTyC.js} +1 -1
- package/web/dist/assets/{google-gemini-cli-DpxAL3K4.js → google-gemini-cli-ECA0sP3z.js} +1 -1
- package/web/dist/assets/{google-shared-DyQdgtsI.js → google-shared-DFv4ubOG.js} +1 -1
- package/web/dist/assets/{google-vertex-CKRybaXj.js → google-vertex-Duei77qD.js} +1 -1
- package/web/dist/assets/graphlib-sK54_wxh.js +1 -0
- package/web/dist/assets/index-B_MGHHww.js +3187 -0
- package/web/dist/assets/index-C_k9n6xi.css +2 -0
- package/web/dist/assets/info-OMHHGYJF-DiTlPM51.js +1 -0
- package/web/dist/assets/{infoDiagram-42DDH7IO-BbES7X_c.js → infoDiagram-42DDH7IO-CXoykyfr.js} +1 -1
- package/web/dist/assets/init-DugVGdkd.js +1 -0
- package/web/dist/assets/{isEmpty-DssUW35f.js → isEmpty-Lz_aOZWI.js} +1 -1
- package/web/dist/assets/{ishikawaDiagram-UXIWVN3A-DxQ28rho.js → ishikawaDiagram-UXIWVN3A-BJieXVMt.js} +6 -6
- package/web/dist/assets/{journeyDiagram-VCZTEJTY-D0X8qQ0P.js → journeyDiagram-VCZTEJTY-CwCyrnqT.js} +6 -6
- package/web/dist/assets/{kanban-definition-6JOO6SKY-DWYfSlpl.js → kanban-definition-6JOO6SKY-8ACmDHsl.js} +1 -1
- package/web/dist/assets/line-BqZCcbso.js +1 -0
- package/web/dist/assets/linear-CXf5Bx3D.js +1 -0
- package/web/dist/assets/math-Csj_9zpx.js +1 -0
- package/web/dist/assets/{mermaid-parser.core-Cy4iY_Dy.js → mermaid-parser.core-C8ylgsWV.js} +2 -2
- package/web/dist/assets/mermaid.core-BHCT6V24.js +11 -0
- package/web/dist/assets/{mindmap-definition-QFDTVHPH-BBnKdtQh.js → mindmap-definition-QFDTVHPH-DrDAZL9Q.js} +1 -1
- package/web/dist/assets/{mistral-BWaUMIgd.js → mistral-BCIirCkW.js} +1 -1
- package/web/dist/assets/{openai-codex-responses-CHBgKhmb.js → openai-codex-responses-BgRTWVD_.js} +1 -1
- package/web/dist/assets/{openai-completions-kcXmmaHI.js → openai-completions-D5AUQEua.js} +1 -1
- package/web/dist/assets/openai-realtime-BCZmIToJ.js +1 -0
- package/web/dist/assets/{openai-responses-Cqq3H3p3.js → openai-responses-CTlQ1a-G.js} +1 -1
- package/web/dist/assets/{openai-responses-shared-CTNuo9ci.js → openai-responses-shared-CLzQyVyy.js} +1 -1
- package/web/dist/assets/openai-tts-BRg2goic.js +1 -0
- package/web/dist/assets/{ordinal-_K3x1fkz.js → ordinal-CHOvK70a.js} +1 -1
- package/web/dist/assets/ort.bundle.min-Drf2fDrC.js +2805 -0
- package/web/dist/assets/packet-4T2RLAQJ-EXgAtQjm.js +1 -0
- package/web/dist/assets/path-BVVvcbiy.js +1 -0
- package/web/dist/assets/pie-ZZUOXDRM-dKU8mzlj.js +1 -0
- package/web/dist/assets/pieDiagram-DEJITSTG-CSnulv9o.js +30 -0
- package/web/dist/assets/{quadrantDiagram-34T5L4WZ-DfBSEept.js → quadrantDiagram-34T5L4WZ-DiM-1bw4.js} +6 -6
- package/web/dist/assets/radar-PYXPWWZC-B4d2wh2H.js +1 -0
- package/web/dist/assets/{reduce-836A2NiQ.js → reduce-r7gP4wdg.js} +1 -1
- package/web/dist/assets/renderer-BHoCfdWO-BFpsm4dw.js +1 -0
- package/web/dist/assets/requirementDiagram-MS252O5E-CunJUnIN.js +84 -0
- package/web/dist/assets/{sankeyDiagram-XADWPNL6-He3x9tNT.js → sankeyDiagram-XADWPNL6-DaA_56zq.js} +7 -7
- package/web/dist/assets/{sequenceDiagram-FGHM5R23-DfCDpvrT.js → sequenceDiagram-FGHM5R23-CG_SeqVO.js} +13 -13
- package/web/dist/assets/speech-ZNExxXBR.js +2 -0
- package/web/dist/assets/src-BfaOho0B.js +1 -0
- package/web/dist/assets/state-CrA0YVPh-wJ4Rmm6M.js +27 -0
- package/web/dist/assets/stateDiagram-FHFEXIEX-CSUigMtP.js +1 -0
- package/web/dist/assets/stateDiagram-v2-QKLJ7IA2-CgpYzp7D.js +1 -0
- package/web/dist/assets/step-qalMyYGy.js +1 -0
- package/web/dist/assets/string-DPssBiak.js +1 -0
- package/web/dist/assets/supertonic-hDdNdgtO.js +2 -0
- package/web/dist/assets/time-DaCo2z7n.js +1 -0
- package/web/dist/assets/{timeline-definition-GMOUNBTQ-BWunHgBC.js → timeline-definition-GMOUNBTQ-DcMiH-gG.js} +7 -7
- package/web/dist/assets/transformers.web-R9eWI1xg.js +14 -0
- package/web/dist/assets/treeView-SZITEDCU-V29H5f16.js +1 -0
- package/web/dist/assets/treemap-W4RFUUIX-DsAU74TP.js +1 -0
- package/web/dist/assets/vennDiagram-DHZGUBPP-C6A75Q3q.js +34 -0
- package/web/dist/assets/wardley-RL74JXVD-lGAI4Cps.js +1 -0
- package/web/dist/assets/{wardleyDiagram-NUSXRM2D-DTcVscPH.js → wardleyDiagram-NUSXRM2D-XmYD0oYm.js} +1 -1
- package/web/dist/assets/xychartDiagram-5P7HB3ND-BgSoKcS9.js +7 -0
- package/web/dist/index.html +16 -3
- package/web/dist/sw.js +647 -1
- package/web/dist/workbox-2ae722a1.js +4390 -0
- package/web/dist/assets/arc-x2nTilpc.js +0 -1
- package/web/dist/assets/architecture-YZFGNWBL-B1hlUWjX.js +0 -1
- package/web/dist/assets/architectureDiagram-Q4EWVU46-CMApWFyw.js +0 -36
- package/web/dist/assets/blockDiagram-DXYQGD6D-DOQbsNRY.js +0 -132
- package/web/dist/assets/channel-KY2Tg8Ba.js +0 -1
- package/web/dist/assets/chunk-336JU56O-DlYgPyl6.js +0 -2
- package/web/dist/assets/chunk-426QAEUC-CsVoBkfR.js +0 -1
- package/web/dist/assets/chunk-55IACEB6-CWE_u-IY.js +0 -1
- package/web/dist/assets/chunk-5PVQY5BW-Cbzhfhln.js +0 -2
- package/web/dist/assets/chunk-QZHKN3VN-_pQxbbiW.js +0 -1
- package/web/dist/assets/chunk-YZCP3GAM-eboO4P5S.js +0 -1
- package/web/dist/assets/chunk-ZZ45TVLE-Cky0eqlr.js +0 -1
- package/web/dist/assets/classDiagram-6PBFFD2Q-DEPsZSU3.js +0 -1
- package/web/dist/assets/classDiagram-v2-HSJHXN6E-DhmIOEpX.js +0 -1
- package/web/dist/assets/clone-DeTzYqo8.js +0 -1
- package/web/dist/assets/cose-bilkent-S5V4N54A-N4zWUJ7C.js +0 -1
- package/web/dist/assets/dagre-IpK1aoMm.js +0 -1
- package/web/dist/assets/dagre-KV5264BT-DCytJuju.js +0 -4
- package/web/dist/assets/diagram-5BDNPKRD-Cv4miBae.js +0 -10
- package/web/dist/assets/diagram-MMDJMWI5-Cn7aGorh.js +0 -43
- package/web/dist/assets/diagram-TYMM5635-CCUWDPsC.js +0 -24
- package/web/dist/assets/dist-Dm98VvTW.js +0 -1
- package/web/dist/assets/flowDiagram-DWJPFMVM-Bl3O7S1m.js +0 -162
- package/web/dist/assets/ganttDiagram-T4ZO3ILL-B1FhwV45.js +0 -292
- package/web/dist/assets/gitGraph-7Q5UKJZL-Bc_7vzer.js +0 -1
- package/web/dist/assets/gitGraphDiagram-UUTBAWPF-DfW6svMS.js +0 -106
- package/web/dist/assets/graphlib-CMTVFyOZ.js +0 -1
- package/web/dist/assets/index-Bdb7P7gx.css +0 -2
- package/web/dist/assets/index-DNxepp8B.js +0 -2891
- package/web/dist/assets/info-OMHHGYJF-BGcxeaZt.js +0 -1
- package/web/dist/assets/init-DlZdxViB.js +0 -1
- package/web/dist/assets/line-CuHce5JG.js +0 -1
- package/web/dist/assets/linear-Ca0Vkwuj.js +0 -1
- package/web/dist/assets/mermaid.core-6PGkQdYc.js +0 -11
- package/web/dist/assets/packet-4T2RLAQJ-D35ZLSBH.js +0 -1
- package/web/dist/assets/path-6uRLdFF7.js +0 -1
- package/web/dist/assets/pie-ZZUOXDRM-DRoETpJX.js +0 -1
- package/web/dist/assets/pieDiagram-DEJITSTG-DfMjfTQz.js +0 -30
- package/web/dist/assets/radar-PYXPWWZC-DLKxRJ0V.js +0 -1
- package/web/dist/assets/requirementDiagram-MS252O5E-BPkxJQkz.js +0 -84
- package/web/dist/assets/src-DdOdIreR.js +0 -1
- package/web/dist/assets/stateDiagram-FHFEXIEX-fuww6347.js +0 -1
- package/web/dist/assets/stateDiagram-v2-QKLJ7IA2-U6voafO3.js +0 -1
- package/web/dist/assets/transformers.web-DKUtmSAi.js +0 -2818
- package/web/dist/assets/treeView-SZITEDCU-BCx0xSAm.js +0 -1
- package/web/dist/assets/treemap-W4RFUUIX-2CvghWJK.js +0 -1
- package/web/dist/assets/vennDiagram-DHZGUBPP-CBXRutSP.js +0 -34
- package/web/dist/assets/wardley-RL74JXVD-BkPL_mhd.js +0 -1
- package/web/dist/assets/xychartDiagram-5P7HB3ND-CZLgX9Fe.js +0 -7
- package/web/dist/workbox-66610c77.js +0 -1
- /package/web/dist/assets/{_baseFor-B_cjfMB6.js → _baseFor-2QgQJAzW.js} +0 -0
- /package/web/dist/assets/{array-B9UHiPd-.js → array-B4O_ir3H.js} +0 -0
- /package/web/dist/assets/{cytoscape.esm-BBMd0vGm.js → cytoscape.esm-CdzdaUMP.js} +0 -0
- /package/web/dist/assets/{defaultLocale-5eAKkKJC.js → defaultLocale-Bhb3osZR.js} +0 -0
- /package/web/dist/assets/{github-copilot-headers-L39QqneT.js → github-copilot-headers-BuUn5v2j.js} +0 -0
- /package/web/dist/assets/{hash-kZ2KD_no.js → hash-CQjDwcjR.js} +0 -0
- /package/web/dist/assets/{openai-D4NSaQIs.js → openai-CRGaNv9i.js} +0 -0
- /package/web/dist/assets/{rough.esm-Djo4Abte.js → rough.esm-D5NinLFK.js} +0 -0
- /package/web/dist/assets/{transform-messages-CqKEdRVp.js → transform-messages-DXDWLrnO.js} +0 -0
- /package/web/dist/assets/{web-CMKYLKbT.js → web-jLdm8a1-.js} +0 -0
package/web/dist/assets/{openai-codex-responses-CHBgKhmb.js → openai-codex-responses-BgRTWVD_.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./preload-helper-DSXbuxSR.js";import{t}from"./env-api-keys-BNlMKqxw.js";import{c as n,t as r}from"./event-stream-D33K9rpL.js";import{i,r as a}from"./transform-messages-
|
|
1
|
+
import{t as e}from"./preload-helper-DSXbuxSR.js";import{t}from"./env-api-keys-BNlMKqxw.js";import{c as n,t as r}from"./event-stream-D33K9rpL.js";import{i,r as a}from"./transform-messages-DXDWLrnO.js";import{n as o,r as s,t as c}from"./openai-responses-shared-CLzQyVyy.js";var l=null;typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(t=>e(()=>import(t),[]))(`node:os`).then(e=>{l=e});var u=`https://chatgpt.com/backend-api`,d=`https://api.openai.com/auth`,f=3,p=1e3,m=new Set([`openai`,`openai-codex`,`opencode`]),h=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function g(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function _(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}var v=(e,n,i)=>{let a=new r;return(async()=>{let r={role:`assistant`,content:[],api:`openai-codex-responses`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=i?.apiKey||t(e.provider)||``;if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=G(o),c=b(e,n,i),l=await i?.onPayload?.(c,e);l!==void 0&&(c=l);let u=i?.sessionId||K(),d=J(e.headers,i?.headers,s,o,i?.sessionId),m=Y(e.headers,i?.headers,s,o,u),h=JSON.stringify(c),v=i?.transport||`sse`;if(v!==`sse`){let t=!1;try{if(await U(C(e.baseUrl),c,m,r,a,e,()=>{t=!0},i),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:r.stopReason,message:r}),a.end();return}catch(e){if(v===`websocket`||t)throw e}}let y,x;for(let t=0;t<=f;t++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{if(y=await fetch(S(e.baseUrl),{method:`POST`,headers:d,body:h,signal:i?.signal}),y.ok)break;let n=await y.text();if(t<f&&g(y.status,n)){await _(p*2**t,i?.signal);continue}let r=await W(new Response(n,{status:y.status,statusText:y.statusText}));throw Error(r.friendlyMessage||r.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(x=e instanceof Error?e:Error(String(e)),t<f&&!x.message.includes(`usage limit`)){await _(p*2**t,i?.signal);continue}throw x}}if(!y?.ok)throw x??Error(`Failed after retries`);if(!y.body)throw Error(`No response body`);if(a.push({type:`start`,partial:r}),await w(y,r,a,e),i?.signal?.aborted)throw Error(`Request was aborted`);a.push({type:`done`,reason:r.stopReason,message:r}),a.end()}catch(e){r.stopReason=i?.signal?.aborted?`aborted`:`error`,r.errorMessage=e instanceof Error?e.message:String(e),a.push({type:`error`,reason:r.stopReason,error:r}),a.end()}})(),a},y=(e,r,o)=>{let s=o?.apiKey||t(e.provider);if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=a(e,o,s),l=n(e)?o?.reasoning:i(o?.reasoning);return v(e,r,{...c,reasoningEffort:l})};function b(e,t,n){let r=c(e,t,m,{includeSystemPrompt:!1}),i={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt,input:r,text:{verbosity:n?.textVerbosity||`medium`},include:[`reasoning.encrypted_content`],prompt_cache_key:n?.sessionId,tool_choice:`auto`,parallel_tool_calls:!0};return n?.temperature!==void 0&&(i.temperature=n.temperature),t.tools&&(i.tools=o(t.tools,{strict:null})),n?.reasoningEffort!==void 0&&(i.reasoning={effort:x(e.id,n.reasoningEffort),summary:n.reasoningSummary??`auto`}),i}function x(e,t){let n=e.includes(`/`)?e.split(`/`).pop():e;return(n.startsWith(`gpt-5.2`)||n.startsWith(`gpt-5.3`)||n.startsWith(`gpt-5.4`))&&t===`minimal`?`low`:n===`gpt-5.1`&&t===`xhigh`?`high`:n===`gpt-5.1-codex-mini`?t===`high`||t===`xhigh`?`high`:`medium`:t}function S(e){let t=(e&&e.trim().length>0?e:u).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function C(e){let t=new URL(S(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function w(e,t,n,r){await s(T(D(e)),t,n,r)}async function*T(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let e=t.code||``,n=t.message||``;throw Error(`Codex error: ${n||e||JSON.stringify(t)}`)}if(e===`response.failed`){let e=t.response?.error?.message;throw Error(e||`Codex response failed`)}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:E(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function E(e){if(typeof e==`string`)return h.has(e)?e:void 0}async function*D(e){if(!e.body)return;let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
|
|
2
2
|
|
|
3
3
|
`);for(;a!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=e.split(`
|
|
4
4
|
`).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./env-api-keys-BNlMKqxw.js";import{c as t,r as n,t as r}from"./event-stream-D33K9rpL.js";import{t as i}from"./json-parse-C6tSeIxX.js";import{a,i as o,r as s,t as c}from"./transform-messages-
|
|
1
|
+
import{t as e}from"./env-api-keys-BNlMKqxw.js";import{c as t,r as n,t as r}from"./event-stream-D33K9rpL.js";import{t as i}from"./json-parse-C6tSeIxX.js";import{a,i as o,r as s,t as c}from"./transform-messages-DXDWLrnO.js";import{n as l,t as u}from"./github-copilot-headers-BuUn5v2j.js";import{n as d}from"./openai-CRGaNv9i.js";function f(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}var p=(t,n,a)=>{let o=new r;return(async()=>{let r={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let s=h(t,n,a?.apiKey||e(t.provider)||``,a?.headers),c=g(t,n,a),l=await a?.onPayload?.(c,t);l!==void 0&&(c=l);let u=await s.chat.completions.create(c,{signal:a?.signal});o.push({type:`start`,partial:r});let d=null,f=r.content,p=()=>f.length-1,m=e=>{e&&(e.type===`text`?o.push({type:`text_end`,contentIndex:p(),content:e.text,partial:r}):e.type===`thinking`?o.push({type:`thinking_end`,contentIndex:p(),content:e.thinking,partial:r}):e.type===`toolCall`&&(e.arguments=i(e.partialArgs),delete e.partialArgs,o.push({type:`toolcall_end`,contentIndex:p(),toolCall:e,partial:r})))};for await(let e of u){if(!e||typeof e!=`object`)continue;r.responseId||=e.id,e.usage&&(r.usage=x(e.usage,t));let n=Array.isArray(e.choices)?e.choices[0]:void 0;if(n){if(!e.usage&&n.usage&&(r.usage=x(n.usage,t)),n.finish_reason){let e=S(n.finish_reason);r.stopReason=e.stopReason,e.errorMessage&&(r.errorMessage=e.errorMessage)}if(n.delta){n.delta.content!==null&&n.delta.content!==void 0&&n.delta.content.length>0&&((!d||d.type!==`text`)&&(m(d),d={type:`text`,text:``},r.content.push(d),o.push({type:`text_start`,contentIndex:p(),partial:r})),d.type===`text`&&(d.text+=n.delta.content,o.push({type:`text_delta`,contentIndex:p(),delta:n.delta.content,partial:r})));let e=[`reasoning_content`,`reasoning`,`reasoning_text`],t=null;for(let r of e)if(n.delta[r]!==null&&n.delta[r]!==void 0&&n.delta[r].length>0&&!t){t=r;break}if(t&&((!d||d.type!==`thinking`)&&(m(d),d={type:`thinking`,thinking:``,thinkingSignature:t},r.content.push(d),o.push({type:`thinking_start`,contentIndex:p(),partial:r})),d.type===`thinking`)){let e=n.delta[t];d.thinking+=e,o.push({type:`thinking_delta`,contentIndex:p(),delta:e,partial:r})}if(n?.delta?.tool_calls){for(let e of n.delta.tool_calls)if((!d||d.type!==`toolCall`||e.id&&d.id!==e.id)&&(m(d),d={type:`toolCall`,id:e.id||``,name:e.function?.name||``,arguments:{},partialArgs:``},r.content.push(d),o.push({type:`toolcall_start`,contentIndex:p(),partial:r})),d.type===`toolCall`){e.id&&(d.id=e.id),e.function?.name&&(d.name=e.function.name);let t=``;e.function?.arguments&&(t=e.function.arguments,d.partialArgs+=e.function.arguments,d.arguments=i(d.partialArgs)),o.push({type:`toolcall_delta`,contentIndex:p(),delta:t,partial:r})}}let a=n.delta.reasoning_details;if(a&&Array.isArray(a)){for(let e of a)if(e.type===`reasoning.encrypted`&&e.id&&e.data){let t=r.content.find(t=>t.type===`toolCall`&&t.id===e.id);t&&(t.thoughtSignature=JSON.stringify(e))}}}}}if(m(d),a?.signal?.aborted||r.stopReason===`aborted`)throw Error(`Request was aborted`);if(r.stopReason===`error`)throw Error(r.errorMessage||`Provider returned an error stop reason`);o.push({type:`done`,reason:r.stopReason,message:r}),o.end()}catch(e){for(let e of r.content)delete e.index;r.stopReason=a?.signal?.aborted?`aborted`:`error`,r.errorMessage=e instanceof Error?e.message:JSON.stringify(e);let t=e?.error?.metadata?.raw;t&&(r.errorMessage+=`\n${t}`),o.push({type:`error`,reason:r.stopReason,error:r}),o.end()}})(),o},m=(n,r,i)=>{let a=i?.apiKey||e(n.provider);if(!a)throw Error(`No API key for provider: ${n.provider}`);let c=s(n,i,a),l=t(n)?i?.reasoning:o(i?.reasoning),u=i?.toolChoice;return p(n,r,{...c,reasoningEffort:l,toolChoice:u})};function h(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function g(e,t,n){let r=w(e),i=y(e,t,r);v(e,i);let a={model:e.id,messages:i,stream:!0};if(r.supportsUsageInStreaming!==!1&&(a.stream_options={include_usage:!0}),r.supportsStore&&(a.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?a.max_tokens=n.maxTokens:a.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(a.temperature=n.temperature),t.tools?(a.tools=b(t.tools,r),r.zaiToolStream&&(a.tool_stream=!0)):f(t.messages)&&(a.tools=[]),n?.toolChoice&&(a.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen`&&e.reasoning)a.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)a.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort};else if(r.thinkingFormat===`openrouter`&&e.reasoning){let e=a;n?.reasoningEffort?e.reasoning={effort:_(n.reasoningEffort,r.reasoningEffortMap)}:e.reasoning={effort:`none`}}else n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort&&(a.reasoning_effort=_(n.reasoningEffort,r.reasoningEffortMap));if(e.baseUrl.includes(`openrouter.ai`)&&e.compat?.openRouterRouting&&(a.provider=e.compat.openRouterRouting),e.baseUrl.includes(`ai-gateway.vercel.sh`)&&e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),a.providerOptions={gateway:e}}}return a}function _(e,t){return t[e]??e}function v(e,t){if(!(e.provider!==`openrouter`||!e.id.startsWith(`anthropic/`)))for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role!==`user`&&n.role!==`assistant`)continue;let r=n.content;if(typeof r==`string`){n.content=[Object.assign({type:`text`,text:r},{cache_control:{type:`ephemeral`}})];return}if(Array.isArray(r))for(let e=r.length-1;e>=0;e--){let t=r[e];if(t?.type===`text`){Object.assign(t,{cache_control:{type:`ephemeral`}});return}}}}function y(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let[e]=t.split(`|`);return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,40)}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=c(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:a(t.systemPrompt)})}let s=null;for(let t=0;t<o.length;t++){let i=o[t];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&i.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`user`)if(typeof i.content==`string`)r.push({role:`user`,content:a(i.content)});else{let t=i.content.map(e=>e.type===`text`?{type:`text`,text:a(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}),n=e.input.includes(`image`)?t:t.filter(e=>e.type!==`image_url`);if(n.length===0)continue;r.push({role:`user`,content:n})}else if(i.role===`assistant`){let e={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},t=i.content.filter(e=>e.type===`text`).filter(e=>e.text&&e.text.trim().length>0);t.length>0&&(e.content=t.map(e=>a(e.text)).join(``));let o=i.content.filter(e=>e.type===`thinking`).filter(e=>e.thinking&&e.thinking.trim().length>0);if(o.length>0)if(n.requiresThinkingAsText){let t=o.map(e=>e.thinking).join(`
|
|
2
2
|
|
|
3
3
|
`),n=e.content;n?n.unshift({type:`text`,text:t}):e.content=[{type:`text`,text:t}]}else{let t=o[0].thinkingSignature;t&&t.length>0&&(e[t]=o.map(e=>e.thinking).join(`
|
|
4
4
|
`))}let s=i.content.filter(e=>e.type===`toolCall`);if(s.length>0){e.tool_calls=s.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let t=s.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);t.length>0&&(e.reasoning_details=t)}let c=e.content;if(!(c!=null&&c.length>0)&&!e.tool_calls)continue;r.push(e)}else if(i.role===`toolResult`){let i=[],c=t;for(;c<o.length&&o[c].role===`toolResult`;c++){let t=o[c],s=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./speech-ZNExxXBR.js";var t=[{value:`gpt-realtime`,label:`gpt-realtime (latest)`},{value:`gpt-realtime-mini`,label:`gpt-realtime-mini`},{value:`gpt-4o-realtime-preview-2024-12-17`,label:`gpt-4o-realtime-preview`},{value:`gpt-4o-mini-realtime-preview-2024-12-17`,label:`gpt-4o-mini-realtime-preview`}],n=[`alloy`,`ash`,`ballad`,`cedar`,`coral`,`echo`,`marin`,`sage`,`shimmer`,`verse`];async function r(e,t,n){let r=await fetch(`https://api.openai.com/v1/realtime/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`},body:JSON.stringify({model:t,voice:n,modalities:[`audio`,`text`]})});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`Realtime session mint failed (${r.status}): ${e.slice(0,200)||r.statusText}`)}let i=(await r.json()).client_secret?.value;if(!i)throw Error(`Realtime session mint returned no client_secret.value`);return i}async function i(e){if(typeof navigator>`u`||!navigator.mediaDevices?.getUserMedia)return null;try{let t=await navigator.mediaDevices.getUserMedia({audio:!0});return t.getAudioTracks().forEach(n=>e.addTrack(n,t)),t}catch(e){return console.warn(`[keating:realtime] microphone unavailable`,e),null}}async function a(t){let{utterance:n,settings:a,getApiKey:o,signal:s}=t,c=await o(`openai`);if(!c)throw Error(`No OpenAI API key configured. Add one in Settings → Providers & Models.`);let l=a.model||`gpt-realtime`,u=await r(c,l,n.voice||`marin`),d=new RTCPeerConnection,f=typeof document<`u`?document.createElement(`audio`):null;f&&(f.autoplay=!0,f.style.display=`none`,document.body.appendChild(f));let p=0,m=0,h=null,g=!1,_=()=>{if(!g){g=!0;try{d.close()}catch{}if(h?.getTracks().forEach(e=>e.stop()),f){try{f.pause()}catch{}f.srcObject=null,f.remove()}}};if(s?.aborted)throw _(),Error(`OpenAI Realtime aborted before start.`);s?.addEventListener(`abort`,_,{once:!0}),d.ontrack=e=>{p+=1,f&&e.streams[0]&&(f.srcObject=e.streams[0],f.play().then(()=>{m+=1}).catch(()=>{}))};let v=d.createDataChannel(`oai-events`);return a.microphoneEnabled&&(h=await i(d)),await new Promise(async(t,r)=>{let i=setTimeout(()=>{_(),r(Error(`OpenAI Realtime response timed out.`))},6e4);v.addEventListener(`open`,()=>{v.send(JSON.stringify({type:`response.create`,response:{modalities:[`audio`,`text`],instructions:`Speak this learner-facing line exactly. Affect: ${n.affect}. Pace: ${n.pace}.\n\n${n.text}`}}))}),v.addEventListener(`message`,e=>{try{let o=JSON.parse(e.data);o.type===`response.done`&&(clearTimeout(i),_(),t({audioChunks:p,playedChunks:m,transcript:n.text,warning:a.microphoneEnabled&&!h?`Microphone unavailable`:void 0})),o.type===`error`&&(clearTimeout(i),_(),r(Error(`Realtime error: ${o.error?.message??`unknown`}`)))}catch{}});try{e();let t=await d.createOffer();await d.setLocalDescription(t);let n=await fetch(`https://api.openai.com/v1/realtime?model=${encodeURIComponent(l)}`,{method:`POST`,headers:{Authorization:`Bearer ${u}`,"Content-Type":`application/sdp`},body:t.sdp});if(!n.ok)throw Error(`Realtime SDP exchange failed (${n.status})`);let r={type:`answer`,sdp:await n.text()};await d.setRemoteDescription(r)}catch(e){clearTimeout(i),_(),r(e)}})}var o={id:`openai-realtime`,label:`OpenAI Realtime`,kind:`duplex`,status:`preview`,description:`WebRTC duplex voice with OpenAI Realtime. Supports mic input when enabled. One-shot per utterance — long-lived sessions are a follow-up.`,models:t,voices:n,needsApiKey:`openai`,synthesize:a};export{o as openAIRealtimeProvider};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./env-api-keys-BNlMKqxw.js";import{c as t,t as n}from"./event-stream-D33K9rpL.js";import{i as r,r as i}from"./transform-messages-
|
|
1
|
+
import{t as e}from"./env-api-keys-BNlMKqxw.js";import{c as t,t as n}from"./event-stream-D33K9rpL.js";import{i as r,r as i}from"./transform-messages-DXDWLrnO.js";import{n as a,t as o}from"./github-copilot-headers-BuUn5v2j.js";import{n as s}from"./openai-CRGaNv9i.js";import{n as c,r as l,t as u}from"./openai-responses-shared-CLzQyVyy.js";var d=new Set([`openai`,`openai-codex`,`opencode`]);function f(e){return e||(typeof process<`u`&&{}.PI_CACHE_RETENTION===`long`?`long`:`short`)}function p(e,t){if(t===`long`&&e.includes(`api.openai.com`))return`24h`}var m=(t,r,i)=>{let a=new n;return(async()=>{let n={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=g(t,r,i?.apiKey||e(t.provider)||``,i?.headers),s=_(t,r,i),c=await i?.onPayload?.(s,t);c!==void 0&&(s=c);let u=await o.responses.create(s,i?.signal?{signal:i.signal}:void 0);if(a.push({type:`start`,partial:n}),await l(u,n,a,t,{serviceTier:i?.serviceTier,applyServiceTierPricing:y}),i?.signal?.aborted)throw Error(`Request was aborted`);if(n.stopReason===`aborted`||n.stopReason===`error`)throw Error(`An unknown error occurred`);a.push({type:`done`,reason:n.stopReason,message:n}),a.end()}catch(e){for(let e of n.content)delete e.index;n.stopReason=i?.signal?.aborted?`aborted`:`error`,n.errorMessage=e instanceof Error?e.message:JSON.stringify(e),a.push({type:`error`,reason:n.stopReason,error:n}),a.end()}})(),a},h=(n,a,o)=>{let s=o?.apiKey||e(n.provider);if(!s)throw Error(`No API key for provider: ${n.provider}`);let c=i(n,o,s),l=t(n)?o?.reasoning:r(o?.reasoning);return m(n,a,{...c,reasoningEffort:l})};function g(e,t,n,r){if(!n){if(!{}.OPENAI_API_KEY)throw Error(`OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.`);n={}.OPENAI_API_KEY}let i={...e.headers};if(e.provider===`github-copilot`){let e=a(t.messages),n=o({messages:t.messages,hasImages:e});Object.assign(i,n)}return r&&Object.assign(i,r),new s({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:i})}function _(e,t,n){let r=u(e,t,d),i=f(n?.cacheRetention),a={model:e.id,input:r,stream:!0,prompt_cache_key:i===`none`?void 0:n?.sessionId,prompt_cache_retention:p(e.baseUrl,i),store:!1};return n?.maxTokens&&(a.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(a.temperature=n?.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),t.tools&&(a.tools=c(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(a.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},a.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&(a.reasoning={effort:`none`})),a}function v(e){switch(e){case`flex`:return .5;case`priority`:return 2;default:return 1}}function y(e,t){let n=v(t);n!==1&&(e.cost.input*=n,e.cost.output*=n,e.cost.cacheRead*=n,e.cost.cacheWrite*=n,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{m as streamOpenAIResponses,h as streamSimpleOpenAIResponses};
|
package/web/dist/assets/{openai-responses-shared-CTNuo9ci.js → openai-responses-shared-CLzQyVyy.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./event-stream-D33K9rpL.js";import{t}from"./json-parse-C6tSeIxX.js";import{a as n,t as r}from"./transform-messages-
|
|
1
|
+
import{r as e}from"./event-stream-D33K9rpL.js";import{t}from"./json-parse-C6tSeIxX.js";import{a as n,t as r}from"./transform-messages-DXDWLrnO.js";import{t as i}from"./hash-CQjDwcjR.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let c=[],l=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},u=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},d=r(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return l(t);let[i,o]=t.split(`|`),s=l(i),c=r.provider!==e.provider||r.api!==e.api?u(o):l(o);return c.startsWith(`fc_`)||(c=l(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let r=e.reasoning?`developer`:`system`;c.push({role:r,content:n(t.systemPrompt)})}let f=0;for(let t of d){if(t.role===`user`)if(typeof t.content==`string`)c.push({role:`user`,content:[{type:`input_text`,text:n(t.content)}]});else{let r=t.content.map(e=>e.type===`text`?{type:`input_text`,text:n(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`}),i=e.input.includes(`image`)?r:r.filter(e=>e.type!==`input_image`);if(i.length===0)continue;c.push({role:`user`,content:i})}else if(t.role===`assistant`){let r=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);r.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=a?.id;s?s.length>64&&(s=`msg_${i(s)}`):s=`msg_${f}`,r.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:n(t.text),annotations:[]}],status:`completed`,id:s,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[n,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),r.push({type:`function_call`,id:a,call_id:n,name:t.name,arguments:JSON.stringify(t.arguments)})}if(r.length===0)continue;c.push(...r)}else if(t.role===`toolResult`){let r=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
`),i=t.content.some(e=>e.type===`image`),a=r.length>0,[o]=t.toolCallId.split(`|`),s;if(i&&e.input.includes(`image`)){let e=[];a&&e.push({type:`input_text`,text:n(r)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});s=e}else s=n(a?r:`(see attached image)`);c.push({type:`function_call_output`,call_id:o,output:s})}f++}return c}function c(e,t){let n=t?.strict===void 0?!1:t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n}))}async function l(n,r,i,o,s){let c=null,l=null,d=r.content,f=()=>d.length-1;for await(let d of n)if(d.type===`response.created`)r.responseId=d.response.id;else if(d.type===`response.output_item.added`){let e=d.item;e.type===`reasoning`?(c=e,l={type:`thinking`,thinking:``},r.content.push(l),i.push({type:`thinking_start`,contentIndex:f(),partial:r})):e.type===`message`?(c=e,l={type:`text`,text:``},r.content.push(l),i.push({type:`text_start`,contentIndex:f(),partial:r})):e.type===`function_call`&&(c=e,l={type:`toolCall`,id:`${e.call_id}|${e.id}`,name:e.name,arguments:{},partialJson:e.arguments||``},r.content.push(l),i.push({type:`toolcall_start`,contentIndex:f(),partial:r}))}else if(d.type===`response.reasoning_summary_part.added`)c&&c.type===`reasoning`&&(c.summary=c.summary||[],c.summary.push(d.part));else if(d.type===`response.reasoning_summary_text.delta`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=d.delta,e.text+=d.delta,i.push({type:`thinking_delta`,contentIndex:f(),delta:d.delta,partial:r}))}}else if(d.type===`response.reasoning_summary_part.done`){if(c?.type===`reasoning`&&l?.type===`thinking`){c.summary=c.summary||[];let e=c.summary[c.summary.length-1];e&&(l.thinking+=`
|
|
3
3
|
|
|
4
4
|
`,e.text+=`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e}from"./speech-ZNExxXBR.js";var t=[`alloy`,`ash`,`ballad`,`coral`,`echo`,`fable`,`nova`,`onyx`,`sage`,`shimmer`,`verse`],n=[{value:`gpt-4o-mini-tts`,label:`GPT-4o mini TTS (steerable)`},{value:`tts-1`,label:`tts-1 (fast)`},{value:`tts-1-hd`,label:`tts-1 HD (higher quality)`}];async function r(t){let{utterance:n,settings:r,getApiKey:i,signal:a}=t,o=await i(`openai`);if(!o)throw Error(`No OpenAI API key configured. Add one in Settings → Providers & Models.`);let s=r.model||`gpt-4o-mini-tts`,c={model:s,voice:n.voice,input:n.text,response_format:`mp3`};s===`gpt-4o-mini-tts`&&n.affect&&(c.instructions=`Speak with a ${n.affect} affect at a ${n.pace} pace.`);let l=await fetch(`https://api.openai.com/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${o}`},body:JSON.stringify(c),signal:a});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`OpenAI TTS request failed (${l.status}): ${e.slice(0,200)||l.statusText}`)}return{audioChunks:1,playedChunks:+!!await e(await l.blob()).catch(()=>!1),transcript:n.text}}var i={id:`openai-tts`,label:`OpenAI TTS`,kind:`tts`,status:`stable`,description:`OpenAI Audio TTS REST API. Steerable affect/pace on gpt-4o-mini-tts.`,models:n,voices:t,needsApiKey:`openai`,synthesize:r};export{i as openAITtsProvider};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{n as e}from"./init-DugVGdkd.js";var t=class extends Map{constructor(e,t=a){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(n(this,e))}has(e){return super.has(n(this,e))}set(e,t){return super.set(r(this,e),t)}delete(e){return super.delete(i(this,e))}};function n({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function r({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function i({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(n),e.delete(r)),n}function a(e){return typeof e==`object`&&e?e.valueOf():e}var o=Symbol(`implicit`);function s(){var n=new t,r=[],i=[],a=o;function c(e){let t=n.get(e);if(t===void 0){if(a!==o)return a;n.set(e,t=r.push(e)-1)}return i[t%i.length]}return c.domain=function(e){if(!arguments.length)return r.slice();r=[],n=new t;for(let t of e)n.has(t)||n.set(t,r.push(t)-1);return c},c.range=function(e){return arguments.length?(i=Array.from(e),c):i.slice()},c.unknown=function(e){return arguments.length?(a=e,c):a},c.copy=function(){return s(r,i).unknown(a)},e.apply(c,arguments),c}export{s as n,o as t};
|