@kodax-ai/kodax 0.7.59 → 0.7.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +1232 -1228
- package/README_CN.md +651 -647
- package/dist/chunks/{agent-QQCRBU4C.js → agent-L5FC3YOY.js} +1 -1
- package/dist/chunks/argument-completer-BQDAYT7W.js +2 -0
- package/dist/chunks/chunk-2RLIKZOZ.js +18 -0
- package/dist/chunks/{chunk-PRIBJN5E.js → chunk-4K5BDO7S.js} +112 -74
- package/dist/chunks/{chunk-TBXP7FEG.js → chunk-5TRQBMPR.js} +1 -1
- package/dist/chunks/{chunk-UXQILGRX.js → chunk-6DWXUZMO.js} +62 -62
- package/dist/chunks/{chunk-YADBB5GN.js → chunk-6OZ5KWG3.js} +1 -1
- package/dist/chunks/chunk-IJN6ZJVI.js +310 -0
- package/dist/chunks/{chunk-SVEJFERZ.js → chunk-QFCF3GNT.js} +153 -153
- package/dist/chunks/{chunk-2UUOFT3Z.js → chunk-SGNM3UP6.js} +1 -1
- package/dist/chunks/chunk-U6BNMGSK.js +17 -0
- package/dist/chunks/{chunk-5GPJ6MB5.js → chunk-XULI4U7I.js} +120 -120
- package/dist/chunks/{chunk-BEXLPFFB.js → chunk-ZL5CEANW.js} +3 -3
- package/dist/chunks/chunk-ZPD7IUKW.js +322 -0
- package/dist/chunks/compaction-config-E4LN3M53.js +2 -0
- package/dist/chunks/{construction-bootstrap-YON4ZEMO.js → construction-bootstrap-GIFDM4L5.js} +1 -1
- package/dist/chunks/{dist-EZXBR6NW.js → dist-7PXDYX2R.js} +1 -1
- package/dist/chunks/host-FLG7FJZT.js +2 -0
- package/dist/chunks/{paste-4THGP5XW.js → paste-FDYM7SZX.js} +1 -1
- package/dist/chunks/run-manager-IU5COC6X.js +2 -0
- package/dist/chunks/{utils-5XVW33SY.js → utils-NP42DKL3.js} +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -1
- package/dist/kodax_cli.js +1008 -970
- package/dist/sdk-agent.d.ts +24 -13
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +15 -13
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.d.ts +6 -6
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +12 -11
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-session.d.ts +6 -6
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/types-chunks/{base.d-BA9Doaj_.d.ts → base.d-DalIRhbb.d.ts} +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-BNdpV4Cf.d.ts → bash-prefix-extractor.d-Ds1THKeH.d.ts} +63 -27
- package/dist/types-chunks/{capability-learning.d-DRV80ISB.d.ts → capability-learning.d-BQB0M70w.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-CNdKuSD_.d.ts → guardrail.d-CdqJwwN7.d.ts} +3 -3
- package/dist/types-chunks/{process.d-BOrAxjvM.d.ts → process.d-C93UMgPK.d.ts} +20 -5
- package/dist/types-chunks/{resolver.d-DFAKKUvt.d.ts → resolver.d-CGkfRULj.d.ts} +2 -2
- package/dist/types-chunks/{run-manager.d-CsJC9zYf.d.ts → run-manager.d-DLK3ed-T.d.ts} +4 -4
- package/dist/types-chunks/{sdk-session-ByZlwgdM.d.ts → sdk-session-CtwN7iBO.d.ts} +47 -10
- package/dist/types-chunks/{storage.d-DHL3XpAL.d.ts → storage.d-DlZS0g8w.d.ts} +2 -2
- package/dist/types-chunks/{types.d-Ci5YPFEh.d.ts → types.d-Bp4Lm1jv.d.ts} +37 -3
- package/dist/types-chunks/{types.d-CE_Ter29.d.ts → types.d-CSZAMmU-.d.ts} +4 -1
- package/dist/types-chunks/{utils.d-D9FHU4wB.d.ts → utils.d-Boz9k2HB.d.ts} +5 -5
- package/package.json +1 -1
- package/dist/chunks/argument-completer-7Q2T4YWA.js +0 -2
- package/dist/chunks/chunk-D7RENPQQ.js +0 -322
- package/dist/chunks/chunk-SDSLWDAZ.js +0 -17
- package/dist/chunks/chunk-Z23LK3IV.js +0 -310
- package/dist/chunks/chunk-Z3ZXV3DZ.js +0 -18
- package/dist/chunks/compaction-config-GQIPCVFD.js +0 -2
- package/dist/chunks/host-LO6ZNTMV.js +0 -2
- package/dist/chunks/run-manager-HTLXKU66.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{w as U,y as $}from"./chunk-D7RENPQQ.js";import{D as x,E as O,Ja as X,Na as F,ja as I,ka as M,la as D,ma as T,n as k,na as N,oa as S,va as K,wa as g,za as P}from"./chunk-S4GVQO3W.js";import{Ba as j,va as G}from"./chunk-PRIBJN5E.js";import{a as r}from"./chunk-V4WSBIXB.js";import l from"fs";import f from"path";import{exec as ee,spawnSync as te}from"child_process";import{promisify as ne}from"util";import{fileURLToPath as oe}from"url";var C="en";function Z(){return(process.env.LC_ALL||process.env.LC_MESSAGES||process.env.LANG||"").toLowerCase().startsWith("zh")?"zh":"en"}r(Z,"detectSystemLocale");function B(e){if(!e||e==="auto"){C=Z();return}C=e.toLowerCase().replace(/[-_].*/,"")==="zh"?"zh":"en"}r(B,"setLocale");var V={en:{"dialog.confirm":"[Confirm]","dialog.select":"[Select]","dialog.input":"[Input]","confirm.instruction.basic":"Press (y) yes, (n) no","confirm.instruction.always":"Press (y) yes, (a) always yes for this tool, (n) no","confirm.instruction.protected":"Press (y) to confirm, (n) to cancel (protected path)","confirm.result.approved":"Approved","confirm.result.approved_always":"Approved (always)","confirm.result.denied":"Denied","tool.bash.title":"Execute bash command?","tool.shell.title":"Execute shell command?","tool.write.title":"Write to file?","tool.edit.title":"Edit file?","tool.generic.title":"Execute {tool}?","field.reason":"Reason","field.intent":"Intent","field.target":"Target","field.scope":"Scope","field.risk":"Risk","field.summary":"Summary","intent.read":"Read project files","intent.delete":"Delete files","intent.deps":"Modify dependencies or environment","intent.modify":"Modify files","intent.execute":"Execute command","intent.write_file":"Write file","intent.edit_file":"Edit file","intent.use_tool":"Use {tool}","risk.destructive":"Destructive change","risk.deps":"May change dependencies or local tools","risk.modify":"May modify files","risk.unknown":"Command effects depend on its arguments","risk.network":"May access network","scope.outside":"Outside project","scope.protected":"Protected path","waiting.confirm":"Waiting: approval required","waiting.select":"Waiting: choose an option","waiting.input":"Waiting: answer the prompt","placeholder.confirm":"Respond to the approval prompt above...","placeholder.select":"Choose an option above...","placeholder.input":"Answer the prompt above...","placeholder.busy":"Agent is busy...","placeholder.queue":"Queue a follow-up for the next round...","placeholder.idle":"Type a message...","select.choice":"Choice:","select.type_number":"(type a number)","select.more":"{count} more choices...","select.more_above":"\u2191 {count} more above","select.more_below":"\u2193 {count} more below","select.confirm_hint":"Press Enter to confirm, Esc to cancel","select.navigate_hint":"Use \u2191\u2193 to navigate, Enter to confirm, Esc to cancel","select.multiselect_hint":"Use \u2191\u2193 to navigate, Space to toggle, Enter to confirm, Esc to cancel","select.multiselect_empty":"Select at least one option with Space before confirming.","select.multiselect_min":"Select at least {min} option(s) with Space before confirming.","select.multiselect_max":"Select at most {max} option(s) with Space before confirming.","select.back_prev":"\u2190 Back to previous question","input.default":"Default:","input.value":"Value:","input.type_response":"(type your response)","managed.completed":"Task completed","managed.completed.blocked":"Task blocked","managed.completed.continuation":"Task needs continuation",cancelled:"[Cancelled] Operation cancelled by user"},zh:{"dialog.confirm":"[\u786E\u8BA4]","dialog.select":"[\u9009\u62E9]","dialog.input":"[\u8F93\u5165]","confirm.instruction.basic":"\u6309 (y) \u786E\u8BA4, (n) \u62D2\u7EDD","confirm.instruction.always":"\u6309 (y) \u786E\u8BA4, (a) \u59CB\u7EC8\u5141\u8BB8\u6B64\u5DE5\u5177, (n) \u62D2\u7EDD","confirm.instruction.protected":"\u6309 (y) \u786E\u8BA4, (n) \u53D6\u6D88 (\u53D7\u4FDD\u62A4\u8DEF\u5F84)","confirm.result.approved":"\u5DF2\u6279\u51C6","confirm.result.approved_always":"\u5DF2\u6279\u51C6 (\u59CB\u7EC8\u5141\u8BB8)","confirm.result.denied":"\u5DF2\u62D2\u7EDD","tool.bash.title":"\u6267\u884C bash \u547D\u4EE4\uFF1F","tool.shell.title":"\u6267\u884C shell \u547D\u4EE4\uFF1F","tool.write.title":"\u5199\u5165\u6587\u4EF6\uFF1F","tool.edit.title":"\u7F16\u8F91\u6587\u4EF6\uFF1F","tool.generic.title":"\u6267\u884C {tool}\uFF1F","field.reason":"\u539F\u56E0","field.intent":"\u610F\u56FE","field.target":"\u76EE\u6807","field.scope":"\u8303\u56F4","field.risk":"\u98CE\u9669","field.summary":"\u6458\u8981","intent.read":"\u8BFB\u53D6\u9879\u76EE\u6587\u4EF6","intent.delete":"\u5220\u9664\u6587\u4EF6","intent.deps":"\u4FEE\u6539\u4F9D\u8D56\u6216\u73AF\u5883","intent.modify":"\u4FEE\u6539\u6587\u4EF6","intent.execute":"\u6267\u884C\u547D\u4EE4","intent.write_file":"\u5199\u5165\u6587\u4EF6","intent.edit_file":"\u7F16\u8F91\u6587\u4EF6","intent.use_tool":"\u4F7F\u7528 {tool}","risk.destructive":"\u7834\u574F\u6027\u53D8\u66F4","risk.deps":"\u53EF\u80FD\u4FEE\u6539\u4F9D\u8D56\u6216\u672C\u5730\u5DE5\u5177","risk.modify":"\u53EF\u80FD\u4FEE\u6539\u6587\u4EF6","risk.unknown":"\u547D\u4EE4\u6548\u679C\u53D6\u51B3\u4E8E\u53C2\u6570","risk.network":"\u53EF\u80FD\u8BBF\u95EE\u7F51\u7EDC","scope.outside":"\u9879\u76EE\u5916\u90E8","scope.protected":"\u53D7\u4FDD\u62A4\u8DEF\u5F84","waiting.confirm":"\u7B49\u5F85\u4E2D\uFF1A\u9700\u8981\u5BA1\u6279","waiting.select":"\u7B49\u5F85\u4E2D\uFF1A\u8BF7\u9009\u62E9","waiting.input":"\u7B49\u5F85\u4E2D\uFF1A\u8BF7\u56DE\u7B54","placeholder.confirm":"\u8BF7\u56DE\u5E94\u4E0A\u65B9\u7684\u5BA1\u6279\u63D0\u793A...","placeholder.select":"\u8BF7\u5728\u4E0A\u65B9\u9009\u62E9\u4E00\u4E2A\u9009\u9879...","placeholder.input":"\u8BF7\u56DE\u7B54\u4E0A\u65B9\u7684\u63D0\u793A...","placeholder.busy":"\u667A\u80FD\u4F53\u6B63\u5728\u5DE5\u4F5C\u4E2D...","placeholder.queue":"\u6392\u961F\u7B49\u5F85\u4E0B\u4E00\u8F6E\u8DDF\u8FDB...","placeholder.idle":"\u8F93\u5165\u6D88\u606F...","select.choice":"\u9009\u9879\uFF1A","select.type_number":"(\u8F93\u5165\u7F16\u53F7)","select.more":"\u8FD8\u6709 {count} \u4E2A\u9009\u9879...","select.more_above":"\u2191 \u4E0A\u65B9\u8FD8\u6709 {count} \u4E2A","select.more_below":"\u2193 \u4E0B\u65B9\u8FD8\u6709 {count} \u4E2A","select.confirm_hint":"\u6309 Enter \u786E\u8BA4\uFF0CEsc \u53D6\u6D88","select.navigate_hint":"\u4F7F\u7528 \u2191\u2193 \u5BFC\u822A\uFF0CEnter \u786E\u8BA4\uFF0CEsc \u53D6\u6D88","select.multiselect_hint":"\u4F7F\u7528 \u2191\u2193 \u5BFC\u822A\uFF0C\u7A7A\u683C \u5207\u6362\u9009\u4E2D\uFF0CEnter \u786E\u8BA4\uFF0CEsc \u53D6\u6D88","select.multiselect_empty":"\u8BF7\u5148\u4F7F\u7528\u7A7A\u683C\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u9009\u9879\u3002","select.multiselect_min":"\u8BF7\u5148\u4F7F\u7528\u7A7A\u683C\u81F3\u5C11\u9009\u62E9 {min} \u4E2A\u9009\u9879\u3002","select.multiselect_max":"\u6700\u591A\u53EA\u80FD\u9009\u62E9 {max} \u4E2A\u9009\u9879\u3002","select.back_prev":"\u2190 \u8FD4\u56DE\u4E0A\u4E00\u9898","input.default":"\u9ED8\u8BA4\u503C\uFF1A","input.value":"\u503C\uFF1A","input.type_response":"(\u8F93\u5165\u4F60\u7684\u56DE\u7B54)","managed.completed":"\u4EFB\u52A1\u5B8C\u6210","managed.completed.blocked":"\u4EFB\u52A1\u53D7\u963B","managed.completed.continuation":"\u4EFB\u52A1\u9700\u8981\u7EE7\u7EED",cancelled:"[\u5DF2\u53D6\u6D88] \u64CD\u4F5C\u5DF2\u88AB\u7528\u6237\u53D6\u6D88"}};function Ie(e,t){let o=V[C][e]??V.en[e]??e;if(t)for(let[i,s]of Object.entries(t))o=o.replace(`{${i}}`,String(s));return o}r(Ie,"t");var re=ne(ee),h=G(),Ve=f.join(h,"sessions"),d=f.join(h,"config.json"),Be=60,p=null,L=!1,ie="dumb";function se(e){let t=f.basename(e).toLowerCase(),n="__KODAX_SHELL_ENV_START__",o=`printf '%s\\0' '${n}'; env -0`;return t==="fish"?{args:["-i","-c",o],sentinel:n}:{args:t==="bash"||t==="zsh"?["-ic",o]:["-lc",o],sentinel:n}}r(se,"buildShellEnvCommand");function ae(e,t){let n=`${t}\0`,o=e.lastIndexOf(n);if(o===-1)return{};let i=e.slice(o+n.length),s={};for(let a of i.split("\0")){if(!a)continue;let u=a.indexOf("=");u<=0||(s[a.slice(0,u)]=a.slice(u+1))}return s}r(ae,"parseNullDelimitedShellEnv");function le(e={}){let t=e.env??process.env;if((e.platform??process.platform)==="win32"||t.KODAX_DISABLE_SHELL_ENV_HYDRATION==="1")return!1;let o=e.shell??t.SHELL;if(!o||!f.isAbsolute(o))return!1;let{args:i,sentinel:s}=se(o),a=e.run??te,u={...t,TERM:ie},c=a(o,i,{encoding:"utf8",env:u,maxBuffer:1024*1024,timeout:5e3,windowsHide:!0,detached:!0,stdio:["ignore","pipe","pipe"]});if(c.status!==0||!c.stdout)return!1;let J=typeof c.stdout=="string"?c.stdout:c.stdout.toString("utf8"),Y=ae(J,s),A=!1;for(let[_,Q]of Object.entries(Y))_!=="TERM"&&t[_]===void 0&&(t[_]=Q,A=!0);return A}r(le,"hydrateProcessEnvFromShell");function ce(){if(!L){L=!0;try{le()}catch{}}}r(ce,"ensureShellEnvironmentHydrated");function We(){L=!1}r(We,"resetShellEnvironmentHydrationForTesting");function ue(e){K(e.customProviders??[])}r(ue,"registerConfiguredCustomProviders");function z(e){if(!Array.isArray(e))return;let t=e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0);return t.length>0?t:[]}r(z,"normalizeConfiguredExtensions");function fe(e){if(e.permissionMode!=="default")return e;let t={...e,permissionMode:"accept-edits"};try{l.mkdirSync(f.dirname(d),{recursive:!0}),l.writeFileSync(d,JSON.stringify(t,null,2))}catch{}return t}r(fe,"migrateLegacyPermissionModeInConfig");function de(e){if(e.permissionMode!=="auto-in-project")return e;try{let t=l.readFileSync(d,"utf-8"),n=t.replace(/("permissionMode"\s*:\s*)"auto-in-project"/,'$1"auto"');n!==t&&l.writeFileSync(d,n)}catch{}return{...e,permissionMode:"auto"}}r(de,"migrateAutoInProjectAliasInConfig");function pe(){if(p)return p;let e="0.7.59";if(e)return p=e,p;let t=f.join(f.dirname(oe(import.meta.url)),"../../package.json");if(l.existsSync(t))try{return p=JSON.parse(l.readFileSync(t,"utf-8")).version??"0.0.0",p??"0.0.0"}catch{}return p="0.0.0",p}r(pe,"getVersion");var He=pe();function me(e){return M(e)}r(me,"getProviderModel");function R(e,t){let n=new Set(e.map(i=>i.toLowerCase())),o=[...e];for(let i of t)n.has(i.toLowerCase())||o.push(i);return o}r(R,"mergeModels");function ge(e,t){t||(t=b().providerModels);let n=t?.[e];if(n&&n.length>0){try{let o=S(e);if(o.length>0)return R(n,o)}catch{}try{let o=g(e);if(o)return R(n,o.getAvailableModels())}catch{}return n}try{let o=S(e);if(o.length>0)return o}catch{}try{let o=g(e);if(o)return o.getAvailableModels()}catch{}return[]}r(ge,"getProviderAvailableModels");function ve(e,t){let n=D(e,t);if(n!=="unknown")return n;try{let o=g(e);if(o)return o.getReasoningCapability(t)}catch{}return"unknown"}r(ve,"getProviderReasoningCapability");function ye(e){let t=T(e);if(t)return t;try{return P().find(o=>o.name===e)?.capabilityProfile??null}catch{return null}}r(ye,"getProviderCapabilityProfile");function q(e,t){let n=ye(e),o=ve(e,t);if(n)return{capabilityProfile:n,reasoningCapability:o};try{let i=X(e);return{capabilityProfile:i.getCapabilityProfile(),reasoningCapability:i.getReasoningCapability(t)}}catch{return null}}r(q,"getProviderCapabilityMetadata");function ze(e,t){let n=q(e,t);return n?U({providerName:e,model:t,capabilityProfile:n.capabilityProfile,reasoningCapability:n.reasoningCapability==="unknown"?void 0:n.reasoningCapability}):null}r(ze,"getProviderCapabilitySnapshot");function he(e,t,n,o){let i=q(e,t);return i?$({providerName:e,model:t,capabilityProfile:i.capabilityProfile,reasoningCapability:i.reasoningCapability==="unknown"?void 0:i.reasoningCapability,reasoningMode:n,hints:o}):null}r(he,"getProviderPolicyDecision");function qe(e){let t=e.transport==="cli-bridge"?"CLI bridge":"Native API",n=e.conversationSemantics==="last-user-message"?"forwards only the latest user message":"preserves full conversation history",o=e.mcpSupport==="native"?"MCP available":"MCP unavailable";return`${t}; ${n}; ${o}`}r(qe,"describeProviderCapabilitySummary");function Je(e){switch(e){case"native-budget":return"B";case"native-effort":return"E";case"native-toggle":return"T";case"native-adaptive":return"A";default:return"-"}}r(Je,"formatReasoningCapabilityShort");function m(e){if(e)return e==="none"?"off":e}r(m,"formatReasoningEffortForDisplay");function y(e,t){let n=m(t);n&&!e.includes(n)&&e.push(n)}r(y,"pushUniqueEffortDisplay");function Ye(e,t){let n=["auto"],i=E(e,t)?.supportedEfforts?.filter(s=>s.isUserVisible!==!1);if(!i||i.length===0){for(let s of["off","low","medium","high"])y(n,s);return n}for(let s of i)y(n,s.value);return n}r(Ye,"getProviderReasoningEffortOptions");function Qe(e,t){let n=E(e,t),o=new Set(n?.disabledEfforts??[]),i=n?.supportedEfforts?.filter(c=>c.isUserVisible!==!1),s=[],a=n?.supportsDisabledThinking===!0;if(!i||i.length===0){for(let c of["low","medium","high"])y(s,c);a=!0}else for(let c of i){if(c.value==="none"){a=!0;continue}if(o.has(c.value)){a=!0;continue}y(s,c.value)}let u=[];return a&&u.push("off"),u.push(...s),u.push("auto"),u}r(Qe,"getProviderReasoningEffortCycle");function Ee(e,t){if(t===!1)return"off";switch(e){case"off":return"off";case"quick":return"low";case"balanced":return"medium";case"deep":return"high";default:return"auto"}}r(Ee,"legacyReasoningModeToEffortDisplay");function E(e,t){let n=t??me(e);if(!n)return;let o=F(e,n)?.reasoningProfile;if(o)return k(o,j(e,n))}r(E,"resolveReasoningProfileForDisplay");function Ze(e){let t=m(e.effort)??Ee(e.reasoningMode,e.thinking),n=E(e.provider,e.model);if(!n)return t;try{let o=x({capability:n,explicitEffort:e.effortOverride?e.effort:void 0,sessionEffort:e.effortOverride?void 0:e.effort,legacyReasoningMode:e.reasoningMode,thinking:e.thinking}),i=m(o.configuredEffort)??t,a=o.configuredEffort!==void 0&&n.disabledEfforts?.includes(o.configuredEffort)===!0?"off":m(o.effectiveEffort);return a&&a!==i?`${i}->${a}`:i}catch{if(e.effort)try{let o=O({currentEffort:e.effort,capability:n}),i=m(e.effort)??t,s=m(o.effectiveEffort);return s&&s!==i?`${i}->${s}`:i}catch{return t}return t}}r(Ze,"formatReasoningEffortStatusLabel");function et(e){let t=ke(e);if(!t)return{preserved:!0};let n=E(e.provider,e.model);if(!n)return{configuredEffort:t,runtimeEffort:t,preserved:!0};let o=O({currentEffort:t,capability:n});return{configuredEffort:t,runtimeEffort:o.effectiveEffort,preserved:o.preserved,diagnostic:o.diagnostic}}r(et,"resolveProviderReasoningRuntimeEffort");function be(e){switch(e){case"native-budget":return"budget";case"native-effort":return"effort";case"native-toggle":return"toggle";case"native-adaptive":return"adaptive";default:return"none"}}r(be,"describeReasoningCapabilityControl");function tt(e,t){if(e==="off")return"Reasoning disabled";switch(t){case"native-budget":return"Uses native thinking budget control";case"native-effort":return"Uses native reasoning effort control";case"native-toggle":return"Uses provider-native thinking toggle only";case"native-adaptive":return"Model adaptively decides thinking depth (Opus 4.7+)";case"none":return"Runs without native reasoning parameters";case"prompt-only":return"Uses prompt overlays only; no native reasoning parameter";default:return"Runs without native reasoning parameters"}}r(tt,"describeReasoningExecution");function nt(e){let t=[];e||(e=b().providerModels);for(let n of N())t.push({name:n.name,model:n.model,models:ge(n.name,e),configured:n.capabilityProfile.transport==="cli-bridge"?!0:n.configured,reasoningCapability:n.reasoningCapability,capabilityProfile:n.capabilityProfile});try{let n=P().map(o=>({...o,models:(()=>{let i=e?.[o.name];return i&&i.length>0?R(i,o.models):o.models})()}));t.push(...n)}catch{}return t}r(nt,"getProviderList");function ot(e){if(I(e))return!0;try{return g(e)?.isConfigured()??!1}catch{return!1}}r(ot,"isProviderConfigured");function b(){try{if(l.existsSync(d)){let e=JSON.parse(l.readFileSync(d,"utf-8")),t=e.reasoningCeiling??e.reasoningMode;return de(fe({...e,reasoningMode:t,extensions:z(e.extensions)}))}}catch{}return{}}r(b,"loadConfig");var w=f.join(h,"config.example.jsonc"),_e=`// KodaX example configuration \u2014 copy what you need into config.json (in this same
|
|
2
|
+
import{w as U,y as $}from"./chunk-ZPD7IUKW.js";import{D as x,E as O,Ja as X,Na as F,ja as I,ka as M,la as D,ma as T,n as k,na as N,oa as S,va as K,wa as g,za as P}from"./chunk-S4GVQO3W.js";import{Ba as j,va as G}from"./chunk-4K5BDO7S.js";import{a as r}from"./chunk-V4WSBIXB.js";import l from"fs";import f from"path";import{exec as ee,spawnSync as te}from"child_process";import{promisify as ne}from"util";import{fileURLToPath as oe}from"url";var C="en";function Z(){return(process.env.LC_ALL||process.env.LC_MESSAGES||process.env.LANG||"").toLowerCase().startsWith("zh")?"zh":"en"}r(Z,"detectSystemLocale");function B(e){if(!e||e==="auto"){C=Z();return}C=e.toLowerCase().replace(/[-_].*/,"")==="zh"?"zh":"en"}r(B,"setLocale");var V={en:{"dialog.confirm":"[Confirm]","dialog.select":"[Select]","dialog.input":"[Input]","confirm.instruction.basic":"Press (y) yes, (n) no","confirm.instruction.always":"Press (y) yes, (a) always yes for this tool, (n) no","confirm.instruction.protected":"Press (y) to confirm, (n) to cancel (protected path)","confirm.result.approved":"Approved","confirm.result.approved_always":"Approved (always)","confirm.result.denied":"Denied","tool.bash.title":"Execute bash command?","tool.shell.title":"Execute shell command?","tool.write.title":"Write to file?","tool.edit.title":"Edit file?","tool.generic.title":"Execute {tool}?","field.reason":"Reason","field.intent":"Intent","field.target":"Target","field.scope":"Scope","field.risk":"Risk","field.summary":"Summary","intent.read":"Read project files","intent.delete":"Delete files","intent.deps":"Modify dependencies or environment","intent.modify":"Modify files","intent.execute":"Execute command","intent.write_file":"Write file","intent.edit_file":"Edit file","intent.use_tool":"Use {tool}","risk.destructive":"Destructive change","risk.deps":"May change dependencies or local tools","risk.modify":"May modify files","risk.unknown":"Command effects depend on its arguments","risk.network":"May access network","scope.outside":"Outside project","scope.protected":"Protected path","waiting.confirm":"Waiting: approval required","waiting.select":"Waiting: choose an option","waiting.input":"Waiting: answer the prompt","placeholder.confirm":"Respond to the approval prompt above...","placeholder.select":"Choose an option above...","placeholder.input":"Answer the prompt above...","placeholder.busy":"Agent is busy...","placeholder.queue":"Queue a follow-up for the next round...","placeholder.idle":"Type a message...","select.choice":"Choice:","select.type_number":"(type a number)","select.more":"{count} more choices...","select.more_above":"\u2191 {count} more above","select.more_below":"\u2193 {count} more below","select.confirm_hint":"Press Enter to confirm, Esc to cancel","select.navigate_hint":"Use \u2191\u2193 to navigate, Enter to confirm, Esc to cancel","select.multiselect_hint":"Use \u2191\u2193 to navigate, Space to toggle, Enter to confirm, Esc to cancel","select.multiselect_empty":"Select at least one option with Space before confirming.","select.multiselect_min":"Select at least {min} option(s) with Space before confirming.","select.multiselect_max":"Select at most {max} option(s) with Space before confirming.","select.back_prev":"\u2190 Back to previous question","input.default":"Default:","input.value":"Value:","input.type_response":"(type your response)","managed.completed":"Task completed","managed.completed.blocked":"Task blocked","managed.completed.continuation":"Task needs continuation",cancelled:"[Cancelled] Operation cancelled by user"},zh:{"dialog.confirm":"[\u786E\u8BA4]","dialog.select":"[\u9009\u62E9]","dialog.input":"[\u8F93\u5165]","confirm.instruction.basic":"\u6309 (y) \u786E\u8BA4, (n) \u62D2\u7EDD","confirm.instruction.always":"\u6309 (y) \u786E\u8BA4, (a) \u59CB\u7EC8\u5141\u8BB8\u6B64\u5DE5\u5177, (n) \u62D2\u7EDD","confirm.instruction.protected":"\u6309 (y) \u786E\u8BA4, (n) \u53D6\u6D88 (\u53D7\u4FDD\u62A4\u8DEF\u5F84)","confirm.result.approved":"\u5DF2\u6279\u51C6","confirm.result.approved_always":"\u5DF2\u6279\u51C6 (\u59CB\u7EC8\u5141\u8BB8)","confirm.result.denied":"\u5DF2\u62D2\u7EDD","tool.bash.title":"\u6267\u884C bash \u547D\u4EE4\uFF1F","tool.shell.title":"\u6267\u884C shell \u547D\u4EE4\uFF1F","tool.write.title":"\u5199\u5165\u6587\u4EF6\uFF1F","tool.edit.title":"\u7F16\u8F91\u6587\u4EF6\uFF1F","tool.generic.title":"\u6267\u884C {tool}\uFF1F","field.reason":"\u539F\u56E0","field.intent":"\u610F\u56FE","field.target":"\u76EE\u6807","field.scope":"\u8303\u56F4","field.risk":"\u98CE\u9669","field.summary":"\u6458\u8981","intent.read":"\u8BFB\u53D6\u9879\u76EE\u6587\u4EF6","intent.delete":"\u5220\u9664\u6587\u4EF6","intent.deps":"\u4FEE\u6539\u4F9D\u8D56\u6216\u73AF\u5883","intent.modify":"\u4FEE\u6539\u6587\u4EF6","intent.execute":"\u6267\u884C\u547D\u4EE4","intent.write_file":"\u5199\u5165\u6587\u4EF6","intent.edit_file":"\u7F16\u8F91\u6587\u4EF6","intent.use_tool":"\u4F7F\u7528 {tool}","risk.destructive":"\u7834\u574F\u6027\u53D8\u66F4","risk.deps":"\u53EF\u80FD\u4FEE\u6539\u4F9D\u8D56\u6216\u672C\u5730\u5DE5\u5177","risk.modify":"\u53EF\u80FD\u4FEE\u6539\u6587\u4EF6","risk.unknown":"\u547D\u4EE4\u6548\u679C\u53D6\u51B3\u4E8E\u53C2\u6570","risk.network":"\u53EF\u80FD\u8BBF\u95EE\u7F51\u7EDC","scope.outside":"\u9879\u76EE\u5916\u90E8","scope.protected":"\u53D7\u4FDD\u62A4\u8DEF\u5F84","waiting.confirm":"\u7B49\u5F85\u4E2D\uFF1A\u9700\u8981\u5BA1\u6279","waiting.select":"\u7B49\u5F85\u4E2D\uFF1A\u8BF7\u9009\u62E9","waiting.input":"\u7B49\u5F85\u4E2D\uFF1A\u8BF7\u56DE\u7B54","placeholder.confirm":"\u8BF7\u56DE\u5E94\u4E0A\u65B9\u7684\u5BA1\u6279\u63D0\u793A...","placeholder.select":"\u8BF7\u5728\u4E0A\u65B9\u9009\u62E9\u4E00\u4E2A\u9009\u9879...","placeholder.input":"\u8BF7\u56DE\u7B54\u4E0A\u65B9\u7684\u63D0\u793A...","placeholder.busy":"\u667A\u80FD\u4F53\u6B63\u5728\u5DE5\u4F5C\u4E2D...","placeholder.queue":"\u6392\u961F\u7B49\u5F85\u4E0B\u4E00\u8F6E\u8DDF\u8FDB...","placeholder.idle":"\u8F93\u5165\u6D88\u606F...","select.choice":"\u9009\u9879\uFF1A","select.type_number":"(\u8F93\u5165\u7F16\u53F7)","select.more":"\u8FD8\u6709 {count} \u4E2A\u9009\u9879...","select.more_above":"\u2191 \u4E0A\u65B9\u8FD8\u6709 {count} \u4E2A","select.more_below":"\u2193 \u4E0B\u65B9\u8FD8\u6709 {count} \u4E2A","select.confirm_hint":"\u6309 Enter \u786E\u8BA4\uFF0CEsc \u53D6\u6D88","select.navigate_hint":"\u4F7F\u7528 \u2191\u2193 \u5BFC\u822A\uFF0CEnter \u786E\u8BA4\uFF0CEsc \u53D6\u6D88","select.multiselect_hint":"\u4F7F\u7528 \u2191\u2193 \u5BFC\u822A\uFF0C\u7A7A\u683C \u5207\u6362\u9009\u4E2D\uFF0CEnter \u786E\u8BA4\uFF0CEsc \u53D6\u6D88","select.multiselect_empty":"\u8BF7\u5148\u4F7F\u7528\u7A7A\u683C\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u9009\u9879\u3002","select.multiselect_min":"\u8BF7\u5148\u4F7F\u7528\u7A7A\u683C\u81F3\u5C11\u9009\u62E9 {min} \u4E2A\u9009\u9879\u3002","select.multiselect_max":"\u6700\u591A\u53EA\u80FD\u9009\u62E9 {max} \u4E2A\u9009\u9879\u3002","select.back_prev":"\u2190 \u8FD4\u56DE\u4E0A\u4E00\u9898","input.default":"\u9ED8\u8BA4\u503C\uFF1A","input.value":"\u503C\uFF1A","input.type_response":"(\u8F93\u5165\u4F60\u7684\u56DE\u7B54)","managed.completed":"\u4EFB\u52A1\u5B8C\u6210","managed.completed.blocked":"\u4EFB\u52A1\u53D7\u963B","managed.completed.continuation":"\u4EFB\u52A1\u9700\u8981\u7EE7\u7EED",cancelled:"[\u5DF2\u53D6\u6D88] \u64CD\u4F5C\u5DF2\u88AB\u7528\u6237\u53D6\u6D88"}};function Ie(e,t){let o=V[C][e]??V.en[e]??e;if(t)for(let[i,s]of Object.entries(t))o=o.replace(`{${i}}`,String(s));return o}r(Ie,"t");var re=ne(ee),h=G(),Ve=f.join(h,"sessions"),d=f.join(h,"config.json"),Be=60,p=null,L=!1,ie="dumb";function se(e){let t=f.basename(e).toLowerCase(),n="__KODAX_SHELL_ENV_START__",o=`printf '%s\\0' '${n}'; env -0`;return t==="fish"?{args:["-i","-c",o],sentinel:n}:{args:t==="bash"||t==="zsh"?["-ic",o]:["-lc",o],sentinel:n}}r(se,"buildShellEnvCommand");function ae(e,t){let n=`${t}\0`,o=e.lastIndexOf(n);if(o===-1)return{};let i=e.slice(o+n.length),s={};for(let a of i.split("\0")){if(!a)continue;let u=a.indexOf("=");u<=0||(s[a.slice(0,u)]=a.slice(u+1))}return s}r(ae,"parseNullDelimitedShellEnv");function le(e={}){let t=e.env??process.env;if((e.platform??process.platform)==="win32"||t.KODAX_DISABLE_SHELL_ENV_HYDRATION==="1")return!1;let o=e.shell??t.SHELL;if(!o||!f.isAbsolute(o))return!1;let{args:i,sentinel:s}=se(o),a=e.run??te,u={...t,TERM:ie},c=a(o,i,{encoding:"utf8",env:u,maxBuffer:1024*1024,timeout:5e3,windowsHide:!0,detached:!0,stdio:["ignore","pipe","pipe"]});if(c.status!==0||!c.stdout)return!1;let J=typeof c.stdout=="string"?c.stdout:c.stdout.toString("utf8"),Y=ae(J,s),A=!1;for(let[_,Q]of Object.entries(Y))_!=="TERM"&&t[_]===void 0&&(t[_]=Q,A=!0);return A}r(le,"hydrateProcessEnvFromShell");function ce(){if(!L){L=!0;try{le()}catch{}}}r(ce,"ensureShellEnvironmentHydrated");function We(){L=!1}r(We,"resetShellEnvironmentHydrationForTesting");function ue(e){K(e.customProviders??[])}r(ue,"registerConfiguredCustomProviders");function z(e){if(!Array.isArray(e))return;let t=e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0);return t.length>0?t:[]}r(z,"normalizeConfiguredExtensions");function fe(e){if(e.permissionMode!=="default")return e;let t={...e,permissionMode:"accept-edits"};try{l.mkdirSync(f.dirname(d),{recursive:!0}),l.writeFileSync(d,JSON.stringify(t,null,2))}catch{}return t}r(fe,"migrateLegacyPermissionModeInConfig");function de(e){if(e.permissionMode!=="auto-in-project")return e;try{let t=l.readFileSync(d,"utf-8"),n=t.replace(/("permissionMode"\s*:\s*)"auto-in-project"/,'$1"auto"');n!==t&&l.writeFileSync(d,n)}catch{}return{...e,permissionMode:"auto"}}r(de,"migrateAutoInProjectAliasInConfig");function pe(){if(p)return p;let e="0.7.60";if(e)return p=e,p;let t=f.join(f.dirname(oe(import.meta.url)),"../../package.json");if(l.existsSync(t))try{return p=JSON.parse(l.readFileSync(t,"utf-8")).version??"0.0.0",p??"0.0.0"}catch{}return p="0.0.0",p}r(pe,"getVersion");var He=pe();function me(e){return M(e)}r(me,"getProviderModel");function R(e,t){let n=new Set(e.map(i=>i.toLowerCase())),o=[...e];for(let i of t)n.has(i.toLowerCase())||o.push(i);return o}r(R,"mergeModels");function ge(e,t){t||(t=b().providerModels);let n=t?.[e];if(n&&n.length>0){try{let o=S(e);if(o.length>0)return R(n,o)}catch{}try{let o=g(e);if(o)return R(n,o.getAvailableModels())}catch{}return n}try{let o=S(e);if(o.length>0)return o}catch{}try{let o=g(e);if(o)return o.getAvailableModels()}catch{}return[]}r(ge,"getProviderAvailableModels");function ve(e,t){let n=D(e,t);if(n!=="unknown")return n;try{let o=g(e);if(o)return o.getReasoningCapability(t)}catch{}return"unknown"}r(ve,"getProviderReasoningCapability");function ye(e){let t=T(e);if(t)return t;try{return P().find(o=>o.name===e)?.capabilityProfile??null}catch{return null}}r(ye,"getProviderCapabilityProfile");function q(e,t){let n=ye(e),o=ve(e,t);if(n)return{capabilityProfile:n,reasoningCapability:o};try{let i=X(e);return{capabilityProfile:i.getCapabilityProfile(),reasoningCapability:i.getReasoningCapability(t)}}catch{return null}}r(q,"getProviderCapabilityMetadata");function ze(e,t){let n=q(e,t);return n?U({providerName:e,model:t,capabilityProfile:n.capabilityProfile,reasoningCapability:n.reasoningCapability==="unknown"?void 0:n.reasoningCapability}):null}r(ze,"getProviderCapabilitySnapshot");function he(e,t,n,o){let i=q(e,t);return i?$({providerName:e,model:t,capabilityProfile:i.capabilityProfile,reasoningCapability:i.reasoningCapability==="unknown"?void 0:i.reasoningCapability,reasoningMode:n,hints:o}):null}r(he,"getProviderPolicyDecision");function qe(e){let t=e.transport==="cli-bridge"?"CLI bridge":"Native API",n=e.conversationSemantics==="last-user-message"?"forwards only the latest user message":"preserves full conversation history",o=e.mcpSupport==="native"?"MCP available":"MCP unavailable";return`${t}; ${n}; ${o}`}r(qe,"describeProviderCapabilitySummary");function Je(e){switch(e){case"native-budget":return"B";case"native-effort":return"E";case"native-toggle":return"T";case"native-adaptive":return"A";default:return"-"}}r(Je,"formatReasoningCapabilityShort");function m(e){if(e)return e==="none"?"off":e}r(m,"formatReasoningEffortForDisplay");function y(e,t){let n=m(t);n&&!e.includes(n)&&e.push(n)}r(y,"pushUniqueEffortDisplay");function Ye(e,t){let n=["auto"],i=E(e,t)?.supportedEfforts?.filter(s=>s.isUserVisible!==!1);if(!i||i.length===0){for(let s of["off","low","medium","high"])y(n,s);return n}for(let s of i)y(n,s.value);return n}r(Ye,"getProviderReasoningEffortOptions");function Qe(e,t){let n=E(e,t),o=new Set(n?.disabledEfforts??[]),i=n?.supportedEfforts?.filter(c=>c.isUserVisible!==!1),s=[],a=n?.supportsDisabledThinking===!0;if(!i||i.length===0){for(let c of["low","medium","high"])y(s,c);a=!0}else for(let c of i){if(c.value==="none"){a=!0;continue}if(o.has(c.value)){a=!0;continue}y(s,c.value)}let u=[];return a&&u.push("off"),u.push(...s),u.push("auto"),u}r(Qe,"getProviderReasoningEffortCycle");function Ee(e,t){if(t===!1)return"off";switch(e){case"off":return"off";case"quick":return"low";case"balanced":return"medium";case"deep":return"high";default:return"auto"}}r(Ee,"legacyReasoningModeToEffortDisplay");function E(e,t){let n=t??me(e);if(!n)return;let o=F(e,n)?.reasoningProfile;if(o)return k(o,j(e,n))}r(E,"resolveReasoningProfileForDisplay");function Ze(e){let t=m(e.effort)??Ee(e.reasoningMode,e.thinking),n=E(e.provider,e.model);if(!n)return t;try{let o=x({capability:n,explicitEffort:e.effortOverride?e.effort:void 0,sessionEffort:e.effortOverride?void 0:e.effort,legacyReasoningMode:e.reasoningMode,thinking:e.thinking}),i=m(o.configuredEffort)??t,a=o.configuredEffort!==void 0&&n.disabledEfforts?.includes(o.configuredEffort)===!0?"off":m(o.effectiveEffort);return a&&a!==i?`${i}->${a}`:i}catch{if(e.effort)try{let o=O({currentEffort:e.effort,capability:n}),i=m(e.effort)??t,s=m(o.effectiveEffort);return s&&s!==i?`${i}->${s}`:i}catch{return t}return t}}r(Ze,"formatReasoningEffortStatusLabel");function et(e){let t=ke(e);if(!t)return{preserved:!0};let n=E(e.provider,e.model);if(!n)return{configuredEffort:t,runtimeEffort:t,preserved:!0};let o=O({currentEffort:t,capability:n});return{configuredEffort:t,runtimeEffort:o.effectiveEffort,preserved:o.preserved,diagnostic:o.diagnostic}}r(et,"resolveProviderReasoningRuntimeEffort");function be(e){switch(e){case"native-budget":return"budget";case"native-effort":return"effort";case"native-toggle":return"toggle";case"native-adaptive":return"adaptive";default:return"none"}}r(be,"describeReasoningCapabilityControl");function tt(e,t){if(e==="off")return"Reasoning disabled";switch(t){case"native-budget":return"Uses native thinking budget control";case"native-effort":return"Uses native reasoning effort control";case"native-toggle":return"Uses provider-native thinking toggle only";case"native-adaptive":return"Model adaptively decides thinking depth (Opus 4.7+)";case"none":return"Runs without native reasoning parameters";case"prompt-only":return"Uses prompt overlays only; no native reasoning parameter";default:return"Runs without native reasoning parameters"}}r(tt,"describeReasoningExecution");function nt(e){let t=[];e||(e=b().providerModels);for(let n of N())t.push({name:n.name,model:n.model,models:ge(n.name,e),configured:n.capabilityProfile.transport==="cli-bridge"?!0:n.configured,reasoningCapability:n.reasoningCapability,capabilityProfile:n.capabilityProfile});try{let n=P().map(o=>({...o,models:(()=>{let i=e?.[o.name];return i&&i.length>0?R(i,o.models):o.models})()}));t.push(...n)}catch{}return t}r(nt,"getProviderList");function ot(e){if(I(e))return!0;try{return g(e)?.isConfigured()??!1}catch{return!1}}r(ot,"isProviderConfigured");function b(){try{if(l.existsSync(d)){let e=JSON.parse(l.readFileSync(d,"utf-8")),t=e.reasoningCeiling??e.reasoningMode;return de(fe({...e,reasoningMode:t,extensions:z(e.extensions)}))}}catch{}return{}}r(b,"loadConfig");var w=f.join(h,"config.example.jsonc"),_e=`// KodaX example configuration \u2014 copy what you need into config.json (in this same
|
|
3
3
|
// folder). config.json must be STRICT JSON: no comments, no trailing commas. Most
|
|
4
4
|
// settings also have a KODAX_* env var that overrides the file. Delete anything you
|
|
5
5
|
// don't use; everything here is optional.
|