@xenosystem/agent-sdk 0.10.18 → 0.10.20

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 (47) hide show
  1. package/dist/artifacts/index.cjs +1 -1
  2. package/dist/artifacts/index.js +1 -1
  3. package/dist/automation/index.cjs +1 -1
  4. package/dist/automation/index.js +1 -1
  5. package/dist/control-plane/index.cjs +1 -1
  6. package/dist/control-plane/index.js +1 -1
  7. package/dist/electron/index.cjs +177 -176
  8. package/dist/electron/index.d.cts +9 -0
  9. package/dist/electron/index.d.ts +9 -0
  10. package/dist/electron/index.js +169 -168
  11. package/dist/electron/metafile-cjs.json +1 -1
  12. package/dist/electron/metafile-esm.json +1 -1
  13. package/dist/index.cjs +353 -352
  14. package/dist/index.d.cts +51 -1
  15. package/dist/index.d.ts +51 -1
  16. package/dist/index.js +342 -341
  17. package/dist/mcp/index.cjs +18 -18
  18. package/dist/mcp/index.js +18 -18
  19. package/dist/mcp/metafile-cjs.json +1 -1
  20. package/dist/mcp/metafile-esm.json +1 -1
  21. package/dist/metafile-cjs.json +1 -1
  22. package/dist/metafile-esm.json +1 -1
  23. package/dist/providers/index.cjs +10 -10
  24. package/dist/providers/index.js +10 -10
  25. package/dist/providers/metafile-cjs.json +1 -1
  26. package/dist/providers/metafile-esm.json +1 -1
  27. package/dist/session/index.cjs +1 -1
  28. package/dist/session/index.js +1 -1
  29. package/dist/session/metafile-cjs.json +1 -1
  30. package/dist/session/metafile-esm.json +1 -1
  31. package/dist/ui/index.cjs +1 -1
  32. package/dist/ui/index.js +1 -1
  33. package/dist/ui/metafile-cjs.json +1 -1
  34. package/dist/ui/metafile-esm.json +1 -1
  35. package/dist/utils/index.cjs +18 -18
  36. package/dist/utils/index.d.cts +10 -1
  37. package/dist/utils/index.d.ts +10 -1
  38. package/dist/utils/index.js +15 -15
  39. package/dist/utils/metafile-cjs.json +1 -1
  40. package/dist/utils/metafile-esm.json +1 -1
  41. package/dist/workforce/index.cjs +1 -1
  42. package/dist/workforce/index.d.cts +14 -0
  43. package/dist/workforce/index.d.ts +14 -0
  44. package/dist/workforce/index.js +1 -1
  45. package/dist/workforce/metafile-cjs.json +1 -1
  46. package/dist/workforce/metafile-esm.json +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"inputs":{"src/tools/tool-names.ts":{"bytes":3747,"imports":[],"format":"esm"},"src/ui/types.ts":{"bytes":4678,"imports":[],"format":"esm"},"src/ui/controller.ts":{"bytes":10914,"imports":[{"path":"src/tools/tool-names.ts","kind":"import-statement","original":"../tools/tool-names.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/markdown.ts":{"bytes":2181,"imports":[],"format":"esm"},"src/ui/styles.ts":{"bytes":4255,"imports":[],"format":"esm"},"src/ui/view-model.ts":{"bytes":4490,"imports":[{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/dom-renderer.ts":{"bytes":12031,"imports":[{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"}],"format":"esm"},"src/ui/index.ts":{"bytes":1059,"imports":[{"path":"src/ui/controller.ts","kind":"import-statement","original":"./controller.js"},{"path":"src/ui/dom-renderer.ts","kind":"import-statement","original":"./dom-renderer.js"},{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"}},"outputs":{"dist/ui/index.cjs":{"imports":[],"exports":[],"entryPoint":"src/ui/index.ts","inputs":{"src/ui/index.ts":{"bytesInOutput":257},"src/tools/tool-names.ts":{"bytesInOutput":580},"src/ui/types.ts":{"bytesInOutput":8},"src/ui/controller.ts":{"bytesInOutput":3559},"src/ui/markdown.ts":{"bytesInOutput":864},"src/ui/styles.ts":{"bytesInOutput":4161},"src/ui/view-model.ts":{"bytesInOutput":2338},"src/ui/dom-renderer.ts":{"bytesInOutput":6248}},"bytes":18633}}}
1
+ {"inputs":{"src/tools/tool-names.ts":{"bytes":3779,"imports":[],"format":"esm"},"src/ui/types.ts":{"bytes":4678,"imports":[],"format":"esm"},"src/ui/controller.ts":{"bytes":10914,"imports":[{"path":"src/tools/tool-names.ts","kind":"import-statement","original":"../tools/tool-names.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/markdown.ts":{"bytes":2181,"imports":[],"format":"esm"},"src/ui/styles.ts":{"bytes":4255,"imports":[],"format":"esm"},"src/ui/view-model.ts":{"bytes":4490,"imports":[{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/dom-renderer.ts":{"bytes":12031,"imports":[{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"}],"format":"esm"},"src/ui/index.ts":{"bytes":1059,"imports":[{"path":"src/ui/controller.ts","kind":"import-statement","original":"./controller.js"},{"path":"src/ui/dom-renderer.ts","kind":"import-statement","original":"./dom-renderer.js"},{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"}},"outputs":{"dist/ui/index.cjs":{"imports":[],"exports":[],"entryPoint":"src/ui/index.ts","inputs":{"src/ui/index.ts":{"bytesInOutput":257},"src/tools/tool-names.ts":{"bytesInOutput":593},"src/ui/types.ts":{"bytesInOutput":8},"src/ui/controller.ts":{"bytesInOutput":3559},"src/ui/markdown.ts":{"bytesInOutput":864},"src/ui/styles.ts":{"bytesInOutput":4161},"src/ui/view-model.ts":{"bytesInOutput":2338},"src/ui/dom-renderer.ts":{"bytesInOutput":6248}},"bytes":18646}}}
@@ -1 +1 @@
1
- {"inputs":{"src/tools/tool-names.ts":{"bytes":3747,"imports":[],"format":"esm"},"src/ui/types.ts":{"bytes":4678,"imports":[],"format":"esm"},"src/ui/controller.ts":{"bytes":10914,"imports":[{"path":"src/tools/tool-names.ts","kind":"import-statement","original":"../tools/tool-names.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/markdown.ts":{"bytes":2181,"imports":[],"format":"esm"},"src/ui/styles.ts":{"bytes":4255,"imports":[],"format":"esm"},"src/ui/view-model.ts":{"bytes":4490,"imports":[{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/dom-renderer.ts":{"bytes":12031,"imports":[{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"}],"format":"esm"},"src/ui/index.ts":{"bytes":1059,"imports":[{"path":"src/ui/controller.ts","kind":"import-statement","original":"./controller.js"},{"path":"src/ui/dom-renderer.ts","kind":"import-statement","original":"./dom-renderer.js"},{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"}},"outputs":{"dist/ui/index.js":{"imports":[],"exports":["XENO_UI_RENDERER_API_VERSION","createAgentUiController","createAgentUiView","dispatchAgentUiAction","isSafeMarkdownHref","mountAgentUi","parseMarkdown","xenoUiCss","xenoUiTokens"],"entryPoint":"src/ui/index.ts","inputs":{"src/tools/tool-names.ts":{"bytesInOutput":570},"src/ui/types.ts":{"bytesInOutput":8},"src/ui/controller.ts":{"bytesInOutput":3560},"src/ui/index.ts":{"bytesInOutput":0},"src/ui/markdown.ts":{"bytesInOutput":864},"src/ui/styles.ts":{"bytesInOutput":4162},"src/ui/view-model.ts":{"bytesInOutput":2338},"src/ui/dom-renderer.ts":{"bytesInOutput":6249}},"bytes":17970}}}
1
+ {"inputs":{"src/tools/tool-names.ts":{"bytes":3779,"imports":[],"format":"esm"},"src/ui/types.ts":{"bytes":4678,"imports":[],"format":"esm"},"src/ui/controller.ts":{"bytes":10914,"imports":[{"path":"src/tools/tool-names.ts","kind":"import-statement","original":"../tools/tool-names.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/markdown.ts":{"bytes":2181,"imports":[],"format":"esm"},"src/ui/styles.ts":{"bytes":4255,"imports":[],"format":"esm"},"src/ui/view-model.ts":{"bytes":4490,"imports":[{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/dom-renderer.ts":{"bytes":12031,"imports":[{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"}],"format":"esm"},"src/ui/index.ts":{"bytes":1059,"imports":[{"path":"src/ui/controller.ts","kind":"import-statement","original":"./controller.js"},{"path":"src/ui/dom-renderer.ts","kind":"import-statement","original":"./dom-renderer.js"},{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"}},"outputs":{"dist/ui/index.js":{"imports":[],"exports":["XENO_UI_RENDERER_API_VERSION","createAgentUiController","createAgentUiView","dispatchAgentUiAction","isSafeMarkdownHref","mountAgentUi","parseMarkdown","xenoUiCss","xenoUiTokens"],"entryPoint":"src/ui/index.ts","inputs":{"src/tools/tool-names.ts":{"bytesInOutput":583},"src/ui/types.ts":{"bytesInOutput":8},"src/ui/controller.ts":{"bytesInOutput":3560},"src/ui/index.ts":{"bytesInOutput":0},"src/ui/markdown.ts":{"bytesInOutput":864},"src/ui/styles.ts":{"bytesInOutput":4162},"src/ui/view-model.ts":{"bytesInOutput":2338},"src/ui/dom-renderer.ts":{"bytesInOutput":6249}},"bytes":17983}}}
@@ -1,24 +1,24 @@
1
- "use strict";var ht=Object.create;var E=Object.defineProperty;var xt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var wt=Object.getPrototypeOf,bt=Object.prototype.hasOwnProperty;var Et=(t,e)=>{for(var n in e)E(t,n,{get:e[n],enumerable:!0})},B=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yt(e))!bt.call(t,o)&&o!==n&&E(t,o,{get:()=>e[o],enumerable:!(r=xt(e,o))||r.enumerable});return t};var C=(t,e,n)=>(n=t!=null?ht(wt(t)):{},B(e||!t||!t.__esModule?E(n,"default",{value:t,enumerable:!0}):n,t)),Rt=t=>B(E({},"__esModule",{value:!0}),t);var Qe={};Et(Qe,{ApiTransientError:()=>b,HOME_DIR:()=>te,IS_LINUX:()=>Zt,IS_MAC:()=>Qt,IS_WINDOWS:()=>Q,LogLevel:()=>V,OS_VERSION:()=>Vt,PLATFORM:()=>T,accountTextTokens:()=>Te,appendDurableLine:()=>Ct,appendLine:()=>_t,benchmarkLeakError:()=>We,buildToolResultBlock:()=>Ue,buildToolResultText:()=>gt,calculateCost:()=>_e,commandMentionsBenchmarkLeak:()=>je,conservativeTokenAccountingAdapter:()=>ot,copyTextToClipboard:()=>$e,createSafeRegex:()=>le,debug:()=>me,decodeTextBuffer:()=>W,deleteDir:()=>Ft,deleteFile:()=>It,detectLineEnding:()=>q,detectPreferredLineEnding:()=>Nt,detectTextEncoding:()=>I,encodeTextBuffer:()=>j,ensureDir:()=>R,error:()=>xe,estimateTokens:()=>it,estimateTokensForModel:()=>rt,existsSync:()=>Bt,filterBenchmarkLeakPaths:()=>Fe,findSimilarFile:()=>Ot,fitsInBudget:()=>Ae,formatCost:()=>Ce,getAgentHome:()=>ee,getBenchmarkReferenceOverwriteHint:()=>qe,getBoolean:()=>ce,getConfigDir:()=>ne,getLogLevel:()=>pe,getNumber:()=>ue,getProjectConfigDir:()=>re,getRetryErrorContext:()=>N,getShellName:()=>oe,getString:()=>ae,getToolResultTransportContent:()=>Xe,hasDir:()=>kt,hasDisallowedAsciiControlCharacter:()=>Ke,hasFile:()=>Tt,hasFrontmatter:()=>Xt,hasNonTextToolResultContent:()=>ze,hasTransientStatusMention:()=>et,info:()=>ge,isBenchmarkLeakPath:()=>O,isBenchmarkMode:()=>v,isGitRepo:()=>ie,isPathSafe:()=>U,isRetryableError:()=>nt,listDirs:()=>Dt,listFiles:()=>Pt,normalizeLineEndings:()=>H,parseDocument:()=>Ht,parseJsonLines:()=>qt,readFileSafe:()=>At,readIfExists:()=>Lt,readTextFile:()=>J,remainingBudget:()=>Me,renameReplacingWithRetry:()=>D,safeJsonParse:()=>Wt,safeJsonStringify:()=>jt,safeRegexTest:()=>fe,safeResolvePath:()=>Kt,setLogLevel:()=>de,stringifyDocument:()=>Jt,toTransportAssistantBlocks:()=>Ge,toolAssistantContentToText:()=>pt,toolResultContentToText:()=>Je,truncateToTokens:()=>ke,validateRegexPattern:()=>Z,validateRequired:()=>se,warn:()=>he,withRetry:()=>Re,writeAtomic:()=>P,writeTextFile:()=>$t});module.exports=Rt(Qe);var w=require("node:fs"),h=require("node:fs"),c=C(require("node:fs/promises"),1),a=C(require("node:path"),1);function Tt(t){try{return(0,h.existsSync)(t)&&(0,h.statSync)(t).isFile()}catch{return!1}}function kt(t){try{return(0,h.existsSync)(t)&&(0,h.statSync)(t).isDirectory()}catch{return!1}}function At(t,e=""){try{return(0,w.readFileSync)(t,"utf-8")}catch{return e}}async function R(t){await c.mkdir(t,{recursive:!0})}async function P(t,e){let n=a.dirname(t);await R(n);let r=Math.random().toString(36).substring(2,15),o=`${t}.tmp.${process.pid}.${r}`;try{await c.writeFile(o,e),await D(o,t)}finally{try{await c.unlink(o)}catch{}}}var Mt=new Set(["EACCES","EBUSY","EPERM"]),St=[10,20,40,80,160,320,640];async function D(t,e){for(let n=0;;n+=1)try{await c.rename(t,e);return}catch(r){let o=r.code,i=St[n];if(process.platform!=="win32"||!o||!Mt.has(o)||i===void 0)throw r;await new Promise(s=>setTimeout(s,i))}}async function _t(t,e){let n=a.dirname(t);await R(n),await c.appendFile(t,e+`
2
- `,"utf-8")}async function Ct(t,e){let n=a.dirname(t);await R(n);let r=await c.open(t,"a");try{await r.writeFile(e+`
3
- `,"utf-8"),await r.sync()}finally{await r.close()}}function I(t){return t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191?"utf8-bom":t.length>=2&&t[0]===255&&t[1]===254?"utf16le":t.length>=2&&t[0]===254&&t[1]===255?"utf16be":"utf8"}function F(t){let e=Buffer.from(t);for(let n=0;n+1<e.length;n+=2){let r=e[n];e[n]=e[n+1],e[n+1]=r}return e}function W(t,e){switch(e){case"utf8-bom":return t.subarray(3).toString("utf8");case"utf16le":return t.subarray(2).toString("utf16le");case"utf16be":return F(t.subarray(2)).toString("utf16le");default:return t.toString("utf8")}}function j(t,e){switch(e){case"utf8-bom":return Buffer.concat([Buffer.from([239,187,191]),Buffer.from(t,"utf8")]);case"utf16le":return Buffer.concat([Buffer.from([255,254]),Buffer.from(t,"utf16le")]);case"utf16be":return Buffer.concat([Buffer.from([254,255]),F(Buffer.from(t,"utf16le"))]);default:return Buffer.from(t,"utf8")}}function q(t){return t.includes(`\r
4
- `)?"CRLF":"LF"}function H(t,e){let n=t.replace(/\r\n/g,`
1
+ "use strict";var ht=Object.create;var E=Object.defineProperty;var xt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var wt=Object.getPrototypeOf,bt=Object.prototype.hasOwnProperty;var Et=(t,e)=>{for(var n in e)E(t,n,{get:e[n],enumerable:!0})},B=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yt(e))!bt.call(t,o)&&o!==n&&E(t,o,{get:()=>e[o],enumerable:!(r=xt(e,o))||r.enumerable});return t};var S=(t,e,n)=>(n=t!=null?ht(wt(t)):{},B(e||!t||!t.__esModule?E(n,"default",{value:t,enumerable:!0}):n,t)),Rt=t=>B(E({},"__esModule",{value:!0}),t);var nn={};Et(nn,{ApiTransientError:()=>b,HOME_DIR:()=>te,IS_LINUX:()=>Qt,IS_MAC:()=>Zt,IS_WINDOWS:()=>Z,LogLevel:()=>V,OS_VERSION:()=>Vt,PLATFORM:()=>T,accountTextTokens:()=>_e,appendDurableLine:()=>St,appendLine:()=>_t,benchmarkLeakError:()=>He,buildToolResultBlock:()=>tn,buildToolResultText:()=>gt,calculateCost:()=>Oe,commandMentionsBenchmarkLeak:()=>Je,conservativeTokenAccountingAdapter:()=>ot,copyTextToClipboard:()=>Be,createSafeRegex:()=>fe,debug:()=>me,decodeTextBuffer:()=>j,deleteDir:()=>Ft,deleteFile:()=>Dt,detectLineEnding:()=>q,detectPreferredLineEnding:()=>Nt,detectTextEncoding:()=>D,encodeTextBuffer:()=>W,ensureDir:()=>R,error:()=>xe,estimateTokens:()=>it,estimateTokensForModel:()=>rt,existsSync:()=>Bt,filterBenchmarkLeakPaths:()=>ze,findSimilarFile:()=>Ot,fitsInBudget:()=>$e,formatCost:()=>Le,getAgentHome:()=>ee,getBenchmarkReferenceOverwriteHint:()=>Ye,getBoolean:()=>ce,getConfigDir:()=>ne,getLogLevel:()=>pe,getNumber:()=>ue,getProjectConfigDir:()=>re,getRetryErrorContext:()=>N,getShellName:()=>oe,getString:()=>ae,getToolResultTransportContent:()=>Ke,hasDir:()=>At,hasDisallowedAsciiControlCharacter:()=>en,hasFile:()=>Tt,hasFrontmatter:()=>Ht,hasNonTextToolResultContent:()=>Qe,hasTransientStatusMention:()=>et,info:()=>ge,isBenchmarkLeakPath:()=>O,isBenchmarkMode:()=>v,isGitRepo:()=>ie,isPathSafe:()=>G,isRetryableError:()=>nt,listDirs:()=>It,listFiles:()=>Pt,normalizeLineEndings:()=>X,normalizeXenoRequestContext:()=>Ee,parseDocument:()=>Xt,parseJsonLines:()=>qt,readFileSafe:()=>Ct,readIfExists:()=>Lt,readTextFile:()=>z,remainingBudget:()=>Ne,renameReplacingWithRetry:()=>I,safeJsonParse:()=>jt,safeJsonStringify:()=>Wt,safeRegexTest:()=>le,safeResolvePath:()=>Kt,setLogLevel:()=>de,stringifyDocument:()=>zt,toTransportAssistantBlocks:()=>Ve,toolAssistantContentToText:()=>pt,toolResultContentToText:()=>Ge,truncateToTokens:()=>Se,validateRegexPattern:()=>Q,validateRequired:()=>se,warn:()=>he,withRetry:()=>Me,writeAtomic:()=>P,writeTextFile:()=>$t,xenoRequestContextHeaders:()=>Re});module.exports=Rt(nn);var w=require("node:fs"),h=require("node:fs"),c=S(require("node:fs/promises"),1),a=S(require("node:path"),1);function Tt(t){try{return(0,h.existsSync)(t)&&(0,h.statSync)(t).isFile()}catch{return!1}}function At(t){try{return(0,h.existsSync)(t)&&(0,h.statSync)(t).isDirectory()}catch{return!1}}function Ct(t,e=""){try{return(0,w.readFileSync)(t,"utf-8")}catch{return e}}async function R(t){await c.mkdir(t,{recursive:!0})}async function P(t,e){let n=a.dirname(t);await R(n);let r=Math.random().toString(36).substring(2,15),o=`${t}.tmp.${process.pid}.${r}`;try{await c.writeFile(o,e),await I(o,t)}finally{try{await c.unlink(o)}catch{}}}var kt=new Set(["EACCES","EBUSY","EPERM"]),Mt=[10,20,40,80,160,320,640];async function I(t,e){for(let n=0;;n+=1)try{await c.rename(t,e);return}catch(r){let o=r.code,i=Mt[n];if(process.platform!=="win32"||!o||!kt.has(o)||i===void 0)throw r;await new Promise(s=>setTimeout(s,i))}}async function _t(t,e){let n=a.dirname(t);await R(n),await c.appendFile(t,e+`
2
+ `,"utf-8")}async function St(t,e){let n=a.dirname(t);await R(n);let r=await c.open(t,"a");try{await r.writeFile(e+`
3
+ `,"utf-8"),await r.sync()}finally{await r.close()}}function D(t){return t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191?"utf8-bom":t.length>=2&&t[0]===255&&t[1]===254?"utf16le":t.length>=2&&t[0]===254&&t[1]===255?"utf16be":"utf8"}function F(t){let e=Buffer.from(t);for(let n=0;n+1<e.length;n+=2){let r=e[n];e[n]=e[n+1],e[n+1]=r}return e}function j(t,e){switch(e){case"utf8-bom":return t.subarray(3).toString("utf8");case"utf16le":return t.subarray(2).toString("utf16le");case"utf16be":return F(t.subarray(2)).toString("utf16le");default:return t.toString("utf8")}}function W(t,e){switch(e){case"utf8-bom":return Buffer.concat([Buffer.from([239,187,191]),Buffer.from(t,"utf8")]);case"utf16le":return Buffer.concat([Buffer.from([255,254]),Buffer.from(t,"utf16le")]);case"utf16be":return Buffer.concat([Buffer.from([254,255]),F(Buffer.from(t,"utf16le"))]);default:return Buffer.from(t,"utf8")}}function q(t){return t.includes(`\r
4
+ `)?"CRLF":"LF"}function X(t,e){let n=t.replace(/\r\n/g,`
5
5
  `);return e==="CRLF"?n.replace(/\n/g,`\r
6
- `):n}async function J(t){let e=await c.readFile(t),n=I(e),r=W(e,n);return{content:r,encoding:n,lineEnding:q(r),sizeBytes:e.length}}async function $t(t,e,n){let r=H(e,n?.lineEnding??"LF");await P(t,j(r,n?.encoding??"utf8"))}async function Nt(t){let e=new Set,n=a.resolve(t);for(;!e.has(n);){e.add(n);try{let o=(0,w.readdirSync)(n,{withFileTypes:!0}).filter(i=>i.isFile()).map(i=>i.name).sort();for(let i of o){if(i.startsWith("."))continue;let s=a.extname(i).toLowerCase();if([".ts",".tsx",".js",".jsx",".json",".md",".txt",".yaml",".yml",".css",".html",".xml",".sh",".ps1"].includes(s))try{let u=a.join(n,i),l=await J(u);if(l.content.length>0)return l.lineEnding}catch{}}}catch{}let r=a.dirname(n);if(r===n)break;n=r}return"LF"}function vt(t,e,n){let r=[],o=[{dir:t,depth:0}],i=new Set;for(;o.length>0&&r.length<n;){let s=o.shift();if(!i.has(s.dir)){i.add(s.dir);try{let u=(0,w.readdirSync)(s.dir,{withFileTypes:!0});for(let l of u){let d=a.join(s.dir,l.name);if(l.isFile()){if(r.push(d),r.length>=n)break;continue}l.isDirectory()&&s.depth<e&&!l.name.startsWith(".")&&l.name!=="node_modules"&&o.push({dir:d,depth:s.depth+1})}}catch{}}}return r}function Ot(t){try{let e=a.dirname(t),n=a.basename(t,a.extname(t)).toLowerCase(),r=a.basename(t).toLowerCase(),i=[e,a.dirname(e)].flatMap(u=>vt(u,2,500)),s=null;for(let u of i){let l=a.basename(u).toLowerCase(),d=a.basename(u,a.extname(u)).toLowerCase(),g=null;if(l===r?g=0:d===n?g=1:(l.includes(n)||n.includes(d))&&(g=2),g===null)continue;let _=a.relative(e,u).split(a.sep).length,L=g+_*.01;(!s||L<s.score)&&(s={filePath:u,score:L})}return s?.filePath??null}catch{}return null}async function Lt(t){try{return await c.readFile(t,"utf-8")}catch(e){if(e.code==="ENOENT")return null;throw e}}function Bt(t){return(0,h.existsSync)(t)}async function Pt(t,e){try{let r=(await c.readdir(t,{withFileTypes:!0})).filter(o=>o.isFile()).map(o=>a.join(t,o.name));return e&&(r=r.filter(o=>e.test(a.basename(o)))),r}catch(n){if(n.code==="ENOENT")return[];throw n}}async function Dt(t){try{return(await c.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>a.join(t,n.name))}catch(e){if(e.code==="ENOENT")return[];throw e}}async function It(t){try{await c.unlink(t)}catch(e){if(e.code!=="ENOENT")throw e}}async function Ft(t){try{await c.rm(t,{recursive:!0,force:!0})}catch(e){if(e.code!=="ENOENT")throw e}}function Wt(t,e){try{return JSON.parse(t)}catch{return e}}function jt(t,e="{}"){try{return JSON.stringify(t)}catch{return e}}function qt(t){let e=[];for(let n of t.split(`
7
- `)){let r=n.trim();if(r)try{e.push(JSON.parse(r))}catch{}}return e}function Ht(t){let e=Yt(t);return{frontmatter:e.frontmatter,content:e.content.trim()}}function Jt(t,e){let n=Object.fromEntries(Object.entries(t).filter(([r,o])=>o!==void 0));return["---",G(n),"---","",e].join(`
8
- `)}function Xt(t){return t.trimStart().startsWith("---")}function Yt(t){let e=t.replace(/^\uFEFF/,"");if(!e.startsWith("---"))return{frontmatter:{},content:t};let n=e.search(/\r?\n/);if(n<0||e.slice(0,n).trim()!=="---")return{frontmatter:{},content:t};let r=e.slice(n+(e[n]==="\r"?2:1)),o=r.match(/(?:^|\r?\n)---[ \t]*(?:\r?\n|$)/);if(!o||o.index===void 0)throw new Error("YAML frontmatter is not closed.");let i=r.slice(0,o.index),s=o[0],u=o.index+s.length;return{frontmatter:Y(i),content:r.slice(u)}}function Y(t){let e={},n=t.split(/\r?\n/);for(let r=0;r<n.length;r+=1){let o=n[r];if(!o.trim()||o.trimStart().startsWith("#"))continue;if(/^\s/.test(o))throw new Error(`Unexpected indentation at line ${r+1}.`);let i=Gt(o,r+1);if(i.key==="<<")throw new Error("YAML merge keys are not supported.");if(i.value!==""){e[i.key]=z(i.value,r+1);continue}let s=zt(n,r+1);e[i.key]=s.value,r=s.nextIndex-1}return e}function zt(t,e){let n=[],r=e;for(;r<t.length;r+=1){let i=t[r];if(!i.trim()){n.push(i);continue}if(!/^\s/.test(i))break;n.push(i.replace(/^ {2}/,""))}let o=n.filter(i=>i.trim()&&!i.trimStart().startsWith("#"));return o.length===0?{value:{},nextIndex:r}:o.every(i=>i.trimStart().startsWith("- "))?{value:o.map((i,s)=>z(i.trimStart().slice(2),e+s+1)),nextIndex:r}:{value:Y(n.join(`
9
- `)),nextIndex:r}}function Gt(t,e){let n=t.indexOf(":");if(n<=0)throw new Error(`Invalid YAML line ${e}.`);let r=t.slice(0,n).trim(),o=t.slice(n+1).trim();if(!r)throw new Error(`Invalid YAML key at line ${e}.`);return{key:r,value:o}}function z(t,e){if(t==="")return"";if(t==="[]")return[];if(t==="{}")return{};if(t==="true")return!0;if(t==="false")return!1;if(t==="null"||t==="~")return null;if(/^-?\d+(?:\.\d+)?$/.test(t))return Number(t);if(t.startsWith('"'))return X(t,e);if(t.startsWith("'")){if(!t.endsWith("'"))throw new Error(`Unclosed quoted scalar at line ${e}.`);return t.slice(1,-1).replace(/''/g,"'")}if(t.startsWith("[")||t.startsWith("{"))return X(t,e);if(t.includes("[")||t.includes("]")||t.includes("{")||t.includes("}"))throw new Error(`Unsupported YAML scalar at line ${e}.`);return t}function X(t,e){try{return JSON.parse(t)}catch{throw new Error(`Invalid YAML scalar at line ${e}.`)}}function G(t,e=""){return Object.entries(t).map(([n,r])=>Ut(n,r,e)).join(`
10
- `)}function Ut(t,e,n){return Array.isArray(e)?`${n}${t}: ${JSON.stringify(e)}`:e&&typeof e=="object"?`${n}${t}:
11
- ${G(e,`${n} `)}`:`${n}${t}: ${JSON.stringify(e)}`}var f=C(require("path"),1);function U(t,e){let n=f.resolve(t),r=f.resolve(t,e);return r===n?!0:n===f.parse(n).root?r.startsWith(n):r.startsWith(n+f.sep)}function Kt(t,e){if(f.isAbsolute(e))return f.resolve(e);if(!U(t,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return f.resolve(t,e)}var p=require("node:os"),K=require("node:child_process"),x=require("node:path"),T=(0,p.platform)(),Q=T==="win32",Qt=T==="darwin",Zt=T==="linux",Vt=(0,p.release)(),te=(0,p.homedir)();function ee(){let t=process.env.XENO_AGENT_HOME?.trim();return t?(0,x.resolve)(t):(0,x.resolve)((0,p.homedir)(),".xeno-agent")}function ne(){let t=process.env.XENO_CONFIG_DIR?.trim();return t?(0,x.resolve)(t):(0,x.resolve)((0,p.homedir)(),".xeno-code")}function re(t){return(0,x.resolve)(t,".xeno-code")}function oe(){return Q?"powershell":process.env.SHELL?.split("/").pop()??"bash"}function ie(t){try{return(0,K.execSync)("git rev-parse --is-inside-work-tree",{cwd:t,stdio:"ignore"}),!0}catch{return!1}}function se(t,e){for(let n of e)if(t[n]===void 0||t[n]===null||t[n]==="")return`Missing required parameter: ${n}`;return null}function ae(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="string")throw new Error(`Parameter ${e} must be a string, got ${typeof r}`);return r}function ue(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="number")throw new Error(`Parameter ${e} must be a number, got ${typeof r}`);if(isNaN(r))throw new Error(`Parameter ${e} is NaN`);return r}function ce(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="boolean")throw new Error(`Parameter ${e} must be a boolean, got ${typeof r}`);return r}function Z(t){if(t.length>5e3)return"Pattern too long (max 5000 characters)";let n=[/(\.\*){3,}/,/(\+\+|\*\*)/,/(.*\+.*\+.*\+)/];for(let r of n)if(r.test(t))return"Pattern contains potentially unsafe constructs that could cause excessive backtracking";return null}function le(t,e,n=5e3){let r=Z(t);if(r)throw new Error(r);try{return new RegExp(t,e)}catch(o){let i=o instanceof Error?o.message:String(o);throw new Error(`Invalid regex pattern: ${i}`)}}function fe(t,e,n=1e3){if(e.length>1e5)throw new Error(`Input too large for safe regex test (${e.length} chars, max 100000)`);return t.test(e)}var V=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(V||{}),y=1;function de(t){y=t}function pe(){return y}function m(){return new Date().toISOString()}function me(t,e){y<=0&&(e!==void 0?process.stderr.write(`[${m()}] DEBUG: ${t} ${k(e)}
6
+ `):n}async function z(t){let e=await c.readFile(t),n=D(e),r=j(e,n);return{content:r,encoding:n,lineEnding:q(r),sizeBytes:e.length}}async function $t(t,e,n){let r=X(e,n?.lineEnding??"LF");await P(t,W(r,n?.encoding??"utf8"))}async function Nt(t){let e=new Set,n=a.resolve(t);for(;!e.has(n);){e.add(n);try{let o=(0,w.readdirSync)(n,{withFileTypes:!0}).filter(i=>i.isFile()).map(i=>i.name).sort();for(let i of o){if(i.startsWith("."))continue;let s=a.extname(i).toLowerCase();if([".ts",".tsx",".js",".jsx",".json",".md",".txt",".yaml",".yml",".css",".html",".xml",".sh",".ps1"].includes(s))try{let u=a.join(n,i),f=await z(u);if(f.content.length>0)return f.lineEnding}catch{}}}catch{}let r=a.dirname(n);if(r===n)break;n=r}return"LF"}function vt(t,e,n){let r=[],o=[{dir:t,depth:0}],i=new Set;for(;o.length>0&&r.length<n;){let s=o.shift();if(!i.has(s.dir)){i.add(s.dir);try{let u=(0,w.readdirSync)(s.dir,{withFileTypes:!0});for(let f of u){let d=a.join(s.dir,f.name);if(f.isFile()){if(r.push(d),r.length>=n)break;continue}f.isDirectory()&&s.depth<e&&!f.name.startsWith(".")&&f.name!=="node_modules"&&o.push({dir:d,depth:s.depth+1})}}catch{}}}return r}function Ot(t){try{let e=a.dirname(t),n=a.basename(t,a.extname(t)).toLowerCase(),r=a.basename(t).toLowerCase(),i=[e,a.dirname(e)].flatMap(u=>vt(u,2,500)),s=null;for(let u of i){let f=a.basename(u).toLowerCase(),d=a.basename(u,a.extname(u)).toLowerCase(),g=null;if(f===r?g=0:d===n?g=1:(f.includes(n)||n.includes(d))&&(g=2),g===null)continue;let _=a.relative(e,u).split(a.sep).length,L=g+_*.01;(!s||L<s.score)&&(s={filePath:u,score:L})}return s?.filePath??null}catch{}return null}async function Lt(t){try{return await c.readFile(t,"utf-8")}catch(e){if(e.code==="ENOENT")return null;throw e}}function Bt(t){return(0,h.existsSync)(t)}async function Pt(t,e){try{let r=(await c.readdir(t,{withFileTypes:!0})).filter(o=>o.isFile()).map(o=>a.join(t,o.name));return e&&(r=r.filter(o=>e.test(a.basename(o)))),r}catch(n){if(n.code==="ENOENT")return[];throw n}}async function It(t){try{return(await c.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>a.join(t,n.name))}catch(e){if(e.code==="ENOENT")return[];throw e}}async function Dt(t){try{await c.unlink(t)}catch(e){if(e.code!=="ENOENT")throw e}}async function Ft(t){try{await c.rm(t,{recursive:!0,force:!0})}catch(e){if(e.code!=="ENOENT")throw e}}function jt(t,e){try{return JSON.parse(t)}catch{return e}}function Wt(t,e="{}"){try{return JSON.stringify(t)}catch{return e}}function qt(t){let e=[];for(let n of t.split(`
7
+ `)){let r=n.trim();if(r)try{e.push(JSON.parse(r))}catch{}}return e}function Xt(t){let e=Jt(t);return{frontmatter:e.frontmatter,content:e.content.trim()}}function zt(t,e){let n=Object.fromEntries(Object.entries(t).filter(([r,o])=>o!==void 0));return["---",U(n),"---","",e].join(`
8
+ `)}function Ht(t){return t.trimStart().startsWith("---")}function Jt(t){let e=t.replace(/^\uFEFF/,"");if(!e.startsWith("---"))return{frontmatter:{},content:t};let n=e.search(/\r?\n/);if(n<0||e.slice(0,n).trim()!=="---")return{frontmatter:{},content:t};let r=e.slice(n+(e[n]==="\r"?2:1)),o=r.match(/(?:^|\r?\n)---[ \t]*(?:\r?\n|$)/);if(!o||o.index===void 0)throw new Error("YAML frontmatter is not closed.");let i=r.slice(0,o.index),s=o[0],u=o.index+s.length;return{frontmatter:J(i),content:r.slice(u)}}function J(t){let e={},n=t.split(/\r?\n/);for(let r=0;r<n.length;r+=1){let o=n[r];if(!o.trim()||o.trimStart().startsWith("#"))continue;if(/^\s/.test(o))throw new Error(`Unexpected indentation at line ${r+1}.`);let i=Ut(o,r+1);if(i.key==="<<")throw new Error("YAML merge keys are not supported.");if(i.value!==""){e[i.key]=Y(i.value,r+1);continue}let s=Yt(n,r+1);e[i.key]=s.value,r=s.nextIndex-1}return e}function Yt(t,e){let n=[],r=e;for(;r<t.length;r+=1){let i=t[r];if(!i.trim()){n.push(i);continue}if(!/^\s/.test(i))break;n.push(i.replace(/^ {2}/,""))}let o=n.filter(i=>i.trim()&&!i.trimStart().startsWith("#"));return o.length===0?{value:{},nextIndex:r}:o.every(i=>i.trimStart().startsWith("- "))?{value:o.map((i,s)=>Y(i.trimStart().slice(2),e+s+1)),nextIndex:r}:{value:J(n.join(`
9
+ `)),nextIndex:r}}function Ut(t,e){let n=t.indexOf(":");if(n<=0)throw new Error(`Invalid YAML line ${e}.`);let r=t.slice(0,n).trim(),o=t.slice(n+1).trim();if(!r)throw new Error(`Invalid YAML key at line ${e}.`);return{key:r,value:o}}function Y(t,e){if(t==="")return"";if(t==="[]")return[];if(t==="{}")return{};if(t==="true")return!0;if(t==="false")return!1;if(t==="null"||t==="~")return null;if(/^-?\d+(?:\.\d+)?$/.test(t))return Number(t);if(t.startsWith('"'))return H(t,e);if(t.startsWith("'")){if(!t.endsWith("'"))throw new Error(`Unclosed quoted scalar at line ${e}.`);return t.slice(1,-1).replace(/''/g,"'")}if(t.startsWith("[")||t.startsWith("{"))return H(t,e);if(t.includes("[")||t.includes("]")||t.includes("{")||t.includes("}"))throw new Error(`Unsupported YAML scalar at line ${e}.`);return t}function H(t,e){try{return JSON.parse(t)}catch{throw new Error(`Invalid YAML scalar at line ${e}.`)}}function U(t,e=""){return Object.entries(t).map(([n,r])=>Gt(n,r,e)).join(`
10
+ `)}function Gt(t,e,n){return Array.isArray(e)?`${n}${t}: ${JSON.stringify(e)}`:e&&typeof e=="object"?`${n}${t}:
11
+ ${U(e,`${n} `)}`:`${n}${t}: ${JSON.stringify(e)}`}var l=S(require("path"),1);function G(t,e){let n=l.resolve(t),r=l.resolve(t,e);return r===n?!0:n===l.parse(n).root?r.startsWith(n):r.startsWith(n+l.sep)}function Kt(t,e){if(l.isAbsolute(e))return l.resolve(e);if(!G(t,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return l.resolve(t,e)}var p=require("node:os"),K=require("node:child_process"),x=require("node:path"),T=(0,p.platform)(),Z=T==="win32",Zt=T==="darwin",Qt=T==="linux",Vt=(0,p.release)(),te=(0,p.homedir)();function ee(){let t=process.env.XENO_AGENT_HOME?.trim();return t?(0,x.resolve)(t):(0,x.resolve)((0,p.homedir)(),".xeno-agent")}function ne(){let t=process.env.XENO_CONFIG_DIR?.trim();return t?(0,x.resolve)(t):(0,x.resolve)((0,p.homedir)(),".xeno-code")}function re(t){return(0,x.resolve)(t,".xeno-code")}function oe(){return Z?"powershell":process.env.SHELL?.split("/").pop()??"bash"}function ie(t){try{return(0,K.execSync)("git rev-parse --is-inside-work-tree",{cwd:t,stdio:"ignore"}),!0}catch{return!1}}function se(t,e){for(let n of e)if(t[n]===void 0||t[n]===null||t[n]==="")return`Missing required parameter: ${n}`;return null}function ae(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="string")throw new Error(`Parameter ${e} must be a string, got ${typeof r}`);return r}function ue(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="number")throw new Error(`Parameter ${e} must be a number, got ${typeof r}`);if(isNaN(r))throw new Error(`Parameter ${e} is NaN`);return r}function ce(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="boolean")throw new Error(`Parameter ${e} must be a boolean, got ${typeof r}`);return r}function Q(t){if(t.length>5e3)return"Pattern too long (max 5000 characters)";let n=[/(\.\*){3,}/,/(\+\+|\*\*)/,/(.*\+.*\+.*\+)/];for(let r of n)if(r.test(t))return"Pattern contains potentially unsafe constructs that could cause excessive backtracking";return null}function fe(t,e,n=5e3){let r=Q(t);if(r)throw new Error(r);try{return new RegExp(t,e)}catch(o){let i=o instanceof Error?o.message:String(o);throw new Error(`Invalid regex pattern: ${i}`)}}function le(t,e,n=1e3){if(e.length>1e5)throw new Error(`Input too large for safe regex test (${e.length} chars, max 100000)`);return t.test(e)}var V=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(V||{}),y=1;function de(t){y=t}function pe(){return y}function m(){return new Date().toISOString()}function me(t,e){y<=0&&(e!==void 0?process.stderr.write(`[${m()}] DEBUG: ${t} ${A(e)}
12
12
  `):process.stderr.write(`[${m()}] DEBUG: ${t}
13
- `))}function ge(t,e){y<=1&&(e!==void 0?process.stderr.write(`[${m()}] INFO: ${t} ${k(e)}
13
+ `))}function ge(t,e){y<=1&&(e!==void 0?process.stderr.write(`[${m()}] INFO: ${t} ${A(e)}
14
14
  `):process.stderr.write(`[${m()}] INFO: ${t}
15
- `))}function he(t,e){y<=2&&(e!==void 0?process.stderr.write(`[${m()}] WARN: ${t} ${k(e)}
15
+ `))}function he(t,e){y<=2&&(e!==void 0?process.stderr.write(`[${m()}] WARN: ${t} ${A(e)}
16
16
  `):process.stderr.write(`[${m()}] WARN: ${t}
17
- `))}function xe(t,e){y<=3&&(e!==void 0?process.stderr.write(`[${m()}] ERROR: ${t} ${k(e)}
17
+ `))}function xe(t,e){y<=3&&(e!==void 0?process.stderr.write(`[${m()}] ERROR: ${t} ${A(e)}
18
18
  `):process.stderr.write(`[${m()}] ERROR: ${t}
19
- `))}function k(t){if(t==null)return"";if(t instanceof Error)return t.message;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}var b=class extends Error{statusCode;body;retryAfterMs;requestId;cfRay;constructor(e,n={}){super(e),this.name="ApiTransientError",this.statusCode=n.statusCode,this.retryAfterMs=n.retryAfterMs,this.requestId=n.requestId,this.cfRay=n.cfRay}},A={maxRetries:3,baseDelayMs:1e3,maxDelayMs:3e4,jitterMs:300};function M(t,e){let n=process.env[t],r=n?Number.parseInt(n,10):Number.NaN;return!Number.isFinite(r)||r<0?e:r}function ye(t={}){let e=Math.max(0,t.maxRetries??M("XENO_API_MAX_RETRIES",A.maxRetries)),n=Math.max(50,t.baseDelayMs??M("XENO_API_BASE_DELAY_MS",A.baseDelayMs)),r=Math.max(n,t.maxDelayMs??M("XENO_API_MAX_DELAY_MS",A.maxDelayMs)),o=Math.max(0,t.jitterMs??M("XENO_API_RETRY_JITTER_MS",A.jitterMs));return{maxRetries:e,baseDelayMs:n,maxDelayMs:r,jitterMs:o}}function we(t,e,n){if(e.retryAfterMs&&e.retryAfterMs>0)return Math.min(e.retryAfterMs,n.maxDelayMs);let r=Math.min(n.baseDelayMs*Math.pow(2,t),n.maxDelayMs),o=Math.floor(Math.random()*n.jitterMs);return Math.min(r+o,n.maxDelayMs)}function tt(t){let e=t.toLowerCase();return e.includes("rate limit")||e.includes("too many requests")||e.includes("429")}function be(t){let e=t.toLowerCase();return e.includes("network")||e.includes("timeout")||e.includes("fetch failed")||e.includes("socket hang up")||e.includes("econnreset")||e.includes("eai_again")||e.includes("enotfound")||e.includes("econnrefused")||e.includes("tls")||e.includes("temporarily unavailable")}function N(t){if(t instanceof b)return{statusCode:t.statusCode,retryAfterMs:t.retryAfterMs,requestId:t.requestId,cfRay:t.cfRay};if(!(t instanceof Error))return{};let e=t;if(e.statusCode!==void 0||e.retryAfterMs!==void 0||e.requestId!==void 0||e.cfRay!==void 0)return{statusCode:e.statusCode,retryAfterMs:e.retryAfterMs,requestId:e.requestId,cfRay:e.cfRay};let n=t.message.toLowerCase();return tt(n)?{statusCode:429}:{}}var $="408|425|429|500|502|503|504";function et(t){let e=new RegExp(`(?:\\bstatus(?:[ _-]?code)?\\b\\s*[=:]?\\s*|\\bhttp\\b\\s*|\\bapi\\b\\s*|\\bcode\\b\\s*[=:]\\s*|\\berror\\b\\s*)(?:${$})\\b`,"i"),n=new RegExp(`\\b(?:${$})\\s+(?:internal|bad\\s+gateway|service\\s+unavailable|gateway\\s+time|request\\s+time|too\\s+early|too\\s+many)`,"i"),r=new RegExp(`^\\s*(?:${$})\\b`);return e.test(t)||n.test(t)||r.test(t)}function nt(t){if(t&&typeof t=="object"&&"retryable"in t)return t.retryable===!0;if(t instanceof b){let{statusCode:e}=N(t);if(e)return e===429||e>=500||e===408||e===409||e===425}if(t instanceof Error){let e=t.name?.toLowerCase()??"";return e==="aborterror"||e==="agentinterruptederror"||t.message.toLowerCase().includes("aborted")||t.message.toLowerCase().includes("interrupted")?!1:et(t.message)?!0:tt(t.message)||be(t.message.toLowerCase())}return!1}function Ee(t){if(t.onAbort)return t.onAbort();let e=new Error("The operation was aborted");return e.name="AbortError",e}async function Re(t,e={}){let n=ye(e),r;for(let o=0;o<=n.maxRetries;o++)try{if(e.signal?.aborted)throw Ee(e);return e.onBeforeAttempt?.(o),await t()}catch(i){if(r=i,!(e.shouldRetry?e.shouldRetry(i,o):nt(i))||o===n.maxRetries)throw i;let u=N(i),l=we(o,u,n),d=e.getDelayMs?.(i,o,l),g=typeof d=="number"&&d>=0?d:l;await new Promise(_=>setTimeout(_,g))}throw r}var rt=(t,e)=>{if(!t)return 0;let n=e.toLowerCase(),r=n.includes("claude")?3.5:n.includes("gemini")?3.8:(/(^|[/_-])(gpt|o\d)/.test(n),4),o=[...t].filter(s=>s.codePointAt(0)>127).length,i=Math.ceil(t.length/r);return Math.max(1,i+Math.ceil(o*.35))},ot=Object.freeze({id:"xeno-conservative-v1",source:"estimated",countText:rt,countImage:({detail:t})=>t==="high"?2e3:t==="low"?512:1200,safetyMarginRatio:t=>{let e=t.toLowerCase();return e.includes("claude")?.12:e.includes("gemini")?.14:/(^|[/_-])(gpt|o\d)/.test(e)?.1:.18}});function Te(t,e,n=ot){return{tokens:Math.max(0,Math.ceil(n.countText(t,e))),source:n.source,adapterId:n.id}}function it(t){return t?Math.ceil(t.length/4):0}function ke(t,e){if(!t||e<=0)return"";let n=e*4;if(t.length<=n)return t;let r=t.slice(0,n),o=r.lastIndexOf(" ");return o>n*.8&&(r=r.slice(0,o)),r+"..."}function Ae(t,e){return it(t)<=e}function Me(t,e){return Math.max(0,e-t)}var Se={"claude-opus-4-6-thinking":{input:15,output:75},"claude-opus-4-6":{input:15,output:75},"claude-opus-4-5-thinking":{input:15,output:75},"claude-sonnet-4-6":{input:3,output:15},"claude-sonnet-4-5-thinking":{input:3,output:15},"claude-sonnet-4-5":{input:3,output:15},"gemini-2.5-flash":{input:.15,output:.6},"gemini-2.5-flash-lite":{input:.075,output:.3},"gemini-3-flash":{input:.15,output:.6},"gemini-3-pro-high":{input:1.25,output:5},"gpt-5":{input:5,output:15},"gpt-5-codex":{input:5,output:15},"gpt-5.1":{input:5,output:15},"gpt-5.1-codex":{input:5,output:15},"gpt-5.2":{input:5,output:15},"gpt-5.2-codex":{input:5,output:15},"kimi-k2":{input:.6,output:2.4},"kimi-k2-thinking":{input:.6,output:2.4},"kimi-k2.5":{input:.6,output:2.4}};function _e(t,e,n){let r=Se[t];return r?e/1e6*r.input+n/1e6*r.output:0}function Ce(t){return t<=0?"$0.00":t<.001?"<$0.001":t<.01?`$${t.toFixed(4)}`:t<1?`$${t.toFixed(3)}`:`$${t.toFixed(2)}`}var st=require("node:child_process");function $e(t){let e=process.platform==="win32"?[{command:"clip.exe",args:[]}]:process.platform==="darwin"?[{command:"pbcopy",args:[]}]:[{command:"wl-copy",args:[]},{command:"xclip",args:["-selection","clipboard"]},{command:"xsel",args:["--clipboard","--input"]}],n=null;for(let r of e)try{let o=(0,st.spawnSync)(r.command,r.args,{input:t,encoding:"utf8"});if(o.error){n=o.error.message;continue}if(o.status===0)return;n=o.stderr||o.stdout||`exit ${o.status}`}catch(o){n=o instanceof Error?o.message:String(o)}throw new Error(`Clipboard copy failed${n?`: ${n}`:""}`)}function ut(t){return t.replace(/\\/g,"/").toLowerCase()}var Ne=["golden","solution","answer","expected"],ve=["expected","golden","reference","answer","answers"],Oe=new Set([";","&&","||","|"]);function ct(t){return ut(t).replace(/^\.\/+/,"").split("/").map(e=>e.trim()).filter(e=>e.length>0)}function Le(t){return Ne.some(e=>t.includes(e))}function at(t){return ve.some(e=>t.includes(e))}function lt(t){return t.split("::",1)[0]?.split("?",1)[0]?.split("#",1)[0]??t}function S(t){let e=t.trim().replace(/^[({]+/,"").replace(/[),;]+$/,"");return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),e}function Be(t){return t.match(/"[^"]*"|'[^']*'|&&|\|\||[;|]|[^\s;|&]+/g)?.map(S).filter(e=>e.length>0)??[]}function ft(t){let e=ct(t),n=lt(e.at(-1)??"");return at(n)||e.some(r=>at(r))}function dt(t){let e=ut(S(t));return!e||e==="/dev/null"||e.startsWith("/tmp/")||e.startsWith("tmp/")||e.startsWith("/var/tmp/")||e.startsWith("var/tmp/")?!1:e.startsWith("/app/")||e.startsWith("./")?!0:!e.startsWith("/")}function Pe(t){return/[\\/]/.test(t)||/\.[A-Za-z0-9]{1,8}$/.test(t)}function De(t){let e=Be(t);for(let n=0;n<e.length;n+=1){let r=e[n]?.toLowerCase();if(r!=="cp"&&r!=="mv"&&r!=="rsync"&&r!=="install")continue;let o=[];for(let s=n+1;s<e.length;s+=1){let u=e[s];if(!u||Oe.has(u))break;u!=="--"&&(u.startsWith("-")||o.push(u))}if(o.length<2)continue;let i=o.at(-1);if(dt(i)){for(let s of o.slice(0,-1))if(Pe(s)&&ft(s))return{sourcePath:s,destinationPath:i,operation:r}}}return null}function Ie(t){let e=[/\bcat\s+(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))\s*>\s*(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i,/\bdd\b[\s\S]*?\bif=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))[\s\S]*?\bof=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i];for(let n of e){let r=t.match(n);if(!r)continue;let o=S(r[1]??r[2]??r[3]??""),i=S(r[4]??r[5]??r[6]??"");if(!(!o||!i)&&ft(o)&&dt(i))return{sourcePath:o,destinationPath:i,operation:n.source.startsWith("\\bdd")?"dd":"redirect"}}return null}function v(){return process.env.XENO_BENCHMARK_MODE?.trim().toLowerCase()==="terminal-bench"}function O(t){let e=ct(t);if(e.includes("solution")||e.includes("xeno-audit")||e.includes(".xeno")&&e.includes("audit"))return!0;let n=lt(e.at(-1)??"");return e.includes("tests")&&Le(n)}function Fe(t){return v()?t.filter(e=>!O(e)):t}function We(t){return`Benchmark safety: access to verifier answer or benchmark trace artifacts is blocked (${t}). Use task inputs and verifier logic, not golden, solution, or agent audit files.`}function je(t){return t.split(/[\s"'`;|&]+/).map(e=>e.trim()).filter(e=>e.length>0&&/[\\/]/.test(e)).some(e=>O(e))}function qe(t){if(!v())return null;let e=De(t)??Ie(t);return e?["[xeno guidance]",`Benchmark safety blocked ${e.operation} from reference-like source ${e.sourcePath} to protected destination ${e.destinationPath}.`,"Do not copy expected, golden, reference, or answer files over task inputs or submission artifacts to make validation pass.","If a previous check polluted an input, restore/regenerate the original source input, then rerun the actual script or program under test."].join(`
20
- `):null}function He(t){return/^data:([^;,]+)[;,]/i.exec(t.trim())?.[1]}function pt(t){let e=[];for(let n of t){if(n.type==="text"){e.push(n.text);continue}if(n.type==="image_url"){e.push(`[image ${He(n.image_url.url)??"unknown"}]`);continue}let r=n.text??n.data;if(r&&r.trim().length>0){e.push(r);continue}let o=n.uri??n.mimeType??"resource";e.push(`[resource ${o}]`)}return e.join(`
19
+ `))}function A(t){if(t==null)return"";if(t instanceof Error)return t.message;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}var ye=/^[A-Za-z0-9:._*-]{1,64}$/,we=/^[A-Za-z0-9_-][A-Za-z0-9 _-]{0,30}[A-Za-z0-9_-]$/,be=/^[0-9][0-9A-Za-z.+-]{0,40}$/;function Ee(t){if(!t||typeof t!="object")throw new TypeError("requestContext must be an object");let e=Object.keys(t).filter(r=>r!=="surface"&&r!=="client");if(e.length>0)throw new TypeError(`requestContext does not accept: ${e.join(", ")}`);if(typeof t.surface!="string"||!ye.test(t.surface))throw new TypeError("requestContext.surface must match /^[A-Za-z0-9:._*-]{1,64}$/");if(t.client===void 0)return Object.freeze({surface:t.surface});let n=t.client;if(!n||typeof n!="object"||Object.keys(n).some(r=>r!=="name"&&r!=="version"))throw new TypeError("requestContext.client must be { name, version }");if(typeof n.name!="string"||!we.test(n.name))throw new TypeError("requestContext.client.name must be 2-32 characters of letters, digits, space, _ or -");if(typeof n.version!="string"||!be.test(n.version))throw new TypeError("requestContext.client.version must start with a digit, e.g. 1.2.3");return Object.freeze({surface:t.surface,client:Object.freeze({name:n.name,version:n.version})})}function Re(t){return t?{"X-Xeno-Surface":t.surface,...t.client?{"X-Xeno-Client":`${t.client.name}/${t.client.version}`}:{}}:{}}var b=class extends Error{statusCode;body;retryAfterMs;requestId;cfRay;constructor(e,n={}){super(e),this.name="ApiTransientError",this.statusCode=n.statusCode,this.retryAfterMs=n.retryAfterMs,this.requestId=n.requestId,this.cfRay=n.cfRay}},C={maxRetries:3,baseDelayMs:1e3,maxDelayMs:3e4,jitterMs:300};function k(t,e){let n=process.env[t],r=n?Number.parseInt(n,10):Number.NaN;return!Number.isFinite(r)||r<0?e:r}function Te(t={}){let e=Math.max(0,t.maxRetries??k("XENO_API_MAX_RETRIES",C.maxRetries)),n=Math.max(50,t.baseDelayMs??k("XENO_API_BASE_DELAY_MS",C.baseDelayMs)),r=Math.max(n,t.maxDelayMs??k("XENO_API_MAX_DELAY_MS",C.maxDelayMs)),o=Math.max(0,t.jitterMs??k("XENO_API_RETRY_JITTER_MS",C.jitterMs));return{maxRetries:e,baseDelayMs:n,maxDelayMs:r,jitterMs:o}}function Ae(t,e,n){if(e.retryAfterMs&&e.retryAfterMs>0)return Math.min(e.retryAfterMs,n.maxDelayMs);let r=Math.min(n.baseDelayMs*Math.pow(2,t),n.maxDelayMs),o=Math.floor(Math.random()*n.jitterMs);return Math.min(r+o,n.maxDelayMs)}function tt(t){let e=t.toLowerCase();return e.includes("rate limit")||e.includes("too many requests")||e.includes("429")}function Ce(t){let e=t.toLowerCase();return e.includes("network")||e.includes("timeout")||e.includes("fetch failed")||e.includes("socket hang up")||e.includes("econnreset")||e.includes("eai_again")||e.includes("enotfound")||e.includes("econnrefused")||e.includes("tls")||e.includes("temporarily unavailable")}function N(t){if(t instanceof b)return{statusCode:t.statusCode,retryAfterMs:t.retryAfterMs,requestId:t.requestId,cfRay:t.cfRay};if(!(t instanceof Error))return{};let e=t;if(e.statusCode!==void 0||e.retryAfterMs!==void 0||e.requestId!==void 0||e.cfRay!==void 0)return{statusCode:e.statusCode,retryAfterMs:e.retryAfterMs,requestId:e.requestId,cfRay:e.cfRay};let n=t.message.toLowerCase();return tt(n)?{statusCode:429}:{}}var $="408|425|429|500|502|503|504";function et(t){let e=new RegExp(`(?:\\bstatus(?:[ _-]?code)?\\b\\s*[=:]?\\s*|\\bhttp\\b\\s*|\\bapi\\b\\s*|\\bcode\\b\\s*[=:]\\s*|\\berror\\b\\s*)(?:${$})\\b`,"i"),n=new RegExp(`\\b(?:${$})\\s+(?:internal|bad\\s+gateway|service\\s+unavailable|gateway\\s+time|request\\s+time|too\\s+early|too\\s+many)`,"i"),r=new RegExp(`^\\s*(?:${$})\\b`);return e.test(t)||n.test(t)||r.test(t)}function nt(t){if(t&&typeof t=="object"&&"retryable"in t)return t.retryable===!0;if(t instanceof b){let{statusCode:e}=N(t);if(e)return e===429||e>=500||e===408||e===409||e===425}if(t instanceof Error){let e=t.name?.toLowerCase()??"";return e==="aborterror"||e==="agentinterruptederror"||t.message.toLowerCase().includes("aborted")||t.message.toLowerCase().includes("interrupted")?!1:et(t.message)?!0:tt(t.message)||Ce(t.message.toLowerCase())}return!1}function ke(t){if(t.onAbort)return t.onAbort();let e=new Error("The operation was aborted");return e.name="AbortError",e}async function Me(t,e={}){let n=Te(e),r;for(let o=0;o<=n.maxRetries;o++)try{if(e.signal?.aborted)throw ke(e);return e.onBeforeAttempt?.(o),await t()}catch(i){if(r=i,!(e.shouldRetry?e.shouldRetry(i,o):nt(i))||o===n.maxRetries)throw i;let u=N(i),f=Ae(o,u,n),d=e.getDelayMs?.(i,o,f),g=typeof d=="number"&&d>=0?d:f;await new Promise(_=>setTimeout(_,g))}throw r}var rt=(t,e)=>{if(!t)return 0;let n=e.toLowerCase(),r=n.includes("claude")?3.5:n.includes("gemini")?3.8:(/(^|[/_-])(gpt|o\d)/.test(n),4),o=[...t].filter(s=>s.codePointAt(0)>127).length,i=Math.ceil(t.length/r);return Math.max(1,i+Math.ceil(o*.35))},ot=Object.freeze({id:"xeno-conservative-v1",source:"estimated",countText:rt,countImage:({detail:t})=>t==="high"?2e3:t==="low"?512:1200,safetyMarginRatio:t=>{let e=t.toLowerCase();return e.includes("claude")?.12:e.includes("gemini")?.14:/(^|[/_-])(gpt|o\d)/.test(e)?.1:.18}});function _e(t,e,n=ot){return{tokens:Math.max(0,Math.ceil(n.countText(t,e))),source:n.source,adapterId:n.id}}function it(t){return t?Math.ceil(t.length/4):0}function Se(t,e){if(!t||e<=0)return"";let n=e*4;if(t.length<=n)return t;let r=t.slice(0,n),o=r.lastIndexOf(" ");return o>n*.8&&(r=r.slice(0,o)),r+"..."}function $e(t,e){return it(t)<=e}function Ne(t,e){return Math.max(0,e-t)}var ve={"claude-opus-4-6-thinking":{input:15,output:75},"claude-opus-4-6":{input:15,output:75},"claude-opus-4-5-thinking":{input:15,output:75},"claude-sonnet-4-6":{input:3,output:15},"claude-sonnet-4-5-thinking":{input:3,output:15},"claude-sonnet-4-5":{input:3,output:15},"gemini-2.5-flash":{input:.15,output:.6},"gemini-2.5-flash-lite":{input:.075,output:.3},"gemini-3-flash":{input:.15,output:.6},"gemini-3-pro-high":{input:1.25,output:5},"gpt-5":{input:5,output:15},"gpt-5-codex":{input:5,output:15},"gpt-5.1":{input:5,output:15},"gpt-5.1-codex":{input:5,output:15},"gpt-5.2":{input:5,output:15},"gpt-5.2-codex":{input:5,output:15},"kimi-k2":{input:.6,output:2.4},"kimi-k2-thinking":{input:.6,output:2.4},"kimi-k2.5":{input:.6,output:2.4}};function Oe(t,e,n){let r=ve[t];return r?e/1e6*r.input+n/1e6*r.output:0}function Le(t){return t<=0?"$0.00":t<.001?"<$0.001":t<.01?`$${t.toFixed(4)}`:t<1?`$${t.toFixed(3)}`:`$${t.toFixed(2)}`}var st=require("node:child_process");function Be(t){let e=process.platform==="win32"?[{command:"clip.exe",args:[]}]:process.platform==="darwin"?[{command:"pbcopy",args:[]}]:[{command:"wl-copy",args:[]},{command:"xclip",args:["-selection","clipboard"]},{command:"xsel",args:["--clipboard","--input"]}],n=null;for(let r of e)try{let o=(0,st.spawnSync)(r.command,r.args,{input:t,encoding:"utf8"});if(o.error){n=o.error.message;continue}if(o.status===0)return;n=o.stderr||o.stdout||`exit ${o.status}`}catch(o){n=o instanceof Error?o.message:String(o)}throw new Error(`Clipboard copy failed${n?`: ${n}`:""}`)}function ut(t){return t.replace(/\\/g,"/").toLowerCase()}var Pe=["golden","solution","answer","expected"],Ie=["expected","golden","reference","answer","answers"],De=new Set([";","&&","||","|"]);function ct(t){return ut(t).replace(/^\.\/+/,"").split("/").map(e=>e.trim()).filter(e=>e.length>0)}function Fe(t){return Pe.some(e=>t.includes(e))}function at(t){return Ie.some(e=>t.includes(e))}function ft(t){return t.split("::",1)[0]?.split("?",1)[0]?.split("#",1)[0]??t}function M(t){let e=t.trim().replace(/^[({]+/,"").replace(/[),;]+$/,"");return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),e}function je(t){return t.match(/"[^"]*"|'[^']*'|&&|\|\||[;|]|[^\s;|&]+/g)?.map(M).filter(e=>e.length>0)??[]}function lt(t){let e=ct(t),n=ft(e.at(-1)??"");return at(n)||e.some(r=>at(r))}function dt(t){let e=ut(M(t));return!e||e==="/dev/null"||e.startsWith("/tmp/")||e.startsWith("tmp/")||e.startsWith("/var/tmp/")||e.startsWith("var/tmp/")?!1:e.startsWith("/app/")||e.startsWith("./")?!0:!e.startsWith("/")}function We(t){return/[\\/]/.test(t)||/\.[A-Za-z0-9]{1,8}$/.test(t)}function qe(t){let e=je(t);for(let n=0;n<e.length;n+=1){let r=e[n]?.toLowerCase();if(r!=="cp"&&r!=="mv"&&r!=="rsync"&&r!=="install")continue;let o=[];for(let s=n+1;s<e.length;s+=1){let u=e[s];if(!u||De.has(u))break;u!=="--"&&(u.startsWith("-")||o.push(u))}if(o.length<2)continue;let i=o.at(-1);if(dt(i)){for(let s of o.slice(0,-1))if(We(s)&&lt(s))return{sourcePath:s,destinationPath:i,operation:r}}}return null}function Xe(t){let e=[/\bcat\s+(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))\s*>\s*(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i,/\bdd\b[\s\S]*?\bif=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))[\s\S]*?\bof=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i];for(let n of e){let r=t.match(n);if(!r)continue;let o=M(r[1]??r[2]??r[3]??""),i=M(r[4]??r[5]??r[6]??"");if(!(!o||!i)&&lt(o)&&dt(i))return{sourcePath:o,destinationPath:i,operation:n.source.startsWith("\\bdd")?"dd":"redirect"}}return null}function v(){return process.env.XENO_BENCHMARK_MODE?.trim().toLowerCase()==="terminal-bench"}function O(t){let e=ct(t);if(e.includes("solution")||e.includes("xeno-audit")||e.includes(".xeno")&&e.includes("audit"))return!0;let n=ft(e.at(-1)??"");return e.includes("tests")&&Fe(n)}function ze(t){return v()?t.filter(e=>!O(e)):t}function He(t){return`Benchmark safety: access to verifier answer or benchmark trace artifacts is blocked (${t}). Use task inputs and verifier logic, not golden, solution, or agent audit files.`}function Je(t){return t.split(/[\s"'`;|&]+/).map(e=>e.trim()).filter(e=>e.length>0&&/[\\/]/.test(e)).some(e=>O(e))}function Ye(t){if(!v())return null;let e=qe(t)??Xe(t);return e?["[xeno guidance]",`Benchmark safety blocked ${e.operation} from reference-like source ${e.sourcePath} to protected destination ${e.destinationPath}.`,"Do not copy expected, golden, reference, or answer files over task inputs or submission artifacts to make validation pass.","If a previous check polluted an input, restore/regenerate the original source input, then rerun the actual script or program under test."].join(`
20
+ `):null}function Ue(t){return/^data:([^;,]+)[;,]/i.exec(t.trim())?.[1]}function pt(t){let e=[];for(let n of t){if(n.type==="text"){e.push(n.text);continue}if(n.type==="image_url"){e.push(`[image ${Ue(n.image_url.url)??"unknown"}]`);continue}let r=n.text??n.data;if(r&&r.trim().length>0){e.push(r);continue}let o=n.uri??n.mimeType??"resource";e.push(`[resource ${o}]`)}return e.join(`
21
21
 
22
- `).trim()}function mt(t){let e=t.trim();return e.length>0?[{type:"text",text:e}]:[]}function Je(t){return typeof t=="string"?t:pt(t)}function gt(t){if(t.success)return t.output;let e=[`Error: ${t.error??"Tool execution failed"}`];return t.output.trim().length>0&&e.push(t.output),e.join(`
23
- `)}function Xe(t){let e=t.assistant_content&&t.assistant_content.length>0?t.assistant_content:typeof t.content=="string"?mt(t.content):t.content,n=t.assistant_only_content??[],r=Ye(t),o=[...e,...n,...r?[r]:[]];return o.length>0?o:t.content}function Ye(t){let e=t.operation;if(!e)return null;let n=t.evidence??e.evidence??[],r=n.filter(i=>i.status==="verified").length,o=n.filter(i=>i.status==="failed").length;return{type:"text",text:["[xeno_operation]",`operation_id: ${e.operationId}`,`state: ${e.state}`,`terminal: ${e.terminal?"yes":"no"}`,`completion_policy: ${e.completionPolicy}`,e.taskId?`task_id: ${e.taskId}`:null,e.completionReason?`completion_reason: ${e.completionReason}`:null,`evidence: ${r} verified, ${o} failed`,t.retryable===void 0?null:`retryable: ${t.retryable?"yes":"no"}`,"[/xeno_operation]"].filter(i=>!!i).join(`
24
- `)}}function ze(t){return Array.isArray(t)&&t.some(e=>e.type!=="text")}function Ge(t){return typeof t=="string"?mt(t):t}function Ue(t,e){return{type:"tool_result",tool_use_id:t,content:gt(e),...e.assistantContent&&e.assistantContent.length>0?{assistant_content:e.assistantContent}:{},...e.assistantOnlyContent&&e.assistantOnlyContent.length>0?{assistant_only_content:e.assistantOnlyContent}:{},is_error:!e.success,...e.operation?{operation:e.operation}:{},...e.evidence&&e.evidence.length>0?{evidence:e.evidence}:{},...e.webContext?{web_context:e.webContext}:{},...e.retryable!==void 0?{retryable:e.retryable}:{}}}function Ke(t,e={}){for(let n of t){let r=n.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&e.allowTab===!0)&&!((r===10||r===13)&&e.allowLineBreaks===!0))return!0}return!1}0&&(module.exports={ApiTransientError,HOME_DIR,IS_LINUX,IS_MAC,IS_WINDOWS,LogLevel,OS_VERSION,PLATFORM,accountTextTokens,appendDurableLine,appendLine,benchmarkLeakError,buildToolResultBlock,buildToolResultText,calculateCost,commandMentionsBenchmarkLeak,conservativeTokenAccountingAdapter,copyTextToClipboard,createSafeRegex,debug,decodeTextBuffer,deleteDir,deleteFile,detectLineEnding,detectPreferredLineEnding,detectTextEncoding,encodeTextBuffer,ensureDir,error,estimateTokens,estimateTokensForModel,existsSync,filterBenchmarkLeakPaths,findSimilarFile,fitsInBudget,formatCost,getAgentHome,getBenchmarkReferenceOverwriteHint,getBoolean,getConfigDir,getLogLevel,getNumber,getProjectConfigDir,getRetryErrorContext,getShellName,getString,getToolResultTransportContent,hasDir,hasDisallowedAsciiControlCharacter,hasFile,hasFrontmatter,hasNonTextToolResultContent,hasTransientStatusMention,info,isBenchmarkLeakPath,isBenchmarkMode,isGitRepo,isPathSafe,isRetryableError,listDirs,listFiles,normalizeLineEndings,parseDocument,parseJsonLines,readFileSafe,readIfExists,readTextFile,remainingBudget,renameReplacingWithRetry,safeJsonParse,safeJsonStringify,safeRegexTest,safeResolvePath,setLogLevel,stringifyDocument,toTransportAssistantBlocks,toolAssistantContentToText,toolResultContentToText,truncateToTokens,validateRegexPattern,validateRequired,warn,withRetry,writeAtomic,writeTextFile});
22
+ `).trim()}function mt(t){let e=t.trim();return e.length>0?[{type:"text",text:e}]:[]}function Ge(t){return typeof t=="string"?t:pt(t)}function gt(t){if(t.success)return t.output;let e=[`Error: ${t.error??"Tool execution failed"}`];return t.output.trim().length>0&&e.push(t.output),e.join(`
23
+ `)}function Ke(t){let e=t.assistant_content&&t.assistant_content.length>0?t.assistant_content:typeof t.content=="string"?mt(t.content):t.content,n=t.assistant_only_content??[],r=Ze(t),o=[...e,...n,...r?[r]:[]];return o.length>0?o:t.content}function Ze(t){let e=t.operation;if(!e)return null;let n=t.evidence??e.evidence??[],r=n.filter(i=>i.status==="verified").length,o=n.filter(i=>i.status==="failed").length;return{type:"text",text:["[xeno_operation]",`operation_id: ${e.operationId}`,`state: ${e.state}`,`terminal: ${e.terminal?"yes":"no"}`,`completion_policy: ${e.completionPolicy}`,e.taskId?`task_id: ${e.taskId}`:null,e.completionReason?`completion_reason: ${e.completionReason}`:null,`evidence: ${r} verified, ${o} failed`,t.retryable===void 0?null:`retryable: ${t.retryable?"yes":"no"}`,"[/xeno_operation]"].filter(i=>!!i).join(`
24
+ `)}}function Qe(t){return Array.isArray(t)&&t.some(e=>e.type!=="text")}function Ve(t){return typeof t=="string"?mt(t):t}function tn(t,e){return{type:"tool_result",tool_use_id:t,content:gt(e),...e.assistantContent&&e.assistantContent.length>0?{assistant_content:e.assistantContent}:{},...e.assistantOnlyContent&&e.assistantOnlyContent.length>0?{assistant_only_content:e.assistantOnlyContent}:{},is_error:!e.success,...e.operation?{operation:e.operation}:{},...e.evidence&&e.evidence.length>0?{evidence:e.evidence}:{},...e.webContext?{web_context:e.webContext}:{},...e.retryable!==void 0?{retryable:e.retryable}:{}}}function en(t,e={}){for(let n of t){let r=n.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&e.allowTab===!0)&&!((r===10||r===13)&&e.allowLineBreaks===!0))return!0}return!1}0&&(module.exports={ApiTransientError,HOME_DIR,IS_LINUX,IS_MAC,IS_WINDOWS,LogLevel,OS_VERSION,PLATFORM,accountTextTokens,appendDurableLine,appendLine,benchmarkLeakError,buildToolResultBlock,buildToolResultText,calculateCost,commandMentionsBenchmarkLeak,conservativeTokenAccountingAdapter,copyTextToClipboard,createSafeRegex,debug,decodeTextBuffer,deleteDir,deleteFile,detectLineEnding,detectPreferredLineEnding,detectTextEncoding,encodeTextBuffer,ensureDir,error,estimateTokens,estimateTokensForModel,existsSync,filterBenchmarkLeakPaths,findSimilarFile,fitsInBudget,formatCost,getAgentHome,getBenchmarkReferenceOverwriteHint,getBoolean,getConfigDir,getLogLevel,getNumber,getProjectConfigDir,getRetryErrorContext,getShellName,getString,getToolResultTransportContent,hasDir,hasDisallowedAsciiControlCharacter,hasFile,hasFrontmatter,hasNonTextToolResultContent,hasTransientStatusMention,info,isBenchmarkLeakPath,isBenchmarkMode,isGitRepo,isPathSafe,isRetryableError,listDirs,listFiles,normalizeLineEndings,normalizeXenoRequestContext,parseDocument,parseJsonLines,readFileSafe,readIfExists,readTextFile,remainingBudget,renameReplacingWithRetry,safeJsonParse,safeJsonStringify,safeRegexTest,safeResolvePath,setLogLevel,stringifyDocument,toTransportAssistantBlocks,toolAssistantContentToText,toolResultContentToText,truncateToTokens,validateRegexPattern,validateRequired,warn,withRetry,writeAtomic,writeTextFile,xenoRequestContextHeaders});
@@ -76,6 +76,15 @@ declare function debug(msg: string, data?: unknown): void;
76
76
  declare function info(msg: string, data?: unknown): void;
77
77
  declare function warn(msg: string, data?: unknown): void;
78
78
  declare function error(msg: string, data?: unknown): void;
79
+ interface XenoRequestContext {
80
+ readonly surface: string;
81
+ readonly client?: {
82
+ readonly name: string;
83
+ readonly version: string;
84
+ };
85
+ }
86
+ declare function normalizeXenoRequestContext(context: XenoRequestContext): Readonly<XenoRequestContext>;
87
+ declare function xenoRequestContextHeaders(context: Readonly<XenoRequestContext> | undefined): Record<string, string>;
79
88
  interface RetryOptions {
80
89
  maxRetries?: number;
81
90
  baseDelayMs?: number;
@@ -287,4 +296,4 @@ interface XenoAsciiControlCharacterPolicy {
287
296
  allowLineBreaks?: boolean;
288
297
  }
289
298
  declare function hasDisallowedAsciiControlCharacter(value: string, policy?: XenoAsciiControlCharacterPolicy): boolean;
290
- export { ApiTransientError, HOME_DIR, IS_LINUX, IS_MAC, IS_WINDOWS, type LineEnding, LogLevel, OS_VERSION, PLATFORM, type ParsedDocument, type RetryErrorContext, type RetryOptions, type TextEncoding, type TextFileContents, type TokenAccountingAdapter, type TokenAccountingResult, type TokenAccountingSource, type TokenEstimator, type XenoAsciiControlCharacterPolicy, accountTextTokens, appendDurableLine, appendLine, benchmarkLeakError, buildToolResultBlock, buildToolResultText, calculateCost, commandMentionsBenchmarkLeak, conservativeTokenAccountingAdapter, copyTextToClipboard, createSafeRegex, debug, decodeTextBuffer, deleteDir, deleteFile, detectLineEnding, detectPreferredLineEnding, detectTextEncoding, encodeTextBuffer, ensureDir, error, estimateTokens, estimateTokensForModel, existsSync, filterBenchmarkLeakPaths, findSimilarFile, fitsInBudget, formatCost, getAgentHome, getBenchmarkReferenceOverwriteHint, getBoolean, getConfigDir, getLogLevel, getNumber, getProjectConfigDir, getRetryErrorContext, getShellName, getString, getToolResultTransportContent, hasDir, hasDisallowedAsciiControlCharacter, hasFile, hasFrontmatter, hasNonTextToolResultContent, hasTransientStatusMention, info, isBenchmarkLeakPath, isBenchmarkMode, isGitRepo, isPathSafe, isRetryableError, listDirs, listFiles, normalizeLineEndings, parseDocument, parseJsonLines, readFileSafe, readIfExists, readTextFile, remainingBudget, renameReplacingWithRetry, safeJsonParse, safeJsonStringify, safeRegexTest, safeResolvePath, setLogLevel, stringifyDocument, toTransportAssistantBlocks, toolAssistantContentToText, toolResultContentToText, truncateToTokens, validateRegexPattern, validateRequired, warn, withRetry, writeAtomic, writeTextFile };
299
+ export { ApiTransientError, HOME_DIR, IS_LINUX, IS_MAC, IS_WINDOWS, type LineEnding, LogLevel, OS_VERSION, PLATFORM, type ParsedDocument, type RetryErrorContext, type RetryOptions, type TextEncoding, type TextFileContents, type TokenAccountingAdapter, type TokenAccountingResult, type TokenAccountingSource, type TokenEstimator, type XenoAsciiControlCharacterPolicy, type XenoRequestContext, accountTextTokens, appendDurableLine, appendLine, benchmarkLeakError, buildToolResultBlock, buildToolResultText, calculateCost, commandMentionsBenchmarkLeak, conservativeTokenAccountingAdapter, copyTextToClipboard, createSafeRegex, debug, decodeTextBuffer, deleteDir, deleteFile, detectLineEnding, detectPreferredLineEnding, detectTextEncoding, encodeTextBuffer, ensureDir, error, estimateTokens, estimateTokensForModel, existsSync, filterBenchmarkLeakPaths, findSimilarFile, fitsInBudget, formatCost, getAgentHome, getBenchmarkReferenceOverwriteHint, getBoolean, getConfigDir, getLogLevel, getNumber, getProjectConfigDir, getRetryErrorContext, getShellName, getString, getToolResultTransportContent, hasDir, hasDisallowedAsciiControlCharacter, hasFile, hasFrontmatter, hasNonTextToolResultContent, hasTransientStatusMention, info, isBenchmarkLeakPath, isBenchmarkMode, isGitRepo, isPathSafe, isRetryableError, listDirs, listFiles, normalizeLineEndings, normalizeXenoRequestContext, parseDocument, parseJsonLines, readFileSafe, readIfExists, readTextFile, remainingBudget, renameReplacingWithRetry, safeJsonParse, safeJsonStringify, safeRegexTest, safeResolvePath, setLogLevel, stringifyDocument, toTransportAssistantBlocks, toolAssistantContentToText, toolResultContentToText, truncateToTokens, validateRegexPattern, validateRequired, warn, withRetry, writeAtomic, writeTextFile, xenoRequestContextHeaders };
@@ -76,6 +76,15 @@ declare function debug(msg: string, data?: unknown): void;
76
76
  declare function info(msg: string, data?: unknown): void;
77
77
  declare function warn(msg: string, data?: unknown): void;
78
78
  declare function error(msg: string, data?: unknown): void;
79
+ interface XenoRequestContext {
80
+ readonly surface: string;
81
+ readonly client?: {
82
+ readonly name: string;
83
+ readonly version: string;
84
+ };
85
+ }
86
+ declare function normalizeXenoRequestContext(context: XenoRequestContext): Readonly<XenoRequestContext>;
87
+ declare function xenoRequestContextHeaders(context: Readonly<XenoRequestContext> | undefined): Record<string, string>;
79
88
  interface RetryOptions {
80
89
  maxRetries?: number;
81
90
  baseDelayMs?: number;
@@ -287,4 +296,4 @@ interface XenoAsciiControlCharacterPolicy {
287
296
  allowLineBreaks?: boolean;
288
297
  }
289
298
  declare function hasDisallowedAsciiControlCharacter(value: string, policy?: XenoAsciiControlCharacterPolicy): boolean;
290
- export { ApiTransientError, HOME_DIR, IS_LINUX, IS_MAC, IS_WINDOWS, type LineEnding, LogLevel, OS_VERSION, PLATFORM, type ParsedDocument, type RetryErrorContext, type RetryOptions, type TextEncoding, type TextFileContents, type TokenAccountingAdapter, type TokenAccountingResult, type TokenAccountingSource, type TokenEstimator, type XenoAsciiControlCharacterPolicy, accountTextTokens, appendDurableLine, appendLine, benchmarkLeakError, buildToolResultBlock, buildToolResultText, calculateCost, commandMentionsBenchmarkLeak, conservativeTokenAccountingAdapter, copyTextToClipboard, createSafeRegex, debug, decodeTextBuffer, deleteDir, deleteFile, detectLineEnding, detectPreferredLineEnding, detectTextEncoding, encodeTextBuffer, ensureDir, error, estimateTokens, estimateTokensForModel, existsSync, filterBenchmarkLeakPaths, findSimilarFile, fitsInBudget, formatCost, getAgentHome, getBenchmarkReferenceOverwriteHint, getBoolean, getConfigDir, getLogLevel, getNumber, getProjectConfigDir, getRetryErrorContext, getShellName, getString, getToolResultTransportContent, hasDir, hasDisallowedAsciiControlCharacter, hasFile, hasFrontmatter, hasNonTextToolResultContent, hasTransientStatusMention, info, isBenchmarkLeakPath, isBenchmarkMode, isGitRepo, isPathSafe, isRetryableError, listDirs, listFiles, normalizeLineEndings, parseDocument, parseJsonLines, readFileSafe, readIfExists, readTextFile, remainingBudget, renameReplacingWithRetry, safeJsonParse, safeJsonStringify, safeRegexTest, safeResolvePath, setLogLevel, stringifyDocument, toTransportAssistantBlocks, toolAssistantContentToText, toolResultContentToText, truncateToTokens, validateRegexPattern, validateRequired, warn, withRetry, writeAtomic, writeTextFile };
299
+ export { ApiTransientError, HOME_DIR, IS_LINUX, IS_MAC, IS_WINDOWS, type LineEnding, LogLevel, OS_VERSION, PLATFORM, type ParsedDocument, type RetryErrorContext, type RetryOptions, type TextEncoding, type TextFileContents, type TokenAccountingAdapter, type TokenAccountingResult, type TokenAccountingSource, type TokenEstimator, type XenoAsciiControlCharacterPolicy, type XenoRequestContext, accountTextTokens, appendDurableLine, appendLine, benchmarkLeakError, buildToolResultBlock, buildToolResultText, calculateCost, commandMentionsBenchmarkLeak, conservativeTokenAccountingAdapter, copyTextToClipboard, createSafeRegex, debug, decodeTextBuffer, deleteDir, deleteFile, detectLineEnding, detectPreferredLineEnding, detectTextEncoding, encodeTextBuffer, ensureDir, error, estimateTokens, estimateTokensForModel, existsSync, filterBenchmarkLeakPaths, findSimilarFile, fitsInBudget, formatCost, getAgentHome, getBenchmarkReferenceOverwriteHint, getBoolean, getConfigDir, getLogLevel, getNumber, getProjectConfigDir, getRetryErrorContext, getShellName, getString, getToolResultTransportContent, hasDir, hasDisallowedAsciiControlCharacter, hasFile, hasFrontmatter, hasNonTextToolResultContent, hasTransientStatusMention, info, isBenchmarkLeakPath, isBenchmarkMode, isGitRepo, isPathSafe, isRetryableError, listDirs, listFiles, normalizeLineEndings, normalizeXenoRequestContext, parseDocument, parseJsonLines, readFileSafe, readIfExists, readTextFile, remainingBudget, renameReplacingWithRetry, safeJsonParse, safeJsonStringify, safeRegexTest, safeResolvePath, setLogLevel, stringifyDocument, toTransportAssistantBlocks, toolAssistantContentToText, toolResultContentToText, truncateToTokens, validateRegexPattern, validateRequired, warn, withRetry, writeAtomic, writeTextFile, xenoRequestContextHeaders };
@@ -1,24 +1,24 @@
1
- import{readdirSync as C,readFileSync as z}from"node:fs";import{existsSync as T,statSync as $}from"node:fs";import*as c from"node:fs/promises";import*as a from"node:path";function jt(t){try{return T(t)&&$(t).isFile()}catch{return!1}}function qt(t){try{return T(t)&&$(t).isDirectory()}catch{return!1}}function Ht(t,e=""){try{return z(t,"utf-8")}catch{return e}}async function k(t){await c.mkdir(t,{recursive:!0})}async function G(t,e){let n=a.dirname(t);await k(n);let r=Math.random().toString(36).substring(2,15),o=`${t}.tmp.${process.pid}.${r}`;try{await c.writeFile(o,e),await Q(o,t)}finally{try{await c.unlink(o)}catch{}}}var U=new Set(["EACCES","EBUSY","EPERM"]),K=[10,20,40,80,160,320,640];async function Q(t,e){for(let n=0;;n+=1)try{await c.rename(t,e);return}catch(r){let o=r.code,i=K[n];if(process.platform!=="win32"||!o||!U.has(o)||i===void 0)throw r;await new Promise(s=>setTimeout(s,i))}}async function Jt(t,e){let n=a.dirname(t);await k(n),await c.appendFile(t,e+`
2
- `,"utf-8")}async function Xt(t,e){let n=a.dirname(t);await k(n);let r=await c.open(t,"a");try{await r.writeFile(e+`
3
- `,"utf-8"),await r.sync()}finally{await r.close()}}function Z(t){return t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191?"utf8-bom":t.length>=2&&t[0]===255&&t[1]===254?"utf16le":t.length>=2&&t[0]===254&&t[1]===255?"utf16be":"utf8"}function N(t){let e=Buffer.from(t);for(let n=0;n+1<e.length;n+=2){let r=e[n];e[n]=e[n+1],e[n+1]=r}return e}function V(t,e){switch(e){case"utf8-bom":return t.subarray(3).toString("utf8");case"utf16le":return t.subarray(2).toString("utf16le");case"utf16be":return N(t.subarray(2)).toString("utf16le");default:return t.toString("utf8")}}function tt(t,e){switch(e){case"utf8-bom":return Buffer.concat([Buffer.from([239,187,191]),Buffer.from(t,"utf8")]);case"utf16le":return Buffer.concat([Buffer.from([255,254]),Buffer.from(t,"utf16le")]);case"utf16be":return Buffer.concat([Buffer.from([254,255]),N(Buffer.from(t,"utf16le"))]);default:return Buffer.from(t,"utf8")}}function et(t){return t.includes(`\r
1
+ import{readdirSync as S,readFileSync as Y}from"node:fs";import{existsSync as T,statSync as $}from"node:fs";import*as c from"node:fs/promises";import*as a from"node:path";function zt(t){try{return T(t)&&$(t).isFile()}catch{return!1}}function Ht(t){try{return T(t)&&$(t).isDirectory()}catch{return!1}}function Jt(t,e=""){try{return Y(t,"utf-8")}catch{return e}}async function A(t){await c.mkdir(t,{recursive:!0})}async function U(t,e){let n=a.dirname(t);await A(n);let r=Math.random().toString(36).substring(2,15),o=`${t}.tmp.${process.pid}.${r}`;try{await c.writeFile(o,e),await Z(o,t)}finally{try{await c.unlink(o)}catch{}}}var G=new Set(["EACCES","EBUSY","EPERM"]),K=[10,20,40,80,160,320,640];async function Z(t,e){for(let n=0;;n+=1)try{await c.rename(t,e);return}catch(r){let o=r.code,i=K[n];if(process.platform!=="win32"||!o||!G.has(o)||i===void 0)throw r;await new Promise(s=>setTimeout(s,i))}}async function Yt(t,e){let n=a.dirname(t);await A(n),await c.appendFile(t,e+`
2
+ `,"utf-8")}async function Ut(t,e){let n=a.dirname(t);await A(n);let r=await c.open(t,"a");try{await r.writeFile(e+`
3
+ `,"utf-8"),await r.sync()}finally{await r.close()}}function Q(t){return t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191?"utf8-bom":t.length>=2&&t[0]===255&&t[1]===254?"utf16le":t.length>=2&&t[0]===254&&t[1]===255?"utf16be":"utf8"}function N(t){let e=Buffer.from(t);for(let n=0;n+1<e.length;n+=2){let r=e[n];e[n]=e[n+1],e[n+1]=r}return e}function V(t,e){switch(e){case"utf8-bom":return t.subarray(3).toString("utf8");case"utf16le":return t.subarray(2).toString("utf16le");case"utf16be":return N(t.subarray(2)).toString("utf16le");default:return t.toString("utf8")}}function tt(t,e){switch(e){case"utf8-bom":return Buffer.concat([Buffer.from([239,187,191]),Buffer.from(t,"utf8")]);case"utf16le":return Buffer.concat([Buffer.from([255,254]),Buffer.from(t,"utf16le")]);case"utf16be":return Buffer.concat([Buffer.from([254,255]),N(Buffer.from(t,"utf16le"))]);default:return Buffer.from(t,"utf8")}}function et(t){return t.includes(`\r
4
4
  `)?"CRLF":"LF"}function nt(t,e){let n=t.replace(/\r\n/g,`
5
5
  `);return e==="CRLF"?n.replace(/\n/g,`\r
6
- `):n}async function rt(t){let e=await c.readFile(t),n=Z(e),r=V(e,n);return{content:r,encoding:n,lineEnding:et(r),sizeBytes:e.length}}async function Yt(t,e,n){let r=nt(e,n?.lineEnding??"LF");await G(t,tt(r,n?.encoding??"utf8"))}async function zt(t){let e=new Set,n=a.resolve(t);for(;!e.has(n);){e.add(n);try{let o=C(n,{withFileTypes:!0}).filter(i=>i.isFile()).map(i=>i.name).sort();for(let i of o){if(i.startsWith("."))continue;let s=a.extname(i).toLowerCase();if([".ts",".tsx",".js",".jsx",".json",".md",".txt",".yaml",".yml",".css",".html",".xml",".sh",".ps1"].includes(s))try{let u=a.join(n,i),l=await rt(u);if(l.content.length>0)return l.lineEnding}catch{}}}catch{}let r=a.dirname(n);if(r===n)break;n=r}return"LF"}function ot(t,e,n){let r=[],o=[{dir:t,depth:0}],i=new Set;for(;o.length>0&&r.length<n;){let s=o.shift();if(!i.has(s.dir)){i.add(s.dir);try{let u=C(s.dir,{withFileTypes:!0});for(let l of u){let d=a.join(s.dir,l.name);if(l.isFile()){if(r.push(d),r.length>=n)break;continue}l.isDirectory()&&s.depth<e&&!l.name.startsWith(".")&&l.name!=="node_modules"&&o.push({dir:d,depth:s.depth+1})}}catch{}}}return r}function Gt(t){try{let e=a.dirname(t),n=a.basename(t,a.extname(t)).toLowerCase(),r=a.basename(t).toLowerCase(),i=[e,a.dirname(e)].flatMap(u=>ot(u,2,500)),s=null;for(let u of i){let l=a.basename(u).toLowerCase(),d=a.basename(u,a.extname(u)).toLowerCase(),m=null;if(l===r?m=0:d===n?m=1:(l.includes(n)||n.includes(d))&&(m=2),m===null)continue;let R=a.relative(e,u).split(a.sep).length,_=m+R*.01;(!s||_<s.score)&&(s={filePath:u,score:_})}return s?.filePath??null}catch{}return null}async function Ut(t){try{return await c.readFile(t,"utf-8")}catch(e){if(e.code==="ENOENT")return null;throw e}}function Kt(t){return T(t)}async function Qt(t,e){try{let r=(await c.readdir(t,{withFileTypes:!0})).filter(o=>o.isFile()).map(o=>a.join(t,o.name));return e&&(r=r.filter(o=>e.test(a.basename(o)))),r}catch(n){if(n.code==="ENOENT")return[];throw n}}async function Zt(t){try{return(await c.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>a.join(t,n.name))}catch(e){if(e.code==="ENOENT")return[];throw e}}async function Vt(t){try{await c.unlink(t)}catch(e){if(e.code!=="ENOENT")throw e}}async function te(t){try{await c.rm(t,{recursive:!0,force:!0})}catch(e){if(e.code!=="ENOENT")throw e}}function ne(t,e){try{return JSON.parse(t)}catch{return e}}function re(t,e="{}"){try{return JSON.stringify(t)}catch{return e}}function oe(t){let e=[];for(let n of t.split(`
7
- `)){let r=n.trim();if(r)try{e.push(JSON.parse(r))}catch{}}return e}function se(t){let e=it(t);return{frontmatter:e.frontmatter,content:e.content.trim()}}function ae(t,e){let n=Object.fromEntries(Object.entries(t).filter(([r,o])=>o!==void 0));return["---",B(n),"---","",e].join(`
8
- `)}function ue(t){return t.trimStart().startsWith("---")}function it(t){let e=t.replace(/^\uFEFF/,"");if(!e.startsWith("---"))return{frontmatter:{},content:t};let n=e.search(/\r?\n/);if(n<0||e.slice(0,n).trim()!=="---")return{frontmatter:{},content:t};let r=e.slice(n+(e[n]==="\r"?2:1)),o=r.match(/(?:^|\r?\n)---[ \t]*(?:\r?\n|$)/);if(!o||o.index===void 0)throw new Error("YAML frontmatter is not closed.");let i=r.slice(0,o.index),s=o[0],u=o.index+s.length;return{frontmatter:O(i),content:r.slice(u)}}function O(t){let e={},n=t.split(/\r?\n/);for(let r=0;r<n.length;r+=1){let o=n[r];if(!o.trim()||o.trimStart().startsWith("#"))continue;if(/^\s/.test(o))throw new Error(`Unexpected indentation at line ${r+1}.`);let i=at(o,r+1);if(i.key==="<<")throw new Error("YAML merge keys are not supported.");if(i.value!==""){e[i.key]=L(i.value,r+1);continue}let s=st(n,r+1);e[i.key]=s.value,r=s.nextIndex-1}return e}function st(t,e){let n=[],r=e;for(;r<t.length;r+=1){let i=t[r];if(!i.trim()){n.push(i);continue}if(!/^\s/.test(i))break;n.push(i.replace(/^ {2}/,""))}let o=n.filter(i=>i.trim()&&!i.trimStart().startsWith("#"));return o.length===0?{value:{},nextIndex:r}:o.every(i=>i.trimStart().startsWith("- "))?{value:o.map((i,s)=>L(i.trimStart().slice(2),e+s+1)),nextIndex:r}:{value:O(n.join(`
6
+ `):n}async function rt(t){let e=await c.readFile(t),n=Q(e),r=V(e,n);return{content:r,encoding:n,lineEnding:et(r),sizeBytes:e.length}}async function Gt(t,e,n){let r=nt(e,n?.lineEnding??"LF");await U(t,tt(r,n?.encoding??"utf8"))}async function Kt(t){let e=new Set,n=a.resolve(t);for(;!e.has(n);){e.add(n);try{let o=S(n,{withFileTypes:!0}).filter(i=>i.isFile()).map(i=>i.name).sort();for(let i of o){if(i.startsWith("."))continue;let s=a.extname(i).toLowerCase();if([".ts",".tsx",".js",".jsx",".json",".md",".txt",".yaml",".yml",".css",".html",".xml",".sh",".ps1"].includes(s))try{let u=a.join(n,i),f=await rt(u);if(f.content.length>0)return f.lineEnding}catch{}}}catch{}let r=a.dirname(n);if(r===n)break;n=r}return"LF"}function ot(t,e,n){let r=[],o=[{dir:t,depth:0}],i=new Set;for(;o.length>0&&r.length<n;){let s=o.shift();if(!i.has(s.dir)){i.add(s.dir);try{let u=S(s.dir,{withFileTypes:!0});for(let f of u){let d=a.join(s.dir,f.name);if(f.isFile()){if(r.push(d),r.length>=n)break;continue}f.isDirectory()&&s.depth<e&&!f.name.startsWith(".")&&f.name!=="node_modules"&&o.push({dir:d,depth:s.depth+1})}}catch{}}}return r}function Zt(t){try{let e=a.dirname(t),n=a.basename(t,a.extname(t)).toLowerCase(),r=a.basename(t).toLowerCase(),i=[e,a.dirname(e)].flatMap(u=>ot(u,2,500)),s=null;for(let u of i){let f=a.basename(u).toLowerCase(),d=a.basename(u,a.extname(u)).toLowerCase(),m=null;if(f===r?m=0:d===n?m=1:(f.includes(n)||n.includes(d))&&(m=2),m===null)continue;let R=a.relative(e,u).split(a.sep).length,_=m+R*.01;(!s||_<s.score)&&(s={filePath:u,score:_})}return s?.filePath??null}catch{}return null}async function Qt(t){try{return await c.readFile(t,"utf-8")}catch(e){if(e.code==="ENOENT")return null;throw e}}function Vt(t){return T(t)}async function te(t,e){try{let r=(await c.readdir(t,{withFileTypes:!0})).filter(o=>o.isFile()).map(o=>a.join(t,o.name));return e&&(r=r.filter(o=>e.test(a.basename(o)))),r}catch(n){if(n.code==="ENOENT")return[];throw n}}async function ee(t){try{return(await c.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>a.join(t,n.name))}catch(e){if(e.code==="ENOENT")return[];throw e}}async function ne(t){try{await c.unlink(t)}catch(e){if(e.code!=="ENOENT")throw e}}async function re(t){try{await c.rm(t,{recursive:!0,force:!0})}catch(e){if(e.code!=="ENOENT")throw e}}function ie(t,e){try{return JSON.parse(t)}catch{return e}}function se(t,e="{}"){try{return JSON.stringify(t)}catch{return e}}function ae(t){let e=[];for(let n of t.split(`
7
+ `)){let r=n.trim();if(r)try{e.push(JSON.parse(r))}catch{}}return e}function ce(t){let e=it(t);return{frontmatter:e.frontmatter,content:e.content.trim()}}function fe(t,e){let n=Object.fromEntries(Object.entries(t).filter(([r,o])=>o!==void 0));return["---",B(n),"---","",e].join(`
8
+ `)}function le(t){return t.trimStart().startsWith("---")}function it(t){let e=t.replace(/^\uFEFF/,"");if(!e.startsWith("---"))return{frontmatter:{},content:t};let n=e.search(/\r?\n/);if(n<0||e.slice(0,n).trim()!=="---")return{frontmatter:{},content:t};let r=e.slice(n+(e[n]==="\r"?2:1)),o=r.match(/(?:^|\r?\n)---[ \t]*(?:\r?\n|$)/);if(!o||o.index===void 0)throw new Error("YAML frontmatter is not closed.");let i=r.slice(0,o.index),s=o[0],u=o.index+s.length;return{frontmatter:O(i),content:r.slice(u)}}function O(t){let e={},n=t.split(/\r?\n/);for(let r=0;r<n.length;r+=1){let o=n[r];if(!o.trim()||o.trimStart().startsWith("#"))continue;if(/^\s/.test(o))throw new Error(`Unexpected indentation at line ${r+1}.`);let i=at(o,r+1);if(i.key==="<<")throw new Error("YAML merge keys are not supported.");if(i.value!==""){e[i.key]=L(i.value,r+1);continue}let s=st(n,r+1);e[i.key]=s.value,r=s.nextIndex-1}return e}function st(t,e){let n=[],r=e;for(;r<t.length;r+=1){let i=t[r];if(!i.trim()){n.push(i);continue}if(!/^\s/.test(i))break;n.push(i.replace(/^ {2}/,""))}let o=n.filter(i=>i.trim()&&!i.trimStart().startsWith("#"));return o.length===0?{value:{},nextIndex:r}:o.every(i=>i.trimStart().startsWith("- "))?{value:o.map((i,s)=>L(i.trimStart().slice(2),e+s+1)),nextIndex:r}:{value:O(n.join(`
9
9
  `)),nextIndex:r}}function at(t,e){let n=t.indexOf(":");if(n<=0)throw new Error(`Invalid YAML line ${e}.`);let r=t.slice(0,n).trim(),o=t.slice(n+1).trim();if(!r)throw new Error(`Invalid YAML key at line ${e}.`);return{key:r,value:o}}function L(t,e){if(t==="")return"";if(t==="[]")return[];if(t==="{}")return{};if(t==="true")return!0;if(t==="false")return!1;if(t==="null"||t==="~")return null;if(/^-?\d+(?:\.\d+)?$/.test(t))return Number(t);if(t.startsWith('"'))return v(t,e);if(t.startsWith("'")){if(!t.endsWith("'"))throw new Error(`Unclosed quoted scalar at line ${e}.`);return t.slice(1,-1).replace(/''/g,"'")}if(t.startsWith("[")||t.startsWith("{"))return v(t,e);if(t.includes("[")||t.includes("]")||t.includes("{")||t.includes("}"))throw new Error(`Unsupported YAML scalar at line ${e}.`);return t}function v(t,e){try{return JSON.parse(t)}catch{throw new Error(`Invalid YAML scalar at line ${e}.`)}}function B(t,e=""){return Object.entries(t).map(([n,r])=>ut(n,r,e)).join(`
10
10
  `)}function ut(t,e,n){return Array.isArray(e)?`${n}${t}: ${JSON.stringify(e)}`:e&&typeof e=="object"?`${n}${t}:
11
- ${B(e,`${n} `)}`:`${n}${t}: ${JSON.stringify(e)}`}import*as f from"path";function ct(t,e){let n=f.resolve(t),r=f.resolve(t,e);return r===n?!0:n===f.parse(n).root?r.startsWith(n):r.startsWith(n+f.sep)}function le(t,e){if(f.isAbsolute(e))return f.resolve(e);if(!ct(t,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return f.resolve(t,e)}import{homedir as A,platform as lt,release as ft}from"node:os";import{execSync as dt}from"node:child_process";import{resolve as h}from"node:path";var M=lt(),pt=M==="win32",ge=M==="darwin",he=M==="linux",xe=ft(),ye=A();function we(){let t=process.env.XENO_AGENT_HOME?.trim();return t?h(t):h(A(),".xeno-agent")}function be(){let t=process.env.XENO_CONFIG_DIR?.trim();return t?h(t):h(A(),".xeno-code")}function Ee(t){return h(t,".xeno-code")}function Re(){return pt?"powershell":process.env.SHELL?.split("/").pop()??"bash"}function Te(t){try{return dt("git rev-parse --is-inside-work-tree",{cwd:t,stdio:"ignore"}),!0}catch{return!1}}function Ae(t,e){for(let n of e)if(t[n]===void 0||t[n]===null||t[n]==="")return`Missing required parameter: ${n}`;return null}function Me(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="string")throw new Error(`Parameter ${e} must be a string, got ${typeof r}`);return r}function Se(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="number")throw new Error(`Parameter ${e} must be a number, got ${typeof r}`);if(isNaN(r))throw new Error(`Parameter ${e} is NaN`);return r}function _e(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="boolean")throw new Error(`Parameter ${e} must be a boolean, got ${typeof r}`);return r}function mt(t){if(t.length>5e3)return"Pattern too long (max 5000 characters)";let n=[/(\.\*){3,}/,/(\+\+|\*\*)/,/(.*\+.*\+.*\+)/];for(let r of n)if(r.test(t))return"Pattern contains potentially unsafe constructs that could cause excessive backtracking";return null}function Ce(t,e,n=5e3){let r=mt(t);if(r)throw new Error(r);try{return new RegExp(t,e)}catch(o){let i=o instanceof Error?o.message:String(o);throw new Error(`Invalid regex pattern: ${i}`)}}function $e(t,e,n=1e3){if(e.length>1e5)throw new Error(`Input too large for safe regex test (${e.length} chars, max 100000)`);return t.test(e)}var gt=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(gt||{}),g=1;function ve(t){g=t}function Oe(){return g}function p(){return new Date().toISOString()}function Le(t,e){g<=0&&(e!==void 0?process.stderr.write(`[${p()}] DEBUG: ${t} ${x(e)}
11
+ ${B(e,`${n} `)}`:`${n}${t}: ${JSON.stringify(e)}`}import*as l from"path";function ct(t,e){let n=l.resolve(t),r=l.resolve(t,e);return r===n?!0:n===l.parse(n).root?r.startsWith(n):r.startsWith(n+l.sep)}function pe(t,e){if(l.isAbsolute(e))return l.resolve(e);if(!ct(t,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return l.resolve(t,e)}import{homedir as C,platform as ft,release as lt}from"node:os";import{execSync as dt}from"node:child_process";import{resolve as h}from"node:path";var k=ft(),pt=k==="win32",ye=k==="darwin",we=k==="linux",be=lt(),Ee=C();function Re(){let t=process.env.XENO_AGENT_HOME?.trim();return t?h(t):h(C(),".xeno-agent")}function Te(){let t=process.env.XENO_CONFIG_DIR?.trim();return t?h(t):h(C(),".xeno-code")}function Ae(t){return h(t,".xeno-code")}function Ce(){return pt?"powershell":process.env.SHELL?.split("/").pop()??"bash"}function ke(t){try{return dt("git rev-parse --is-inside-work-tree",{cwd:t,stdio:"ignore"}),!0}catch{return!1}}function _e(t,e){for(let n of e)if(t[n]===void 0||t[n]===null||t[n]==="")return`Missing required parameter: ${n}`;return null}function Se(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="string")throw new Error(`Parameter ${e} must be a string, got ${typeof r}`);return r}function $e(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="number")throw new Error(`Parameter ${e} must be a number, got ${typeof r}`);if(isNaN(r))throw new Error(`Parameter ${e} is NaN`);return r}function Ne(t,e,n){let r=t[e];if(r==null){if(n!==void 0)return n;throw new Error(`Missing required parameter: ${e}`)}if(typeof r!="boolean")throw new Error(`Parameter ${e} must be a boolean, got ${typeof r}`);return r}function mt(t){if(t.length>5e3)return"Pattern too long (max 5000 characters)";let n=[/(\.\*){3,}/,/(\+\+|\*\*)/,/(.*\+.*\+.*\+)/];for(let r of n)if(r.test(t))return"Pattern contains potentially unsafe constructs that could cause excessive backtracking";return null}function ve(t,e,n=5e3){let r=mt(t);if(r)throw new Error(r);try{return new RegExp(t,e)}catch(o){let i=o instanceof Error?o.message:String(o);throw new Error(`Invalid regex pattern: ${i}`)}}function Oe(t,e,n=1e3){if(e.length>1e5)throw new Error(`Input too large for safe regex test (${e.length} chars, max 100000)`);return t.test(e)}var gt=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(gt||{}),g=1;function Be(t){g=t}function Pe(){return g}function p(){return new Date().toISOString()}function Ie(t,e){g<=0&&(e!==void 0?process.stderr.write(`[${p()}] DEBUG: ${t} ${x(e)}
12
12
  `):process.stderr.write(`[${p()}] DEBUG: ${t}
13
- `))}function Be(t,e){g<=1&&(e!==void 0?process.stderr.write(`[${p()}] INFO: ${t} ${x(e)}
13
+ `))}function De(t,e){g<=1&&(e!==void 0?process.stderr.write(`[${p()}] INFO: ${t} ${x(e)}
14
14
  `):process.stderr.write(`[${p()}] INFO: ${t}
15
- `))}function Pe(t,e){g<=2&&(e!==void 0?process.stderr.write(`[${p()}] WARN: ${t} ${x(e)}
15
+ `))}function Fe(t,e){g<=2&&(e!==void 0?process.stderr.write(`[${p()}] WARN: ${t} ${x(e)}
16
16
  `):process.stderr.write(`[${p()}] WARN: ${t}
17
- `))}function De(t,e){g<=3&&(e!==void 0?process.stderr.write(`[${p()}] ERROR: ${t} ${x(e)}
17
+ `))}function je(t,e){g<=3&&(e!==void 0?process.stderr.write(`[${p()}] ERROR: ${t} ${x(e)}
18
18
  `):process.stderr.write(`[${p()}] ERROR: ${t}
19
- `))}function x(t){if(t==null)return"";if(t instanceof Error)return t.message;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}var b=class extends Error{statusCode;body;retryAfterMs;requestId;cfRay;constructor(e,n={}){super(e),this.name="ApiTransientError",this.statusCode=n.statusCode,this.retryAfterMs=n.retryAfterMs,this.requestId=n.requestId,this.cfRay=n.cfRay}},y={maxRetries:3,baseDelayMs:1e3,maxDelayMs:3e4,jitterMs:300};function w(t,e){let n=process.env[t],r=n?Number.parseInt(n,10):Number.NaN;return!Number.isFinite(r)||r<0?e:r}function ht(t={}){let e=Math.max(0,t.maxRetries??w("XENO_API_MAX_RETRIES",y.maxRetries)),n=Math.max(50,t.baseDelayMs??w("XENO_API_BASE_DELAY_MS",y.baseDelayMs)),r=Math.max(n,t.maxDelayMs??w("XENO_API_MAX_DELAY_MS",y.maxDelayMs)),o=Math.max(0,t.jitterMs??w("XENO_API_RETRY_JITTER_MS",y.jitterMs));return{maxRetries:e,baseDelayMs:n,maxDelayMs:r,jitterMs:o}}function xt(t,e,n){if(e.retryAfterMs&&e.retryAfterMs>0)return Math.min(e.retryAfterMs,n.maxDelayMs);let r=Math.min(n.baseDelayMs*Math.pow(2,t),n.maxDelayMs),o=Math.floor(Math.random()*n.jitterMs);return Math.min(r+o,n.maxDelayMs)}function P(t){let e=t.toLowerCase();return e.includes("rate limit")||e.includes("too many requests")||e.includes("429")}function yt(t){let e=t.toLowerCase();return e.includes("network")||e.includes("timeout")||e.includes("fetch failed")||e.includes("socket hang up")||e.includes("econnreset")||e.includes("eai_again")||e.includes("enotfound")||e.includes("econnrefused")||e.includes("tls")||e.includes("temporarily unavailable")}function D(t){if(t instanceof b)return{statusCode:t.statusCode,retryAfterMs:t.retryAfterMs,requestId:t.requestId,cfRay:t.cfRay};if(!(t instanceof Error))return{};let e=t;if(e.statusCode!==void 0||e.retryAfterMs!==void 0||e.requestId!==void 0||e.cfRay!==void 0)return{statusCode:e.statusCode,retryAfterMs:e.retryAfterMs,requestId:e.requestId,cfRay:e.cfRay};let n=t.message.toLowerCase();return P(n)?{statusCode:429}:{}}var S="408|425|429|500|502|503|504";function wt(t){let e=new RegExp(`(?:\\bstatus(?:[ _-]?code)?\\b\\s*[=:]?\\s*|\\bhttp\\b\\s*|\\bapi\\b\\s*|\\bcode\\b\\s*[=:]\\s*|\\berror\\b\\s*)(?:${S})\\b`,"i"),n=new RegExp(`\\b(?:${S})\\s+(?:internal|bad\\s+gateway|service\\s+unavailable|gateway\\s+time|request\\s+time|too\\s+early|too\\s+many)`,"i"),r=new RegExp(`^\\s*(?:${S})\\b`);return e.test(t)||n.test(t)||r.test(t)}function bt(t){if(t&&typeof t=="object"&&"retryable"in t)return t.retryable===!0;if(t instanceof b){let{statusCode:e}=D(t);if(e)return e===429||e>=500||e===408||e===409||e===425}if(t instanceof Error){let e=t.name?.toLowerCase()??"";return e==="aborterror"||e==="agentinterruptederror"||t.message.toLowerCase().includes("aborted")||t.message.toLowerCase().includes("interrupted")?!1:wt(t.message)?!0:P(t.message)||yt(t.message.toLowerCase())}return!1}function Et(t){if(t.onAbort)return t.onAbort();let e=new Error("The operation was aborted");return e.name="AbortError",e}async function Fe(t,e={}){let n=ht(e),r;for(let o=0;o<=n.maxRetries;o++)try{if(e.signal?.aborted)throw Et(e);return e.onBeforeAttempt?.(o),await t()}catch(i){if(r=i,!(e.shouldRetry?e.shouldRetry(i,o):bt(i))||o===n.maxRetries)throw i;let u=D(i),l=xt(o,u,n),d=e.getDelayMs?.(i,o,l),m=typeof d=="number"&&d>=0?d:l;await new Promise(R=>setTimeout(R,m))}throw r}var Rt=(t,e)=>{if(!t)return 0;let n=e.toLowerCase(),r=n.includes("claude")?3.5:n.includes("gemini")?3.8:(/(^|[/_-])(gpt|o\d)/.test(n),4),o=[...t].filter(s=>s.codePointAt(0)>127).length,i=Math.ceil(t.length/r);return Math.max(1,i+Math.ceil(o*.35))},Tt=Object.freeze({id:"xeno-conservative-v1",source:"estimated",countText:Rt,countImage:({detail:t})=>t==="high"?2e3:t==="low"?512:1200,safetyMarginRatio:t=>{let e=t.toLowerCase();return e.includes("claude")?.12:e.includes("gemini")?.14:/(^|[/_-])(gpt|o\d)/.test(e)?.1:.18}});function je(t,e,n=Tt){return{tokens:Math.max(0,Math.ceil(n.countText(t,e))),source:n.source,adapterId:n.id}}function kt(t){return t?Math.ceil(t.length/4):0}function qe(t,e){if(!t||e<=0)return"";let n=e*4;if(t.length<=n)return t;let r=t.slice(0,n),o=r.lastIndexOf(" ");return o>n*.8&&(r=r.slice(0,o)),r+"..."}function He(t,e){return kt(t)<=e}function Je(t,e){return Math.max(0,e-t)}var At={"claude-opus-4-6-thinking":{input:15,output:75},"claude-opus-4-6":{input:15,output:75},"claude-opus-4-5-thinking":{input:15,output:75},"claude-sonnet-4-6":{input:3,output:15},"claude-sonnet-4-5-thinking":{input:3,output:15},"claude-sonnet-4-5":{input:3,output:15},"gemini-2.5-flash":{input:.15,output:.6},"gemini-2.5-flash-lite":{input:.075,output:.3},"gemini-3-flash":{input:.15,output:.6},"gemini-3-pro-high":{input:1.25,output:5},"gpt-5":{input:5,output:15},"gpt-5-codex":{input:5,output:15},"gpt-5.1":{input:5,output:15},"gpt-5.1-codex":{input:5,output:15},"gpt-5.2":{input:5,output:15},"gpt-5.2-codex":{input:5,output:15},"kimi-k2":{input:.6,output:2.4},"kimi-k2-thinking":{input:.6,output:2.4},"kimi-k2.5":{input:.6,output:2.4}};function Ye(t,e,n){let r=At[t];return r?e/1e6*r.input+n/1e6*r.output:0}function ze(t){return t<=0?"$0.00":t<.001?"<$0.001":t<.01?`$${t.toFixed(4)}`:t<1?`$${t.toFixed(3)}`:`$${t.toFixed(2)}`}import{spawnSync as Mt}from"node:child_process";function Ke(t){let e=process.platform==="win32"?[{command:"clip.exe",args:[]}]:process.platform==="darwin"?[{command:"pbcopy",args:[]}]:[{command:"wl-copy",args:[]},{command:"xclip",args:["-selection","clipboard"]},{command:"xsel",args:["--clipboard","--input"]}],n=null;for(let r of e)try{let o=Mt(r.command,r.args,{input:t,encoding:"utf8"});if(o.error){n=o.error.message;continue}if(o.status===0)return;n=o.stderr||o.stdout||`exit ${o.status}`}catch(o){n=o instanceof Error?o.message:String(o)}throw new Error(`Clipboard copy failed${n?`: ${n}`:""}`)}function F(t){return t.replace(/\\/g,"/").toLowerCase()}var St=["golden","solution","answer","expected"],_t=["expected","golden","reference","answer","answers"],Ct=new Set([";","&&","||","|"]);function W(t){return F(t).replace(/^\.\/+/,"").split("/").map(e=>e.trim()).filter(e=>e.length>0)}function $t(t){return St.some(e=>t.includes(e))}function I(t){return _t.some(e=>t.includes(e))}function j(t){return t.split("::",1)[0]?.split("?",1)[0]?.split("#",1)[0]??t}function E(t){let e=t.trim().replace(/^[({]+/,"").replace(/[),;]+$/,"");return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),e}function Nt(t){return t.match(/"[^"]*"|'[^']*'|&&|\|\||[;|]|[^\s;|&]+/g)?.map(E).filter(e=>e.length>0)??[]}function q(t){let e=W(t),n=j(e.at(-1)??"");return I(n)||e.some(r=>I(r))}function H(t){let e=F(E(t));return!e||e==="/dev/null"||e.startsWith("/tmp/")||e.startsWith("tmp/")||e.startsWith("/var/tmp/")||e.startsWith("var/tmp/")?!1:e.startsWith("/app/")||e.startsWith("./")?!0:!e.startsWith("/")}function vt(t){return/[\\/]/.test(t)||/\.[A-Za-z0-9]{1,8}$/.test(t)}function Ot(t){let e=Nt(t);for(let n=0;n<e.length;n+=1){let r=e[n]?.toLowerCase();if(r!=="cp"&&r!=="mv"&&r!=="rsync"&&r!=="install")continue;let o=[];for(let s=n+1;s<e.length;s+=1){let u=e[s];if(!u||Ct.has(u))break;u!=="--"&&(u.startsWith("-")||o.push(u))}if(o.length<2)continue;let i=o.at(-1);if(H(i)){for(let s of o.slice(0,-1))if(vt(s)&&q(s))return{sourcePath:s,destinationPath:i,operation:r}}}return null}function Lt(t){let e=[/\bcat\s+(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))\s*>\s*(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i,/\bdd\b[\s\S]*?\bif=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))[\s\S]*?\bof=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i];for(let n of e){let r=t.match(n);if(!r)continue;let o=E(r[1]??r[2]??r[3]??""),i=E(r[4]??r[5]??r[6]??"");if(!(!o||!i)&&q(o)&&H(i))return{sourcePath:o,destinationPath:i,operation:n.source.startsWith("\\bdd")?"dd":"redirect"}}return null}function J(){return process.env.XENO_BENCHMARK_MODE?.trim().toLowerCase()==="terminal-bench"}function X(t){let e=W(t);if(e.includes("solution")||e.includes("xeno-audit")||e.includes(".xeno")&&e.includes("audit"))return!0;let n=j(e.at(-1)??"");return e.includes("tests")&&$t(n)}function Ze(t){return J()?t.filter(e=>!X(e)):t}function Ve(t){return`Benchmark safety: access to verifier answer or benchmark trace artifacts is blocked (${t}). Use task inputs and verifier logic, not golden, solution, or agent audit files.`}function tn(t){return t.split(/[\s"'`;|&]+/).map(e=>e.trim()).filter(e=>e.length>0&&/[\\/]/.test(e)).some(e=>X(e))}function en(t){if(!J())return null;let e=Ot(t)??Lt(t);return e?["[xeno guidance]",`Benchmark safety blocked ${e.operation} from reference-like source ${e.sourcePath} to protected destination ${e.destinationPath}.`,"Do not copy expected, golden, reference, or answer files over task inputs or submission artifacts to make validation pass.","If a previous check polluted an input, restore/regenerate the original source input, then rerun the actual script or program under test."].join(`
20
- `):null}function Bt(t){return/^data:([^;,]+)[;,]/i.exec(t.trim())?.[1]}function Pt(t){let e=[];for(let n of t){if(n.type==="text"){e.push(n.text);continue}if(n.type==="image_url"){e.push(`[image ${Bt(n.image_url.url)??"unknown"}]`);continue}let r=n.text??n.data;if(r&&r.trim().length>0){e.push(r);continue}let o=n.uri??n.mimeType??"resource";e.push(`[resource ${o}]`)}return e.join(`
19
+ `))}function x(t){if(t==null)return"";if(t instanceof Error)return t.message;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}var ht=/^[A-Za-z0-9:._*-]{1,64}$/,xt=/^[A-Za-z0-9_-][A-Za-z0-9 _-]{0,30}[A-Za-z0-9_-]$/,yt=/^[0-9][0-9A-Za-z.+-]{0,40}$/;function qe(t){if(!t||typeof t!="object")throw new TypeError("requestContext must be an object");let e=Object.keys(t).filter(r=>r!=="surface"&&r!=="client");if(e.length>0)throw new TypeError(`requestContext does not accept: ${e.join(", ")}`);if(typeof t.surface!="string"||!ht.test(t.surface))throw new TypeError("requestContext.surface must match /^[A-Za-z0-9:._*-]{1,64}$/");if(t.client===void 0)return Object.freeze({surface:t.surface});let n=t.client;if(!n||typeof n!="object"||Object.keys(n).some(r=>r!=="name"&&r!=="version"))throw new TypeError("requestContext.client must be { name, version }");if(typeof n.name!="string"||!xt.test(n.name))throw new TypeError("requestContext.client.name must be 2-32 characters of letters, digits, space, _ or -");if(typeof n.version!="string"||!yt.test(n.version))throw new TypeError("requestContext.client.version must start with a digit, e.g. 1.2.3");return Object.freeze({surface:t.surface,client:Object.freeze({name:n.name,version:n.version})})}function Xe(t){return t?{"X-Xeno-Surface":t.surface,...t.client?{"X-Xeno-Client":`${t.client.name}/${t.client.version}`}:{}}:{}}var b=class extends Error{statusCode;body;retryAfterMs;requestId;cfRay;constructor(e,n={}){super(e),this.name="ApiTransientError",this.statusCode=n.statusCode,this.retryAfterMs=n.retryAfterMs,this.requestId=n.requestId,this.cfRay=n.cfRay}},y={maxRetries:3,baseDelayMs:1e3,maxDelayMs:3e4,jitterMs:300};function w(t,e){let n=process.env[t],r=n?Number.parseInt(n,10):Number.NaN;return!Number.isFinite(r)||r<0?e:r}function wt(t={}){let e=Math.max(0,t.maxRetries??w("XENO_API_MAX_RETRIES",y.maxRetries)),n=Math.max(50,t.baseDelayMs??w("XENO_API_BASE_DELAY_MS",y.baseDelayMs)),r=Math.max(n,t.maxDelayMs??w("XENO_API_MAX_DELAY_MS",y.maxDelayMs)),o=Math.max(0,t.jitterMs??w("XENO_API_RETRY_JITTER_MS",y.jitterMs));return{maxRetries:e,baseDelayMs:n,maxDelayMs:r,jitterMs:o}}function bt(t,e,n){if(e.retryAfterMs&&e.retryAfterMs>0)return Math.min(e.retryAfterMs,n.maxDelayMs);let r=Math.min(n.baseDelayMs*Math.pow(2,t),n.maxDelayMs),o=Math.floor(Math.random()*n.jitterMs);return Math.min(r+o,n.maxDelayMs)}function P(t){let e=t.toLowerCase();return e.includes("rate limit")||e.includes("too many requests")||e.includes("429")}function Et(t){let e=t.toLowerCase();return e.includes("network")||e.includes("timeout")||e.includes("fetch failed")||e.includes("socket hang up")||e.includes("econnreset")||e.includes("eai_again")||e.includes("enotfound")||e.includes("econnrefused")||e.includes("tls")||e.includes("temporarily unavailable")}function I(t){if(t instanceof b)return{statusCode:t.statusCode,retryAfterMs:t.retryAfterMs,requestId:t.requestId,cfRay:t.cfRay};if(!(t instanceof Error))return{};let e=t;if(e.statusCode!==void 0||e.retryAfterMs!==void 0||e.requestId!==void 0||e.cfRay!==void 0)return{statusCode:e.statusCode,retryAfterMs:e.retryAfterMs,requestId:e.requestId,cfRay:e.cfRay};let n=t.message.toLowerCase();return P(n)?{statusCode:429}:{}}var M="408|425|429|500|502|503|504";function Rt(t){let e=new RegExp(`(?:\\bstatus(?:[ _-]?code)?\\b\\s*[=:]?\\s*|\\bhttp\\b\\s*|\\bapi\\b\\s*|\\bcode\\b\\s*[=:]\\s*|\\berror\\b\\s*)(?:${M})\\b`,"i"),n=new RegExp(`\\b(?:${M})\\s+(?:internal|bad\\s+gateway|service\\s+unavailable|gateway\\s+time|request\\s+time|too\\s+early|too\\s+many)`,"i"),r=new RegExp(`^\\s*(?:${M})\\b`);return e.test(t)||n.test(t)||r.test(t)}function Tt(t){if(t&&typeof t=="object"&&"retryable"in t)return t.retryable===!0;if(t instanceof b){let{statusCode:e}=I(t);if(e)return e===429||e>=500||e===408||e===409||e===425}if(t instanceof Error){let e=t.name?.toLowerCase()??"";return e==="aborterror"||e==="agentinterruptederror"||t.message.toLowerCase().includes("aborted")||t.message.toLowerCase().includes("interrupted")?!1:Rt(t.message)?!0:P(t.message)||Et(t.message.toLowerCase())}return!1}function At(t){if(t.onAbort)return t.onAbort();let e=new Error("The operation was aborted");return e.name="AbortError",e}async function He(t,e={}){let n=wt(e),r;for(let o=0;o<=n.maxRetries;o++)try{if(e.signal?.aborted)throw At(e);return e.onBeforeAttempt?.(o),await t()}catch(i){if(r=i,!(e.shouldRetry?e.shouldRetry(i,o):Tt(i))||o===n.maxRetries)throw i;let u=I(i),f=bt(o,u,n),d=e.getDelayMs?.(i,o,f),m=typeof d=="number"&&d>=0?d:f;await new Promise(R=>setTimeout(R,m))}throw r}var Ct=(t,e)=>{if(!t)return 0;let n=e.toLowerCase(),r=n.includes("claude")?3.5:n.includes("gemini")?3.8:(/(^|[/_-])(gpt|o\d)/.test(n),4),o=[...t].filter(s=>s.codePointAt(0)>127).length,i=Math.ceil(t.length/r);return Math.max(1,i+Math.ceil(o*.35))},kt=Object.freeze({id:"xeno-conservative-v1",source:"estimated",countText:Ct,countImage:({detail:t})=>t==="high"?2e3:t==="low"?512:1200,safetyMarginRatio:t=>{let e=t.toLowerCase();return e.includes("claude")?.12:e.includes("gemini")?.14:/(^|[/_-])(gpt|o\d)/.test(e)?.1:.18}});function Ye(t,e,n=kt){return{tokens:Math.max(0,Math.ceil(n.countText(t,e))),source:n.source,adapterId:n.id}}function Mt(t){return t?Math.ceil(t.length/4):0}function Ue(t,e){if(!t||e<=0)return"";let n=e*4;if(t.length<=n)return t;let r=t.slice(0,n),o=r.lastIndexOf(" ");return o>n*.8&&(r=r.slice(0,o)),r+"..."}function Ge(t,e){return Mt(t)<=e}function Ke(t,e){return Math.max(0,e-t)}var _t={"claude-opus-4-6-thinking":{input:15,output:75},"claude-opus-4-6":{input:15,output:75},"claude-opus-4-5-thinking":{input:15,output:75},"claude-sonnet-4-6":{input:3,output:15},"claude-sonnet-4-5-thinking":{input:3,output:15},"claude-sonnet-4-5":{input:3,output:15},"gemini-2.5-flash":{input:.15,output:.6},"gemini-2.5-flash-lite":{input:.075,output:.3},"gemini-3-flash":{input:.15,output:.6},"gemini-3-pro-high":{input:1.25,output:5},"gpt-5":{input:5,output:15},"gpt-5-codex":{input:5,output:15},"gpt-5.1":{input:5,output:15},"gpt-5.1-codex":{input:5,output:15},"gpt-5.2":{input:5,output:15},"gpt-5.2-codex":{input:5,output:15},"kimi-k2":{input:.6,output:2.4},"kimi-k2-thinking":{input:.6,output:2.4},"kimi-k2.5":{input:.6,output:2.4}};function Qe(t,e,n){let r=_t[t];return r?e/1e6*r.input+n/1e6*r.output:0}function Ve(t){return t<=0?"$0.00":t<.001?"<$0.001":t<.01?`$${t.toFixed(4)}`:t<1?`$${t.toFixed(3)}`:`$${t.toFixed(2)}`}import{spawnSync as St}from"node:child_process";function nn(t){let e=process.platform==="win32"?[{command:"clip.exe",args:[]}]:process.platform==="darwin"?[{command:"pbcopy",args:[]}]:[{command:"wl-copy",args:[]},{command:"xclip",args:["-selection","clipboard"]},{command:"xsel",args:["--clipboard","--input"]}],n=null;for(let r of e)try{let o=St(r.command,r.args,{input:t,encoding:"utf8"});if(o.error){n=o.error.message;continue}if(o.status===0)return;n=o.stderr||o.stdout||`exit ${o.status}`}catch(o){n=o instanceof Error?o.message:String(o)}throw new Error(`Clipboard copy failed${n?`: ${n}`:""}`)}function F(t){return t.replace(/\\/g,"/").toLowerCase()}var $t=["golden","solution","answer","expected"],Nt=["expected","golden","reference","answer","answers"],vt=new Set([";","&&","||","|"]);function j(t){return F(t).replace(/^\.\/+/,"").split("/").map(e=>e.trim()).filter(e=>e.length>0)}function Ot(t){return $t.some(e=>t.includes(e))}function D(t){return Nt.some(e=>t.includes(e))}function W(t){return t.split("::",1)[0]?.split("?",1)[0]?.split("#",1)[0]??t}function E(t){let e=t.trim().replace(/^[({]+/,"").replace(/[),;]+$/,"");return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),e}function Lt(t){return t.match(/"[^"]*"|'[^']*'|&&|\|\||[;|]|[^\s;|&]+/g)?.map(E).filter(e=>e.length>0)??[]}function q(t){let e=j(t),n=W(e.at(-1)??"");return D(n)||e.some(r=>D(r))}function X(t){let e=F(E(t));return!e||e==="/dev/null"||e.startsWith("/tmp/")||e.startsWith("tmp/")||e.startsWith("/var/tmp/")||e.startsWith("var/tmp/")?!1:e.startsWith("/app/")||e.startsWith("./")?!0:!e.startsWith("/")}function Bt(t){return/[\\/]/.test(t)||/\.[A-Za-z0-9]{1,8}$/.test(t)}function Pt(t){let e=Lt(t);for(let n=0;n<e.length;n+=1){let r=e[n]?.toLowerCase();if(r!=="cp"&&r!=="mv"&&r!=="rsync"&&r!=="install")continue;let o=[];for(let s=n+1;s<e.length;s+=1){let u=e[s];if(!u||vt.has(u))break;u!=="--"&&(u.startsWith("-")||o.push(u))}if(o.length<2)continue;let i=o.at(-1);if(X(i)){for(let s of o.slice(0,-1))if(Bt(s)&&q(s))return{sourcePath:s,destinationPath:i,operation:r}}}return null}function It(t){let e=[/\bcat\s+(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))\s*>\s*(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i,/\bdd\b[\s\S]*?\bif=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))[\s\S]*?\bof=(?:"([^"]+)"|'([^']+)'|([^\s;&|]+))/i];for(let n of e){let r=t.match(n);if(!r)continue;let o=E(r[1]??r[2]??r[3]??""),i=E(r[4]??r[5]??r[6]??"");if(!(!o||!i)&&q(o)&&X(i))return{sourcePath:o,destinationPath:i,operation:n.source.startsWith("\\bdd")?"dd":"redirect"}}return null}function z(){return process.env.XENO_BENCHMARK_MODE?.trim().toLowerCase()==="terminal-bench"}function H(t){let e=j(t);if(e.includes("solution")||e.includes("xeno-audit")||e.includes(".xeno")&&e.includes("audit"))return!0;let n=W(e.at(-1)??"");return e.includes("tests")&&Ot(n)}function on(t){return z()?t.filter(e=>!H(e)):t}function sn(t){return`Benchmark safety: access to verifier answer or benchmark trace artifacts is blocked (${t}). Use task inputs and verifier logic, not golden, solution, or agent audit files.`}function an(t){return t.split(/[\s"'`;|&]+/).map(e=>e.trim()).filter(e=>e.length>0&&/[\\/]/.test(e)).some(e=>H(e))}function un(t){if(!z())return null;let e=Pt(t)??It(t);return e?["[xeno guidance]",`Benchmark safety blocked ${e.operation} from reference-like source ${e.sourcePath} to protected destination ${e.destinationPath}.`,"Do not copy expected, golden, reference, or answer files over task inputs or submission artifacts to make validation pass.","If a previous check polluted an input, restore/regenerate the original source input, then rerun the actual script or program under test."].join(`
20
+ `):null}function Dt(t){return/^data:([^;,]+)[;,]/i.exec(t.trim())?.[1]}function Ft(t){let e=[];for(let n of t){if(n.type==="text"){e.push(n.text);continue}if(n.type==="image_url"){e.push(`[image ${Dt(n.image_url.url)??"unknown"}]`);continue}let r=n.text??n.data;if(r&&r.trim().length>0){e.push(r);continue}let o=n.uri??n.mimeType??"resource";e.push(`[resource ${o}]`)}return e.join(`
21
21
 
22
- `).trim()}function Y(t){let e=t.trim();return e.length>0?[{type:"text",text:e}]:[]}function rn(t){return typeof t=="string"?t:Pt(t)}function Dt(t){if(t.success)return t.output;let e=[`Error: ${t.error??"Tool execution failed"}`];return t.output.trim().length>0&&e.push(t.output),e.join(`
23
- `)}function on(t){let e=t.assistant_content&&t.assistant_content.length>0?t.assistant_content:typeof t.content=="string"?Y(t.content):t.content,n=t.assistant_only_content??[],r=It(t),o=[...e,...n,...r?[r]:[]];return o.length>0?o:t.content}function It(t){let e=t.operation;if(!e)return null;let n=t.evidence??e.evidence??[],r=n.filter(i=>i.status==="verified").length,o=n.filter(i=>i.status==="failed").length;return{type:"text",text:["[xeno_operation]",`operation_id: ${e.operationId}`,`state: ${e.state}`,`terminal: ${e.terminal?"yes":"no"}`,`completion_policy: ${e.completionPolicy}`,e.taskId?`task_id: ${e.taskId}`:null,e.completionReason?`completion_reason: ${e.completionReason}`:null,`evidence: ${r} verified, ${o} failed`,t.retryable===void 0?null:`retryable: ${t.retryable?"yes":"no"}`,"[/xeno_operation]"].filter(i=>!!i).join(`
24
- `)}}function sn(t){return Array.isArray(t)&&t.some(e=>e.type!=="text")}function an(t){return typeof t=="string"?Y(t):t}function un(t,e){return{type:"tool_result",tool_use_id:t,content:Dt(e),...e.assistantContent&&e.assistantContent.length>0?{assistant_content:e.assistantContent}:{},...e.assistantOnlyContent&&e.assistantOnlyContent.length>0?{assistant_only_content:e.assistantOnlyContent}:{},is_error:!e.success,...e.operation?{operation:e.operation}:{},...e.evidence&&e.evidence.length>0?{evidence:e.evidence}:{},...e.webContext?{web_context:e.webContext}:{},...e.retryable!==void 0?{retryable:e.retryable}:{}}}function ln(t,e={}){for(let n of t){let r=n.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&e.allowTab===!0)&&!((r===10||r===13)&&e.allowLineBreaks===!0))return!0}return!1}export{b as ApiTransientError,ye as HOME_DIR,he as IS_LINUX,ge as IS_MAC,pt as IS_WINDOWS,gt as LogLevel,xe as OS_VERSION,M as PLATFORM,je as accountTextTokens,Xt as appendDurableLine,Jt as appendLine,Ve as benchmarkLeakError,un as buildToolResultBlock,Dt as buildToolResultText,Ye as calculateCost,tn as commandMentionsBenchmarkLeak,Tt as conservativeTokenAccountingAdapter,Ke as copyTextToClipboard,Ce as createSafeRegex,Le as debug,V as decodeTextBuffer,te as deleteDir,Vt as deleteFile,et as detectLineEnding,zt as detectPreferredLineEnding,Z as detectTextEncoding,tt as encodeTextBuffer,k as ensureDir,De as error,kt as estimateTokens,Rt as estimateTokensForModel,Kt as existsSync,Ze as filterBenchmarkLeakPaths,Gt as findSimilarFile,He as fitsInBudget,ze as formatCost,we as getAgentHome,en as getBenchmarkReferenceOverwriteHint,_e as getBoolean,be as getConfigDir,Oe as getLogLevel,Se as getNumber,Ee as getProjectConfigDir,D as getRetryErrorContext,Re as getShellName,Me as getString,on as getToolResultTransportContent,qt as hasDir,ln as hasDisallowedAsciiControlCharacter,jt as hasFile,ue as hasFrontmatter,sn as hasNonTextToolResultContent,wt as hasTransientStatusMention,Be as info,X as isBenchmarkLeakPath,J as isBenchmarkMode,Te as isGitRepo,ct as isPathSafe,bt as isRetryableError,Zt as listDirs,Qt as listFiles,nt as normalizeLineEndings,se as parseDocument,oe as parseJsonLines,Ht as readFileSafe,Ut as readIfExists,rt as readTextFile,Je as remainingBudget,Q as renameReplacingWithRetry,ne as safeJsonParse,re as safeJsonStringify,$e as safeRegexTest,le as safeResolvePath,ve as setLogLevel,ae as stringifyDocument,an as toTransportAssistantBlocks,Pt as toolAssistantContentToText,rn as toolResultContentToText,qe as truncateToTokens,mt as validateRegexPattern,Ae as validateRequired,Pe as warn,Fe as withRetry,G as writeAtomic,Yt as writeTextFile};
22
+ `).trim()}function J(t){let e=t.trim();return e.length>0?[{type:"text",text:e}]:[]}function fn(t){return typeof t=="string"?t:Ft(t)}function jt(t){if(t.success)return t.output;let e=[`Error: ${t.error??"Tool execution failed"}`];return t.output.trim().length>0&&e.push(t.output),e.join(`
23
+ `)}function ln(t){let e=t.assistant_content&&t.assistant_content.length>0?t.assistant_content:typeof t.content=="string"?J(t.content):t.content,n=t.assistant_only_content??[],r=Wt(t),o=[...e,...n,...r?[r]:[]];return o.length>0?o:t.content}function Wt(t){let e=t.operation;if(!e)return null;let n=t.evidence??e.evidence??[],r=n.filter(i=>i.status==="verified").length,o=n.filter(i=>i.status==="failed").length;return{type:"text",text:["[xeno_operation]",`operation_id: ${e.operationId}`,`state: ${e.state}`,`terminal: ${e.terminal?"yes":"no"}`,`completion_policy: ${e.completionPolicy}`,e.taskId?`task_id: ${e.taskId}`:null,e.completionReason?`completion_reason: ${e.completionReason}`:null,`evidence: ${r} verified, ${o} failed`,t.retryable===void 0?null:`retryable: ${t.retryable?"yes":"no"}`,"[/xeno_operation]"].filter(i=>!!i).join(`
24
+ `)}}function dn(t){return Array.isArray(t)&&t.some(e=>e.type!=="text")}function pn(t){return typeof t=="string"?J(t):t}function mn(t,e){return{type:"tool_result",tool_use_id:t,content:jt(e),...e.assistantContent&&e.assistantContent.length>0?{assistant_content:e.assistantContent}:{},...e.assistantOnlyContent&&e.assistantOnlyContent.length>0?{assistant_only_content:e.assistantOnlyContent}:{},is_error:!e.success,...e.operation?{operation:e.operation}:{},...e.evidence&&e.evidence.length>0?{evidence:e.evidence}:{},...e.webContext?{web_context:e.webContext}:{},...e.retryable!==void 0?{retryable:e.retryable}:{}}}function hn(t,e={}){for(let n of t){let r=n.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&e.allowTab===!0)&&!((r===10||r===13)&&e.allowLineBreaks===!0))return!0}return!1}export{b as ApiTransientError,Ee as HOME_DIR,we as IS_LINUX,ye as IS_MAC,pt as IS_WINDOWS,gt as LogLevel,be as OS_VERSION,k as PLATFORM,Ye as accountTextTokens,Ut as appendDurableLine,Yt as appendLine,sn as benchmarkLeakError,mn as buildToolResultBlock,jt as buildToolResultText,Qe as calculateCost,an as commandMentionsBenchmarkLeak,kt as conservativeTokenAccountingAdapter,nn as copyTextToClipboard,ve as createSafeRegex,Ie as debug,V as decodeTextBuffer,re as deleteDir,ne as deleteFile,et as detectLineEnding,Kt as detectPreferredLineEnding,Q as detectTextEncoding,tt as encodeTextBuffer,A as ensureDir,je as error,Mt as estimateTokens,Ct as estimateTokensForModel,Vt as existsSync,on as filterBenchmarkLeakPaths,Zt as findSimilarFile,Ge as fitsInBudget,Ve as formatCost,Re as getAgentHome,un as getBenchmarkReferenceOverwriteHint,Ne as getBoolean,Te as getConfigDir,Pe as getLogLevel,$e as getNumber,Ae as getProjectConfigDir,I as getRetryErrorContext,Ce as getShellName,Se as getString,ln as getToolResultTransportContent,Ht as hasDir,hn as hasDisallowedAsciiControlCharacter,zt as hasFile,le as hasFrontmatter,dn as hasNonTextToolResultContent,Rt as hasTransientStatusMention,De as info,H as isBenchmarkLeakPath,z as isBenchmarkMode,ke as isGitRepo,ct as isPathSafe,Tt as isRetryableError,ee as listDirs,te as listFiles,nt as normalizeLineEndings,qe as normalizeXenoRequestContext,ce as parseDocument,ae as parseJsonLines,Jt as readFileSafe,Qt as readIfExists,rt as readTextFile,Ke as remainingBudget,Z as renameReplacingWithRetry,ie as safeJsonParse,se as safeJsonStringify,Oe as safeRegexTest,pe as safeResolvePath,Be as setLogLevel,fe as stringifyDocument,pn as toTransportAssistantBlocks,Ft as toolAssistantContentToText,fn as toolResultContentToText,Ue as truncateToTokens,mt as validateRegexPattern,_e as validateRequired,Fe as warn,He as withRetry,U as writeAtomic,Gt as writeTextFile,Xe as xenoRequestContextHeaders};
@@ -1 +1 @@
1
- {"inputs":{"src/utils/fs.ts":{"bytes":11685,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/json.ts":{"bytes":804,"imports":[],"format":"esm"},"src/utils/yaml.ts":{"bytes":5506,"imports":[],"format":"esm"},"src/utils/path-security.ts":{"bytes":993,"imports":[{"path":"path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/platform.ts":{"bytes":5600,"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/validation.ts":{"bytes":5336,"imports":[],"format":"esm"},"src/utils/logger.ts":{"bytes":3719,"imports":[],"format":"esm"},"src/utils/retry.ts":{"bytes":11711,"imports":[],"format":"esm"},"src/utils/tokens.ts":{"bytes":3207,"imports":[],"format":"esm"},"src/utils/cost.ts":{"bytes":1826,"imports":[],"format":"esm"},"src/utils/clipboard.ts":{"bytes":1156,"imports":[{"path":"node:child_process","kind":"import-statement","external":true}],"format":"esm"},"src/utils/benchmark-safety.ts":{"bytes":6542,"imports":[],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/utils/index.ts":{"bytes":1453,"imports":[{"path":"src/utils/fs.ts","kind":"import-statement","original":"./fs.js"},{"path":"src/utils/json.ts","kind":"import-statement","original":"./json.js"},{"path":"src/utils/yaml.ts","kind":"import-statement","original":"./yaml.js"},{"path":"src/utils/path-security.ts","kind":"import-statement","original":"./path-security.js"},{"path":"src/utils/platform.ts","kind":"import-statement","original":"./platform.js"},{"path":"src/utils/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/logger.ts","kind":"import-statement","original":"./logger.js"},{"path":"src/utils/retry.ts","kind":"import-statement","original":"./retry.js"},{"path":"src/utils/tokens.ts","kind":"import-statement","original":"./tokens.js"},{"path":"src/utils/cost.ts","kind":"import-statement","original":"./cost.js"},{"path":"src/utils/clipboard.ts","kind":"import-statement","original":"./clipboard.js"},{"path":"src/utils/benchmark-safety.ts","kind":"import-statement","original":"./benchmark-safety.js"},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"./tool-result-content.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"./text-security.js"}],"format":"esm"}},"outputs":{"dist/utils/index.cjs":{"imports":[{"path":"node:fs","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"node:os","kind":"require-call","external":true},{"path":"node:child_process","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"node:child_process","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/utils/index.ts","inputs":{"src/utils/index.ts":{"bytesInOutput":1976},"src/utils/fs.ts":{"bytesInOutput":4478},"src/utils/json.ts":{"bytesInOutput":239},"src/utils/yaml.ts":{"bytesInOutput":2639},"src/utils/path-security.ts":{"bytesInOutput":313},"src/utils/platform.ts":{"bytesInOutput":687},"src/utils/validation.ts":{"bytesInOutput":1423},"src/utils/logger.ts":{"bytesInOutput":913},"src/utils/retry.ts":{"bytesInOutput":3188},"src/utils/tokens.ts":{"bytesInOutput":904},"src/utils/cost.ts":{"bytesInOutput":933},"src/utils/clipboard.ts":{"bytesInOutput":604},"src/utils/benchmark-safety.ts":{"bytesInOutput":3108},"src/utils/tool-result-content.ts":{"bytesInOutput":2118},"src/utils/text-security.ts":{"bytesInOutput":180}},"bytes":25666}}}
1
+ {"inputs":{"src/utils/fs.ts":{"bytes":11685,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/json.ts":{"bytes":804,"imports":[],"format":"esm"},"src/utils/yaml.ts":{"bytes":5506,"imports":[],"format":"esm"},"src/utils/path-security.ts":{"bytes":993,"imports":[{"path":"path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/platform.ts":{"bytes":5600,"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/validation.ts":{"bytes":5336,"imports":[],"format":"esm"},"src/utils/logger.ts":{"bytes":3719,"imports":[],"format":"esm"},"src/utils/request-context.ts":{"bytes":3679,"imports":[],"format":"esm"},"src/utils/retry.ts":{"bytes":11711,"imports":[],"format":"esm"},"src/utils/tokens.ts":{"bytes":3207,"imports":[],"format":"esm"},"src/utils/cost.ts":{"bytes":1826,"imports":[],"format":"esm"},"src/utils/clipboard.ts":{"bytes":1156,"imports":[{"path":"node:child_process","kind":"import-statement","external":true}],"format":"esm"},"src/utils/benchmark-safety.ts":{"bytes":6542,"imports":[],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/utils/index.ts":{"bytes":1491,"imports":[{"path":"src/utils/fs.ts","kind":"import-statement","original":"./fs.js"},{"path":"src/utils/json.ts","kind":"import-statement","original":"./json.js"},{"path":"src/utils/yaml.ts","kind":"import-statement","original":"./yaml.js"},{"path":"src/utils/path-security.ts","kind":"import-statement","original":"./path-security.js"},{"path":"src/utils/platform.ts","kind":"import-statement","original":"./platform.js"},{"path":"src/utils/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/logger.ts","kind":"import-statement","original":"./logger.js"},{"path":"src/utils/request-context.ts","kind":"import-statement","original":"./request-context.js"},{"path":"src/utils/retry.ts","kind":"import-statement","original":"./retry.js"},{"path":"src/utils/tokens.ts","kind":"import-statement","original":"./tokens.js"},{"path":"src/utils/cost.ts","kind":"import-statement","original":"./cost.js"},{"path":"src/utils/clipboard.ts","kind":"import-statement","original":"./clipboard.js"},{"path":"src/utils/benchmark-safety.ts","kind":"import-statement","original":"./benchmark-safety.js"},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"./tool-result-content.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"./text-security.js"}],"format":"esm"}},"outputs":{"dist/utils/index.cjs":{"imports":[{"path":"node:fs","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"node:os","kind":"require-call","external":true},{"path":"node:child_process","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"node:child_process","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/utils/index.ts","inputs":{"src/utils/index.ts":{"bytesInOutput":2044},"src/utils/fs.ts":{"bytesInOutput":4478},"src/utils/json.ts":{"bytesInOutput":239},"src/utils/yaml.ts":{"bytesInOutput":2639},"src/utils/path-security.ts":{"bytesInOutput":313},"src/utils/platform.ts":{"bytesInOutput":687},"src/utils/validation.ts":{"bytesInOutput":1423},"src/utils/logger.ts":{"bytesInOutput":913},"src/utils/request-context.ts":{"bytesInOutput":1241},"src/utils/retry.ts":{"bytesInOutput":3188},"src/utils/tokens.ts":{"bytesInOutput":904},"src/utils/cost.ts":{"bytesInOutput":933},"src/utils/clipboard.ts":{"bytesInOutput":604},"src/utils/benchmark-safety.ts":{"bytesInOutput":3108},"src/utils/tool-result-content.ts":{"bytesInOutput":2118},"src/utils/text-security.ts":{"bytesInOutput":180}},"bytes":27029}}}
@@ -1 +1 @@
1
- {"inputs":{"src/utils/fs.ts":{"bytes":11685,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/json.ts":{"bytes":804,"imports":[],"format":"esm"},"src/utils/yaml.ts":{"bytes":5506,"imports":[],"format":"esm"},"src/utils/path-security.ts":{"bytes":993,"imports":[{"path":"path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/platform.ts":{"bytes":5600,"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/validation.ts":{"bytes":5336,"imports":[],"format":"esm"},"src/utils/logger.ts":{"bytes":3719,"imports":[],"format":"esm"},"src/utils/retry.ts":{"bytes":11711,"imports":[],"format":"esm"},"src/utils/tokens.ts":{"bytes":3207,"imports":[],"format":"esm"},"src/utils/cost.ts":{"bytes":1826,"imports":[],"format":"esm"},"src/utils/clipboard.ts":{"bytes":1156,"imports":[{"path":"node:child_process","kind":"import-statement","external":true}],"format":"esm"},"src/utils/benchmark-safety.ts":{"bytes":6542,"imports":[],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/utils/index.ts":{"bytes":1453,"imports":[{"path":"src/utils/fs.ts","kind":"import-statement","original":"./fs.js"},{"path":"src/utils/json.ts","kind":"import-statement","original":"./json.js"},{"path":"src/utils/yaml.ts","kind":"import-statement","original":"./yaml.js"},{"path":"src/utils/path-security.ts","kind":"import-statement","original":"./path-security.js"},{"path":"src/utils/platform.ts","kind":"import-statement","original":"./platform.js"},{"path":"src/utils/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/logger.ts","kind":"import-statement","original":"./logger.js"},{"path":"src/utils/retry.ts","kind":"import-statement","original":"./retry.js"},{"path":"src/utils/tokens.ts","kind":"import-statement","original":"./tokens.js"},{"path":"src/utils/cost.ts","kind":"import-statement","original":"./cost.js"},{"path":"src/utils/clipboard.ts","kind":"import-statement","original":"./clipboard.js"},{"path":"src/utils/benchmark-safety.ts","kind":"import-statement","original":"./benchmark-safety.js"},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"./tool-result-content.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"./text-security.js"}],"format":"esm"}},"outputs":{"dist/utils/index.js":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true}],"exports":["ApiTransientError","HOME_DIR","IS_LINUX","IS_MAC","IS_WINDOWS","LogLevel","OS_VERSION","PLATFORM","accountTextTokens","appendDurableLine","appendLine","benchmarkLeakError","buildToolResultBlock","buildToolResultText","calculateCost","commandMentionsBenchmarkLeak","conservativeTokenAccountingAdapter","copyTextToClipboard","createSafeRegex","debug","decodeTextBuffer","deleteDir","deleteFile","detectLineEnding","detectPreferredLineEnding","detectTextEncoding","encodeTextBuffer","ensureDir","error","estimateTokens","estimateTokensForModel","existsSync","filterBenchmarkLeakPaths","findSimilarFile","fitsInBudget","formatCost","getAgentHome","getBenchmarkReferenceOverwriteHint","getBoolean","getConfigDir","getLogLevel","getNumber","getProjectConfigDir","getRetryErrorContext","getShellName","getString","getToolResultTransportContent","hasDir","hasDisallowedAsciiControlCharacter","hasFile","hasFrontmatter","hasNonTextToolResultContent","hasTransientStatusMention","info","isBenchmarkLeakPath","isBenchmarkMode","isGitRepo","isPathSafe","isRetryableError","listDirs","listFiles","normalizeLineEndings","parseDocument","parseJsonLines","readFileSafe","readIfExists","readTextFile","remainingBudget","renameReplacingWithRetry","safeJsonParse","safeJsonStringify","safeRegexTest","safeResolvePath","setLogLevel","stringifyDocument","toTransportAssistantBlocks","toolAssistantContentToText","toolResultContentToText","truncateToTokens","validateRegexPattern","validateRequired","warn","withRetry","writeAtomic","writeTextFile"],"entryPoint":"src/utils/index.ts","inputs":{"src/utils/fs.ts":{"bytesInOutput":4427},"src/utils/index.ts":{"bytesInOutput":0},"src/utils/json.ts":{"bytesInOutput":239},"src/utils/yaml.ts":{"bytesInOutput":2639},"src/utils/path-security.ts":{"bytesInOutput":311},"src/utils/platform.ts":{"bytesInOutput":630},"src/utils/validation.ts":{"bytesInOutput":1425},"src/utils/logger.ts":{"bytesInOutput":915},"src/utils/retry.ts":{"bytesInOutput":3185},"src/utils/tokens.ts":{"bytesInOutput":904},"src/utils/cost.ts":{"bytesInOutput":933},"src/utils/clipboard.ts":{"bytesInOutput":601},"src/utils/benchmark-safety.ts":{"bytesInOutput":3090},"src/utils/tool-result-content.ts":{"bytesInOutput":2115},"src/utils/text-security.ts":{"bytesInOutput":180}},"bytes":23461}}}
1
+ {"inputs":{"src/utils/fs.ts":{"bytes":11685,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/json.ts":{"bytes":804,"imports":[],"format":"esm"},"src/utils/yaml.ts":{"bytes":5506,"imports":[],"format":"esm"},"src/utils/path-security.ts":{"bytes":993,"imports":[{"path":"path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/platform.ts":{"bytes":5600,"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/utils/validation.ts":{"bytes":5336,"imports":[],"format":"esm"},"src/utils/logger.ts":{"bytes":3719,"imports":[],"format":"esm"},"src/utils/request-context.ts":{"bytes":3679,"imports":[],"format":"esm"},"src/utils/retry.ts":{"bytes":11711,"imports":[],"format":"esm"},"src/utils/tokens.ts":{"bytes":3207,"imports":[],"format":"esm"},"src/utils/cost.ts":{"bytes":1826,"imports":[],"format":"esm"},"src/utils/clipboard.ts":{"bytes":1156,"imports":[{"path":"node:child_process","kind":"import-statement","external":true}],"format":"esm"},"src/utils/benchmark-safety.ts":{"bytes":6542,"imports":[],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/utils/index.ts":{"bytes":1491,"imports":[{"path":"src/utils/fs.ts","kind":"import-statement","original":"./fs.js"},{"path":"src/utils/json.ts","kind":"import-statement","original":"./json.js"},{"path":"src/utils/yaml.ts","kind":"import-statement","original":"./yaml.js"},{"path":"src/utils/path-security.ts","kind":"import-statement","original":"./path-security.js"},{"path":"src/utils/platform.ts","kind":"import-statement","original":"./platform.js"},{"path":"src/utils/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/logger.ts","kind":"import-statement","original":"./logger.js"},{"path":"src/utils/request-context.ts","kind":"import-statement","original":"./request-context.js"},{"path":"src/utils/retry.ts","kind":"import-statement","original":"./retry.js"},{"path":"src/utils/tokens.ts","kind":"import-statement","original":"./tokens.js"},{"path":"src/utils/cost.ts","kind":"import-statement","original":"./cost.js"},{"path":"src/utils/clipboard.ts","kind":"import-statement","original":"./clipboard.js"},{"path":"src/utils/benchmark-safety.ts","kind":"import-statement","original":"./benchmark-safety.js"},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"./tool-result-content.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"./text-security.js"}],"format":"esm"}},"outputs":{"dist/utils/index.js":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true}],"exports":["ApiTransientError","HOME_DIR","IS_LINUX","IS_MAC","IS_WINDOWS","LogLevel","OS_VERSION","PLATFORM","accountTextTokens","appendDurableLine","appendLine","benchmarkLeakError","buildToolResultBlock","buildToolResultText","calculateCost","commandMentionsBenchmarkLeak","conservativeTokenAccountingAdapter","copyTextToClipboard","createSafeRegex","debug","decodeTextBuffer","deleteDir","deleteFile","detectLineEnding","detectPreferredLineEnding","detectTextEncoding","encodeTextBuffer","ensureDir","error","estimateTokens","estimateTokensForModel","existsSync","filterBenchmarkLeakPaths","findSimilarFile","fitsInBudget","formatCost","getAgentHome","getBenchmarkReferenceOverwriteHint","getBoolean","getConfigDir","getLogLevel","getNumber","getProjectConfigDir","getRetryErrorContext","getShellName","getString","getToolResultTransportContent","hasDir","hasDisallowedAsciiControlCharacter","hasFile","hasFrontmatter","hasNonTextToolResultContent","hasTransientStatusMention","info","isBenchmarkLeakPath","isBenchmarkMode","isGitRepo","isPathSafe","isRetryableError","listDirs","listFiles","normalizeLineEndings","normalizeXenoRequestContext","parseDocument","parseJsonLines","readFileSafe","readIfExists","readTextFile","remainingBudget","renameReplacingWithRetry","safeJsonParse","safeJsonStringify","safeRegexTest","safeResolvePath","setLogLevel","stringifyDocument","toTransportAssistantBlocks","toolAssistantContentToText","toolResultContentToText","truncateToTokens","validateRegexPattern","validateRequired","warn","withRetry","writeAtomic","writeTextFile","xenoRequestContextHeaders"],"entryPoint":"src/utils/index.ts","inputs":{"src/utils/fs.ts":{"bytesInOutput":4427},"src/utils/index.ts":{"bytesInOutput":0},"src/utils/json.ts":{"bytesInOutput":239},"src/utils/yaml.ts":{"bytesInOutput":2639},"src/utils/path-security.ts":{"bytesInOutput":311},"src/utils/platform.ts":{"bytesInOutput":630},"src/utils/validation.ts":{"bytesInOutput":1425},"src/utils/logger.ts":{"bytesInOutput":915},"src/utils/request-context.ts":{"bytesInOutput":1241},"src/utils/retry.ts":{"bytesInOutput":3185},"src/utils/tokens.ts":{"bytesInOutput":904},"src/utils/cost.ts":{"bytesInOutput":933},"src/utils/clipboard.ts":{"bytesInOutput":601},"src/utils/benchmark-safety.ts":{"bytesInOutput":3090},"src/utils/tool-result-content.ts":{"bytesInOutput":2115},"src/utils/text-security.ts":{"bytesInOutput":180}},"bytes":24768}}}