@kodax-ai/kodax 0.7.41 → 0.7.43

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 (54) hide show
  1. package/CHANGELOG.md +119 -3
  2. package/README.md +214 -286
  3. package/README_CN.md +173 -277
  4. package/dist/chunks/chunk-7G5PSL6C.js +830 -0
  5. package/dist/chunks/{chunk-6OB4AJOM.js → chunk-IYSK7LUK.js} +1 -1
  6. package/dist/chunks/chunk-K75O2CAE.js +31 -0
  7. package/dist/chunks/chunk-UG4262JI.js +502 -0
  8. package/dist/chunks/chunk-VHKAJDQD.js +425 -0
  9. package/dist/chunks/chunk-YMRZBS4G.js +2 -0
  10. package/dist/chunks/{compaction-config-LT5PEXPT.js → compaction-config-3E57ABCT.js} +1 -1
  11. package/dist/chunks/{construction-bootstrap-HBCWJFHC.js → construction-bootstrap-JR63KI5N.js} +4 -4
  12. package/dist/chunks/dist-KWHUKXEL.js +2 -0
  13. package/dist/chunks/dist-XANXEVTU.js +2 -0
  14. package/dist/chunks/utils-HQ2QCKJA.js +2 -0
  15. package/dist/index.d.ts +15 -10
  16. package/dist/index.js +5 -5
  17. package/dist/kodax_cli.js +1084 -1054
  18. package/dist/sdk-agent.d.ts +853 -135
  19. package/dist/sdk-agent.js +1 -1
  20. package/dist/sdk-coding.d.ts +932 -981
  21. package/dist/sdk-coding.js +1 -1
  22. package/dist/sdk-llm.d.ts +8 -5
  23. package/dist/sdk-llm.js +1 -1
  24. package/dist/sdk-mcp.d.ts +17 -0
  25. package/dist/sdk-mcp.js +2 -0
  26. package/dist/sdk-repl.d.ts +343 -10
  27. package/dist/sdk-repl.js +2 -1
  28. package/dist/sdk-session.d.ts +176 -0
  29. package/dist/sdk-session.js +2 -0
  30. package/dist/sdk-skills.d.ts +72 -4
  31. package/dist/sdk-skills.js +1 -1
  32. package/dist/types-chunks/{cost-tracker.d-C4dMlQuV.d.ts → base.d-FUJahC0i.d.ts} +22 -112
  33. package/dist/types-chunks/{bash-prefix-extractor.d-B2iliwdi.d.ts → bash-prefix-extractor.d-DMrGImMl.d.ts} +266 -228
  34. package/dist/types-chunks/capability.d-3C62G8Eq.d.ts +39 -0
  35. package/dist/types-chunks/config.d-BfJUXxC0.d.ts +41 -0
  36. package/dist/types-chunks/cost-tracker.d-wRtyEW9d.d.ts +110 -0
  37. package/dist/types-chunks/{history-cleanup.d-q1vAvCss.d.ts → file-tracker.d-zaLZeNBK.d.ts} +532 -15
  38. package/dist/types-chunks/manager.d-87belpiS.d.ts +370 -0
  39. package/dist/types-chunks/{resolver.d-BwD6TKz7.d.ts → resolver.d-CA68_NeH.d.ts} +150 -5
  40. package/dist/types-chunks/storage.d-DPAEX7zS.d.ts +115 -0
  41. package/dist/types-chunks/{capability.d-BxNgd1-c.d.ts → types.d-B1uGoVTE.d.ts} +72 -40
  42. package/dist/types-chunks/{instance-discovery.d-DZhp77vb.d.ts → types.d-CKJtjo-6.d.ts} +168 -258
  43. package/dist/types-chunks/types.d-mM8vqvhT.d.ts +254 -0
  44. package/dist/types-chunks/{storage.d-Bv9T99Qu.d.ts → utils.d-DkLZD_wa.d.ts} +38 -112
  45. package/package.json +15 -6
  46. package/dist/chunks/chunk-5TFLMGER.js +0 -2
  47. package/dist/chunks/chunk-6QO6HWGU.js +0 -30
  48. package/dist/chunks/chunk-EQ5DGS2W.js +0 -14
  49. package/dist/chunks/chunk-HYWVRTFA.js +0 -1233
  50. package/dist/chunks/chunk-SX2IS5JP.js +0 -16
  51. package/dist/chunks/chunk-ZPJPNLBK.js +0 -462
  52. package/dist/chunks/dist-M57GIWR4.js +0 -2
  53. package/dist/chunks/dist-V3BS2NKB.js +0 -2
  54. package/dist/chunks/utils-FAFUQJ2A.js +0 -2
package/README_CN.md CHANGED
@@ -1,28 +1,133 @@
1
- # KodaX
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
4
+ <source media="(prefers-color-scheme: light)" srcset="assets/logo-light.svg">
5
+ <img src="assets/logo-light.svg" alt="KodaX" width="640">
6
+ </picture>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <b>开源 AI Coding Agent,跑你能拿到的任何 LLM。</b><br>
11
+ Anthropic · OpenAI · DeepSeek · Kimi · 智谱 · MiniMax · 小米 MiMo · 火山方舟 · Qwen · Gemini · Codex<br>
12
+ REPL · CLI · 库 · 免 Node 单文件二进制
13
+ </p>
14
+
15
+ <p align="center">
16
+ <a href="https://www.npmjs.com/package/@kodax-ai/kodax"><img alt="npm version" src="https://img.shields.io/npm/v/@kodax-ai/kodax?style=flat-square&color=cb3837"></a>
17
+ <a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square"></a>
18
+ <a href="https://github.com/icetomoyo/KodaX/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/icetomoyo/KodaX?style=flat-square&logo=github&color=f1c40f"></a>
19
+ <a href="https://github.com/icetomoyo/KodaX/actions"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/icetomoyo/KodaX/release.yml?style=flat-square&label=release"></a>
20
+ <img alt="providers" src="https://img.shields.io/badge/LLMs-13_原生_+_OpenAI%2FAnthropic--compat-2ecc71?style=flat-square">
21
+ </p>
22
+
23
+ <p align="center">
24
+ <a href="#30-秒上手">安装</a> ·
25
+ <a href="#四种使用形态">使用形态</a> ·
26
+ <a href="#为什么用-kodax">为什么用</a> ·
27
+ <a href="CHANGELOG.md">更新日志</a> ·
28
+ <a href="docs/FEATURE_LIST.md">Roadmap</a> ·
29
+ <a href="https://github.com/icetomoyo/KodaX/discussions">讨论</a> ·
30
+ <a href="README.md">English README</a>
31
+ </p>
32
+
33
+ <p align="center">
34
+ <img src="kodax.gif" alt="KodaX 实战演示" width="880">
35
+ </p>
2
36
 
3
- 轻量、透明、可定制的 TypeScript AI Coding Agent。
37
+ ---
4
38
 
5
- KodaX 既可以作为命令行工具使用,也可以作为库集成到你的项目里,还能打包成**免 Node 运行时**的单文件二进制分发到目标机器。当前支持 12 个模型提供商,包含完整的 REPL、会话、30+ 工具、Skills,以及 Scout-first 自适应多 Agent 工作流。
39
+ ## 30 秒上手
6
40
 
7
- ## 为什么用 KodaX
41
+ ```bash
42
+ npm i -g @kodax-ai/kodax
43
+
44
+ # 选一个你有 API key 的 provider
45
+ export ZHIPU_API_KEY=... # 或 KIMI_API_KEY / MINIMAX_API_KEY / MIMO_API_KEY /
46
+ # ARK_API_KEY / DEEPSEEK_API_KEY / ANTHROPIC_API_KEY /
47
+ # OPENAI_API_KEY / QWEN_API_KEY / GEMINI_API_KEY
48
+
49
+ kodax
50
+ ```
8
51
 
9
- - 透明:代码结构清晰,便于阅读、修改和调试。
10
- - 灵活:支持多 provider,方便切换模型和网关。
11
- - 可定制:prompts、tools、skills、session 流程都能改。
12
- - 可复用:不只是 CLI,也可以把其中一层当库来使用。
52
+ 就这样。进 REPL,自然语言提问。
13
53
 
14
- 如果你关心:
54
+ > **不装 Node 的目标机器**:从 [GitHub Releases](https://github.com/icetomoyo/KodaX/releases) 拿 Bun 编译的单文件二进制(Win / macOS / Linux × x64 + arm64)。详见 [docs/release.md](docs/release.md)。
15
55
 
16
- - 想理解 AI coding agent 是怎么工作的
17
- - 不想被单一 provider 绑定
18
- - 希望 agent 逻辑能自己控制
19
- - 需要一套适合长期开发任务的工程化工作流
56
+ ---
57
+
58
+ ## 四种使用形态
20
59
 
21
- KodaX 会比单纯依赖某个黑盒托管产品更合适。
60
+ | 形态 | 命令 / 入口 | 什么时候用 |
61
+ |---|---|---|
62
+ | **REPL** | `kodax` | 交互式多轮编码会话,流式 UI + 权限 + slash 命令 |
63
+ | **CLI** | `kodax -p "your task"` | 单次脚本任务、CI、批量处理 |
64
+ | **库** | `import { runKodaX } from '@kodax-ai/kodax'` | 嵌入你自己的工具 / agent / 服务 |
65
+ | **单文件二进制** | `./kodax` | 分发到没装 Node 的机器 |
22
66
 
23
- ## 快速开始
67
+ ---
24
68
 
25
- ### 1. 安装并构建
69
+ ## 为什么用 KodaX
70
+
71
+ <table>
72
+ <tr>
73
+ <td width="33%" align="center" valign="top">
74
+ <h3>🇨🇳 6 家国内 LLM 原生</h3>
75
+ <sub>智谱 · Kimi · MiniMax · 小米 MiMo · 火山方舟 · 通义千问</sub>
76
+ <br><br>
77
+ first-class 适配器,跨 provider 在 5-alias canonical panel 做过 <a href="benchmark/EVAL_GUIDELINES.md">prompt-eval 校准</a> —— 不是 OpenAI-compat 转发。
78
+ </td>
79
+ <td width="33%" align="center" valign="top">
80
+ <h3>📦 单文件二进制</h3>
81
+ <sub>Bun --compile · Win / macOS / Linux · x64 + arm64</sub>
82
+ <br><br>
83
+ 目标机器不装 Node。一份文件随处跑 —— 受管环境、内网、CI runner、断网机器都行。
84
+ </td>
85
+ <td width="33%" align="center" valign="top">
86
+ <h3>🌳 可分叉会话血缘</h3>
87
+ <sub>fork · rewind · 并行编辑</sub>
88
+ <br><br>
89
+ 对话历史是 DAG 不是链表。即将发布的 <b>KodaX Space</b> 桌面端基于此。
90
+ </td>
91
+ </tr>
92
+ <tr>
93
+ <td align="center" valign="top">
94
+ <h3>🤖 默认多 agent</h3>
95
+ <sub>V2 Worker 单循环 + Sidecar Verifier + 异步子 agent</sub>
96
+ <br><br>
97
+ <code>dispatch_child_task</code>、<code>send_message</code>、<code>task_stop</code>,多实例自动协调(content-hash safety net)。
98
+ </td>
99
+ <td align="center" valign="top">
100
+ <h3>🧩 Skills + 自构造</h3>
101
+ <sub>Markdown skill,自然语言触发</sub>
102
+ <br><br>
103
+ 5 阶自改造阶梯(scaffold → validate → stage → test → activate),由 8 条 admission invariant 守护。
104
+ </td>
105
+ <td align="center" valign="top">
106
+ <h3>🛠 30+ 内置工具</h3>
107
+ <sub>文件 · shell · 搜索 · MCP · ACP</sub>
108
+ <br><br>
109
+ repo intelligence、语义搜索、git worktree、web fetch,统一从干净的 tool definition 接口暴露。
110
+ </td>
111
+ </tr>
112
+ </table>
113
+
114
+ ## 同类产品对比
115
+
116
+ | 能力 | **KodaX** | Claude Code | Aider | Codex CLI | Cursor | Cline |
117
+ |---|---|---|---|---|---|---|
118
+ | 开源协议 | ✅ Apache&nbsp;2.0 | ❌ source-available | ✅ Apache&nbsp;2.0 | ✅ Apache&nbsp;2.0 | ❌ 闭源 | ✅ Apache&nbsp;2.0 |
119
+ | 免 Node 单文件 | ✅ Bun | ❌ 需 Node | ❌ 需 Python | ✅ Rust | ❌ Electron | ❌ 插件 |
120
+ | 国内 6 家原生<br><sub>(智谱·Kimi·MiniMax·MiMo·方舟·Qwen)</sub> | ✅ 6 家原生 | ❌ | ⚠ 走 LiteLLM | ❌ OpenAI 主线 | ❌ 无 provider 菜单 | ⚠ Kimi/Qwen/DeepSeek |
121
+ | 可分叉会话血缘 | ✅ fork & rewind | ⚠ routines/sessions | ❌ | ❌ | ❌ | ⚠ checkpoints |
122
+ | Multi-agent + MCP + 30+ 工具 | ✅ 三项全有 | ✅ 三项全有 | ⚠ 有 tools, 无 MCP | ✅ 三项全有 | ⚠ Composer + MCP | ✅ 三项全有 |
123
+
124
+ <sub>数据于 2026-05 对照官方公开文档核对([Claude Code](https://github.com/anthropics/claude-code) · [Aider](https://aider.chat/docs/llms.html) · [Codex CLI](https://github.com/openai/codex) · [Cursor](https://cursor.com) · [Cline](https://github.com/cline/cline))。⚠ 表示部分支持 / 需额外配置 / 非 first-class。欢迎 PR 修正。</sub>
125
+
126
+ ## 详细配置
127
+
128
+ > 上面的 `npm i -g @kodax-ai/kodax` 一行就够了。下面这一节是给"从源码构建 / 接自定义 provider / 把 KodaX 当库使用"的场景。
129
+
130
+ ### 1. 从源码构建
26
131
 
27
132
  ```bash
28
133
  git clone https://github.com/icetomoyo/KodaX.git
@@ -100,14 +205,17 @@ const result = await runKodaX(
100
205
  如果只想用某个子能力,按 subpath 引入更轻量,bundler 也能更好地 tree-shake:
101
206
 
102
207
  ```typescript
103
- import { Runner } from '@kodax-ai/kodax/agent'; // Agent runtime
104
- import { createProvider } from '@kodax-ai/kodax/llm'; // LLM 抽象(12 家 provider)
105
- import { runKodaX } from '@kodax-ai/kodax/coding'; // Coding tools + prompts
106
- import { SkillRegistry } from '@kodax-ai/kodax/skills'; // 零依赖 skill loader
107
- import { loadConfig } from '@kodax-ai/kodax/repl'; // REPL 配置 / session 工具
208
+ import { Runner } from '@kodax-ai/kodax/agent'; // Agent runtime
209
+ import { createProvider } from '@kodax-ai/kodax/llm'; // LLM 抽象(12 家 provider)
210
+ import { runKodaX } from '@kodax-ai/kodax/coding'; // Coding tools + prompts
211
+ import { SkillRegistry } from '@kodax-ai/kodax/skills'; // 零依赖 skill loader
212
+ import { loadConfig } from '@kodax-ai/kodax/repl'; // REPL 配置 / session 工具
213
+ import { createMcpManager } from '@kodax-ai/kodax/mcp'; // MCP popout manager(v0.7.42 起)
108
214
  ```
109
215
 
110
- 6 个入口(root + 5 subpath)通过 ESM 共享 chunk 复用底层代码 —— 只 import `/agent` 不会把 `/repl` 的 Ink + React 一起拉进来。
216
+ 7 个入口(root + 6 subpath)通过 ESM 共享 chunk 复用底层代码 —— 只 import `/agent` 不会把 `/repl` 的 Ink + React 一起拉进来。
217
+
218
+ > **SDK 是 ESM-only**。在 CommonJS 上下文(Electron main 进程、传统 Webpack CJS bundle、`require()` 调用方)必须用 `await import('@kodax-ai/kodax/...')` 代替 `require()`。详见 [docs/SDK_EMBEDDER_GUIDE.md §5](docs/SDK_EMBEDDER_GUIDE.md#5-consuming-from-a-commonjs-context-electron-main-cjs-bundles),含 Electron main 完整 recipe + 为什么大多数 subpath 物理上无法做 dual ESM/CJS bundle。
111
219
 
112
220
  ### 5. 自定义 Provider(OpenAI / Anthropic 兼容端点)
113
221
 
@@ -292,283 +400,71 @@ KodaX 有 30+ 个内置工具,按类别分组如下(实际暴露给 LLM 是
292
400
  | `task_stop` | 请求指定 child 优雅退出。当前 tool 原子结束后 child 看到 `<coordinator-stop-request>` 并 emit 最终摘要。仅 coordinator 可用。(FEATURE_120, v0.7.39) |
293
401
  | `ask_user_question` | 向用户发起单选 / 多选 / 自由文本提问 |
294
402
  | `exit_plan_mode` | Plan 模式下提交最终方案给用户审批(仅 REPL) |
295
- | `emit_managed_protocol` | managed-task 协议侧信道(handoff / verdict role payload)。v0.7.36 FEATURE_114 起默认走 V2 Worker→Evaluator 链。 |
296
-
297
- ## Repo Intelligence Premium
298
-
299
- KodaX 现在支持一套拆分后的 Repo Intelligence 架构:
300
-
301
- - 公共 OSS baseline 在 public `KodaX` 仓库里
302
- - premium intelligence 在 private `KodaX-private` 仓库里
303
- - premium 通过本地 `repointel` frontdoor 和 daemon 运行
304
- - KodaX 自身支持原生旗舰路径
305
-
306
- 一句话理解:
307
-
308
- - 没有 premium 时,KodaX 仍然能正常工作
309
- - 安装 premium 后,KodaX 可以获得更强的仓库理解、影响面分析、上下文压缩和原生自动注入能力
310
-
311
- ## Repo Intelligence 运行模式
312
-
313
- KodaX 支持这些模式:
314
-
315
- - `off`
316
- - 严格关闭 repo-intelligence 工作面
317
- - 不自动注入,也不暴露 repo working tools
318
- - 但 `/repointel` 控制命令仍然保留
319
- - `oss`
320
- - 只使用 public OSS baseline
321
- - `premium-shared`
322
- - 使用 premium,但不走 KodaX 原生 auto lane
323
- - 适合和其他宿主路径做对比
324
- - `premium-native`
325
- - 使用 premium,并走 KodaX 原生路径
326
- - 这是推荐模式,也是最佳体验
327
- - `auto`
328
- - 先尝试 `premium-native`
329
- - premium 不可用时自动回退到 `oss`
330
-
331
- ## native-first 使用方式
332
-
333
- 当前正式发布推荐使用 native `repointel` 包。
334
-
335
- 也就是说:
336
-
337
- - 正式 GitHub Release 应该发布 native 包
338
- - offline bundle 只保留给内部验证或特殊场景
339
-
340
- ### 普通用户最简配置
341
-
342
- 如果 `repointel` 已经在 `PATH`:
343
-
344
- ```json
345
- {
346
- "repoIntelligenceMode": "premium-native"
347
- }
348
- ```
349
-
350
- ### 不在 PATH 时
351
-
352
- ```json
353
- {
354
- "repoIntelligenceMode": "premium-native",
355
- "repointelBin": "C:\\Tools\\repointel\\repointel.exe"
356
- }
357
- ```
358
-
359
- ### 作者同父目录联调
360
-
361
- ```json
362
- {
363
- "repoIntelligenceMode": "premium-native",
364
- "repointelEndpoint": "http://127.0.0.1:47891",
365
- "repointelBin": "C:\\path\\to\\KodaX-private\\packages\\repointel-cli\\dist\\index.js",
366
- "repoIntelligenceTrace": true
367
- }
368
- ```
369
-
370
- 配置模板可参考:
371
-
372
- - [config.example.jsonc](./config.example.jsonc)
373
-
374
- ## `repointelEndpoint` 是什么
375
-
376
- `repointelEndpoint` 表示 KodaX 连接本地 premium daemon 的地址。
377
-
378
- 默认值通常是:
379
-
380
- ```json
381
- "repointelEndpoint": "http://127.0.0.1:47891"
382
- ```
383
-
384
- 大多数用户不需要手动配置它,只有这些情况才建议显式设置:
385
-
386
- - 你改了默认端口
387
- - 你想同时跑多个 daemon
388
- - 你在做本地调试或隔离实验
403
+ | `emit_managed_protocol` | managed-task 协议侧信道(verdict role payload)。v0.7.42 FEATURE_184 起默认走 V2 Worker 单循环 + Sidecar Verifier;v0.7.43 FEATURE_193 退役 V1 chain。 |
389
404
 
390
- ## REPL 里怎么看当前状态
405
+ ## Repo Intelligence(可选 premium 引擎)
391
406
 
392
- 启动 `kodax` 后,可以直接使用:
407
+ KodaX 内置 OSS repo intelligence(`repo_overview` / `module_context` / `symbol_context` / `process_context` / `impact_estimate` 等),让 coding agent 不靠零散 grep/glob 就能理解大型仓库。
393
408
 
394
- - `/status`
395
- - 看简要状态
396
- - `/repointel`
397
- - 看更详细的 repo-intelligence 状态
398
- - `/repointel status`
399
- - 显式探测本地 premium frontdoor
409
+ 可选的 **premium 引擎**(`repointel` 本地 daemon,通过 sibling `KodaX-private` 仓发布)增加主动上下文注入、更深的 module capsule,以及一条 KodaX 原生 auto-lane。premium 不可用时 KodaX 自动 fallback 到 OSS。
400
410
 
401
- 最重要的字段有:
402
-
403
- - `mode`
404
- - `engine`
405
- - `bridge`
406
- - `status`
407
-
408
- 例如:
409
-
410
- - `premium-native / premium / native / ok`
411
- - 说明 premium 生效了,而且走的是 KodaX 原生旗舰路径
412
- - `oss / oss / none / ok`
413
- - 说明当前实际运行在 OSS baseline
414
-
415
- ## REPL 里怎么控制 Repo Intelligence
416
-
417
- 可用命令包括:
418
-
419
- - `/repointel`
420
- - `/repointel status`
421
- - `/repointel mode premium-native|premium-shared|oss|off|auto`
422
- - `/repointel trace on|off|toggle`
423
- - `/repointel warm`
424
- - `/repointel endpoint ...`
425
- - `/repointel bin ...`
426
-
427
- 你也可以用:
428
-
429
- - `/clear`
430
-
431
- 来清空当前会话上下文。
432
-
433
- 如果要做严格 benchmark,最好每档模式都使用一个全新的 session,避免旧上下文污染结果。
434
-
435
- ## `repoIntelligenceTrace` 有什么用
436
-
437
- `repoIntelligenceTrace` 是一个诊断和对比开关。
438
-
439
- 打开后,你可以更清楚地看到:
440
-
441
- - 当前到底是 `oss` 还是 `premium`
442
- - 当前是 `shared` 还是 `native`
443
- - daemon latency
444
- - cache hit/miss
445
- - capsule token 估算
446
-
447
- 普通用户平时通常可以不开;联调、benchmark、排障时再打开。
448
-
449
- ## `premium-native` 和 `premium-shared` 的区别
450
-
451
- 两者都使用 premium,但区别在于是否使用 KodaX 原生特权路径:
452
-
453
- - `premium-native`
454
- - KodaX 旗舰路径
455
- - 更早预取 intelligence
456
- - 在 planning / routing / prompt build 前就更主动地使用 premium
457
- - `premium-shared`
458
- - 仍然用 premium
459
- - 但故意不走 KodaX 原生 auto lane
460
- - 更接近其他宿主的共享接入方式
461
-
462
- 如果你平时自己用 KodaX,推荐 `premium-native`。
463
-
464
- ## 如何更明显地体现 `repointel` 收益
465
-
466
- 最容易体现 repo-intelligence 收益的任务,不是“改单一文件”,而是:
467
-
468
- - 需要先理解仓库结构
469
- - 需要缩小范围
470
- - 需要判断模块、流程、影响面
471
-
472
- 例如:
473
-
474
- ```text
475
- 我要给 KodaX 增加一个真正的 /new 命令。先不要写代码,先判断最可能需要改哪些模块、调用链会经过哪里、最值得先看的 8 个文件是什么。
476
- ```
477
-
478
- ```text
479
- 帮我定位 KodaX 从命令行启动,到进入 REPL 或 ACP,再到真正调用 coding agent 的主入口链。先给我分层图和最关键文件,不要先铺开全部实现。
480
- ```
481
-
482
- 如果你要做 A/B 测试,建议比较:
483
-
484
- - `off`
485
- - `oss`
486
- - `premium-shared`
487
- - `premium-native`
488
-
489
- 而且每档尽量用全新的 session。
490
-
491
- ## Clients 目录说明
492
-
493
- `clients/` 目录现在已经收敛成极简结构。
494
-
495
- 它只保留一个共享的开放资产:
496
-
497
- - `clients/repointel/`
498
-
499
- 这份 shared skill 是 Phase 1 多宿主接入的唯一源:
500
-
501
- - Codex
502
- - Claude Code
503
- - OpenCode
504
-
505
- 都通过同一份 shared skill 接入本地 `repointel`,而不是各自维护一套 host-pack 目录。
506
-
507
- 这样做的原因是:
508
-
509
- - premium 逻辑在 `KodaX-private` 的 `repointel` 工具里,不在 host 包装层里
510
- - 多宿主接入本来就是薄层,不应该继续保留一堆 Windows-first 的历史壳目录
511
- - 共享一个 skill 源更干净、更容易维护,也更符合当前 native-first 的发布方向
512
-
513
- 现在的标准使用方式是:
514
-
515
- - 用 `clients/repointel/scripts/install.mjs` 把 shared skill 安装到目标宿主需要的位置
516
- - 用 `clients/repointel/scripts/doctor.mjs` 检查本地 premium / daemon / host skill 安装状态
517
- - 用 `clients/repointel/scripts/demo.mjs` 做本地演示和验证
518
-
519
- 示例:
520
-
521
- ```powershell
522
- node .\clients\repointel\scripts\install.mjs --host codex
523
- node .\clients\repointel\scripts\install.mjs --host claude --workspace-root C:\path\to\workspace
524
- node .\clients\repointel\scripts\install.mjs --host opencode --workspace-root C:\path\to\workspace
411
+ ```bash
412
+ # 选一个运行模式(off | oss | premium-shared | premium-native | auto)
413
+ kodax --repo-intelligence premium-native --repo-intelligence-trace
525
414
  ```
526
415
 
527
- 补充说明:
528
-
529
- - 可安装的 skill 目录入口是 `clients/repointel/SKILL.md`
530
- - `clients/repointel/` 整个目录遵循 Claude Code Skills 规范,`SKILL.md` 是入口,`reference.md` 是辅助参考文件
531
- - `scripts/install.mjs`、`doctor.mjs`、`demo.mjs` 是仓库维护脚本,位于 `scripts/` 子目录
532
- - 所以 `clients/repointel/` 现在承载的是完整的第三方宿主集成单元,而不只是一个单独的 skill 文件
533
-
534
- 也就是说:
535
-
536
- - `clients/` 不是 build 产物
537
- - 它现在也不再是“每个宿主一套安装包”
538
- - 它只是存放 shared repointel skill 的正式源码位置
416
+ 完整安装 / 运行模式 / REPL 控制 / config schema / 第三方宿主接入,详见 [docs/REPOINTEL.md](docs/REPOINTEL.md)。
539
417
 
540
418
  ## 仓库结构
541
419
 
542
- KodaX 是基于 npm workspaces 的 TypeScript monorepo,源码层 9 个 workspace 包,npm 上以单 bundle 包 `@kodax-ai/kodax` 发布 + 5 个 SDK subpath exportsADR-022 + ADR-024v0.7.39)。核心包:
420
+ KodaX 是基于 npm workspaces 的 TypeScript monorepo,**源码层 4 个 workspace 包**(FEATURE_194 v0.7.43 包合并 — 9 → 4,ADR-036),npm 上以单 bundle 包 `@kodax-ai/kodax` 发布 + SDK subpath exports(`/agent`、`/llm`、`/coding`、`/repl`;ADR-022 + ADR-024 v0.7.39)。核心包:
543
421
 
544
422
  | Workspace 包 | 作用 | 主要依赖 |
545
423
  |----|------|---------|
546
424
  | `@kodax-ai/llm` | LLM 抽象层(12 个内置 provider + 自定义 provider 注册),可独立使用 | `@anthropic-ai/sdk`, `openai` |
547
- | `@kodax-ai/agent` | 通用 Agent 框架 —— Runner / runFanOut / runWithIdleYield / ChildTaskRegistry + 会话管理 + tokenization + 可插拔 compaction(ADR-021 standalone-consumable) | `@kodax-ai/llm`, `js-tiktoken` |
548
- | `@kodax-ai/skills` | Agent Skills 标准实现(自然语言触发、变量解析) | 零外部依赖 |
549
- | `@kodax-ai/coding` | Coding Agent:30+ 工具(含 `dispatch_child_task` / `send_message` / `task_stop`)、role prompts、agent loop、auto-continue | `@kodax-ai/llm`, `@kodax-ai/agent`, `@kodax-ai/skills` |
425
+ | `@kodax-ai/agent` | 通用 Agent 框架 —— Runner / runFanOut / runWithIdleYield / ChildTaskRegistry + 会话管理 + tokenization + 可插拔 compaction + **inline 后**:session-lineage 子树 + capabilities (mcp + skills + builtin) + tracing(subpaths: `/session-lineage`、`/capabilities/mcp`、`/capabilities/skills`、`/tracing`) | `@kodax-ai/llm`, `js-tiktoken`, `fflate`, `yaml` |
426
+ | `@kodax-ai/coding` | Coding Agent:30+ 工具(含 `dispatch_child_task`/`send_message`/`task_stop`)、role prompts、agent loop、auto-continue + repo-intelligence protocol(v0.7.43 inline) | `@kodax-ai/llm`, `@kodax-ai/agent` |
550
427
  | `@kodax-ai/repl` | 完整交互式终端 UI(Ink / React、权限模式、命令系统、流式渲染) | `@kodax-ai/coding`, `ink`, `react` |
551
428
 
552
- 辅助包:`@kodax-ai/mcp`、`@kodax-ai/repointel-protocol`、`@kodax-ai/session-lineage`、`@kodax-ai/tracing`(按需依赖)。
429
+ 根目录 `src/kodax_cli.ts` 是 CLI 入口;`src/sdk-{agent,llm,coding,repl,skills,mcp,session}.ts` 是 SDK subpath 入口;构建产物在 `dist/`,单文件二进制在 `dist/binary/<target>/`。
430
+
431
+ ### 源码层 vs npm 发布层
432
+
433
+ KodaX 有两层结构,SDK 用户需要分开理解:
434
+
435
+ - **源码层**:上面 4 个 workspace 包(开发者读代码时看到的物理结构)。
436
+ - **npm 发布层**:单个 bundled 包 `@kodax-ai/kodax`,对外暴露 7 个 SDK subpath(SDK 消费者 `import` 时看到的接口)。subpath 分两种角色:
437
+ - **完整包 subpath**(`/agent`、`/llm`、`/coding`、`/repl`)—— 每个 1:1 对应一个源码包,暴露完整公开 API。
438
+ - **窄子集 subpath**(`/skills`、`/mcp`、`/session`)—— 从 `/agent` 或 `/repl` 切出聚焦的能力子集,让"只用 Skills/MCP/会话管理"的消费者引入更小的依赖。
439
+
440
+ | 源码包 | npm subpath | 类型 | 内容 | 典型消费者 |
441
+ |---|---|---|---|---|
442
+ | `packages/llm` | `@kodax-ai/kodax/llm` | 完整包 | 12 provider LLM 抽象 (77 exports) | 独立 LLM 客户端 |
443
+ | `packages/agent` | `@kodax-ai/kodax/agent` | 完整包 | Runner / fan-out / session-lineage / capabilities / tracing (202 exports) | 自定义 agent 框架 |
444
+ | `packages/agent` | `@kodax-ai/kodax/skills` | **窄子集** | 仅 Skills 系统 —— `SkillRegistry` / `loadFullSkill` / `expandSkillForLLM` 等 (26 exports = v0.7.43 之前 `@kodax-ai/skills` 完整 API) | Skill 加载器、IDE 插件 |
445
+ | `packages/agent` | `@kodax-ai/kodax/mcp` | **窄子集** | 仅 MCP —— `McpCapabilityProvider` / `createMcpTransport` / `searchMcpCatalog` 等 (11 exports = v0.7.43 之前 `@kodax-ai/mcp` 完整 API) | MCP server 宿主 |
446
+ | `packages/coding` | `@kodax-ai/kodax/coding` | 完整包 | Coding agent + 30+ 工具 + repo-intelligence (342 exports) | 构建 Claude Code 形态产品 |
447
+ | `packages/repl` | `@kodax-ai/kodax/repl` | 完整包 | Ink TUI + 权限模式 + 命令系统 (193 exports) | 终端 UI 消费者 |
448
+ | `packages/repl` | `@kodax-ai/kodax/session` | **窄子集** | 仅会话管理 —— `listSessions` / `forkSession` / `watchSessions` 等 (9 exports) | 读取 session 历史的 IDE 插件 |
553
449
 
554
- 根目录 `src/kodax_cli.ts` CLI 入口;`src/sdk-{agent,llm,coding,repl,skills}.ts` 5 SDK subpath 入口;构建产物在 `dist/`,单文件二进制在 `dist/binary/<target>/`。
450
+ **经验法则**:需要 Runner / Agent / fan-out 时从 `/agent` 引入;只需要 skills mcp API 时从 `/skills` 或 `/mcp` 引入,bundle 更小。窄子集是完整包的真子集 —— **不会**有额外符号。
555
451
 
556
452
  ```
557
- KodaX/
453
+ KodaX/ # 4 workspace packages(FEATURE_194 v0.7.43)
558
454
  ├── packages/
559
- │ ├── ai/ # @kodax-ai/llm —— 12 个 LLM provider 实现
560
- │ ├── agent/ # @kodax-ai/agent —— Runner / fan-out / idle-yield / session
561
- │ ├── skills/ # @kodax-ai/skills —— 零依赖 skill 加载器
562
- │ │ └── builtin/ # 内置 skills:code-review / tdd / git-workflow / skill-creator
455
+ │ ├── llm/ # @kodax-ai/llm —— 12 个 LLM provider 实现
456
+ │ ├── agent/ # @kodax-ai/agent —— Runner / fan-out / idle-yield + 子树:
457
+ ├── session-lineage/ # 分支 session tree (v0.7.43 inline)
458
+ │ │ ├── capabilities/
459
+ │ │ │ ├── mcp/ # MCP 集成 (v0.7.43 inline)
460
+ │ │ │ └── skills/ # Skills 标准实现 + builtin (v0.7.43 inline)
461
+ │ │ └── tracing/ # 追踪 / 可观测性 (v0.7.43 inline)
563
462
  │ ├── coding/ # @kodax-ai/coding —— tools + prompts + agent loop
564
- ├── repl/ # @kodax-ai/repl —— Ink TUI
565
- ├── mcp/ # @kodax-ai/mcp
566
- │ ├── repointel-protocol/ # @kodax-ai/repointel-protocol
567
- │ ├── session-lineage/ # @kodax-ai/session-lineage
568
- │ └── tracing/ # @kodax-ai/tracing
463
+ │ └── repo-intelligence/ # protocol.ts (v0.7.43 inline)
464
+ └── repl/ # @kodax-ai/repl —— Ink TUI
569
465
  ├── src/
570
466
  │ ├── kodax_cli.ts # CLI 主入口(bin: `kodax`)
571
- │ └── sdk-*.ts # 5 个 SDK subpath 入口 → @kodax-ai/kodax/{agent,llm,coding,repl,skills}
467
+ │ └── sdk-*.ts # SDK subpath 入口 → @kodax-ai/kodax/{agent,llm,coding,repl}
572
468
  ├── scripts/
573
469
  │ ├── build-bundle.mjs # esbuild 单 bundle 多 entry 打包(CLI + 6 SDK entry + chunks)
574
470
  │ ├── build-binary.mjs # Bun --compile 单文件二进制打包