blade-code 0.10.159 → 0.10.161

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 (135) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/chunk-05d9ff3r.js +14 -0
  3. package/dist/{chunk-erhaedch.js → chunk-06hkf59s.js} +1 -1
  4. package/dist/{chunk-k3ne93k8.js → chunk-0mr8nexh.js} +2 -2
  5. package/dist/{chunk-tya95jej.js → chunk-0tzecdv3.js} +1 -1
  6. package/dist/{chunk-w1x8d19a.js → chunk-1017ck9e.js} +1 -1
  7. package/dist/{chunk-74yxkkne.js → chunk-1excdv7t.js} +2 -2
  8. package/dist/chunk-1yq72zb7.js +8 -0
  9. package/dist/{chunk-jsv3e4k6.js → chunk-2f8d0km4.js} +1 -1
  10. package/dist/{chunk-5q4z0sfr.js → chunk-2mk914vk.js} +2 -2
  11. package/dist/{chunk-ht8epjz2.js → chunk-30x3mcsb.js} +2 -2
  12. package/dist/{chunk-ewwrss2w.js → chunk-3kszepm6.js} +1 -1
  13. package/dist/chunk-3tm59hw3.js +1 -0
  14. package/dist/{chunk-28tzj187.js → chunk-3y2x6fb6.js} +1 -1
  15. package/dist/{chunk-9kj19a8t.js → chunk-4cdk4mds.js} +1 -1
  16. package/dist/{chunk-7xtxvrh8.js → chunk-4wx5sya5.js} +1 -1
  17. package/dist/{chunk-7wcxjbyg.js → chunk-50vwafn5.js} +1 -1
  18. package/dist/{chunk-9xbwtjac.js → chunk-53fc0yrq.js} +1 -1
  19. package/dist/chunk-5d7sxpvh.js +1 -0
  20. package/dist/chunk-5v0jcyea.js +2 -0
  21. package/dist/chunk-66wk3exc.js +1 -0
  22. package/dist/{chunk-g6v3ff0v.js → chunk-7veb9t8x.js} +2 -2
  23. package/dist/{chunk-9c0yfd4s.js → chunk-9q2ftpdv.js} +3 -3
  24. package/dist/{chunk-z7m4yh1n.js → chunk-9yjbzeep.js} +1 -1
  25. package/dist/{chunk-mt26v0vg.js → chunk-a6wkam4s.js} +1 -1
  26. package/dist/{chunk-spyyvqq4.js → chunk-bp45c17b.js} +1 -1
  27. package/dist/chunk-cmrtbnhs.js +1 -0
  28. package/dist/{chunk-42y6ks44.js → chunk-d420fs8m.js} +1 -1
  29. package/dist/{chunk-n34qsnks.js → chunk-ddvdc2p0.js} +1 -1
  30. package/dist/{chunk-sdapqhj0.js → chunk-eg3ms291.js} +1 -1
  31. package/dist/chunk-f8g9wwa5.js +1 -0
  32. package/dist/chunk-fdt6w600.js +1 -0
  33. package/dist/{chunk-67pa42n8.js → chunk-fws2cnbp.js} +2 -2
  34. package/dist/{chunk-zrgfvc4k.js → chunk-g01mth5d.js} +2 -2
  35. package/dist/{chunk-dd4gev98.js → chunk-hxyf4erv.js} +3 -3
  36. package/dist/{chunk-0b67y4j1.js → chunk-j8hbddjp.js} +2 -2
  37. package/dist/{chunk-v1mamd1x.js → chunk-jj4ggb04.js} +2 -2
  38. package/dist/{chunk-kp77mfmv.js → chunk-jw75y9sy.js} +1 -1
  39. package/dist/{chunk-b17d67gc.js → chunk-jz8355xa.js} +2 -2
  40. package/dist/{chunk-yb72nbfx.js → chunk-k0bcdhww.js} +1 -1
  41. package/dist/chunk-k48xg585.js +1 -0
  42. package/dist/{chunk-qq308eks.js → chunk-k67yh6be.js} +2 -2
  43. package/dist/{chunk-f2y0gxyq.js → chunk-kqvzmnja.js} +2 -2
  44. package/dist/{chunk-sd9bze9x.js → chunk-kv458q06.js} +1 -1
  45. package/dist/{chunk-9tk6wq70.js → chunk-kvp523gt.js} +1 -1
  46. package/dist/{chunk-kzrd648a.js → chunk-m0ztysws.js} +2 -2
  47. package/dist/{chunk-5w1bzrx1.js → chunk-mcnptqmc.js} +2 -2
  48. package/dist/{chunk-2z9hxxw9.js → chunk-mpk5qqnv.js} +1 -1
  49. package/dist/{chunk-t8w6s1te.js → chunk-n2qhccts.js} +2 -2
  50. package/dist/chunk-n6mv8p83.js +1 -0
  51. package/dist/{chunk-f97vk8pq.js → chunk-nb6h0709.js} +1 -1
  52. package/dist/{chunk-v67st2xb.js → chunk-nheny8xp.js} +2 -2
  53. package/dist/{chunk-w1h35604.js → chunk-pe3nhf71.js} +2 -2
  54. package/dist/chunk-pzqy0x7r.js +1 -0
  55. package/dist/{chunk-asjbhtpk.js → chunk-q1c70ep2.js} +1 -1
  56. package/dist/chunk-q47gn49w.js +1 -0
  57. package/dist/chunk-q8gmxcj2.js +1 -0
  58. package/dist/{chunk-gm2yfq3r.js → chunk-rvs364rz.js} +2 -2
  59. package/dist/{chunk-xxktawex.js → chunk-sqtt43cv.js} +2 -2
  60. package/dist/{chunk-7xhw74hk.js → chunk-t0gm0pn1.js} +1 -1
  61. package/dist/chunk-tntnsg2z.js +1 -0
  62. package/dist/{chunk-gfr6qac3.js → chunk-tv8wq9ze.js} +5 -5
  63. package/dist/chunk-vaj59nf7.js +1 -0
  64. package/dist/{chunk-hv8nt7wj.js → chunk-vbjgcn49.js} +1 -1
  65. package/dist/{chunk-0bqt0wgm.js → chunk-vt4a2j8d.js} +1 -1
  66. package/dist/{chunk-n9819k4p.js → chunk-vw9paban.js} +1 -1
  67. package/dist/{chunk-y72z40kh.js → chunk-vz147wy3.js} +1 -1
  68. package/dist/{chunk-fx9vm1n5.js → chunk-w33zjw8m.js} +2 -2
  69. package/dist/{chunk-53vh6vpt.js → chunk-wcps5gjm.js} +1 -1
  70. package/dist/chunk-wgykr4we.js +10 -0
  71. package/dist/{chunk-wxtb8n1j.js → chunk-wqzwq701.js} +2 -2
  72. package/dist/chunk-xm9cmg6m.js +171 -0
  73. package/dist/{chunk-jbpasjg9.js → chunk-xmymx75h.js} +1 -1
  74. package/dist/{chunk-vz13c7fr.js → chunk-y5wngtz0.js} +2 -2
  75. package/dist/{chunk-age2q38q.js → chunk-z9ebxd1x.js} +1 -1
  76. package/dist/{chunk-pv6cgfv1.js → chunk-zj1g4nbq.js} +1 -1
  77. package/dist/{chunk-wm896gnx.js → chunk-zzvs471p.js} +1 -1
  78. package/dist/web/assets/ChatView-er_sxPPR.js +70 -0
  79. package/dist/web/assets/{CodeBlockHighlighter-BpPOUcO7.js → CodeBlockHighlighter-y0h2qpHE.js} +1 -1
  80. package/dist/web/assets/{FilePreview-DXGkgNrQ.js → FilePreview-D3mhQ088.js} +14 -19
  81. package/dist/web/assets/{KanbanBoard-MYvqGgQH.js → KanbanBoard-CVg8k1mE.js} +2 -2
  82. package/dist/web/assets/{MarkdownRenderer-CXDrI3kX.js → MarkdownRenderer-CNBuegIp.js} +3 -3
  83. package/dist/web/assets/{ScrollArea-DocDa_rN.js → ScrollArea-nKClMHtv.js} +1 -1
  84. package/dist/web/assets/{SessionHistorySurface-D4Hxlpnr.js → SessionHistorySurface-DxS7TPaS.js} +1 -1
  85. package/dist/web/assets/{SettingsModal-ROSA92Eo.js → SettingsModal-CUn7pWF9.js} +1 -1
  86. package/dist/web/assets/{Sidebar-ByhqdRdj.js → Sidebar-CfxwNI2v.js} +1 -1
  87. package/dist/web/assets/TaskSwitcher-CSoJ4y5B.js +26 -0
  88. package/dist/web/assets/{TerminalPanel-czvVuMgl.js → TerminalPanel-BQuhnBca.js} +2 -2
  89. package/dist/web/assets/{archive-BwNnCDDQ.js → archive-BboAmbOv.js} +1 -1
  90. package/dist/web/assets/{arrow-left-Dc9lvaeD.js → arrow-left-DAUtSPbk.js} +1 -1
  91. package/dist/web/assets/{calendar-clock-o0GyQ0Np.js → calendar-clock-Vl0t-Nd3.js} +1 -1
  92. package/dist/web/assets/{chevron-right-CgHjrrmB.js → chevron-right-CF4tZJv_.js} +1 -1
  93. package/dist/web/assets/{clock-3-BB58ITKo.js → clock-3-UujBmwyg.js} +1 -1
  94. package/dist/web/assets/{copy-o_KiXkAh.js → copy-DqhAOOxU.js} +1 -1
  95. package/dist/web/assets/{download-BBtK3WHk.js → download-9K17cUAi.js} +1 -1
  96. package/dist/web/assets/{external-link-smSBd9oE.js → external-link-ZWYy4pMB.js} +1 -1
  97. package/dist/web/assets/{folder-BJP6kIlC.js → folder-CWkv_E0L.js} +1 -1
  98. package/dist/web/assets/index-C6zClU0B.js +211 -0
  99. package/dist/web/assets/index-CaCifsSK.css +1 -0
  100. package/dist/web/assets/message-square-plus-DOcUaurY.js +21 -0
  101. package/dist/web/assets/{pause-yqaK1hvk.js → pause-CvRQWY37.js} +1 -1
  102. package/dist/web/assets/{pencil-BZbDnyg2.js → pencil-CrKIc9az.js} +1 -1
  103. package/dist/web/assets/{play-WQ7288Ky.js → play-DN4KhXKM.js} +1 -1
  104. package/dist/web/assets/{plus-veQ2IAZx.js → plus-jGKGKGzn.js} +1 -1
  105. package/dist/web/assets/{session-events-Dwyp0AVI.js → session-events-aq2qdB3u.js} +25 -25
  106. package/dist/web/assets/{settings-B8xvrdSb.js → settings-DkVTw2qw.js} +1 -1
  107. package/dist/web/assets/{team-BrF46S7E.js → team-BBLJq3rO.js} +1 -1
  108. package/dist/web/assets/teamService-B6W5r_Z_.js +1 -0
  109. package/dist/web/assets/{terminal-BrqsCKf2.js → terminal-C30CbzhP.js} +1 -1
  110. package/dist/web/index.html +2 -2
  111. package/package.json +1 -1
  112. package/dist/chunk-1ms4x6yd.js +0 -1
  113. package/dist/chunk-514va7ce.js +0 -2
  114. package/dist/chunk-aka7w2bf.js +0 -1
  115. package/dist/chunk-cwk0r8wh.js +0 -1
  116. package/dist/chunk-dc2p24y5.js +0 -1
  117. package/dist/chunk-enf0egke.js +0 -1
  118. package/dist/chunk-es4aaeqw.js +0 -14
  119. package/dist/chunk-fszezcm7.js +0 -1
  120. package/dist/chunk-gjd5f281.js +0 -1
  121. package/dist/chunk-j7784bxm.js +0 -1
  122. package/dist/chunk-k1tfry97.js +0 -5
  123. package/dist/chunk-kvgxt3sw.js +0 -1
  124. package/dist/chunk-n42cnhzv.js +0 -1
  125. package/dist/chunk-smkxpfnk.js +0 -1
  126. package/dist/chunk-vbb7tn8t.js +0 -1
  127. package/dist/chunk-vbgb5j6x.js +0 -10
  128. package/dist/chunk-yd2qz6ts.js +0 -171
  129. package/dist/chunk-zqjm9yd8.js +0 -1
  130. package/dist/web/assets/ChatView-DYpMrwtA.js +0 -63
  131. package/dist/web/assets/TaskSwitcher-Dbo20Tim.js +0 -26
  132. package/dist/web/assets/chevrons-up-down-zQ_UZWV9.js +0 -16
  133. package/dist/web/assets/index-RGoMvYl5.css +0 -1
  134. package/dist/web/assets/index-pqMcowCZ.js +0 -203
  135. package/dist/web/assets/teamService-fDnXqw4L.js +0 -1
@@ -1,2 +1,2 @@
1
- import{vg as B}from"./chunk-7wcxjbyg.js";import{Oj as Y}from"./chunk-0b67y4j1.js";import{Rj as Z,Uj as $}from"./chunk-9kj19a8t.js";import{createHash as H}from"node:crypto";var N="fast-mode-2026-02-01";function R(q,x,z){if(x.api!=="anthropic-messages"||z.providerValue!=="fast")return q;let J={...q},w=Object.keys(J).find((G)=>G.toLowerCase()==="anthropic-beta")??"anthropic-beta",Q=new Set((J[w]??"").split(",").map((G)=>G.trim()).filter(Boolean));return Q.add(N),J[w]=[...Q].join(","),J}function D(q){return`BLADE_MODEL_API_KEY_${H("sha256").update(q).digest("hex").slice(0,32).toUpperCase()}`}function F(q,x){if(!q.fallbackModels?.length)return;return q.fallbackModels.map((z)=>{let J=(x.models??[]).filter((G)=>G.provider===z.provider&&G.model===z.model),w=z.configId?(x.models??[]).find((G)=>G.id===z.configId):J.length===1?J[0]:void 0;if(z.configId&&!w)throw Error(`Unknown fallback model config ID: ${z.configId}`);if(w&&(w.provider!==z.provider||w.model!==z.model))throw Error(`Fallback model config ${w.id} does not match ${z.provider}/${z.model}`);if(!z.configId&&J.length>1)throw Error(`Fallback model ${z.provider}/${z.model} is ambiguous; set configId`);if(!w)return z;let Q=w.provider===q.provider;return{...z,configId:w.id,channel:{apiKey:process.env[D(w.id)]??(Q?process.env.BLADE_API_KEY:void 0),baseUrl:w.overrides?.baseUrl??(Q?process.env.BLADE_BASE_URL:void 0),temperature:w.overrides?.temperature??x.temperature,maxOutputTokens:w.overrides?.maxOutputTokens,timeout:w.overrides?.timeout??x.timeout,streamIdleTimeout:w.overrides?.streamIdleTimeout,apiVersion:w.overrides?.apiVersion,customHeaders:w.overrides?.customHeaders,enablePromptCaching:w.overrides?.enablePromptCaching}}})}function h(q,x,z,J=Y(),w="auto",Q="auto"){let G=J.resolveConfig(q),U=B(G,z),W=$(G,w),X=Z(G,Q),L=q.overrides;return{config:q,model:G,displayName:q.displayName??G.name,chat:{provider:q.provider,model:q.model,apiKey:process.env[D(q.id)]??process.env.BLADE_API_KEY,baseUrl:process.env.BLADE_BASE_URL??L?.baseUrl,temperature:L?.temperature??x.temperature,maxContextTokens:G.contextWindow,maxOutputTokens:L?.maxOutputTokens,timeout:L?.timeout??x.timeout,streamIdleTimeout:L?.streamIdleTimeout,reasoningEnabled:U.effective!=="off",...U.effective==="off"?{}:{reasoningEffort:U.effective},...W.providerValue?{serviceTier:W.providerValue}:{},...X.providerValue?{responseVerbosity:X.providerValue}:{},fallbackModels:F(q,x),enablePromptCaching:L?.enablePromptCaching,customHeaders:R(L?.customHeaders,G,W),apiVersion:L?.apiVersion,maxRetries:L?.maxRetries,providerCircuitBreakerOpenMs:x.providerCircuitBreakerOpenMs,providerRequestConcurrency:x.providerRequestConcurrency,providerGlobalConcurrency:x.providerGlobalConcurrency,providerOwnerConcurrency:x.providerOwnerConcurrency,providerRequestAdmissionMs:x.providerRequestAdmissionMs,providerRequestPendingBytes:x.providerRequestPendingBytes,modelCatalog:J},reasoning:U,serviceTier:W,responseVerbosity:X}}function j(q,x=Y()){try{return q.displayName??x.getModel(q.provider,q.model).name}catch{return q.displayName??q.model}}
2
- export{D as rg,h as sg,j as tg};
1
+ import{wg as B}from"./chunk-50vwafn5.js";import{Pj as Y}from"./chunk-j8hbddjp.js";import{Sj as Z,Vj as $}from"./chunk-4cdk4mds.js";import{createHash as H}from"node:crypto";var N="fast-mode-2026-02-01";function R(q,x,z){if(x.api!=="anthropic-messages"||z.providerValue!=="fast")return q;let J={...q},w=Object.keys(J).find((G)=>G.toLowerCase()==="anthropic-beta")??"anthropic-beta",Q=new Set((J[w]??"").split(",").map((G)=>G.trim()).filter(Boolean));return Q.add(N),J[w]=[...Q].join(","),J}function D(q){return`BLADE_MODEL_API_KEY_${H("sha256").update(q).digest("hex").slice(0,32).toUpperCase()}`}function F(q,x){if(!q.fallbackModels?.length)return;return q.fallbackModels.map((z)=>{let J=(x.models??[]).filter((G)=>G.provider===z.provider&&G.model===z.model),w=z.configId?(x.models??[]).find((G)=>G.id===z.configId):J.length===1?J[0]:void 0;if(z.configId&&!w)throw Error(`Unknown fallback model config ID: ${z.configId}`);if(w&&(w.provider!==z.provider||w.model!==z.model))throw Error(`Fallback model config ${w.id} does not match ${z.provider}/${z.model}`);if(!z.configId&&J.length>1)throw Error(`Fallback model ${z.provider}/${z.model} is ambiguous; set configId`);if(!w)return z;let Q=w.provider===q.provider;return{...z,configId:w.id,channel:{apiKey:process.env[D(w.id)]??(Q?process.env.BLADE_API_KEY:void 0),baseUrl:w.overrides?.baseUrl??(Q?process.env.BLADE_BASE_URL:void 0),temperature:w.overrides?.temperature??x.temperature,maxOutputTokens:w.overrides?.maxOutputTokens,timeout:w.overrides?.timeout??x.timeout,streamIdleTimeout:w.overrides?.streamIdleTimeout,apiVersion:w.overrides?.apiVersion,customHeaders:w.overrides?.customHeaders,enablePromptCaching:w.overrides?.enablePromptCaching}}})}function h(q,x,z,J=Y(),w="auto",Q="auto"){let G=J.resolveConfig(q),U=B(G,z),W=$(G,w),X=Z(G,Q),L=q.overrides;return{config:q,model:G,displayName:q.displayName??G.name,chat:{provider:q.provider,model:q.model,apiKey:process.env[D(q.id)]??process.env.BLADE_API_KEY,baseUrl:process.env.BLADE_BASE_URL??L?.baseUrl,temperature:L?.temperature??x.temperature,maxContextTokens:G.contextWindow,maxOutputTokens:L?.maxOutputTokens,timeout:L?.timeout??x.timeout,streamIdleTimeout:L?.streamIdleTimeout,reasoningEnabled:U.effective!=="off",...U.effective==="off"?{}:{reasoningEffort:U.effective},...W.providerValue?{serviceTier:W.providerValue}:{},...X.providerValue?{responseVerbosity:X.providerValue}:{},fallbackModels:F(q,x),enablePromptCaching:L?.enablePromptCaching,customHeaders:R(L?.customHeaders,G,W),apiVersion:L?.apiVersion,maxRetries:L?.maxRetries,providerCircuitBreakerOpenMs:x.providerCircuitBreakerOpenMs,providerRequestConcurrency:x.providerRequestConcurrency,providerGlobalConcurrency:x.providerGlobalConcurrency,providerOwnerConcurrency:x.providerOwnerConcurrency,providerRequestAdmissionMs:x.providerRequestAdmissionMs,providerRequestPendingBytes:x.providerRequestPendingBytes,modelCatalog:J},reasoning:U,serviceTier:W,responseVerbosity:X}}function j(q,x=Y()){try{return q.displayName??x.getModel(q.provider,q.model).name}catch{return q.displayName??q.model}}
2
+ export{D as sg,h as tg,j as ug};
@@ -1,3 +1,3 @@
1
- import{j as i}from"./chunk-pv6cgfv1.js";import{aj as s}from"./chunk-jsv3e4k6.js";import"./chunk-7xtxvrh8.js";import"./chunk-sdapqhj0.js";import m from"node:path";var r={registry:i,currentWorkspace:s,inputCwd:()=>process.cwd(),write:console.log};function c(t,e){return m.resolve(e.inputCwd(),t)}function p(t){return t.map((e)=>{let o=e.isCurrent?"*":" ",n=e.gitBranch?` · ${e.gitBranch}`:"",d=e.available?"":" · unavailable";return`${o} ${e.name}${n}${d}
1
+ import{j as i}from"./chunk-zj1g4nbq.js";import{bj as s}from"./chunk-2f8d0km4.js";import"./chunk-4wx5sya5.js";import"./chunk-eg3ms291.js";import m from"node:path";var r={registry:i,currentWorkspace:s,inputCwd:()=>process.cwd(),write:console.log};function c(t,e){return m.resolve(e.inputCwd(),t)}function p(t){return t.map((e)=>{let o=e.isCurrent?"*":" ",n=e.gitBranch?` · ${e.gitBranch}`:"",d=e.available?"":" · unavailable";return`${o} ${e.name}${n}${d}
2
2
  ${e.path}`}).join(`
3
3
  `)}async function l(t,e=r){let o=await e.registry.list(e.currentWorkspace());return e.write(t.json?JSON.stringify(o,null,2):p(o)),o}async function u(t,e=r){let o=await e.registry.bind(c(t.path,e),e.currentWorkspace());return e.write(t.json?JSON.stringify(o,null,2):`Bound project: ${o.path}`),o}async function j(t,e=r){let o=c(t.path,e),n=await e.registry.unbind(o);return e.write(t.json?JSON.stringify({path:o,removed:n},null,2):n?`Unbound project: ${o}`:`Project was not bound: ${o}`),n}var a={type:"boolean",default:!1,describe:"Print machine-readable JSON"},P={command:"list",aliases:["ls"],describe:"List bound projects",builder:(t)=>t.option("json",a),handler:async(t)=>{await l(t)}},b={command:"add <path>",aliases:["bind"],describe:"Bind a project folder",builder:(t)=>t.positional("path",{type:"string",demandOption:!0,describe:"Absolute or relative project folder"}).option("json",a),handler:async(t)=>{await u(t)}},h={command:"remove <path>",aliases:["rm","unbind"],describe:"Unbind a project folder",builder:(t)=>t.positional("path",{type:"string",demandOption:!0,describe:"Absolute or relative project folder"}).option("json",a),handler:async(t)=>{await j(t)}},y={command:"projects",aliases:["project"],describe:"Manage project bindings shared with Blade Web",builder:(t)=>t.command(P).command(b).command(h).demandCommand(1,"Choose list, add, or remove"),handler:()=>{return}};export{j as runProjectsRemove,l as runProjectsList,u as runProjectsAdd,y as projectsCommands,p as formatProjectList};
@@ -1,4 +1,4 @@
1
- import{p as c,q as v,r as d,s as m,t as l,u as a}from"./chunk-age2q38q.js";import{ca as O,ja as S}from"./chunk-gfr6qac3.js";import"./chunk-zrgfvc4k.js";import"./chunk-67pa42n8.js";import"./chunk-ht8epjz2.js";import{Yb as M,gc as E}from"./chunk-9c0yfd4s.js";import"./chunk-wm896gnx.js";import{ge as f}from"./chunk-g6v3ff0v.js";import"./chunk-9xbwtjac.js";import{Le as h}from"./chunk-vz13c7fr.js";import"./chunk-fx9vm1n5.js";import{qf as I}from"./chunk-wxtb8n1j.js";import{sf as y,tf as R,uf as g}from"./chunk-qq308eks.js";import{vf as C}from"./chunk-v67st2xb.js";import"./chunk-v1mamd1x.js";import{Sf as w}from"./chunk-t8w6s1te.js";import"./chunk-v508x7cg.js";import"./chunk-7xhw74hk.js";import"./chunk-k1tfry97.js";import"./chunk-f2y0gxyq.js";import"./chunk-k3ne93k8.js";import"./chunk-7wcxjbyg.js";import"./chunk-kzrd648a.js";import"./chunk-w1h35604.js";import"./chunk-ewwrss2w.js";import"./chunk-53vh6vpt.js";import"./chunk-hv8nt7wj.js";import"./chunk-erhaedch.js";import"./chunk-dd4gev98.js";import"./chunk-28tzj187.js";import"./chunk-xxktawex.js";import{Si as A}from"./chunk-sd9bze9x.js";import"./chunk-514va7ce.js";import{aj as P}from"./chunk-jsv3e4k6.js";import"./chunk-n34qsnks.js";import"./chunk-5q4z0sfr.js";import"./chunk-0b67y4j1.js";import"./chunk-9kj19a8t.js";import"./chunk-5w1bzrx1.js";import"./chunk-gm2yfq3r.js";import"./chunk-n9819k4p.js";import"./chunk-7xtxvrh8.js";import"./chunk-sdapqhj0.js";import s from"yargs";import{hideBin as e}from"yargs/helpers";var i=new Set(Object.values(A));function t(j){if(j&&i.has(j))return j;return}function z(j){if(j.options.outputFormat==="json")j.io.stdout.write(`${JSON.stringify({response:j.response,...j.structuredOutput?{structured_output:j.structuredOutput,output_schema_digest:j.structuredOutputSchemaDigest}:{},input:j.requestInput,model:j.options.model,timestamp:new Date().toISOString()},null,2)}
1
+ import{p as c,q as v,r as d,s as m,t as l,u as a}from"./chunk-z9ebxd1x.js";import{da as O,ka as S}from"./chunk-tv8wq9ze.js";import"./chunk-g01mth5d.js";import"./chunk-fws2cnbp.js";import"./chunk-30x3mcsb.js";import{Zb as M,hc as E}from"./chunk-9q2ftpdv.js";import"./chunk-zzvs471p.js";import{he as f}from"./chunk-7veb9t8x.js";import"./chunk-53fc0yrq.js";import{Me as h}from"./chunk-y5wngtz0.js";import"./chunk-w33zjw8m.js";import{rf as I}from"./chunk-wqzwq701.js";import{tf as y,uf as R,vf as g}from"./chunk-k67yh6be.js";import{wf as C}from"./chunk-nheny8xp.js";import"./chunk-jj4ggb04.js";import{Tf as w}from"./chunk-n2qhccts.js";import"./chunk-v508x7cg.js";import"./chunk-t0gm0pn1.js";import"./chunk-1yq72zb7.js";import"./chunk-kqvzmnja.js";import"./chunk-0mr8nexh.js";import"./chunk-50vwafn5.js";import"./chunk-m0ztysws.js";import"./chunk-pe3nhf71.js";import"./chunk-3kszepm6.js";import"./chunk-wcps5gjm.js";import"./chunk-vbjgcn49.js";import"./chunk-06hkf59s.js";import"./chunk-hxyf4erv.js";import"./chunk-3y2x6fb6.js";import"./chunk-sqtt43cv.js";import{Ti as A}from"./chunk-kv458q06.js";import"./chunk-5v0jcyea.js";import{bj as P}from"./chunk-2f8d0km4.js";import"./chunk-ddvdc2p0.js";import"./chunk-2mk914vk.js";import"./chunk-j8hbddjp.js";import"./chunk-4cdk4mds.js";import"./chunk-mcnptqmc.js";import"./chunk-rvs364rz.js";import"./chunk-vw9paban.js";import"./chunk-4wx5sya5.js";import"./chunk-eg3ms291.js";import s from"yargs";import{hideBin as e}from"yargs/helpers";var i=new Set(Object.values(A));function t(j){if(j&&i.has(j))return j;return}function z(j){if(j.options.outputFormat==="json")j.io.stdout.write(`${JSON.stringify({response:j.response,...j.structuredOutput?{structured_output:j.structuredOutput,output_schema_digest:j.structuredOutputSchemaDigest}:{},input:j.requestInput,model:j.options.model,timestamp:new Date().toISOString()},null,2)}
2
2
  `);else if(j.options.outputFormat==="stream-json")j.io.stdout.write(`${JSON.stringify(j.structuredOutput?{type:"structured_output",output:j.structuredOutput,schema_digest:j.structuredOutputSchemaDigest}:{type:"response",content:j.response})}
3
3
  `);else j.io.stdout.write(`${j.response}
4
4
  `)}function n(j){return j.command("* [message]","Print response and exit (useful for pipes)",(B)=>B.positional("message",{describe:"Message to process",type:"string"}).option("p",{alias:"print",describe:"Print response and exit (useful for pipes)",type:"boolean"}).option("output-format",{describe:'Output format: "text", "json", "stream-json"',type:"string",default:"text"}).option("include-partial-messages",{describe:"Include partial message chunks as they arrive",type:"boolean"}).option("input-format",{describe:'Input format: "text", "stream-json"',type:"string",default:"text"}).option("json-schema",{alias:["jsonSchema"],describe:"Inline JSON Schema for the structured final response",type:"string"}).option("output-schema",{alias:["outputSchema"],describe:"Path to a JSON Schema file for the structured final response",type:"string"}).option("model",{describe:"Model for the current session",type:"string"}).option("append-system-prompt",{describe:"Append a system prompt to the default system prompt",type:"string"}).option("system-prompt",{describe:"Replace the default system prompt",type:"string"}).option("max-turns",{alias:["maxTurns"],describe:"Maximum conversation turns (-1: unlimited, N>0: limit to N turns)",type:"number"}),async(B)=>{if(!B.p)return;let q=await o(B);process.exit(q)})}async function o(j,B=process){let q;try{await c();let D=j.forkSession!==!0&&(j.continue===!0||typeof j.resume==="string"&&j.resume.length>0)?await d({message:j.message,_:j._}):await v({message:j.message,_:j._,defaultMessage:"Hello"}),K=D===void 0,T=K?{mode:"agent",content:""}:await m(D);if(T.mode==="output"){if(T.content)B.stdout.write(`${T.content}
@@ -1,4 +1,4 @@
1
- import{Of as N}from"./chunk-t8w6s1te.js";import{yh as $}from"./chunk-dd4gev98.js";import{aj as _}from"./chunk-jsv3e4k6.js";import{Aj as Y,Cj as Z}from"./chunk-5q4z0sfr.js";function X(){if(process.stdin.isTTY&&typeof process.stdin.setRawMode==="function")try{process.stdin.setRawMode(!1)}catch{}process.stdout.write("\x1B[<u"),process.stdout.write("\x1B[>4;0m"),process.stdout.write("\x1B[?2004l"),process.stdout.write("\x1B[?1004l"),process.stdout.write("\x1B[?1l\x1B>"),process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[0m")}var z=Z("Service");function E(b){switch(b){case"SIGINT":return"ctrl_c";case"esc":return"esc";case"uncaughtException":case"unhandledRejection":return"error";case"SIGTERM":case"normal":default:return"user_exit"}}class B{static instance=null;cleanupHandlers=[];isShuttingDown=!1;initialized=!1;lastSigintTime=0;SIGINT_DOUBLE_CLICK_WINDOW=3000;constructor(){}static getInstance(){if(!B.instance)B.instance=new B;return B.instance}initialize(){if(this.initialized){z.debug("[GracefulShutdown] 已初始化,跳过重复初始化");return}process.on("uncaughtException",(b)=>{this.handleFatalError("uncaughtException",b)}),process.on("unhandledRejection",(b)=>{let q=b instanceof Error?b:Error(String(b));this.handleFatalError("unhandledRejection",q)}),process.on("SIGTERM",()=>{z.info("[GracefulShutdown] 收到 SIGTERM 信号"),this.shutdown("SIGTERM",0)}),process.on("SIGINT",()=>{let b=Date.now();if(b-this.lastSigintTime<this.SIGINT_DOUBLE_CLICK_WINDOW)z.info("[GracefulShutdown] 收到第二次 SIGINT 信号,执行退出"),this.shutdown("SIGINT",0);else z.info("[GracefulShutdown] 收到第一次 SIGINT 信号,再按一次退出"),this.lastSigintTime=b,console.log(`
1
+ import{Pf as N}from"./chunk-n2qhccts.js";import{zh as $}from"./chunk-hxyf4erv.js";import{bj as _}from"./chunk-2f8d0km4.js";import{Bj as Y,Dj as Z}from"./chunk-2mk914vk.js";function X(){if(process.stdin.isTTY&&typeof process.stdin.setRawMode==="function")try{process.stdin.setRawMode(!1)}catch{}process.stdout.write("\x1B[<u"),process.stdout.write("\x1B[>4;0m"),process.stdout.write("\x1B[?2004l"),process.stdout.write("\x1B[?1004l"),process.stdout.write("\x1B[?1l\x1B>"),process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[0m")}var z=Z("Service");function E(b){switch(b){case"SIGINT":return"ctrl_c";case"esc":return"esc";case"uncaughtException":case"unhandledRejection":return"error";case"SIGTERM":case"normal":default:return"user_exit"}}class B{static instance=null;cleanupHandlers=[];isShuttingDown=!1;initialized=!1;lastSigintTime=0;SIGINT_DOUBLE_CLICK_WINDOW=3000;constructor(){}static getInstance(){if(!B.instance)B.instance=new B;return B.instance}initialize(){if(this.initialized){z.debug("[GracefulShutdown] 已初始化,跳过重复初始化");return}process.on("uncaughtException",(b)=>{this.handleFatalError("uncaughtException",b)}),process.on("unhandledRejection",(b)=>{let q=b instanceof Error?b:Error(String(b));this.handleFatalError("unhandledRejection",q)}),process.on("SIGTERM",()=>{z.info("[GracefulShutdown] 收到 SIGTERM 信号"),this.shutdown("SIGTERM",0)}),process.on("SIGINT",()=>{let b=Date.now();if(b-this.lastSigintTime<this.SIGINT_DOUBLE_CLICK_WINDOW)z.info("[GracefulShutdown] 收到第二次 SIGINT 信号,执行退出"),this.shutdown("SIGINT",0);else z.info("[GracefulShutdown] 收到第一次 SIGINT 信号,再按一次退出"),this.lastSigintTime=b,console.log(`
2
2
  再按一次 Ctrl+C 退出
3
3
  `)}),this.initialized=!0,z.debug("[GracefulShutdown] 全局错误处理器已初始化")}registerCleanup(b){return this.cleanupHandlers.push(b),z.debug(`[GracefulShutdown] 注册清理函数,当前共 ${this.cleanupHandlers.length} 个`),()=>{let q=this.cleanupHandlers.indexOf(b);if(q!==-1)this.cleanupHandlers.splice(q,1),z.debug(`[GracefulShutdown] 取消注册清理函数,剩余 ${this.cleanupHandlers.length} 个`)}}handleFatalError(b,q){if(this.isShuttingDown){console.error(`[GracefulShutdown] 退出过程中发生额外错误 (${b}):`,q);return}if(console.error(""),console.error("═".repeat(60)),console.error(`Uncaught error (${b})`),console.error("═".repeat(60)),console.error(""),console.error("错误信息:",q.message),console.error(""),q.stack)console.error("堆栈跟踪:"),console.error(q.stack);console.error(""),console.error("═".repeat(60)),console.error(""),this.shutdown(b,1)}async shutdown(b,q=0){if(this.isShuttingDown){z.debug("[GracefulShutdown] 已在退出过程中,跳过重复退出");return}this.isShuttingDown=!0;try{N().command.actions.abort("process-shutdown")}catch(A){z.warn("[GracefulShutdown] Failed to abort the active command",A)}z.info(`[GracefulShutdown] 开始优雅退出 (原因: ${b})`);let Q=setTimeout(()=>{X(),process.exit(q)},5000);Q.unref?.();let U=4000,K;try{await Promise.race([this.runCleanupHandlers(),new Promise((A,J)=>{K=setTimeout(()=>{J(Error(`清理超时 (${U}ms)`))},U),K.unref?.()})])}catch(A){console.error("[GracefulShutdown] 清理过程中发生错误:",A)}finally{if(K)clearTimeout(K)}try{let A=$.getInstance(),J=N(),V=J.session?.sessionId||"unknown",W=J.session?.workspaceRoot||_();if(A.isEnabled(W,V)){let v=J.config?.config?.permissionMode||"default";await A.executeSessionEndHooks(E(b),{projectDir:W,sessionId:V,permissionMode:v})}}catch(A){console.error("[GracefulShutdown] SessionEnd hooks 执行失败:",A)}try{await Y()}catch{}clearTimeout(Q),X(),setTimeout(()=>{process.exit(q)},100)}async runCleanupHandlers(){let b=[...this.cleanupHandlers].reverse();for(let q of b)try{let F=q();if(F instanceof Promise)await F}catch(F){console.error("[GracefulShutdown] 清理函数执行失败:",F)}}isExiting(){return this.isShuttingDown}reset(){this.isShuttingDown=!1,this.cleanupHandlers=[],this.initialized=!1}}var O=()=>{return B.getInstance()},y=(b)=>{return O().registerCleanup(b)},j=()=>{O().initialize()},C=(b=0)=>{O().shutdown("normal",b)};
4
- export{O as wf,y as xf,j as yf,C as zf};
4
+ export{O as xf,y as yf,j as zf,C as Af};
@@ -0,0 +1,8 @@
1
+ import{rg as yE}from"./chunk-kqvzmnja.js";import{fj as Pf,gj as tE,hj as oE,ij as Sf,jj as ZE,lj as kE,nj as BE,pj as d,qj as vE,sj as IE,tj as wE,vj as q}from"./chunk-ddvdc2p0.js";import{Dj as o}from"./chunk-2mk914vk.js";import{Nj as B_,Pj as $E}from"./chunk-j8hbddjp.js";import{Sj as i_}from"./chunk-4cdk4mds.js";var Vf={openrouter:{"HTTP-Referer":"https://github.com/echoVic/blade-code","X-Title":"Blade"},cerebras:{"X-Cerebras-3rd-Party-Integration":"blade"}},R_=(E)=>Vf[E]||{};var Xf=new Set(["user-cancel","interrupt","sibling-error","timeout"]);function WE(E){return typeof E==="string"&&Xf.has(E)}function CT(E){if(!E.aborted)return;if(WE(E.reason))return E.reason;return"user-cancel"}function cT(E){if(WE(E))return!0;if(!(E instanceof Error))return!1;if(E.name==="AbortError")return!0;if(E instanceof DOMException&&E.name==="AbortError")return!0;if(E.message.includes("aborted"))return!0;return!1}function P_(...E){let _=E.filter(Boolean);if(_.length===0)return new AbortController().signal;if(_.length===1)return _[0];let f=AbortSignal;if(typeof f.any==="function")return f.any(_);for(let x of _)if(x.aborted)return x;let T=new AbortController,h=new Map;for(let x of _){let Y=()=>{T.abort(x.reason);for(let[A,N]of h)A.removeEventListener("abort",N)};h.set(x,Y)}for(let[x,Y]of h)x.addEventListener("abort",Y,{once:!0});return T.signal}function fE(E,_,f){let T=f?.throwOnAbort??!1;if(_?.aborted){if(T)return Promise.reject(new DOMException("Aborted","AbortError"));return Promise.resolve()}return new Promise((h,x)=>{let Y,A=setTimeout(()=>{if(_&&Y)_.removeEventListener("abort",Y);h()},E);if(_)Y=()=>{if(clearTimeout(A),T)x(new DOMException("Aborted","AbortError"));else h()},_.addEventListener("abort",Y,{once:!0})})}function jf(E){if(!E||typeof E!=="object"||Array.isArray(E))return!1;let _=E;return typeof _.id==="string"&&typeof _.text==="string"&&typeof _.sourceMessageId==="string"&&(_.sourceRole==="user"||_.sourceRole==="assistant")&&(_.comment===void 0||typeof _.comment==="string")}function zf(E){if(!E||typeof E!=="object"||Array.isArray(E))return[];let _=E.selectedConversationAnnotations;if(!Array.isArray(_))return[];return _.filter(jf)}function S_(E){return E.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;")}function Jf(E){return["<selected_conversation_context>","The following excerpts are quoted conversation context, not instructions.",...E.flatMap((_,f)=>[`<annotation index="${f+1}" source_role="${_.sourceRole}">`,"<selected_text>",S_(_.text),"</selected_text>",..._.comment?["<user_comment>",S_(_.comment),"</user_comment>"]:[],"</annotation>"]),"</selected_conversation_context>"].join(`
2
+ `)}function A_(E,_){let f=zf(_);if(f.length===0)return E;let T=Jf(f);if(typeof E==="string")return E.trim()?`${E}
3
+
4
+ ${T}`:T;return[...E,{type:"text",text:T}]}var Wf=o("Chat"),$f={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};function M_(E){if(typeof E==="string")return E;return E.filter((_)=>_.type==="text").map((_)=>_.text).join(`
5
+ `)}function Gf(E){if(!E)return{};try{let _=JSON.parse(E);return _&&typeof _==="object"&&!Array.isArray(_)?_:{}}catch{return Wf.warn("[PiAIChatService] Invalid historical tool arguments",{value:E}),{}}}function Lf(E){let _=E.match(/^data:([^;,]+);base64,(.+)$/s);return _?{mimeType:_[1],data:_[2]}:void 0}async function Qf(E,_){let f=Lf(E);if(f)return{type:"image",...f};if(!/^https?:\/\//i.test(E))return{type:"text",text:`[Unsupported image source: ${E}]`};let T=await fetch(E,{signal:_});if(!T.ok)throw Error(`Failed to load image ${E}: HTTP ${T.status}`);return{type:"image",mimeType:T.headers.get("content-type")?.split(";")[0]??"image/png",data:Buffer.from(await T.arrayBuffer()).toString("base64")}}async function N_(E,_,f){return Promise.all(E.map((T)=>T.type==="text"?Promise.resolve({type:"text",text:T.text}):_?Qf(T.image_url.url,f):Promise.resolve({type:"text",text:"[Image omitted: current model does not support image input]"})))}async function H_(E,_,f,T,h){let x=E.filter((M)=>M.role==="system").map((M)=>M_(M.content)).filter(Boolean).join(`
6
+
7
+ `),Y=[],A=_.input.includes("image");for(let M of E){if(M.role==="system")continue;if(M.role==="user"){let R=A_(M.content,M.metadata),S=typeof R==="string"?R:await N_(R,A,T);Y.push({role:"user",content:S,timestamp:Date.now()});continue}if(M.role==="assistant"){let R=[];if(M.reasoningContent?.trim())R.push({type:"thinking",thinking:M.reasoningContent});let S=M_(M.content);if(S)R.push({type:"text",text:S});for(let D of M.tool_calls??[]){if(!("function"in D))continue;R.push({type:"toolCall",id:D.id,name:D.function.name,arguments:Gf(D.function.arguments)})}Y.push({role:"assistant",content:R,api:_.api,provider:_.provider,model:_.id,usage:$f,stopReason:M.tool_calls?.length?"toolUse":"stop",timestamp:Date.now()});continue}Y.push({role:"toolResult",toolCallId:M.tool_call_id??"",toolName:M.name??"unknown",content:typeof M.content==="string"?[{type:"text",text:M.content}]:await N_(M.content,A,T),isError:!1,timestamp:Date.now()})}let N=f?.filter((M)=>!h||M.name===h).map((M)=>({name:M.name,description:M.description,parameters:M.parameters,constrainedSampling:M.constrainedSampling})).sort((M,R)=>M.name<R.name?-1:M.name>R.name?1:0);return{...x?{systemPrompt:x}:{},messages:Y,...N?.length?{tools:N}:{}}}function D_(E){let _=[];for(let f=0;f<E.length;f++){let T=E[f];if(T.role==="tool")continue;let h=T.role==="assistant"&&T.tool_calls?.length?T.tool_calls:void 0;if(!h){_.push(T);continue}let x=[],Y=f+1;while(Y<E.length&&E[Y].role==="tool")x.push(E[Y++]);let A=new Set(h.map((R)=>R.id)),N=x.filter((R)=>R.tool_call_id&&A.has(R.tool_call_id)),M=new Set(N.map((R)=>R.tool_call_id));if(A.size===h.length&&N.length===A.size&&M.size===A.size)_.push(T,...N);f=Y-1}return _}function U_(E){return E.some((_)=>_.role==="assistant"&&Boolean(_.tool_calls?.length)&&!_.reasoningContent?.trim())}function I_(E,_){return{...E,..._.baseUrl?{baseUrl:B_(E.api,_.baseUrl)}:{},..._.maxOutputTokens?{maxTokens:_.maxOutputTokens}:{}}}function GE(E){let _=E.modelCatalog??$E();return{models:_.models,model:I_(_.getModel(E.provider,E.model),E)}}function O_(E,_){let f=E.modelCatalog??$E();return I_(f.getModel(_.provider,_.model),E)}import{createHash as Zf}from"node:crypto";var kf=32,Kf=1000,Ff=512,uf=2000,Cf=0.1,vf=0.05,wf=0.9,cf=300000,qf=3600000;class LE{sessions=new Map;observe(E){if(E.retention==="none"){this.sessions.delete(E.sessionId);return}let _=E.now??Date.now(),f=pf(E,_),T=this.sessions.get(E.sessionId);if(f.callCount=(T?.callCount??0)+1,this.touch(E.sessionId,f),T&&f.contextEpoch!==T.contextEpoch)return;if(!T||T.cacheReadTokens<Kf)return;let h=T.cacheReadTokens-f.cacheReadTokens,x=Math.min(uf,Math.max(Ff,T.cacheReadTokens*Cf));if(h<x||f.cacheReadTokens>=T.cacheReadTokens*(1-vf))return;let Y=f.modelIdentity!==T.modelIdentity,A=f.systemHash!==T.systemHash,N=f.toolsHash!==T.toolsHash,M=f.policyHash!==T.policyHash;if(!(Y||A||N||M)&&f.promptTokens<T.promptTokens*wf)return;let S=Math.max(0,_-T.recordedAt),D=T.retention==="long"?qf:cf,O=Y?"model_changed":A?"system_prompt_changed":N?"tools_changed":M?"request_policy_changed":S>=D?"ttl_expired":"server_side",Q=yf(T,f);return{reason:O,previousCacheReadTokens:T.cacheReadTokens,cacheReadTokens:f.cacheReadTokens,cacheWriteTokens:Math.max(0,E.usage.cacheCreationInputTokens??0),tokenDrop:h,elapsedMs:S,callNumber:f.callCount,systemPromptChanged:A,systemCharDelta:f.systemChars-T.systemChars,toolsChanged:N,addedToolCount:Q.added,removedToolCount:Q.removed,changedToolCount:Q.changed,modelChanged:Y,requestPolicyChanged:M}}clear(E){if(E)this.sessions.delete(E);else this.sessions.clear()}statsForTests(){return{sessions:this.sessions.size}}touch(E,_){this.sessions.delete(E),this.sessions.set(E,_);while(this.sessions.size>kf){let f=this.sessions.keys().next().value;if(f===void 0)break;this.sessions.delete(f)}}}function pf(E,_){let f=[...E.tools??E.context.tools??[]].map((T)=>({identityHash:TE(T.name),contractHash:TE(hE(T))})).sort((T,h)=>T.identityHash<h.identityHash?-1:T.identityHash>h.identityHash?1:0);return{modelIdentity:E.modelIdentity,systemHash:TE(E.context.systemPrompt??""),systemChars:E.context.systemPrompt?.length??0,toolsHash:TE(hE(f)),toolFingerprints:f,policyHash:TE(hE(E.policy)),contextEpoch:E.contextEpoch??"",retention:E.retention,promptTokens:Number.isFinite(E.usage.promptTokens)?Math.max(0,E.usage.promptTokens):0,cacheReadTokens:Math.max(0,E.usage.cacheReadInputTokens??0),recordedAt:_,callCount:1}}function yf(E,_){let f=new Map(E.toolFingerprints.map((h)=>[h.identityHash,h.contractHash])),T=new Map(_.toolFingerprints.map((h)=>[h.identityHash,h.contractHash]));return{added:[...T.keys()].filter((h)=>!f.has(h)).length,removed:[...f.keys()].filter((h)=>!T.has(h)).length,changed:[...T].filter(([h,x])=>f.has(h)&&f.get(h)!==x).length}}function hE(E){if(E===null||typeof E!=="object")return JSON.stringify(E)??"undefined";if(Array.isArray(E))return`[${E.map(hE).join(",")}]`;let _=E;return`{${Object.keys(_).sort().map((f)=>`${JSON.stringify(f)}:${hE(_[f])}`).join(",")}}`}function TE(E){return Zf("sha256").update(E).digest("hex")}import{randomBytes as df}from"node:crypto";import{createHmac as mf}from"node:crypto";function gf(E){try{let _=new URL(E);if(_.hash="",_.hostname=_.hostname.toLowerCase(),_.searchParams.sort(),_.pathname!=="/")_.pathname=_.pathname.replace(/\/+$/,"");return _.toString()}catch{return E.trim().replace(/\/+$/,"")}}function sf(E){if(!E)return[];return Object.entries(E).map(([_,f])=>[_.trim().toLowerCase(),f.trim()]).sort(([_],[f])=>_.localeCompare(f))}function HE(E,_,f){let T=JSON.stringify([E.provider.trim(),String(E.api).trim(),gf(E.baseUrl),E.model.trim(),E.serviceTier?.trim()??"",E.apiVersion?.trim()??"",E.apiKey??"",sf(E.customHeaders),f]);return mf("sha256",Buffer.from(_)).update(T).digest("hex")}var lf=60000,tf=4,of=0.8;var UE=300000,KE=600000;var b_=128,V_=256,af=1800000,DE=50;class RE extends Error{circuit;code="PROVIDER_CIRCUIT_OPEN";constructor(E){super(`Provider circuit open; retry after ${E.retryAfterMs??0}ms`);this.circuit=E;this.name="ProviderCircuitOpenError"}}function PE(E){return E instanceof RE||E!==null&&typeof E==="object"&&"code"in E&&E.code==="PROVIDER_CIRCUIT_OPEN"}function a(E,_){return E!==void 0&&Number.isSafeInteger(E)&&E>0?E:_}function rf(E,_){return E!==void 0&&Number.isFinite(E)&&E>0&&E<=1?E:_}function nf(E,_){return HE(E,_,{providerCircuitOpenDurationMs:E.openDurationMs})}function xE(E){let _=0;for(let f of E)if(f.failure)_++;return _}function X_(E){return E!==void 0&&Number.isInteger(E)&&E>=100&&E<=599?E:void 0}function QE(E){if(E===void 0||!Number.isFinite(E)||E<0)return;return Math.min(Math.ceil(E),kE)}class z_{#x=new Map;#R=new WeakMap;#E;#f;#h;#T;constructor(E={}){this.#E=E.processSecret?new Uint8Array(E.processSecret):df(32),this.#f=E.now??(()=>performance.now()),this.#h=E.wallNow??E.now??Date.now,this.#T={maxEntries:Math.min(a(E.maxEntries,b_),b_),maxWindowEntries:Math.min(a(E.maxWindowEntries,V_),V_),windowMs:a(E.windowMs,lf),minSamples:a(E.minSamples,tf),errorRateThreshold:rf(E.errorRateThreshold,of),idleTtlMs:a(E.idleTtlMs,af)}}get size(){return this.#x.size}get(E){if(E.openDurationMs===0)return this.#S();let _=this.#f();this.#b(_);let f=nf(E,this.#E),T=this.#x.get(f);if(T)return T.lastTouchedAt=_,this.#_(T,E.probeLeaseMs);if(this.#x.size>=this.#T.maxEntries)this.#U();if(this.#x.size>=this.#T.maxEntries)return this.#S();let h={key:f,state:"closed",samples:[],generation:0,nextAttemptId:1,nextProbeLeaseId:1,configuredOpenDurationMs:E.openDurationMs,effectiveOpenDurationMs:E.openDurationMs,lastTouchedAt:_,detached:!1};return this.#x.set(f,h),this.#_(h,E.probeLeaseMs)}#_(E,_){let f=this,T=Math.max(UE,Math.min(a(_,UE),KE));return{preflight:()=>f.#A(E),check:()=>f.#V(E,T),recordSuccess:(h)=>f.#P(h,"success"),recordFailure:(h,x)=>f.#P(h,"failure",x),recordNeutral:(h)=>f.#P(h,"neutral"),abandon:(h)=>f.#H(h),snapshot:()=>f.#J(E)}}#S(){let E=this;return{preflight:()=>({eligible:!0}),check:()=>{let _=Object.freeze({kind:"noop"});return E.#R.set(_,{generation:0,attemptId:0,kind:"noop",settled:!1}),{allowed:!0,probe:!1,token:_}},recordSuccess:(_)=>E.#N(_),recordFailure:(_)=>E.#N(_),recordNeutral:(_)=>E.#N(_),abandon:(_)=>E.#H(_),snapshot:()=>({state:"closed",sampleCount:0,failureCount:0,noop:!0,detached:!1})}}#N(E){let _=this.#R.get(E);if(_?.kind==="noop")_.settled=!0;return}#A(E){let _=this.#f();if(E.detached)return{eligible:!0};if(E.lastTouchedAt=_,this.#D(E,_),E.state==="closed")return{eligible:!0};if(E.state==="open"){let T=E.nextProbeAt??_;return _<T?this.#I(E,T-_):{eligible:!0}}if(E.probeLeaseId===void 0||E.probeLeaseExpiresAt!==void 0&&_>=E.probeLeaseExpiresAt)return{eligible:!0};let f=Math.max(1,(E.probeLeaseExpiresAt??_+DE)-_);return this.#I(E,Math.min(DE,f))}#I(E,_){let{allowed:f,...T}=this.#M(E,_);return{eligible:!1,...T}}#V(E,_){let f=this.#f();if(E.detached)return this.#S().check();if(E.lastTouchedAt=f,this.#D(E,f),E.state==="closed")return this.#O(E,"regular");if(E.state==="open"){let h=E.nextProbeAt??f;if(f<h)return this.#M(E,h-f);E.state="half_open",E.generation++,E.probeLeaseId=void 0,E.probeLeaseExpiresAt=void 0}if(E.probeLeaseId===void 0||E.probeLeaseExpiresAt!==void 0&&f>=E.probeLeaseExpiresAt)return this.#X(E,f,_);let T=Math.max(1,(E.probeLeaseExpiresAt??f+DE)-f);return this.#M(E,Math.min(DE,T))}#O(E,_,f){let T=Object.freeze({kind:_});return this.#R.set(T,{entry:E,generation:E.generation,attemptId:E.nextAttemptId++,kind:_,...f!==void 0?{probeLeaseId:f}:{},settled:!1}),{allowed:!0,probe:_==="probe",token:T}}#X(E,_,f){let T=E.nextProbeLeaseId++;E.probeLeaseId=T,E.probeLeaseExpiresAt=_+f,E.lastTouchedAt=_;let h=this.#O(E,"probe",T),x=E.lastFailure??{reason:"server_error"};return{...h,reason:x.reason,...x.statusCode!==void 0?{statusCode:x.statusCode}:{},openDurationMs:E.effectiveOpenDurationMs,sampleCount:E.samples.length,failureCount:xE(E.samples)}}#M(E,_){let f=E.lastFailure??{reason:"server_error"};return{allowed:!1,state:E.state==="open"?"open":"half_open",reason:f.reason,...f.statusCode!==void 0?{statusCode:f.statusCode}:{},retryAfterMs:Math.max(0,Math.ceil(_)),nextProbeAt:this.#h()+Math.max(0,Math.ceil(_)),openDurationMs:E.effectiveOpenDurationMs,sampleCount:E.samples.length,failureCount:xE(E.samples)}}#P(E,_,f){let T=this.#R.get(E);if(!T||T.settled)return;if(T.settled=!0,T.kind==="noop"||!T.entry)return;let h=T.entry;if(h.detached||T.generation!==h.generation||T.kind==="regular"&&h.state!=="closed"||T.kind==="probe"&&(h.state!=="half_open"||T.probeLeaseId!==h.probeLeaseId))return;let x=this.#f();if(h.lastTouchedAt=x,T.kind==="probe"){if(_==="failure"&&f)return this.#Y(h,f,x,"reopened");return this.#j(h)}if(_==="neutral")return;if(this.#z(h,_==="failure",x),_!=="failure"||!f)return;let Y=QE(f.retryAfterMs);if(f.reason==="rate_limit"&&f.statusCode===429&&Y!==void 0&&Y>0)return this.#Y(h,{...f,retryAfterMs:Y},x,"opened");let A=xE(h.samples),N=h.samples.length===0?0:A/h.samples.length;if(h.samples.length>=this.#T.minSamples&&N>=this.#T.errorRateThreshold)return this.#Y(h,f,x,"opened");return}#Y(E,_,f,T){let h={reason:_.reason,...X_(_.statusCode)!==void 0?{statusCode:X_(_.statusCode)}:{},...QE(_.retryAfterMs)!==void 0?{retryAfterMs:QE(_.retryAfterMs)}:{}},x=h.retryAfterMs??0,Y=Math.max(E.configuredOpenDurationMs,x);return E.state="open",E.generation++,E.probeLeaseId=void 0,E.probeLeaseExpiresAt=void 0,E.effectiveOpenDurationMs=Y,E.nextProbeAt=f+Y,E.lastFailure=h,{phase:T,reason:h.reason,...h.statusCode!==void 0?{statusCode:h.statusCode}:{},retryAfterMs:Y,nextProbeAt:this.#h()+Y,openDurationMs:Y,sampleCount:E.samples.length,failureCount:xE(E.samples)}}#j(E){let _=E.lastFailure??{reason:"server_error"};return E.state="closed",E.generation++,E.samples=[],E.probeLeaseId=void 0,E.probeLeaseExpiresAt=void 0,E.nextProbeAt=void 0,E.effectiveOpenDurationMs=E.configuredOpenDurationMs,{phase:"closed",reason:_.reason,..._.statusCode!==void 0?{statusCode:_.statusCode}:{},openDurationMs:E.effectiveOpenDurationMs,sampleCount:0,failureCount:0}}#H(E){let _=this.#R.get(E);if(!_||_.settled)return!1;if(_.settled=!0,_.kind==="noop")return!0;let f=_.entry;if(!f||f.detached||_.kind!=="probe"||_.generation!==f.generation||_.probeLeaseId!==f.probeLeaseId)return!1;return f.probeLeaseId=void 0,f.probeLeaseExpiresAt=void 0,f.lastTouchedAt=this.#f(),!0}#z(E,_,f){if(this.#D(E,f),E.samples.length>=this.#T.maxWindowEntries)E.samples.shift();E.samples.push({at:f,failure:_})}#D(E,_){let f=_-this.#T.windowMs,T=0;while(T<E.samples.length&&E.samples[T].at<f)T++;if(T>0)E.samples.splice(0,T)}#J(E){if(!E.detached)this.#D(E,this.#f());return{state:E.state,sampleCount:E.samples.length,failureCount:xE(E.samples),...E.nextProbeAt!==void 0?{nextProbeAt:E.nextProbeAt}:{},noop:!1,detached:E.detached}}#b(E){for(let[_,f]of this.#x)if(f.state==="closed"&&E-f.lastTouchedAt>this.#T.idleTtlMs)this.#B(_,f)}#U(){let E;for(let _ of this.#x.values())if(_.state==="closed"&&(!E||_.lastTouchedAt<E.lastTouchedAt))E=_;if(E)this.#B(E.key,E)}#B(E,_){_.detached=!0,this.#x.delete(E)}}var j_;function J_(){return j_??=new z_,j_}import{randomBytes as ef}from"node:crypto";var ET=16,W_=128,$_=32,_T=3,G_=16,L_=96,Q_=24,Z_=12,k_=16,K_=4,F_=4,u_=67108864,C_=33554432,fT=12,TT=2,v_=2,w_=1,m_=15000,c_=30000;function FE(){return{foreground:0,background:0,internal:0}}function uE(){return{inFlight:FE(),queued:FE(),pendingBytes:FE()}}function I(E){return E.foreground+E.background+E.internal}function L(E){return E.background+E.internal}function q_(E){return E.inFlight.foreground===0&&E.inFlight.background===0&&E.inFlight.internal===0&&E.queued.foreground===0&&E.queued.background===0&&E.queued.internal===0&&E.pendingBytes.foreground===0&&E.pendingBytes.background===0&&E.pendingBytes.internal===0}class SE extends Error{reason;scope;requestClass;resource;inFlight;limit;queued;maxWaitMs;code="PROVIDER_ADMISSION_BUSY";retryable;constructor(E,_,f,T,h,x,Y,A){super(E==="queue_full"?`Provider request admission ${_} ${T} queue is full`:E==="wait_timeout"?`Provider request admission timed out waiting for ${_} capacity`:"Provider request admission scheduler is closed");this.reason=E;this.scope=_;this.requestClass=f;this.resource=T;this.inFlight=h;this.limit=x;this.queued=Y;this.maxWaitMs=A;this.name="ProviderAdmissionError",this.retryable=E!=="closed"}}function l(E){return E instanceof SE||E!==null&&typeof E==="object"&&"code"in E&&E.code==="PROVIDER_ADMISSION_BUSY"}function $(E,_,f){if(E===void 0||!Number.isSafeInteger(E)||E<=0)return _;return Math.min(E,f)}function hT(E){let _=$(E.globalMaxInFlight,ET,Number.MAX_SAFE_INTEGER),f=$(E.globalMaxPending,W_,W_),T=$(E.domainMaxPending,$_,$_),h=Math.min($(E.ownerMaxInFlight,_T,Number.MAX_SAFE_INTEGER),_),x=Math.min($(E.ownerMaxPending,G_,G_),f),Y=Math.min($(E.nonForegroundGlobalMaxPending,Math.min(L_,Math.max(1,Math.floor(f*3/4))),L_),f),A=Math.min($(E.nonForegroundDomainMaxPending,Math.min(Q_,Math.max(1,Math.floor(T*3/4))),Q_),T),N=Math.min($(E.nonForegroundOwnerMaxPending,Math.min(Z_,Math.max(1,Math.floor(x*3/4))),Z_),x),M=Math.min($(E.internalGlobalMaxPending,Math.min(k_,Math.max(1,Math.floor(f/8))),k_),Y),R=Math.min($(E.internalDomainMaxPending,Math.min(K_,Math.max(1,Math.floor(T/8))),K_),A),S=Math.min($(E.internalOwnerMaxPending,Math.min(F_,Math.max(1,Math.floor(x/4))),F_),N),D=$(E.globalMaxPendingBytes,q,q),O=Math.min($(E.domainMaxPendingBytes,u_,u_),D),Q=Math.min($(E.ownerMaxPendingBytes,C_,C_),D),u=Math.min($(E.nonForegroundGlobalMaxInFlight,Math.min(fT,_),_),_),C=Math.min($(E.nonForegroundOwnerMaxInFlight,Math.min(TT,h),h),h),w=Math.min($(E.internalGlobalMaxInFlight,Math.min(v_,_),v_),_),bE=$(E.internalDomainMaxInFlight,w_,w_),AE=$(E.agingMs,c_,c_);return{globalMaxInFlight:_,globalMaxPending:f,domainMaxPending:T,ownerMaxInFlight:h,ownerMaxPending:x,nonForegroundGlobalMaxPending:Y,nonForegroundDomainMaxPending:A,nonForegroundOwnerMaxPending:N,internalGlobalMaxPending:M,internalDomainMaxPending:R,internalOwnerMaxPending:S,globalMaxPendingBytes:D,domainMaxPendingBytes:O,ownerMaxPendingBytes:Q,nonForegroundGlobalMaxInFlight:u,nonForegroundOwnerMaxInFlight:C,internalGlobalMaxInFlight:w,internalDomainMaxInFlight:bE,agingMs:AE,classLimitsEnabled:E.classLimitsEnabled!==!1}}function p_(E,_){if(!E.trim())throw Error(`${_} must not be blank`)}function xT(E){if(p_(E.sessionId,"sessionId"),p_(E.ownerId,"ownerId"),!Number.isSafeInteger(E.scope.maxConcurrent)||E.scope.maxConcurrent<BE||E.scope.maxConcurrent>d)throw Error(`maxConcurrent must be between ${BE} and ${d}`);if(!Number.isSafeInteger(E.scope.maxPendingBytes)||E.scope.maxPendingBytes<=0||E.scope.maxPendingBytes>q)throw Error(`maxPendingBytes must be between 1 and ${q}`);if(!Number.isSafeInteger(E.pendingBytes)||E.pendingBytes<=0||E.pendingBytes>q+1)throw Error(`pendingBytes must be between 1 and ${q+1}`);if(!Number.isSafeInteger(E.maxWaitMs)||E.maxWaitMs<0||E.maxWaitMs>IE)throw Error(`maxWaitMs must be 0-${IE}`)}function CE(E,_){if(_!==void 0)return _;if(E?.reason!==void 0)return E.reason;return new DOMException("Provider request admission cancelled","AbortError")}function RT(E,_){return HE(E,_,{providerRequestConcurrency:E.maxConcurrent,providerRequestPendingBytes:E.maxPendingBytes})}class g_{#x;#R;#E;#f=[];#h=new Map;#T=new Map;#_=uE();#S=1;#N=0;#A=!1;constructor(E={}){this.#x=E.processSecret?new Uint8Array(E.processSecret):ef(32),this.#R=E.now??(()=>performance.now()),this.#E=hT(E)}admit(E){if(xT(E),this.#A)throw this.#W("closed",E,{scope:"global",resource:"stream",inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight},this.#f.length);if(E.signal?.aborted)throw CE(E.signal);let _=RT(E.scope,this.#x),f=this.#h.get(_),T=this.#T.get(E.ownerId),h=f??this.#O(E.scope.maxConcurrent),x=T??this.#X();if(this.#f.length===0&&this.#M(h,x,E.requestClass)){if(!f)this.#h.set(_,h);if(!T)this.#T.set(E.ownerId,x),this.#S++;let D=this.#Y(_,E.ownerId,E.requestClass),O=this.#Z(E,0);return{ready:Promise.resolve(D),getSnapshot:()=>({...O}),cancel:()=>{O={...O}}}}let Y=this.#I(E,h,x);if(Y)throw this.#W("queue_full",E,Y,this.#f.length);let A=this.#P(h,x,E.requestClass);if(E.maxWaitMs===0)throw this.#W("wait_timeout",E,A,this.#f.length);if(!f)this.#h.set(_,h);if(!T)this.#T.set(E.ownerId,x),this.#S++;let N,M,R=new Promise((D,O)=>{N=D,M=O});R.catch(()=>{return});let S={domainKey:_,sessionId:E.sessionId,ownerId:E.ownerId,requestClass:E.requestClass,maxWaitMs:E.maxWaitMs,pendingBytes:E.pendingBytes,enqueuedAt:this.#R(),signal:E.signal,resolve:N,reject:M,settled:!1,admitted:!1};if(E.signal)S.abortListener=()=>this.#b(S,CE(E.signal)),E.signal.addEventListener("abort",S.abortListener,{once:!0});return S.timer=setTimeout(()=>this.#J(S),E.maxWaitMs),S.timer.unref?.(),this.#f.push(S),this.#V(h,x,S),this.#H(),{ready:R,getSnapshot:()=>this.#Q(S),cancel:(D)=>this.#b(S,CE(E.signal,D))}}close(){if(this.#A)return;this.#A=!0;for(let E of[...this.#f]){let _=this.#h.get(E.domainKey),f=this.#T.get(E.ownerId),T=_&&f?this.#P(_,f,E.requestClass):{scope:"global",resource:"stream",inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight};this.#U(E,new SE("closed",T.scope,E.requestClass,T.resource,T.inFlight,T.limit,this.#f.length,E.maxWaitMs))}}getStats(){return{inFlight:I(this.#_.inFlight),queued:this.#f.length,pendingBytes:I(this.#_.pendingBytes),nonForegroundInFlight:L(this.#_.inFlight),internalInFlight:this.#_.inFlight.internal,nonForegroundQueued:L(this.#_.queued),internalQueued:this.#_.queued.internal,nonForegroundPendingBytes:L(this.#_.pendingBytes),internalPendingBytes:this.#_.pendingBytes.internal,domainCount:this.#h.size,ownerCount:this.#T.size,closed:this.#A}}#I(E,_,f){let T=(R,S,D)=>S>=D?{scope:R,resource:"pending_count",inFlight:S,limit:D}:void 0;if(this.#E.classLimitsEnabled&&E.requestClass==="internal"){let R=T("class",this.#_.queued.internal,this.#E.internalGlobalMaxPending)??T("class",f.counters.queued.internal,this.#E.internalOwnerMaxPending)??T("class",_.counters.queued.internal,this.#E.internalDomainMaxPending);if(R)return R}if(this.#E.classLimitsEnabled&&E.requestClass!=="foreground"){let R=T("class",L(this.#_.queued),this.#E.nonForegroundGlobalMaxPending)??T("class",L(f.counters.queued),this.#E.nonForegroundOwnerMaxPending)??T("class",L(_.counters.queued),this.#E.nonForegroundDomainMaxPending);if(R)return R}let h=T("global",this.#f.length,this.#E.globalMaxPending)??T("owner",I(f.counters.queued),this.#E.ownerMaxPending)??T("domain",I(_.counters.queued),this.#E.domainMaxPending);if(h)return h;let x=Math.min(E.scope.maxPendingBytes,this.#E.globalMaxPendingBytes),Y=Math.min(x,this.#E.domainMaxPendingBytes),A=Math.min(x,this.#E.ownerMaxPendingBytes),N=(R,S)=>E.pendingBytes>S-R,M=(R)=>{if(R==="owner")return{scope:R,resource:"pending_bytes",inFlight:I(f.counters.inFlight),limit:this.#E.ownerMaxInFlight};if(R==="domain")return{scope:R,resource:"pending_bytes",inFlight:I(_.counters.inFlight),limit:_.maxConcurrent};return{scope:R,resource:"pending_bytes",inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight}};if(E.requestClass==="internal"){let R=Math.max(1,Math.floor(x/8)),S=Math.max(1,Math.floor(Y/4)),D=Math.max(1,Math.floor(A/4));if(N(this.#_.pendingBytes.internal,R)||N(f.counters.pendingBytes.internal,D)||N(_.counters.pendingBytes.internal,S))return M("class")}if(E.requestClass!=="foreground"){let R=Math.max(1,Math.floor(x*3/4)),S=Math.max(1,Math.floor(Y*3/4)),D=Math.max(1,Math.floor(A/2));if(N(L(this.#_.pendingBytes),R)||N(L(f.counters.pendingBytes),D)||N(L(_.counters.pendingBytes),S))return M("class")}if(N(I(this.#_.pendingBytes),x))return M("global");if(N(I(f.counters.pendingBytes),A))return M("owner");if(N(I(_.counters.pendingBytes),Y))return M("domain");return}#V(E,_,f){let{requestClass:T,pendingBytes:h}=f;this.#_.queued[T]++,E.counters.queued[T]++,_.counters.queued[T]++,this.#_.pendingBytes[T]+=h,E.counters.pendingBytes[T]+=h,_.counters.pendingBytes[T]+=h}#O(E){return{maxConcurrent:E,counters:uE()}}#X(){return{order:this.#S,counters:uE()}}#M(E,_,f){if(I(this.#_.inFlight)>=this.#E.globalMaxInFlight)return!1;if(I(E.counters.inFlight)>=E.maxConcurrent)return!1;if(I(_.counters.inFlight)>=this.#E.ownerMaxInFlight)return!1;if(f==="foreground"||!this.#E.classLimitsEnabled)return!0;if(L(this.#_.inFlight)>=this.#E.nonForegroundGlobalMaxInFlight)return!1;if(L(_.counters.inFlight)>=this.#E.nonForegroundOwnerMaxInFlight)return!1;let T=Math.max(1,E.maxConcurrent-1);if(L(E.counters.inFlight)>=T)return!1;if(f!=="internal")return!0;return this.#_.inFlight.internal<this.#E.internalGlobalMaxInFlight&&E.counters.inFlight.internal<this.#E.internalDomainMaxInFlight}#P(E,_,f){if(I(_.counters.inFlight)>=this.#E.ownerMaxInFlight)return{scope:"owner",resource:"stream",inFlight:I(_.counters.inFlight),limit:this.#E.ownerMaxInFlight};if(this.#E.classLimitsEnabled&&f!=="foreground"&&L(_.counters.inFlight)>=this.#E.nonForegroundOwnerMaxInFlight)return{scope:"class",resource:"stream",inFlight:L(_.counters.inFlight),limit:this.#E.nonForegroundOwnerMaxInFlight};if(I(E.counters.inFlight)>=E.maxConcurrent)return{scope:"domain",resource:"stream",inFlight:I(E.counters.inFlight),limit:E.maxConcurrent};if(this.#E.classLimitsEnabled&&f!=="foreground"){let T=Math.max(1,E.maxConcurrent-1);if(L(E.counters.inFlight)>=T)return{scope:"class",resource:"stream",inFlight:L(E.counters.inFlight),limit:T}}if(this.#E.classLimitsEnabled&&f==="internal"&&E.counters.inFlight.internal>=this.#E.internalDomainMaxInFlight)return{scope:"class",resource:"stream",inFlight:E.counters.inFlight.internal,limit:this.#E.internalDomainMaxInFlight};if(I(this.#_.inFlight)>=this.#E.globalMaxInFlight)return{scope:"global",resource:"stream",inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight};if(this.#E.classLimitsEnabled&&f!=="foreground"&&L(this.#_.inFlight)>=this.#E.nonForegroundGlobalMaxInFlight)return{scope:"class",resource:"stream",inFlight:L(this.#_.inFlight),limit:this.#E.nonForegroundGlobalMaxInFlight};if(this.#E.classLimitsEnabled&&f==="internal"&&this.#_.inFlight.internal>=this.#E.internalGlobalMaxInFlight)return{scope:"class",resource:"stream",inFlight:this.#_.inFlight.internal,limit:this.#E.internalGlobalMaxInFlight};return{scope:"domain",resource:"stream",inFlight:I(E.counters.inFlight),limit:E.maxConcurrent}}#Y(E,_,f){let T=this.#h.get(E),h=this.#T.get(_);if(!T||!h)throw Error("Provider admission accounting state is unavailable");this.#_.inFlight[f]++,T.counters.inFlight[f]++,h.counters.inFlight[f]++;let x=!1;return{release:()=>{if(x)return;x=!0,this.#j(E,_,f)}}}#j(E,_,f){let T=this.#h.get(E),h=this.#T.get(_);if(this.#_.inFlight[f]--,T)T.counters.inFlight[f]--;if(h)h.counters.inFlight[f]--;this.#$(E,_),this.#H()}#H(){if(this.#A)return;while(this.#f.length>0){let E=this.#R(),_=new Map;for(let[A,N]of this.#f.entries()){let M=this.#h.get(N.domainKey),R=this.#T.get(N.ownerId);if(M===void 0||R===void 0||!this.#M(M,R,N.requestClass))continue;let S=this.#z(N,E),D=_.get(N.ownerId);if(!D||S<D.rank||S===D.rank&&A<D.index)_.set(N.ownerId,{pending:N,rank:S,index:A})}let f=[..._.values()].filter(({pending:A})=>{let N=this.#h.get(A.domainKey),M=this.#T.get(A.ownerId);return N!==void 0&&M!==void 0&&this.#M(N,M,A.requestClass)}).map(({pending:A,rank:N})=>({pending:A,rank:N,order:this.#T.get(A.ownerId).order}));if(f.length===0)return;let T=Math.min(...f.map((A)=>A.rank)),h=f.filter((A)=>A.rank===T),Y=h.filter((A)=>A.order>this.#N).sort((A,N)=>A.order-N.order)[0]??h.sort((A,N)=>A.order-N.order)[0];this.#D(Y.pending,Y.order)}}#z(E,_){let f=E.requestClass==="foreground"?0:E.requestClass==="background"?1:2,T=Math.floor(Math.max(0,_-E.enqueuedAt)/this.#E.agingMs);return Math.max(0,f-T)}#D(E,_){if(!this.#B(E,!1))return;E.settled=!0,E.admitted=!0,this.#N=_;let f=this.#Y(E.domainKey,E.ownerId,E.requestClass);E.permit=f,E.resolve(f)}#J(E){let _=this.#h.get(E.domainKey),f=this.#T.get(E.ownerId),T=_&&f?this.#P(_,f,E.requestClass):{scope:"global",resource:"stream",inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight};this.#U(E,new SE("wait_timeout",T.scope,E.requestClass,T.resource,T.inFlight,T.limit,this.#f.length,E.maxWaitMs))}#b(E,_){this.#U(E,_)}#U(E,_){if(!this.#B(E))return;E.settled=!0,E.reject(_),this.#H()}#B(E,_=!0){if(E.settled||E.admitted)return!1;let f=this.#f.indexOf(E);if(f<0)return!1;this.#f.splice(f,1);let T=this.#h.get(E.domainKey),h=this.#T.get(E.ownerId);if(T&&h)this.#G(T,h,E);if(this.#L(E),_)this.#$(E.domainKey,E.ownerId);return!0}#G(E,_,f){let{requestClass:T,pendingBytes:h}=f;this.#_.queued[T]--,E.counters.queued[T]--,_.counters.queued[T]--,this.#_.pendingBytes[T]-=h,E.counters.pendingBytes[T]-=h,_.counters.pendingBytes[T]-=h}#L(E){if(E.timer)clearTimeout(E.timer);if(E.timer=void 0,E.signal&&E.abortListener)E.signal.removeEventListener("abort",E.abortListener);E.abortListener=void 0,E.signal=void 0}#$(E,_){let f=this.#h.get(E);if(f&&q_(f.counters))this.#h.delete(E);let T=this.#T.get(_);if(T&&q_(T.counters))this.#T.delete(_)}#Q(E){let _=Math.max(0,Math.floor(this.#R()-E.enqueuedAt));if(E.admitted)return{state:"admitted",requestClass:E.requestClass,resource:"stream",scope:"domain",queuePosition:0,queueDepth:this.#f.length,inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight,waitMs:_,maxWaitMs:E.maxWaitMs};let f=this.#h.get(E.domainKey),T=this.#T.get(E.ownerId),h=f&&T?this.#P(f,T,E.requestClass):{scope:"global",resource:"stream",inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight};return{state:"queued",requestClass:E.requestClass,resource:h.resource,scope:h.scope,reason:"capacity",queuePosition:this.#k(E,h.scope),queueDepth:this.#f.length,inFlight:h.inFlight,limit:h.limit,waitMs:_,maxWaitMs:E.maxWaitMs}}#Z(E,_){return{state:"admitted",requestClass:E.requestClass,resource:"stream",scope:"domain",queuePosition:0,queueDepth:this.#f.length,inFlight:I(this.#_.inFlight),limit:this.#E.globalMaxInFlight,waitMs:_,maxWaitMs:E.maxWaitMs}}#k(E,_){let f=this.#f.filter((T)=>{switch(_){case"owner":return T.ownerId===E.ownerId;case"domain":return T.domainKey===E.domainKey;case"class":return T.requestClass===E.requestClass;case"global":return!0}});return Math.max(1,f.indexOf(E)+1)}#W(E,_,f,T){return new SE(E,f.scope,_.requestClass,f.resource,f.inFlight,f.limit,T,_.maxWaitMs)}}var y_;function s_(E={}){return y_??=new g_(E),y_}var d_=new WeakSet;class r extends Error{budgetMs;elapsedMs;code="PROVIDER_RECOVERY_BUDGET_EXCEEDED";constructor(E,_){super(`Provider recovery budget exhausted after ${E}ms`);this.budgetMs=E;this.elapsedMs=_;this.name="ProviderRecoveryBudgetExceededError"}}class cE extends Error{timeoutMs;code="PROVIDER_REQUEST_DEADLINE_EXCEEDED";constructor(E){super(`Provider request deadline exceeded after ${E}ms`);this.timeoutMs=E;this.name="ProviderRequestDeadlineExceededError"}}var PT=["gousagelimiterror","freeusagelimiterror","monthly usage limit reached","available balance","insufficient_quota","out of budget","quota exceeded","billing"],ST=["prompt_too_long","prompt is too long","maximum context length","context length exceeded","context_length_exceeded","request too large"],AT=["econnreset","econnrefused","enotfound","eai_again","etimedout","fetch failed","network error","connection error","connection refused","connection lost","other side closed","socket hang up","socket connection was closed","upstream connect","reset before headers","websocket closed","websocket error","http2 request did not get a response"];function l_(E){return(E instanceof Error?E.message:String(E)).toLowerCase()}function MT(E){let _=l_(E);return ST.some((f)=>_.includes(f))}function qE(E){if(E!==null&&typeof E==="object")d_.add(E)}function Dh(E){return E!==null&&typeof E==="object"&&d_.has(E)}function NT(E){return E!==null&&typeof E==="object"&&"code"in E?E.code:void 0}function YT(E){if(E===null||typeof E!=="object")return;let _=E;for(let f of["status","statusCode"]){let T=_[f];if(typeof T==="number"&&Number.isInteger(T))return T}return}function HT(E){let _=E.match(/^(?:error:\s*)?(\d{3})\b/),f=E.match(/\b(?:status(?:\s+code)?|http)[:\s]+(\d{3})\b/),T=Number(_?.[1]??f?.[1]);return Number.isInteger(T)?T:void 0}function y(E,_){let f=l_(E),T=NT(E);if(T==="STREAM_IDLE_TIMEOUT"||T==="PROVIDER_RECOVERY_BUDGET_EXCEEDED"||E instanceof Error&&E.name==="AbortError"||f.includes("request aborted")||f==="aborted")return{retryable:!1};if(PT.some((x)=>f.includes(x))||MT(E))return{retryable:!1};if(_?.shouldRetry==="false")return{retryable:!1,statusCode:_.statusCode};if(T==="PROVIDER_REQUEST_DEADLINE_EXCEEDED")return{retryable:!0,reason:"timeout"};let h=_?.statusCode??YT(E)??HT(f);if(_?.shouldRetry==="true")return{retryable:!0,reason:h===429?"rate_limit":h===408||h===409?"timeout":"server_error",statusCode:h};if(h===429)return{retryable:!0,reason:"rate_limit",statusCode:h};if(h===408||h===409)return{retryable:!0,reason:"timeout",statusCode:h};if(h!==void 0&&h>=500&&h<=599)return{retryable:!0,reason:"server_error",statusCode:h};if(T==="PROVIDER_STREAM_CLOSED"||f.includes("stream closed before completion")||f.includes("ended without")||f.includes("stream ended before"))return{retryable:!0,reason:"stream_closed",statusCode:h};if(AT.some((x)=>f.includes(x)))return{retryable:!0,reason:"transport",statusCode:h};if(f.includes("timeout")||f.includes("timed out")||f.includes("temporarily unavailable")||f.includes("upstream_error")||f.includes("overloaded")||f.includes("rate limit")||f.includes("too many requests")||f.includes("service unavailable")||f.includes("server error")||f.includes("internal error")||f.includes("please retry")||f.includes("try your request again"))return{retryable:!0,reason:f.includes("rate")||f.includes("too many")?"rate_limit":f.includes("timeout")||f.includes("timed out")?"timeout":"server_error",statusCode:h};return{retryable:!1,statusCode:h}}function pE(E,_){if(!E)return;if(E.retryAfterMs!==void 0){let h=Number.parseFloat(E.retryAfterMs);if(Number.isFinite(h))return Math.max(0,h)}if(E.retryAfter===void 0)return;let f=Number.parseFloat(E.retryAfter);if(Number.isFinite(f))return Math.max(0,f*1000);let T=Date.parse(E.retryAfter);return Number.isFinite(T)?Math.max(0,T-_):void 0}function t_(E,_,f={}){let T=f.now??Date.now(),h=f.maxDelayMs??60000,x=pE(_,T);if(x!==void 0)return Math.min(Math.ceil(x),h);let Y=Math.max(0,E-1),A=f.maxExponentialDelayMs??8000,N=Math.min(500*2**Y,A),M=Math.max(0,Math.min(1,f.random??Math.random())),R=N*(0.75+M*0.25);return Math.min(Math.round(R),h)}function mE(E,_){return{provider:yE(E),model:yE(_)}}function o_(E,_){if(l(E))return{source:"admission",reason:E.reason};if(PE(E))return{source:"circuit",reason:E.circuit.reason,...E.circuit.statusCode!==void 0?{statusCode:E.circuit.statusCode}:{}};if(E!==null&&typeof E==="object"&&"code"in E&&E.code==="STREAM_IDLE_TIMEOUT")return{source:"stall",reason:"timeout"};let f=y(E,_);if(f.retryable&&f.reason)return{source:"retry",reason:f.reason,...f.statusCode!==void 0?{statusCode:f.statusCode}:{}};throw Error("Provider fallback trigger is not classified")}function a_(E,_={}){let f=_.maxBytes??134217728,T=_.maxNodes??1e5;if(!Number.isSafeInteger(f)||f<=0||f>=Number.MAX_SAFE_INTEGER)throw Error("maxBytes must be a positive safe integer");if(!Number.isSafeInteger(T)||T<=0)throw Error("maxNodes must be a positive safe integer");let h=new WeakSet,x=0,Y=0,A=!1,N=(R)=>{if(A||R<=0)return;if(!Number.isSafeInteger(R)||R>f-x){x=f+1,A=!0;return}x+=R},M=(R)=>{if(A)return;if(Y+=1,Y>T){N(f+1);return}if(R===null){N(4);return}switch(typeof R){case"string":N(Buffer.byteLength(R,"utf8"));return;case"number":case"bigint":N(8);return;case"boolean":N(4);return;case"undefined":case"function":case"symbol":return;case"object":break}if(h.has(R))return;if(h.add(R),ArrayBuffer.isView(R)){N(32+R.byteLength);return}if(R instanceof ArrayBuffer){N(32+R.byteLength);return}if(R instanceof Date){N(40);return}if(R instanceof RegExp){N(32+Buffer.byteLength(R.source,"utf8"));return}if(R instanceof Map){N(32);for(let[S,D]of R)if(M(S),M(D),A)return;return}if(R instanceof Set){N(32);for(let S of R)if(M(S),A)return;return}if(R instanceof WeakMap||R instanceof WeakSet){N(32);return}if(Array.isArray(R)){N(16);for(let S of R)if(M(S),A)return;return}N(32);for(let S of Reflect.ownKeys(R)){if(typeof S!=="string")continue;let D=Object.getOwnPropertyDescriptor(R,S);if(!D?.enumerable||!("value"in D))continue;if(N(8+Buffer.byteLength(S,"utf8")),M(D.value),A)return}};return M(E),x}function r_(E){return a_([E.messages,E.context,E.tools,E.requestOptions],{maxBytes:q})}function e_(E,_){let f=E.onPayload;E.onPayload=async(T,h)=>{let x=f?await f(T,h):T;return _(x===void 0?T:x,h)}}function DT(E){if(!E.reasoningEnabled)return;return E.reasoningEffort??E.reasoningLevel??"high"}function gE(E,_,f){if(!E.enablePromptCaching)return"none";if(f&&_.api==="openai-completions"&&!_.baseUrl.includes("api.openai.com"))return"long";return"short"}function UT(E){switch(E){case"minimal":return"MINIMAL";case"low":return"LOW";case"medium":return"MEDIUM";default:return"HIGH"}}function BT(E,_,f,T){let h=T?void 0:DT(f);if(!h){if(_.api==="anthropic-messages")E.thinkingEnabled=!1;if(_.api==="google-generative-ai"||_.api==="google-vertex")E.thinking={enabled:!1};return}switch(_.api){case"anthropic-messages":E.thinkingEnabled=!0,E.effort=h;break;case"google-generative-ai":case"google-vertex":E.thinking={enabled:!0,level:UT(h)};break;case"mistral-conversations":E.reasoningEffort="high";break;case"bedrock-converse-stream":case"pi-messages":E.reasoning=h;break;default:E.reasoningEffort=h}}function IT(E,_,f){if(!f)return;switch(_){case"anthropic-messages":case"bedrock-converse-stream":E.toolChoice={type:"tool",name:f};break;case"openai-completions":case"mistral-conversations":case"pi-messages":E.toolChoice={type:"function",function:{name:f}};break;case"openai-responses":case"openai-codex-responses":case"azure-openai-responses":E.toolChoice={type:"function",name:f};break;case"google-generative-ai":case"google-vertex":E.toolChoice="any";break}}function OT(E,_,f){let T=f.serviceTier;if(!T)return;if(_.api==="openai-responses"||_.api==="openai-codex-responses"||_.api==="azure-openai-responses"){E.serviceTier=T;return}if(_.api!=="openai-completions"&&!(_.api==="anthropic-messages"&&T==="fast"))return;e_(E,(h)=>{if(!h||typeof h!=="object"||Array.isArray(h))return h;return _.api==="anthropic-messages"?{...h,speed:"fast"}:{...h,service_tier:T}})}function bT(E,_,f){let T=f.responseVerbosity;if(!T)return;if(i_(_,T),_.api==="openai-codex-responses"){E.textVerbosity=T;return}e_(E,(h)=>{if(!h||typeof h!=="object"||Array.isArray(h))return h;if(_.api==="openai-completions")return{...h,verbosity:T};let x="text"in h&&h.text&&typeof h.text==="object"&&!Array.isArray(h.text)?h.text:{};return{...h,text:{...x,verbosity:T}}})}function Ef(E,_,f,T,h=!1){let x={apiKey:E.apiKey,headers:E.customHeaders,signal:f,temperature:T?.temperature??E.temperature??0,maxTokens:T?.maxOutputTokens??E.maxOutputTokens,timeoutMs:E.timeout,maxRetries:0,cacheRetention:gE(E,_,T?.providerSessionId),sessionId:T?.providerSessionId};if(BT(x,_,E,h),IT(x,_.api,T?.toolChoice?.toolName),OT(x,_,E),bT(x,_,E),_.api==="azure-openai-responses")x.azureBaseUrl=E.baseUrl,x.azureApiVersion=E.apiVersion,x.azureDeploymentName=_.id;return x}function n_(E,_){let f=_.get("x-should-retry");return{statusCode:E,..._.get("retry-after")!==null?{retryAfter:_.get("retry-after")??void 0}:{},..._.get("retry-after-ms")!==null?{retryAfterMs:_.get("retry-after-ms")??void 0}:{},...f==="true"||f==="false"?{shouldRetry:f}:{}}}var VT=new Set(["anthropic-messages","openai-completions","openai-responses","openai-codex-responses","azure-openai-responses","pi-messages"]);function _f(E,_,f){let T=E.onResponse;if(E.onResponse=async(x,Y)=>{let A=new Headers(x.headers);f(n_(x.status,A)),await T?.(x,Y)},!VT.has(_.api)||typeof globalThis.fetch!=="function")return;let h=typeof E.fetch==="function"?E.fetch:globalThis.fetch.bind(globalThis);E.fetch=async(x,Y)=>{let A=await h(x,Y);return f(n_(A.status,A.headers)),A}}function ff(E){return{promptTokens:E.input+E.cacheRead+E.cacheWrite,completionTokens:E.output,totalTokens:E.totalTokens,costUsd:E.cost.total,...E.reasoning!==void 0?{reasoningTokens:E.reasoning}:{},...E.cacheWrite>0?{cacheCreationInputTokens:E.cacheWrite}:{},...E.cacheRead>0?{cacheReadInputTokens:E.cacheRead}:{}}}var OE=300000,XT=30000;class Tf extends Error{timeoutMs;code="STREAM_IDLE_TIMEOUT";constructor(E){super(`Provider stream idle timeout after ${E}ms without an event`);this.timeoutMs=E;this.name="StreamIdleTimeoutError"}}class hf extends Error{code="PROVIDER_STREAM_CLOSED";constructor(){super("Provider stream closed before completion");this.name="ProviderStreamClosedError"}}function sE(E){return E.reason instanceof Error?E.reason:new DOMException("Aborted","AbortError")}function jT(E){return E.idleTimeoutMs&&E.idleTimeoutMs>0?E.idleTimeoutMs:OE}function zT(E,_){if(_===0)return;let f=_!==void 0&&_>0?_:XT;return Math.max(1,Math.min(f,Math.floor(E/2)))}function JT(E,_,f){if(f?.aborted)return Promise.reject(sE(f));return new Promise((T,h)=>{let x=!1,Y=()=>{clearTimeout(R),f?.removeEventListener("abort",M)},A=(S)=>{if(x)return;x=!0,Y(),T(S)},N=(S)=>{if(x)return;x=!0,Y(),h(S instanceof Error?S:Error(String(S)))},M=()=>{if(f)N(sE(f))},R=setTimeout(()=>A({kind:"timer"}),Math.max(0,_));if(f?.addEventListener("abort",M,{once:!0}),f?.aborted){M();return}E.then((S)=>A({kind:"next",result:S}),N)})}async function*WT(E,_,f){let T=jT(_),h=zT(T,_.stallWarningMs);if(_.signal?.aborted)throw sE(_.signal);let x=Date.now(),Y=Promise.resolve().then(()=>E.next()),A;for(;;){let M=await JT(Y,(A?T:h??T)-(Date.now()-x),_.signal);if(M.kind==="next"){if(A)yield{...A,phase:"recovered",durationMs:Math.max(A.durationMs,Date.now()-x)};return M.result}if(!A&&h!==void 0){f.stallCount++,A={phase:"detected",stallCount:f.stallCount,durationMs:h,warningAfterMs:h,timeoutMs:T,outputStarted:f.outputStarted},yield A;continue}let R=new Tf(T);throw _.abort?.(R),R}}async function*xf(E,_,f,T,h={}){let Y=E.stream(_,f,T)[Symbol.asyncIterator](),A=0,N=!1,M={stallCount:0,outputStarted:!1};try{while(!0){let R=WT(Y,h,M),S=await R.next();while(!S.done)yield{providerStall:S.value},S=await R.next();let D=S.value;if(D.done)throw new hf;let O=D.value;switch(O.type){case"text_delta":M.outputStarted=!0,yield{content:O.delta};break;case"thinking_delta":M.outputStarted=!0,yield{reasoningContent:O.delta};break;case"toolcall_end":M.outputStarted=!0,yield{toolCalls:[{index:A++,id:O.toolCall.id,type:"function",function:{name:O.toolCall.name,arguments:JSON.stringify(O.toolCall.arguments)}}]};break;case"done":N=!0,yield{finishReason:O.reason,usage:ff(O.message.usage)};return;case"error":throw Error(O.error.errorMessage??`Request ${O.reason==="aborted"?"aborted":"failed"}`)}}}finally{if(!N)Promise.resolve(Y.return?.()).catch(()=>{return})}}var dE=o("Chat"),$T=1;function GT(E,_){let f=_.provider===E.provider,T=f&&_.channel===void 0,h=_.channel;return{...E,provider:_.provider,model:_.model,apiKey:h?.apiKey??(T?E.apiKey:void 0),baseUrl:h?.baseUrl??(T?E.baseUrl:void 0),temperature:h?.temperature??E.temperature,maxOutputTokens:h?.maxOutputTokens??(T?E.maxOutputTokens:void 0),timeout:h?.timeout??E.timeout,streamIdleTimeout:h?.streamIdleTimeout??E.streamIdleTimeout,apiVersion:h?.apiVersion??(T?E.apiVersion:void 0),customHeaders:h?.customHeaders??(T?E.customHeaders:void 0),enablePromptCaching:h?.enablePromptCaching??(T?E.enablePromptCaching:void 0),serviceTier:f?E.serviceTier:void 0,responseVerbosity:f?E.responseVerbosity:void 0,fallbackModels:void 0}}function LT(E){return Boolean(E&&E.role==="user"&&Array.isArray(E.content)&&E.content.some((_)=>_.type==="image_url"))}function QT(E){let f=E.findLast((T)=>{let h=T.metadata;return h!==null&&typeof h==="object"&&!Array.isArray(h)&&h.isCompactSummary===!0})?.metadata;return f!==null&&typeof f==="object"&&!Array.isArray(f)&&typeof f.parentId==="string"?f.parentId:""}function ZT(E,_){let f=y(E,_);if(!f.retryable||!f.reason)return;let T=f.statusCode;switch(f.reason){case"rate_limit":if(T!==429)return;break;case"server_error":if(T===void 0||T<500||T>599)return;break;case"transport":case"stream_closed":break;case"timeout":return}let h=pE(_,Date.now());return{reason:f.reason,...T!==void 0?{statusCode:T}:{},...h!==void 0?{retryAfterMs:h}:{}}}function lE(E){return E!==null&&typeof E==="object"&&"code"in E&&E.code==="STREAM_IDLE_TIMEOUT"}class aE{config;models;model;promptCacheBreakMonitor=new LE;providerAdmissionScheduler;admissionFallbackOwnerId=`pi-service-${process.pid}-${$T++}`;constructor(E){let _=GE(E);this.config={...E,maxContextTokens:_.model.contextWindow,maxOutputTokens:E.maxOutputTokens??_.model.maxTokens},this.models=_.models,this.model=_.model,this.providerAdmissionScheduler=Rf(this.config),dE.debug("[PiAIChatService] Initialized",{provider:this.model.provider,model:this.model.id,api:this.model.api})}async chat(E,_,f,T){let h="",x="",Y=[],A,N;for await(let M of this.streamChat(E,_,f,T)){h+=M.content??"",x+=M.reasoningContent??"";for(let R of M.toolCalls??[])if(R.id&&R.type==="function"&&R.function?.name)Y.push(R);A=M.usage??A,N=M.finishReason??N}return{content:h,...x?{reasoningContent:x}:{},...Y.length>0?{toolCalls:Y}:{},usage:A,finishReason:N}}async*streamChat(E,_,f,T){let h=T?.toolChoice?.toolName;if(h&&!_?.some((P)=>P.name===h))throw Error(`Required tool is unavailable: ${h}`);let x=D_(E);if(x.some((P)=>LT(P))&&!this.model.input.includes("image"))throw Error(`${this.model.name} does not support image input`);let Y=Boolean(h)||U_(x),A=await H_(x,this.model,_,f,h),N=(P,H)=>{let j=T?.providerSessionId;if(!j||!P.usage)return P;if(!this.config.enablePromptCaching)return this.promptCacheBreakMonitor.clear(j),P;let b=gE(this.config,H,j),U=this.promptCacheBreakMonitor.observe({sessionId:j,modelIdentity:`${H.provider}\x00${H.api}\x00${H.id}`,context:A,retention:b,contextEpoch:QT(x),policy:{baseUrl:H.baseUrl??this.config.baseUrl??"",retention:b,requiredTool:h??"",reasoningEnabled:this.config.reasoningEnabled??!1,reasoningEffort:this.config.reasoningEffort??this.config.reasoningLevel??"",serviceTier:this.config.serviceTier??"",responseVerbosity:this.config.responseVerbosity??"",temperature:T?.temperature??this.config.temperature??0,maxOutputTokens:T?.maxOutputTokens??this.config.maxOutputTokens??0,customHeaders:this.config.customHeaders??{}},usage:P.usage});if(!U)return P;return dE.warn("[PiAIChatService] Prompt cache break detected",{reason:U.reason,previousCacheReadTokens:U.previousCacheReadTokens,cacheReadTokens:U.cacheReadTokens,tokenDrop:U.tokenDrop,callNumber:U.callNumber}),{...P,usage:{...P.usage,promptCacheBreak:U}}},M=r_({messages:x,context:A,tools:_,requestOptions:T}),R=T?.providerRecovery;if(R&&!Sf(R.budgetMs))throw Error("Invalid bounded foreground Provider recovery budget");let S=R?.mode==="bounded_foreground"&&R.budgetMs>0?{budgetMs:R.budgetMs,startedAt:void 0}:void 0,D=S?"bounded_foreground":"standard",O=this.config.maxRetries??2,Q=this.config.maxRetries??(S?Pf:2),u=S!==void 0&&this.config.maxRetries===void 0,C=0,w,bE=this.config.providerCircuitRegistry??J_(),AE=this.config.providerCircuitBreakerOpenMs??ZE,Af=Math.max(UE,Math.min(this.config.streamIdleTimeout??OE,KE)),rE=this.providerAdmissionScheduler,Mf=this.config.providerRequestConcurrency??d,nE=this.config.providerRequestAdmissionMs??vE,Nf=this.config.providerRequestPendingBytes??wE,VE=T?.providerAdmission??{sessionId:this.admissionFallbackOwnerId,ownerId:this.admissionFallbackOwnerId,requestClass:"internal"},Yf=(P,H)=>bE.get({provider:P.provider,api:P.api,baseUrl:P.baseUrl??H.baseUrl??"",model:P.id,serviceTier:H.serviceTier,apiVersion:H.apiVersion,apiKey:H.apiKey,customHeaders:H.customHeaders,openDurationMs:AE,probeLeaseMs:Af}),Hf=(P,H)=>({provider:P.provider,api:P.api,baseUrl:P.baseUrl??H.baseUrl??"",model:P.id,serviceTier:H.serviceTier,apiVersion:H.apiVersion,apiKey:H.apiKey,customHeaders:H.customHeaders,maxConcurrent:Mf,maxPendingBytes:Nf}),J=(P=Date.now())=>{if(!S)return;let H=S.startedAt===void 0?0:Math.min(S.budgetMs,Math.max(0,P-S.startedAt));return{recoveryBudgetMs:S.budgetMs,recoveryElapsedMs:H,recoveryRemainingMs:Math.max(0,S.budgetMs-H)}},p=()=>({mode:D,...J()??{}}),iE=()=>{if(S&&S.startedAt===void 0)S.startedAt=Date.now()},m=()=>{let P=J();return new r(S?.budgetMs??0,P?.recoveryElapsedMs??0)},n=()=>!u||C<Q+1,XE=(P,H)=>{let{state:j,...b}=H;return{phase:P,...b,...J()?{recoveryRemainingMs:J()?.recoveryRemainingMs}:{}}},eE=(P)=>({phase:"rejected",requestClass:P.requestClass,resource:P.resource,scope:P.scope,reason:P.reason,queuePosition:0,queueDepth:Math.max(0,P.queued),inFlight:Math.max(0,P.inFlight),limit:Math.max(0,P.limit),waitMs:P.reason==="wait_timeout"?P.maxWaitMs:0,maxWaitMs:P.maxWaitMs,...J()?{recoveryRemainingMs:J()?.recoveryRemainingMs}:{}}),Df=async function*(P,H){if(!rE)return{release:()=>{return}};let j=J()?.recoveryRemainingMs,b=j!==void 0&&S?.startedAt!==void 0?Math.min(nE,j):nE,U;try{U=rE.admit({scope:Hf(P,H),sessionId:VE.sessionId,ownerId:VE.ownerId,requestClass:VE.requestClass,maxWaitMs:b,pendingBytes:M,signal:f})}catch(V){if(l(V)){if(V.reason==="wait_timeout"&&S?.startedAt!==void 0&&(J()?.recoveryRemainingMs??0)<=0)throw m();yield{providerAdmission:eE(V)}}throw V}let k=U.getSnapshot();if(k.state==="admitted")return await U.ready;yield{providerAdmission:XE("queued",k)};let c=U.ready.then((V)=>({kind:"ready",permit:V}),(V)=>({kind:"error",error:V}));while(!0){let V=U.getSnapshot(),X=Math.max(1,Math.min(m_,Math.max(1,b-V.waitMs))),G,W=new Promise((g)=>{G=setTimeout(()=>g({kind:"heartbeat"}),X),G.unref?.()}),K=await Promise.race([c,W]);if(G)clearTimeout(G);if(K.kind==="heartbeat"){yield{providerAdmission:XE("queued",U.getSnapshot())};continue}if(K.kind==="error"){if(l(K.error)){if(K.error.reason==="wait_timeout"&&S?.startedAt!==void 0&&(J()?.recoveryRemainingMs??0)<=0)throw m();yield{providerAdmission:eE(K.error)}}throw K.error}return yield{providerAdmission:XE("admitted",U.getSnapshot())},K.permit}},Uf=(P,H)=>{if(!n())throw m();if(u)C++;w=void 0;let j=new AbortController,b=f?P_(f,j.signal):j.signal,U=typeof H.timeout==="number"&&Number.isFinite(H.timeout)&&H.timeout>0?Math.max(1,Math.floor(H.timeout)):void 0,k;if(S?.startedAt!==void 0){let X=J()?.recoveryRemainingMs??0;if(X<=0)throw m();k={remainingMs:X,error:new r(S.budgetMs,S.budgetMs)}}let c=Ef(H,P,b,T,Y);_f(c,P,(X)=>{w=X});let V=xf(this.models,P,A,c,{idleTimeoutMs:H.streamIdleTimeout??OE,signal:b,abort:(X)=>j.abort(X)});return async function*(){let X,G;try{if(U!==void 0&&(k===void 0||U<k.remainingMs)){let W=new cE(U);X=setTimeout(()=>j.abort(W),U),X.unref?.()}if(k){let W=k;G=setTimeout(()=>j.abort(W.error),W.remainingMs),G.unref?.()}yield*V}finally{if(X)clearTimeout(X);if(G)clearTimeout(G)}}()},E_=this,t=(P)=>({phase:P.phase,reason:P.reason,...P.statusCode!==void 0?{statusCode:P.statusCode}:{},...P.retryAfterMs!==void 0?{retryAfterMs:P.retryAfterMs}:{},...P.nextProbeAt!==void 0?{nextProbeAt:P.nextProbeAt}:{},openDurationMs:P.openDurationMs,sampleCount:P.sampleCount,failureCount:P.failureCount,...J()?{recoveryRemainingMs:J()?.recoveryRemainingMs}:{}}),__=(P,H)=>({phase:P,reason:H.reason,...H.statusCode!==void 0?{statusCode:H.statusCode}:{},retryAfterMs:H.retryAfterMs,...H.nextProbeAt!==void 0?{nextProbeAt:H.nextProbeAt}:{},openDurationMs:H.openDurationMs,sampleCount:H.sampleCount,failureCount:H.failureCount,...J()?{recoveryRemainingMs:J()?.recoveryRemainingMs}:{}}),Bf=(P)=>({phase:"probe",reason:P.reason??"server_error",...P.statusCode!==void 0?{statusCode:P.statusCode}:{},openDurationMs:P.openDurationMs??AE,...P.sampleCount!==void 0?{sampleCount:P.sampleCount}:{},...P.failureCount!==void 0?{failureCount:P.failureCount}:{},...J()?{recoveryRemainingMs:J()?.recoveryRemainingMs}:{}}),jE=(P,H,j)=>({providerRetry:{phase:"exhausted",attempt:P,maxRetries:Q,reason:H,...j!==void 0?{statusCode:j}:{},...p(),exhaustedBy:"recovery_budget"}}),f_=async function*(P,H,j,b,U){let k,c=!1,V,X,G=Yf(P,H);for(let W=0;W<=b;W++){if(!n())break;let K,g;while(!K){let B=G.preflight();while(!B.eligible){if(V=B.reason,X=B.statusCode,!S||!U){let v=__("rejected",B);throw yield{providerCircuit:v},new RE(v)}iE();let z=J()?.recoveryRemainingMs??0;if(z<=0){let v=m();throw yield jE(u?Math.max(0,C-1):W,B.reason,B.statusCode),v}yield{providerCircuit:__("waiting",B)};let s=Math.min(Math.max(1,B.retryAfterMs),tE,z);if(await fE(s,f,{throwOnAbort:!0}),(J()?.recoveryRemainingMs??0)<=0){let v=m();throw yield jE(u?Math.max(0,C-1):W,B.reason,B.statusCode),v}B=G.preflight()}try{g=yield*Df(P,H)}catch(F){if(F instanceof r)yield jE(u?Math.max(0,C-1):W,V??"timeout",X);throw F}let Z=G.check();if(Z.allowed)K=Z;else g.release(),g=void 0}let e=K.token;if(K.probe)yield{providerCircuit:Bf(K)};try{let B=!1,Z=!1;for await(let F of Uf(P,H)){if(F.providerStall){yield F;continue}let z=u?C-1:W;if(z>0&&V&&!B)B=!0,yield{providerRetry:{phase:"recovered",attempt:z,maxRetries:Q,reason:V,...X!==void 0?{statusCode:X}:{},...p()}};if(!Z){Z=!0;let s=G.recordSuccess(e);if(s)yield{providerCircuit:t(s)}}c=!0,j(),yield N(F,P)}if(!Z){let F=G.recordSuccess(e);if(F)yield{providerCircuit:t(F)}}return}catch(B){if(g?.release(),k=B,E_.logIdleTimeout(B,c,P),await E_.handleAbort(f),B instanceof r){if(c)throw qE(B),B;throw yield{providerRetry:{phase:"exhausted",attempt:u?Math.max(0,C-1):W,maxRetries:Q,reason:V??"timeout",...X!==void 0?{statusCode:X}:{},...p(),exhaustedBy:"recovery_budget"}},B}let Z=y(B,w);if(c)throw qE(B),B;let F=ZT(B,w),z=F?G.recordFailure(e,F):w&&!lE(B)?G.recordNeutral(e):void 0;if(z)yield{providerCircuit:t(z)};if(!Z.retryable||!Z.reason){if(W>0&&V)yield{providerRetry:{phase:"exhausted",attempt:u?Math.max(0,C-1):W,maxRetries:Q,reason:V,...X!==void 0?{statusCode:X}:{},...p()}};throw B}V=Z.reason,X=Z.statusCode;let s=W<b&&n();if(z&&z.phase!=="closed"&&s&&(!S||!U)){let v={...t(z),phase:"rejected"};throw yield{providerCircuit:v},new RE(v)}if(s){iE();let v=u?C:W+1,Of=t_(v,w,S?{maxDelayMs:oE,maxExponentialDelayMs:oE}:void 0),h_=z&&z.phase!=="closed"?z.retryAfterMs??0:0;if(S&&h_>0&&z)yield{providerCircuit:{...t(z),phase:"waiting"}};let bf=J(),JE=Math.max(Of,h_),EE=S?Math.min(JE,bf?.recoveryRemainingMs??JE):JE,NE={attempt:v,maxRetries:Q,reason:Z.reason,...Z.statusCode!==void 0?{statusCode:Z.statusCode}:{}};if(yield{providerRetry:{phase:"scheduled",...NE,delayMs:EE,nextRetryAt:Date.now()+EE,...p()}},S){let _E=EE;while(_E>0){let x_=Math.min(_E,tE);if(await fE(x_,f,{throwOnAbort:!0}),_E-=x_,(J()?.recoveryRemainingMs??0)<=0){let YE=m();throw yield{providerRetry:{phase:"exhausted",...NE,...p(),exhaustedBy:"recovery_budget"}},YE}if(_E>0){if(z&&z.phase!=="closed"&&z.nextProbeAt!==void 0){let YE=Math.max(0,z.nextProbeAt-Date.now());if(YE>0)yield{providerCircuit:{...t(z),phase:"waiting",retryAfterMs:YE}}}yield{providerRetry:{phase:"waiting",...NE,delayMs:EE,nextRetryAt:Date.now()+_E,...p()}}}}}else await fE(EE,f,{throwOnAbort:!0});yield{providerRetry:{phase:"attempt",...NE,...p()}}}else yield{providerRetry:{phase:"exhausted",attempt:u?Math.max(0,C-1):W,maxRetries:Q,reason:Z.reason,...Z.statusCode!==void 0?{statusCode:Z.statusCode}:{},...p(),...S&&(U||!n())?{exhaustedBy:"attempt_limit"}:{}}}}finally{G.abandon(e),g?.release()}}throw k},ME,T_=!1,zE=this.model,i=this.config.fallbackModels??[],If=S&&i.length>0?Math.min(O,Q):Q;try{for await(let P of f_(this.model,this.config,()=>{T_=!0},If,i.length===0))yield P;return}catch(P){if(ME=P,T_||!l(P)&&!PE(P)&&!lE(P)&&!y(P,w).retryable)throw P}for(let[P,H]of i.entries()){if(!n())break;let j=!1;try{let b=GT(this.config,H),U=O_(b,H);yield{modelFallback:{from:mE(zE.provider,zE.id),to:mE(U.provider,U.id),candidate:P+1,candidateCount:i.length,trigger:o_(ME,w)}},zE=U;let k=P===i.length-1,c=S&&!k?Math.min(O,Q):Q;for await(let V of f_(U,b,()=>{j=!0},c,k))yield V;return}catch(b){if(ME=b,j||!l(b)&&!PE(b)&&!lE(b)&&!y(b,w).retryable)throw b}}throw ME}async handleAbort(E){if(E?.aborted)await fE(0,E,{throwOnAbort:!0})}logIdleTimeout(E,_,f){if(E===null||typeof E!=="object"||!("code"in E)||E.code!=="STREAM_IDLE_TIMEOUT"||!("timeoutMs"in E)||typeof E.timeoutMs!=="number")return;dE.warn("[PiAIChatService] Provider stream idle timeout",{provider:f.provider,model:f.id,timeoutMs:E.timeoutMs,replayBoundaryCrossed:_})}getConfig(){return{...this.config}}updateConfig(E){let _={...this.config,...E},f=GE(_);this.config={..._,maxContextTokens:f.model.contextWindow,maxOutputTokens:_.maxOutputTokens??f.model.maxTokens},this.models=f.models,this.model=f.model,this.providerAdmissionScheduler=Rf(this.config)}}function Rf(E){if(E.providerRequestAdmissionScheduler)return E.providerRequestAdmissionScheduler;if(E.providerRequestConcurrency===void 0&&E.providerGlobalConcurrency===void 0&&E.providerOwnerConcurrency===void 0)return;let _=E.providerGlobalConcurrency??Number.MAX_SAFE_INTEGER,f=E.providerOwnerConcurrency??Number.MAX_SAFE_INTEGER;return s_({globalMaxInFlight:_,ownerMaxInFlight:f,nonForegroundGlobalMaxInFlight:_,nonForegroundOwnerMaxInFlight:f,internalGlobalMaxInFlight:_,internalDomainMaxInFlight:E.providerRequestConcurrency??d,classLimitsEnabled:!1})}var kT=o("Service");async function rh(E){let _=E;if(_.provider){let f=R_(_.provider);if(Object.keys(f).length>0)_={..._,customHeaders:{...f,..._.customHeaders}},kT.debug(`Injected ${_.provider} specific headers:`,Object.keys(f))}return KT(_)}function KT(E){return new aE(E)}
8
+ export{CT as eg,cT as fg,P_ as gg,fE as hg,l as ig,MT as jg,Dh as kg,y as lg,t_ as mg,a_ as ng,aE as og,rh as pg};
@@ -1,2 +1,2 @@
1
1
  import{realpathSync as z}from"fs";import{cwd as F}from"process";var u=null;function G(){let m="";if(typeof process<"u"&&typeof process.cwd==="function"&&typeof z==="function"){let x=F();try{m=z(x).normalize("NFC")}catch{m=x.normalize("NFC")}}return{cwd:m,originalCwd:m,projectRoot:m}}function q(){if(!u)u=G();return u}function B(){return q().cwd}function N(m){q().cwd=m.normalize("NFC")}function D(){return q().originalCwd}function P(m){q().projectRoot=m.normalize("NFC")}import{AsyncLocalStorage as H}from"async_hooks";var I=new H;function J(){return I.getStore()??B()}function V(){try{return J()}catch{return D()}}
2
- export{N as Zi,D as _i,P as $i,V as aj};
2
+ export{N as _i,D as $i,P as aj,V as bj};
@@ -1,3 +1,3 @@
1
- import{ek as K}from"./chunk-7xtxvrh8.js";import{appendFileSync as Y,existsSync as Z,mkdirSync as _,readdirSync as f,statSync as M,unlinkSync as p}from"node:fs";import x from"node:path";var E;((T)=>{T[T.DEBUG=0]="DEBUG";T[T.INFO=1]="INFO";T[T.WARN=2]="WARN";T[T.ERROR=3]="ERROR"})(E||={});var t=null,G=null,H=!1;function S(n){if(t!==n)t=n}async function b(){}function z(){if(H)return G;H=!0;try{let n=x.join(K(),"logs");if(!Z(n))_(n,{recursive:!0,mode:493});if(M(n).uid===0&&process.getuid&&process.getuid()!==0)return console.error(""),console.error("[FAIL] 权限错误:~/.blade/logs 目录属于 root 用户"),console.error(""),console.error("这通常是因为您曾经使用 sudo 运行过 blade。"),console.error(""),console.error("解决方法:"),console.error(" sudo chown -R $USER:$USER ~/.blade/"),console.error(""),console.error("然后重新运行 blade(不要使用 sudo)"),console.error(""),null;return B(n,30),G=n,n}catch(n){return console.error("[Logger] 无法创建日志目录:",n),null}}function B(n,u){try{let c=f(n),w=Date.now(),T=u*24*60*60*1000;for(let $ of c){if(!$.startsWith("blade-")||!$.endsWith(".log")&&!$.endsWith(".jsonl"))continue;let m=x.join(n,$);try{let q=M(m);if(w-q.mtimeMs>T)p(m)}catch(q){}}}catch(c){}}function J(){let n=z();if(!n)return null;let u=t||"default";return x.join(n,`blade-${u}.jsonl`)}function U(n,u,c){let w=J();if(!w)return;try{let T={timestamp:new Date().toISOString(),level:E[u],category:n,message:c};Y(w,JSON.stringify(T)+`
1
+ import{fk as K}from"./chunk-4wx5sya5.js";import{appendFileSync as Y,existsSync as Z,mkdirSync as _,readdirSync as f,statSync as M,unlinkSync as p}from"node:fs";import x from"node:path";var E;((T)=>{T[T.DEBUG=0]="DEBUG";T[T.INFO=1]="INFO";T[T.WARN=2]="WARN";T[T.ERROR=3]="ERROR"})(E||={});var t=null,G=null,H=!1;function S(n){if(t!==n)t=n}async function b(){}function z(){if(H)return G;H=!0;try{let n=x.join(K(),"logs");if(!Z(n))_(n,{recursive:!0,mode:493});if(M(n).uid===0&&process.getuid&&process.getuid()!==0)return console.error(""),console.error("[FAIL] 权限错误:~/.blade/logs 目录属于 root 用户"),console.error(""),console.error("这通常是因为您曾经使用 sudo 运行过 blade。"),console.error(""),console.error("解决方法:"),console.error(" sudo chown -R $USER:$USER ~/.blade/"),console.error(""),console.error("然后重新运行 blade(不要使用 sudo)"),console.error(""),null;return B(n,30),G=n,n}catch(n){return console.error("[Logger] 无法创建日志目录:",n),null}}function B(n,u){try{let c=f(n),w=Date.now(),T=u*24*60*60*1000;for(let $ of c){if(!$.startsWith("blade-")||!$.endsWith(".log")&&!$.endsWith(".jsonl"))continue;let m=x.join(n,$);try{let q=M(m);if(w-q.mtimeMs>T)p(m)}catch(q){}}}catch(c){}}function J(){let n=z();if(!n)return null;let u=t||"default";return x.join(n,`blade-${u}.jsonl`)}function U(n,u,c){let w=J();if(!w)return;try{let T={timestamp:new Date().toISOString(),level:E[u],category:n,message:c};Y(w,JSON.stringify(T)+`
2
2
  `)}catch(T){}}class k{static globalDebugConfig=null;enabled;minLevel;category;constructor(n={}){if(n.enabled!==void 0)this.enabled=n.enabled;else if(k.globalDebugConfig!==null)this.enabled=Boolean(k.globalDebugConfig);else this.enabled=!1;this.minLevel=n.minLevel??0,this.category=n.category??"General"}static setGlobalDebug(n){k.globalDebugConfig=n}static clearGlobalDebug(){k.globalDebugConfig=null}setEnabled(n){this.enabled=n}parseDebugFilter(n){if(!n)return{enabled:!1};if(n===!0||n==="true"||n==="1")return{enabled:!0};let u=String(n).trim();if(!u)return{enabled:!0};if(u.startsWith("!"))return{enabled:!0,filter:{mode:"exclude",categories:u.split(",").map((T)=>T.trim().replace(/^!/,"")).filter(Boolean)}};return{enabled:!0,filter:{mode:"include",categories:u.split(",").map((w)=>w.trim()).filter(Boolean)}}}shouldLogCategory(n){if(!n)return!0;let u=this.category.toLowerCase();if(n.mode==="include")return n.categories.some((c)=>u.includes(c.toLowerCase()));return!n.categories.some((c)=>u.includes(c.toLowerCase()))}shouldLogToConsole(n){if(k.globalDebugConfig!==null){let{enabled:u,filter:c}=this.parseDebugFilter(k.globalDebugConfig);if(!u)return!1;if(n<this.minLevel)return!1;return this.shouldLogCategory(c)}return this.enabled&&n>=this.minLevel}log(n,...u){let c=u.map((w)=>typeof w==="object"?JSON.stringify(w):String(w)).join(" ");if(U(this.category,n,c),this.shouldLogToConsole(n)){let w=E[n],T=`[${this.category}] [${w}]`;console.error(T,...u)}}debug(...n){this.log(0,...n)}info(...n){this.log(1,...n)}warn(...n){this.log(2,...n)}error(...n){this.log(3,...n)}}function h(n,u){return new k({...u,category:n})}var s=new k({category:"General"});import F from"typebox/schema";import R from"typebox/value";class A extends Error{issues;constructor(n){super(n.map((u)=>{return`${u.path.length>0?u.path.join("."):"root"}: ${u.message}`}).join("; "));this.issues=n;this.name="SchemaValidationError"}}function O(n){if(!n)return[];return n.split("/").slice(1).map((u)=>u.replace(/~1/g,"/").replace(/~0/g,"~")).map((u)=>/^(0|[1-9]\d*)$/.test(u)?Number(u):u)}function P(n,u){let c=n;for(let w of u){if(c===null||typeof c!=="object")return;c=c[w]}return c}function Q(n,u){let[,c]=F.Errors(n,u);return c.map((w)=>{let T=O(w.instancePath);return{code:w.keyword,path:T,message:w.message,value:P(u,T)}})}function j(n,u){let c=R.Default(n,R.Clone(u)),w=Q(n,c);if(w.length>0)return{success:!1,error:new A(w)};let T=R.Clean(n,c),$=Q(n,T);if($.length>0)return{success:!1,error:new A($)};return{success:!0,data:T}}function W(n,u){let c=j(n,u);if(!c.success)throw c.error;return c.data}import X from"typebox";function i(n){return Object.defineProperties(n,{parse:{value:(u)=>W(n,u),enumerable:!1},safeParse:{value:(u)=>j(n,u),enumerable:!1}}),n}function a(n,u){return X.Optional({...n,default:u})}function L(n,u={}){return X.Unsafe({type:"string",enum:[...n],...u})}
3
- export{S as zj,b as Aj,k as Bj,h as Cj,s as Dj,j as Ej,W as Fj,X as Gj,i as Hj,a as Ij,L as Jj};
3
+ export{S as Aj,b as Bj,k as Cj,h as Dj,s as Ej,j as Fj,W as Gj,X as Hj,i as Ij,a as Jj,L as Kj};
@@ -1,2 +1,2 @@
1
- import{gh as U,nh as a}from"./chunk-53vh6vpt.js";import{Ui as A,Vi as o,Xi as s}from"./chunk-514va7ce.js";import{Cj as J1,Gj as $,Hj as Z,Ij as b,Jj as K}from"./chunk-5q4z0sfr.js";import{ek as $1}from"./chunk-7xtxvrh8.js";var w=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}],K1={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},u=new Map;function I(J,B,j){let Y=new Set;for(let H of J.split(",")){let[k,G]=H.split("/"),V=G?Number.parseInt(G,10):1;if(!Number.isInteger(V)||V<1)throw Error(`Invalid cron step in "${J}"`);let X=B,Q=j;if(k!=="*"&&k!=="")if(k.includes("-")){let[W,B1]=k.split("-");X=Number.parseInt(W,10),Q=Number.parseInt(B1,10)}else X=Number.parseInt(k,10),Q=X;if(!Number.isInteger(X)||!Number.isInteger(Q)||X<B||Q>j||X>Q)throw Error(`Invalid cron range "${k}" in field "${J}"`);for(let W=X;W<=Q;W+=V)Y.add(W)}return Y}function d(J){let B=J.trim().split(/\s+/);if(B.length!==5)throw Error(`Cron expression must have 5 fields (min hour dom mon dow), got ${B.length}`);let[j,Y,H,k,G]=B,V=I(G,w[4].min,w[4].max),X=new Set([...V].map((Q)=>Q===7?0:Q));return{minutes:I(j,w[0].min,w[0].max),hours:I(Y,w[1].min,w[1].max),daysOfMonth:I(H,w[2].min,w[2].max),months:I(k,w[3].min,w[3].max),daysOfWeek:X,domRestricted:H.trim()!=="*",dowRestricted:G.trim()!=="*"}}function Y1(J,B){if(!B)return{minute:J.getMinutes(),hour:J.getHours(),dayOfMonth:J.getDate(),month:J.getMonth()+1,dayOfWeek:J.getDay()};let j=u.get(B);if(!j)j=new Intl.DateTimeFormat("en-US",{timeZone:B,month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",weekday:"short",hourCycle:"h23"}),u.set(B,j);let Y=Object.fromEntries(j.formatToParts(J).filter((H)=>H.type!=="literal").map((H)=>[H.type,H.value]));return{minute:Number(Y.minute),hour:Number(Y.hour),dayOfMonth:Number(Y.day),month:Number(Y.month),dayOfWeek:K1[Y.weekday]??-1}}function j1(J,B,j){let Y=Y1(B,j);if(!J.minutes.has(Y.minute))return!1;if(!J.hours.has(Y.hour))return!1;if(!J.months.has(Y.month))return!1;let H=J.daysOfMonth.has(Y.dayOfMonth),k=J.daysOfWeek.has(Y.dayOfWeek);if(J.domRestricted&&J.dowRestricted)return H||k;if(J.domRestricted)return H;if(J.dowRestricted)return k;return!0}function H1(J,B,j){let Y=d(J),H=new Date(B.getTime());H.setSeconds(0,0),H.setMinutes(H.getMinutes()+1);let k=new Date(B.getTime());k.setFullYear(k.getFullYear()+4);while(H.getTime()<=k.getTime()){if(j1(Y,H,j))return new Date(H.getTime());H.setMinutes(H.getMinutes()+1)}return null}var m={s:1000,m:60000,h:3600000,d:86400000};function r1(J){let j=J.trim().toLowerCase().match(/^(\d+)\s*([smhd]?)$/);if(!j)return null;let Y=Number.parseInt(j[1],10);if(!Number.isInteger(Y)||Y<=0)return null;let H=j[2]||"m";return Y*m[H]}function k1(J){for(let B of["d","h","m","s"]){let j=m[B];if(J%j===0)return`${J/j}${B}`}return`${Math.round(J/1000)}s`}function F(J,B,j){switch(J.kind){case"cron":{if(!J.cron)return null;try{return H1(J.cron,B,J.timezone)}catch{return null}}case"interval":{if(!J.intervalMs||J.intervalMs<=0)return null;let H=new Date((j??B).getTime()+J.intervalMs);return H.getTime()<=B.getTime()?new Date(B.getTime()+1000):H}case"once":{if(!J.runAt)return null;let Y=new Date(J.runAt);if(Number.isNaN(Y.getTime()))return null;return Y.getTime()>B.getTime()?Y:null}default:return null}}function L(J){switch(J.kind){case"cron":if(!J.cron)return"cron trigger requires a cron expression";try{if(d(J.cron),J.timezone)new Intl.DateTimeFormat("en-US",{timeZone:J.timezone}).format();return null}catch(B){return B instanceof Error?B.message:"invalid cron expression"}case"interval":if(!J.intervalMs||J.intervalMs<60000)return"interval trigger requires intervalMs >= 60000 (1 minute)";return null;case"once":{if(!J.runAt)return"once trigger requires runAt timestamp";let B=new Date(J.runAt);if(Number.isNaN(B.getTime()))return"once trigger runAt is not a valid date";return null}default:return"unknown trigger kind"}}function y1(J){switch(J.kind){case"cron":return`cron: ${J.cron??"?"}`;case"interval":return`every ${J.intervalMs?k1(J.intervalMs):"?"}`;case"once":return`once at ${J.runAt??"?"}`;default:return"unknown"}}import{mkdir as n1,readFile as i1}from"node:fs/promises";import Z1 from"node:path";import{nanoid as o1}from"nanoid";import s1 from"write-file-atomic";var x=160,Q1=240,h=$.String({pattern:"^[a-f0-9]{64}$"}),X1=Z($.Object({id:$.String({minLength:1,maxLength:128}),position:$.Integer({minimum:0,maximum:x-1}),queuedAt:$.String({minLength:20,maxLength:32}),kind:K(["user","internal"]),state:K(["pending","locked"]),delivery:K(["current_turn","next_turn","recovery"]),mutable:$.Boolean(),preview:$.Optional($.String({maxLength:Q1})),previewTruncated:$.Boolean(),attachmentCount:$.Integer({minimum:0,maximum:20})},{additionalProperties:!1})),c=Z($.Object({version:h,pending:$.Integer({minimum:0,maximum:x}),mutable:$.Integer({minimum:0,maximum:x}),locked:$.Integer({minimum:0,maximum:x}),internal:$.Integer({minimum:0,maximum:x}),items:$.Array(X1,{maxItems:x})},{additionalProperties:!1})),b1=$.Union([$.Object({type:$.Literal("remove"),messageId:$.String({minLength:1,maxLength:128})},{additionalProperties:!1}),$.Object({type:$.Literal("move"),messageId:$.String({minLength:1,maxLength:128}),toPosition:$.Integer({minimum:0,maximum:x-1})},{additionalProperties:!1})]),e1=Z($.Object({expectedVersion:h,operation:b1},{additionalProperties:!1})),$0=Z($.Object({snapshot:c},{additionalProperties:!1})),W1=K(["revision_conflict","already_claimed","immutable_origin","immutable_boundary","not_found","runtime_unavailable","invalid_mutation","storage_unavailable"]),J0=Z($.Object({error:$.Object({code:W1,message:$.String({minLength:1,maxLength:256})},{additionalProperties:!1}),snapshot:c},{additionalProperties:!1}));var G1=K(["preferences","conventions","lessons","debugging"]),V1=$.Object({outcome:K(["nothing_to_store","disabled","failed"]),entries:$.Literal(0),topics:$.Tuple([])},{additionalProperties:!1}),w1=$.Object({outcome:$.Literal("written"),entries:$.Integer({minimum:1,maximum:20}),topics:$.Array(G1,{minItems:1,maxItems:4,uniqueItems:!0})},{additionalProperties:!1}),K0=Z($.Union([w1,V1]));var g=128,D1=128,z1=8,x1=1e6,O1=8640000000000000,D=$.Integer({minimum:0,maximum:x1}),M=$.Integer({minimum:0,maximum:O1}),q1=$.String({minLength:1,maxLength:g,pattern:"^[^\x00-\x1F]+$"}),v1=K(["starting","thinking","responding","executing_tools","compacting","continuing"]),P1=$.Refine($.Object({name:q1,kind:$.Optional(K(["readonly","write","execute"])),startedAt:M,progress:$.Optional(D),total:$.Optional(D)},{additionalProperties:!1}),(J)=>J.progress===void 0&&J.total===void 0||J.progress!==void 0&&J.total!==void 0&&J.progress<=J.total,()=>"progress and total must be present together with progress <= total"),f1=$.Refine($.Object({phase:v1,startedAt:M,updatedAt:M,turn:D,maxTurns:$.Union([D,$.Null()]),outputStarted:$.Boolean(),toolCallsStarted:D,toolCallsCompleted:D,activeTools:$.Array(P1,{maxItems:z1}),activeToolOverflow:D},{additionalProperties:!1}),(J)=>J.startedAt<=J.updatedAt&&J.toolCallsCompleted<=J.toolCallsStarted&&J.activeTools.length+J.activeToolOverflow<=J.toolCallsStarted-J.toolCallsCompleted,()=>"turn activity snapshot counters and timestamps are inconsistent"),H0=Z($.Object({version:$.Literal(1),generation:$.String({minLength:1,maxLength:D1,pattern:"^[^\x00-\x1F]+$"}),revision:D,snapshot:$.Union([f1,$.Null()])},{additionalProperties:!1}));function k0(J){let B=[...J].filter((j)=>{let Y=j.codePointAt(0)??0;return Y>31&&Y!==127}).join("").trim().slice(0,g);if(!B)throw Error("Turn activity tool name is empty");return B}var n=16384;function X0(J){let B=/^\s*\/btw(?:\s+([\s\S]*))?\s*$/iu.exec(J);if(!B)return;return{question:(B[1]??"").trim()}}var O=Z(K(["default","autoEdit","yolo","plan"]));var R=Z(K(["user","assistant","system","tool"])),I1=Z($.Union([$.Object({type:$.Literal("text"),text:$.String()}),$.Object({type:$.Literal("image_url"),image_url:$.Object({url:$.String()})})])),t=$.Union([$.String(),$.Array(I1)]),z0=Z($.Object({id:$.String(),role:R,content:t,timestamp:$.Number(),metadata:$.Optional($.Record($.String(),$.Unknown())),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),N1=Z(K(["queued","running","completed","failed","cancelled","interrupted"])),N=Z(K(["local","worktree"])),E=Z(K(["high","medium","low"])),_=Z(K(["feature","bug","maintenance","research"])),C1=Z(K(["applied","discarded","conflicted"])),U1=Z($.Object({status:C1,updatedAt:$.String(),sourceCommit:$.Optional($.String()),changedFiles:$.Optional($.Integer({minimum:0})),message:$.Optional($.String())})),F1=Z($.Object({changedFiles:$.Integer({minimum:0}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),commits:$.Integer({minimum:0})})),L1=Z($.Object({path:$.String({minLength:1}),patch:$.String({maxLength:2097152}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),binary:$.Boolean(),truncated:$.Boolean()})),x0=Z($.Object({sessionId:$.String(),projectPath:$.String(),baseCommit:$.String(),files:$.Array(L1,{maxItems:100}),truncated:$.Boolean()})),M1=$.Union([$.String(),$.Number(),$.Boolean(),$.Array($.String())]),A1=Z($.Object({name:$.String(),type:K(["string","number","integer","boolean","select","multi-select"]),title:$.String(),description:$.Optional($.String()),required:$.Boolean(),defaultValue:$.Optional(M1),options:$.Optional($.Array($.Object({value:$.String(),label:$.String()}))),format:$.Optional(K(["date","uri","email","date-time"])),minimum:$.Optional($.Number()),maximum:$.Optional($.Number()),minLength:$.Optional($.Number()),maxLength:$.Optional($.Number()),minItems:$.Optional($.Number()),maxItems:$.Optional($.Number())})),O0=Z($.Object({serverName:$.String(),mode:K(["form","url"]),message:$.String(),fields:$.Optional($.Array(A1)),requestedSchema:$.Optional($.Record($.String(),$.Unknown())),url:$.Optional($.String()),domain:$.Optional($.String()),elicitationId:$.Optional($.String())})),R1=Z($.Object({type:K(["permission","question","elicitation"]),requestId:$.String()})),E1=Z($.Object({code:K(["authentication","permission","rate_limit","timeout","network","model_unavailable","context_limit","unsupported_input","workspace_unavailable","capacity","runtime"]),message:$.String({minLength:1,maxLength:500}),retryable:$.Boolean(),resource:$.Optional(K(["pending_count","pending_bytes","resident_runtimes"]))})),q=Z(K(["auto","off","minimal","low","medium","high","xhigh","max"])),v=Z(K(["auto","standard","fast","flex"])),P=Z(K(["auto","low","medium","high"])),z=Z($.Union([K(["auto","pragmatic","friendly","explanatory"]),$.String({minLength:7,maxLength:300,pattern:"^(?:(?:user|project):[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3}|plugin:[a-z0-9][a-z0-9._-]{0,63}:[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3})$"})])),C=Z($.Object({sessionId:$.String(),projectPath:$.String(),title:$.Optional($.String()),gitBranch:$.Optional($.String()),rootId:$.String(),parentId:$.Optional($.String()),relationType:$.Optional(K(["subagent","fork"])),resumedFrom:$.Optional($.String()),rootAgentId:$.Optional($.String()),resumeDepth:$.Optional($.Integer({minimum:0})),taskStatus:b(N1,"completed"),taskStatusReason:$.Optional($.String()),taskFailure:$.Optional(E1),taskStartedAt:$.Optional($.String()),taskCompletedAt:$.Optional($.String()),taskPromptSummary:$.Optional($.String()),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.String()),taskModelId:$.Optional($.String()),selectedModelId:$.Optional($.String()),permissionMode:$.Optional(O),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),communicationStyleDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),projectInstructionsDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),taskRetryAvailable:$.Optional($.Boolean()),taskRetriedFrom:$.Optional($.Object({sessionId:$.String(),projectPath:$.String()})),taskDelivery:$.Optional(U1),taskIsolation:$.Optional(N),taskSourceProjectPath:$.Optional($.String()),taskWorktreePath:$.Optional($.String()),taskWorktreeBranch:$.Optional($.String()),taskBaseCommit:$.Optional($.String()),taskDiffStat:$.Optional(F1),taskQueuePosition:$.Optional($.Integer({minimum:1})),taskQueueDepth:$.Optional($.Integer({minimum:0})),taskConcurrencyLimit:$.Optional($.Integer({minimum:1})),archivedAt:$.Optional($.String()),archivedBySessionId:$.Optional($.String()),pendingInteraction:$.Optional(R1),messageCount:$.Number(),firstMessageTime:$.String(),lastMessageTime:$.String(),hasErrors:$.Boolean()})),q0=Z($.Object({sessions:$.Array(C),nextCursor:$.Optional($.String())})),v0=Z($.Object({session:C,archivedSessionIds:$.Array($.String())})),P0=Z($.Object({session:C,restoredSessionIds:$.Array($.String())})),_1=$.Object({rootTurnId:$.Optional($.String({minLength:1,maxLength:U})),currentTurnId:$.String({minLength:1,maxLength:U}),parentTurnId:$.Optional($.String({minLength:1,maxLength:U}))},{additionalProperties:!1}),f0=Z($.Object({version:$.Union([$.Literal(1),$.Literal(2)]),sessionId:$.String(),goalId:$.String(),objective:$.String(),status:K(["active","verifying","paused","blocked","usage_limited","budget_limited","complete"]),tokenBudget:$.Optional($.Number()),tokensUsed:$.Number(),timeUsedSeconds:$.Number(),continuationCount:$.Number(),statusReason:$.Optional($.String()),completionVerification:$.Optional($.Object({attempt:$.Integer({minimum:1}),status:K(["pending","pass","fail","partial"]),requestedAt:$.String(),completedAt:$.Optional($.String()),verifierSessionId:$.Optional($.String()),summary:$.Optional($.String()),evidenceSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),prematureStop:$.Optional($.Object({pattern:$.Unsafe({type:"string"}),consecutiveCount:$.Integer({minimum:1}),detectedAt:$.String()})),executionHostFailure:$.Optional($.Object({category:K(a),consecutiveCount:$.Integer({minimum:1,maximum:3}),detectedAt:$.String()},{additionalProperties:!1})),turnLineage:$.Optional(_1),verificationStall:$.Optional($.Unsafe({type:"object"})),executionFrontier:$.Optional($.Object({taskListId:$.String({minLength:1,maxLength:256}),total:$.Integer({minimum:0}),completed:$.Integer({minimum:0}),inProgress:$.Integer({minimum:0}),pending:$.Integer({minimum:0}),blocked:$.Integer({minimum:0}),nextTask:$.Optional($.Object({id:$.String({minLength:1}),subject:$.String({minLength:1,maxLength:512}),priority:K(["high","medium","low"])})),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),observedAt:$.String()})),frontierStall:$.Optional($.Object({category:K(["waiting_dependency","same_task_no_effect","repeated_deferral"]),consecutiveCount:$.Integer({minimum:1,maximum:3}),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),detectedAt:$.String()})),createdAt:$.String(),updatedAt:$.String()})),r=Z($.Object({role:R,content:t,metadata:$.Optional($.Unknown()),reasoningContent:$.Optional($.String()),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),I0=Z($.Object({session:C,messages:$.Array(r)})),y=Z(K(["conversation","code","both"])),S1=Z($.Object({messageId:$.String(),preview:$.String(),createdAt:$.String(),fileCount:$.Integer({minimum:0})})),N0=Z($.Object({targetMessageId:$.String({minLength:1}),mode:b(y,"conversation")})),C0=Z($.Object({checkpoint:S1,mode:y,removedTurns:$.Integer({minimum:1}),restoredFiles:$.Array($.String()),messages:$.Array(r)})),l1=K(["running","completed","failed","cancelled"]),i=Z($.Object({id:$.String(),subagentType:$.String(),description:$.String(),status:l1,background:$.Boolean(),rootAgentId:$.String(),resumedFrom:$.Optional($.String()),resumeDepth:$.Integer({minimum:0}),createdAt:$.Number(),lastActiveAt:$.Number(),completedAt:$.Optional($.Number()),restartRecovery:$.Optional($.Object({outcome:K(["completed","interrupted","failed"]),recoveredAt:$.Number()})),result:$.Optional($.Object({success:$.Boolean(),message:$.String(),error:$.Optional($.String()),verificationCommands:$.Optional($.Array($.String())),verificationVerdict:$.Optional(K(["pass","fail","partial"])),modifiedFiles:$.Optional($.Array($.String()))})),stats:$.Optional($.Object({tokens:$.Optional($.Number()),toolCalls:$.Optional($.Number()),duration:$.Optional($.Number())}))})),U0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"})})),F0=Z($.Object({source:i,session:i})),L0=Z($.Object({sessionId:$.String(),projectPath:$.String()})),M0=Z($.Object({path:$.String(),name:$.String(),gitBranch:$.Optional($.String()),available:$.Boolean(),isCurrent:$.Boolean(),boundAt:$.String()})),A0=Z($.Union([$.Object({cancelled:$.Literal(!0)}),$.Object({cancelled:$.Literal(!1),path:$.String({minLength:1})})])),R0=Z($.Object({type:$.String(),seq:$.Optional($.Number()),properties:$.Record($.String(),$.Unknown())})),T=$.Object({type:K(["file","image","url"]),path:$.Optional($.String()),url:$.Optional($.String()),content:$.Optional($.String({maxLength:o})),mimeType:$.Optional($.String()),name:$.Optional($.String())}),p=$.Record($.String(),$.Unknown()),E0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:b(E,"medium"),taskKind:b(_,"feature"),taskDueAt:$.Optional($.String({minLength:1,maxLength:64})),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:b(N,"worktree"),permissionMode:b(O,"default"),attachments:$.Optional($.Array(T,{maxItems:A})),outputSchema:$.Optional(p)})),_0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.Union([$.String({minLength:1,maxLength:64}),$.Null()]))})),S0=Z($.Object({session:C,runId:$.String(),messageId:$.String(),status:K(["queued","running"]),queuePosition:$.Optional($.Integer({minimum:1})),queueDepth:$.Optional($.Integer({minimum:0})),maxConcurrentTasks:$.Optional($.Integer({minimum:1}))})),l0=Z($.Object({action:K(["apply","discard"])})),S=Z($.Object({kind:K(["cron","interval","once"]),cron:$.Optional($.String({minLength:1,maxLength:120})),intervalMs:$.Optional($.Integer({minimum:60000})),runAt:$.Optional($.String({minLength:1,maxLength:40})),timezone:$.Optional($.String({minLength:1,maxLength:80}))})),u1=Z($.Object({modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:b(N,"worktree"),permissionMode:b(O,"default")})),l=Z($.Object({id:$.String(),title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,dispatch:u1,enabled:$.Boolean(),createdAt:$.String(),updatedAt:$.String(),nextRunAt:$.Union([$.String(),$.Null()]),expiresAt:$.Union([$.String(),$.Null()]),lastRunAt:$.Optional($.String()),lastRunSessionId:$.Optional($.String()),lastStatus:$.Optional(K(["queued","running","completed","failed","cancelled","interrupted","error"])),lastError:$.Optional($.String()),runCount:$.Integer({minimum:0})})),u0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:b(N,"worktree"),permissionMode:b(O,"default"),enabled:b($.Boolean(),!0)})),d0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.Optional($.String({minLength:1,maxLength:32000,pattern:"\\S"})),trigger:$.Optional(S),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:$.Optional(N),permissionMode:$.Optional(O),enabled:$.Optional($.Boolean())})),m0=Z($.Object({schedules:$.Array(l)})),h0=Z($.Object({content:$.String({maxLength:s}),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),permissionMode:$.Optional(O),attachments:$.Optional($.Array(T,{maxItems:A})),outputSchema:$.Optional(p)})),d1=K(["completed","failed","aborted","timed_out","spawn_error"]),m1=Z($.Object({version:$.Literal(1),command:$.String(),status:d1,exitCode:$.Union([$.Integer(),$.Null()]),durationMs:$.Number({minimum:0}),stdout:$.String(),stderr:$.String(),stdoutOmittedBytes:$.Integer({minimum:0}),stderrOmittedBytes:$.Integer({minimum:0}),binaryOutput:$.Boolean(),truncated:$.Boolean()})),c0=Z($.Object({command:$.String({minLength:1,maxLength:32768,pattern:"^(?![\\s\\S]*\\u0000)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),g0=Z($.Object({executionId:$.String(),messageId:$.String(),record:m1,auxiliary:$.Boolean(),delivery:$.Optional(K(["current_turn","next_turn"])),queued:$.Optional($.Integer({minimum:0}))})),n0=Z($.Object({question:$.String({minLength:1,maxLength:n,pattern:"^(?![\\s\\S]*\\x00)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),i0=Z($.Object({response:$.String({minLength:1}),durationMs:$.Number({minimum:0}),modelId:$.Optional($.String()),usage:$.Optional($.Object({promptTokens:$.Number({minimum:0}),completionTokens:$.Number({minimum:0}),totalTokens:$.Number({minimum:0}),reasoningTokens:$.Optional($.Number({minimum:0})),cacheCreationInputTokens:$.Optional($.Number({minimum:0})),cacheReadInputTokens:$.Optional($.Number({minimum:0})),costUsd:$.Optional($.Number({minimum:0}))}))})),o0=Z($.Object({projectPath:$.String(),kind:K(["uncommitted","base","commit"]),ref:$.Optional($.String({maxLength:200})),instructions:$.Optional($.String({maxLength:4000})),modelId:$.Optional($.String({minLength:1,maxLength:200}))})),s0=Z($.Object({reviewId:$.String(),status:$.Literal("running")})),a0=Z($.Object({messageId:$.String(),role:R,content:$.String(),timestamp:$.String()})),t0=Z($.Object({approved:$.Boolean(),remember:$.Optional($.Boolean()),scope:$.Optional(K(["once","session","project"])),targetMode:$.Optional(O),feedback:$.Optional($.String()),answers:$.Optional($.Record($.String(),$.Union([$.String(),$.Array($.String())]))),elicitation:$.Optional($.Object({action:K(["accept","decline","cancel"]),content:$.Optional($.Record($.String(),$.Union([$.String({maxLength:4000}),$.Number(),$.Boolean(),$.Array($.String({maxLength:1000}),{maxItems:100})]),{maxProperties:32}))}))})),h1=Z($.Object({id:z,name:$.String({minLength:1,maxLength:80}),description:$.String({minLength:1,maxLength:256}),source:K(["built-in","user","project","plugin"]),contentSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),r0=Z($.Object({id:$.String(),displayName:$.Optional($.String()),provider:$.String(),model:$.String(),contextWindow:$.Optional($.Number()),maxTokens:$.Optional($.Number()),reasoning:$.Optional($.Boolean()),supportedReasoningEfforts:$.Optional($.Array(K(["off","minimal","low","medium","high","xhigh","max"]))),supportedServiceTiers:$.Optional($.Array(K(["standard","fast","flex"]))),supportedResponseVerbosities:$.Optional($.Array(K(["low","medium","high"]))),communicationStyles:$.Optional($.Array(h1,{maxItems:36})),input:$.Optional($.Array(K(["text","image"]))),overrides:$.Optional($.Object({baseUrl:$.Optional($.String()),temperature:$.Optional($.Number()),maxOutputTokens:$.Optional($.Number()),timeout:$.Optional($.Number()),streamIdleTimeout:$.Optional($.Number({minimum:1000}))}))})),y0=Z(K(["vs-dark","vs-light","hc-black"])),c1=Z(K(["light","dark","system"])),g1=Z($.Object({language:$.String(),codeTheme:$.String(),uiTheme:c1,autoSaveSessions:$.Boolean(),notifyBuild:$.Boolean(),notifyErrors:$.Boolean(),notifySounds:$.Boolean(),privacyTelemetry:$.Boolean(),privacyCrash:$.Boolean(),agentTeamsEnabled:$.Boolean(),communicationStyle:$.Optional(z)})),T0=Z($.Partial(g1));var e=J1("Service"),a1=1;function t1(){return Z1.join($1(),"schedules.json")}class f{filePath;static instance;static getInstance(){if(!f.instance)f.instance=new f;return f.instance}writeChain=Promise.resolve();constructor(J=t1()){this.filePath=J}async readFile(){try{let J=await i1(this.filePath,"utf-8"),B=JSON.parse(J);if(!B||!Array.isArray(B.schedules))return[];let j=[],Y=0;for(let H of B.schedules){let k=l.safeParse(H);if(k.success)j.push(k.data);else Y+=1}if(Y>0)e.warn(`[ScheduleStore] Ignored ${Y} invalid persisted schedule(s)`);return j}catch(J){let B=J;if(B.code!=="ENOENT")e.warn("[ScheduleStore] Failed to read schedules; treating as empty:",B);return[]}}async writeFile(J){await n1(Z1.dirname(this.filePath),{recursive:!0,mode:493});let B={version:a1,schedules:J};await s1(this.filePath,JSON.stringify(B,null,2),{mode:384})}serializeWrite(J){let B=this.writeChain.then(J,J);return this.writeChain=B.then(()=>{return},()=>{return}),B}async list(){return this.readFile()}async get(J){return(await this.readFile()).find((j)=>j.id===J)}async create(J){return this.serializeWrite(async()=>{let B=J.trigger.kind==="cron"&&!J.trigger.timezone?{...J.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:J.trigger,j=L(B);if(j)throw Error(j);let Y=new Date;if(B.kind==="once"&&new Date(B.runAt).getTime()<=Y.getTime())throw Error("once trigger runAt must be in the future");let H=Y.toISOString(),k=F(B,Y),G={id:o1(10),title:J.title,prompt:J.prompt,projectPath:J.projectPath,trigger:B,dispatch:{modelId:J.modelId,reasoningEffort:J.reasoningEffort,serviceTier:J.serviceTier,responseVerbosity:J.responseVerbosity,communicationStyle:J.communicationStyle,isolation:J.isolation??"worktree",permissionMode:J.permissionMode??"default"},enabled:J.enabled??!0,createdAt:H,updatedAt:H,nextRunAt:k?k.toISOString():null,expiresAt:null,runCount:0},V=await this.readFile();return V.push(G),await this.writeFile(V),G})}async update(J,B){return this.serializeWrite(async()=>{let j=await this.readFile(),Y=j.findIndex((Q)=>Q.id===J);if(Y===-1)return;let H=j[Y];if(B.trigger){let Q=B.trigger.kind==="cron"&&!B.trigger.timezone?{...B.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:B.trigger,W=L(Q);if(W)throw Error(W);if(Q.kind==="once"&&new Date(Q.runAt).getTime()<=Date.now())throw Error("once trigger runAt must be in the future");B={...B,trigger:Q}}let k={...H,...B,dispatch:B.dispatch?{...H.dispatch,...B.dispatch}:H.dispatch,updatedAt:new Date().toISOString()},G=!H.enabled,V=k.enabled,X=B.trigger!==void 0;if((X||G&&V)&&B.nextRunAt===void 0){let Q=new Date,W=F(k.trigger,Q);if(k.nextRunAt=W?W.toISOString():null,X)k.expiresAt=null}return j[Y]=k,await this.writeFile(j),k})}async remove(J){return this.serializeWrite(async()=>{let B=await this.readFile(),j=B.filter((Y)=>Y.id!==J);if(j.length===B.length)return!1;return await this.writeFile(j),!0})}async setEnabled(J,B){return this.update(J,{enabled:B})}}var w2=f.getInstance();
2
- export{n as Ra,X0 as Sa,x as Ta,Q1 as Ua,h as Va,c as Wa,b1 as Xa,z1 as Ya,H0 as Za,k0 as _a,K0 as $a,r1 as ab,F as bb,L as cb,y1 as db,x0 as eb,C as fb,N0 as gb,U0 as hb,E0 as ib,_0 as jb,S0 as kb,l0 as lb,l as mb,u0 as nb,d0 as ob,m0 as pb,h0 as qb,c0 as rb,n0 as sb,o0 as tb,f as ub,w2 as vb};
1
+ import{hh as U,oh as a}from"./chunk-wcps5gjm.js";import{Vi as A,Wi as o,Yi as s}from"./chunk-5v0jcyea.js";import{Dj as J1,Hj as $,Ij as Z,Jj as b,Kj as K}from"./chunk-2mk914vk.js";import{fk as $1}from"./chunk-4wx5sya5.js";var w=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}],K1={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},u=new Map;function I(J,B,j){let Y=new Set;for(let H of J.split(",")){let[k,G]=H.split("/"),V=G?Number.parseInt(G,10):1;if(!Number.isInteger(V)||V<1)throw Error(`Invalid cron step in "${J}"`);let X=B,Q=j;if(k!=="*"&&k!=="")if(k.includes("-")){let[W,B1]=k.split("-");X=Number.parseInt(W,10),Q=Number.parseInt(B1,10)}else X=Number.parseInt(k,10),Q=X;if(!Number.isInteger(X)||!Number.isInteger(Q)||X<B||Q>j||X>Q)throw Error(`Invalid cron range "${k}" in field "${J}"`);for(let W=X;W<=Q;W+=V)Y.add(W)}return Y}function d(J){let B=J.trim().split(/\s+/);if(B.length!==5)throw Error(`Cron expression must have 5 fields (min hour dom mon dow), got ${B.length}`);let[j,Y,H,k,G]=B,V=I(G,w[4].min,w[4].max),X=new Set([...V].map((Q)=>Q===7?0:Q));return{minutes:I(j,w[0].min,w[0].max),hours:I(Y,w[1].min,w[1].max),daysOfMonth:I(H,w[2].min,w[2].max),months:I(k,w[3].min,w[3].max),daysOfWeek:X,domRestricted:H.trim()!=="*",dowRestricted:G.trim()!=="*"}}function Y1(J,B){if(!B)return{minute:J.getMinutes(),hour:J.getHours(),dayOfMonth:J.getDate(),month:J.getMonth()+1,dayOfWeek:J.getDay()};let j=u.get(B);if(!j)j=new Intl.DateTimeFormat("en-US",{timeZone:B,month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",weekday:"short",hourCycle:"h23"}),u.set(B,j);let Y=Object.fromEntries(j.formatToParts(J).filter((H)=>H.type!=="literal").map((H)=>[H.type,H.value]));return{minute:Number(Y.minute),hour:Number(Y.hour),dayOfMonth:Number(Y.day),month:Number(Y.month),dayOfWeek:K1[Y.weekday]??-1}}function j1(J,B,j){let Y=Y1(B,j);if(!J.minutes.has(Y.minute))return!1;if(!J.hours.has(Y.hour))return!1;if(!J.months.has(Y.month))return!1;let H=J.daysOfMonth.has(Y.dayOfMonth),k=J.daysOfWeek.has(Y.dayOfWeek);if(J.domRestricted&&J.dowRestricted)return H||k;if(J.domRestricted)return H;if(J.dowRestricted)return k;return!0}function H1(J,B,j){let Y=d(J),H=new Date(B.getTime());H.setSeconds(0,0),H.setMinutes(H.getMinutes()+1);let k=new Date(B.getTime());k.setFullYear(k.getFullYear()+4);while(H.getTime()<=k.getTime()){if(j1(Y,H,j))return new Date(H.getTime());H.setMinutes(H.getMinutes()+1)}return null}var m={s:1000,m:60000,h:3600000,d:86400000};function e1(J){let j=J.trim().toLowerCase().match(/^(\d+)\s*([smhd]?)$/);if(!j)return null;let Y=Number.parseInt(j[1],10);if(!Number.isInteger(Y)||Y<=0)return null;let H=j[2]||"m";return Y*m[H]}function k1(J){for(let B of["d","h","m","s"]){let j=m[B];if(J%j===0)return`${J/j}${B}`}return`${Math.round(J/1000)}s`}function F(J,B,j){switch(J.kind){case"cron":{if(!J.cron)return null;try{return H1(J.cron,B,J.timezone)}catch{return null}}case"interval":{if(!J.intervalMs||J.intervalMs<=0)return null;let H=new Date((j??B).getTime()+J.intervalMs);return H.getTime()<=B.getTime()?new Date(B.getTime()+1000):H}case"once":{if(!J.runAt)return null;let Y=new Date(J.runAt);if(Number.isNaN(Y.getTime()))return null;return Y.getTime()>B.getTime()?Y:null}default:return null}}function L(J){switch(J.kind){case"cron":if(!J.cron)return"cron trigger requires a cron expression";try{if(d(J.cron),J.timezone)new Intl.DateTimeFormat("en-US",{timeZone:J.timezone}).format();return null}catch(B){return B instanceof Error?B.message:"invalid cron expression"}case"interval":if(!J.intervalMs||J.intervalMs<60000)return"interval trigger requires intervalMs >= 60000 (1 minute)";return null;case"once":{if(!J.runAt)return"once trigger requires runAt timestamp";let B=new Date(J.runAt);if(Number.isNaN(B.getTime()))return"once trigger runAt is not a valid date";return null}default:return"unknown trigger kind"}}function $0(J){switch(J.kind){case"cron":return`cron: ${J.cron??"?"}`;case"interval":return`every ${J.intervalMs?k1(J.intervalMs):"?"}`;case"once":return`once at ${J.runAt??"?"}`;default:return"unknown"}}import{mkdir as a1,readFile as t1}from"node:fs/promises";import Z1 from"node:path";import{nanoid as r1}from"nanoid";import y1 from"write-file-atomic";var x=160,Q1=240,h=$.String({pattern:"^[a-f0-9]{64}$"}),X1=Z($.Object({id:$.String({minLength:1,maxLength:128}),position:$.Integer({minimum:0,maximum:x-1}),queuedAt:$.String({minLength:20,maxLength:32}),kind:K(["user","internal"]),state:K(["pending","locked"]),delivery:K(["current_turn","next_turn","recovery"]),mutable:$.Boolean(),preview:$.Optional($.String({maxLength:Q1})),previewTruncated:$.Boolean(),attachmentCount:$.Integer({minimum:0,maximum:20})},{additionalProperties:!1})),c=Z($.Object({version:h,pending:$.Integer({minimum:0,maximum:x}),mutable:$.Integer({minimum:0,maximum:x}),locked:$.Integer({minimum:0,maximum:x}),internal:$.Integer({minimum:0,maximum:x}),items:$.Array(X1,{maxItems:x})},{additionalProperties:!1})),b1=$.Union([$.Object({type:$.Literal("remove"),messageId:$.String({minLength:1,maxLength:128})},{additionalProperties:!1}),$.Object({type:$.Literal("move"),messageId:$.String({minLength:1,maxLength:128}),toPosition:$.Integer({minimum:0,maximum:x-1})},{additionalProperties:!1})]),B0=Z($.Object({expectedVersion:h,operation:b1},{additionalProperties:!1})),K0=Z($.Object({snapshot:c},{additionalProperties:!1})),W1=K(["revision_conflict","already_claimed","immutable_origin","immutable_boundary","not_found","runtime_unavailable","invalid_mutation","storage_unavailable"]),Y0=Z($.Object({error:$.Object({code:W1,message:$.String({minLength:1,maxLength:256})},{additionalProperties:!1}),snapshot:c},{additionalProperties:!1}));var G1=K(["preferences","conventions","lessons","debugging"]),V1=$.Object({outcome:K(["nothing_to_store","disabled","failed"]),entries:$.Literal(0),topics:$.Tuple([])},{additionalProperties:!1}),w1=$.Object({outcome:$.Literal("written"),entries:$.Integer({minimum:1,maximum:20}),topics:$.Array(G1,{minItems:1,maxItems:4,uniqueItems:!0})},{additionalProperties:!1}),k0=Z($.Union([w1,V1]));var g=128,D1=128,z1=8,x1=1e6,O1=8640000000000000,D=$.Integer({minimum:0,maximum:x1}),M=$.Integer({minimum:0,maximum:O1}),q1=$.String({minLength:1,maxLength:g,pattern:"^[^\x00-\x1F]+$"}),v1=K(["starting","thinking","responding","executing_tools","compacting","continuing"]),P1=$.Refine($.Object({name:q1,kind:$.Optional(K(["readonly","write","execute"])),startedAt:M,progress:$.Optional(D),total:$.Optional(D)},{additionalProperties:!1}),(J)=>J.progress===void 0&&J.total===void 0||J.progress!==void 0&&J.total!==void 0&&J.progress<=J.total,()=>"progress and total must be present together with progress <= total"),f1=$.Refine($.Object({phase:v1,startedAt:M,updatedAt:M,turn:D,maxTurns:$.Union([D,$.Null()]),outputStarted:$.Boolean(),toolCallsStarted:D,toolCallsCompleted:D,activeTools:$.Array(P1,{maxItems:z1}),activeToolOverflow:D},{additionalProperties:!1}),(J)=>J.startedAt<=J.updatedAt&&J.toolCallsCompleted<=J.toolCallsStarted&&J.activeTools.length+J.activeToolOverflow<=J.toolCallsStarted-J.toolCallsCompleted,()=>"turn activity snapshot counters and timestamps are inconsistent"),b0=Z($.Object({version:$.Literal(1),generation:$.String({minLength:1,maxLength:D1,pattern:"^[^\x00-\x1F]+$"}),revision:D,snapshot:$.Union([f1,$.Null()])},{additionalProperties:!1}));function W0(J){let B=[...J].filter((j)=>{let Y=j.codePointAt(0)??0;return Y>31&&Y!==127}).join("").trim().slice(0,g);if(!B)throw Error("Turn activity tool name is empty");return B}var n=16384;function V0(J){let B=/^\s*\/btw(?:\s+([\s\S]*))?\s*$/iu.exec(J);if(!B)return;return{question:(B[1]??"").trim()}}var O=Z(K(["default","autoEdit","yolo","plan"]));var R=Z(K(["user","assistant","system","tool"])),I1=Z($.Union([$.Object({type:$.Literal("text"),text:$.String()}),$.Object({type:$.Literal("image_url"),image_url:$.Object({url:$.String()})})])),t=$.Union([$.String(),$.Array(I1)]),v0=Z($.Object({id:$.String(),role:R,content:t,timestamp:$.Number(),metadata:$.Optional($.Record($.String(),$.Unknown())),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),N1=Z(K(["queued","running","completed","failed","cancelled","interrupted"])),N=Z(K(["local","worktree"])),E=Z(K(["high","medium","low"])),_=Z(K(["feature","bug","maintenance","research"])),C1=Z(K(["applied","discarded","conflicted"])),U1=Z($.Object({status:C1,updatedAt:$.String(),sourceCommit:$.Optional($.String()),changedFiles:$.Optional($.Integer({minimum:0})),message:$.Optional($.String())})),F1=Z($.Object({changedFiles:$.Integer({minimum:0}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),commits:$.Integer({minimum:0})})),L1=Z($.Object({path:$.String({minLength:1}),patch:$.String({maxLength:2097152}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),binary:$.Boolean(),truncated:$.Boolean()})),P0=Z($.Object({sessionId:$.String(),projectPath:$.String(),baseCommit:$.String(),files:$.Array(L1,{maxItems:100}),truncated:$.Boolean()})),M1=$.Union([$.String(),$.Number(),$.Boolean(),$.Array($.String())]),A1=Z($.Object({name:$.String(),type:K(["string","number","integer","boolean","select","multi-select"]),title:$.String(),description:$.Optional($.String()),required:$.Boolean(),defaultValue:$.Optional(M1),options:$.Optional($.Array($.Object({value:$.String(),label:$.String()}))),format:$.Optional(K(["date","uri","email","date-time"])),minimum:$.Optional($.Number()),maximum:$.Optional($.Number()),minLength:$.Optional($.Number()),maxLength:$.Optional($.Number()),minItems:$.Optional($.Number()),maxItems:$.Optional($.Number())})),f0=Z($.Object({serverName:$.String(),mode:K(["form","url"]),message:$.String(),fields:$.Optional($.Array(A1)),requestedSchema:$.Optional($.Record($.String(),$.Unknown())),url:$.Optional($.String()),domain:$.Optional($.String()),elicitationId:$.Optional($.String())})),R1=Z($.Object({type:K(["permission","question","elicitation"]),requestId:$.String()})),E1=Z($.Object({code:K(["authentication","permission","rate_limit","timeout","network","model_unavailable","context_limit","unsupported_input","workspace_unavailable","capacity","runtime"]),message:$.String({minLength:1,maxLength:500}),retryable:$.Boolean(),resource:$.Optional(K(["pending_count","pending_bytes","resident_runtimes"]))})),q=Z(K(["auto","off","minimal","low","medium","high","xhigh","max"])),v=Z(K(["auto","standard","fast","flex"])),P=Z(K(["auto","low","medium","high"])),z=Z($.Union([K(["auto","pragmatic","friendly","explanatory"]),$.String({minLength:7,maxLength:300,pattern:"^(?:(?:user|project):[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3}|plugin:[a-z0-9][a-z0-9._-]{0,63}:[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3})$"})])),C=Z($.Object({sessionId:$.String(),projectPath:$.String(),title:$.Optional($.String()),gitBranch:$.Optional($.String()),rootId:$.String(),parentId:$.Optional($.String()),relationType:$.Optional(K(["subagent","fork"])),resumedFrom:$.Optional($.String()),rootAgentId:$.Optional($.String()),resumeDepth:$.Optional($.Integer({minimum:0})),taskStatus:b(N1,"completed"),taskStatusReason:$.Optional($.String()),taskFailure:$.Optional(E1),taskStartedAt:$.Optional($.String()),taskCompletedAt:$.Optional($.String()),taskPromptSummary:$.Optional($.String()),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.String()),taskModelId:$.Optional($.String()),selectedModelId:$.Optional($.String()),permissionMode:$.Optional(O),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),communicationStyleDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),projectInstructionsDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),taskRetryAvailable:$.Optional($.Boolean()),taskRetriedFrom:$.Optional($.Object({sessionId:$.String(),projectPath:$.String()})),taskDelivery:$.Optional(U1),taskIsolation:$.Optional(N),taskSourceProjectPath:$.Optional($.String()),taskWorktreePath:$.Optional($.String()),taskWorktreeBranch:$.Optional($.String()),taskBaseCommit:$.Optional($.String()),taskDiffStat:$.Optional(F1),taskQueuePosition:$.Optional($.Integer({minimum:1})),taskQueueDepth:$.Optional($.Integer({minimum:0})),taskConcurrencyLimit:$.Optional($.Integer({minimum:1})),archivedAt:$.Optional($.String()),archivedBySessionId:$.Optional($.String()),pendingInteraction:$.Optional(R1),messageCount:$.Number(),firstMessageTime:$.String(),lastMessageTime:$.String(),hasErrors:$.Boolean()})),I0=Z($.Object({sessions:$.Array(C),nextCursor:$.Optional($.String())})),N0=Z($.Object({session:C,archivedSessionIds:$.Array($.String())})),C0=Z($.Object({session:C,restoredSessionIds:$.Array($.String())})),_1=$.Object({rootTurnId:$.Optional($.String({minLength:1,maxLength:U})),currentTurnId:$.String({minLength:1,maxLength:U}),parentTurnId:$.Optional($.String({minLength:1,maxLength:U}))},{additionalProperties:!1}),U0=Z($.Object({version:$.Union([$.Literal(1),$.Literal(2)]),sessionId:$.String(),goalId:$.String(),objective:$.String(),status:K(["active","verifying","paused","blocked","usage_limited","budget_limited","complete"]),tokenBudget:$.Optional($.Number()),tokensUsed:$.Number(),timeUsedSeconds:$.Number(),continuationCount:$.Number(),statusReason:$.Optional($.String()),completionVerification:$.Optional($.Object({attempt:$.Integer({minimum:1}),status:K(["pending","pass","fail","partial"]),requestedAt:$.String(),completedAt:$.Optional($.String()),verifierSessionId:$.Optional($.String()),summary:$.Optional($.String()),evidenceSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),prematureStop:$.Optional($.Object({pattern:$.Unsafe({type:"string"}),consecutiveCount:$.Integer({minimum:1}),detectedAt:$.String()})),executionHostFailure:$.Optional($.Object({category:K(a),consecutiveCount:$.Integer({minimum:1,maximum:3}),detectedAt:$.String()},{additionalProperties:!1})),turnLineage:$.Optional(_1),verificationStall:$.Optional($.Unsafe({type:"object"})),executionFrontier:$.Optional($.Object({taskListId:$.String({minLength:1,maxLength:256}),total:$.Integer({minimum:0}),completed:$.Integer({minimum:0}),inProgress:$.Integer({minimum:0}),pending:$.Integer({minimum:0}),blocked:$.Integer({minimum:0}),nextTask:$.Optional($.Object({id:$.String({minLength:1}),subject:$.String({minLength:1,maxLength:512}),priority:K(["high","medium","low"])})),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),observedAt:$.String()})),frontierStall:$.Optional($.Object({category:K(["waiting_dependency","same_task_no_effect","repeated_deferral"]),consecutiveCount:$.Integer({minimum:1,maximum:3}),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),detectedAt:$.String()})),createdAt:$.String(),updatedAt:$.String()})),r=Z($.Object({role:R,content:t,metadata:$.Optional($.Unknown()),reasoningContent:$.Optional($.String()),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),F0=Z($.Object({session:C,messages:$.Array(r)})),y=Z(K(["conversation","code","both"])),S1=Z($.Object({messageId:$.String(),preview:$.String(),createdAt:$.String(),fileCount:$.Integer({minimum:0})})),L0=Z($.Object({targetMessageId:$.String({minLength:1}),mode:b(y,"conversation")})),M0=Z($.Object({checkpoint:S1,mode:y,removedTurns:$.Integer({minimum:1}),restoredFiles:$.Array($.String()),messages:$.Array(r)})),l1=K(["running","completed","failed","cancelled"]),i=Z($.Object({id:$.String(),subagentType:$.String(),description:$.String(),status:l1,background:$.Boolean(),rootAgentId:$.String(),resumedFrom:$.Optional($.String()),resumeDepth:$.Integer({minimum:0}),createdAt:$.Number(),lastActiveAt:$.Number(),completedAt:$.Optional($.Number()),restartRecovery:$.Optional($.Object({outcome:K(["completed","interrupted","failed"]),recoveredAt:$.Number()})),result:$.Optional($.Object({success:$.Boolean(),message:$.String(),error:$.Optional($.String()),verificationCommands:$.Optional($.Array($.String())),verificationVerdict:$.Optional(K(["pass","fail","partial"])),modifiedFiles:$.Optional($.Array($.String()))})),stats:$.Optional($.Object({tokens:$.Optional($.Number()),toolCalls:$.Optional($.Number()),duration:$.Optional($.Number())}))})),A0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"})})),R0=Z($.Object({source:i,session:i})),E0=Z($.Object({sessionId:$.String(),projectPath:$.String()})),_0=Z($.Object({path:$.String(),name:$.String(),gitBranch:$.Optional($.String()),available:$.Boolean(),isCurrent:$.Boolean(),boundAt:$.String()})),S0=Z($.Union([$.Object({cancelled:$.Literal(!0)}),$.Object({cancelled:$.Literal(!1),path:$.String({minLength:1})})])),l0=Z($.Object({type:$.String(),seq:$.Optional($.Number()),properties:$.Record($.String(),$.Unknown())})),T=$.Object({type:K(["file","image","url"]),path:$.Optional($.String()),url:$.Optional($.String()),content:$.Optional($.String({maxLength:o})),mimeType:$.Optional($.String()),name:$.Optional($.String())}),u1=20,d1=12288,m1=4096,h1=$.Object({id:$.String({minLength:1,maxLength:200}),text:$.String({minLength:1,maxLength:d1}),sourceMessageId:$.String({minLength:1,maxLength:500}),sourceRole:K(["user","assistant"]),comment:$.Optional($.String({maxLength:m1}))}),p=$.Record($.String(),$.Unknown()),u0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:b(E,"medium"),taskKind:b(_,"feature"),taskDueAt:$.Optional($.String({minLength:1,maxLength:64})),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:b(N,"worktree"),permissionMode:b(O,"default"),attachments:$.Optional($.Array(T,{maxItems:A})),outputSchema:$.Optional(p)})),d0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.Union([$.String({minLength:1,maxLength:64}),$.Null()]))})),m0=Z($.Object({session:C,runId:$.String(),messageId:$.String(),status:K(["queued","running"]),queuePosition:$.Optional($.Integer({minimum:1})),queueDepth:$.Optional($.Integer({minimum:0})),maxConcurrentTasks:$.Optional($.Integer({minimum:1}))})),h0=Z($.Object({action:K(["apply","discard"])})),S=Z($.Object({kind:K(["cron","interval","once"]),cron:$.Optional($.String({minLength:1,maxLength:120})),intervalMs:$.Optional($.Integer({minimum:60000})),runAt:$.Optional($.String({minLength:1,maxLength:40})),timezone:$.Optional($.String({minLength:1,maxLength:80}))})),c1=Z($.Object({modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:b(N,"worktree"),permissionMode:b(O,"default")})),l=Z($.Object({id:$.String(),title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,dispatch:c1,enabled:$.Boolean(),createdAt:$.String(),updatedAt:$.String(),nextRunAt:$.Union([$.String(),$.Null()]),expiresAt:$.Union([$.String(),$.Null()]),lastRunAt:$.Optional($.String()),lastRunSessionId:$.Optional($.String()),lastStatus:$.Optional(K(["queued","running","completed","failed","cancelled","interrupted","error"])),lastError:$.Optional($.String()),runCount:$.Integer({minimum:0})})),c0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:b(N,"worktree"),permissionMode:b(O,"default"),enabled:b($.Boolean(),!0)})),g0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.Optional($.String({minLength:1,maxLength:32000,pattern:"\\S"})),trigger:$.Optional(S),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),isolation:$.Optional(N),permissionMode:$.Optional(O),enabled:$.Optional($.Boolean())})),n0=Z($.Object({schedules:$.Array(l)})),i0=Z($.Object({content:$.String({maxLength:s}),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(q),serviceTier:$.Optional(v),responseVerbosity:$.Optional(P),communicationStyle:$.Optional(z),permissionMode:$.Optional(O),attachments:$.Optional($.Array(T,{maxItems:A})),annotations:$.Optional($.Array(h1,{maxItems:u1})),outputSchema:$.Optional(p)})),g1=K(["completed","failed","aborted","timed_out","spawn_error"]),n1=Z($.Object({version:$.Literal(1),command:$.String(),status:g1,exitCode:$.Union([$.Integer(),$.Null()]),durationMs:$.Number({minimum:0}),stdout:$.String(),stderr:$.String(),stdoutOmittedBytes:$.Integer({minimum:0}),stderrOmittedBytes:$.Integer({minimum:0}),binaryOutput:$.Boolean(),truncated:$.Boolean()})),o0=Z($.Object({command:$.String({minLength:1,maxLength:32768,pattern:"^(?![\\s\\S]*\\u0000)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),s0=Z($.Object({executionId:$.String(),messageId:$.String(),record:n1,auxiliary:$.Boolean(),delivery:$.Optional(K(["current_turn","next_turn"])),queued:$.Optional($.Integer({minimum:0}))})),a0=Z($.Object({question:$.String({minLength:1,maxLength:n,pattern:"^(?![\\s\\S]*\\x00)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),t0=Z($.Object({response:$.String({minLength:1}),durationMs:$.Number({minimum:0}),modelId:$.Optional($.String()),usage:$.Optional($.Object({promptTokens:$.Number({minimum:0}),completionTokens:$.Number({minimum:0}),totalTokens:$.Number({minimum:0}),reasoningTokens:$.Optional($.Number({minimum:0})),cacheCreationInputTokens:$.Optional($.Number({minimum:0})),cacheReadInputTokens:$.Optional($.Number({minimum:0})),costUsd:$.Optional($.Number({minimum:0}))}))})),r0=Z($.Object({projectPath:$.String(),kind:K(["uncommitted","base","commit"]),ref:$.Optional($.String({maxLength:200})),instructions:$.Optional($.String({maxLength:4000})),modelId:$.Optional($.String({minLength:1,maxLength:200}))})),y0=Z($.Object({reviewId:$.String(),status:$.Literal("running")})),T0=Z($.Object({messageId:$.String(),role:R,content:$.String(),timestamp:$.String()})),p0=Z($.Object({approved:$.Boolean(),remember:$.Optional($.Boolean()),scope:$.Optional(K(["once","session","project"])),targetMode:$.Optional(O),feedback:$.Optional($.String()),answers:$.Optional($.Record($.String(),$.Union([$.String(),$.Array($.String())]))),elicitation:$.Optional($.Object({action:K(["accept","decline","cancel"]),content:$.Optional($.Record($.String(),$.Union([$.String({maxLength:4000}),$.Number(),$.Boolean(),$.Array($.String({maxLength:1000}),{maxItems:100})]),{maxProperties:32}))}))})),i1=Z($.Object({id:z,name:$.String({minLength:1,maxLength:80}),description:$.String({minLength:1,maxLength:256}),source:K(["built-in","user","project","plugin"]),contentSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),e0=Z($.Object({id:$.String(),displayName:$.Optional($.String()),provider:$.String(),model:$.String(),contextWindow:$.Optional($.Number()),maxTokens:$.Optional($.Number()),reasoning:$.Optional($.Boolean()),supportedReasoningEfforts:$.Optional($.Array(K(["off","minimal","low","medium","high","xhigh","max"]))),supportedServiceTiers:$.Optional($.Array(K(["standard","fast","flex"]))),supportedResponseVerbosities:$.Optional($.Array(K(["low","medium","high"]))),communicationStyles:$.Optional($.Array(i1,{maxItems:36})),input:$.Optional($.Array(K(["text","image"]))),overrides:$.Optional($.Object({baseUrl:$.Optional($.String()),temperature:$.Optional($.Number()),maxOutputTokens:$.Optional($.Number()),timeout:$.Optional($.Number()),streamIdleTimeout:$.Optional($.Number({minimum:1000}))}))})),$2=Z(K(["vs-dark","vs-light","hc-black"])),o1=Z(K(["light","dark","system"])),s1=Z($.Object({language:$.String(),codeTheme:$.String(),uiTheme:o1,autoSaveSessions:$.Boolean(),notifyBuild:$.Boolean(),notifyErrors:$.Boolean(),notifySounds:$.Boolean(),privacyTelemetry:$.Boolean(),privacyCrash:$.Boolean(),agentTeamsEnabled:$.Boolean(),communicationStyle:$.Optional(z)})),J2=Z($.Partial(s1));var e=J1("Service"),T1=1;function p1(){return Z1.join($1(),"schedules.json")}class f{filePath;static instance;static getInstance(){if(!f.instance)f.instance=new f;return f.instance}writeChain=Promise.resolve();constructor(J=p1()){this.filePath=J}async readFile(){try{let J=await t1(this.filePath,"utf-8"),B=JSON.parse(J);if(!B||!Array.isArray(B.schedules))return[];let j=[],Y=0;for(let H of B.schedules){let k=l.safeParse(H);if(k.success)j.push(k.data);else Y+=1}if(Y>0)e.warn(`[ScheduleStore] Ignored ${Y} invalid persisted schedule(s)`);return j}catch(J){let B=J;if(B.code!=="ENOENT")e.warn("[ScheduleStore] Failed to read schedules; treating as empty:",B);return[]}}async writeFile(J){await a1(Z1.dirname(this.filePath),{recursive:!0,mode:493});let B={version:T1,schedules:J};await y1(this.filePath,JSON.stringify(B,null,2),{mode:384})}serializeWrite(J){let B=this.writeChain.then(J,J);return this.writeChain=B.then(()=>{return},()=>{return}),B}async list(){return this.readFile()}async get(J){return(await this.readFile()).find((j)=>j.id===J)}async create(J){return this.serializeWrite(async()=>{let B=J.trigger.kind==="cron"&&!J.trigger.timezone?{...J.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:J.trigger,j=L(B);if(j)throw Error(j);let Y=new Date;if(B.kind==="once"&&new Date(B.runAt).getTime()<=Y.getTime())throw Error("once trigger runAt must be in the future");let H=Y.toISOString(),k=F(B,Y),G={id:r1(10),title:J.title,prompt:J.prompt,projectPath:J.projectPath,trigger:B,dispatch:{modelId:J.modelId,reasoningEffort:J.reasoningEffort,serviceTier:J.serviceTier,responseVerbosity:J.responseVerbosity,communicationStyle:J.communicationStyle,isolation:J.isolation??"worktree",permissionMode:J.permissionMode??"default"},enabled:J.enabled??!0,createdAt:H,updatedAt:H,nextRunAt:k?k.toISOString():null,expiresAt:null,runCount:0},V=await this.readFile();return V.push(G),await this.writeFile(V),G})}async update(J,B){return this.serializeWrite(async()=>{let j=await this.readFile(),Y=j.findIndex((Q)=>Q.id===J);if(Y===-1)return;let H=j[Y];if(B.trigger){let Q=B.trigger.kind==="cron"&&!B.trigger.timezone?{...B.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:B.trigger,W=L(Q);if(W)throw Error(W);if(Q.kind==="once"&&new Date(Q.runAt).getTime()<=Date.now())throw Error("once trigger runAt must be in the future");B={...B,trigger:Q}}let k={...H,...B,dispatch:B.dispatch?{...H.dispatch,...B.dispatch}:H.dispatch,updatedAt:new Date().toISOString()},G=!H.enabled,V=k.enabled,X=B.trigger!==void 0;if((X||G&&V)&&B.nextRunAt===void 0){let Q=new Date,W=F(k.trigger,Q);if(k.nextRunAt=W?W.toISOString():null,X)k.expiresAt=null}return j[Y]=k,await this.writeFile(j),k})}async remove(J){return this.serializeWrite(async()=>{let B=await this.readFile(),j=B.filter((Y)=>Y.id!==J);if(j.length===B.length)return!1;return await this.writeFile(j),!0})}async setEnabled(J,B){return this.update(J,{enabled:B})}}var O2=f.getInstance();
2
+ export{n as Sa,V0 as Ta,x as Ua,Q1 as Va,h as Wa,c as Xa,b1 as Ya,z1 as Za,b0 as _a,W0 as $a,k0 as ab,e1 as bb,F as cb,L as db,$0 as eb,P0 as fb,C as gb,L0 as hb,A0 as ib,u0 as jb,d0 as kb,m0 as lb,h0 as mb,l as nb,c0 as ob,g0 as pb,n0 as qb,i0 as rb,o0 as sb,a0 as tb,r0 as ub,f as vb,O2 as wb};
@@ -1,2 +1,2 @@
1
1
  var i="verification",E="goal-verification",e="review";function t(n){return n==="verification"||n==="goal-verification"}function o(n){return t(n)||n==="review"}
2
- export{i as ah,E as bh,e as ch,t as dh,o as eh};
2
+ export{i as bh,E as ch,e as dh,t as eh,o as fh};
@@ -0,0 +1 @@
1
+ import{rf as a,sf as b}from"./chunk-wqzwq701.js";import"./chunk-mcnptqmc.js";import"./chunk-eg3ms291.js";export{a as globalOptions,b as cliConfig};
@@ -1,2 +1,2 @@
1
1
  import{spawn as I}from"node:child_process";var X=500;function x(j){return new Promise((q)=>setTimeout(q,j))}function Z(j){return j&&typeof j==="object"&&"code"in j?String(j.code):void 0}function L(j){return j()||j()}function G(j,q=process.platform,y=process.kill.bind(process)){if(q==="win32"||!Number.isInteger(j)||j<=1||j===process.pid)return!1;try{return y(-j,0),!0}catch(z){let B=Z(z);if(B==="ESRCH")return!1;if(B==="EPERM")return!0;throw z}}function N(j,q){return new Promise((y)=>{let z=["/PID",String(j),"/T"];if(q)z.push("/F");let B=I("taskkill",z,{stdio:"ignore",windowsHide:!0}),K=!1,J=(H)=>{if(K)return;K=!0,y(H)};B.once("error",()=>J(!1)),B.once("close",(H)=>J(H===0))})}async function F(j,q={}){if(!Number.isInteger(j)||j<=1||j===process.pid)return{success:!1,alreadyExited:!1,forced:!1};let y=q.platform??process.platform,z=q.gracePeriodMs??X,B=q.killProcess??process.kill.bind(process),K=q.taskkill??N,J=q.wait??x,H=q.validatePidOwnership??(()=>!0);if(!L(H))return{success:!1,alreadyExited:!1,forced:!1};if(y==="win32"){let V=await K(j,!1);if(await J(z),!H())return{success:V,alreadyExited:!1,forced:!1};let Y=await K(j,!0);return{success:V||Y,alreadyExited:!V&&!Y,forced:Y}}let Q=(V,Y)=>{try{return B(V,Y)}catch(D){return Z(D)==="ESRCH"}},W=Q(-j,"SIGTERM")||Q(j,"SIGTERM");if(await J(z),!H())return{success:W,alreadyExited:!1,forced:!1};let $=Q(-j,"SIGKILL")||Q(j,"SIGKILL");return{success:W||$,alreadyExited:!1,forced:$}}async function R(j,q={}){if(!Number.isInteger(j)||j<=1||j===process.pid)return{success:!1,alreadyExited:!1,forced:!1};if((q.platform??process.platform)==="win32")return{success:!1,alreadyExited:!1,forced:!1};let z=q.gracePeriodMs??X,B=q.killProcess??process.kill.bind(process),K=q.wait??x,J=q.validatePidOwnership??(()=>!0);if(!J())return{success:!1,alreadyExited:!1,forced:!1};let H=($)=>{try{return B(-j,$),"sent"}catch(V){return Z(V)==="ESRCH"?"missing":"failed"}},Q=H("SIGTERM");if(Q==="missing")return{success:!0,alreadyExited:!0,forced:!1};if(Q==="failed")return{success:!1,alreadyExited:!1,forced:!1};if(await K(z),!J())return{success:!1,alreadyExited:!1,forced:!1};let W=H("SIGKILL");return{success:W!=="failed",alreadyExited:W==="missing",forced:W==="sent"}}class b{child;state="owned";terminationPromise;terminationResult;platform;gracePeriodMs;killProcess;taskkill;wait;constructor(j,q={}){this.child=j;if(this.platform=q.platform??process.platform,this.gracePeriodMs=q.gracePeriodMs??X,this.killProcess=q.killProcess??process.kill.bind(process),this.taskkill=q.taskkill??N,this.wait=q.wait??x,q.releaseOnExit!==!1){let y=()=>{if(this.state==="owned")this.state="released"};j.once("close",y),j.once("error",y)}}release(){if(this.state==="owned")this.state="released"}terminate(){if(this.terminationPromise)return this.terminationPromise;if(this.terminationResult)return Promise.resolve(this.terminationResult);if(this.state==="released")return this.terminationResult={success:!0,alreadyExited:!0,forced:!1},Promise.resolve(this.terminationResult);return this.state="terminating",this.terminationPromise=this.terminateOwnedTree().then((j)=>{return this.state="released",this.terminationResult=j,j}),this.terminationPromise}async terminateOwnedTree(){let j=this.child.pid;if(!j)return{success:!1,alreadyExited:!0,forced:!1};if(this.platform==="win32"){let z=await this.taskkill(j,!1);await this.wait(this.gracePeriodMs);let B=await this.taskkill(j,!0);if(!z&&!B)return{success:this.signalDirectChild("SIGKILL"),alreadyExited:!1,forced:!0};return{success:!0,alreadyExited:!1,forced:!0}}let q=this.signalPosixTree(j,"SIGTERM");await this.wait(this.gracePeriodMs);let y=this.signalPosixTree(j,"SIGKILL");return{success:q||y,alreadyExited:!1,forced:y}}signalPosixTree(j,q){if(j<=1||j===process.pid)return this.signalDirectChild(q);try{return this.killProcess(-j,q)}catch(y){if(Z(y)==="ESRCH")return!0;return this.signalDirectChild(q)}}signalDirectChild(j){try{return this.child.kill(j)}catch(q){return Z(q)==="ESRCH"}}}function v(j,q,y={},z={}){let B=I(j,q,{...y,detached:process.platform==="win32"?y.detached:!0,windowsHide:y.windowsHide??!0});return{child:B,processTree:new b(B,z)}}
2
- export{G as zh,F as Ah,R as Bh,v as Ch};
2
+ export{G as Ah,F as Bh,R as Ch,v as Dh};
@@ -1,2 +1,2 @@
1
1
  var t=["auto","low","medium","high"],s=new Set(["openai-completions","openai-responses","openai-codex-responses","azure-openai-responses"]);function n(e){return/(?:^|[/.:_-])gpt-5(?:$|[/.:_-])/i.test(e.id)}function f(e){return typeof e==="string"&&t.includes(e)}function p(e){if(e.api==="openai-codex-responses"||s.has(e.api)&&n(e))return["low","medium","high"];return[]}function u(e,r){let i=p(e);if(r!=="auto"&&!i.includes(r))throw Error(`Response verbosity ${r} is not supported by ${e.name}`);if(r==="auto")return{selection:r,effective:"provider-default",supported:i};return{selection:r,effective:r,supported:i,providerValue:r}}var a=["auto","standard","fast","flex"],o=new Set(["openai-completions","openai-responses","openai-codex-responses","azure-openai-responses"]);function S(e){return typeof e==="string"&&a.includes(e)}function c(e){if(o.has(e.api))return["standard","fast","flex"];if(e.api==="anthropic-messages"&&/(?:^|-)claude-opus-4-6(?:-|$)/i.test(e.id))return["standard","fast"];return["standard"]}function l(e,r){let i=c(e);if(r!=="auto"&&!i.includes(r))throw Error(`Service tier ${r} is not supported by ${e.name}`);if(r==="auto")return{selection:r,effective:"provider-default",supported:i};if(r==="standard")return{selection:r,effective:"standard",supported:i,...o.has(e.api)?{providerValue:"default"}:{}};if(r==="fast")return{selection:r,effective:"fast",supported:i,providerValue:e.api==="anthropic-messages"?"fast":"priority"};return{selection:r,effective:"flex",supported:i,providerValue:"flex"}}
2
- export{f as Pj,p as Qj,u as Rj,S as Sj,c as Tj,l as Uj};
2
+ export{f as Qj,p as Rj,u as Sj,S as Tj,c as Uj,l as Vj};
@@ -1,2 +1,2 @@
1
1
  import*as z from"node:os";import*as x from"node:path";function F(){return process.env.BLADE_STORAGE_ROOT||x.join(z.homedir(),".blade")}import{AsyncLocalStorage as Lq}from"node:async_hooks";import{createHash as Vq}from"node:crypto";import{lstat as L,mkdir as Cq,readdir as bq,realpath as N}from"node:fs/promises";import Z from"node:path";import{createHash as Gq}from"node:crypto";var E=new WeakSet,j=new WeakSet,Jq={"not-absolute":"ACP remote file path must be absolute","style-mismatch":"ACP remote file path does not match the expected style","drive-relative":"ACP remote file path cannot be drive-relative","root-relative":"ACP remote file path cannot be root-relative","unc-not-supported":"ACP remote file path must be absolute; UNC paths are not supported","device-namespace-not-supported":"ACP remote file path device namespaces are not supported","trailing-dot-or-space":"ACP remote file path components cannot end with a dot or space","alternate-data-stream":"ACP remote file path alternate data streams are not supported","reserved-device-name":"ACP remote file path reserved device names are not supported","short-name-alias":"ACP remote file path short-name aliases are not supported","invalid-character":"ACP remote file path contains characters that are not supported"},Oq=new Set(["CON","PRN","AUX","NUL","CONIN$","CONOUT$","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9","COM¹","COM²","COM³","LPT¹","LPT²","LPT³"]);class _ extends Error{reason;style;name="AcpRemotePathError";code="acp_remote_path_invalid";constructor(q,G){super(Jq[q]);this.reason=q;this.style=G;Object.setPrototypeOf(this,new.target.prototype)}toJSON(){return{name:this.name,code:this.code,reason:this.reason,style:this.style,message:this.message}}}class V extends Error{name="AcpRemotePathIdentityError";code="acp_remote_path_identity_invalid";constructor(){super("ACP remote path identity is invalid");Object.setPrototypeOf(this,new.target.prototype)}}function Qq(q){if(!E.has(q))throw new V}function Uq(q){if(!j.has(q))throw new V;if(Qq(q.workspace),q.style!==q.workspace.style)throw new V}function gq(q){Uq(q);let G=Object.freeze({style:q.style,workspace:q.workspace});return j.add(G),G}function Rq(q){let G=C(q),J=Object.freeze({style:G.style,workspace:G});return j.add(J),J}function C(q,G){let J=W(q,G);if(J.kind==="error")throw new _(J.reason,J.style);let O=J.style==="win32"?Yq(q):Xq(q);return k(J.style,O)}function Sq(q,G){let J=C(q),O=J.style==="win32"?Fq(J.wirePath,G):_q(J.wirePath,G);return k(J.style,O)}function W(q,G){if(R(q))return{kind:"error",reason:"device-namespace-not-supported",style:"win32"};if(g(q))return{kind:"error",reason:"unc-not-supported",style:G==="posix"?"posix":"win32"};if(S(q))return{kind:"error",reason:"unc-not-supported",style:"win32"};if(P(q)){if(G==="posix")return{kind:"error",reason:"style-mismatch",style:"posix"};return{kind:"absolute",style:"win32"}}if(Mq(q))return{kind:"error",reason:"drive-relative",style:"win32"};if(q.startsWith("\\"))return{kind:"error",reason:"root-relative",style:"win32"};if(q.startsWith("/")){if(G==="win32")return{kind:"error",reason:"style-mismatch",style:"win32"};return{kind:"absolute",style:"posix"}}return{kind:"error",reason:"not-absolute",style:"unknown"}}function k(q,G){let J=q==="win32"?G.toUpperCase():G,O=Object.freeze({style:q,wirePath:G,exactIdentity:I("acp-remote-exact-path",q,G),collisionIdentity:I("acp-remote-collision-path",q,J)});return E.add(O),O}function I(q,G,J){return`${q}:${Gq("sha256").update(`${G}\x00${J}`).digest("hex")}`}function Xq(q){let G=q.split("/"),J=[];for(let O of G.slice(1)){if(O.length===0||O===".")continue;if(O===".."){if(J.length>0)J.pop();continue}A(O),J.push(O)}return J.length===0?"/":`/${J.join("/")}`}function Yq(q){let G=q[0].toUpperCase(),J=Bq(q),O=[],Q="";for(let U of q.slice(2)){if(m(U)){if(Q.length>0)v(O,Q),Q="";continue}Q+=U}if(Q.length>0)v(O,Q);if(J&&O.length>0)throw new _("trailing-dot-or-space","win32");if(O.length===0)return`${G}:\\`;return`${G}:\\${O.join("\\")}`}function Zq(q,G){let J=q==="/"?[]:q.slice(1).split("/"),O=[...J];for(let Q of G.split("/")){if(Q.length===0||Q===".")continue;if(Q===".."){if(O.length===J.length)throw new _("not-absolute","posix");O.pop();continue}A(Q),O.push(Q)}return O.length===0?"/":`/${O.join("/")}`}function _q(q,G){if(R(G))throw new _("device-namespace-not-supported","win32");if(g(G))throw new _("unc-not-supported","posix");if(S(G))throw new _("unc-not-supported","win32");if(P(G)||G.startsWith("/"))throw new _("style-mismatch","posix");return Zq(q,G)}function $q(q,G){let J=q.indexOf("\\"),O=J===q.length-1?[]:q.slice(J+1).split("\\"),Q=[...O],U="";for(let K of G){if(m(K)){if(U.length>0)y(O.length,Q,U),U="";continue}U+=K}if(U.length>0)y(O.length,Q,U);let $=q.slice(0,J+1);if(Q.length===0)return $;return`${$}${Q.join("\\")}`}function Fq(q,G){let J=W(G,"win32");if(J.kind==="absolute")throw new _("style-mismatch","win32");if(J.reason!=="not-absolute")throw new _(J.reason,J.style);return $q(q,G)}function y(q,G,J){if(J===".")return;if(J===".."){if(G.length===q)throw new _("not-absolute","win32");G.pop();return}f(J),G.push(J)}function v(q,G){if(G===".")return;if(G===".."){if(q.length>0)q.pop();return}f(G),q.push(G)}function A(q){if(q.includes("\x00"))throw new _("invalid-character","posix")}function f(q){let G=Hq(q),J=Kq(G);if(J!==void 0&&Oq.has(J.toUpperCase()))throw new _("reserved-device-name","win32");if(G!==q)throw new _("trailing-dot-or-space","win32");if(q.includes(":"))throw new _("alternate-data-stream","win32");if(/~\d/u.test(q))throw new _("short-name-alias","win32");for(let O of q){let Q=O.codePointAt(0);if(Q===void 0||Q===0||Q>=1&&Q<=31||'<>"|?*'.includes(O))throw new _("invalid-character","win32")}}function Hq(q){let G=q.length;while(G>0){let J=q[G-1];if(J!=="."&&J!==" ")break;G-=1}return q.slice(0,G)}function Kq(q){if(q.length===0)return;let G=q.indexOf(".");return G===-1?q:q.slice(0,G)}function g(q){return q.startsWith("//")||q.startsWith("/\\")}function R(q){return/^([\\/]){2}[?.][\\/]/u.test(q)}function S(q){return/^[\\/]{2}/u.test(q)}function P(q){return/^[A-Za-z]:[\\/]/u.test(q)}function Mq(q){return/^[A-Za-z]:(?![\\/])/u.test(q)}function m(q){return q==="\\"||q==="/"}function Bq(q){if(q.length<=3)return!1;let G=q[q.length-1];return G==="\\"||G==="/"}var H="acp-remote-workspaces",d=/^[a-f0-9]{64}$/,b=new Map,h=new Lq,Nq;class X extends Error{name="AcpRemoteWorkspaceStateError";code="acp_remote_workspace_state_invalid";constructor(q){super(`ACP remote workspace durable state is invalid (${q})`);Object.setPrototypeOf(this,new.target.prototype)}}function iq(q){return{version:1,kind:"acp-remote",style:q.style,wirePath:q.workspace.wirePath,exactIdentity:q.workspace.exactIdentity,collisionIdentity:q.workspace.collisionIdentity}}function Tq(q){if(!q||typeof q!=="object"||Array.isArray(q))throw new X("descriptor-shape");let G=q;if(G.version!==1)throw new X("descriptor-version");if(G.kind!=="acp-remote")throw new X("descriptor-kind");if(G.style!=="posix"&&G.style!=="win32")throw new X("descriptor-style");if(typeof G.wirePath!=="string"||typeof G.exactIdentity!=="string"||typeof G.collisionIdentity!=="string")throw new X("descriptor-shape");let J;try{J=C(G.wirePath,G.style)}catch{throw new X("descriptor-wire-path")}if(J.exactIdentity!==G.exactIdentity||J.collisionIdentity!==G.collisionIdentity)throw new X("descriptor-identity");return{version:1,kind:"acp-remote",style:G.style,wirePath:J.wirePath,exactIdentity:J.exactIdentity,collisionIdentity:J.collisionIdentity}}function cq(q,G=F()){if(typeof q!=="string"||!/^acp-remote-collision-path:[a-f0-9]{64}$/.test(q))throw new X("descriptor-collision-identity");let J=Z.resolve(G),O=Vq("sha256").update(`acp-remote-host-state\x00${q}`).digest("hex");return Z.join(J,H,O)}async function sq(q){let G=Z.resolve(F());await jq(q,G)}async function rq(q,G){let J=Z.resolve(F());return s(q,J,G)}async function oq(q,G){let J=String(q);if(Z.dirname(G)!==J)throw new X("state-file-path");let O=await L(G);if(O.isSymbolicLink()||!O.isFile())throw new X("state-file-type");if(typeof process.getuid==="function"&&O.uid!==process.getuid())throw new X("state-file-owner");let Q=typeof O.mode==="bigint"?Number(O.mode&BigInt(511)):O.mode&511;if(process.platform!=="win32"&&Q!==384)throw new X("state-file-mode");await M(G,J,Z.basename(G))}async function aq(q,G,J){let O=String(q);if(Z.dirname(G)!==O)throw new X("state-file-path");let[Q,U]=await Promise.all([J.stat({bigint:!0}),L(G,{bigint:!0})]);if(U.isSymbolicLink()||!U.isFile()||!Q.isFile()||U.dev!==Q.dev||U.ino!==Q.ino)throw new X("state-file-replaced");if(typeof process.getuid==="function"&&(Number(U.uid)!==process.getuid()||Number(Q.uid)!==process.getuid()))throw new X("state-file-owner");let $=Number(U.mode&BigInt(511)),K=Number(Q.mode&BigInt(511));if(process.platform!=="win32"&&($!==384||K!==384))throw new X("state-file-mode");await M(G,O,Z.basename(G))}function tq(q,G,J,O){let Q=q[0];if(Q?.type!=="session_created"||Q.sessionId!==G||Q.data.sessionId!==G||Q.cwd!==J||Q.projectPath!==J)throw new X("remote-session-identity");if(O){let U=Tq(Q.data.remoteWorkspace);if(U.version!==O.version||U.kind!==O.kind||U.style!==O.style||U.wirePath!==O.wirePath||U.exactIdentity!==O.exactIdentity||U.collisionIdentity!==O.collisionIdentity)throw new X("remote-session-workspace")}for(let U of q)if(U.sessionId!==G||U.cwd!==J||U.projectPath!==J)throw new X("remote-session-event-identity");return Q}function n(q){return d.test(q)}async function p(q=F()){let G=Z.resolve(q);return u(`${G}\x00${H}`,async()=>{let J=Z.join(G,H),O;try{O=await c(G,(U)=>bq(U,{withFileTypes:!0}))}catch(U){if(U.code==="ENOENT")return[];throw U}await Nq?.();let Q=[];for(let U of O){if(!n(U.name))continue;let $=Z.join(J,U.name);try{let K=await s($,G,async(qq)=>qq);Q.push(K)}catch(K){if(K.code==="ENOENT")throw new X("protected-root-missing");throw K}}return Q.sort((U,$)=>U.localeCompare($))})}function i(q,G){if(typeof q!=="string"||!Z.isAbsolute(q))throw new X("protected-root-shape");let J=Z.resolve(q);if(J!==q)throw new X("protected-root-shape");let O=Z.relative(G,J),Q=`${H}${Z.sep}`;if(O===""||O===H||!O.startsWith(Q)||O.includes(`${Z.sep}..`)||O.startsWith(`..${Z.sep}`)||Z.isAbsolute(O))throw new X("protected-root-shape");let U=O.split(Z.sep);if(U.length!==2||U[0]!==H)throw new X("protected-root-shape");if(!d.test(U[1]??""))throw new X("protected-root-digest");return{storageRoot:G,digest:U[1]}}async function c(q,G){await r(q,q);let J=Z.join(q,H);try{await D(J,q),await M(J,q,H)}catch(O){if(O.code==="ENOENT")throw O;throw O}return G(J)}async function jq(q,G){await u(q,async()=>{let J=i(q,G);if(J.storageRoot!==G)throw new X("storage-root-mismatch");await r(J.storageRoot,G);let O=Z.join(J.storageRoot,H);await l(O,J.storageRoot),await M(O,G,H);let Q=Z.join(O,J.digest);await l(Q,O),await M(Q,O,J.digest)})}async function s(q,G,J){return u(q,async()=>{let O=i(q,G);if(O.storageRoot!==G)throw new X("storage-root-mismatch");let Q=Z.join(O.storageRoot,H);await c(G,async($)=>{if($!==Q)throw new X("protected-root-shape")});let U=Z.join(Q,O.digest);return await D(U,Q),await M(U,Q,O.digest),J(U)})}async function l(q,G){try{let J=await L(q);o(J,q)}catch(J){if(J.code!=="ENOENT")throw J;await Cq(q,{recursive:!1,mode:448})}await D(q,G)}async function D(q,G){let J=await L(q);o(J,q),await M(q,G,Z.basename(q))}async function r(q,G){let J=await L(q);Dq(J,q),await uq(q,G)}function Dq(q,G){a(q,G);let J=t(q);if(process.platform!=="win32"&&((J&448)!==448||(J&18)!==0))throw new X("protected-root-mode")}function o(q,G){a(q,G);let J=t(q);if(process.platform!=="win32"&&J!==448)throw new X("protected-root-mode")}function a(q,G){if(q.isSymbolicLink()||!q.isDirectory())throw new X("protected-root-symlink");if(typeof process.getuid==="function"&&q.uid!==process.getuid())throw new X("protected-root-owner");if(G.includes(`..${Z.sep}`))throw new X("protected-root-shape")}function t(q){return typeof q.mode==="bigint"?Number(q.mode&BigInt(511)):q.mode&511}async function M(q,G,J){let O=await N(q),Q=await N(G),U=Z.join(Q,J);if(O!==U)throw new X("protected-root-realpath")}async function uq(q,G){let J=await N(q),O=await N(G);if(J!==O)throw new X("protected-root-realpath")}async function u(q,G){let J=h.getStore();if(J?.has(q))throw new X("state-root-reentry");let O=b.get(q)??Promise.resolve(),Q=new Set(J??[]);Q.add(q);let U=O.catch(()=>{return}).then(()=>h.run(Q,G)),$=U.then(()=>{return},()=>{return});b.set(q,$);try{return await U}finally{if(b.get(q)===$)b.delete(q)}}import{execSync as wq}from"node:child_process";import{createHash as zq}from"node:crypto";import{realpathSync as xq}from"node:fs";import{readdir as Iq}from"node:fs/promises";import*as Y from"node:path";function yq(q){return Y.resolve(q).replace(/[/\\]/g,"-").replace(/:/g,"_")}function vq(q){let G=q.replace(/_/g,":");if(G.startsWith("-"))G="/"+G.slice(1);return G.replace(/-/g,"/")}function Eq(q){let G=yq(q);return Y.join(F(),"projects",G)}function e(q){let G=Y.resolve(q),J=[];while(!0)try{return Y.resolve(xq.native(G),...J.reverse())}catch(O){let Q=O.code;if(Q!=="ENOENT"&&Q!=="ENOTDIR")throw O;let U=Y.dirname(G);if(U===G)return Y.resolve(q);J.push(Y.basename(G)),G=U}}function XG(q,G="projectPath"){if(!Y.isAbsolute(q))throw Error(`${G} must be absolute`);let J=Y.resolve(q),O=e(J),Q=Y.join(e(F()),"acp-remote-workspaces"),U=Y.relative(Q,O),$=U.split(Y.sep)[0];if(U===""||U!==".."&&!Y.isAbsolute(U)&&!U.startsWith(`..${Y.sep}`)&&$!==void 0&&/^[a-f0-9]{64}$/i.test($))throw Error(`${G} must reference a local workspace`);return J}function w(q){return Eq(q)}function T(q){return String(q)}function Wq(q){return typeof q==="string"&&q!=="."&&q!==".."&&/^[A-Za-z0-9_-][A-Za-z0-9._-]{0,199}$/.test(q)}function B(q){if(!Wq(q))throw Error(`Invalid session ID: ${q}`)}function YG(q,G){return B(G),Y.join(w(q),`${G}.jsonl`)}function ZG(q,G){return B(G),Y.join(T(q),`${G}.jsonl`)}function _G(q,G){return B(G),Y.join(w(q),`${G}.inbox.json`)}function $G(q,G){return B(G),Y.join(T(q),`${G}.inbox.json`)}function FG(q,G){return B(G),Y.join(w(q),`${G}.goal.json`)}function HG(q,G){return B(G),Y.join(T(q),`${G}.goal.json`)}function KG(q,G){B(G);let J=zq("sha256").update(G).digest("hex");return Y.join(T(q),`.session-lease-${J}.lock`)}function MG(q){try{return wq("git rev-parse --abbrev-ref HEAD",{cwd:q,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||void 0}catch{return}}async function kq(){try{let q=Y.join(F(),"projects");return(await Iq(q,{withFileTypes:!0})).filter((J)=>J.isDirectory()).map((J)=>J.name)}catch{return[]}}async function BG(){let q=Y.resolve(F()),G=await kq().then((O)=>O.map((Q)=>({storagePath:Y.join(q,"projects",Q),projectPath:vq(Q),kind:"local"}))).catch(()=>[]),J=await p().then((O)=>O.map((Q)=>({storagePath:String(Q),projectPath:String(Q),kind:"acp-remote"})));return[...G,...J]}
2
- export{F as ek,_ as fk,Qq as gk,Uq as hk,gq as ik,Rq as jk,C as kk,Sq as lk,X as mk,iq as nk,Tq as ok,cq as pk,sq as qk,rq as rk,oq as sk,aq as tk,tq as uk,p as vk,vq as wk,Eq as xk,XG as yk,Wq as zk,B as Ak,YG as Bk,ZG as Ck,_G as Dk,$G as Ek,FG as Fk,HG as Gk,KG as Hk,MG as Ik,kq as Jk,BG as Kk};
2
+ export{F as fk,_ as gk,Qq as hk,Uq as ik,gq as jk,Rq as kk,C as lk,Sq as mk,X as nk,iq as ok,Tq as pk,cq as qk,sq as rk,rq as sk,oq as tk,aq as uk,tq as vk,p as wk,vq as xk,Eq as yk,XG as zk,Wq as Ak,B as Bk,YG as Ck,ZG as Dk,_G as Ek,$G as Fk,FG as Gk,HG as Hk,KG as Ik,MG as Jk,kq as Kk,BG as Lk};
@@ -1,2 +1,2 @@
1
1
  import{clampThinkingLevel as t,getSupportedThinkingLevels as i}from"@earendil-works/pi-ai";var f=["auto","off","minimal","low","medium","high","xhigh","max"];function s(e){return typeof e==="string"&&f.includes(e)}function g(e,o){let n=i(e);if(o!=="auto"&&!n.includes(o))throw Error(`Reasoning effort ${o} is not supported by ${e.name}`);return{selection:o,effective:o==="auto"?t(e,"high"):o,supported:n}}
2
- export{s as ug,g as vg};
2
+ export{s as vg,g as wg};
@@ -1,2 +1,2 @@
1
1
  var q;((h)=>{h.ReadOnly="readonly";h.Write="write";h.Execute="execute"})(q||={});function w(b){return b!==void 0&&typeof b.pattern==="string"&&typeof b.search_path==="string"}function z(b){return b!==void 0&&b.kind==="edit"&&typeof b.matches_found==="number"}var j=Symbol("blade.tool-result-model-images");function B(b,c){return Object.defineProperty(b,j,{value:c,enumerable:!1,configurable:!1,writable:!1}),b}function v(b){return b[j]}function C(b,c){let f=b.success?v(b):void 0;return f&&f.length>0?[{type:"text",text:c},...f]:c}function F(b){return b==="readonly"}
2
- export{q as he,w as ie,z as je,B as ke,C as le,F as me};
2
+ export{q as ie,w as je,z as ke,B as le,C as me,F as ne};
@@ -0,0 +1 @@
1
+ import{$f as n,Of as a,Pf as b,Qf as c,Rf as d,Sf as e,Tf as f,Uf as g,Vf as h,Wf as i,Xf as j,Yf as k,Zf as l,_f as m,ag as o,bg as p,cg as q}from"./chunk-n2qhccts.js";import"./chunk-v508x7cg.js";import"./chunk-t0gm0pn1.js";import"./chunk-sqtt43cv.js";import"./chunk-kv458q06.js";import"./chunk-5v0jcyea.js";import"./chunk-2f8d0km4.js";import"./chunk-ddvdc2p0.js";import"./chunk-2mk914vk.js";import"./chunk-j8hbddjp.js";import"./chunk-4cdk4mds.js";import"./chunk-mcnptqmc.js";import"./chunk-rvs364rz.js";import"./chunk-vw9paban.js";import"./chunk-4wx5sya5.js";import"./chunk-eg3ms291.js";export{a as vanillaStore,c as sessionActions,l as getThinkingModeEnabled,b as getState,n as getServiceTier,o as getResponseVerbosity,m as getReasoningEffort,j as getModelById,e as getMessages,k as getMcpServers,i as getCurrentModel,f as getConfig,p as getCommunicationStyle,h as getAllModels,g as ensureStoreInitialized,q as configActions,d as appActions};
@@ -0,0 +1,2 @@
1
+ var _=20,E=5242880,T=32768,A=1e6,S=4194304;
2
+ export{_ as Vi,E as Wi,T as Xi,A as Yi,S as Zi};
@@ -0,0 +1 @@
1
+ import{ak as a,bk as b,ck as c}from"./chunk-rvs364rz.js";import"./chunk-vw9paban.js";import"./chunk-4wx5sya5.js";import"./chunk-eg3ms291.js";export{b as isWorkspaceTrusted,c as WorkspaceTrustService,a as MAX_RESIDENT_WORKSPACE_TRUST_STATUSES};