@kodax-ai/kodax 0.7.72 → 0.7.73

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 (86) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/README.md +48 -14
  3. package/README_CN.md +33 -10
  4. package/dist/chunks/{agent-YKGU4USA.js → agent-T6PGT6AU.js} +1 -1
  5. package/dist/chunks/argument-completer-QGMWA2C3.js +2 -0
  6. package/dist/chunks/{chunk-SQODXBLX.js → chunk-64M5HOCA.js} +1 -1
  7. package/dist/chunks/{chunk-PKQOEDHJ.js → chunk-6JTWXGVU.js} +217 -223
  8. package/dist/chunks/{chunk-IR5KIK7E.js → chunk-6RI2RBTF.js} +1 -1
  9. package/dist/chunks/chunk-AGDDM5AW.js +329 -0
  10. package/dist/chunks/chunk-BUPJGG3C.js +5 -0
  11. package/dist/chunks/chunk-EAD4SF3Z.js +413 -0
  12. package/dist/chunks/chunk-F7AIEHSS.js +46 -0
  13. package/dist/chunks/{chunk-E27LHEIP.js → chunk-GAFFYJU3.js} +1 -1
  14. package/dist/chunks/chunk-HVCNAZ52.js +365 -0
  15. package/dist/chunks/{chunk-MVARIMQV.js → chunk-M7FXNPWV.js} +2 -2
  16. package/dist/chunks/{chunk-44QXPEEE.js → chunk-MBAPT2R5.js} +1 -1
  17. package/dist/chunks/{chunk-WIBLZK4G.js → chunk-MLEAQTCD.js} +2 -2
  18. package/dist/chunks/{chunk-JSDLBXME.js → chunk-OG6DRNKV.js} +63 -63
  19. package/dist/chunks/{chunk-2RI252RN.js → chunk-PFH53O4M.js} +1 -1
  20. package/dist/chunks/chunk-V4F6IYNK.js +73 -0
  21. package/dist/chunks/chunk-WQ6PWGK5.js +320 -0
  22. package/dist/chunks/chunk-XXQLPTAN.js +78 -0
  23. package/dist/chunks/compaction-config-IHJBP4GO.js +2 -0
  24. package/dist/chunks/{construction-bootstrap-ZJPXUPXQ.js → construction-bootstrap-EGRUHKLP.js} +1 -1
  25. package/dist/chunks/dist-5N3I2RTW.js +2 -0
  26. package/dist/chunks/{dist-GOUP4YVE.js → dist-EVEJAII2.js} +1 -1
  27. package/dist/chunks/host-MECITNE3.js +2 -0
  28. package/dist/chunks/run-manager-AY7RQOWM.js +2 -0
  29. package/dist/chunks/{utils-OTT5CG5J.js → utils-2GAE4XIM.js} +1 -1
  30. package/dist/index.d.ts +16 -16
  31. package/dist/index.js +5 -5
  32. package/dist/kodax_cli.js +1341 -1320
  33. package/dist/provider-capabilities.json +184 -5
  34. package/dist/runtime-worker.js +1227 -1216
  35. package/dist/sdk-a2a.d.ts +10 -10
  36. package/dist/sdk-a2a.js +1 -1
  37. package/dist/sdk-agent.d.ts +13 -13
  38. package/dist/sdk-agent.js +1 -1
  39. package/dist/sdk-coding.d.ts +96 -30
  40. package/dist/sdk-coding.js +1 -1
  41. package/dist/sdk-experimental-memory.d.ts +1 -1
  42. package/dist/sdk-experimental-memory.js +1 -1
  43. package/dist/sdk-llm.d.ts +8 -49
  44. package/dist/sdk-llm.js +1 -1
  45. package/dist/sdk-mcp.js +1 -1
  46. package/dist/sdk-media.d.ts +1 -1
  47. package/dist/sdk-media.js +1 -1
  48. package/dist/sdk-repl.d.ts +138 -16
  49. package/dist/sdk-repl.js +2 -2
  50. package/dist/sdk-runtime.d.ts +99 -17
  51. package/dist/sdk-runtime.js +1 -1
  52. package/dist/sdk-session.d.ts +6 -6
  53. package/dist/sdk-session.js +1 -1
  54. package/dist/sdk-skills.js +1 -1
  55. package/dist/semantic-worker.js +10 -10
  56. package/dist/types-chunks/{base.d-Cz_rwpOi.d.ts → base.d-ChvpaKjZ.d.ts} +1 -1
  57. package/dist/types-chunks/{bash-prefix-extractor.d-CHJO5y94.d.ts → bash-prefix-extractor.d-bApf5nGw.d.ts} +3 -3
  58. package/dist/types-chunks/{capability-learning.d-_lR0J4iR.d.ts → capability-learning.d-DPrYxRjF.d.ts} +1 -1
  59. package/dist/types-chunks/{capsule.d-DxtdE-GD.d.ts → capsule.d-CGWltwno.d.ts} +2 -2
  60. package/dist/types-chunks/{commands.d-DZxHzH5-.d.ts → commands.d-CEHGwRok.d.ts} +62 -6
  61. package/dist/types-chunks/{guardrail.d-DlpMnd-Y.d.ts → guardrail.d-CC4vAQl7.d.ts} +2 -1
  62. package/dist/types-chunks/{guardrail.d-auV61_h5.d.ts → guardrail.d-CXIPlWP3.d.ts} +10 -10
  63. package/dist/types-chunks/{public-api.d--IDNJsu1.d.ts → public-api.d-FBmX0kxo.d.ts} +4 -3
  64. package/dist/types-chunks/{run-manager.d-Bh50OdVl.d.ts → run-manager.d-DUNnJcpE.d.ts} +1 -1
  65. package/dist/types-chunks/{sdk-session-Cfw6NFu-.d.ts → sdk-session-XqacVOs8.d.ts} +3 -3
  66. package/dist/types-chunks/{resolver.d-ssgNSlrh.d.ts → side-query.d-DWTMsndP.d.ts} +68 -5
  67. package/dist/types-chunks/{types.d-DH1mvdcl.d.ts → types.d-BnPhGmar.d.ts} +3 -1
  68. package/dist/types-chunks/{types.d-Cqaw71Ax.d.ts → types.d-CSmF0t0n.d.ts} +6 -5
  69. package/dist/types-chunks/{types.d-EqQmHztg.d.ts → types.d-DKr6TCXL.d.ts} +16 -9
  70. package/dist/types-chunks/{types.d-CNZgY52F.d.ts → types.d-DgciGHoG.d.ts} +2 -2
  71. package/dist/types-chunks/{utils.d-gmn3c5U4.d.ts → utils.d-BPYX7-KN.d.ts} +94 -10
  72. package/docs/SDK_EMBEDDER_GUIDE.md +128 -21
  73. package/package.json +2 -2
  74. package/dist/chunks/argument-completer-QZETLNAB.js +0 -2
  75. package/dist/chunks/chunk-23X6REO4.js +0 -46
  76. package/dist/chunks/chunk-CLFP6UGU.js +0 -71
  77. package/dist/chunks/chunk-EDZ5KJFT.js +0 -5
  78. package/dist/chunks/chunk-GIK4SGAT.js +0 -364
  79. package/dist/chunks/chunk-GVWPHE23.js +0 -310
  80. package/dist/chunks/chunk-VDGCGOQH.js +0 -328
  81. package/dist/chunks/chunk-VVE3UM4F.js +0 -410
  82. package/dist/chunks/chunk-ZJIMT5I3.js +0 -78
  83. package/dist/chunks/compaction-config-TWCDFLX6.js +0 -2
  84. package/dist/chunks/dist-JT4ATXVM.js +0 -2
  85. package/dist/chunks/host-SVEDZUC5.js +0 -2
  86. package/dist/chunks/run-manager-RX42UNEM.js +0 -2
@@ -0,0 +1,46 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{a as o}from"./chunk-ONUPGMER.js";import{AsyncLocalStorage as Be}from"node:async_hooks";var Ne=new Be;function Le(e){let t=Ne.getStore()?.credential;return t?M(e,t,new WeakMap):e}o(Le,"redactScopedProviderCredential");function M(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error){let s=new Error(M(e.message,t,n));return n.set(e,s),s.name=e.name,e.stack!==void 0&&(s.stack=M(e.stack,t,n)),s}if(Array.isArray(e)){let s=[];n.set(e,s);for(let l of e)s.push(M(l,t,n));return s}let i={};n.set(e,i);for(let[s,l]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!l.enumerable||!("value"in l))continue;let u=s.split(t).join("[REDACTED_CREDENTIAL]");i[u]=M(l.value,t,n)}return i}o(M,"redactCredentialValue");function A(e,t){return`${e}/${t??""}`}o(A,"capabilityCacheKey");function je(e,t,n){return e[A(t,n)]?.rejected??[]}o(je,"getRejectedEfforts");function $e(e,t,n,r,i,s){let l=A(t,n),u=e[l],g=u?.rejected.includes(r)?u.rejected:[...u?.rejected??[],r];return{...e,[l]:{rejected:g,source:i,updatedAt:s}}}o($e,"addRejectedEffort");function Fe(e,t,n){if(!t)return{};let r={...e};return delete r[A(t,n)],r}o(Fe,"removeCacheEntry");function Ue(e){if(!e||typeof e!="object")return{};let t={};for(let[n,r]of Object.entries(e)){if(!r||typeof r!="object")continue;let i=r,s=Array.isArray(i.rejected)?i.rejected.filter(g=>typeof g=="string"):[],l=i.source==="probed"?"probed":"observed",u=typeof i.updatedAt=="string"?i.updatedAt:"";t[n]={rejected:s,source:l,updatedAt:u}}return t}o(Ue,"sanitizeCapabilityCache");import{AsyncLocalStorage as We}from"node:async_hooks";var Ve=new We,J=8,Y=32;function ze(e){if(e===void 0)return;let t=Number.parseInt(e,10);return Number.isInteger(t)&&t>0?t:void 0}o(ze,"parsePositiveInt");function qe(){let e=I()?.workflow?.maxConcurrency,t=typeof e=="number"&&Number.isInteger(e)&&e>0?e:ze(process.env.KODAX_WORKFLOW_MAX_CONCURRENCY)??J;return Math.max(1,Math.min(Y,t))}o(qe,"resolveWorkflowMaxConcurrency");function I(){return Ve.getStore()}o(I,"getRunScopedConfig");var K={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Q={...K,multimodalSupport:"image-input"},O={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Z={...O,multimodalSupport:"image-input"};function j(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"}}o(j,"normalizeCapabilityProfile");import tn from"@anthropic-ai/sdk";import{parse as $o}from"partial-json";import yn from"openai";import{ClientSideConnection as _n,PROTOCOL_VERSION as Xn,ndJsonStream as An}from"@agentclientprotocol/sdk";var Sn=String.raw`
3
+ using System;
4
+ using System.Runtime.InteropServices;
5
+ using System.Text;
6
+ public static class KodaXNativeProcessSnapshot {
7
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
8
+ private struct ProcessEntry32 {
9
+ public uint dwSize;
10
+ public uint cntUsage;
11
+ public uint th32ProcessID;
12
+ public IntPtr th32DefaultHeapID;
13
+ public uint th32ModuleID;
14
+ public uint cntThreads;
15
+ public uint th32ParentProcessID;
16
+ public int pcPriClassBase;
17
+ public uint dwFlags;
18
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
19
+ public string szExeFile;
20
+ }
21
+ [DllImport("kernel32.dll", SetLastError = true)]
22
+ private static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processId);
23
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
24
+ private static extern bool Process32First(IntPtr snapshot, ref ProcessEntry32 entry);
25
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
26
+ private static extern bool Process32Next(IntPtr snapshot, ref ProcessEntry32 entry);
27
+ [DllImport("kernel32.dll")]
28
+ private static extern bool CloseHandle(IntPtr handle);
29
+ public static string ReadRows() {
30
+ var snapshot = CreateToolhelp32Snapshot(2, 0);
31
+ if (snapshot == new IntPtr(-1)) return string.Empty;
32
+ var rows = new StringBuilder();
33
+ var entry = new ProcessEntry32();
34
+ entry.dwSize = (uint)Marshal.SizeOf(entry);
35
+ try {
36
+ if (!Process32First(snapshot, ref entry)) return string.Empty;
37
+ do {
38
+ rows.Append(entry.th32ProcessID).Append(',').Append(entry.th32ParentProcessID).Append('\n');
39
+ entry.dwSize = (uint)Marshal.SizeOf(entry);
40
+ } while (Process32Next(snapshot, ref entry));
41
+ return rows.ToString();
42
+ } finally {
43
+ CloseHandle(snapshot);
44
+ }
45
+ }
46
+ }`;import ie from"node:fs";import se from"node:os";import ae from"node:path";var pt="gpt-5.4",gt="auto-gemini-3",mt=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],yt=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];function de(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let s=i.toLowerCase();t.has(s)||(t.add(s),n.push(i))}return n}o(de,"dedupePreserveOrder");function ht(){let e=ae.join(se.homedir(),".codex","config.toml");try{return ie.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}o(ht,"readCodexConfiguredModel");function bt(){let e=ae.join(se.homedir(),".gemini","settings.json");try{let t=JSON.parse(ie.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}}o(bt,"readGeminiConfiguredModel");function E(){return ht()||pt}o(E,"getCodexCliDefaultModel");function T(){return bt()||gt}o(T,"getGeminiCliDefaultModel");function w(){return de([E(),...mt])}o(w,"getCodexCliKnownModels");function _(){return de([T(),...yt])}o(_,"getGeminiCliKnownModels");var pr=T(),gr=_();var xr=E(),Sr=w();import{existsSync as wt,readFileSync as _t}from"node:fs";import S from"node:path";import{fileURLToPath as Xt}from"node:url";var le=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],ue=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],ce=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],fe=["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"],pe=["native","image-input-native","cli-bridge","image-input-cli-bridge"],ge=["count-tokens","models-list","minimal-message","unsupported"];function y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(y,"isPlainObject");function R(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}o(R,"requireString");function x(e,t){if(e!==void 0)return R(e,t)}o(x,"optionalString");function P(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}}o(P,"optionalNumber");function f(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}o(f,"optionalBoolean");function me(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,r)=>R(n,`${t}[${r}]`))}}o(me,"optionalStringArray");function Ct(e,t){if(e===void 0)return;if(!y(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=R(i,`${t}.${r}`);return n}o(Ct,"optionalStringMap");function Pt(e,t){if(e!==void 0){if(typeof e!="string"||!fe.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${fe.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(Pt,"optionalReasoningPreset");function F(e,t){if(typeof e!="string"||!le.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${le.join(", ")}, got ${JSON.stringify(e)}`);return e}o(F,"requireReasoningCapability");function Rt(e,t){if(typeof e!="string"||!ue.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ue.join(", ")}, got ${JSON.stringify(e)}`);return e}o(Rt,"requireEffortStrategy");function Et(e,t){if(e!==void 0){if(typeof e!="string"||!ce.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ce.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(Et,"optionalThinkingStrategy");function ye(e,t){if(e===void 0)return;if(!y(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=Rt(e.effortStrategy,`${t}.effortStrategy`),r=Pt(e.reasoningPreset,`${t}.reasoningPreset`),i=Et(e.thinkingStrategy,`${t}.thinkingStrategy`),s=x(e.defaultEffort,`${t}.defaultEffort`),l=Ct(e.effortAliases,`${t}.effortAliases`),u=me(e.disabledEfforts,`${t}.disabledEfforts`),g=me(e.localRejectEfforts,`${t}.localRejectEfforts`),h=f(e.allowCustomEffort,`${t}.allowCustomEffort`),b=f(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),v=f(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),k=f(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),d=f(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),C=f(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),p=f(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),X=f(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),a={effortStrategy:n};if(r!==void 0&&(a.reasoningPreset=r),i!==void 0&&(a.thinkingStrategy=i),s!==void 0&&(a.defaultEffort=s),l!==void 0&&(a.effortAliases=l),u!==void 0&&(a.disabledEfforts=u),g!==void 0&&(a.localRejectEfforts=g),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);a.supportedEfforts=e.supportedEfforts.map((c,m)=>{if(!y(c))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${m}] must be an object`);return{value:R(c.value,`${t}.supportedEfforts[${m}].value`),...x(c.description,`${t}.supportedEfforts[${m}].description`)!==void 0?{description:x(c.description,`${t}.supportedEfforts[${m}].description`)}:{},...f(c.isDefault,`${t}.supportedEfforts[${m}].isDefault`)!==void 0?{isDefault:f(c.isDefault,`${t}.supportedEfforts[${m}].isDefault`)}:{},...f(c.isUserVisible,`${t}.supportedEfforts[${m}].isUserVisible`)!==void 0?{isUserVisible:f(c.isUserVisible,`${t}.supportedEfforts[${m}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!y(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let c={};for(let[m,G]of Object.entries(e.budgetByEffort))c[m]=P(G,`${t}.budgetByEffort.${m}`)??0;a.budgetByEffort=c}return h!==void 0&&(a.allowCustomEffort=h),b!==void 0&&(a.supportsReasoningEffort=b),v!==void 0&&(a.supportsReasoningSummary=v),k!==void 0&&(a.supportsEncryptedReasoningReplay=k),d!==void 0&&(a.supportsAdaptiveThinking=d),C!==void 0&&(a.supportsManualThinkingBudget=C),p!==void 0&&(a.supportsDisabledThinking=p),X!==void 0&&(a.requiresEffortBetaHeader=X),a}o(ye,"validateReasoningProfile");function he(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?ye(n,`${t}.reasoningProfile`):ye(r,`${t}.reasoningCapabilityV2`)}o(he,"validateReasoningProfileField");function Tt(e,t){if(typeof e!="string"||!pe.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${pe.join(", ")}, got ${JSON.stringify(e)}`);return e}o(Tt,"requireProfileName");function xt(e,t){if(typeof e!="string"||!ge.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ge.join(", ")}, got ${JSON.stringify(e)}`);return e}o(xt,"requireVerifyStrategy");function St(e,t){if(!y(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=R(e.id,`${t}.id`),r=x(e.wireModel,`${t}.wireModel`),i=x(e.displayName,`${t}.displayName`),s=P(e.contextWindow,`${t}.contextWindow`),l=P(e.maxOutputTokens,`${t}.maxOutputTokens`),u=P(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),g=f(e.replayReasoningContent,`${t}.replayReasoningContent`),h=f(e.strictThinkingSignature,`${t}.strictThinkingSignature`),b=P(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),v=e.reasoningCapability===void 0?void 0:F(e.reasoningCapability,`${t}.reasoningCapability`),k=he(e,t),d={id:n};return r!==void 0&&(d.wireModel=r),i!==void 0&&(d.displayName=i),s!==void 0&&(d.contextWindow=s),l!==void 0&&(d.maxOutputTokens=l),u!==void 0&&(d.thinkingBudgetCap=u),v!==void 0&&(d.reasoningCapability=v),k!==void 0&&(d.reasoningProfile=k),g!==void 0&&(d.replayReasoningContent=g),h!==void 0&&(d.strictThinkingSignature=h),b!==void 0&&(d.streamMaxDurationMs=b),d}o(St,"validateModelDescriptor");function Mt(e,t){if(e===void 0)return;if(!y(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=F(i,`${t}.${r}`);return n}o(Mt,"validateModelReasoningCapabilities");function Kt(e,t){if(!y(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=f(e.cliBridge,`providers.${t}.cliBridge`),r=R(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=F(e.reasoningCapability,`providers.${t}.reasoningCapability`),s=he(e,`providers.${t}`),l=Tt(e.capabilityProfile,`providers.${t}.capabilityProfile`),u=xt(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 g=P(e.contextWindow,`providers.${t}.contextWindow`),h=P(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),b=P(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),v=f(e.supportsThinking,`providers.${t}.supportsThinking`),k=Mt(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),d=x(e.model,`providers.${t}.model`);if(n&&(d!==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&&d===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let C;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);C=e.models.map((a,c)=>St(a,`providers.${t}.models[${c}]`));let X=new Set([...d===void 0?[]:[d],...C.map(a=>a.id)]);for(let[a,c]of C.entries())if(c.wireModel!==void 0&&!X.has(c.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${a}].wireModel must reference a declared model, got ${JSON.stringify(c.wireModel)}`)}let p={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:l,verifyStrategy:u};return s!==void 0&&(p.reasoningProfile=s),d!==void 0&&(p.model=d),C!==void 0&&(p.models=C),g!==void 0&&(p.contextWindow=g),h!==void 0&&(p.maxOutputTokens=h),b!==void 0&&(p.thinkingBudgetCap=b),v!==void 0&&(p.supportsThinking=v),k!==void 0&&(p.modelReasoningCapabilities=k),n&&(p.cliBridge=!0),p}o(Kt,"validateProviderEntry");function be(e){if(!y(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=R(e.updatedAt,"updatedAt");if(!y(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=Kt(i,r);return{version:1,updatedAt:t,providers:n}}o(be,"validateProviderCapabilitiesJson");var At=Object.freeze({native:K,"image-input-native":Q,"cli-bridge":O,"image-input-cli-bridge":Z}),L=null;function It(){if(process.env.KODAX_BUNDLED==="true")return S.join(S.dirname(process.execPath),"provider-capabilities.json");let e=S.dirname(Xt(import.meta.url)),t=[S.join(e,"provider-capabilities.json"),S.join(S.dirname(e),"provider-capabilities.json")];for(let n of t)if(wt(n))return n;return t[0]}o(It,"resolveJsonPath");function Ot(e){if(e.models){for(let t of e.models)t.reasoningProfile&&ve(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&ve(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}o(Ot,"deepFreezeSnapshot");function ve(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)}o(ve,"freezeReasoningProfile");function Dt(e){if(e==="gemini-cli"){let t=T();return{model:t,models:_().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=E();return{model:t,models:w().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}o(Dt,"resolveCliBridgeModels");function Bt(e,t){let n=At[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=Dt(e),s={model:i.model,models:i.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 r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}o(Bt,"buildSnapshot");function ke(){if(L)return L;let e=It(),t;try{let i=_t(e,"utf8");t=JSON.parse(i)}catch(i){let s=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${s}`)}let n=be(t),r={};for(let[i,s]of Object.entries(n.providers))r[i]=Ot(Bt(i,s));return L=Object.freeze(r),L}o(ke,"getProviderSnapshots");import Yr from"@anthropic-ai/sdk";var V=ke();var Ce=process.env.KODAX_PROVIDER??"zhipu-coding";export{Le as a,je as b,$e as c,Fe as d,Ue as e,qe as f,j as g,V as h};
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{a as Ee}from"./chunk-23X6REO4.js";import{a as o}from"./chunk-ONUPGMER.js";var re=[];function _o(t){let e={id:Symbol("kodax-diagnostic-sink"),sink:t};re.push(e);let n=!1;return()=>{if(n)return;n=!0;let r=re.findIndex(i=>i.id===e.id);r>=0&&re.splice(r,1)}}o(_o,"setKodaXDiagnosticSink");function T(t){let e=Ee(t),n=re.at(-1)?.sink;if(n){try{n(e)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${bn(e)}
2
+ import{a as Ee}from"./chunk-F7AIEHSS.js";import{a as o}from"./chunk-ONUPGMER.js";var re=[];function _o(t){let e={id:Symbol("kodax-diagnostic-sink"),sink:t};re.push(e);let n=!1;return()=>{if(n)return;n=!0;let r=re.findIndex(i=>i.id===e.id);r>=0&&re.splice(r,1)}}o(_o,"setKodaXDiagnosticSink");function T(t){let e=Ee(t),n=re.at(-1)?.sink;if(n){try{n(e)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${bn(e)}
3
3
  `)}catch{}}o(T,"emitKodaXDiagnostic");function bn(t){let e=Ee(t),n=In(e.detail);return`[${e.source}] ${e.level}: ${e.message}${n?` ${n}`:""}`}o(bn,"formatKodaXDiagnostic");function In(t){if(t===void 0)return"";if(t instanceof Error)return t.stack??t.message;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}o(In,"formatDiagnosticDetail");import{mkdirSync as vn}from"node:fs";import{homedir as $e}from"node:os";import{isAbsolute as xn,normalize as Pn,resolve as je,sep as ct}from"node:path";import{join as ie}from"node:path";var An=".kodax",_n="KODAX_HOME",Fe;function Lo(t){Fe=t}o(Lo,"setAgentConfigHome");function dt(){if(Fe)return Fe;let t=process.env[_n];return t&&t.length>0?t:ie($e(),An)}o(dt,"getAgentConfigHome");function b(...t){return ie(dt(),...t)}o(b,"getAgentConfigPath");function To(t,e){let n=o(a=>{let c=Pn(je(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(t),i=n(e),s=i.endsWith(ct)?i:`${i}${ct}`;return r===i||r.startsWith(s)}o(To,"isPathInsideDirectory");function Oo(t,e){let n=t==="~"?$e():t.startsWith("~/")||t.startsWith("~\\")?ie($e(),t.slice(2)):t;return xn(n)?je(n):je(e,n)}o(Oo,"resolveExecutionPath");function No(t){if(typeof t!="string"||!/^[a-z][a-z0-9-]{1,31}$/.test(t))throw new Error(`getAppDataDir: invalid appId ${JSON.stringify(t)}. Must match /^[a-z][a-z0-9-]{1,31}$/ (lowercase kebab, 2\u201332 chars).`);if(t==="kodax"||t.startsWith("kodax-"))throw new Error(`getAppDataDir: appId ${JSON.stringify(t)} is reserved (the 'kodax' / 'kodax-*' prefix is reserved for first-party use).`);let e=ie(dt(),"apps",t);return vn(e,{recursive:!0}),e}o(No,"getAppDataDir");import{createHash as pt}from"node:crypto";var lt=["tenantId","workspaceId","userId","agentId","projectId","sessionId"];function oe(t,e){return lt.every(n=>e[n]===void 0||e[n]===t[n])}o(oe,"matchesMemoryApplicability");function R(t,e){if(e.length===0)throw new Error(`${t} identity must not be empty`);return pt("sha256").update(`${t}\0${e}`).digest("hex")}o(R,"hashMemoryIdentityComponent");function Me(t){let e=lt.filter(n=>t[n]!==void 0).map(n=>`${n}=${t[n]}`).join("\0");return pt("sha256").update(e).digest("hex")}o(Me,"memoryApplicabilityFingerprint");var Ce="f260-v0.7.68.2";import{createHash as En}from"node:crypto";import{execSync as $n}from"node:child_process";import*as k from"node:path";function se(t){return jn(t).trim().replace(/^ssh:\/\//,"").replace(/^https?:\/\//,"").replace(/^git@/,"").replace(/\.git$/,"").replace(/[:@/\\]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase()}o(se,"sanitizeProjectKey");function jn(t){let e=t.trim();if(!/^[a-z][a-z0-9+.-]*:\/\//i.test(e))return e;try{let n=new URL(e);return`${n.hostname}${n.port.length>0?`:${n.port}`:""}${n.pathname}`}catch{return e.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/@]+@/i,"$1").replace(/[?#].*$/,"")}}o(jn,"remoteWithoutCredentials");function ae(t){let e=k.resolve(t).toLowerCase();return En("sha256").update(e).digest("hex").slice(0,16)}o(ae,"hashCwd");function ce(t){try{let n=$n("git config --get remote.origin.url",{cwd:t,encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:1e3}).trim();return n.length>0?n:void 0}catch{return}}o(ce,"tryGitRemote");function de(t){let e=ce(t),n=e?se(e):`local-${ae(t)}`;return b("projects",n,"memory")}o(de,"resolveMemoryRoot");function Fn(t){return k.join(de(t),"MEMORY.md")}o(Fn,"resolveMemoryEntrypoint");function O(t,e){let n=e==="project"?"projectId":e==="workspace"?"workspaceId":e==="user"?"userId":"agentId",r=t[n];if(r===void 0||r.length===0)throw new Error(`${n} is required for ${e} memory`);return b("memory-scopes",R("tenant",t.tenantId),e,R(e,r))}o(O,"resolveScopedMemoryRoot");function Mn(t){let e=Le(t),n=Le(b("memory-scopes"));if(e.startsWith(n+k.sep)){let a=e.slice(n.length+1).split(k.sep);return a.length>=4&&/^[0-9a-f]{64}$/.test(a[0]??"")&&["project","workspace","agent","user"].includes(a[1]??"")&&/^[0-9a-f]{64}$/.test(a[2]??"")}let r=Le(b("projects"));if(!e.startsWith(r+k.sep))return!1;let s=e.slice(r.length+1).split(k.sep);return s.length>=3&&s[1]==="memory"}o(Mn,"isAutoManagedMemoryFile");function Le(t){let e=k.resolve(t);return process.platform==="win32"?e.toLowerCase():e}o(Le,"comparablePath");function Cn(t){let e=k.basename(t,".md").toLowerCase();if(e.startsWith("user_")||e==="user")return"user";if(e.startsWith("feedback_")||e==="feedback")return"feedback";if(e.startsWith("project_")||e==="project")return"project";if(e.startsWith("reference_")||e==="reference")return"reference"}o(Cn,"parseMemoryTypeFromFilename");var Ln=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function ft(t){if(t==="user"||t==="feedback"||t==="project"||t==="reference")return t}o(ft,"parseMemoryType");function j(t){let e=Ln.exec(t);if(!e)return{frontmatter:{name:void 0,description:void 0,type:void 0},body:t};let n=e[1],r=t.slice(e[0].length).replace(/^\r?\n+/,""),i=ut(n);return{frontmatter:{name:typeof i.name=="string"?i.name:void 0,description:typeof i.description=="string"?i.description:void 0,type:ft(i.type)},body:r}}o(j,"parseMemoryFile");function ut(t){let e={},n=t.split(/\r?\n/);for(let r of n){if(!r.trim()||r.trim().startsWith("#"))continue;let i=r.indexOf(":");if(i===-1)continue;let s=r.slice(0,i).trim();if(!/^[A-Za-z_][A-Za-z0-9_-]*$/.test(s))continue;let a=r.slice(i+1).trim(),c=Tn(a);c!==void 0&&(e[s]=c)}return e}o(ut,"parseScalarFields");function Tn(t){if(t.length!==0){if(t.length>=2){let e=t.charAt(0),n=t.charAt(t.length-1);if(e==='"'&&n==='"'||e==="'"&&n==="'")return t.slice(1,-1)}return t}}o(Tn,"unquote");var On=200,Nn=25e3;function Dn(t){let e=t.trim(),n=e.length===0?[]:e.split(`
4
4
  `),r=n.length,i=Buffer.byteLength(e,"utf-8"),s=r>200,a=i>25e3;if(!s&&!a)return{content:e,lineCount:r,byteCount:i,wasLineTruncated:s,wasByteTruncated:a};let c=s?n.slice(0,200).join(`
5
5
  `):e;return Buffer.byteLength(c,"utf-8")>25e3&&(c=Un(c,25e3)),{content:c+`