@kodax-ai/kodax 0.7.69 → 0.7.71

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 (87) hide show
  1. package/CHANGELOG.md +187 -1
  2. package/LICENSE +158 -191
  3. package/README.md +100 -17
  4. package/README_CN.md +77 -11
  5. package/config-templates/integrations/a2a.example.jsonc +62 -18
  6. package/dist/chunks/{agent-DQRXT6M7.js → agent-X2EWQADL.js} +1 -1
  7. package/dist/chunks/argument-completer-BLNXDO2F.js +2 -0
  8. package/dist/chunks/chunk-23X6REO4.js +46 -0
  9. package/dist/chunks/{chunk-Y4WOTWUC.js → chunk-44QXPEEE.js} +1 -1
  10. package/dist/chunks/chunk-4DY756KL.js +70 -0
  11. package/dist/chunks/{chunk-AWMTNUDS.js → chunk-52JSZ77P.js} +1 -1
  12. package/dist/chunks/{chunk-I4TPQEJN.js → chunk-64NQBOSN.js} +1 -1
  13. package/dist/chunks/{chunk-URC6ZI6P.js → chunk-A2TFSV5M.js} +1 -1
  14. package/dist/chunks/{chunk-ZG4DMYBS.js → chunk-A574DBTV.js} +2 -2
  15. package/dist/chunks/{chunk-VAZ25MDX.js → chunk-F7KGYHJ3.js} +2 -2
  16. package/dist/chunks/{chunk-M7TCFYTO.js → chunk-GVTM4Z6O.js} +66 -22
  17. package/dist/chunks/{chunk-PA76WUBL.js → chunk-PHH4TRGF.js} +2 -2
  18. package/dist/chunks/chunk-PVUXONQB.js +366 -0
  19. package/dist/chunks/{chunk-WW2O2DEP.js → chunk-SX2WFHIS.js} +1 -1
  20. package/dist/chunks/{chunk-4WIODYOH.js → chunk-T7LYK53M.js} +2 -2
  21. package/dist/chunks/{chunk-F7C7J6IM.js → chunk-VRSVNU2Y.js} +3 -3
  22. package/dist/chunks/chunk-Y5XKAN7C.js +755 -0
  23. package/dist/chunks/{chunk-NGJURAY5.js → chunk-Z535BARK.js} +4 -4
  24. package/dist/chunks/chunk-ZJIMT5I3.js +78 -0
  25. package/dist/chunks/compaction-config-5KKKXYFT.js +2 -0
  26. package/dist/chunks/{construction-bootstrap-GH6RW6ST.js → construction-bootstrap-OXDDDW6O.js} +1 -1
  27. package/dist/chunks/{dist-DRBKYVHF.js → dist-GOUP4YVE.js} +1 -1
  28. package/dist/chunks/{dist-RWL2RBO4.js → dist-IXJRJ27U.js} +1 -1
  29. package/dist/chunks/host-VRKDAN26.js +2 -0
  30. package/dist/chunks/run-manager-Z3W6MDO7.js +2 -0
  31. package/dist/chunks/{utils-QYE5Y73D.js → utils-CFOXDCB5.js} +1 -1
  32. package/dist/index.d.ts +18 -18
  33. package/dist/index.js +6 -6
  34. package/dist/kodax_cli.js +1365 -1296
  35. package/dist/provider-capabilities.json +101 -57
  36. package/dist/runtime-worker.js +1224 -1156
  37. package/dist/sdk-a2a.d.ts +187 -22
  38. package/dist/sdk-a2a.js +8 -7
  39. package/dist/sdk-agent.d.ts +49 -20
  40. package/dist/sdk-agent.js +1 -1
  41. package/dist/sdk-coding.d.ts +33 -25
  42. package/dist/sdk-coding.js +1 -1
  43. package/dist/sdk-experimental-memory.d.ts +1 -1
  44. package/dist/sdk-experimental-memory.js +1 -1
  45. package/dist/sdk-llm.d.ts +7 -7
  46. package/dist/sdk-llm.js +1 -1
  47. package/dist/sdk-mcp.d.ts +2 -2
  48. package/dist/sdk-mcp.js +1 -1
  49. package/dist/sdk-media.d.ts +1 -1
  50. package/dist/sdk-media.js +1 -1
  51. package/dist/sdk-repl.d.ts +17 -17
  52. package/dist/sdk-repl.js +1 -1
  53. package/dist/sdk-runtime.d.ts +96 -17
  54. package/dist/sdk-runtime.js +1 -1
  55. package/dist/sdk-session.d.ts +7 -7
  56. package/dist/sdk-session.js +1 -1
  57. package/dist/sdk-skills.js +1 -1
  58. package/dist/semantic-worker.js +10 -10
  59. package/dist/types-chunks/{base.d-CYjtB68X.d.ts → base.d-Cz_rwpOi.d.ts} +2 -1
  60. package/dist/types-chunks/{bash-prefix-extractor.d-BkIA8Wto.d.ts → bash-prefix-extractor.d-YoiZl5yt.d.ts} +15 -5
  61. package/dist/types-chunks/{capability-learning.d-WtsyRv3O.d.ts → capability-learning.d-_lR0J4iR.d.ts} +1 -1
  62. package/dist/types-chunks/{capability.d-3C62G8Eq.d.ts → capability.d-K664nHOS.d.ts} +21 -6
  63. package/dist/types-chunks/{capsule.d-xJvfh4YR.d.ts → capsule.d-CK5Pfz1k.d.ts} +3 -3
  64. package/dist/types-chunks/{commands.d-DkPfcQWG.d.ts → commands.d-D6g2jq8V.d.ts} +4 -4
  65. package/dist/types-chunks/{guardrail.d-R7AiGfrI.d.ts → guardrail.d-DdeDWnVu.d.ts} +3 -3
  66. package/dist/types-chunks/{guardrail.d-6ZDbNbHO.d.ts → guardrail.d-DilYC1dh.d.ts} +1 -1
  67. package/dist/types-chunks/{manager.d-CoEuPRAo.d.ts → manager.d-B67TmPO1.d.ts} +27 -3
  68. package/dist/types-chunks/{public-api.d-7G4--RZE.d.ts → public-api.d-BvCp5VkW.d.ts} +3 -3
  69. package/dist/types-chunks/{resolver.d-CIVoGc97.d.ts → resolver.d-ssgNSlrh.d.ts} +2 -2
  70. package/dist/types-chunks/{run-manager.d-BaXtkryp.d.ts → run-manager.d-DxU3SSGR.d.ts} +1 -1
  71. package/dist/types-chunks/{sdk-session-BQccrODn.d.ts → sdk-session-wGpa7X_U.d.ts} +4 -4
  72. package/dist/types-chunks/{types.d-CJR7t6iW.d.ts → types.d-CEZZSY9s.d.ts} +2 -2
  73. package/dist/types-chunks/{types.d-BtC4yLYO.d.ts → types.d-CRCaLt_s.d.ts} +55 -7
  74. package/dist/types-chunks/{types.d-TTvpAGWf.d.ts → types.d-Cqaw71Ax.d.ts} +4 -2
  75. package/dist/types-chunks/{types.d-C9YHEAmA.d.ts → types.d-CzsLFqmf.d.ts} +5 -5
  76. package/dist/types-chunks/{utils.d-BbB5jzi1.d.ts → utils.d-Cb6vdvFM.d.ts} +5 -5
  77. package/docs/SDK_EMBEDDER_GUIDE.md +357 -55
  78. package/package.json +5 -2
  79. package/dist/chunks/argument-completer-RSK6CCGP.js +0 -2
  80. package/dist/chunks/chunk-NGHQIGVW.js +0 -46
  81. package/dist/chunks/chunk-PQ3XUSY2.js +0 -357
  82. package/dist/chunks/chunk-UJEMSPM5.js +0 -78
  83. package/dist/chunks/chunk-VYKFM3TB.js +0 -751
  84. package/dist/chunks/chunk-Z4PPLJF2.js +0 -60
  85. package/dist/chunks/compaction-config-ABLL6UH3.js +0 -2
  86. package/dist/chunks/host-7SAB4WEC.js +0 -2
  87. package/dist/chunks/run-manager-XMDKTONJ.js +0 -2
@@ -0,0 +1,78 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{a as i}from"./chunk-ONUPGMER.js";import{AsyncLocalStorage as Ho}from"node:async_hooks";var He=new Ho;function Jo(e,t,n){if(!e||!t)throw new Error("Provider credential scope requires non-empty values.");return He.run({provider:e,credential:t},n)}i(Jo,"runWithProviderCredential");function qo(e){let t=He.getStore();return t?.provider===e?t.credential:void 0}i(qo,"getScopedProviderCredential");function fe(e,t){let n=He.getStore();return n?n.provider===e?n.credential:void 0:t}i(fe,"resolveProviderCredential");function Yo(e){let t=He.getStore()?.credential;return t?Re(e,t,new WeakMap):e}i(Yo,"redactScopedProviderCredential");function Re(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let o=n.get(e);if(o!==void 0)return o;if(e instanceof Error){let s=new Error(Re(e.message,t,n));return n.set(e,s),s.name=e.name,e.stack!==void 0&&(s.stack=Re(e.stack,t,n)),s}if(Array.isArray(e)){let s=[];n.set(e,s);for(let a of e)s.push(Re(a,t,n));return s}let r={};n.set(e,r);for(let[s,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let u=s.split(t).join("[REDACTED_CREDENTIAL]");r[u]=Re(a.value,t,n)}return r}i(Re,"redactCredentialValue");var Q=class extends Error{static{i(this,"KodaXError")}code;constructor(t,n="KODAX_ERROR"){super(t),this.code=n,this.name="KodaXError"}},M=class extends Q{static{i(this,"KodaXProviderError")}provider;constructor(t,n){super(t,"PROVIDER_ERROR"),this.provider=n,this.name="KodaXProviderError"}},Me=class extends Q{static{i(this,"KodaXRateLimitError")}retryAfter;constructor(t,n){super(t,"RATE_LIMIT_ERROR"),this.retryAfter=n,this.name="KodaXRateLimitError"}},$t=class extends Q{static{i(this,"KodaXNetworkError")}isTimeout;constructor(t,n=!1){super(t,"NETWORK_ERROR"),this.isTimeout=n,this.name="KodaXNetworkError"}},Je=class extends M{static{i(this,"KodaXReasoningEffortRejectedError")}rejectedEffort;model;constructor(t,n,o,r){super(t,n),this.rejectedEffort=o,this.model=r,this.name="KodaXReasoningEffortRejectedError"}},Nt=class extends Q{static{i(this,"KodaXToolCallIdError")}constructor(t){super(t,"TOOL_CALL_ID_ERROR"),this.name="KodaXToolCallIdError"}};var Lt=32768,Qo=32e3,Zo=64e3,er=.5;function Ae(e,t,n={}){if(e===void 0)return;let o=n.allowZero===!0;if(!Number.isFinite(e)||(o?e<0:e<=0)){let r=o?"a non-negative finite number":"a positive finite number";throw new Error(`${t} must be ${r}`)}return e===0?0:Math.max(1,Math.floor(e*1e3))}i(Ae,"timeoutSecToMs");function tr(e){if(e===void 0||e.trim().length===0)return;let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return Math.max(1,Math.floor(t*1e3))}i(tr,"parseTimeoutSecEnvMs");function nr(e){if(!e)return;let t={requestTimeoutMs:Ae(e.requestTimeoutSec,"timeouts.llm.requestTimeoutSec"),streamIdleTimeoutMs:Ae(e.streamIdleTimeoutSec,"timeouts.llm.streamIdleTimeoutSec",{allowZero:!0}),chunkTimeoutMs:Ae(e.chunkTimeoutSec,"timeouts.llm.chunkTimeoutSec"),maxRetryDelayMs:Ae(e.maxRetryDelaySec,"timeouts.llm.maxRetryDelaySec")};return Object.values(t).some(o=>o!==void 0)?t:void 0}i(nr,"resolveLlmTimeoutConfig");function qe(e,t){return`${e}/${t??""}`}i(qe,"capabilityCacheKey");function Bt(e,t){if(t.length===0)return e;let n=new Set(t),o=e.defaultEffort!==void 0&&n.has(e.defaultEffort);return{...e,...o?{defaultEffort:void 0}:{},supportedEfforts:e.supportedEfforts?.filter(r=>!n.has(r.value)),localRejectEfforts:Array.from(new Set([...e.localRejectEfforts??[],...t]))}}i(Bt,"narrowReasoningProfile");function or(e,t,n){return e[qe(t,n)]?.rejected??[]}i(or,"getRejectedEfforts");function rr(e,t,n,o,r,s){let a=qe(t,n),u=e[a],l=u?.rejected.includes(o)?u.rejected:[...u?.rejected??[],o];return{...e,[a]:{rejected:l,source:r,updatedAt:s}}}i(rr,"addRejectedEffort");function ir(e,t,n){if(!t)return{};let o={...e};return delete o[qe(t,n)],o}i(ir,"removeCacheEntry");function sr(e){if(!e||typeof e!="object")return{};let t={};for(let[n,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let r=o,s=Array.isArray(r.rejected)?r.rejected.filter(l=>typeof l=="string"):[],a=r.source==="probed"?"probed":"observed",u=typeof r.updatedAt=="string"?r.updatedAt:"";t[n]={rejected:s,source:a,updatedAt:u}}return t}i(sr,"sanitizeCapabilityCache");var ar=["off","auto","quick","balanced","deep"],de=["auto","none","low","medium","high"],An={low:6e3,medium:1e4,high:2e4},Dn=4096,jt=[{value:"none",description:"Disable thinking"},{value:"minimal",description:"Disable thinking",isUserVisible:!1},{value:"low",description:"Enable thinking"},{value:"medium",description:"Enable thinking",isDefault:!0},{value:"high",description:"Enable thinking"},{value:"xhigh",description:"Enable thinking"},{value:"max",description:"Enable thinking"}],Ft=[{value:"none",description:"Disable thinking"},{value:"minimal",description:"Disable thinking",isUserVisible:!1},{value:"low",description:"Alias to high"},{value:"medium",description:"Alias to high"},{value:"high",description:"High reasoning",isDefault:!0},{value:"xhigh",description:"Alias to max"},{value:"max",description:"Maximum reasoning"}],ur=[{value:"low",description:"Thinking is always on"},{value:"medium",description:"Thinking is always on"},{value:"high",description:"Thinking is always on",isDefault:!0},{value:"xhigh",description:"Thinking is always on"},{value:"max",description:"Thinking is always on"}];function Qe(e,t={}){return{...cr(e),...t,reasoningPreset:e}}i(Qe,"createReasoningProfileFromPreset");function cr(e){switch(e){case"zai-glm-5.2":return{reasoningPreset:e,effortStrategy:"openai-chat-effort",thinkingStrategy:"provider-toggle",defaultEffort:"max",supportedEfforts:Ft,effortAliases:{low:"high",medium:"high",xhigh:"max"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"deepseek-v4-openai":return{reasoningPreset:e,effortStrategy:"openai-chat-effort",thinkingStrategy:"provider-toggle",defaultEffort:"high",supportedEfforts:Ft,effortAliases:{low:"high",medium:"high",xhigh:"max"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"deepseek-v4-anthropic":return{reasoningPreset:e,effortStrategy:"anthropic-output-effort",thinkingStrategy:"provider-toggle",defaultEffort:"high",supportedEfforts:Ft,effortAliases:{low:"high",medium:"high",xhigh:"max"},disabledEfforts:["none","minimal"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"zai-glm-toggle":case"deepseek-toggle":case"kimi-hybrid-toggle":case"mimo-v2.5-toggle":case"generic-thinking-toggle":return{reasoningPreset:e,effortStrategy:"provider-toggle",thinkingStrategy:"provider-toggle",supportedEfforts:jt,disabledEfforts:["none","minimal"],supportsDisabledThinking:!0};case"kimi-k3":return{reasoningPreset:e,effortStrategy:"provider-toggle",thinkingStrategy:"provider-toggle",defaultEffort:"max",supportedEfforts:[{value:"none"},{value:"low",isUserVisible:!1},{value:"high",isUserVisible:!1},{value:"max",isDefault:!0}],effortAliases:{minimal:"low",minimum:"low",light:"low",medium:"high",xhigh:"max",ultra:"max"},disabledEfforts:["none"],supportsReasoningEffort:!0,supportsDisabledThinking:!0};case"kimi-k2.7-code":case"minimax-m2-always":return{reasoningPreset:e,effortStrategy:"prompt-only",defaultEffort:"high",supportedEfforts:ur,localRejectEfforts:["none","minimal"]};case"minimax-m3":return{reasoningPreset:e,effortStrategy:"provider-toggle",thinkingStrategy:"anthropic-adaptive",supportedEfforts:jt,disabledEfforts:["none","minimal"],supportsAdaptiveThinking:!0,supportsDisabledThinking:!0};case"qwen-hybrid-thinking":return{reasoningPreset:e,effortStrategy:"provider-budget",thinkingStrategy:"provider-budget",defaultEffort:"medium",supportedEfforts:jt,budgetByEffort:{low:6e3,medium:1e4,high:16e3,xhigh:24e3,max:32e3},disabledEfforts:["none","minimal"],supportsManualThinkingBudget:!0,supportsDisabledThinking:!0};case"claude-adaptive-xhigh":return{reasoningPreset:e,effortStrategy:"anthropic-output-effort",thinkingStrategy:"anthropic-adaptive",defaultEffort:"high",supportedEfforts:[{value:"low"},{value:"medium"},{value:"high",isDefault:!0},{value:"xhigh"},{value:"max"}],supportsReasoningEffort:!0,supportsAdaptiveThinking:!0};case"claude-adaptive-max":return{reasoningPreset:e,effortStrategy:"anthropic-output-effort",thinkingStrategy:"anthropic-adaptive",defaultEffort:"high",supportedEfforts:[{value:"low"},{value:"medium"},{value:"high",isDefault:!0},{value:"max"}],supportsReasoningEffort:!0,supportsAdaptiveThinking:!0};case"anthropic-budget":return{reasoningPreset:e,effortStrategy:"provider-budget",thinkingStrategy:"anthropic-budget",defaultEffort:"medium",supportedEfforts:[{value:"none"},{value:"low"},{value:"medium",isDefault:!0},{value:"high"}],budgetByEffort:{low:6e3,medium:1e4,high:16e3},disabledEfforts:["none"],supportsManualThinkingBudget:!0,supportsDisabledThinking:!0};case"openai-chat-reasoning":case"openai-responses-reasoning":return{reasoningPreset:e,effortStrategy:e==="openai-chat-reasoning"?"openai-chat-effort":"openai-responses-effort",defaultEffort:"medium",supportedEfforts:[{value:"none"},{value:"minimal"},{value:"low"},{value:"medium",isDefault:!0},{value:"high"},{value:"xhigh"}],disabledEfforts:["none"],supportsReasoningEffort:!0,supportsReasoningSummary:!0,supportsEncryptedReasoningReplay:!0};case"codex-cli-effort":return{reasoningPreset:e,effortStrategy:"codex-cli-config",defaultEffort:"medium",supportedEfforts:[{value:"none"},{value:"minimal"},{value:"low"},{value:"medium",isDefault:!0},{value:"high"},{value:"xhigh"}],allowCustomEffort:!0,supportsReasoningEffort:!0};case"none":return{reasoningPreset:e,effortStrategy:"none",thinkingStrategy:"none"}}}i(cr,"createBaseReasoningProfileFromPreset");function Ut(e){return e.reasoningCapability?e.reasoningCapability:e.supportsThinking?"native-toggle":"prompt-only"}i(Ut,"getReasoningCapability");function pe(e){return Ze(e).enabled}i(pe,"isReasoningEnabled");function Ze(e){if(typeof e=="boolean")return{enabled:e,effort:e?"auto":"none",effortSource:"legacy",taskType:"unknown",executionMode:"implementation"};let t=e?.effort?$e(e.effort):void 0,n=t??(e?.enabled===!0?"auto":"none");return{enabled:n!=="none",effort:n,effortSource:t!==void 0?"explicit":e===void 0?"omitted":"legacy",taskType:e?.taskType??"unknown",executionMode:e?.executionMode??"implementation"}}i(Ze,"normalizeReasoningRequest");function $e(e){let t=e.trim().toLowerCase();if(!t)throw new Error("Reasoning effort cannot be empty.");if(/\s/.test(t))throw new Error(`Reasoning effort cannot contain whitespace: "${e}".`);return t==="off"?"none":t}i($e,"normalizeReasoningEffortValue");function In(e){switch(e){case"off":return"none";case"auto":return"auto";case"quick":return"low";case"balanced":return"medium";case"deep":return"high"}}i(In,"mapLegacyReasoningModeToEffortIntent");function lr(e){switch(e){case"none":return"off";case"auto":return"auto";case"low":return"quick";case"medium":return"balanced";case"high":return"deep";default:return}}i(lr,"effortToLegacyReasoningMode");function On(e){let t=e?.trim();if(!t)return{kind:"unset"};let n=$e(t);return n==="auto"||n==="unset"?{kind:"clear"}:{kind:"value",value:n}}i(On,"parseReasoningEffortEnv");function Ne(e){let t=On(e.envEffort),n=[];De(n,e.explicitEffort,"explicit",!0),t.kind==="value"&&n.push({value:t.value,source:"env",isExplicit:!0}),De(n,e.sessionEffort,"session",!1),e.legacyReasoningMode?n.push({value:In(e.legacyReasoningMode),source:"legacy",isExplicit:!1}):e.thinking!==void 0&&n.push({value:e.thinking?"auto":"none",source:"legacy",isExplicit:!1}),De(n,e.modelDefaultEffort??e.capability?.defaultEffort??Ie(e.capability),"model-default",!1),De(n,e.providerDefaultEffort,"provider-default",!1),De(n,e.fallbackEffort??Oe(e.capability),"fallback",!1);let o=n[0]??{value:"none",source:"fallback",isExplicit:!1};if(o.value==="auto")return{configuredEffort:"auto",effectiveEffort:dr(n.slice(1),e.capability),source:o.source,isExplicit:o.isExplicit,diagnostics:[]};let r=$n(o.value,e.capability,o.isExplicit);return{configuredEffort:o.value,effectiveEffort:r,source:o.source,isExplicit:o.isExplicit,diagnostics:[]}}i(Ne,"resolveReasoningEffort");function fr(e){let t=e.currentEffort?$e(e.currentEffort):void 0;if(t&&Nn(t,e.capability))return{effectiveEffort:Ye(t,e.capability),preserved:!0};let n=e.capability?.defaultEffort??Ie(e.capability)??Kt(e.capability)??Oe(e.capability),o=n&&Ye(n,e.capability);return t?{effectiveEffort:o,preserved:!1,diagnostic:o?`Effort ${t} is not supported by the selected model; using ${o}.`:`Effort ${t} is not supported by the selected model; clearing effort.`}:{effectiveEffort:o,preserved:!1}}i(fr,"resolveReasoningEffortForModelSwitch");function De(e,t,n,o){if(t===void 0)return;let r=$e(t);e.push({value:r,source:n,isExplicit:o})}i(De,"pushEffortCandidate");function dr(e,t){let n=e.find(o=>o.value!=="auto");return n?$n(n.value,t,n.isExplicit):Ie(t)??Oe(t)}i(dr,"resolveAutoEffectiveEffort");function $n(e,t,n){if(t?.localRejectEfforts?.includes(e)){if(n)throw new Error(`Unsupported reasoning effort "${e}" for the selected model.`);return Ie(t)??Kt(t)??Oe(t)??e}if(e==="none")return e;if(Nn(e,t))return Ye(e,t);if(n)throw new Error(`Unsupported reasoning effort "${e}" for the selected model.`);return Ie(t)??Kt(t)??Oe(t)??e}i($n,"validateReasoningEffort");function Ye(e,t){return t?.effortAliases?.[e]??e}i(Ye,"applyEffortAlias");function Nn(e,t){if(t?.localRejectEfforts?.includes(e))return!1;if(e==="auto"||e==="none"||t?.allowCustomEffort===!0)return!0;let n=pr(t);return n.length===0?de.includes(e):n.includes(e)||n.includes(Ye(e,t))}i(Nn,"isSupportedReasoningEffort");function pr(e){return e?.supportedEfforts?.map(t=>t.value)??[]}i(pr,"getSupportedEffortValues");function Ie(e){return e?.supportedEfforts?.find(t=>t.isDefault)?.value}i(Ie,"getDefaultPresetValue");function Kt(e){let t=e?.supportedEfforts?.filter(gr).map(n=>n.value);if(!(!t||t.length===0))return t[Math.floor((t.length-1)/2)]}i(Kt,"getMiddleVisiblePresetValue");function gr(e){return e.isUserVisible!==!1}i(gr,"isUserVisiblePreset");function Oe(e){if(!e||e.effortStrategy==="none"||e.effortStrategy==="prompt-only")return"none";if(!(e.effortStrategy==="anthropic-output-effort"&&e.thinkingStrategy==="anthropic-adaptive"))return"medium"}i(Oe,"getFallbackEffortForCapability");function mr(e){switch(e){case"quick":return"low";case"balanced":case"auto":return"medium";case"deep":return"high";default:return"off"}}i(mr,"getDefaultThinkingDepthForMode");function se(e){switch(e){case"none":return"off";case"low":return"low";case void 0:case"medium":case"auto":return"medium";default:return"high"}}i(se,"effortToThinkingDepth");function ae(e,t,n="unknown"){if(t==="off")return 0;let o={...An,...e.defaultThinkingBudgets??{}},s=e.taskBudgetOverrides?.[n]?.[t]??o[t];return e.thinkingBudgetCap?Math.min(s,e.thinkingBudgetCap):s}i(ae,"resolveThinkingBudget");function ue(e,t,n=Dn){let o=Math.max(1024,t-n);return Math.max(1024,Math.min(e,o))}i(ue,"clampThinkingBudget");function Wt(e){switch(e){case"low":return"low";case"medium":return"medium";case"high":return"high";default:return}}i(Wt,"mapDepthToOpenAIReasoningEffort");function Ln(e){if(!e||typeof e!="object")return;let t=e,n=t.status??t.statusCode??t.code;return typeof n=="number"&&Number.isInteger(n)?n:typeof n=="string"&&/^\d{3}$/.test(n)?Number(n):Ln(t.cause)}i(Ln,"getStatus");function hr(e){if(e instanceof Error)return e.message.toLowerCase();if(typeof e=="string")return e.toLowerCase();if(e&&typeof e=="object"){let t=e;return[t.message,t.error,t.detail,t.body].filter(o=>typeof o=="string").join(" ").toLowerCase()}return""}i(hr,"getMessage");var yr=["reasoning_effort","reasoning effort","reasoninglevel","reasoning_level","thinking"],vr=["unsupported","not supported","invalid","does not support","is not one of","not allowed","unknown","unexpected","unrecognized"],kr=["minimal","none","low","medium","high","xhigh","max"];function Er(e,t){for(let n of kr)if(new RegExp(`['"\`]${n}['"\`]`).test(e))return n;return t}i(Er,"extractRejectedEffort");function zt(e,t){let n=Ln(e);if(n!==400&&n!==422)return null;let o=hr(e);if(!o)return null;let r=yr.some(u=>o.includes(u)),s=vr.some(u=>o.includes(u));if(!r||!s)return null;let a=Er(o,t);return a?{rejectedEffort:a}:null}i(zt,"classifyReasoningEffortRejection");function Bn(e,t){if(!e)return;if(typeof e.get=="function")return e.get(t)??void 0;let n=e,o=t.toLowerCase(),r=n[t]??n[o]??n[o.replace(/\b\w/g,s=>s.toUpperCase())];if(r!==void 0)return Array.isArray(r)?r[0]:r}i(Bn,"readHeader");function jn(e){if(!e)return;let t=e.trim();if(t.length===0)return;let n=Number(t);if(!(!Number.isFinite(n)||n<=0))return n}i(jn,"parsePositiveNumber");function br(e,t){if(!e)return;let n=e.trim();if(n.length===0)return;let o=Date.parse(n);if(!Number.isFinite(o))return;let r=o-t;return r>0?r:void 0}i(br,"parseHttpDate");function et(e,t){let n=t.baseBackoffMs??1e3,o=t.maxBackoffMs??3e4,r=t.maxHeaderWaitMs??12e4,s=t.now?t.now():Date.now(),a=jn(Bn(e,"retry-after-ms"));if(a!==void 0){let m=Math.min(a,r);return{type:"header",waitMs:Math.round(m),source:"retry-after-ms",cappedFromHeader:m!==a}}let u=Bn(e,"retry-after");if(u!==void 0&&u.trim().length>0){let m=jn(u);if(m!==void 0){let T=m*1e3,d=Math.min(T,r);return{type:"header",waitMs:Math.round(d),source:"retry-after-seconds",cappedFromHeader:d!==T}}let g=br(u,s);if(g!==void 0){let T=Math.min(g,r);return{type:"header",waitMs:Math.round(T),source:"retry-after-date",cappedFromHeader:T!==g}}}let l=n*Math.pow(2,Math.max(0,t.attempt)),f=Math.min(l,o),p=t.withJitter!==!1?Math.random()*.25*f:0;return{type:"backoff",waitMs:Math.round(f+p),source:"exponential-backoff",attempt:t.attempt}}i(et,"parseRetryAfter");function tt(e){if(!e||typeof e!="object")return;let t=e;return t.headers??t.response?.headers??t.cause?.headers??t.cause?.response?.headers}i(tt,"extractHeadersFromError");import{AsyncLocalStorage as xr}from"node:async_hooks";var Fn=new xr,Kn=8,Un=32;function _r(e){if(e===void 0)return;let t=Number.parseInt(e,10);return Number.isInteger(t)&&t>0?t:void 0}i(_r,"parsePositiveInt");function Cr(){let e=ge()?.workflow?.maxConcurrency,t=typeof e=="number"&&Number.isInteger(e)&&e>0?e:_r(process.env.KODAX_WORKFLOW_MAX_CONCURRENCY)??Kn;return Math.max(1,Math.min(Un,t))}i(Cr,"resolveWorkflowMaxConcurrency");function Tr(e,t){return Fn.run(e,t)}i(Tr,"runWithScopedConfig");function ge(){return Fn.getStore()}i(ge,"getRunScopedConfig");var ce={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Wn={...ce,multimodalSupport:"image-input"},Le={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},zn={...Le,multimodalSupport:"image-input"};function nt(e){return{transport:e.transport,conversationSemantics:e.conversationSemantics,mcpSupport:e.mcpSupport,contextFidelity:e.contextFidelity??"full",toolCallingFidelity:e.toolCallingFidelity??"full",sessionSupport:e.sessionSupport??"full",longRunningSupport:e.longRunningSupport??"full",multimodalSupport:e.multimodalSupport??"none",evidenceSupport:e.evidenceSupport??"full"}}i(nt,"normalizeCapabilityProfile");function G(e){return{...nt(e)}}i(G,"cloneCapabilityProfile");function Pr(e){if(!e)return;let t=parseInt(e,10);return Number.isFinite(t)&&t>0?t:void 0}i(Pr,"parseEnvInt");function Sr(e){switch(e.reasoningPreset){case"zai-glm-5.2":case"deepseek-v4-openai":case"deepseek-v4-anthropic":case"qwen-hybrid-thinking":return!0;default:break}return e.effortStrategy==="provider-budget"}i(Sr,"shouldLowerAutoReasoningEffort");function rt(){return new DOMException("Request aborted","AbortError")}i(rt,"abortError");function wr(e,t){return e<=0?Promise.resolve():t?.aborted?Promise.reject(rt()):new Promise((n,o)=>{let r,s=i(()=>{t&&t.removeEventListener("abort",a)},"cleanup"),a=i(()=>{r&&clearTimeout(r),s(),o(rt())},"onAbort");t&&t.addEventListener("abort",a,{once:!0}),r=setTimeout(()=>{s(),n()},e)})}i(wr,"waitForRetryDelay");function Xt(e){if(typeof e=="number"&&Number.isInteger(e))return e;if(typeof e=="string"&&/^\d{3}$/.test(e))return Number(e)}i(Xt,"normalizeHttpStatus");function Xn(e){if(!e||typeof e!="object")return;let t=e;return Xt(t.status)??Xt(t.statusCode)??Xt(t.code)??Xn(t.cause)}i(Xn,"extractHttpStatus");function Vn(e){if(!e||typeof e!="object")return"";let t=e;return typeof t.code=="string"?t.code:Vn(t.cause)}i(Vn,"extractErrorCode");function ot(e){if(e instanceof Error)return e.message.toLowerCase();if(e&&typeof e=="object"){let t=e.message;if(typeof t=="string")return t.toLowerCase()}return String(e).toLowerCase()}i(ot,"getErrorMessage");var J=class{static{i(this,"KodaXBaseProvider")}maxOutputTokensOverride;suppressReasoningEffort=!1;setMaxOutputTokensOverride(t){this.maxOutputTokensOverride=t}getEffectiveMaxOutputTokens(t){if(this.maxOutputTokensOverride!==void 0)return this.maxOutputTokensOverride;let n=ge()?.maxOutputTokens,o=(typeof n=="number"&&Number.isFinite(n)&&n>0?n:void 0)??Pr(process.env.KODAX_MAX_OUTPUT_TOKENS);if(o!==void 0)return o;let r=this.getModelDescriptor(t)?.maxOutputTokens;return r!==void 0?r:this.config.maxOutputTokens??32768}getStreamMaxDurationMs(t){let n=this.getModelDescriptor(t)?.streamMaxDurationMs;return n!==void 0?n:this.config.streamMaxDurationMs}getEffectiveReplayReasoningContent(t){let n=this.getModelDescriptor(t)?.replayReasoningContent;return n!==void 0?n:this.config.replayReasoningContent??!1}getEffectiveStrictThinkingSignature(t){let n=this.getModelDescriptor(t)?.strictThinkingSignature;return n!==void 0?n:this.config.strictThinkingSignature??!1}getEffectiveThinkingBudgetCap(t){return this.getModelDescriptor(t)?.thinkingBudgetCap??this.config.thinkingBudgetCap}supportsNonStreamingFallback(){return!1}async complete(t,n,o,r,s,a){throw new M(`${this.name} does not support non-streaming fallback`)}isConfigured(){return fe(this.name,process.env[this.config.apiKeyEnv])!==void 0}async verifyCredential(t){return{ok:!1,error:"unsupported",strategy:this.config.verifyStrategy??"unsupported",durationMs:0,approxTokensSpent:0,message:`Provider class "${this.name}" does not implement verifyCredential()`}}getModel(){return this.config.model}getAvailableModels(){return this.config.models?.length?[...new Set([this.config.model,...this.config.models.map(t=>t.id)])]:[this.config.model]}getModelDescriptor(t){let n=t??this.config.model,o=this.config.models?.find(r=>r.id===n);if(o){let r=o.wireModel?this.config.models?.find(s=>s.id===o.wireModel):void 0;return r?{...r,...o}:o}if(n===this.config.model)return{id:this.config.model}}getWireModelId(t){let n=t??this.config.model;return this.getModelDescriptor(n)?.wireModel??n}getBaseUrl(){return this.config.baseUrl}getApiKeyEnv(){return this.config.apiKeyEnv}getCapabilityProfile(){return G(this.config.capabilityProfile??ce)}getConfiguredReasoningCapability(t){let n=this.getModelDescriptor(t);return n?.reasoningCapability?n.reasoningCapability:Ut(this.config)}getReasoningCapability(t){return this.getConfiguredReasoningCapability(t)}getReasoningProfile(t){return this.getModelDescriptor(t)?.reasoningProfile??this.config.reasoningProfile}shouldFallbackForReasoningError(t,...n){let o=t instanceof Error?t.message.toLowerCase():String(t).toLowerCase(),s=n.map(u=>u.toLowerCase()).some(u=>o.includes(u)),a=o.includes("parameter")||s;return o.includes("unknown parameter")||o.includes("invalid parameter")||o.includes("unsupported")&&a}shouldFallbackForSpecificReasoningError(t,...n){let o=t instanceof Error?t.message.toLowerCase():String(t).toLowerCase();return n.map(a=>a.toLowerCase()).some(a=>o.includes(a))?o.includes("unknown parameter")||o.includes("invalid parameter")||o.includes("unsupported"):!1}shouldFallbackForForcedToolChoiceError(t){let n=ot(t);return(n.includes("tool_choice")||n.includes("tool choice")||n.includes("toolchoice"))&&(n.includes("unknown parameter")||n.includes("invalid parameter")||n.includes("unsupported")||n.includes("incompatible"))?!0:this.isServerError(t)}isServerError(t){let n=Xn(t);if(n!==void 0&&n>=500&&n<=599)return!0;let o=ot(t);return o.includes("internal server error")||o.includes("server error")}getReasoningFallbackChain(t){switch(t){case"native-budget":return["native-budget","native-toggle","none"];case"native-effort":return["native-effort","none"];case"native-adaptive":return["native-adaptive","none"];case"native-toggle":return["native-toggle","none"];default:return["none"]}}getContextWindow(){return this.getEffectiveContextWindow()}getEffectiveContextWindow(t){let n=this.getModelDescriptor(t)?.contextWindow;return n!==void 0?n:this.config.contextWindow??2e5}getApiKey(){let t=fe(this.name,process.env[this.config.apiKeyEnv]);if(!t)throw new Error(`${this.config.apiKeyEnv} not set`);return t}shouldLogStreamDiagnostics(){return!!process.env.KODAX_DEBUG_STREAM}logStreamDiagnostic(...t){this.shouldLogStreamDiagnostics()&&console.error(...t)}normalizeReasoning(t){return Ze(t)}validateExplicitReasoningEffort(t,n){if(t.effortSource!=="explicit")return;let o=t.effort;if(!o||o==="auto")return;let r=de.includes(o),s=this.getReasoningProfile(n);if(!s){if(o==="none"||r)return;let c=n?`/${n}`:"";throw new M(`${this.name}${c} does not advertise provider-specific reasoning effort "${o}". Supported stable efforts: ${de.join(", ")}.`,this.name)}if(s.localRejectEfforts?.includes(o)){let c=n?`/${n}`:"";throw new M(`${this.name}${c} does not support reasoning effort "${o}".`,this.name)}if(o==="none"||s.disabledEfforts?.includes(o)||s.allowCustomEffort)return;let a=s.supportedEfforts?.map(c=>c.value)??[],u=s.effortAliases?.[o]??o;if(a.includes(o)||a.includes(u)||a.length===0&&r)return;let l=n?`/${n}`:"",f=a.length>0?a.join(", "):de.join(", ");throw new M(`${this.name}${l} does not support reasoning effort "${o}". Supported efforts: ${f}.`,this.name)}resolveReasoningProfileIntent(t,n,o){let r=t.effort;if(r&&n.localRejectEfforts?.includes(r)){if(t.effortSource==="explicit"){let s=o?`/${o}`:"";throw new M(`${this.name}${s} does not support reasoning effort "${r}".`,this.name)}if(n.defaultEffort)return{disabled:!1,effort:n.defaultEffort,requestedEffort:r}}if(!t.enabled||r==="none"||r!==void 0&&n.disabledEfforts?.includes(r))return{disabled:!0,requestedEffort:r};if(!r||r==="auto"){if(Sr(n)){let s=Ne({capability:n,explicitEffort:r??"auto"}).effectiveEffort;return s==="none"||s!==void 0&&n.disabledEfforts?.includes(s)?{disabled:!0,effort:s,requestedEffort:r}:{disabled:!1,effort:s,requestedEffort:r}}return{disabled:!1,requestedEffort:r}}return{disabled:!1,effort:n.effortAliases?.[r]??r,requestedEffort:r}}onStaleConnection(){}isRateLimitError(t){if(!(t instanceof Error))return!1;let n=t.message.toLowerCase();return["rate","limit","\u901F\u7387","\u9891\u7387","1302","429","too many","overload","overwhelmed","503","529","busy"].some(o=>n.includes(o))}classifyRateLimitReason(t){let n=t instanceof Error?t.message.toLowerCase():String(t).toLowerCase();return n.includes("overload")||n.includes("overwhelmed")||n.includes("503")||n.includes("529")||n.includes("busy")?"overloaded":"rate-limit"}extractRetryAfterMs(t){let n=tt(t);if(!n)return;let o=et(n,{attempt:0,withJitter:!1});return o.type==="header"?o.waitMs:void 0}parseContextOverflow(t){let n=ot(t),o=[{regex:/(\d[\d,]*)\s*tokens?.*?(\d[\d,]*)\s*(?:maximum|limit|context)/i,inputGroup:1,limitGroup:2},{regex:/maximum.*?(\d[\d,]*)\s*tokens?.*?requested.*?(\d[\d,]*)/i,inputGroup:2,limitGroup:1},{regex:/exceeds?\s+.*?(\d[\d,]*)\s*.*?(?:limit|max|context|上限).*?(\d[\d,]*)/i,inputGroup:1,limitGroup:2}];for(let r of o){let s=n.match(r.regex);if(s){let a=Number(s[r.inputGroup].replace(/,/g,"")),u=Number(s[r.limitGroup].replace(/,/g,""));return Math.max(3e3,u-a-1e3)}}}isContextOverflowError(t){let n=ot(t);return n.includes("prompt is too long")||n.includes("prompt too long")||n.includes("context length")||n.includes("context_length_exceeded")||n.includes("context window")||n.includes("context limit")||n.includes("\u4E0A\u4E0B\u6587\u957F\u5EA6")}async withRateLimit(t,n,o=3,r,s,a){let u=!1;this.suppressReasoningEffort=!1;for(let l=0;l<o;l++)try{let f=await t();return this.maxOutputTokensOverride=void 0,this.suppressReasoningEffort=!1,f}catch(f){if(this.isContextOverflowError(f)&&!this.maxOutputTokensOverride){let c=this.parseContextOverflow(f);if(c){this.maxOutputTokensOverride=c,r?.(l+1,o,0);continue}}if(this.isRateLimitError(f)){if(l===o-1)throw new Me(`API rate limit exceeded after ${o} retries. Please wait and try again later.`,6e4);let c=tt(f)??{},p=et(c,{attempt:l,baseBackoffMs:500,maxBackoffMs:32e3,withJitter:!0}),m=p.waitMs,g=this.classifyRateLimitReason(f);if(s?.({provider:this.name,waitMs:m,reason:g,source:p.source,attempt:l+1,maxAttempts:o}),r?r(l+1,o,m):s||console.log(`[Rate Limit] Retrying in ${m/1e3}s (${l+1}/${o})...`),n?.aborted||(await wr(m,n),n?.aborted))throw rt();continue}if(a&&!u){let c=zt(f,a.effort);if(c){a.onRejected?.({provider:this.name,model:a.model,effort:c.rejectedEffort}),this.suppressReasoningEffort=!0,u=!0;continue}}if(a&&u){let c=zt(f,a.effort);if(c)throw this.suppressReasoningEffort=!1,new Je(`${this.name} rejected reasoning effort "${c.rejectedEffort}" even after dropping it.`,this.name,c.rejectedEffort,a.model)}if(f instanceof Error){if((f.name==="AbortError"||f.name==="APIUserAbortError")&&n?.aborted)throw f.name==="AbortError"?f:new DOMException(f.message||"Request aborted","AbortError");let c=Vn(f);throw(c==="ECONNRESET"||c==="EPIPE")&&this.onStaleConnection(),new M(`${this.name} API error: ${f.message}`,this.name)}throw f}throw new Q("Unexpected end of withRateLimit")}};import Nr from"@anthropic-ai/sdk";import{parse as Rr}from"partial-json";function me(e){if(!e)return{value:{},salvaged:!1};try{let t=JSON.parse(e);return{value:t&&typeof t=="object"&&!Array.isArray(t)?t:{},salvaged:!1}}catch{}try{let t=Rr(e);return process.env.KODAX_DEBUG_TOOL_STREAM&&console.warn("[Tool Block Salvaged] partial JSON recovered, rawLength=",e.length),{value:t&&typeof t=="object"&&!Array.isArray(t)?t:{},salvaged:!0}}catch{return{value:{},salvaged:!0}}}i(me,"parseToolInputWithSalvageTracked");function Mr(e){return me(e).value}i(Mr,"parseToolInputWithSalvage");var Ar={max_tokens:"truncated",length:"truncated",model_context_window_exceeded:"truncated",end_turn:"end",stop:"end",stop_sequence:"end",tool_use:"tool",tool_calls:"tool",function_call:"tool",pause_turn:"paused",refusal:"refused",content_filter:"refused"};function Gn(e){return e==null?"unknown":Ar[e.trim().toLowerCase()]??"unknown"}i(Gn,"classifyStopReason");function he(e){let t=Gn(e);return t==="end"||t==="tool"||t==="paused"}i(he,"isCleanStop");async function ye(e){if(e.strategy==="unsupported")return{ok:!1,error:"unsupported",strategy:"unsupported",durationMs:0,approxTokensSpent:0,message:"Provider does not support credential verification"};let t=e.runners.find(f=>f.strategy===e.strategy);if(!t)return{ok:!1,error:"unsupported",strategy:e.strategy,durationMs:0,approxTokensSpent:0,message:`verifyStrategy="${e.strategy}" is not implemented for this provider's base class`};if(e.signal?.aborted)return{ok:!1,error:"unknown",strategy:e.strategy,durationMs:0,approxTokensSpent:0,message:"caller aborted before verifyCredential started"};let n=new AbortController,o=e.timeoutMs??8e3,r,s=i(f=>{r||(r=f),n.abort()},"recordAbort"),a=setTimeout(()=>s("timeout"),o),u=i(()=>s("parent"),"onParentAbort");e.signal&&e.signal.addEventListener("abort",u,{once:!0});let l=Date.now();try{return await t.run(n.signal),{ok:!0,strategy:e.strategy,durationMs:Date.now()-l,approxTokensSpent:t.approxTokensSpent}}catch(f){return Vt(f,{strategy:e.strategy,durationMs:Date.now()-l,approxTokensSpent:0,abortCause:r,providerName:e.providerName})}finally{clearTimeout(a),e.signal&&e.signal.removeEventListener("abort",u)}}i(ye,"runVerifyCredential");function Dr(e){return e.replace(/\bsk-[A-Za-z0-9_-]{6,}/g,"sk-***")}i(Dr,"redactKeyMaterial");function Vt(e,t){let n=e,o=n.status??n.statusCode??n.response?.status,r=Dr(String(n.message??e)).slice(0,240),s=n.cause?.code??n.code,a=n.constructor?.name??"",u;return t.abortCause==="timeout"?u="timeout":t.abortCause==="parent"?u="unknown":a==="AuthenticationError"||a==="PermissionDeniedError"||o===401||o===403?u="unauthorized":o===429?u="rate_limited":o===400&&t.strategy==="count-tokens"&&t.providerName==="kimi-code"?u="unauthorized":o!==void 0&&o>=500&&o<600?u="server_error":s!==void 0&&/ENOTFOUND|ECONNREFUSED|ECONNRESET|EAI_AGAIN|EPIPE|ETIMEDOUT|ENETUNREACH|ENETDOWN|EHOSTUNREACH/i.test(s)?u="network":/timeout/i.test(r)?u="timeout":u="unknown",{ok:!1,error:u,status:o,message:r,durationMs:t.durationMs,approxTokensSpent:t.approxTokensSpent,strategy:t.strategy}}i(Vt,"classifyVerifyError");function Gt(e,t){let n=e[e.length-1];if(n&&ve(n)&&n.hint===t)return e;let o=t?{type:"cache-boundary",hint:t}:{type:"cache-boundary"};return[...e,o]}i(Gt,"insertCacheBoundary");function ve(e){if(typeof e!="object"||e===null||e.type!=="cache-boundary")return!1;let t=Object.keys(e);return t.length<=2&&t.every(n=>n==="type"||n==="hint")}i(ve,"isCacheBoundary");function Ht(e,t){let n=[];for(let o of e){if(ve(o)){if(t==="attach"&&n.length>0){let r=n[n.length-1];n[n.length-1]={...r,cache_control:{type:"ephemeral"}}}continue}n.push(o)}return n}i(Ht,"lowerCacheBoundaries");function Be(e){return e.filter(t=>!ve(t))}i(Be,"stripCacheBoundaries");import{readFile as Ir}from"node:fs/promises";import Or from"node:path";var $r={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"};function it(e,t){return t??$r[Or.extname(e).toLowerCase()]??"image/png"}i(it,"resolveImageMediaType");async function st(e){return(await Ir(e)).toString("base64")}i(st,"readImageFileAsBase64");async function Hn(e,t){let n=it(e,t),o=await st(e);return`data:${n};base64,${o}`}i(Hn,"buildImageDataUrl");var Lr="KodaX",Br="effort-2025-11-24";function Jn(e,t){if(t===void 0||t.length===0)return e;let n={type:"text",text:t},o=e.at(-1);if(o?.role!=="user")return[...e,{role:"user",content:[n]}];let r=typeof o.content=="string"?[{type:"text",text:o.content},n]:[...o.content,n];return[...e.slice(0,-1),{...o,content:r}]}i(Jn,"appendAnthropicEphemeralSuffix");function jr(e){return e.userAgentMode==="sdk"?void 0:{"User-Agent":Lr}}i(jr,"getAnthropicCompatDefaultHeaders");function Jt(e,t){if(!e)return t;let n=e.input_tokens!==void 0&&e.input_tokens!==null||e.cache_creation_input_tokens!==void 0&&e.cache_creation_input_tokens!==null||e.cache_read_input_tokens!==void 0&&e.cache_read_input_tokens!==null,o=typeof e.input_tokens=="number"?e.input_tokens:n?0:t?.inputTokens??0,r=typeof e.cache_creation_input_tokens=="number"?e.cache_creation_input_tokens:n?0:t?.cachedWriteTokens??0,s=typeof e.cache_read_input_tokens=="number"?e.cache_read_input_tokens:n?0:t?.cachedReadTokens??0,a=typeof e.output_tokens=="number"?e.output_tokens:t?.outputTokens??0,u=n?o+r+s:t?.inputTokens??0;if(![u,a].some(l=>!Number.isFinite(l)||l<0))return{inputTokens:u,outputTokens:a,totalTokens:u+a,cachedReadTokens:s||void 0,cachedWriteTokens:r||void 0}}i(Jt,"normalizeAnthropicUsage");function qt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(qt,"isRecord");function Fr(e){if(!(!e.enabled||e.effort==="auto"||e.effort==="none"))return e.effort}i(Fr,"selectAnthropicOutputEffort");function qn(e,t){let n=Fr(t);if(!n)return;let o=e,r=o.output_config;o.output_config={...qt(r)?r:{},effort:n}}i(qn,"applyAnthropicOutputEffort");function Yn(e,t){if(!t)return;let n=e,o=n.output_config;n.output_config={...qt(o)?o:{},effort:t}}i(Yn,"setAnthropicOutputEffort");function Kr(e){let n=e.output_config;return qt(n)&&typeof n.effort=="string"}i(Kr,"hasAnthropicOutputEffort");var L=class extends J{static{i(this,"KodaXAnthropicCompatProvider")}supportsThinking=!0;_client;get client(){return this._client??=this.buildClient()}set client(t){this._client=t}buildClient(){let t=jr(this.config);return new Nr({apiKey:this.getApiKey(),baseURL:this.config.baseUrl,...t?{defaultHeaders:t}:{}})}onStaleConnection(){this._client=void 0}buildMessageCreateOptions(t,n,o){let s=this.getReasoningProfile(n)?.requiresEffortBetaHeader&&Kr(t)?{"anthropic-beta":Br}:void 0;return{...o?{signal:o}:{},...s?{headers:s}:{}}}applyReasoningProfile(t,n,o,r,s){if(this.suppressReasoningEffort)return;this.validateExplicitReasoningEffort(o,r);let a=this.resolveReasoningProfileIntent(o,n,r),u=n.reasoningPreset,l=t;if(u==="kimi-k2.7-code"||u==="minimax-m2-always"){t.thinking={type:"enabled"};return}if(u==="kimi-k3"){let f=o.effortSource==="omitted"&&o.effort==="none";if(a.disabled&&!f){t.thinking={type:"disabled"};return}t.thinking={type:"enabled",effort:f?n.defaultEffort??"max":a.effort??n.defaultEffort??"max"};return}if(!(u==="none"||n.effortStrategy==="none"||n.effortStrategy==="prompt-only")){if(a.disabled){(u==="zai-glm-5.2"||u==="zai-glm-toggle"||u==="deepseek-v4-anthropic"||u==="deepseek-toggle"||u==="kimi-hybrid-toggle"||u==="minimax-m3"||u==="mimo-v2.5-toggle"||n.thinkingStrategy==="provider-toggle")&&(t.thinking={type:"disabled"});return}if(u==="zai-glm-5.2"){t.thinking={type:"enabled"},a.effort&&(l.reasoning_effort=a.effort);return}if(u==="deepseek-v4-anthropic"){t.thinking={type:"enabled"},Yn(t,a.effort);return}if(u==="minimax-m3"){t.thinking={type:"adaptive"};return}if(u==="zai-glm-toggle"||u==="deepseek-toggle"||u==="kimi-hybrid-toggle"||u==="mimo-v2.5-toggle"||n.effortStrategy==="provider-toggle"){t.thinking={type:"enabled"};return}if(n.effortStrategy==="anthropic-reasoning-effort"){t.thinking={type:"enabled"},a.effort&&(l.reasoning_effort=a.effort);return}if(n.effortStrategy==="anthropic-output-effort"||n.thinkingStrategy==="anthropic-adaptive"){t.thinking={type:"adaptive"},Yn(t,a.effort);return}if(n.effortStrategy==="provider-budget"||n.thinkingStrategy==="anthropic-budget"){let f=this.resolveReasoningProfileBudget(n,a.effort,o,r,s);t.thinking={type:"enabled",budget_tokens:f}}}}resolveReasoningProfileBudget(t,n,o,r,s){let u=(n?t.budgetByEffort?.[n]:void 0)??ae(this.config,se(o.effort),o.taskType),l=this.getEffectiveThinkingBudgetCap(r),f=l!==void 0?Math.min(u,l):u;return ue(f,s)}async verifyCredential(t){let n=this.config.model,o=this.client,r=[{strategy:"count-tokens",approxTokensSpent:0,run:i(async s=>{await o.messages.countTokens({model:n,messages:[{role:"user",content:"hi"}]},{signal:s})},"run")},{strategy:"models-list",approxTokensSpent:0,run:i(async s=>{await o.models.list({},{signal:s})},"run")},{strategy:"minimal-message",approxTokensSpent:7,run:i(async s=>{await o.messages.create({model:n,max_tokens:1,messages:[{role:"user",content:"hi"}]},{signal:s})},"run")}];return ye({strategy:this.config.verifyStrategy??"count-tokens",runners:r,timeoutMs:t?.timeoutMs,signal:t?.signal,providerName:this.name})}isPromptCacheDisabled(){let t=ge()?.disablePromptCache;return t===!0?!0:t===!1?!1:process.env.KODAX_DISABLE_PROMPT_CACHE==="1"}applyCacheControlToSystem(t){if(!t.trim()||this.isPromptCacheDisabled())return t;let n=Gt([{type:"text",text:t}],"system");return Ht(n,"attach")}applyCacheControlToTools(t){if(t.length===0||this.isPromptCacheDisabled())return t;let n=t.slice(),o=n[n.length-1];return n[n.length-1]={...o,cache_control:{type:"ephemeral"}},n}applyCacheControlToMessages(t){if(t.length===0||this.isPromptCacheDisabled())return t;let n=0,o=-1;for(let c=t.length-1;c>=0;c--)if(t[c].role==="user"&&(n+=1,n===2)){o=c;break}if(o===-1)return t;let r=t[o];if(typeof r.content=="string"||r.content.length===0)return t;let s=r.content,u={...s[s.length-1],cache_control:{type:"ephemeral"}},l=[...s.slice(0,-1),u],f=t.slice();return f[o]={...r,content:l},f}async stream(t,n,o,r,s,a){return this.withRateLimit(async()=>{let u=this.normalizeReasoning(r),l=s?.modelOverride??this.config.model,f=this.getWireModelId(l);this.validateExplicitReasoningEffort(u,l);let c=s?.maxOutputTokensOverride??this.getEffectiveMaxOutputTokens(l),p=Jn(this.applyCacheControlToMessages(await this.convertMessages(t,l)),s?.ephemeralSuffix?.content),m=u.enabled?this.getReasoningCapability(l):"none",g=this.getReasoningProfile(l),T=g?["profile","none"]:u.enabled?this.getReasoningFallbackChain(m).filter(x=>x==="native-budget"||x==="native-toggle"||x==="native-adaptive"||x==="none"):["none"],d=!!s?.forcedToolName,C=i(x=>{let S={model:f,max_tokens:c,system:this.applyCacheControlToSystem(this.buildSystemPrompt(o,t)),messages:p,tools:this.applyCacheControlToTools(n),stream:!0};if(s?.forcedToolName&&d&&(S.tool_choice={type:"tool",name:s.forcedToolName}),x!=="none")if(x==="profile"&&g)this.applyReasoningProfile(S,g,u,l,c);else if(x==="native-budget"){let I=ae(this.config,se(u.effort),u.taskType);S.thinking={type:"enabled",budget_tokens:ue(I,c)}}else x==="native-toggle"?S.thinking={type:"enabled"}:x==="native-adaptive"&&(S.thinking={type:"adaptive"},qn(S,u));return S},"buildRequest");if(a?.aborted)throw new DOMException("Request aborted","AbortError");let y=[],E=[],k=[],v,P=null,h="",_="",A="",F="",W="",K="",Y="",te=!1,R,D=Date.now(),V=Date.now(),re,Se;for(let x of T){for(;!re;)try{let S=C(x);re=await this.client.messages.create(S,this.buildMessageCreateOptions(S,l,a))}catch(S){if(Se=S,d&&this.shouldFallbackForForcedToolChoiceError(S)){d=!1,this.logStreamDiagnostic(`[${this.name}] upstream rejected forced tool_choice; retrying without forced tool choice`);continue}let I=x==="profile"?["thinking","reasoning_effort","budget_tokens","adaptive"]:x==="native-budget"?["budget_tokens","thinking"]:x==="native-toggle"?["thinking"]:x==="native-adaptive"?["adaptive","thinking"]:[];if(!this.shouldFallbackForReasoningError(S,...I))throw S;break}if(re)break}if(!re)throw Se??new M("All reasoning capability attempts failed without a captured error",this.name);let we=Date.now(),Ge=0,w=0,N=3e4;for await(let x of re){if(a?.aborted)throw new DOMException("Request aborted","AbortError");let S=Date.now(),I=S-we;if(I>N&&(Ge++,w+=I,this.logStreamDiagnostic(`[Stream] stall detected: ${Math.round(I/1e3)}s gap before ${x.type}`,{stallCount:Ge,totalStallMs:w,eventType:x.type})),we=S,x.type==="content_block_start"||x.type==="content_block_stop"?s?.onHeartbeat?.(!0):s?.onHeartbeat?.(),x.type==="content_block_start"){D=Date.now();let b=x.content_block;P=b.type,process.env.KODAX_DEBUG_TOOL_STREAM&&b.type==="tool_use"&&console.error("[ToolStream] content_block_start:",{type:b.type,id:b.id,name:b.name}),b.type==="thinking"?(_="",A=b.signature??""):b.type==="redacted_thinking"?(P="redacted_thinking",F=b.data??""):b.type==="text"?h="":b.type==="tool_use"&&(W=b.id,K=b.name,Y="")}else if(x.type==="content_block_delta"){D=Date.now();let b=x.delta;b.type==="thinking_delta"?(_+=b.thinking??"",s?.onThinkingDelta?.(b.thinking??"")):b.type==="text_delta"?(h+=b.text??"",s?.onTextDelta?.(b.text??"")):b.type==="input_json_delta"&&(Y+=b.partial_json??"",s?.onToolInputDelta?.(K,b.partial_json??"",W?{toolId:W}:void 0))}else if(x.type==="content_block_stop"){if(D=Date.now(),P==="thinking")_&&(k.push({type:"thinking",thinking:_,signature:A}),s?.onThinkingEnd?.(_));else if(P==="redacted_thinking")F&&k.push({type:"redacted_thinking",data:F}),F="";else if(P==="text")h&&y.push({type:"text",text:h});else if(P==="tool_use")if(!W||!K)process.env.KODAX_DEBUG_TOOL_STREAM&&console.error("[Tool Block Invalid] Missing tool id or name:",{id:JSON.stringify(W),name:JSON.stringify(K),input:Y.slice(0,100)});else{let b=me(Y);E.push({type:"tool_use",id:W,name:K,input:b.value,...b.salvaged?{_salvaged:!0,_truncated:!0}:{}})}P=null}else if(x.type==="message_stop"){if(te=!0,D=Date.now(),process.env.KODAX_DEBUG_STREAM){let b=Date.now()-V;this.logStreamDiagnostic(`[Stream] message_stop received after ${b}ms`)}}else if(x.type==="message_delta"){D=Date.now(),v=Jt(x.usage,v);let b=x.delta;b?.stop_reason&&(R=b.stop_reason,process.env.KODAX_DEBUG_STREAM&&this.logStreamDiagnostic(`[Stream] message_delta with stop_reason: ${R}`))}else x.type==="message_start"&&(D=Date.now(),v=Jt(x.message?.usage,v),process.env.KODAX_DEBUG_STREAM&&this.logStreamDiagnostic("[Stream] message_start received"))}if(!te){let x=Date.now()-V,S=Date.now()-D;if(a?.aborted){let I=a.reason instanceof Error?a.reason.message:typeof a.reason=="string"?a.reason:"Request aborted";throw this.logStreamDiagnostic("[Stream] Stream ended after abort before message_stop:",{duration:x,lastEventAge:S,reason:I,textBlocks:y.length,toolBlocks:E.length,thinkingBlocks:k.length}),new DOMException(I,"AbortError")}if(!R){let I=new Error(`Stream incomplete: message_stop event not received. Duration: ${x}ms, Last event: ${S}ms ago. This may indicate a network disconnection or API timeout.`);throw I.name="StreamIncompleteError",this.logStreamDiagnostic("[Stream] Incomplete stream detected:",{duration:x,lastEventAge:S,textBlocks:y.length,toolBlocks:E.length,thinkingBlocks:k.length}),I}this.logStreamDiagnostic("[Stream] message_stop missing but stop_reason known \u2014 treating as complete:",{duration:x,lastEventAge:S,stopReason:R,textBlocks:y.length,toolBlocks:E.length,thinkingBlocks:k.length})}let O=he(R)?E.map(({_truncated:x,...S})=>S):E;return{textBlocks:y,toolBlocks:O,thinkingBlocks:k,usage:v,stopReason:R}},a,3,s?.onRateLimit,s?.onRetryAfter,{model:s?.modelOverride??this.config.model,onRejected:s?.onReasoningEffortRejected})}supportsNonStreamingFallback(){return!0}async complete(t,n,o,r,s,a){return this.withRateLimit(async()=>{let u=this.normalizeReasoning(r),l=s?.modelOverride??this.config.model,f=this.getWireModelId(l);this.validateExplicitReasoningEffort(u,l);let c=s?.maxOutputTokensOverride??this.getEffectiveMaxOutputTokens(l),p=Jn(this.applyCacheControlToMessages(await this.convertMessages(t,l)),s?.ephemeralSuffix?.content),m=u.enabled?this.getReasoningCapability(l):"none",g=this.getReasoningProfile(l),T=g?["profile","none"]:u.enabled?this.getReasoningFallbackChain(m).filter(h=>h==="native-budget"||h==="native-toggle"||h==="native-adaptive"||h==="none"):["none"],d=!!s?.forcedToolName,C=i(h=>{let _={model:f,max_tokens:c,system:this.applyCacheControlToSystem(this.buildSystemPrompt(o,t)),messages:p,tools:this.applyCacheControlToTools(n)};if(s?.forcedToolName&&d&&(_.tool_choice={type:"tool",name:s.forcedToolName}),h!=="none")if(h==="profile"&&g)this.applyReasoningProfile(_,g,u,l,c);else if(h==="native-budget"){let A=ae(this.config,se(u.effort),u.taskType);_.thinking={type:"enabled",budget_tokens:ue(A,c)}}else h==="native-toggle"?_.thinking={type:"enabled"}:h==="native-adaptive"&&(_.thinking={type:"adaptive"},qn(_,u));return _},"buildRequest"),y,E;for(let h of T){for(;!y;)try{let _=C(h);y=await this.client.messages.create(_,this.buildMessageCreateOptions(_,l,a))}catch(_){if(E=_,d&&this.shouldFallbackForForcedToolChoiceError(_)){d=!1,this.logStreamDiagnostic(`[${this.name}] upstream rejected forced tool_choice; retrying without forced tool choice`);continue}let A=h==="profile"?["thinking","reasoning_effort","budget_tokens","adaptive"]:h==="native-budget"?["budget_tokens","thinking"]:h==="native-toggle"?["thinking"]:h==="native-adaptive"?["adaptive","thinking"]:[];if(!this.shouldFallbackForReasoningError(_,...A))throw _;break}if(y)break}if(!y)throw E??new M("All reasoning capability attempts failed without a captured error",this.name);let k=[],v=[],P=[];for(let h of y.content)h.type==="text"?(k.push({type:"text",text:h.text}),s?.onTextDelta?.(h.text)):h.type==="thinking"?(P.push({type:"thinking",thinking:h.thinking,signature:h.signature??""}),s?.onThinkingDelta?.(h.thinking),s?.onThinkingEnd?.(h.thinking)):h.type==="redacted_thinking"?P.push({type:"redacted_thinking",data:h.data}):h.type==="tool_use"&&v.push({type:"tool_use",id:h.id,name:h.name,input:typeof h.input=="object"&&h.input!==null?h.input:{}});return{textBlocks:k,toolBlocks:v,thinkingBlocks:P,usage:Jt(y.usage),stopReason:y.stop_reason??void 0}},a,3,s?.onRateLimit,s?.onRetryAfter,{model:s?.modelOverride??this.config.model,onRejected:s?.onReasoningEffortRejected})}serializeSystemMessageContent(t){if(typeof t=="string")return t.trim();for(let n of t)if(ve(n))throw new M("cache-boundary marker reached system message serialization unlowered. Provider base class lowering must run before any wire-level serialization.",this.name);return t.filter(n=>n.type==="text").map(n=>n.text.trim()).filter(Boolean).join(`
3
+ `)}buildSystemPrompt(t,n){let o=n.filter(r=>r.role==="system").map(r=>this.serializeSystemMessageContent(r.content)).filter(Boolean);return[t,...o].filter(r=>typeof r=="string"&&r.trim().length>0).join(`
4
+
5
+ `)}async convertMessages(t,n){let o=[],r=this.getEffectiveStrictThinkingSignature(n);for(let s of t.filter(a=>a.role!=="system")){let a=s.role==="user"?"user":"assistant";if(typeof s.content=="string"){o.push({role:a,content:s.content});continue}let u=[],l=[];for(let c of s.content)c.type==="thinking"?!r||typeof c.signature=="string"&&c.signature.length>0?u.push({type:"thinking",thinking:c.thinking,signature:c.signature??""}):c.thinking&&l.push(c.thinking):c.type==="redacted_thinking"&&(r||u.push({type:"redacted_thinking",data:c.data}));l.length>0&&s.role==="assistant"&&u.push({type:"text",text:`<prior_reasoning>
6
+ ${l.join(`
7
+
8
+ `)}
9
+ </prior_reasoning>`});for(let c of s.content)if(c.type==="tool_result"&&s.role==="user"){let p;if(typeof c.content=="string")p=c.content;else{let m=[];for(let g of c.content)g.type==="text"?m.push({type:"text",text:g.text}):g.type==="image"&&m.push({type:"image",source:{type:"base64",media_type:it(g.path,g.mediaType),data:await st(g.path)}});p=m}u.push({type:"tool_result",tool_use_id:c.tool_use_id,content:p,...c.is_error===!0?{is_error:!0}:{}})}for(let c of s.content)c.type==="tool_use"&&s.role==="assistant"&&u.push({type:"tool_use",id:c.id,name:c.name,input:c.input});for(let c of s.content)c.type==="text"?u.push({type:"text",text:c.text}):c.type==="image"&&s.role==="user"&&u.push({type:"image",source:{type:"base64",media_type:it(c.path,c.mediaType),data:await st(c.path)}});if(a==="assistant"&&this.config.supportsThinking&&!r){let c=u.some(m=>m.type==="tool_use"),p=u.some(m=>m.type==="thinking"||m.type==="redacted_thinking");c&&!p&&u.unshift({type:"thinking",thinking:"...",signature:""})}let f=u.length===0||(a==="assistant"||a==="user")&&u.every(c=>{let p=c;return p.type==="thinking"&&!p.thinking||p.type==="text"&&!p.text});o.push({role:s.role,content:f?[{type:"text",text:"..."}]:u})}return this.repairToolCallHistory(o)}repairToolCallHistory(t){let n=i((o,r)=>{let s=new Set;if(!o||typeof o.content=="string"||!Array.isArray(o.content))return s;for(let a of o.content){let u=a;r==="tool_use"&&u.type==="tool_use"&&u.id&&s.add(u.id),r==="tool_result"&&u.type==="tool_result"&&u.tool_use_id&&s.add(u.tool_use_id)}return s},"collectIds");return t.map((o,r)=>{if(typeof o.content=="string"||!Array.isArray(o.content))return o;let s=o.content;if(o.role==="assistant"){let a=n(t[r+1],"tool_result");s=s.filter(u=>{let l=u;return l.type!=="tool_use"||!!l.id&&a.has(l.id)})}else if(o.role==="user"){let a=n(t[r-1],"tool_use");s=s.filter(u=>{let l=u;return l.type!=="tool_result"||!!l.tool_use_id&&a.has(l.tool_use_id)})}return s.length===o.content.length?o:s.length===0?{...o,content:[{type:"text",text:"..."}]}:{...o,content:s}})}};import Ur from"openai";var Wr="KodaX";function Qn(e){return e==="native-budget"||e==="native-effort"||e==="native-toggle"||e==="none"}i(Qn,"isOpenAIReasoningAttempt");function zr(e){return e.userAgentMode==="sdk"?void 0:{"User-Agent":Wr}}i(zr,"getOpenAICompatDefaultHeaders");function Xr(e){if(e.effort!=="none"){if(e.effort&&e.effort!=="auto")return e.effort;if(!(e.effort==="auto"&&e.effortSource==="explicit"))return Wt(se(e.effort))}}i(Xr,"selectOpenAIReasoningEffort");function Zn(e){if(!e)return;let t=typeof e.prompt_tokens=="number"?e.prompt_tokens:0,n=typeof e.completion_tokens=="number"?e.completion_tokens:0,o=typeof e.total_tokens=="number"?e.total_tokens:t+n;if([t,n,o].some(s=>!Number.isFinite(s)||s<0)||o<t||o<n)return;let r=typeof e.prompt_tokens_details?.cached_tokens=="number"&&e.prompt_tokens_details.cached_tokens>=0?e.prompt_tokens_details.cached_tokens:typeof e.prompt_cache_hit_tokens=="number"&&e.prompt_cache_hit_tokens>=0?e.prompt_cache_hit_tokens:void 0;return{inputTokens:t,outputTokens:n,totalTokens:o,...r!==void 0?{cachedReadTokens:r}:{}}}i(Zn,"normalizeOpenAIUsage");function Vr(e){return e?e.type==="function"&&"function"in e:!1}i(Vr,"isOpenAIFunctionToolCall");function Gr(e){return typeof e=="string"?e:Array.isArray(e)?e.map(t=>{if(!t||typeof t!="object")return"";let n=Reflect.get(t,"text");if(typeof n=="string")return n;if(n&&typeof n=="object"){let o=Reflect.get(n,"value");return typeof o=="string"?o:""}return""}).filter(Boolean).join(""):""}i(Gr,"extractOpenAIMessageText");function Hr(e){if(!e||typeof e!="object")return"";let t=Reflect.get(e,"reasoning_content");return typeof t=="string"?t:Array.isArray(t)?t.map(n=>typeof n=="string"?n:n&&typeof n=="object"&&"text"in n&&typeof n.text=="string"?n.text:"").join(""):""}i(Hr,"extractOpenAIMessageReasoning");function at(e){let t=e.role;return typeof t=="string"?t:void 0}i(at,"getWireRole");function Jr(e){if(at(e)!=="assistant")return;let t=e.tool_calls;if(Array.isArray(t))return t.flatMap(n=>{if(!n||typeof n!="object")return[];let o=n.id;return typeof o=="string"&&o.trim().length>0?[{id:o,value:n}]:[]})}i(Jr,"getAssistantWireToolCalls");function qr(e){if(at(e)!=="tool")return;let t=e.tool_call_id;return typeof t=="string"&&t.trim().length>0?t:void 0}i(qr,"getToolWireCallId");function Yr(e,t){let n={...e};return t.length>0?(n.tool_calls=t.map(o=>o.value),n):(delete n.tool_calls,(n.content==null||n.content==="")&&(n.content="..."),n)}i(Yr,"rewriteAssistantWireToolCalls");var z=class extends J{static{i(this,"KodaXOpenAICompatProvider")}supportsThinking=!0;_client;get client(){return this._client??=this.buildClient()}set client(t){this._client=t}buildClient(){let t=zr(this.config);return new Ur({apiKey:this.getApiKey(),baseURL:this.config.baseUrl,...t?{defaultHeaders:t}:{}})}onStaleConnection(){this._client=void 0}async verifyCredential(t){let n=this.config.model,o=this.client,r=[{strategy:"models-list",approxTokensSpent:0,run:i(async s=>{await o.models.list({signal:s})},"run")},{strategy:"minimal-message",approxTokensSpent:6,run:i(async s=>{await o.chat.completions.create({model:n,max_tokens:1,messages:[{role:"user",content:"hi"}]},{signal:s})},"run")}];return ye({strategy:this.config.verifyStrategy??"models-list",runners:r,timeoutMs:t?.timeoutMs,signal:t?.signal,providerName:this.name})}stripCacheBoundariesFromMessages(t){return t.map(n=>{if(typeof n.content=="string")return n;let o=Be(n.content);return o.length===n.content.length?n:{...n,content:o}})}normalizeSystemForWire(t,n){let o=[];t&&t.trim().length>0&&o.push(t);let r=[];for(let s of n){if(s.role!=="system"){r.push(s);continue}let a=typeof s.content=="string"?s.content:Array.isArray(s.content)?s.content.filter(u=>typeof u=="object"&&u!==null&&u.type==="text"&&typeof u.text=="string").map(u=>u.text).join(`
10
+ `):"";a.trim().length>0&&o.push(a)}return{system:o.join(`
11
+
12
+ `),rest:r}}appendExtraBody(t,n){let o=typeof t.extra_body=="object"&&t.extra_body!==null?t.extra_body:{};t.extra_body={...o,...n}}resetReasoningCapabilityParams(t){delete t.reasoning_effort,delete t.thinking;let n=typeof t.extra_body=="object"&&t.extra_body!==null?{...t.extra_body}:void 0;if(n){if(delete n.enable_thinking,delete n.thinking_budget,delete n.thinking,Object.keys(n).length===0){delete t.extra_body;return}t.extra_body=n}}applyReasoningCapability(t,n,o){if(this.suppressReasoningEffort||n==="none")return;let r=t,s=this.getEffectiveMaxOutputTokens(t.model),a=ue(ae(this.config,se(o.effort),o.taskType),s),u=this.getReasoningProfile(t.model);if(u){this.applyReasoningProfile(r,u,o,t.model,a);return}switch(n){case"native-effort":{this.validateExplicitReasoningEffort(o,t.model);let l=Xr(o);l&&(r.reasoning_effort=l);break}case"native-budget":{this.name==="qwen"?this.appendExtraBody(r,{enable_thinking:!0,thinking_budget:a}):this.name==="zhipu"&&(r.thinking={type:"enabled",budget_tokens:a});break}case"native-toggle":{this.name==="qwen"?this.appendExtraBody(r,{enable_thinking:!0}):this.name==="zhipu"&&(r.thinking={type:"enabled"});break}default:break}}applyReasoningProfile(t,n,o,r,s){this.validateExplicitReasoningEffort(o,r);let a=this.resolveReasoningProfileIntent(o,n,r),u=n.reasoningPreset;if(u==="kimi-k2.7-code"||u==="minimax-m2-always"){t.thinking={type:"enabled"};return}if(u==="kimi-k3"){let l=o.effortSource==="omitted"&&o.effort==="none";if(a.disabled&&!l){t.thinking={type:"disabled"};return}t.thinking={type:"enabled",effort:l?n.defaultEffort??"max":a.effort??n.defaultEffort??"max"};return}if(!(u==="none"||n.effortStrategy==="none"||n.effortStrategy==="prompt-only")){if(u==="qwen-hybrid-thinking"){if(a.disabled){this.appendExtraBody(t,{enable_thinking:!1});return}let l=this.resolveReasoningProfileBudget(n,a.effort,r,s);this.appendExtraBody(t,{enable_thinking:!0,...l!==void 0?{thinking_budget:l}:{}});return}if(u==="deepseek-v4-openai"||u==="zai-glm-5.2"){t.thinking={type:a.disabled?"disabled":"enabled"},!a.disabled&&a.effort&&(t.reasoning_effort=a.effort);return}if(u==="zai-glm-toggle"||u==="deepseek-toggle"||u==="kimi-hybrid-toggle"||n.thinkingStrategy==="provider-toggle"){t.thinking={type:a.disabled?"disabled":"enabled"},!a.disabled&&a.effort&&n.effortStrategy==="openai-chat-effort"&&(t.reasoning_effort=a.effort);return}if(n.effortStrategy==="openai-chat-effort"){if(a.disabled){n.supportedEfforts?.some(l=>l.value==="none")&&(t.reasoning_effort="none");return}a.effort&&(t.reasoning_effort=a.effort);return}if(n.effortStrategy==="provider-budget"){if(a.disabled){t.thinking={type:"disabled"};return}let l=this.resolveReasoningProfileBudget(n,a.effort,r,s);t.thinking={type:"enabled",...l!==void 0?{budget_tokens:l}:{}};return}n.effortStrategy==="provider-toggle"&&(t.thinking={type:a.disabled?"disabled":"enabled"})}}resolveReasoningProfileBudget(t,n,o,r){if(!t.supportsManualThinkingBudget&&t.effortStrategy!=="provider-budget")return;let s=n&&t.budgetByEffort?.[n]!==void 0?t.budgetByEffort[n]:r,a=this.getEffectiveThinkingBudgetCap(o);return a!==void 0?Math.min(s,a):s}getFallbackTerms(t){switch(t){case"profile":return["thinking","reasoning_effort","enable_thinking","thinking_budget","budget_tokens"];case"native-budget":return["thinking_budget","budget_tokens","thinking"];case"native-effort":return["reasoning_effort"];case"native-toggle":return["enable_thinking","thinking"];default:return[]}}async stream(t,n,o,r,s,a){return this.withRateLimit(async()=>{let u=this.stripCacheBoundariesFromMessages(t),{system:l,rest:f}=this.normalizeSystemForWire(o,u),c=s?.modelOverride??this.config.model,p=[{role:"system",content:l},...await this.convertMessages(f,c),...s?.ephemeralSuffix?.content?[{role:"user",content:s.ephemeralSuffix.content}]:[]],m=n.map(w=>({type:"function",function:{name:w.name,description:w.description,parameters:w.input_schema}})),g=s?.forcedToolName,T=!!g;if(a?.aborted)throw new DOMException("Request aborted","AbortError");let d=new Map,C="",y="",E,k=!0,v=null,P=Date.now(),h=this.normalizeReasoning(r);this.validateExplicitReasoningEffort(h,c);let _=this.getReasoningProfile(c),A=pe(h)?this.getReasoningCapability(c):"none",F=_?["profile","none"]:pe(h)?this.getReasoningFallbackChain(A).filter(Qn):["none"],W={model:c,messages:p,tools:m,max_completion_tokens:s?.maxOutputTokensOverride??this.getEffectiveMaxOutputTokens(c),stream:!0};g&&T&&(W.tool_choice={type:"function",function:{name:g}});let K,Y;for(let w of F){for(;!K;){let N={...W};k&&(N.stream_options={include_usage:!0}),this.resetReasoningCapabilityParams(N),this.applyReasoningCapability(N,w,h);try{K=await this.client.chat.completions.create(N,a?{signal:a}:{})}catch(O){if(Y=O,T&&this.shouldFallbackForForcedToolChoiceError(O)){T=!1,delete W.tool_choice,this.logStreamDiagnostic(`[${this.name}] upstream rejected forced tool_choice; retrying without forced tool choice`);continue}if(k&&this.shouldFallbackForSpecificReasoningError(O,"stream_options","include_usage")){k=!1;continue}if(!this.shouldFallbackForReasoningError(O,...this.getFallbackTerms(w)))throw O;break}}if(K)break}if(!K)throw Y??new M("All reasoning capability attempts failed without a captured error",this.name);let te=Date.now(),R=0,D=0,V=3e4;for await(let w of K){if(a?.aborted)throw new DOMException("Request aborted","AbortError");let N=Date.now(),O=N-te;O>V&&(R++,D+=O,this.logStreamDiagnostic(`[Stream] stall detected: ${Math.round(O/1e3)}s gap`,{stallCount:R,totalStallMs:D})),te=N,s?.onHeartbeat?.(),E=Zn(w.usage)??E;let x=w.choices[0],S=x?.delta;if(x?.finish_reason&&(v=x.finish_reason,process.env.KODAX_DEBUG_STREAM)){let b=Date.now()-P;this.logStreamDiagnostic(`[Stream] finish_reason: ${v} after ${b}ms`)}S?.content&&(C+=S.content,s?.onTextDelta?.(S.content));let I=this.extractReasoningDelta(S);if(I&&(y+=I,s?.onThinkingDelta?.(I)),S?.tool_calls)for(let b of S.tool_calls){let ie=d.get(b.index)??{id:"",name:"",arguments:""};b.id&&(ie.id=b.id),b.function?.name&&(ie.name=b.function.name),b.function?.arguments&&(ie.arguments+=b.function.arguments,s?.onToolInputDelta?.(ie.name,b.function.arguments,ie.id?{toolId:ie.id}:void 0)),d.set(b.index,ie)}}if(!v){let w=Date.now()-P;if(a?.aborted){let O=a.reason instanceof Error?a.reason.message:typeof a.reason=="string"?a.reason:"Request aborted";throw this.logStreamDiagnostic("[Stream] Stream ended after abort before finish_reason:",{duration:w,reason:O,textContentLength:C.length,toolCallsCount:d.size}),new DOMException(O,"AbortError")}let N=new Error(`Stream incomplete: finish_reason not received. Duration: ${w}ms. This may indicate a network disconnection or API timeout.`);throw N.name="StreamIncompleteError",this.logStreamDiagnostic("[Stream] Incomplete stream detected:",{duration:w,textContentLength:C.length,toolCallsCount:d.size}),N}let re=C?[{type:"text",text:C}]:[],Se=[],we=[];y&&(we.push({type:"thinking",thinking:y}),s?.onThinkingEnd?.(y));let Ge=he(v??void 0);for(let[,w]of d)if(w.id&&w.name){let N=me(w.arguments),O=N.salvaged?Ge?{_salvaged:!0}:{_salvaged:!0,_truncated:!0}:{};Se.push({type:"tool_use",id:w.id,name:w.name,input:N.value,...O})}else process.env.KODAX_DEBUG_TOOL_STREAM&&console.error("[Tool Block Invalid] Dropped tool_call missing id or name:",{id:JSON.stringify(w.id),name:JSON.stringify(w.name),argsLength:w.arguments?.length??0});return{textBlocks:re,toolBlocks:Se,thinkingBlocks:we,usage:E,stopReason:v??void 0}},a,3,s?.onRateLimit,s?.onRetryAfter,{model:s?.modelOverride??this.config.model,onRejected:s?.onReasoningEffortRejected})}supportsNonStreamingFallback(){return!0}async complete(t,n,o,r,s,a){return this.withRateLimit(async()=>{let u=this.stripCacheBoundariesFromMessages(t),{system:l,rest:f}=this.normalizeSystemForWire(o,u),c=s?.modelOverride??this.config.model,p=[{role:"system",content:l},...await this.convertMessages(f,c),...s?.ephemeralSuffix?.content?[{role:"user",content:s.ephemeralSuffix.content}]:[]],m=n.map(R=>({type:"function",function:{name:R.name,description:R.description,parameters:R.input_schema}})),g=s?.forcedToolName,T=!!g,d=this.normalizeReasoning(r);this.validateExplicitReasoningEffort(d,c);let C=this.getReasoningProfile(c),y=pe(d)?this.getReasoningCapability(c):"none",E=C?["profile","none"]:pe(d)?this.getReasoningFallbackChain(y).filter(Qn):["none"],k={model:c,messages:p,tools:m,max_completion_tokens:s?.maxOutputTokensOverride??this.getEffectiveMaxOutputTokens(c)};g&&T&&(k.tool_choice={type:"function",function:{name:g}});let v,P;for(let R of E){for(;!v;){let D={...k};this.resetReasoningCapabilityParams(D),this.applyReasoningCapability(D,R,d);try{v=await this.client.chat.completions.create(D,a?{signal:a}:{})}catch(V){if(P=V,T&&this.shouldFallbackForForcedToolChoiceError(V)){T=!1,delete k.tool_choice,this.logStreamDiagnostic(`[${this.name}] upstream rejected forced tool_choice; retrying without forced tool choice`);continue}if(!this.shouldFallbackForReasoningError(V,...this.getFallbackTerms(R)))throw V;break}}if(v)break}if(!v)throw P??new M("All reasoning capability attempts failed without a captured error",this.name);let h=v.choices[0],_=h?.message,A=Gr(_?.content),F=Hr(_),W=he(h?.finish_reason??void 0),K=(_?.tool_calls??[]).filter(Vr).map(R=>{let D=me(R.function.arguments),V=D.salvaged?W?{_salvaged:!0}:{_salvaged:!0,_truncated:!0}:{};return{type:"tool_use",id:R.id,name:R.function.name,input:D.value,...V}});A&&s?.onTextDelta?.(A);let Y=A?[{type:"text",text:A}]:[],te=[];return F&&(te.push({type:"thinking",thinking:F}),s?.onThinkingDelta?.(F),s?.onThinkingEnd?.(F)),{textBlocks:Y,toolBlocks:K,thinkingBlocks:te,usage:Zn(v.usage),stopReason:h?.finish_reason??void 0}},a,3,s?.onRateLimit,s?.onRetryAfter,{model:s?.modelOverride??this.config.model,onRejected:s?.onReasoningEffortRejected})}extractReasoningDelta(t){let n=t?.reasoning_content;return typeof n=="string"?n:Array.isArray(n)?n.map(o=>typeof o=="string"?o:typeof o=="object"&&o!==null&&"text"in o&&typeof o.text=="string"?o.text:"").join(""):""}serializeAssistantMessage(t,n){let o=t.filter(c=>c.type==="text").map(c=>c.text).join(`
13
+ `),r=t.filter(c=>c.type==="tool_use").map(c=>({id:c.id,type:"function",function:{name:c.name,arguments:JSON.stringify(c.input??{})}})),s=t.filter(c=>c.type==="thinking"||c.type==="redacted_thinking").map(c=>c.type==="thinking"?c.thinking:"").filter(Boolean).join(`
14
+
15
+ `),a=t.some(c=>c.type==="thinking"||c.type==="redacted_thinking"),u=t.some(c=>c.type==="text");if(!o&&r.length===0&&!a&&!u)return[];let l;o?l=o:r.length>0?l=null:l="...";let f={role:"assistant",content:l};return r.length>0&&(f.tool_calls=r),this.getEffectiveReplayReasoningContent(n)&&(f.reasoning_content=s||""),[f]}async serializeUserMessage(t){let n=[],o=t.filter(a=>a.type==="text").map(a=>a.text).join(`
16
+ `),r=t.filter(a=>a.type==="image");for(let a of t)if(a.type==="tool_result"){let u;typeof a.content=="string"?u=a.content:u=a.content.map(l=>l.type==="text"?l.text:`[Image at ${l.path}${l.mediaType?` (${l.mediaType})`:""}] (provider does not support image content in tool_result; if the image was previously visible to you in the conversation, refer to it directly via native vision)`).join(`
17
+ `),n.push({role:"tool",tool_call_id:a.tool_use_id,content:u})}if(r.length===0)return o&&n.push({role:"user",content:o}),n;let s=[];o&&s.push({type:"text",text:o});for(let a of r)s.push({type:"image_url",image_url:{url:await Hn(a.path,a.mediaType)}});return n.push({role:"user",content:s}),n}serializeSystemMessage(t){if(typeof t=="string")return[{role:"system",content:t}];let n=t.filter(o=>o.type==="text").map(o=>o.text).join(`
18
+ `);return n?[{role:"system",content:n}]:[]}async convertMessages(t,n){let o=[];for(let r of t){if(r.role==="system"){o.push(...this.serializeSystemMessage(r.content));continue}if(typeof r.content=="string"){o.push({role:r.role,content:r.content});continue}if(r.role==="assistant"){o.push(...this.serializeAssistantMessage(r.content,n));continue}o.push(...await this.serializeUserMessage(r.content))}return this.repairToolCallHistory(o)}repairToolCallHistory(t){let n=[],o=0;for(;o<t.length;){let r=t[o],s=Jr(r);if(s===void 0){at(r)!=="tool"&&n.push(r),o+=1;continue}let a=new Set(s.map(m=>m.id)),u=new Set,l=[],f=o+1;for(;f<t.length&&at(t[f])==="tool";){let m=t[f],g=qr(m);g!==void 0&&a.has(g)&&!u.has(g)&&(u.add(g),l.push(m)),f+=1}let c=s.filter(m=>u.has(m.id)),p=c.length===s.length&&s.length>0?r:Yr(r,c);n.push(p),c.length>0&&n.push(...l),o=f}return n}};import{spawn as ai}from"node:child_process";import{Readable as ui,Writable as ci}from"node:stream";import ct from"node:process";import{ClientSideConnection as li,PROTOCOL_VERSION as fi,ndJsonStream as di}from"@agentclientprotocol/sdk";import{spawn as Qr,spawnSync as Zt}from"node:child_process";var en=2e3,H=2e3,Zr=5e3,ei=String.raw`
19
+ using System;
20
+ using System.Runtime.InteropServices;
21
+ using System.Text;
22
+ public static class KodaXNativeProcessSnapshot {
23
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
24
+ private struct ProcessEntry32 {
25
+ public uint dwSize;
26
+ public uint cntUsage;
27
+ public uint th32ProcessID;
28
+ public IntPtr th32DefaultHeapID;
29
+ public uint th32ModuleID;
30
+ public uint cntThreads;
31
+ public uint th32ParentProcessID;
32
+ public int pcPriClassBase;
33
+ public uint dwFlags;
34
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
35
+ public string szExeFile;
36
+ }
37
+ [DllImport("kernel32.dll", SetLastError = true)]
38
+ private static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processId);
39
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
40
+ private static extern bool Process32First(IntPtr snapshot, ref ProcessEntry32 entry);
41
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
42
+ private static extern bool Process32Next(IntPtr snapshot, ref ProcessEntry32 entry);
43
+ [DllImport("kernel32.dll")]
44
+ private static extern bool CloseHandle(IntPtr handle);
45
+ public static string ReadRows() {
46
+ var snapshot = CreateToolhelp32Snapshot(2, 0);
47
+ if (snapshot == new IntPtr(-1)) return string.Empty;
48
+ var rows = new StringBuilder();
49
+ var entry = new ProcessEntry32();
50
+ entry.dwSize = (uint)Marshal.SizeOf(entry);
51
+ try {
52
+ if (!Process32First(snapshot, ref entry)) return string.Empty;
53
+ do {
54
+ rows.Append(entry.th32ProcessID).Append(',').Append(entry.th32ParentProcessID).Append('\n');
55
+ entry.dwSize = (uint)Marshal.SizeOf(entry);
56
+ } while (Process32Next(snapshot, ref entry));
57
+ return rows.ToString();
58
+ } finally {
59
+ CloseHandle(snapshot);
60
+ }
61
+ }
62
+ }`;function Qt(e){return e.exitCode!==null||e.signalCode!==null}i(Qt,"isExited");function je(e,t){return Qt(e)?Promise.resolve(!0):new Promise(n=>{let o=!1,r=i(u=>{o||(o=!0,clearTimeout(a),e.off("exit",s),e.off("error",s),n(u))},"finish"),s=i(()=>r(!0),"onExit"),a=setTimeout(()=>r(!1),t);a.unref?.(),e.once("exit",s),e.once("error",s)})}i(je,"waitForExit");function ti(e){return new Promise(t=>{let n=Qr("taskkill",["/pid",String(e),"/t","/f"],{stdio:"ignore",windowsHide:!0}),o=!1,r=i(a=>{o||(o=!0,clearTimeout(s),t(a))},"finish"),s=setTimeout(()=>{try{n.kill()}catch{}r(!1)},en);s.unref?.(),n.once("exit",a=>r(a===0)),n.once("error",()=>r(!1))})}i(ti,"runTaskkill");function eo(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}i(eo,"signalPosixPidTree");function Z(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}i(Z,"signalTargetExists");function to(e){return Z(-e)||Z(e)}i(to,"isPosixPidTreeAlive");async function no(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!to(e))return!0;await new Promise(o=>setTimeout(o,50))}return!to(e)}i(no,"waitForPosixPidTreeExit");async function ni(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!Z(e))return!0;await new Promise(o=>setTimeout(o,50))}return!Z(e)}i(ni,"waitForWindowsPidExit");async function Yt(e,t){let n=[...new Set(e.filter(r=>Number.isFinite(r)&&r>0))];if(n.length===0)return!0;let o=Date.now()+t;for(;Date.now()<o;){if(n.every(r=>!Z(r)))return!0;await new Promise(r=>setTimeout(r,50))}return n.every(r=>!Z(r))}i(Yt,"waitForWindowsPidsExit");function oo(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).map(r=>Number(r)).filter(r=>Number.isFinite(r)&&r>0)}catch{return[]}}i(oo,"readWindowsPidListJson");function oi(e){let t=Zt("wmic",["process","where",`ParentProcessId=${e}`,"get","ProcessId","/format:list"],{encoding:"utf8",timeout:en,windowsHide:!0});if(t.error||t.status!==0)return[];let n=[],o=/ProcessId=(\d+)/g,r;for(;(r=o.exec(t.stdout))!==null;){let s=Number(r[1]);Number.isFinite(s)&&s>0&&s!==e&&n.push(s)}return n}i(oi,"getWindowsChildPidsViaWmic");function ri(e){let t=[`$children = Get-CimInstance Win32_Process -Filter "ParentProcessId = ${e}"`,"if ($null -eq $children) { exit 0 }","$children | Select-Object -ExpandProperty ProcessId | ConvertTo-Json -Compress"].join("; "),n=Zt("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:en,windowsHide:!0});if(!n.error&&n.status===0){let r=oo(n.stdout);if(r.length>0)return r}let o=oo(n.stdout);return o.length>0?o:oi(e)}i(ri,"getWindowsChildPids");function ii(e){let t=["$source = @'",ei,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
63
+ `),n=Zt("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:Zr,windowsHide:!0});return n.error||n.status!==0?[]:si(n.stdout,e)}i(ii,"collectWindowsDescendantPidsNative");function si(e,t){let n=new Map;for(let a of e.split(/\r?\n/)){let[u,l]=a.split(",",2),f=Number(u),c=Number(l);!Number.isFinite(f)||f<=0||!Number.isFinite(c)||n.set(c,[...n.get(c)??[],f])}let o=[],r=[t],s=new Set([t]);for(;r.length>0;){let a=r.shift();if(a===void 0)break;for(let u of n.get(a)??[])s.has(u)||(s.add(u),o.push(u),r.push(u))}return o}i(si,"collectDescendantsFromProcessRows");function ro(e,t=new Set){let n=[];for(let o of ri(e))t.has(o)||(t.add(o),n.push(o),n.push(...ro(o,t)));return n}i(ro,"collectWindowsDescendantPids");async function ut(e,t){try{process.kill(e,t)}catch{return!Z(e)}return ni(e,H)}i(ut,"killWindowsPid");async function Fe(e){if(process.platform==="win32"&&e.pid!==void 0){if(!Qt(e)&&await ti(e.pid)&&await Yt([e.pid],H)){await je(e,H);return}let n=ii(e.pid);n.length===0&&(n=ro(e.pid));let o=[...n].reverse(),r=[e.pid,...n];for(let s of o)Z(s)&&await ut(s,"SIGTERM");if(await ut(e.pid,"SIGTERM"),await Yt(r,H)){await je(e,H);return}for(let s of o)Z(s)&&await ut(s,"SIGKILL");await ut(e.pid,"SIGKILL"),await Yt(r,H),await je(e,H);return}if(e.pid!==void 0&&process.platform!=="win32"){if(!eo(e.pid,"SIGTERM")||await no(e.pid,H))return;eo(e.pid,"SIGKILL"),await no(e.pid,H);return}if(!Qt(e)){try{e.kill("SIGTERM")}catch{return}if(!await je(e,H)){try{e.kill("SIGKILL")}catch{}await je(e,H)}}}i(Fe,"killChildProcessTree");var lt=class{static{i(this,"AcpClient")}client=null;agentProcess=null;options;constructor(t){this.options=t}async connect(){let t,n;if(this.options.inputStream&&this.options.outputStream)t=this.options.inputStream,n=this.options.outputStream;else if(this.options.command){let s=ct.platform==="win32"&&!this.options.command.endsWith(".cmd")?`${this.options.command}.cmd`:this.options.command;if(this.agentProcess=ai(s,this.options.args??[],{cwd:this.options.cwd??ct.cwd(),stdio:["pipe","pipe","inherit"],detached:ct.platform!=="win32"}),!this.agentProcess.stdin||!this.agentProcess.stdout)throw new Error("Failed to create ACP stdio pipes");n=ci.toWeb(this.agentProcess.stdin),t=ui.toWeb(this.agentProcess.stdout)}else throw new Error("AcpClient requires either a command or I/O streams");let o=di(n,t);this.client=new li(()=>({sessionUpdate:i(async r=>{this.options.onSessionUpdate?.(r)},"sessionUpdate"),requestPermission:i(async r=>{let s=r.options??[],a=s.find(u=>u.kind==="allow_once"||u.kind==="allow_always")??s[0];return a?{outcome:{outcome:"selected",optionId:a.optionId}}:{outcome:{outcome:"cancelled"}}},"requestPermission")}),o),await this.client.initialize({protocolVersion:fi,clientCapabilities:{},clientInfo:{name:"kodax-ai-acp-client",version:"1.0.0"}})}async createNewSession(){if(!this.client)throw new Error("Client not connected");return(await this.client.newSession({cwd:this.options.cwd??ct.cwd(),mcpServers:[]})).sessionId}async prompt(t,n,o,r){if(!this.client)throw new Error("Client not connected");let s={sessionId:n,prompt:[{type:"text",text:t}]};r?.model&&(s.model=r.model),r?.reasoningEffort&&(s.effort=r.reasoningEffort);let a=this.client.prompt(s);if(o){let u=i(()=>{this.client?.cancel({sessionId:n}).catch(()=>{})},"onAbort");o.addEventListener("abort",u),a=a.finally(()=>{o.removeEventListener("abort",u)})}return await a}disconnect(){this.agentProcess&&Fe(this.agentProcess),this.options.abort?.();try{this.client?.close?.()}catch{}this.client=null,this.agentProcess=null}};function pi(e){if(!e||typeof e!="object")return;let t=e,n=typeof t.inputTokens=="number"?t.inputTokens:0,o=typeof t.outputTokens=="number"?t.outputTokens:0,r=typeof t.totalTokens=="number"?t.totalTokens:n+o;if(![n,o,r].some(s=>!Number.isFinite(s)||s<0)&&!(r<n||r<o))return{inputTokens:n,outputTokens:o,totalTokens:r,cachedReadTokens:typeof t.cachedReadTokens=="number"?t.cachedReadTokens:void 0,cachedWriteTokens:typeof t.cachedWriteTokens=="number"?t.cachedWriteTokens:void 0,thoughtTokens:typeof t.thoughtTokens=="number"?t.thoughtTokens:void 0}}i(pi,"normalizeAcpUsage");function gi(e){if(e.effort==="none")return"none";if(!(!e.enabled||e.effort==="auto"))return e.effort}i(gi,"selectAcpReasoningEffort");var ke=class extends J{static{i(this,"KodaXAcpProvider")}_client=null;_sessionMap=new Map;_activeStreams=new Map;isConfigured(){return!0}async verifyCredential(){return{ok:!1,error:"unsupported",strategy:"unsupported",durationMs:0,approxTokensSpent:0,message:`CLI-bridge provider "${this.name}" manages credentials in its CLI binary's token store; not verifiable from the KodaX SDK`}}getCapabilityProfile(){return G(Le)}serializeImageBlockToPromptToken(t){return null}stripCacheBoundariesFromMessages(t){return t.map(n=>{if(typeof n.content=="string")return n;let o=Be(n.content);return o.length===n.content.length?n:{...n,content:o}})}async stream(t,n,o,r,s,a){let u=this.normalizeReasoning(r),l=gi(u);if(t=this.stripCacheBoundariesFromMessages(t),this.acpClientOptions.executor&&typeof this.acpClientOptions.executor.isInstalled=="function"&&!await this.acpClientOptions.executor.isInstalled())throw new Error(`${this.name} requires a local CLI environment, but the CLI was not found or is not configured correctly.`);let f=[],c=[],p=t[t.length-1],m="";if(p&&typeof p.content=="string")m=p.content;else if(p&&Array.isArray(p.content)){let k=[];for(let v of p.content)if(v.type==="text")k.push(v.text);else if(v.type==="image"){let P=this.serializeImageBlockToPromptToken(v);P&&k.push(P)}m=k.join(`
64
+ `)}let g=s?.ephemeralSuffix?.content;g&&(m=m.length>0?`${m}
65
+
66
+ ${g}`:g);let T={...this.acpClientOptions,onSessionUpdate:i(k=>{let v=k.update,P=k.sessionId;if(!("sessionUpdate"in v))return;let h=P?this._activeStreams.get(P):void 0;if(h)switch(v.sessionUpdate){case"agent_message_chunk":if(v.content?.type==="text"){let _=v.content.text;h.output.text+=_,h.streamOptions?.onTextDelta?.(_)}break;case"tool_call":{let _="{}",A=v.arguments??v.parameters;A&&(_=typeof A=="string"?A:JSON.stringify(A)),h.streamOptions?.onToolInputDelta?.(v.title,_);let F=`
67
+ > [Tool Use] ${v.title}: ${_}
68
+ `;h.output.text+=F,h.streamOptions?.onTextDelta?.(F);break}case"tool_call_update":if(v.status){let _=`> [Tool Result] ${v.status}
69
+
70
+ `;h.output.text+=_,h.streamOptions?.onTextDelta?.(_)}break}},"onSessionUpdate")},d=s?.sessionId??"default";this._client||(this._client=new lt(T),await this._client.connect());let C=this._sessionMap.get(d);C||(C=await this._client.createNewSession(),this._sessionMap.set(d,C));let y={text:""};this._activeStreams.set(C,{streamOptions:s,output:y});let E;try{E=await this._client.prompt(m,C,a,{model:s?.modelOverride,reasoningEffort:l})}catch(k){if(!(k instanceof Error&&k.name==="AbortError"))throw k}finally{this._activeStreams.delete(C)}return y.text&&f.push({type:"text",text:y.text}),{textBlocks:f,toolBlocks:c,thinkingBlocks:[],usage:pi(E?.usage)}}disconnect(){this._client&&(this._client.disconnect(),this._client=null),this._activeStreams.clear(),this._sessionMap.clear()}};import{spawn as mi}from"node:child_process";import ft from"node:process";var Ee=class{static{i(this,"CLIExecutor")}config;_installedCache=null;constructor(t){this.config=t}async isInstalled(){return this._installedCache!==null?this._installedCache:(this._installedCache=await this.checkInstalled(),this._installedCache)}async*execute(t){let n=this.buildArgs(t),o={...ft.env,...this.config.env},s=ft.platform==="win32"&&!this.config.command.endsWith(".cmd")?`${this.config.command}.cmd`:this.config.command,a=mi(s,n,{cwd:this.config.cwd??ft.cwd(),env:o,stdio:["ignore","pipe","pipe"],detached:ft.platform!=="win32"}),u="";a.stderr?.on("data",c=>{u+=c.toString()});let l=!1,f=i(()=>{l||Fe(a)},"abortHandler");t.signal?.addEventListener("abort",f),a.on("exit",()=>{l=!0});try{yield*this.parseOutputStream(a.stdout,t.signal),u.trim()&&console.error(`[CLIExecutor] stderr: ${u.trim()}`)}finally{t.signal?.removeEventListener("abort",f),l||await Fe(a)}}async*parseOutputStream(t,n){let o="";for await(let r of t){if(n?.aborted)break;o+=r.toString();let s=o.split(`
71
+ `);o=s.pop()??"";for(let a of s){if(!a.trim())continue;let u=this.parseLine(a.trim());u&&(yield u)}}if(o.trim()&&!n?.aborted){let r=this.parseLine(o.trim());r&&(yield r)}}};import{spawn as hi}from"node:child_process";import yi from"node:process";async function dt(e){try{let t=yi.platform==="win32",n=hi(t?`${e}.cmd`:e,["--version"]);return await new Promise(o=>{n.on("close",r=>o(r===0)),n.on("error",()=>o(!1))})}catch{return!1}}i(dt,"checkCliCommandInstalled");var pt=class extends Ee{static{i(this,"GeminiCLIExecutor")}model;constructor(t){super({command:"gemini",baseArgs:["--output-format","stream-json","--approval-mode","yolo"],timeout:3e5,...t}),this.model=t?.model??"gemini-2.5-pro"}async checkInstalled(){return dt("gemini")}buildArgs(t){let n=["-m",t.model??this.model];return t.sessionId?(n.push("-r",t.sessionId),n.push(t.prompt)):n.push("-p",t.prompt),[...n,...this.config.baseArgs]}parseLine(t){if(!t.startsWith("{"))return null;try{let n=JSON.parse(t);return this.convertEvent(n)}catch{return null}}convertEvent(t){let n=t.timestamp?Date.parse(t.timestamp):Date.now();switch(t.type){case"init":return{type:"session_start",timestamp:n,sessionId:t.session_id??"",model:t.model??this.model,raw:t};case"message":return{type:"message",timestamp:n,role:t.role,content:t.content??"",delta:t.delta,raw:t};case"tool_use":return{type:"tool_use",timestamp:n,toolId:t.tool_id??"",toolName:t.tool_name??"",parameters:t.parameters??{},raw:t};case"tool_result":return{type:"tool_result",timestamp:n,toolId:t.tool_id??"",status:t.status==="success"?"success":"error",output:t.output??"",raw:t};case"error":return{type:"error",timestamp:n,errorType:"error",message:t.message??"Unknown error",raw:t};case"result":return{type:"complete",timestamp:n,status:t.status==="success"?"success":"failed",usage:t.stats?{inputTokens:t.stats.input_tokens??0,outputTokens:t.stats.output_tokens??0,totalTokens:t.stats.total_tokens??0}:void 0,raw:t};default:return null}}};import{TransformStream as io}from"node:stream/web";import{randomUUID as tn}from"node:crypto";function gt(e){let t=new io,n=new io,o=t.readable.getReader(),r=n.writable.getWriter(),s=new TextDecoder,a=new TextEncoder,u="",l=tn(),f=new AbortController,c=new Map;(async()=>{try{for(;;){let{done:d,value:C}=await o.read();if(d)break;u+=s.decode(C,{stream:!0});let y=u.split(`
72
+ `);u=y.pop()??"";for(let E of y)if(E.trim())try{let k=JSON.parse(E);m(k).catch(v=>{console.error("[PseudoAcpServer] Failed to handle request:",v)})}catch{console.error("[PseudoAcpServer] Failed to parse message:",E)}}}catch(d){console.error("[PseudoAcpServer] Stream read error:",d)}})();let p=i(async d=>{let C=JSON.stringify(d)+`
73
+ `;await r.write(a.encode(C))},"sendMsg");async function m(d){if(d.method==="initialize")await p({jsonrpc:"2.0",id:d.id,result:{protocolVersion:d.params.protocolVersion,serverInfo:{name:"pseudo-acp-server",version:"1.0.0"},serverCapabilities:{}}});else if(d.method==="session/new"||d.method==="sessions/new")l=d.params?.sessionId??tn(),await p({jsonrpc:"2.0",id:d.id,result:{sessionId:l}});else if(d.method==="session/prompt"||d.method==="chat/prompt"){let C=new AbortController,y=d.params.sessionId;c.set(y,C);let E=i(()=>C.abort(),"onGlobalAbort");f.signal.addEventListener("abort",E);let v=await g(y,d.params.prompt,typeof d.params.model=="string"?d.params.model:void 0,typeof d.params.effort=="string"?d.params.effort:void 0,C.signal).finally(()=>{c.delete(y),f.signal.removeEventListener("abort",E)});await p({jsonrpc:"2.0",id:d.id,result:v.usage?{stopReason:v.stopReason,usage:v.usage}:{stopReason:v.stopReason}})}else if(d.method==="session/cancel"||d.method==="chat/cancel"){let C=c.get(d.params.sessionId);C&&C.abort(),d.id!==void 0&&await p({jsonrpc:"2.0",id:d.id,result:{}})}else d.id!==void 0&&await p({jsonrpc:"2.0",id:d.id,result:{}})}i(m,"handleRequest");let g=i(async(d,C,y,E,k)=>{let v=C.find(P=>P.type==="text")?.text??"";try{let P=e.execute({prompt:v,model:y,reasoningEffort:E,sessionId:d==="default"?void 0:d,signal:k});for await(let h of P){let _=T(h);if(_&&await p({jsonrpc:"2.0",method:"session/update",params:{sessionId:d,update:_}}),h.type==="complete")return{stopReason:k.aborted?"cancelled":"end_turn",usage:h.usage}}return{stopReason:k.aborted?"cancelled":"end_turn"}}catch(P){return k.aborted||P instanceof Error&&P.name==="AbortError"?{stopReason:"cancelled"}:(console.error("[PseudoAcpServer] Error executing prompt:",P),await p({jsonrpc:"2.0",method:"session/update",params:{sessionId:d,update:{sessionUpdate:"agent_message_chunk",content:{type:"text",text:`
74
+ [Fatal Error: ${P}]
75
+ `}}}}),{stopReason:"end_turn"})}},"executePrompt"),T=i(d=>{switch(d.type){case"message":if(d.role==="assistant"&&d.content)return{sessionUpdate:"agent_message_chunk",content:{type:"text",text:d.content}};break;case"tool_use":return{sessionUpdate:"tool_call",title:d.toolName,arguments:d.parameters,status:"running",toolCallId:d.toolId||tn()};case"tool_result":return{sessionUpdate:"tool_call_update",toolCallId:d.toolId,status:d.status};case"error":return{sessionUpdate:"agent_message_chunk",content:{type:"text",text:`
76
+ [Error: ${d.message}]
77
+ `}};case"complete":break}return null},"mapToAcpNotification");return{inputStream:n.readable,outputStream:t.writable,abort:i(()=>{f.abort(),t.readable.cancel().catch(()=>{}),n.writable.abort().catch(()=>{})},"abort"),executor:e}}i(gt,"createPseudoAcpServer");import so from"node:fs";import ao from"node:os";import uo from"node:path";var vi="gpt-5.4",ki="auto-gemini-3",Ei=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],bi=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];function co(e){let t=new Set,n=[];for(let o of e){let r=o.trim();if(!r)continue;let s=r.toLowerCase();t.has(s)||(t.add(s),n.push(r))}return n}i(co,"dedupePreserveOrder");function xi(){let e=uo.join(ao.homedir(),".codex","config.toml");try{return so.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}i(xi,"readCodexConfiguredModel");function _i(){let e=uo.join(ao.homedir(),".gemini","settings.json");try{let t=JSON.parse(so.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}i(_i,"readGeminiConfiguredModel");function be(){return xi()||vi}i(be,"getCodexCliDefaultModel");function xe(){return _i()||ki}i(xe,"getGeminiCliDefaultModel");function Ke(){return co([be(),...Ei])}i(Ke,"getCodexCliKnownModels");function Ue(){return co([xe(),...bi])}i(Ue,"getGeminiCliKnownModels");var nn=xe(),Ci=Ue(),Ti={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"image-input",evidenceSupport:"limited"},mt=class extends ke{static{i(this,"KodaXGeminiCliProvider")}name="gemini-cli";supportsThinking=!1;config={apiKeyEnv:"GEMINI_CLI_API_KEY",model:nn,models:Ci.filter(t=>t!==nn).map(t=>({id:t,displayName:t})),supportsThinking:!1,reasoningCapability:"prompt-only",contextWindow:1048576};acpClientOptions;constructor(){super();let t=new pt({model:nn});this.acpClientOptions=gt(t)}getCapabilityProfile(){return G(Ti)}serializeImageBlockToPromptToken(t){return/\s/.test(t.path)?(console.warn(`[gemini-cli] Image path contains whitespace and cannot be safely passed via @<path> syntax \u2014 dropping image block. Path: ${JSON.stringify(t.path)}`),null):`@${t.path}`}};function Pi(e){return!e||e==="auto"?[]:["--config",`model_reasoning_effort=${JSON.stringify(e)}`]}i(Pi,"buildReasoningEffortArgs");var ht=class extends Ee{static{i(this,"CodexCLIExecutor")}model;constructor(t){super({command:"codex",baseArgs:["exec","--json","--full-auto"],timeout:3e5,...t}),this.model=t?.model??"gpt-5.4"}async checkInstalled(){return dt("codex")}buildArgs(t){this.model=t.model??this.model;let n=t.model?["-m",t.model]:[],o=Pi(t.reasoningEffort);return t.sessionId?["exec","resume",t.sessionId,...n,...o,t.prompt,...this.config.baseArgs.filter(r=>r!=="exec")]:[...this.config.baseArgs,...n,...o,t.prompt]}parseLine(t){if(!t.startsWith("{"))return null;try{let n=JSON.parse(t);return this.convertEvent(n)}catch{return null}}convertEvent(t){let n=Date.now();switch(t.type){case"thread.started":return{type:"session_start",timestamp:n,sessionId:t.thread_id??"",model:this.model,raw:t};case"item.completed":return t.item?.type==="agent_message"?{type:"message",timestamp:n,role:"assistant",content:t.item.text??"",raw:t}:t.item?.type==="command_execution"?{type:"tool_use",timestamp:n,toolId:t.item.id,toolName:"Bash",parameters:{command:t.item.command},raw:t}:null;case"turn.completed":return{type:"complete",timestamp:n,status:"success",usage:t.usage?{inputTokens:t.usage.input_tokens,outputTokens:t.usage.output_tokens,totalTokens:t.usage.input_tokens+t.usage.output_tokens}:void 0,raw:t};case"error":case"turn.failed":return{type:"error",timestamp:n,errorType:t.type,message:t.message??"Unknown error",raw:t};default:return null}}};var on=be(),Si=Ke(),yt=class extends ke{static{i(this,"KodaXCodexCliProvider")}name="codex-cli";supportsThinking=!1;config={apiKeyEnv:"CODEX_CLI_API_KEY",model:on,models:Si.filter(t=>t!==on).map(t=>({id:t,displayName:t})),supportsThinking:!1,reasoningCapability:"prompt-only",contextWindow:128e3};acpClientOptions;constructor(){super();let t=new ht({model:on});this.acpClientOptions=gt(t)}};import{existsSync as Li,readFileSync as Bi}from"node:fs";import Ce from"node:path";import{fileURLToPath as ji}from"node:url";var lo=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],fo=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","provider-budget","provider-toggle","prompt-only","none"],po=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],go=["zai-glm-5.2","zai-glm-toggle","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],mo=["native","image-input-native","cli-bridge","image-input-cli-bridge"],ho=["count-tokens","models-list","minimal-message","unsupported"];function ee(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(ee,"isPlainObject");function le(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}i(le,"requireString");function _e(e,t){if(e!==void 0)return le(e,t)}i(_e,"optionalString");function ne(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}i(ne,"optionalNumber");function $(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}i($,"optionalBoolean");function yo(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,o)=>le(n,`${t}[${o}]`))}}i(yo,"optionalStringArray");function wi(e,t){if(e===void 0)return;if(!ee(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[o,r]of Object.entries(e))n[o]=le(r,`${t}.${o}`);return n}i(wi,"optionalStringMap");function Ri(e,t){if(e!==void 0){if(typeof e!="string"||!go.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${go.join(", ")}, got ${JSON.stringify(e)}`);return e}}i(Ri,"optionalReasoningPreset");function rn(e,t){if(typeof e!="string"||!lo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${lo.join(", ")}, got ${JSON.stringify(e)}`);return e}i(rn,"requireReasoningCapability");function Mi(e,t){if(typeof e!="string"||!fo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${fo.join(", ")}, got ${JSON.stringify(e)}`);return e}i(Mi,"requireEffortStrategy");function Ai(e,t){if(e!==void 0){if(typeof e!="string"||!po.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${po.join(", ")}, got ${JSON.stringify(e)}`);return e}}i(Ai,"optionalThinkingStrategy");function vo(e,t){if(e===void 0)return;if(!ee(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=Mi(e.effortStrategy,`${t}.effortStrategy`),o=Ri(e.reasoningPreset,`${t}.reasoningPreset`),r=Ai(e.thinkingStrategy,`${t}.thinkingStrategy`),s=_e(e.defaultEffort,`${t}.defaultEffort`),a=wi(e.effortAliases,`${t}.effortAliases`),u=yo(e.disabledEfforts,`${t}.disabledEfforts`),l=yo(e.localRejectEfforts,`${t}.localRejectEfforts`),f=$(e.allowCustomEffort,`${t}.allowCustomEffort`),c=$(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),p=$(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=$(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=$(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),T=$(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),d=$(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),C=$(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(o!==void 0&&(y.reasoningPreset=o),r!==void 0&&(y.thinkingStrategy=r),s!==void 0&&(y.defaultEffort=s),a!==void 0&&(y.effortAliases=a),u!==void 0&&(y.disabledEfforts=u),l!==void 0&&(y.localRejectEfforts=l),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((E,k)=>{if(!ee(E))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${k}] must be an object`);return{value:le(E.value,`${t}.supportedEfforts[${k}].value`),..._e(E.description,`${t}.supportedEfforts[${k}].description`)!==void 0?{description:_e(E.description,`${t}.supportedEfforts[${k}].description`)}:{},...$(E.isDefault,`${t}.supportedEfforts[${k}].isDefault`)!==void 0?{isDefault:$(E.isDefault,`${t}.supportedEfforts[${k}].isDefault`)}:{},...$(E.isUserVisible,`${t}.supportedEfforts[${k}].isUserVisible`)!==void 0?{isUserVisible:$(E.isUserVisible,`${t}.supportedEfforts[${k}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!ee(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let E={};for(let[k,v]of Object.entries(e.budgetByEffort))E[k]=ne(v,`${t}.budgetByEffort.${k}`)??0;y.budgetByEffort=E}return f!==void 0&&(y.allowCustomEffort=f),c!==void 0&&(y.supportsReasoningEffort=c),p!==void 0&&(y.supportsReasoningSummary=p),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),T!==void 0&&(y.supportsManualThinkingBudget=T),d!==void 0&&(y.supportsDisabledThinking=d),C!==void 0&&(y.requiresEffortBetaHeader=C),y}i(vo,"validateReasoningProfile");function ko(e,t){let n=e.reasoningProfile,o=e.reasoningCapabilityV2;if(n!==void 0&&o!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?vo(n,`${t}.reasoningProfile`):vo(o,`${t}.reasoningCapabilityV2`)}i(ko,"validateReasoningProfileField");function Di(e,t){if(typeof e!="string"||!mo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${mo.join(", ")}, got ${JSON.stringify(e)}`);return e}i(Di,"requireProfileName");function Ii(e,t){if(typeof e!="string"||!ho.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ho.join(", ")}, got ${JSON.stringify(e)}`);return e}i(Ii,"requireVerifyStrategy");function Oi(e,t){if(!ee(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=le(e.id,`${t}.id`),o=_e(e.wireModel,`${t}.wireModel`),r=_e(e.displayName,`${t}.displayName`),s=ne(e.contextWindow,`${t}.contextWindow`),a=ne(e.maxOutputTokens,`${t}.maxOutputTokens`),u=ne(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=$(e.replayReasoningContent,`${t}.replayReasoningContent`),f=$(e.strictThinkingSignature,`${t}.strictThinkingSignature`),c=ne(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),p=e.reasoningCapability===void 0?void 0:rn(e.reasoningCapability,`${t}.reasoningCapability`),m=ko(e,t),g={id:n};return o!==void 0&&(g.wireModel=o),r!==void 0&&(g.displayName=r),s!==void 0&&(g.contextWindow=s),a!==void 0&&(g.maxOutputTokens=a),u!==void 0&&(g.thinkingBudgetCap=u),p!==void 0&&(g.reasoningCapability=p),m!==void 0&&(g.reasoningProfile=m),l!==void 0&&(g.replayReasoningContent=l),f!==void 0&&(g.strictThinkingSignature=f),c!==void 0&&(g.streamMaxDurationMs=c),g}i(Oi,"validateModelDescriptor");function $i(e,t){if(e===void 0)return;if(!ee(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[o,r]of Object.entries(e))n[o]=rn(r,`${t}.${o}`);return n}i($i,"validateModelReasoningCapabilities");function Ni(e,t){if(!ee(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=$(e.cliBridge,`providers.${t}.cliBridge`),o=le(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),r=rn(e.reasoningCapability,`providers.${t}.reasoningCapability`),s=ko(e,`providers.${t}`),a=Di(e.capabilityProfile,`providers.${t}.capabilityProfile`),u=Ii(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&u!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${u}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let l=ne(e.contextWindow,`providers.${t}.contextWindow`),f=ne(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),c=ne(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),p=$(e.supportsThinking,`providers.${t}.supportsThinking`),m=$i(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),g=_e(e.model,`providers.${t}.model`);if(n&&(g!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&g===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let T;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);T=e.models.map((y,E)=>Oi(y,`providers.${t}.models[${E}]`));let C=new Set([...g===void 0?[]:[g],...T.map(y=>y.id)]);for(let[y,E]of T.entries())if(E.wireModel!==void 0&&!C.has(E.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${y}].wireModel must reference a declared model, got ${JSON.stringify(E.wireModel)}`)}let d={apiKeyEnv:o,reasoningCapability:r,capabilityProfile:a,verifyStrategy:u};return s!==void 0&&(d.reasoningProfile=s),g!==void 0&&(d.model=g),T!==void 0&&(d.models=T),l!==void 0&&(d.contextWindow=l),f!==void 0&&(d.maxOutputTokens=f),c!==void 0&&(d.thinkingBudgetCap=c),p!==void 0&&(d.supportsThinking=p),m!==void 0&&(d.modelReasoningCapabilities=m),n&&(d.cliBridge=!0),d}i(Ni,"validateProviderEntry");function Eo(e){if(!ee(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=le(e.updatedAt,"updatedAt");if(!ee(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[o,r]of Object.entries(e.providers))n[o]=Ni(r,o);return{version:1,updatedAt:t,providers:n}}i(Eo,"validateProviderCapabilitiesJson");var Fi=Object.freeze({native:ce,"image-input-native":Wn,"cli-bridge":Le,"image-input-cli-bridge":zn}),vt=null;function Ki(){if(process.env.KODAX_BUNDLED==="true")return Ce.join(Ce.dirname(process.execPath),"provider-capabilities.json");let e=Ce.dirname(ji(import.meta.url)),t=[Ce.join(e,"provider-capabilities.json"),Ce.join(Ce.dirname(e),"provider-capabilities.json")];for(let n of t)if(Li(n))return n;return t[0]}i(Ki,"resolveJsonPath");function Ui(e){if(e.models){for(let t of e.models)t.reasoningProfile&&bo(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&bo(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}i(Ui,"deepFreezeSnapshot");function bo(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}i(bo,"freezeReasoningProfile");function Wi(e){if(e==="gemini-cli"){let t=xe();return{model:t,models:Ue().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=be();return{model:t,models:Ke().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}i(Wi,"resolveCliBridgeModels");function zi(e,t){let n=Fi[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let r=Wi(e),s={model:r.model,models:r.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(s.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(s.supportsThinking=t.supportsThinking),s}let o={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(o.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(o.models=t.models),t.modelReasoningCapabilities!==void 0&&(o.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(o.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(o.maxOutputTokens=t.maxOutputTokens),t.thinkingBudgetCap!==void 0&&(o.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(o.supportsThinking=t.supportsThinking),o}i(zi,"buildSnapshot");function xo(){if(vt)return vt;let e=Ki(),t;try{let r=Bi(e,"utf8");t=JSON.parse(r)}catch(r){let s=r instanceof Error?r.message:String(r);throw new Error(`provider-capabilities loader: failed to read ${e}: ${s}`)}let n=Eo(t),o={};for(let[r,s]of Object.entries(n.providers))o[r]=Ui(zi(r,s));return vt=Object.freeze(o),vt}i(xo,"getProviderSnapshots");import Xi from"@anthropic-ai/sdk";var B=xo();function U(e,t={}){let n=B[e];return{apiKeyEnv:n.apiKeyEnv,model:n.model,reasoningCapability:n.reasoningCapability,reasoningProfile:n.reasoningProfile,models:n.models,contextWindow:n.contextWindow,maxOutputTokens:n.maxOutputTokens,thinkingBudgetCap:n.thinkingBudgetCap,supportsThinking:n.supportsThinking??!1,verifyStrategy:n.verifyStrategy,...t}}i(U,"buildProviderConfig");var sn=class extends L{static{i(this,"AnthropicProvider")}name="anthropic";config=U("anthropic",{strictThinkingSignature:!0});buildClient(){return new Xi({apiKey:this.getApiKey()})}},an=class extends L{static{i(this,"ZhipuCodingProvider")}name="zhipu-coding";config=U("zhipu-coding",{baseUrl:"https://open.bigmodel.cn/api/anthropic",streamMaxDurationMs:3e5})},un=class extends L{static{i(this,"ZaiCodingProvider")}name="zai-coding";config=U("zai-coding",{baseUrl:"https://api.z.ai/api/anthropic",streamMaxDurationMs:3e5})},cn=class extends L{static{i(this,"KimiCodeProvider")}name="kimi-code";config=U("kimi-code",{baseUrl:"https://api.kimi.com/coding/"})},ln=class extends L{static{i(this,"MiniMaxCodingProvider")}name="minimax-coding";config=U("minimax-coding",{baseUrl:"https://api.minimaxi.com/anthropic"})},fn=class extends L{static{i(this,"MimoCodingProvider")}name="mimo-coding";config=U("mimo-coding",{baseUrl:"https://token-plan-cn.xiaomimimo.com/anthropic"})},dn=class extends L{static{i(this,"MimoProvider")}name="mimo";config=U("mimo",{baseUrl:"https://api.xiaomimimo.com/anthropic"})},pn=class extends L{static{i(this,"ArkCodingProvider")}name="ark-coding";config=U("ark-coding",{baseUrl:"https://ark.cn-beijing.volces.com/api/coding"})},gn=class extends z{static{i(this,"OpenAIProvider")}name="openai";config=U("openai")},mn=class extends z{static{i(this,"DeepSeekProvider")}name="deepseek";config=U("deepseek",{baseUrl:"https://api.deepseek.com",replayReasoningContent:!0})},hn=class extends z{static{i(this,"KimiProvider")}name="kimi";config=U("kimi",{baseUrl:"https://api.moonshot.cn/v1",replayReasoningContent:!0})},yn=class extends z{static{i(this,"QwenProvider")}name="qwen";config=U("qwen",{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",replayReasoningContent:!0})},vn=class extends z{static{i(this,"ZhipuProvider")}name="zhipu";config=U("zhipu",{baseUrl:"https://open.bigmodel.cn/api/paas/v4",replayReasoningContent:!0})},X={anthropic:i(()=>new sn,"anthropic"),openai:i(()=>new gn,"openai"),deepseek:i(()=>new mn,"deepseek"),kimi:i(()=>new hn,"kimi"),"kimi-code":i(()=>new cn,"kimi-code"),qwen:i(()=>new yn,"qwen"),zhipu:i(()=>new vn,"zhipu"),"zhipu-coding":i(()=>new an,"zhipu-coding"),"zai-coding":i(()=>new un,"zai-coding"),"minimax-coding":i(()=>new ln,"minimax-coding"),"mimo-coding":i(()=>new fn,"mimo-coding"),mimo:i(()=>new dn,"mimo"),"ark-coding":i(()=>new pn,"ark-coding"),"gemini-cli":i(()=>new mt,"gemini-cli"),"codex-cli":i(()=>new yt,"codex-cli")},kn=process.env.KODAX_PROVIDER??"zhipu-coding",_o=new Map;function Vi(e){if(j(e))return B[e].apiKeyEnv}i(Vi,"resolveApiKeyEnvForProvider");function Co(e){let t=e??kn,n=X[t];if(!n)throw new M(`Unknown provider: ${t}. Available: ${Object.keys(X).join(", ")}`,t);let o=Vi(t),r=fe(t,o?process.env[o]:void 0),s=_o.get(t);if(s&&s.apiKey===r)return s.instance;let a=n();return _o.set(t,{apiKey:r,instance:a}),a}i(Co,"getProvider");function To(e){return j(e)?fe(e,process.env[B[e].apiKeyEnv])!==void 0:!1}i(To,"isProviderConfigured");function Po(e){return j(e)?B[e].model:null}i(Po,"getProviderModel");function So(e,t){if(!j(e))return"unknown";let n=B[e],o=t??n.model;return n.models?.find(s=>s.id===o)?.reasoningCapability??n.modelReasoningCapabilities?.[o]??n.reasoningCapability}i(So,"getProviderConfiguredReasoningCapability");function wo(e){return j(e)?G(B[e].capabilityProfile):null}i(wo,"getProviderConfiguredCapabilityProfile");function Ro(){let e=[];for(let t of Object.keys(X)){let n=B[t];e.push({name:t,model:n.model,models:n.models?[n.model,...n.models.map(o=>o.id)]:[n.model],configured:!!process.env[n.apiKeyEnv],reasoningCapability:n.reasoningCapability,reasoningProfile:n.reasoningProfile,capabilityProfile:G(n.capabilityProfile)})}return e}i(Ro,"getProviderList");function Mo(e){let t=B[e];return t?t.models?[t.model,...t.models.map(n=>n.id)]:[t.model]:[]}i(Mo,"getProviderModels");function j(e){return e in X}i(j,"isProviderName");function En(e){return{id:e.model}}i(En,"makeDefaultDescriptor");function Ao(e,t){if(!t.wireModel)return t;let n=e.models?.find(o=>o.id===t.wireModel);return n?{...n,...t}:t}i(Ao,"resolveWireModelDescriptor");function We(e,t,n){let o=n.id===t.model;return{provider:e,model:n.id,displayName:n.displayName??n.id,supportsThinking:t.supportsThinking??!1,reasoningCapability:n.reasoningCapability??t.reasoningCapability,reasoningProfile:n.reasoningProfile??t.reasoningProfile,contextWindow:n.contextWindow??t.contextWindow,maxOutputTokens:n.maxOutputTokens??t.maxOutputTokens,thinkingBudgetCap:n.thinkingBudgetCap??t.thinkingBudgetCap,isDefault:o}}i(We,"effectiveCapabilities");function kt(e){let t=B[e];if(!t)return[];let n=t.models??[],o=n.find(s=>s.id===t.model),r=n.filter(s=>s.id!==t.model);return[o??En(t),...r].map(s=>Ao(t,s))}i(kt,"getProviderModelDescriptors");function Et(e,t){let n=B[e];if(!n)return;let o=n.models?.find(r=>r.id===t);return o?We(e,n,Ao(n,o)):t===n.model?We(e,n,En(n)):We(e,n,{id:t})}i(Et,"getModelCapabilities");function bt(){let e=[];for(let t of Object.keys(X)){let n=B[t];e.push(We(t,n,En(n)));for(let o of n.models??[])e.push(We(t,n,o))}return e}i(bt,"listBuiltinModelCapabilities");var Gi=new Set(["compat","sdk"]),Hi=new Set(["count-tokens","models-list","minimal-message","unsupported"]);function Io(e){return e.reasoningProfile??e.reasoningCapabilityV2}i(Io,"getConfiguredReasoningProfile");function Ji(e){return e==="anthropic"?"count-tokens":"models-list"}i(Ji,"defaultVerifyStrategyForProtocol");function xt(e){if(e)return e.effortStrategy==="none"?"none":e.effortStrategy==="prompt-only"?"prompt-only":e.thinkingStrategy==="anthropic-adaptive"?"native-adaptive":e.effortStrategy==="provider-budget"?"native-budget":e.effortStrategy==="provider-toggle"?"native-toggle":"native-effort"}i(xt,"legacyCapabilityFromReasoningProfile");function qi(e,t,n){if(n===!1)return"none";switch(t){case"none":case"prompt-only":return"none";case"native-toggle":return e==="anthropic"?"generic-thinking-toggle":void 0;case"native-budget":return e==="anthropic"?"anthropic-budget":"qwen-hybrid-thinking";case"native-effort":return e==="anthropic"?"claude-adaptive-max":"openai-chat-reasoning";case"native-adaptive":return e==="anthropic"?"claude-adaptive-max":void 0;default:return n!==!0?void 0:e==="anthropic"?"generic-thinking-toggle":void 0}}i(qi,"legacyReasoningPresetForProtocol");function Do(e){return e==="none"||typeof e=="object"&&e!==null&&Array.isArray(e.efforts)}i(Do,"isSimpleReasoning");function Yi(e,t){if(e==="none")return Qe("none");let n=i(u=>u==="off"?"none":u,"toWire"),o=e.efforts.map(n),r=e.default?n(e.default):void 0,s=o.includes("none"),a=o.map(u=>u===r?{value:u,isDefault:!0}:{value:u});return{effortStrategy:t==="anthropic"?"anthropic-reasoning-effort":"openai-chat-effort",thinkingStrategy:"provider-toggle",...r!==void 0?{defaultEffort:r}:{},supportedEfforts:a,...s?{disabledEfforts:["none"],supportsDisabledThinking:!0}:{},supportsReasoningEffort:!0}}i(Yi,"buildReasoningProfileFromSimple");function Oo(e,t,n,o){let r=Do(n)?n:void 0,s=n!==void 0&&!Do(n)?n:void 0;if(o?.supportsThinking===!1)return Qe("none");if(e)return{...e,...s??{}};if(r!==void 0)return Yi(r,o?.protocol??"openai");let a=t??(o?qi(o.protocol,o.reasoningCapability,o.supportsThinking):void 0);return a?Qe(a,s):void 0}i(Oo,"resolveCustomReasoningProfile");function _t(e){return Oo(Io(e),e.reasoningPreset,e.reasoning,{protocol:e.protocol,reasoningCapability:e.reasoningCapability,supportsThinking:e.supportsThinking})}i(_t,"resolveCustomProviderReasoningProfile");function _n(e,t,n){return Oo(Io(e),e.reasoningPreset,e.reasoning,{protocol:t,reasoningCapability:e.reasoningCapability,supportsThinking:n})}i(_n,"resolveCustomModelReasoningProfile");function Qi(e,t,n){if(typeof e=="string")return{id:e};let o=_n(e,t,n),r=n===!1&&e.reasoningCapability!==void 0?{...e,reasoningCapability:"none"}:e;return o?{...r,reasoningProfile:o}:r}i(Qi,"customModelDescriptorToFull");function ze(e){if(!e.name||!e.baseUrl||!e.apiKeyEnv||!e.model)throw new Error(`Custom provider requires name, baseUrl, apiKeyEnv, and model. Got: ${JSON.stringify({name:e.name,baseUrl:e.baseUrl,apiKeyEnv:e.apiKeyEnv,model:e.model})}`);if(e.protocol!=="anthropic"&&e.protocol!=="openai")throw new Error(`Unknown protocol "${e.protocol}" for custom provider "${e.name}". Must be "anthropic" or "openai".`);if(e.userAgentMode!==void 0&&!Gi.has(e.userAgentMode))throw new Error(`Unknown userAgentMode "${e.userAgentMode}" for custom provider "${e.name}". Must be "compat" or "sdk".`);if(e.verifyStrategy!==void 0){if(!Hi.has(e.verifyStrategy))throw new Error(`Unknown verifyStrategy "${e.verifyStrategy}" for custom provider "${e.name}". Must be one of "count-tokens" | "models-list" | "minimal-message" | "unsupported".`);if(e.protocol==="openai"&&e.verifyStrategy==="count-tokens")throw new Error(`Custom provider "${e.name}": verifyStrategy="count-tokens" requires Anthropic protocol; got protocol="openai". Use "models-list" or "minimal-message" for OpenAI-compat.`)}}i(ze,"validateCustomProviderConfig");function Zi(e){let t=e.models?.length?e.models.map(s=>Qi(s,e.protocol,e.supportsThinking)):void 0,n=_t(e),o=e.supportsThinking===!1?"none":e.reasoningCapability??xt(n)??"none",r=e.supportsThinking??(o!=="none"&&o!=="prompt-only");return{apiKeyEnv:e.apiKeyEnv,model:e.model,baseUrl:e.baseUrl,models:t,userAgentMode:e.userAgentMode,supportsThinking:r,reasoningCapability:o,reasoningProfile:n,capabilityProfile:e.capabilityProfile,contextWindow:e.contextWindow,maxOutputTokens:e.maxOutputTokens,thinkingBudgetCap:e.thinkingBudgetCap,replayReasoningContent:e.replayReasoningContent??!1,strictThinkingSignature:e.strictThinkingSignature??!1,streamMaxDurationMs:e.streamMaxDurationMs,verifyStrategy:e.verifyStrategy??Ji(e.protocol)}}i(Zi,"buildProviderConfig");function Ct(e){ze(e);let t=Zi(e);return e.protocol==="anthropic"?new bn(e.name,t):new xn(e.name,t)}i(Ct,"createCustomProvider");var bn=class extends L{static{i(this,"DynamicAnthropicProvider")}name;config;constructor(t,n){super(),this.name=t,this.config=n}},xn=class extends z{static{i(this,"DynamicOpenAIProvider")}name;config;constructor(t,n){super(),this.name=t,this.config=n}};var q=new Map,Cn=new Map,es=new Set(["native-toggle","native-budget","native-effort","native-adaptive"]);function $o(e){return e.reasoningCapability!==void 0&&es.has(e.reasoningCapability)||e.reasoningProfile!==void 0||e.reasoningPreset!==void 0&&e.reasoningPreset!=="none"||e.reasoning!==void 0&&e.reasoning!=="none"}i($o,"hasThinkingReasoningConfig");function ts(e){if(e.supportsThinking!==!1)return;let t=$o(e),n=(e.models??[]).some(o=>typeof o!="string"&&$o(o));(t||n)&&console.warn(`[kodax] Custom provider "${e.name}": its reasoning config (provider- or per-model reasoningCapability / reasoningProfile / reasoning / reasoningPreset) is ignored because supportsThinking is false (thinking stays off). Set supportsThinking: true to enable thinking, or remove the reasoning config.`)}i(ts,"warnOnIgnoredReasoningCapability");function No(e){let t=new Set,n=new Map,o=new Map;for(let r of e){if(ze(r),t.has(r.name))throw new Error(`Duplicate custom provider name: "${r.name}". Each custom provider must have a unique name.`);r.name in X&&console.warn(`[kodax] Custom provider "${r.name}" shadows a built-in provider. The built-in provider will be used. Choose a different name to use your custom provider.`),ts(r),t.add(r.name),n.set(r.name,r),o.set(r.name,()=>Ct(r))}q.clear(),Cn.clear();for(let[r,s]of n)q.set(r,s);for(let[r,s]of o)Cn.set(r,s)}i(No,"registerCustomProviders");function Tt(e){let t=Cn.get(e);return t?t():void 0}i(Tt,"getCustomProvider");function Pe(e){return q.has(e)}i(Pe,"isCustomProviderName");function Pt(){return[...q.keys()]}i(Pt,"getCustomProviderNames");function Lo(){let e=[];for(let[t,n]of q){let o=!!process.env[n.apiKeyEnv],r=_t(n),s=(n.models??[]).map(u=>typeof u=="string"?u:u.id),a=n.model&&s.length?[...new Set([n.model,...s])]:[n.model];e.push({name:t,model:n.model,models:a,configured:o,reasoningCapability:n.supportsThinking===!1?"none":n.reasoningCapability??xt(r)??"none",capabilityProfile:G(n.capabilityProfile??ce),custom:!0})}return e}i(Lo,"getCustomProviderList");function Bo(e){let t=q.get(e);if(!t)return;let n=(t.models??[]).map(o=>typeof o=="string"?o:o.id);return t.model&&n.length?[...new Set([t.model,...n])]:[t.model]}i(Bo,"getCustomProviderModels");function jo(e,t,n){if(typeof e=="string")return{id:e};let o=_n(e,t,n),r=n===!1&&e.reasoningCapability!==void 0?{...e,reasoningCapability:"none"}:e;return o?{...r,reasoningProfile:o}:r}i(jo,"customDescriptorToFull");function St(e){let t=q.get(e);if(!t)return;let n=(t.models??[]).map(s=>jo(s,t.protocol,t.supportsThinking)),o=n.find(s=>s.id===t.model)??{id:t.model},r=n.filter(s=>s.id!==t.model);return[o,...r]}i(St,"getCustomProviderModelDescriptors");function Te(e,t){let n=q.get(e);if(!n)return;let o=t===n.model,r=_t(n),a=(n.models??[]).map(f=>jo(f,n.protocol,n.supportsThinking)).find(f=>f.id===t)??(o?{id:n.model}:void 0);if(!a)return;let u=n.supportsThinking===!1?r:a.reasoningProfile??r,l=n.supportsThinking===!1?"none":a.reasoningCapability??xt(u)??n.reasoningCapability??"none";return{provider:e,model:a.id,displayName:a.displayName??a.id,supportsThinking:n.supportsThinking??(l!=="none"&&l!=="prompt-only"),reasoningCapability:l,reasoningProfile:u,contextWindow:a.contextWindow??n.contextWindow,maxOutputTokens:a.maxOutputTokens??n.maxOutputTokens,thinkingBudgetCap:a.thinkingBudgetCap??n.thinkingBudgetCap,isDefault:o}}i(Te,"getCustomModelCapabilities");function Fo(e){let t=q.get(e);if(!t)return;let n=t.verifyStrategy??(t.protocol==="anthropic"?"count-tokens":"models-list");return{apiKeyEnv:t.apiKeyEnv,verifyStrategy:n}}i(Fo,"getCustomProviderVerifyMetadata");function wt(){let e=[];for(let[t,n]of q){let o=Te(t,n.model);o&&e.push(o);for(let r of n.models??[]){let s=typeof r=="string"?r:r.id;if(s===n.model)continue;let a=Te(t,s);a&&e.push(a)}}return e}i(wt,"listCustomProviderModelCapabilities");var oe=new Map,ns=0;function Tn(e){let t=oe.get(e);if(!(!t||t.length===0))return t[t.length-1]}i(Tn,"getActiveRuntimeProviderRegistration");function os(e){for(let[t,n]of oe){let o=n.filter(r=>r.id!==e);if(o.length!==n.length){o.length===0?oe.delete(t):oe.set(t,o);return}}}i(os,"removeRuntimeProviderRegistration");function Ko(e,t){let n=e.trim();if(!n)throw new Error("Model provider name cannot be empty.");if(j(n))throw new Error(`Runtime model provider "${n}" conflicts with a built-in provider.`);if(Pe(n))throw new Error(`Runtime model provider "${n}" conflicts with an existing config-defined custom provider.`);let o={id:`runtime-provider:${++ns}`,name:n,factory:t},r=oe.get(n)??[];return oe.set(n,[...r,o]),()=>{os(o.id)}}i(Ko,"registerModelProvider");function Rt(e){let t=Tn(e);return t?t.factory():void 0}i(Rt,"getRuntimeModelProvider");function Xe(e){return Tn(e)!==void 0}i(Xe,"isRuntimeModelProviderName");function Mt(){return Array.from(oe.keys()).filter(e=>Tn(e)!==void 0)}i(Mt,"getRuntimeModelProviderNames");function Uo(){oe.clear()}i(Uo,"clearRuntimeModelProviders");function Pn(e){if(j(e))return X[e]();let t=Rt(e);if(t)return t;let n=Tt(e);if(n)return n;let o=Dt();throw new Error(`Unknown provider: ${e}. Available: ${o.join(", ")}`)}i(Pn,"resolveProvider");function At(e){return j(e)||Xe(e)||Pe(e)}i(At,"isKnownProvider");function Dt(){let e=Object.keys(X),t=Mt(),n=Pt();return[...new Set([...e,...t,...n])]}i(Dt,"getAvailableProviderNames");function Ve(e){return j(e)?kt(e):St(e)??[]}i(Ve,"resolveProviderModelDescriptors");function It(e,t){return j(e)?Et(e,t):Te(e,t)}i(It,"resolveModelCapabilities");function Wo(){return[...bt(),...wt()]}i(Wo,"listAllModelCapabilities");function rs(e){if(j(e)){let t=B[e];return{apiKeyEnv:t.apiKeyEnv,verifyStrategy:t.verifyStrategy}}if(!Xe(e))return Fo(e)}i(rs,"getProviderVerifyMetadata");async function zo(e,t){let n=rs(e);if(!n&&!At(e))return{ok:!1,error:"unsupported",strategy:"unsupported",durationMs:0,approxTokensSpent:0,message:`Unknown provider: "${e}". Available: ${Dt().join(", ")}`};if(n?.verifyStrategy==="unsupported")return{ok:!1,error:"unsupported",strategy:"unsupported",durationMs:0,approxTokensSpent:0,message:`Provider "${e}" does not support credential verification (cli-bridge or strategy marked unsupported)`};if(n&&!process.env[n.apiKeyEnv])return{ok:!1,error:"unconfigured",strategy:n.verifyStrategy,durationMs:0,approxTokensSpent:0,message:`Environment variable "${n.apiKeyEnv}" is not set for provider "${e}"`};let o;try{o=Pn(e)}catch(r){return{ok:!1,error:"unconfigured",strategy:n?.verifyStrategy??"unsupported",durationMs:0,approxTokensSpent:0,message:String(r?.message??r).slice(0,240)}}try{return await o.verifyCredential(t)}catch(r){return{ok:!1,error:"unknown",strategy:n?.verifyStrategy??"unsupported",durationMs:0,approxTokensSpent:0,message:String(r?.message??r).slice(0,240)}}}i(zo,"verifyProviderCredential");async function Xo(e,t){if(!At(e))return{ok:!1,source:"failed",error:`Unknown provider: "${e}"`,durationMs:0};let n=Ve(e);return n.length===0?{ok:!1,source:"failed",error:`Provider "${e}" has no static model list`,durationMs:0}:{ok:!0,source:"static",models:n.map(r=>r.id),durationMs:0}}i(Xo,"listProviderModels");function is(e){let t=e.model??Ve(e.provider)[0]?.id,n=t?It(e.provider,t)?.reasoningProfile:void 0;if(!n)return{effort:void 0,configuredEffort:void 0,adjusted:!1};let o=e.rejectedEfforts&&e.rejectedEfforts.length>0?Bt(n,e.rejectedEfforts):n,r=Ne({capability:o,sessionEffort:e.desiredEffort}),s=r.effectiveEffort;return s!==void 0&&e.rejectedEfforts?.includes(s)&&(s=void 0),{effort:s,configuredEffort:r.configuredEffort,adjusted:s!==r.configuredEffort}}i(is,"resolveWireEffort");var Vo={anthropic:{"claude-opus-4-8":{inputPer1M:5,outputPer1M:25,cachePer1M:.5,cacheReadPer1M:.5,cacheWritePer1M:6.25},"claude-opus-4-7":{inputPer1M:5,outputPer1M:25,cachePer1M:.5,cacheReadPer1M:.5,cacheWritePer1M:6.25},"claude-opus-4-6":{inputPer1M:5,outputPer1M:25,cachePer1M:.5,cacheReadPer1M:.5,cacheWritePer1M:6.25},"claude-sonnet-4-6":{inputPer1M:3,outputPer1M:15,cachePer1M:.375,cacheReadPer1M:.375,cacheWritePer1M:3.75},"claude-haiku-4-5":{inputPer1M:.8,outputPer1M:4,cachePer1M:.08,cacheReadPer1M:.08,cacheWritePer1M:1}},openai:{"gpt-5.4":{inputPer1M:30,outputPer1M:120},"gpt-5.3-codex-spark":{inputPer1M:10,outputPer1M:40}},deepseek:{"deepseek-v4-flash":{inputPer1M:.14,outputPer1M:.28,cachePer1M:.028},"deepseek-v4-pro":{inputPer1M:1.68,outputPer1M:3.36,cachePer1M:.14}},kimi:{"kimi-k2.7-code":{inputPer1M:.91,outputPer1M:3.78,cachePer1M:.182},"kimi-k2.7-code-highspeed":{inputPer1M:1.82,outputPer1M:7.56,cachePer1M:.364},"kimi-k2.6":{inputPer1M:.91,outputPer1M:3.78,cachePer1M:.154},"kimi-k2.5":{inputPer1M:.56,outputPer1M:2.94,cachePer1M:.098}},"kimi-code":{"kimi-for-coding":{inputPer1M:.005,outputPer1M:.015},k3:{inputPer1M:.005,outputPer1M:.015},"k3-256k":{inputPer1M:.005,outputPer1M:.015},"kimi-for-coding-highspeed":{inputPer1M:.015,outputPer1M:.045}},qwen:{"qwen3.5-plus":{inputPer1M:.003,outputPer1M:.006}},zhipu:{"glm-5":{inputPer1M:.05,outputPer1M:.1},"glm-5.1":{inputPer1M:.05,outputPer1M:.1},"glm-5-turbo":{inputPer1M:.01,outputPer1M:.03}},"zhipu-coding":{"glm-5.2":{inputPer1M:.05,outputPer1M:.1},"glm-5-turbo":{inputPer1M:.01,outputPer1M:.03},"glm-4.7":{inputPer1M:.01,outputPer1M:.03}},"zai-coding":{"glm-5.2":{inputPer1M:.05,outputPer1M:.1},"glm-5-turbo":{inputPer1M:.01,outputPer1M:.03},"glm-4.7":{inputPer1M:.01,outputPer1M:.03}},"minimax-coding":{"MiniMax-M3":{inputPer1M:.01,outputPer1M:.03},"MiniMax-M2.7":{inputPer1M:.01,outputPer1M:.03},"MiniMax-M2.7-highspeed":{inputPer1M:.01,outputPer1M:.03}},"mimo-coding":{"mimo-v2.5-pro":{inputPer1M:.01,outputPer1M:.03},"mimo-v2.5":{inputPer1M:.01,outputPer1M:.03}},mimo:{"mimo-v2.5-pro":{inputPer1M:.01,outputPer1M:.03},"mimo-v2.5":{inputPer1M:.01,outputPer1M:.03}},"ark-coding":{"glm-5.2":{inputPer1M:.005,outputPer1M:.015},"kimi-k2.7-code":{inputPer1M:.005,outputPer1M:.015},"kimi-k2.6":{inputPer1M:.005,outputPer1M:.015},"MiniMax-M3":{inputPer1M:.005,outputPer1M:.015},"MiniMax-M2.7":{inputPer1M:.005,outputPer1M:.015},"deepseek-v4-pro":{inputPer1M:.005,outputPer1M:.015},"deepseek-v4-flash":{inputPer1M:.005,outputPer1M:.015},"doubao-seed-2.0-code":{inputPer1M:.005,outputPer1M:.015},"doubao-seed-2.0-pro":{inputPer1M:.005,outputPer1M:.015},"doubao-seed-2.0-lite":{inputPer1M:.005,outputPer1M:.015},"doubao-seed-code":{inputPer1M:.005,outputPer1M:.015}},"gemini-cli":{},"codex-cli":{}};function Sn(e,t,n){let o=n?.[e]?.[t];return o||Vo[e]?.[t]}i(Sn,"getCostRate");function wn(e,t,n,o=0,r=0){let s=Math.max(0,t-o-r),a=e.cacheReadPer1M??e.cachePer1M??e.inputPer1M,u=e.cacheWritePer1M??e.cachePer1M??e.inputPer1M,l=s/1e6*e.inputPer1M,f=n/1e6*e.outputPer1M,c=o/1e6*a,p=r/1e6*u;return l+f+c+p}i(wn,"calculateCost");function ss(){return{records:[],retries:[]}}i(ss,"createCostTracker");function Rn(e,t){let n={timestamp:Date.now(),provider:t.provider,waitMs:t.waitMs,reason:t.reason,source:t.source};return{records:e.records,retries:[...e.retries,n]}}i(Rn,"recordRetry");function Mn(e,t,n){let o=Sn(t.provider,t.model,n),r=o?wn(o,t.inputTokens,t.outputTokens,t.cacheReadTokens,t.cacheWriteTokens):0,s={timestamp:Date.now(),provider:t.provider,model:t.model,inputTokens:t.inputTokens,outputTokens:t.outputTokens,cacheReadTokens:t.cacheReadTokens??0,cacheWriteTokens:t.cacheWriteTokens??0,cost:r,role:t.role};return{records:[...e.records,s],retries:e.retries}}i(Mn,"recordUsage");function as(e){let t=0,n=0,o=0,r=0,s=0,a=0,u={},l={};for(let p of e.records){t+=p.cost,n+=p.inputTokens,o+=p.outputTokens,r+=p.cacheReadTokens+p.cacheWriteTokens,s+=p.cacheReadTokens,a+=p.cacheWriteTokens;let m=u[p.provider];u[p.provider]={cost:(m?.cost??0)+p.cost,calls:(m?.calls??0)+1,inputTokens:(m?.inputTokens??0)+p.inputTokens,outputTokens:(m?.outputTokens??0)+p.outputTokens};let g=p.role??"default",T=l[g];l[g]={cost:(T?.cost??0)+p.cost,calls:(T?.calls??0)+1,inputTokens:(T?.inputTokens??0)+p.inputTokens,outputTokens:(T?.outputTokens??0)+p.outputTokens}}let f=0;for(let p of e.retries)f+=p.waitMs;let c=r>0?s/r:0;return{totalCost:t,totalInputTokens:n,totalOutputTokens:o,totalCacheTokens:r,totalCacheReadTokens:s,totalCacheWriteTokens:a,cacheHitRate:c,callCount:e.records.length,retryCount:e.retries.length,retryWaitMs:f,byProvider:u,byRole:l}}i(as,"getSummary");function Ot(e){return e<.01?`$${e.toFixed(4)}`:e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}i(Ot,"formatCost");function us(e){let t=[];if(t.push(`Session Cost: ${Ot(e.totalCost)} (${e.callCount} calls)`),t.push(`Tokens: ${e.totalInputTokens.toLocaleString()} in / ${e.totalOutputTokens.toLocaleString()} out`),e.totalCacheTokens>0){let r=(e.cacheHitRate*100).toFixed(0);t.push(`Cache: ${e.totalCacheTokens.toLocaleString()} tokens (${e.totalCacheReadTokens.toLocaleString()} read / ${e.totalCacheWriteTokens.toLocaleString()} write, ${r}% hit rate)`)}if(e.retryCount>0){let r=(e.retryWaitMs/1e3).toFixed(1);t.push(`Retries: ${e.retryCount} (${r}s total wait)`)}t.push("");let n=Object.entries(e.byProvider).sort((r,s)=>s[1].cost-r[1].cost);if(n.length>0){t.push("By Provider:");for(let[r,s]of n)t.push(` ${r}: ${Ot(s.cost)} (${s.calls} calls, ${s.inputTokens.toLocaleString()} in / ${s.outputTokens.toLocaleString()} out)`);t.push("")}let o=Object.entries(e.byRole).sort((r,s)=>s[1].cost-r[1].cost);if(o.length>1){t.push("By Role:");for(let[r,s]of o)t.push(` ${r}: ${Ot(s.cost)} (${s.calls} calls)`)}return t.join(`
78
+ `)}i(us,"formatCostReport");var Go={inputTokens:0,outputTokens:0,totalTokens:0},cs=3e4;async function ls(e){let t=new AbortController,n=e.timeoutMs??cs,o=e.costTracker,r,s=i(l=>{r||(r=l),t.abort()},"recordAbort"),a=setTimeout(()=>s("timeout"),n),u=i(()=>s("parent"),"onParentAbort");e.abortSignal&&(e.abortSignal.aborted?s("parent"):e.abortSignal.addEventListener("abort",u,{once:!0}));try{let l=await e.provider.stream([...e.messages],[],e.system,e.reasoning??{effort:"none"},{modelOverride:e.model,onRetryAfter:i(g=>{o&&(o=Rn(o,{provider:g.provider,waitMs:g.waitMs,reason:g.reason,source:g.source}))},"onRetryAfter")},t.signal),f=l.usage??Go,c=l.textBlocks??[],p=l.toolBlocks??[],m=c.map(g=>g.text).join("");return p.length>0?{text:m,usage:f,costTracker:o,stopReason:"error",error:new Error(`sideQuery: provider returned ${p.length} tool_use block(s); sideQuery expects text-only output`)}:(o&&(o=Mn(o,{provider:e.provider.name,model:e.model,inputTokens:f.inputTokens,outputTokens:f.outputTokens,cacheReadTokens:f.cachedReadTokens,cacheWriteTokens:f.cachedWriteTokens,role:e.querySource})),{text:m,usage:f,costTracker:o,stopReason:fs(l.stopReason)})}catch(l){let f=l instanceof Error?l:new Error(String(l)),c="error";return t.signal.aborted&&(c=r==="timeout"?"timeout":"aborted"),{text:"",usage:Go,costTracker:o,stopReason:c,error:f}}finally{clearTimeout(a),e.abortSignal&&e.abortSignal.removeEventListener("abort",u)}}i(ls,"sideQuery");function fs(e){return e==="max_tokens"?"max_tokens":"end_turn"}i(fs,"mapStopReason");export{Jo as a,qo as b,Yo as c,Q as d,M as e,Me as f,$t as g,Nt as h,Lt as i,Qo as j,Zo as k,er as l,Ae as m,tr as n,nr as o,qe as p,Bt as q,or as r,rr as s,ir as t,sr as u,ar as v,de as w,An as x,Dn as y,Ut as z,pe as A,Ze as B,$e as C,In as D,lr as E,On as F,Ne as G,fr as H,mr as I,ae as J,ue as K,Wt as L,et as M,tt as N,Kn as O,Un as P,Cr as Q,Tr as R,ge as S,nt as T,J as U,Mr as V,Gn as W,he as X,ye as Y,Vt as Z,Gt as _,ve as $,Ht as aa,Be as ba,L as ca,z as da,be as ea,xe as fa,Ke as ga,Ue as ha,B as ia,X as ja,kn as ka,Co as la,To as ma,Po as na,So as oa,wo as pa,Ro as qa,Mo as ra,j as sa,kt as ta,Et as ua,bt as va,ze as wa,Ct as xa,No as ya,Tt as za,Pe as Aa,Pt as Ba,Lo as Ca,Bo as Da,St as Ea,Te as Fa,wt as Ga,Ko as Ha,Rt as Ia,Xe as Ja,Mt as Ka,Uo as La,Pn as Ma,At as Na,Dt as Oa,Ve as Pa,It as Qa,Wo as Ra,zo as Sa,Xo as Ta,is as Ua,Vo as Va,Sn as Wa,wn as Xa,ss as Ya,Rn as Za,Mn as _a,as as $a,Ot as ab,us as bb,ls as cb};
@@ -0,0 +1,2 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{a}from"./chunk-SX2WFHIS.js";import"./chunk-Y5XKAN7C.js";import"./chunk-52JSZ77P.js";import"./chunk-VRSVNU2Y.js";import"./chunk-23X6REO4.js";import"./chunk-ONUPGMER.js";export{a as loadCompactionConfig};
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import"./chunk-ZG4DMYBS.js";import"./chunk-URC6ZI6P.js";import"./chunk-PA76WUBL.js";import"./chunk-4WIODYOH.js";import"./chunk-I4TPQEJN.js";import"./chunk-Y4WOTWUC.js";import{ac as a,fc as i,mc as l,rc as c}from"./chunk-PQ3XUSY2.js";import"./chunk-UJEMSPM5.js";import"./chunk-VYKFM3TB.js";import"./chunk-AWMTNUDS.js";import"./chunk-F7C7J6IM.js";import"./chunk-NGHQIGVW.js";import{a as n}from"./chunk-ONUPGMER.js";var r=null;function y(e){r=e}n(y,"bindAskUserForConstruction");function p(e){return e.content?.capabilities?.tools??[]}n(p,"readDeclaredTools");var m=n(async e=>{if(!r)return"reject";let t=p(e),o=t.length>0?t.join(", "):"<none>";return await r({question:`Activate constructed tool ${e.name}@${e.version}?
2
+ import"./chunk-A574DBTV.js";import"./chunk-A2TFSV5M.js";import"./chunk-PHH4TRGF.js";import"./chunk-T7LYK53M.js";import"./chunk-64NQBOSN.js";import"./chunk-44QXPEEE.js";import{ac as a,fc as i,mc as l,rc as c}from"./chunk-PVUXONQB.js";import"./chunk-ZJIMT5I3.js";import"./chunk-Y5XKAN7C.js";import"./chunk-52JSZ77P.js";import"./chunk-VRSVNU2Y.js";import"./chunk-23X6REO4.js";import{a as n}from"./chunk-ONUPGMER.js";var r=null;function y(e){r=e}n(y,"bindAskUserForConstruction");function p(e){return e.content?.capabilities?.tools??[]}n(p,"readDeclaredTools");var m=n(async e=>{if(!r)return"reject";let t=p(e),o=t.length>0?t.join(", "):"<none>";return await r({question:`Activate constructed tool ${e.name}@${e.version}?
3
3
  It declares capabilities.tools = [${o}].`,allowCustomInput:!1,options:[{label:"Approve \u2014 register and make callable",description:"The tool will be added to the active tool registry and the LLM can invoke it on the next turn.",value:"approve"},{label:"Reject \u2014 do not register",description:"The artifact stays staged on disk; rerun activate_tool to retry.",value:"reject"}]})==="approve"?"approve":"reject"},"replConstructionPolicy"),v=n(async e=>{if(!r)return"reject";let t=e.llmSummary.flaggedConcerns.length>0?e.llmSummary.flaggedConcerns.map(u=>` \u2022 ${u}`).join(`
4
4
  `):" \u2022 <none>",o=e.prevContent.instructions??"<no instructions>",s=e.nextContent.instructions??"<no instructions>",d=[`Self-modify activation: ${e.agentName}@${e.fromVersion} \u2192 ${e.toVersion}`,"",`LLM diff summary (severity=${e.llmSummary.severity}):`,` ${e.llmSummary.summary}`,"","Flagged concerns:",t,"",`Budget remaining (after approve): ${e.budgetRemaining-1}/${e.budgetLimit}`,"","\u2500\u2500 Previous instructions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",o,"\u2500\u2500 Proposed instructions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",s,"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500","","The LLM summary is advisory \u2014 read the proposed instructions above before approving."].join(`
5
5
  `);return await r({question:d,allowCustomInput:!1,options:[{label:"Approve \u2014 activate the new version on the next run",description:"Resolver swap is deferred to the next Runner.run boundary so the in-flight conversation keeps the prior reference.",value:"approve"},{label:"Reject \u2014 stay on the previous version",description:"Budget is not consumed on rejection; the staged version is left on disk for diff inspection.",value:"reject"}]})==="approve"?"approve":"reject"},"replSelfModifyAskUser");async function h(e){a({cwd:e,policy:m,selfModifyAskUser:v});let t=await i();await c();let o=await l({cwd:e});return{loaded:t.loaded,failed:t.failed,tampered:t.tampered,markdownLoaded:o.loaded,markdownFailures:o.failed}}n(h,"bootstrapConstructionRuntime");export{y as bindAskUserForConstruction,h as bootstrapConstructionRuntime};
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$,$a,A,Aa,B,Ba,C,Ca,D,Da,E,Ea,F,Fa,G,Ga,H,Ha,I,Ia,J,Ja,K,Ka,L,La,M,Ma,N,Na,O,Oa,P,Pa,Q,Qa,R,Ra,S,Sa,T,Ta,U,Ua,V,Va,W,Wa,X,Xa,Y,Ya,Z,Za,_,_a,a,aa,ab,b,ba,bb,c,ca,cb,d,da,e,ea,f,fa,g,ga,h,ha,i,ia,j,ja,k,ka,l,la,m,ma,n,na,o,oa,p,pa,q,qa,r,ra,s,sa,t,ta,u,ua,v,va,w,wa,x,xa,y,ya,z,za}from"./chunk-UJEMSPM5.js";import"./chunk-ONUPGMER.js";export{Va as DEFAULT_COST_RATES,l as KODAX_API_MIN_INTERVAL,j as KODAX_CAPPED_MAX_OUTPUT_TOKENS,ka as KODAX_DEFAULT_PROVIDER,x as KODAX_DEFAULT_THINKING_BUDGETS,k as KODAX_ESCALATED_MAX_OUTPUT_TOKENS,i as KODAX_MAX_TOKENS,ja as KODAX_PROVIDERS,ia as KODAX_PROVIDER_SNAPSHOTS,v as KODAX_REASONING_MODE_SEQUENCE,y as KODAX_REASONING_SAFETY_RESERVE,w as KODAX_STABLE_EFFORT_INTENTS,ca as KodaXAnthropicCompatProvider,U as KodaXBaseProvider,d as KodaXError,g as KodaXNetworkError,da as KodaXOpenAICompatProvider,e as KodaXProviderError,f as KodaXRateLimitError,h as KodaXToolCallIdError,P as WORKFLOW_MAX_CONCURRENCY_ABSOLUTE,O as WORKFLOW_MAX_CONCURRENCY_DEFAULT,s as addRejectedEffort,Xa as calculateCost,p as capabilityCacheKey,K as clampThinkingBudget,W as classifyStopReason,Z as classifyVerifyError,La as clearRuntimeModelProviders,Ya as createCostTracker,xa as createCustomProvider,E as effortToLegacyReasoningMode,N as extractHeadersFromError,ab as formatCost,bb as formatCostReport,Oa as getAvailableProviderNames,ea as getCodexCliDefaultModel,ga as getCodexCliKnownModels,Wa as getCostRate,Fa as getCustomModelCapabilities,za as getCustomProvider,Ca as getCustomProviderList,Ea as getCustomProviderModelDescriptors,Da as getCustomProviderModels,Ba as getCustomProviderNames,I as getDefaultThinkingDepthForMode,fa as getGeminiCliDefaultModel,ha as getGeminiCliKnownModels,ua as getModelCapabilities,la as getProvider,pa as getProviderConfiguredCapabilityProfile,oa as getProviderConfiguredReasoningCapability,qa as getProviderList,na as getProviderModel,ta as getProviderModelDescriptors,ra as getProviderModels,z as getReasoningCapability,r as getRejectedEfforts,S as getRunScopedConfig,Ia as getRuntimeModelProvider,Ka as getRuntimeModelProviderNames,b as getScopedProviderCredential,$a as getSummary,_ as insertCacheBoundary,$ as isCacheBoundary,X as isCleanStop,Aa as isCustomProviderName,Na as isKnownProvider,ma as isProviderConfigured,sa as isProviderName,A as isReasoningEnabled,Ja as isRuntimeModelProviderName,Ra as listAllModelCapabilities,va as listBuiltinModelCapabilities,Ga as listCustomProviderModelCapabilities,Ta as listProviderModels,aa as lowerCacheBoundaries,L as mapDepthToOpenAIReasoningEffort,D as mapLegacyReasoningModeToEffortIntent,q as narrowReasoningProfile,T as normalizeCapabilityProfile,C as normalizeReasoningEffortValue,B as normalizeReasoningRequest,F as parseReasoningEffortEnv,M as parseRetryAfter,n as parseTimeoutSecEnvMs,V as parseToolInputWithSalvage,Za as recordRetry,_a as recordUsage,c as redactScopedProviderCredential,ya as registerCustomProviders,Ha as registerModelProvider,t as removeCacheEntry,o as resolveLlmTimeoutConfig,Qa as resolveModelCapabilities,Ma as resolveProvider,Pa as resolveProviderModelDescriptors,G as resolveReasoningEffort,H as resolveReasoningEffortForModelSwitch,J as resolveThinkingBudget,Ua as resolveWireEffort,Q as resolveWorkflowMaxConcurrency,Y as runVerifyCredential,a as runWithProviderCredential,R as runWithScopedConfig,u as sanitizeCapabilityCache,cb as sideQuery,ba as stripCacheBoundaries,m as timeoutSecToMs,wa as validateCustomProviderConfig,Sa as verifyProviderCredential};
2
+ import{$,$a,A,Aa,B,Ba,C,Ca,D,Da,E,Ea,F,Fa,G,Ga,H,Ha,I,Ia,J,Ja,K,Ka,L,La,M,Ma,N,Na,O,Oa,P,Pa,Q,Qa,R,Ra,S,Sa,T,Ta,U,Ua,V,Va,W,Wa,X,Xa,Y,Ya,Z,Za,_,_a,a,aa,ab,b,ba,bb,c,ca,cb,d,da,e,ea,f,fa,g,ga,h,ha,i,ia,j,ja,k,ka,l,la,m,ma,n,na,o,oa,p,pa,q,qa,r,ra,s,sa,t,ta,u,ua,v,va,w,wa,x,xa,y,ya,z,za}from"./chunk-ZJIMT5I3.js";import"./chunk-ONUPGMER.js";export{Va as DEFAULT_COST_RATES,l as KODAX_API_MIN_INTERVAL,j as KODAX_CAPPED_MAX_OUTPUT_TOKENS,ka as KODAX_DEFAULT_PROVIDER,x as KODAX_DEFAULT_THINKING_BUDGETS,k as KODAX_ESCALATED_MAX_OUTPUT_TOKENS,i as KODAX_MAX_TOKENS,ja as KODAX_PROVIDERS,ia as KODAX_PROVIDER_SNAPSHOTS,v as KODAX_REASONING_MODE_SEQUENCE,y as KODAX_REASONING_SAFETY_RESERVE,w as KODAX_STABLE_EFFORT_INTENTS,ca as KodaXAnthropicCompatProvider,U as KodaXBaseProvider,d as KodaXError,g as KodaXNetworkError,da as KodaXOpenAICompatProvider,e as KodaXProviderError,f as KodaXRateLimitError,h as KodaXToolCallIdError,P as WORKFLOW_MAX_CONCURRENCY_ABSOLUTE,O as WORKFLOW_MAX_CONCURRENCY_DEFAULT,s as addRejectedEffort,Xa as calculateCost,p as capabilityCacheKey,K as clampThinkingBudget,W as classifyStopReason,Z as classifyVerifyError,La as clearRuntimeModelProviders,Ya as createCostTracker,xa as createCustomProvider,E as effortToLegacyReasoningMode,N as extractHeadersFromError,ab as formatCost,bb as formatCostReport,Oa as getAvailableProviderNames,ea as getCodexCliDefaultModel,ga as getCodexCliKnownModels,Wa as getCostRate,Fa as getCustomModelCapabilities,za as getCustomProvider,Ca as getCustomProviderList,Ea as getCustomProviderModelDescriptors,Da as getCustomProviderModels,Ba as getCustomProviderNames,I as getDefaultThinkingDepthForMode,fa as getGeminiCliDefaultModel,ha as getGeminiCliKnownModels,ua as getModelCapabilities,la as getProvider,pa as getProviderConfiguredCapabilityProfile,oa as getProviderConfiguredReasoningCapability,qa as getProviderList,na as getProviderModel,ta as getProviderModelDescriptors,ra as getProviderModels,z as getReasoningCapability,r as getRejectedEfforts,S as getRunScopedConfig,Ia as getRuntimeModelProvider,Ka as getRuntimeModelProviderNames,b as getScopedProviderCredential,$a as getSummary,_ as insertCacheBoundary,$ as isCacheBoundary,X as isCleanStop,Aa as isCustomProviderName,Na as isKnownProvider,ma as isProviderConfigured,sa as isProviderName,A as isReasoningEnabled,Ja as isRuntimeModelProviderName,Ra as listAllModelCapabilities,va as listBuiltinModelCapabilities,Ga as listCustomProviderModelCapabilities,Ta as listProviderModels,aa as lowerCacheBoundaries,L as mapDepthToOpenAIReasoningEffort,D as mapLegacyReasoningModeToEffortIntent,q as narrowReasoningProfile,T as normalizeCapabilityProfile,C as normalizeReasoningEffortValue,B as normalizeReasoningRequest,F as parseReasoningEffortEnv,M as parseRetryAfter,n as parseTimeoutSecEnvMs,V as parseToolInputWithSalvage,Za as recordRetry,_a as recordUsage,c as redactScopedProviderCredential,ya as registerCustomProviders,Ha as registerModelProvider,t as removeCacheEntry,o as resolveLlmTimeoutConfig,Qa as resolveModelCapabilities,Ma as resolveProvider,Pa as resolveProviderModelDescriptors,G as resolveReasoningEffort,H as resolveReasoningEffortForModelSwitch,J as resolveThinkingBudget,Ua as resolveWireEffort,Q as resolveWorkflowMaxConcurrency,Y as runVerifyCredential,a as runWithProviderCredential,R as runWithScopedConfig,u as sanitizeCapabilityCache,cb as sideQuery,ba as stripCacheBoundaries,m as timeoutSecToMs,wa as validateCustomProviderConfig,Sa as verifyProviderCredential};
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$ as Ph,A as oh,Aa as oi,B as ph,Ba as pi,C as qh,Ca as qi,D as rh,Da as ri,E as sh,Ea as si,F as th,Fa as ti,G as uh,Ga as ui,H as vh,Ha as vi,I as wh,Ia as wi,J as xh,Ja as xi,K as yh,Ka as yi,L as zh,M as Ah,N as Bh,O as Ch,P as Dh,Q as Eh,R as Fh,S as Gh,T as Hh,U as Ih,V as Jh,W as Kh,X as Lh,Y as Mh,Z as Nh,_ as Oh,a as $,aa as Qh,b as aa,ba as Rh,c as ba,ca as Sh,d as Tg,da as Th,e as Ug,ea as Uh,f as Vg,fa as Vh,g as Wg,ga as Wh,h as Xg,ha as Xh,i as Yg,ia as Yh,j as Zg,ja as Zh,k as _g,ka as _h,l as $g,la as $h,m as ah,ma as ai,n as bh,na as bi,o as ch,oa as ci,p as dh,pa as di,q as eh,qa as ei,r as fh,ra as fi,s as gh,sa as gi,t as hh,ta as hi,u as ih,ua as ii,v as jh,va as ji,w as kh,wa as ki,x as lh,xa as li,y as mh,ya as mi,z as nh,za as ni}from"./chunk-ZG4DMYBS.js";import{a as Od,b as Pd,c as Qd,d as Rd,e as Sd,f as Td,g as Ud,h as Vd,i as Wd,j as He}from"./chunk-URC6ZI6P.js";import{A as xe,B as ye,C as ze,D as Ae,E as Be,F as Ce,G as De,H as Ee,I as Fe,J as Ge,a as Zd,b as _d,c as $d,d as ae,e as be,f as ce,g as de,h as ee,i as fe,j as ge,k as he,l as ie,m as je,n as ke,o as le,p as me,q as ne,r as oe,s as pe,t as qe,u as re,v as se,w as te,x as ue,y as ve,z as we}from"./chunk-PA76WUBL.js";import{$ as Ie,A as zd,Aa as $f,B as Ad,Ba as ag,C as Bd,Ca as bg,G as Cd,H as Dd,I as Ed,J as Fd,Ja as fg,Ka as gg,M as Gd,Ma as hg,a as ya,aa as Je,b as za,ba as Ke,ca as Le,da as Me,e as md,ea as Ne,f as nd,fa as Oe,g as od,ga as Pe,h as pd,i as qd,ia as Qe,j as rd,ja as Re,k as sd,ka as Se,p as td,q as ud,ta as Uf,ua as Vf,v as vd,va as Wf,w as wd,wa as Xf,xa as Yf,y as xd,ya as Zf,z as yd,za as _f}from"./chunk-4WIODYOH.js";import"./chunk-I4TPQEJN.js";import{a as Nd}from"./chunk-Y4WOTWUC.js";import{$ as sc,$a as kd,$b as uf,A as $b,Aa as Qc,Ab as Ue,Ad as Pg,B as ac,Ba as Rc,Bb as Ve,Bd as Qg,C as bc,Ca as Sc,Cb as We,Cd as Rg,D as cc,Da as Tc,Db as Xe,Dd as Sg,Ea as Uc,Eb as Ye,F as dc,Fa as Vc,Fb as Ze,Fc as cg,G as ec,Ga as Wc,Gb as _e,Gc as dg,H as fc,Ha as Xc,Hb as $e,Hc as eg,I as gc,Ia as Yc,Ib as af,J as hc,Ja as Zc,Jb as bf,Ka as _c,Kb as cf,La as $c,Lb as df,Lc as ig,Ma as ad,Mb as ef,Mc as jg,Na as bd,Nb as ff,Nc as kg,O as ic,Oa as cd,Ob as gf,Oc as lg,Pb as hf,Pc as mg,Q as jc,Qb as jf,Qc as ng,Rb as kf,Rc as og,S as kc,Sb as lf,Sc as pg,T as lc,Ta as dd,Tb as mf,Tc as qg,U as mc,Ua as ed,Ub as nf,Uc as rg,V as nc,Va as fd,Vb as of,Vc as sg,W as oc,Wa as gd,Wb as pf,Xa as hd,Xb as qf,Y as pc,Ya as id,Yb as rf,Yc as tg,Z as qc,Za as jd,Zb as sf,Zc as ug,_ as rc,_b as tf,_c as vg,aa as tc,ab as ld,ac as vf,ba as uc,bc as wf,ca as vc,cc as xf,d as Lb,da as wc,dc as yf,e as Mb,ea as xc,ec as zf,ed as wg,fa as yc,fc as Af,fd as xg,ga as zc,gc as Bf,gd as yg,ha as Ac,hc as Cf,hd as zg,i as Nb,ia as Bc,ic as Df,id as Ag,j as Ob,ja as Cc,jc as Ef,jd as Bg,k as Pb,ka as Dc,kc as Ff,kd as Cg,l as Qb,la as Ec,lc as Gf,ld as Dg,m as Rb,ma as Fc,mc as Hf,md as Eg,n as Sb,nb as Hd,nc as If,nd as Fg,o as Tb,ob as Id,oc as Jf,od as Gg,p as Ub,pa as Gc,pb as Jd,pc as Kf,pd as Hg,q as Vb,qa as Hc,qb as Kd,qc as Lf,qd as Ig,r as Wb,ra as Ic,rb as Ld,rc as Mf,rd as Jg,s as Xb,sa as Jc,sb as Md,sc as Nf,sd as Kg,t as Yb,ta as Kc,tb as Xd,tc as Of,td as Lg,ua as Lc,ub as Yd,uc as Pf,ud as Mg,va as Mc,vc as Qf,vd as Ng,wc as Rf,xa as Nc,xc as Sf,y as Zb,ya as Oc,yc as Tf,z as _b,za as Pc,zb as Te,zd as Og}from"./chunk-PQ3XUSY2.js";import{Aa as I,Ba as J,C as h,Ca as K,D as i,Da as L,E as j,Ea as M,F as k,Fa as N,G as l,Ga as O,H as m,Ha as P,Ia as Q,Ja as R,Ka as S,La as T,Ma as U,Na as V,Oa as W,Pa as X,Qa as Y,Ra as Z,U as n,Ua as _,ca as o,d as a,da as p,e as b,f as c,ia as q,ja as r,ka as s,la as t,m as d,ma as u,n as e,na as v,oa as w,pa as x,qa as y,ra as z,sa as A,ta as B,ua as C,v as f,va as D,w as g,wa as E,xa as F,ya as G,za as H}from"./chunk-UJEMSPM5.js";import{$b as hb,Ac as yb,Bc as zb,Cc as Ab,Dc as Bb,Ec as Cb,Gc as Db,Hc as Eb,Ic as Fb,Jc as Gb,Kc as Hb,Lc as Ib,Pb as Xa,Qb as Ya,Rb as Za,Sb as _a,Sc as Jb,Tb as $a,Tc as Kb,Ub as ab,Vb as bb,Wb as cb,Xb as db,Yb as eb,Zb as fb,_b as gb,a as Aa,ac as ib,b as Ba,bc as jb,c as Ca,cc as kb,d as Da,dc as lb,e as Ea,ec as mb,f as Fa,fc as nb,gc as ob,h as Ga,hc as pb,i as Ha,ic as qb,j as Ia,k as Ja,kc as rb,l as Ka,lc as sb,mc as tb,qc as ub,rc as vb,s as La,sa as Pa,sb as Va,t as Ma,tb as Wa,u as Na,v as Oa,va as Qa,yc as wb,zc as xb}from"./chunk-VYKFM3TB.js";import{d as Ra,e as Sa,f as Ta,g as Ua}from"./chunk-AWMTNUDS.js";import{C as xa,a as ca,b as da,c as ea,d as fa,e as ga,f as ha,g as ia,h as ja,i as ka,j as la,k as ma,l as na,m as oa,n as pa,o as qa,p as ra,q as sa,r as ta,s as ua,t as va,u as wa}from"./chunk-F7C7J6IM.js";import"./chunk-NGHQIGVW.js";import"./chunk-ONUPGMER.js";export{Wf as ALWAYS_RESIDENT_TOOL_NAMES,Qh as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,Rh as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,ji as BASH_POLICY_SPEC,ch as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Wh as BREAKER_ERROR_THRESHOLD,Xh as BREAKER_WINDOW_MS,ie as BUILTIN_WORKFLOWS,Mb as CANCELLED_TOOL_RESULT_MESSAGE,Lb as CANCELLED_TOOL_RESULT_PREFIX,Eh as CODING_AGENT_MARKER,Zg as CODING_INVARIANTS,Yf as CODING_SUMMARY_PROMPT,Zf as CODING_UPDATE_SUMMARY_PROMPT,df as CapabilityDeniedError,$g as Client,Pf as CombinedExtensionRuntime,ef as ConstructionManifestError,fg as DEFAULT_CODING_AGENT_NAME,th as DEFAULT_DANGEROUS_PATTERNS,bf as DEFAULT_HANDLER_TIMEOUT_MS,md as DEFAULT_RESILIENCE_CONFIG,sh as DEFAULT_SAFE_PATTERNS,pf as DEFAULT_SELF_MODIFY_BUDGET,fi as DEFAULT_SPECULATIVE_WINDOW_MS,Ob as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Nb as DEFAULT_TOOL_OUTPUT_MAX_LINES,Pd as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Oa as DefaultSummaryCompaction,Bh as EMIT_VERDICT_TOOL_NAME,ya as ErrorCategory,ae as FINDING_VERIFICATION_OUTPUT_SCHEMA,fd as GENERATOR_AGENT_NAME,da as ImageResizeError,Ha as KODAX_API_MIN_INTERVAL,s as KODAX_DEFAULT_PROVIDER,Ba as KODAX_DEFAULT_TIMEOUT,ua as KODAX_FILE_MEDIA_TYPES,Ca as KODAX_HARD_TIMEOUT,sa as KODAX_IMAGE_MEDIA_TYPES,Fa as KODAX_MAX_INCOMPLETE_RETRIES,Da as KODAX_MAX_RETRIES,Aa as KODAX_MAX_TOKENS,r as KODAX_PROVIDERS,q as KODAX_PROVIDER_SNAPSHOTS,f as KODAX_REASONING_MODE_SEQUENCE,Ea as KODAX_RETRY_BASE_DELAY,g as KODAX_STABLE_EFFORT_INTENTS,Ga as KODAX_STAGGER_DELAY,wg as KODAX_TOOLS,_b as KODAX_UNDERLYING_CAPABILITY_TOPICS,ta as KODAX_VIDEO_MEDIA_TYPES,o as KodaXAnthropicCompatProvider,n as KodaXBaseProvider,$g as KodaXClient,a as KodaXError,Of as KodaXExtensionRuntime,ca as KodaXMediaError,p as KodaXOpenAICompatProvider,b as KodaXProviderError,c as KodaXRateLimitError,aa as KodaXSessionError,ba as KodaXTerminalError,$ as KodaXToolError,rb as LINEAGE_ENTRY_TYPES,Jd as LSP_SERVERS,tb as LineageCompaction,sb as LineageExtension,Kd as LspService,$b as MANUAL_REGISTRY,Zb as MANUAL_TOPIC_IDS,ja as MAX_DIMENSION,cb as McpAuthRequiredError,ob as McpCapabilityProvider,bb as McpExpiredSessionError,pb as McpManager,nb as McpServerRuntime,oa as PASTE_TMP_DIR_ENV,pa as PASTE_TMP_TTL_MS,ed as PLANNER_AGENT_NAME,Ia as PROMISE_PATTERN,Je as PROMPT_SECTION_REGISTRY,Dh as PROTOCOL_EMITTER_TOOLS,sd as ProviderRecoveryCoordinator,Pb as READ_DEFAULT_LIMIT,Rb as READ_MAX_LINE_CHARS,Qb as READ_PREFLIGHT_SIZE_BYTES,Kf as REPO_EXPLORER_AGENT_NAME,Lf as REPO_EXPLORER_TOOL_NAMES,Qa as Runner,$d as SCOPED_REVIEW_OUTPUT_SCHEMA,dd as SCOUT_AGENT_NAME,vi as SCOUT_THEN_AUTHOR_PROMPT_LINES,Pe as SELF_KNOWLEDGE_ROUTING_RULE,Ie as SYSTEM_PROMPT,ze as SYSTEM_WORKFLOW_LIMITS,qd as StableBoundaryTracker,ka as TARGET_RAW_SIZE_BYTES,id as TASK_ENGINE_ROLE_AGENTS,Fh as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,mi as TRACING_ENV,gd as WORKER_AGENT_NAME,Od as WORKFLOW_GENERATION_SYSTEM_PROMPT,wf as _resetRuntimeForTesting,zf as activate,uc as analyzeChangedScope,nf as appendAuditEntry,Bb as appendSessionLineageLabel,ng as applyAccountingDelta,de as applyFindingVerification,Cb as applySessionCompaction,jc as applyToolResultGuardrail,Ib as archiveOldIslands,xi as authorWorkflowViaWorker,Vh as autoModeDenialShouldFallback,ci as bashSignalCollector,ni as bootstrapTracing,Vg as boundedRevise,_h as breakerShouldFallback,Wg as budgetCeiling,Ae as buildApprovalSummary,qg as buildBlockedGoal,Qe as buildCapabilityContextSections,Hh as buildClassifierPrompt,rg as buildCompleteGoal,mg as buildCreatedGoal,Dd as buildFallbackRoutingDecision,gh as buildGoalRuntimeBinding,mb as buildInitializeCapabilities,kf as buildLlmReviewPrompt,bc as buildManualToolDescription,lh as buildMcpReverseCapabilities,og as buildPausedGoal,td as buildPromptMessageContent,Ne as buildPromptSnapshot,xd as buildProviderCapabilitySnapshot,Ed as buildProviderPolicyHintsForDecision,yd as buildProviderPolicyPromptNotes,tc as buildRepoIntelligenceContext,Gc as buildRepoIntelligenceIndex,qc as buildRepoOverview,pg as buildResumedGoal,ge as buildScopedReviewFinalPrompt,ee as buildScopedReviewPrimaryPrompt,fe as buildScopedReviewVerificationPrompt,wi as buildScoutThenAuthorPrompt,Oe as buildSelfKnowledgeRoutingRule,Gb as buildSessionTree,Se as buildSystemPrompt,Re as buildSystemPromptSnapshot,cg as buildToolResultBudget,dg as buildToolResultBudgetFromUsage,tg as buildToolSearchIndex,we as buildWorkflowCostReport,Td as buildWorkflowGenerationSkillContext,Sd as buildWorkflowGenerationUserPrompt,bi as checkAbsoluteDeny,ud as checkIncompleteToolCalls,Gd as checkPromiseSignal,eg as clampToolResultPolicyToBudget,Be as clampWorkflowLimits,Jh as classify,vh as classifyBashCommand,za as classifyError,pc as classifyFileCategory,od as classifyResilienceError,Pg as cleanupExpiredToolOutputs,Wa as cleanupIncompleteToolCalls,Qg as cleanupUnreferencedToolOutputs,T as clearRuntimeModelProviders,ei as collectAllSignals,Qf as combineExtensionRuntimes,xh as computeInputSignature,Kh as computeRulesFingerprint,vf as configureRuntime,ag as consumeCompactionCooldown,Vc as convertCapabilityReadResult,Uc as convertProviderSearchResults,Hb as countActiveLineageMessages,Ka as countTokens,La as createAgent,Sh as createAutoModeDenialTracker,ii as createAutoModeToolGuardrail,uh as createBashClassifierConfig,li as createBashPrefixExtractor,Eg as createBuiltinToolDefinition,Yh as createCircuitBreaker,Zd as createCodingWorkflowBackend,_f as createCompactionAntiThrashState,ff as createCtxProxy,F as createCustomProvider,gg as createDefaultCodingAgent,wh as createDenialTracker,Rf as createExtensionRuntime,ha as createFileArtifactFromPath,Ma as createHandoff,ga as createImageArtifactFromPath,Na as createInMemorySession,oh as createKodaXTaskRunner,Ya as createMcpCapabilityId,qb as createMcpManager,db as createMcpTransport,Ke as createPromptSection,Fd as createReasoningPlan,ye as createRunGraphWriter,Vf as createRuntimeContextBudgetSnapshot,Tg as createSessionControl,wb as createSessionLineage,Gh as createToolResultTruncationGuardrail,ia as createVideoArtifactFromPath,pi as createWorkflowLifecycleController,si as createWorkflowPatternTemplateModule,Fe as createWorkflowRunManager,ti as decideWorkflowInvocation,Ye as dedupeExtensionPathsByEntrypoint,Xa as defaultMcpCacheDir,cf as defaultPolicy,re as deleteSavedWorkflow,uf as disableSelfModify,hb as discoverAuthorizationServerMetadata,af as discoverDefaultExtensions,$e as discoverExtensionsInDirectory,_e as discoverExtensionsInDirectoryDetailed,Jf as discoverMarkdownAgents,ib as discoverOAuthEndpoints,gb as discoverProtectedResourceMetadata,le as discoverSavedWorkflows,ld as drainPendingSwaps,j as effortToLegacyReasoningMode,Ch as emitVerdict,De as emitWorkflowAgentDigest,xa as enqueueWithArtifacts,Mf as ensureBuiltinRepoExplorerAgent,Ja as estimateTokens,Uf as estimateToolSchemaTokens,zd as evaluateProviderPolicy,Ze as excludeExtensionPathsByEntrypoint,Te as exec,Og as executeTool,Jb as extractArtifactLedger,ki as extractCommandPrefix,wd as extractComparableUserMessageText,Tc as extractHtmlTitle,fb as extractInsufficientScope,vd as extractPromptComparableText,eb as extractResourceMetadataUrl,vb as extractTitleFromMessages,di as fileSignalCollector,Xc as finalizeRetrievalResult,Ff as findByVersion,Db as findPreviousUserEntryId,Fb as forkSessionLineage,cd as formatAgentsForPrompt,qh as formatParallelDispatchResult,Sb as formatSize,ub as generateSessionId,Vd as generateWorkflow,Wd as generateWorkflowFromOptions,Tf as getActiveExtensionRuntime,Sa as getAgentConfigHome,Ta as getAgentConfigPath,Gg as getAllRegisteredTools,Ua as getAppDataDir,W as getAvailableProviderNames,Dg as getBuiltinRegisteredToolDefinition,Cg as getBuiltinToolDefinition,je as getBuiltinWorkflow,N as getCustomModelCapabilities,H as getCustomProvider,K as getCustomProviderList,M as getCustomProviderModelDescriptors,L as getCustomProviderModels,J as getCustomProviderNames,We as getDefaultExtensionDirectory,Ld as getDefaultLspService,Ge as getDefaultWorkflowRunManager,Ah as getDenialContext,Lc as getImpactEstimate,ad as getKodaxGlobalDir,ab as getMcpCachePaths,C as getModelCapabilities,va as getModelInputCapabilities,Ic as getModuleContext,Kc as getProcessContext,t as getProvider,x as getProviderConfiguredCapabilityProfile,w as getProviderConfiguredReasoningCapability,y as getProviderList,v as getProviderModel,B as getProviderModelDescriptors,z as getProviderModels,Ag as getRegisteredToolDefinition,Hc as getRepoIntelligenceIndex,rc as getRepoOverview,Mc as getRepoRoutingSignals,Lg as getRequiredToolParams,Q as getRuntimeModelProvider,S as getRuntimeModelProviderNames,xb as getSessionLineagePath,yb as getSessionMessagesFromLineage,Jc as getSymbolContext,yg as getTool,zg as getToolDefinition,Bg as getToolRegistrations,ic as getToolResultPolicy,ri as getWorkflowPatternTemplate,jg as goalTokenDelta,kd as hasPendingSwap,ea as inferImageMediaType,Cd as inferTaskType,fa as inferVideoMediaType,gc as inspectEditFailure,Fc as inspectRepoIntelligenceRuntime,I as isCustomProviderName,zh as isDeniedRecently,V as isKnownProvider,ph as isParallelDispatchDirective,u as isProviderConfigured,A as isProviderName,R as isRuntimeModelProviderName,pd as isSessionRecoveryCandidateError,Ve as isSupportedExtensionModulePath,Ig as isToolFileMutation,Kg as isToolMutation,Jg as isToolNetworkRead,Hg as isToolPlanModeAllowed,sg as isValidTokenBudget,Hd as languageIdForPath,Gf as listAll,Z as listAllModelCapabilities,Cf as listArtifacts,D as listBuiltinModelCapabilities,Fg as listBuiltinToolDefinitions,ke as listBuiltinWorkflows,Xd as listCodingDispatchableAgents,Ef as listConstructed,O as listCustomProviderModelCapabilities,Ng as listToolDefinitions,Mg as listTools,qi as listWorkflowPatternTemplates,bd as loadAgentsFiles,Hf as loadAgentsFromMarkdown,Oh as loadAutoRules,te as loadGeneratedWorkflowFromRun,gf as loadHandler,If as loadMarkdownAgentScope,oe as loadSavedWorkflow,ne as loadSavedWorkflowCapsule,lb as loadValidToken,ig as makeDisabledGoalToolsContext,i as mapLegacyReasoningModeToEffortIntent,Sg as maybeRunReferenceAwareToolOutputGc,Rg as maybeRunToolOutputGc,kh as mcpRootsFromWorkspace,Kb as mergeArtifactLedger,ce as mergeScopedReviewResults,Za as normalizeMcpCapabilityId,la as normalizePastedImage,h as normalizeReasoningEffortValue,be as normalizeScopedReviewResult,me as normalizeWorkflowModule,Le as orderPromptSections,_d as parallelInvestigation,Nh as parseAutoRules,Ih as parseClassifierOutput,fc as parseEditToolError,lf as parseLlmReviewVerdict,_a as parseMcpCapabilityId,$h as parseModelSpec,k as parseReasoningEffortEnv,e as parseTimeoutSecEnvMs,vg as parseToolSearchQuery,Ud as parseWorkflowGeneration,kb as performOAuthLogin,qa as persistImageAsBlock,Xb as persistToolOutput,Xf as planToolExposure,ve as preflightWorkflowCapsule,Nc as prewarmRepoIntelligenceCaches,Nd as providerResilienceConfigFromTimeouts,ra as prunePasteTmpDir,na as readAndNormalizeClipboardImage,Df as readArtifact,of as readAuditEntries,qf as readBudget,ma as readClipboardImage,tf as readDisableState,gi as readSpeculativeWindowFromEnv,Lh as readTrustState,Bd as reasoningModeToDepth,rd as reconstructMessagesWithToolGuard,Uh as recordAutoModeAllow,Th as recordAutoModeBlock,ah as recordBlockerAttempt,Zh as recordBreakerError,bg as recordCompactionSavings,yh as recordDenial,_g as registerCodingInvariants,ih as registerConfiguredMcpCapabilityProvider,G as registerCustomProviders,P as registerModelProvider,jb as registerOAuthClient,mh as registerOfficialSandboxExtension,Pa as registerPresetDispatcher,xg as registerTool,Af as rehydrateActiveArtifacts,rf as remainingSelfModifyBudget,qe as renameSavedWorkflow,vc as renderChangedScope,Cc as renderImpactEstimate,zc as renderModuleContext,Bc as renderProcessContext,Me as renderPromptSections,sc as renderRepoOverview,Wc as renderRetrievalResult,Ac as renderSymbolContext,jh as replaceConfiguredMcpCapabilityProvider,se as replaceSavedWorkflow,Id as reportLspDiagnostics,bh as resetBlockerCounter,sf as resetBudget,ai as resolveClassifierModel,Yd as resolveCodingDispatchableAgent,jd as resolveConstructedAgent,Xe as resolveExtensionEntrypoint,ac as resolveKodaXManual,Y as resolveModelCapabilities,U as resolveProvider,X as resolveProviderModelDescriptors,l as resolveReasoningEffort,m as resolveReasoningEffortForModelSwitch,Ad as resolveReasoningMode,Ec as resolveRepoIntelligenceMode,Dc as resolveRepoIntelligenceRuntimeConfig,nd as resolveResilienceConfig,zb as resolveSessionLineageTarget,Xg as resolveToolCapability,Wb as resolveToolOutputDir,_ as resolveWireEffort,Qd as resolveWorkflowGenerationTimeoutMs,oi as resolveWorkflowIdentity,Bf as revoke,Eb as rewindSessionLineage,Nf as rollbackSelfModify,hf as runAstRules,hg as runKodaX,mf as runLlmReview,hh as runManagedTask,nh as runOrchestration,Ee as runWorkflowFromOptions,Ce as runWorkflowModule,xe as safeWorkflowArtifactName,pe as saveGeneratedWorkflow,ue as saveGeneratedWorkflowFromRun,he as scopedReview,$a as searchMcpCatalog,ug as searchToolIndex,Sf as setActiveExtensionRuntime,Ra as setAgentConfigHome,Ab as setSessionLineageActiveEntry,lg as shouldFlipBudgetLimited,$f as shouldSkipLlmCompaction,Md as shutdownDefaultLspService,hi as speculativeRace,xf as stage,Ug as startKodaX,He as startManagedWorkflow,Ph as stripAssistantText,Sc as stripHtmlToText,yf as testArtifact,d as timeoutSecToMs,oc as toolAskUserQuestion,kc as toolBash,yc as toolChangedDiff,xc as toolChangedScope,_c as toolCodeSearch,ec as toolEdit,lc as toolGlob,mc as toolGrep,Rc as toolImpactEstimate,hc as toolInsertAfterAnchor,Oc as toolModuleContext,Yg as toolPermission,Qc as toolProcessContext,Yb as toolRead,wc as toolRepoOverview,$c as toolSemanticLookup,Pc as toolSymbolContext,nc as toolUndo,Zc as toolWebFetch,Yc as toolWebSearch,dc as toolWrite,Tb as truncateHead,Vb as truncateLine,Ub as truncateTail,Mh as trustProjectRules,kg as turnWallTimeDelta,Va as validateAndFixToolHistory,E as validateCustomProviderConfig,Rd as validateGeneratedWorkflowSource,wa as validateInputArtifactsForModel,rh as validateSubtaskIndependence,jf as validateToolSchemaForProvider,fh as verifyGoalCompletion,Ue as webhook,dh as withGoalBeforeNextTurn,eh as withGoalStopHook,cc as withManualToolBranding,hd as workerAgent,ui as workflowStartOutcomeConsumesTurn,yi as writeReviewPackets};
2
+ import{$ as Ph,A as oh,Aa as oi,B as ph,Ba as pi,C as qh,Ca as qi,D as rh,Da as ri,E as sh,Ea as si,F as th,Fa as ti,G as uh,Ga as ui,H as vh,Ha as vi,I as wh,Ia as wi,J as xh,Ja as xi,K as yh,Ka as yi,L as zh,M as Ah,N as Bh,O as Ch,P as Dh,Q as Eh,R as Fh,S as Gh,T as Hh,U as Ih,V as Jh,W as Kh,X as Lh,Y as Mh,Z as Nh,_ as Oh,a as $,aa as Qh,b as aa,ba as Rh,c as ba,ca as Sh,d as Tg,da as Th,e as Ug,ea as Uh,f as Vg,fa as Vh,g as Wg,ga as Wh,h as Xg,ha as Xh,i as Yg,ia as Yh,j as Zg,ja as Zh,k as _g,ka as _h,l as $g,la as $h,m as ah,ma as ai,n as bh,na as bi,o as ch,oa as ci,p as dh,pa as di,q as eh,qa as ei,r as fh,ra as fi,s as gh,sa as gi,t as hh,ta as hi,u as ih,ua as ii,v as jh,va as ji,w as kh,wa as ki,x as lh,xa as li,y as mh,ya as mi,z as nh,za as ni}from"./chunk-A574DBTV.js";import{a as Od,b as Pd,c as Qd,d as Rd,e as Sd,f as Td,g as Ud,h as Vd,i as Wd,j as He}from"./chunk-A2TFSV5M.js";import{A as xe,B as ye,C as ze,D as Ae,E as Be,F as Ce,G as De,H as Ee,I as Fe,J as Ge,a as Zd,b as _d,c as $d,d as ae,e as be,f as ce,g as de,h as ee,i as fe,j as ge,k as he,l as ie,m as je,n as ke,o as le,p as me,q as ne,r as oe,s as pe,t as qe,u as re,v as se,w as te,x as ue,y as ve,z as we}from"./chunk-PHH4TRGF.js";import{$ as Ie,A as zd,Aa as $f,B as Ad,Ba as ag,C as Bd,Ca as bg,G as Cd,H as Dd,I as Ed,J as Fd,Ja as fg,Ka as gg,M as Gd,Ma as hg,a as ya,aa as Je,b as za,ba as Ke,ca as Le,da as Me,e as md,ea as Ne,f as nd,fa as Oe,g as od,ga as Pe,h as pd,i as qd,ia as Qe,j as rd,ja as Re,k as sd,ka as Se,p as td,q as ud,ta as Uf,ua as Vf,v as vd,va as Wf,w as wd,wa as Xf,xa as Yf,y as xd,ya as Zf,z as yd,za as _f}from"./chunk-T7LYK53M.js";import"./chunk-64NQBOSN.js";import{a as Nd}from"./chunk-44QXPEEE.js";import{$ as sc,$a as kd,$b as uf,A as $b,Aa as Qc,Ab as Ue,Ad as Pg,B as ac,Ba as Rc,Bb as Ve,Bd as Qg,C as bc,Ca as Sc,Cb as We,Cd as Rg,D as cc,Da as Tc,Db as Xe,Dd as Sg,Ea as Uc,Eb as Ye,F as dc,Fa as Vc,Fb as Ze,Fc as cg,G as ec,Ga as Wc,Gb as _e,Gc as dg,H as fc,Ha as Xc,Hb as $e,Hc as eg,I as gc,Ia as Yc,Ib as af,J as hc,Ja as Zc,Jb as bf,Ka as _c,Kb as cf,La as $c,Lb as df,Lc as ig,Ma as ad,Mb as ef,Mc as jg,Na as bd,Nb as ff,Nc as kg,O as ic,Oa as cd,Ob as gf,Oc as lg,Pb as hf,Pc as mg,Q as jc,Qb as jf,Qc as ng,Rb as kf,Rc as og,S as kc,Sb as lf,Sc as pg,T as lc,Ta as dd,Tb as mf,Tc as qg,U as mc,Ua as ed,Ub as nf,Uc as rg,V as nc,Va as fd,Vb as of,Vc as sg,W as oc,Wa as gd,Wb as pf,Xa as hd,Xb as qf,Y as pc,Ya as id,Yb as rf,Yc as tg,Z as qc,Za as jd,Zb as sf,Zc as ug,_ as rc,_b as tf,_c as vg,aa as tc,ab as ld,ac as vf,ba as uc,bc as wf,ca as vc,cc as xf,d as Lb,da as wc,dc as yf,e as Mb,ea as xc,ec as zf,ed as wg,fa as yc,fc as Af,fd as xg,ga as zc,gc as Bf,gd as yg,ha as Ac,hc as Cf,hd as zg,i as Nb,ia as Bc,ic as Df,id as Ag,j as Ob,ja as Cc,jc as Ef,jd as Bg,k as Pb,ka as Dc,kc as Ff,kd as Cg,l as Qb,la as Ec,lc as Gf,ld as Dg,m as Rb,ma as Fc,mc as Hf,md as Eg,n as Sb,nb as Hd,nc as If,nd as Fg,o as Tb,ob as Id,oc as Jf,od as Gg,p as Ub,pa as Gc,pb as Jd,pc as Kf,pd as Hg,q as Vb,qa as Hc,qb as Kd,qc as Lf,qd as Ig,r as Wb,ra as Ic,rb as Ld,rc as Mf,rd as Jg,s as Xb,sa as Jc,sb as Md,sc as Nf,sd as Kg,t as Yb,ta as Kc,tb as Xd,tc as Of,td as Lg,ua as Lc,ub as Yd,uc as Pf,ud as Mg,va as Mc,vc as Qf,vd as Ng,wc as Rf,xa as Nc,xc as Sf,y as Zb,ya as Oc,yc as Tf,z as _b,za as Pc,zb as Te,zd as Og}from"./chunk-PVUXONQB.js";import{Aa as I,Ba as J,C as h,Ca as K,D as i,Da as L,E as j,Ea as M,F as k,Fa as N,G as l,Ga as O,H as m,Ha as P,Ia as Q,Ja as R,Ka as S,La as T,Ma as U,Na as V,Oa as W,Pa as X,Qa as Y,Ra as Z,U as n,Ua as _,ca as o,d as a,da as p,e as b,f as c,ia as q,ja as r,ka as s,la as t,m as d,ma as u,n as e,na as v,oa as w,pa as x,qa as y,ra as z,sa as A,ta as B,ua as C,v as f,va as D,w as g,wa as E,xa as F,ya as G,za as H}from"./chunk-ZJIMT5I3.js";import{$b as eb,Bc as wb,Cc as xb,Dc as yb,Ec as zb,Fc as Ab,Gc as Bb,Hc as Cb,Jc as Db,Kc as Eb,Lc as Fb,Mc as Gb,Nc as Hb,Oc as Ib,Sb as Xa,Tb as Ya,Ub as Za,Vb as _a,Vc as Jb,Wb as $a,Wc as Kb,Xb as ab,Yb as bb,Zb as cb,_b as db,a as Aa,ac as fb,b as Ba,bc as gb,c as Ca,cc as hb,d as Da,dc as ib,e as Ea,ec as jb,f as Fa,fc as kb,gc as lb,h as Ga,hc as mb,i as Ha,ic as nb,j as Ia,jc as ob,k as Ja,kc as pb,l as Ka,lc as qb,nc as rb,oc as sb,pc as tb,s as La,sa as Pa,t as Ma,tc as ub,u as Na,uc as vb,v as Oa,va as Qa,vb as Va,wb as Wa}from"./chunk-Y5XKAN7C.js";import{d as Ra,e as Sa,f as Ta,g as Ua}from"./chunk-52JSZ77P.js";import{C as xa,a as ca,b as da,c as ea,d as fa,e as ga,f as ha,g as ia,h as ja,i as ka,j as la,k as ma,l as na,m as oa,n as pa,o as qa,p as ra,q as sa,r as ta,s as ua,t as va,u as wa}from"./chunk-VRSVNU2Y.js";import"./chunk-23X6REO4.js";import"./chunk-ONUPGMER.js";export{Wf as ALWAYS_RESIDENT_TOOL_NAMES,Qh as AUTO_MODE_DENIAL_CONSECUTIVE_THRESHOLD,Rh as AUTO_MODE_DENIAL_CUMULATIVE_THRESHOLD,ji as BASH_POLICY_SPEC,ch as BLOCKER_REQUIRED_CONSECUTIVE_TURNS,Wh as BREAKER_ERROR_THRESHOLD,Xh as BREAKER_WINDOW_MS,ie as BUILTIN_WORKFLOWS,Mb as CANCELLED_TOOL_RESULT_MESSAGE,Lb as CANCELLED_TOOL_RESULT_PREFIX,Eh as CODING_AGENT_MARKER,Zg as CODING_INVARIANTS,Yf as CODING_SUMMARY_PROMPT,Zf as CODING_UPDATE_SUMMARY_PROMPT,df as CapabilityDeniedError,$g as Client,Pf as CombinedExtensionRuntime,ef as ConstructionManifestError,fg as DEFAULT_CODING_AGENT_NAME,th as DEFAULT_DANGEROUS_PATTERNS,bf as DEFAULT_HANDLER_TIMEOUT_MS,md as DEFAULT_RESILIENCE_CONFIG,sh as DEFAULT_SAFE_PATTERNS,pf as DEFAULT_SELF_MODIFY_BUDGET,fi as DEFAULT_SPECULATIVE_WINDOW_MS,Ob as DEFAULT_TOOL_OUTPUT_MAX_BYTES,Nb as DEFAULT_TOOL_OUTPUT_MAX_LINES,Pd as DEFAULT_WORKFLOW_GENERATION_TIMEOUT_MS,Oa as DefaultSummaryCompaction,Bh as EMIT_VERDICT_TOOL_NAME,ya as ErrorCategory,ae as FINDING_VERIFICATION_OUTPUT_SCHEMA,fd as GENERATOR_AGENT_NAME,da as ImageResizeError,Ha as KODAX_API_MIN_INTERVAL,s as KODAX_DEFAULT_PROVIDER,Ba as KODAX_DEFAULT_TIMEOUT,ua as KODAX_FILE_MEDIA_TYPES,Ca as KODAX_HARD_TIMEOUT,sa as KODAX_IMAGE_MEDIA_TYPES,Fa as KODAX_MAX_INCOMPLETE_RETRIES,Da as KODAX_MAX_RETRIES,Aa as KODAX_MAX_TOKENS,r as KODAX_PROVIDERS,q as KODAX_PROVIDER_SNAPSHOTS,f as KODAX_REASONING_MODE_SEQUENCE,Ea as KODAX_RETRY_BASE_DELAY,g as KODAX_STABLE_EFFORT_INTENTS,Ga as KODAX_STAGGER_DELAY,wg as KODAX_TOOLS,_b as KODAX_UNDERLYING_CAPABILITY_TOPICS,ta as KODAX_VIDEO_MEDIA_TYPES,o as KodaXAnthropicCompatProvider,n as KodaXBaseProvider,$g as KodaXClient,a as KodaXError,Of as KodaXExtensionRuntime,ca as KodaXMediaError,p as KodaXOpenAICompatProvider,b as KodaXProviderError,c as KodaXRateLimitError,aa as KodaXSessionError,ba as KodaXTerminalError,$ as KodaXToolError,rb as LINEAGE_ENTRY_TYPES,Jd as LSP_SERVERS,tb as LineageCompaction,sb as LineageExtension,Kd as LspService,$b as MANUAL_REGISTRY,Zb as MANUAL_TOPIC_IDS,ja as MAX_DIMENSION,cb as McpAuthRequiredError,ob as McpCapabilityProvider,bb as McpExpiredSessionError,pb as McpManager,nb as McpServerRuntime,oa as PASTE_TMP_DIR_ENV,pa as PASTE_TMP_TTL_MS,ed as PLANNER_AGENT_NAME,Ia as PROMISE_PATTERN,Je as PROMPT_SECTION_REGISTRY,Dh as PROTOCOL_EMITTER_TOOLS,sd as ProviderRecoveryCoordinator,Pb as READ_DEFAULT_LIMIT,Rb as READ_MAX_LINE_CHARS,Qb as READ_PREFLIGHT_SIZE_BYTES,Kf as REPO_EXPLORER_AGENT_NAME,Lf as REPO_EXPLORER_TOOL_NAMES,Qa as Runner,$d as SCOPED_REVIEW_OUTPUT_SCHEMA,dd as SCOUT_AGENT_NAME,vi as SCOUT_THEN_AUTHOR_PROMPT_LINES,Pe as SELF_KNOWLEDGE_ROUTING_RULE,Ie as SYSTEM_PROMPT,ze as SYSTEM_WORKFLOW_LIMITS,qd as StableBoundaryTracker,ka as TARGET_RAW_SIZE_BYTES,id as TASK_ENGINE_ROLE_AGENTS,Fh as TOOL_RESULT_TRUNCATION_GUARDRAIL_NAME,mi as TRACING_ENV,gd as WORKER_AGENT_NAME,Od as WORKFLOW_GENERATION_SYSTEM_PROMPT,wf as _resetRuntimeForTesting,zf as activate,uc as analyzeChangedScope,nf as appendAuditEntry,Bb as appendSessionLineageLabel,ng as applyAccountingDelta,de as applyFindingVerification,Cb as applySessionCompaction,jc as applyToolResultGuardrail,Ib as archiveOldIslands,xi as authorWorkflowViaWorker,Vh as autoModeDenialShouldFallback,ci as bashSignalCollector,ni as bootstrapTracing,Vg as boundedRevise,_h as breakerShouldFallback,Wg as budgetCeiling,Ae as buildApprovalSummary,qg as buildBlockedGoal,Qe as buildCapabilityContextSections,Hh as buildClassifierPrompt,rg as buildCompleteGoal,mg as buildCreatedGoal,Dd as buildFallbackRoutingDecision,gh as buildGoalRuntimeBinding,mb as buildInitializeCapabilities,kf as buildLlmReviewPrompt,bc as buildManualToolDescription,lh as buildMcpReverseCapabilities,og as buildPausedGoal,td as buildPromptMessageContent,Ne as buildPromptSnapshot,xd as buildProviderCapabilitySnapshot,Ed as buildProviderPolicyHintsForDecision,yd as buildProviderPolicyPromptNotes,tc as buildRepoIntelligenceContext,Gc as buildRepoIntelligenceIndex,qc as buildRepoOverview,pg as buildResumedGoal,ge as buildScopedReviewFinalPrompt,ee as buildScopedReviewPrimaryPrompt,fe as buildScopedReviewVerificationPrompt,wi as buildScoutThenAuthorPrompt,Oe as buildSelfKnowledgeRoutingRule,Gb as buildSessionTree,Se as buildSystemPrompt,Re as buildSystemPromptSnapshot,cg as buildToolResultBudget,dg as buildToolResultBudgetFromUsage,tg as buildToolSearchIndex,we as buildWorkflowCostReport,Td as buildWorkflowGenerationSkillContext,Sd as buildWorkflowGenerationUserPrompt,bi as checkAbsoluteDeny,ud as checkIncompleteToolCalls,Gd as checkPromiseSignal,eg as clampToolResultPolicyToBudget,Be as clampWorkflowLimits,Jh as classify,vh as classifyBashCommand,za as classifyError,pc as classifyFileCategory,od as classifyResilienceError,Pg as cleanupExpiredToolOutputs,Wa as cleanupIncompleteToolCalls,Qg as cleanupUnreferencedToolOutputs,T as clearRuntimeModelProviders,ei as collectAllSignals,Qf as combineExtensionRuntimes,xh as computeInputSignature,Kh as computeRulesFingerprint,vf as configureRuntime,ag as consumeCompactionCooldown,Vc as convertCapabilityReadResult,Uc as convertProviderSearchResults,Hb as countActiveLineageMessages,Ka as countTokens,La as createAgent,Sh as createAutoModeDenialTracker,ii as createAutoModeToolGuardrail,uh as createBashClassifierConfig,li as createBashPrefixExtractor,Eg as createBuiltinToolDefinition,Yh as createCircuitBreaker,Zd as createCodingWorkflowBackend,_f as createCompactionAntiThrashState,ff as createCtxProxy,F as createCustomProvider,gg as createDefaultCodingAgent,wh as createDenialTracker,Rf as createExtensionRuntime,ha as createFileArtifactFromPath,Ma as createHandoff,ga as createImageArtifactFromPath,Na as createInMemorySession,oh as createKodaXTaskRunner,Ya as createMcpCapabilityId,qb as createMcpManager,db as createMcpTransport,Ke as createPromptSection,Fd as createReasoningPlan,ye as createRunGraphWriter,Vf as createRuntimeContextBudgetSnapshot,Tg as createSessionControl,wb as createSessionLineage,Gh as createToolResultTruncationGuardrail,ia as createVideoArtifactFromPath,pi as createWorkflowLifecycleController,si as createWorkflowPatternTemplateModule,Fe as createWorkflowRunManager,ti as decideWorkflowInvocation,Ye as dedupeExtensionPathsByEntrypoint,Xa as defaultMcpCacheDir,cf as defaultPolicy,re as deleteSavedWorkflow,uf as disableSelfModify,hb as discoverAuthorizationServerMetadata,af as discoverDefaultExtensions,$e as discoverExtensionsInDirectory,_e as discoverExtensionsInDirectoryDetailed,Jf as discoverMarkdownAgents,ib as discoverOAuthEndpoints,gb as discoverProtectedResourceMetadata,le as discoverSavedWorkflows,ld as drainPendingSwaps,j as effortToLegacyReasoningMode,Ch as emitVerdict,De as emitWorkflowAgentDigest,xa as enqueueWithArtifacts,Mf as ensureBuiltinRepoExplorerAgent,Ja as estimateTokens,Uf as estimateToolSchemaTokens,zd as evaluateProviderPolicy,Ze as excludeExtensionPathsByEntrypoint,Te as exec,Og as executeTool,Jb as extractArtifactLedger,ki as extractCommandPrefix,wd as extractComparableUserMessageText,Tc as extractHtmlTitle,fb as extractInsufficientScope,vd as extractPromptComparableText,eb as extractResourceMetadataUrl,vb as extractTitleFromMessages,di as fileSignalCollector,Xc as finalizeRetrievalResult,Ff as findByVersion,Db as findPreviousUserEntryId,Fb as forkSessionLineage,cd as formatAgentsForPrompt,qh as formatParallelDispatchResult,Sb as formatSize,ub as generateSessionId,Vd as generateWorkflow,Wd as generateWorkflowFromOptions,Tf as getActiveExtensionRuntime,Sa as getAgentConfigHome,Ta as getAgentConfigPath,Gg as getAllRegisteredTools,Ua as getAppDataDir,W as getAvailableProviderNames,Dg as getBuiltinRegisteredToolDefinition,Cg as getBuiltinToolDefinition,je as getBuiltinWorkflow,N as getCustomModelCapabilities,H as getCustomProvider,K as getCustomProviderList,M as getCustomProviderModelDescriptors,L as getCustomProviderModels,J as getCustomProviderNames,We as getDefaultExtensionDirectory,Ld as getDefaultLspService,Ge as getDefaultWorkflowRunManager,Ah as getDenialContext,Lc as getImpactEstimate,ad as getKodaxGlobalDir,ab as getMcpCachePaths,C as getModelCapabilities,va as getModelInputCapabilities,Ic as getModuleContext,Kc as getProcessContext,t as getProvider,x as getProviderConfiguredCapabilityProfile,w as getProviderConfiguredReasoningCapability,y as getProviderList,v as getProviderModel,B as getProviderModelDescriptors,z as getProviderModels,Ag as getRegisteredToolDefinition,Hc as getRepoIntelligenceIndex,rc as getRepoOverview,Mc as getRepoRoutingSignals,Lg as getRequiredToolParams,Q as getRuntimeModelProvider,S as getRuntimeModelProviderNames,xb as getSessionLineagePath,yb as getSessionMessagesFromLineage,Jc as getSymbolContext,yg as getTool,zg as getToolDefinition,Bg as getToolRegistrations,ic as getToolResultPolicy,ri as getWorkflowPatternTemplate,jg as goalTokenDelta,kd as hasPendingSwap,ea as inferImageMediaType,Cd as inferTaskType,fa as inferVideoMediaType,gc as inspectEditFailure,Fc as inspectRepoIntelligenceRuntime,I as isCustomProviderName,zh as isDeniedRecently,V as isKnownProvider,ph as isParallelDispatchDirective,u as isProviderConfigured,A as isProviderName,R as isRuntimeModelProviderName,pd as isSessionRecoveryCandidateError,Ve as isSupportedExtensionModulePath,Ig as isToolFileMutation,Kg as isToolMutation,Jg as isToolNetworkRead,Hg as isToolPlanModeAllowed,sg as isValidTokenBudget,Hd as languageIdForPath,Gf as listAll,Z as listAllModelCapabilities,Cf as listArtifacts,D as listBuiltinModelCapabilities,Fg as listBuiltinToolDefinitions,ke as listBuiltinWorkflows,Xd as listCodingDispatchableAgents,Ef as listConstructed,O as listCustomProviderModelCapabilities,Ng as listToolDefinitions,Mg as listTools,qi as listWorkflowPatternTemplates,bd as loadAgentsFiles,Hf as loadAgentsFromMarkdown,Oh as loadAutoRules,te as loadGeneratedWorkflowFromRun,gf as loadHandler,If as loadMarkdownAgentScope,oe as loadSavedWorkflow,ne as loadSavedWorkflowCapsule,lb as loadValidToken,ig as makeDisabledGoalToolsContext,i as mapLegacyReasoningModeToEffortIntent,Sg as maybeRunReferenceAwareToolOutputGc,Rg as maybeRunToolOutputGc,kh as mcpRootsFromWorkspace,Kb as mergeArtifactLedger,ce as mergeScopedReviewResults,Za as normalizeMcpCapabilityId,la as normalizePastedImage,h as normalizeReasoningEffortValue,be as normalizeScopedReviewResult,me as normalizeWorkflowModule,Le as orderPromptSections,_d as parallelInvestigation,Nh as parseAutoRules,Ih as parseClassifierOutput,fc as parseEditToolError,lf as parseLlmReviewVerdict,_a as parseMcpCapabilityId,$h as parseModelSpec,k as parseReasoningEffortEnv,e as parseTimeoutSecEnvMs,vg as parseToolSearchQuery,Ud as parseWorkflowGeneration,kb as performOAuthLogin,qa as persistImageAsBlock,Xb as persistToolOutput,Xf as planToolExposure,ve as preflightWorkflowCapsule,Nc as prewarmRepoIntelligenceCaches,Nd as providerResilienceConfigFromTimeouts,ra as prunePasteTmpDir,na as readAndNormalizeClipboardImage,Df as readArtifact,of as readAuditEntries,qf as readBudget,ma as readClipboardImage,tf as readDisableState,gi as readSpeculativeWindowFromEnv,Lh as readTrustState,Bd as reasoningModeToDepth,rd as reconstructMessagesWithToolGuard,Uh as recordAutoModeAllow,Th as recordAutoModeBlock,ah as recordBlockerAttempt,Zh as recordBreakerError,bg as recordCompactionSavings,yh as recordDenial,_g as registerCodingInvariants,ih as registerConfiguredMcpCapabilityProvider,G as registerCustomProviders,P as registerModelProvider,jb as registerOAuthClient,mh as registerOfficialSandboxExtension,Pa as registerPresetDispatcher,xg as registerTool,Af as rehydrateActiveArtifacts,rf as remainingSelfModifyBudget,qe as renameSavedWorkflow,vc as renderChangedScope,Cc as renderImpactEstimate,zc as renderModuleContext,Bc as renderProcessContext,Me as renderPromptSections,sc as renderRepoOverview,Wc as renderRetrievalResult,Ac as renderSymbolContext,jh as replaceConfiguredMcpCapabilityProvider,se as replaceSavedWorkflow,Id as reportLspDiagnostics,bh as resetBlockerCounter,sf as resetBudget,ai as resolveClassifierModel,Yd as resolveCodingDispatchableAgent,jd as resolveConstructedAgent,Xe as resolveExtensionEntrypoint,ac as resolveKodaXManual,Y as resolveModelCapabilities,U as resolveProvider,X as resolveProviderModelDescriptors,l as resolveReasoningEffort,m as resolveReasoningEffortForModelSwitch,Ad as resolveReasoningMode,Ec as resolveRepoIntelligenceMode,Dc as resolveRepoIntelligenceRuntimeConfig,nd as resolveResilienceConfig,zb as resolveSessionLineageTarget,Xg as resolveToolCapability,Wb as resolveToolOutputDir,_ as resolveWireEffort,Qd as resolveWorkflowGenerationTimeoutMs,oi as resolveWorkflowIdentity,Bf as revoke,Eb as rewindSessionLineage,Nf as rollbackSelfModify,hf as runAstRules,hg as runKodaX,mf as runLlmReview,hh as runManagedTask,nh as runOrchestration,Ee as runWorkflowFromOptions,Ce as runWorkflowModule,xe as safeWorkflowArtifactName,pe as saveGeneratedWorkflow,ue as saveGeneratedWorkflowFromRun,he as scopedReview,$a as searchMcpCatalog,ug as searchToolIndex,Sf as setActiveExtensionRuntime,Ra as setAgentConfigHome,Ab as setSessionLineageActiveEntry,lg as shouldFlipBudgetLimited,$f as shouldSkipLlmCompaction,Md as shutdownDefaultLspService,hi as speculativeRace,xf as stage,Ug as startKodaX,He as startManagedWorkflow,Ph as stripAssistantText,Sc as stripHtmlToText,yf as testArtifact,d as timeoutSecToMs,oc as toolAskUserQuestion,kc as toolBash,yc as toolChangedDiff,xc as toolChangedScope,_c as toolCodeSearch,ec as toolEdit,lc as toolGlob,mc as toolGrep,Rc as toolImpactEstimate,hc as toolInsertAfterAnchor,Oc as toolModuleContext,Yg as toolPermission,Qc as toolProcessContext,Yb as toolRead,wc as toolRepoOverview,$c as toolSemanticLookup,Pc as toolSymbolContext,nc as toolUndo,Zc as toolWebFetch,Yc as toolWebSearch,dc as toolWrite,Tb as truncateHead,Vb as truncateLine,Ub as truncateTail,Mh as trustProjectRules,kg as turnWallTimeDelta,Va as validateAndFixToolHistory,E as validateCustomProviderConfig,Rd as validateGeneratedWorkflowSource,wa as validateInputArtifactsForModel,rh as validateSubtaskIndependence,jf as validateToolSchemaForProvider,fh as verifyGoalCompletion,Ue as webhook,dh as withGoalBeforeNextTurn,eh as withGoalStopHook,cc as withManualToolBranding,hd as workerAgent,ui as workflowStartOutcomeConsumesTurn,yi as writeReviewPackets};
@@ -0,0 +1,2 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{j as a}from"./chunk-A2TFSV5M.js";import"./chunk-PHH4TRGF.js";import"./chunk-44QXPEEE.js";import"./chunk-PVUXONQB.js";import"./chunk-ZJIMT5I3.js";import"./chunk-Y5XKAN7C.js";import"./chunk-52JSZ77P.js";import"./chunk-VRSVNU2Y.js";import"./chunk-23X6REO4.js";import"./chunk-ONUPGMER.js";export{a as startManagedWorkflow};
@@ -0,0 +1,2 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{I as a,J as b}from"./chunk-PHH4TRGF.js";import"./chunk-PVUXONQB.js";import"./chunk-ZJIMT5I3.js";import"./chunk-Y5XKAN7C.js";import"./chunk-52JSZ77P.js";import"./chunk-VRSVNU2Y.js";import"./chunk-23X6REO4.js";import"./chunk-ONUPGMER.js";export{a as createWorkflowRunManager,b as getDefaultWorkflowRunManager};
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$ as R,A as q,B as r,C as s,D as t,E as u,F as v,G as w,H as x,I as y,J as z,K as A,L as B,M as C,N as D,O as E,P as F,Q as G,R as H,S as I,T as J,U as K,V as L,W as M,X as N,Y as O,Z as P,_ as Q,aa as S,b as a,ba as T,c as b,ca as U,m as c,n as d,o as e,p as f,q as g,r as h,s as i,t as j,u as k,v as l,w as m,x as n,y as o,z as p}from"./chunk-M7TCFYTO.js";import"./chunk-ZG4DMYBS.js";import"./chunk-URC6ZI6P.js";import"./chunk-PA76WUBL.js";import"./chunk-4WIODYOH.js";import"./chunk-I4TPQEJN.js";import"./chunk-Y4WOTWUC.js";import"./chunk-PQ3XUSY2.js";import"./chunk-UJEMSPM5.js";import"./chunk-VYKFM3TB.js";import"./chunk-AWMTNUDS.js";import"./chunk-F7C7J6IM.js";import"./chunk-NGHQIGVW.js";import"./chunk-ONUPGMER.js";export{a as CONFIG_TEMPLATES,H as KODAX_CONFIG_ENV_BINDINGS,e as KODAX_CONFIG_FILE,c as KODAX_DIR,D as KODAX_EXAMPLE_CONFIG_FILE,E as KODAX_INTEGRATION_EXAMPLE_FILES,d as KODAX_SESSIONS_DIR,k as KODAX_VERSION,f as PREVIEW_MAX_LENGTH,I as applyConfigEnvironment,r as describeProviderCapabilitySummary,y as describeReasoningCapabilityControl,z as describeReasoningExecution,G as ensureExampleConfigFile,F as ensureExampleConfigFiles,S as formatProviderCapabilityDetailLines,R as formatProviderSourceKind,s as formatReasoningCapabilityShort,t as formatReasoningEffortForDisplay,w as formatReasoningEffortStatusLabel,b as getConfigTemplate,Q as getGitRoot,m as getProviderAvailableModels,o as getProviderCapabilityProfile,p as getProviderCapabilitySnapshot,T as getProviderCommonPolicyScenarios,A as getProviderList,l as getProviderModel,q as getProviderPolicyDecision,n as getProviderReasoningCapability,v as getProviderReasoningEffortCycle,u as getProviderReasoningEffortOptions,j as getVersion,g as hydrateProcessEnvFromShell,B as isProviderConfigured,C as loadConfig,J as prepareRuntimeConfig,U as rateLimitedCall,i as registerConfiguredCustomProviders,h as resetShellEnvironmentHydrationForTesting,L as resolveInitialEffortOverride,P as resolvePermissionModeEffort,x as resolveProviderReasoningRuntimeEffort,O as resolveRuntimeEffortSelection,N as resolveRuntimeModelSelection,M as resolveRuntimeProviderSelection,K as saveConfig};
2
+ import{$ as R,A as q,B as r,C as s,D as t,E as u,F as v,G as w,H as x,I as y,J as z,K as A,L as B,M as C,N as D,O as E,P as F,Q as G,R as H,S as I,T as J,U as K,V as L,W as M,X as N,Y as O,Z as P,_ as Q,aa as S,b as a,ba as T,c as b,ca as U,m as c,n as d,o as e,p as f,q as g,r as h,s as i,t as j,u as k,v as l,w as m,x as n,y as o,z as p}from"./chunk-GVTM4Z6O.js";import"./chunk-A574DBTV.js";import"./chunk-A2TFSV5M.js";import"./chunk-PHH4TRGF.js";import"./chunk-T7LYK53M.js";import"./chunk-64NQBOSN.js";import"./chunk-44QXPEEE.js";import"./chunk-PVUXONQB.js";import"./chunk-ZJIMT5I3.js";import"./chunk-Y5XKAN7C.js";import"./chunk-52JSZ77P.js";import"./chunk-VRSVNU2Y.js";import"./chunk-23X6REO4.js";import"./chunk-ONUPGMER.js";export{a as CONFIG_TEMPLATES,H as KODAX_CONFIG_ENV_BINDINGS,e as KODAX_CONFIG_FILE,c as KODAX_DIR,D as KODAX_EXAMPLE_CONFIG_FILE,E as KODAX_INTEGRATION_EXAMPLE_FILES,d as KODAX_SESSIONS_DIR,k as KODAX_VERSION,f as PREVIEW_MAX_LENGTH,I as applyConfigEnvironment,r as describeProviderCapabilitySummary,y as describeReasoningCapabilityControl,z as describeReasoningExecution,G as ensureExampleConfigFile,F as ensureExampleConfigFiles,S as formatProviderCapabilityDetailLines,R as formatProviderSourceKind,s as formatReasoningCapabilityShort,t as formatReasoningEffortForDisplay,w as formatReasoningEffortStatusLabel,b as getConfigTemplate,Q as getGitRoot,m as getProviderAvailableModels,o as getProviderCapabilityProfile,p as getProviderCapabilitySnapshot,T as getProviderCommonPolicyScenarios,A as getProviderList,l as getProviderModel,q as getProviderPolicyDecision,n as getProviderReasoningCapability,v as getProviderReasoningEffortCycle,u as getProviderReasoningEffortOptions,j as getVersion,g as hydrateProcessEnvFromShell,B as isProviderConfigured,C as loadConfig,J as prepareRuntimeConfig,U as rateLimitedCall,i as registerConfiguredCustomProviders,h as resetShellEnvironmentHydrationForTesting,L as resolveInitialEffortOverride,P as resolvePermissionModeEffort,x as resolveProviderReasoningRuntimeEffort,O as resolveRuntimeEffortSelection,N as resolveRuntimeModelSelection,M as resolveRuntimeProviderSelection,K as saveConfig};