@danya-ai/cli 0.1.2 → 0.1.4
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/README.md +125 -105
- package/dist/REPL-YFM3WKCC.js +42 -0
- package/dist/{acp-OF52BP4A.js → acp-LMW4BO5A.js} +26 -26
- package/dist/{agentsValidate-WUX5I4FS.js → agentsValidate-5VUACF2G.js} +7 -7
- package/dist/{ask-5P2J7UA5.js → ask-C57WQJNZ.js} +25 -25
- package/dist/{autoUpdater-6ABURQZA.js → autoUpdater-KEQOIUBC.js} +3 -3
- package/dist/{chunk-6KD43S3G.js → chunk-2CRLMZ76.js} +4 -4
- package/dist/{chunk-BAYPSZHG.js → chunk-3A4ENL7W.js} +1 -1
- package/dist/{chunk-VMJRNHDU.js → chunk-3ONZAVOS.js} +2 -2
- package/dist/{chunk-PTQTKIR2.js → chunk-5M3MBCE7.js} +1 -1
- package/dist/{chunk-PTQTKIR2.js.map → chunk-5M3MBCE7.js.map} +1 -1
- package/dist/{chunk-QJMLHIGS.js → chunk-5TDBDWNG.js} +2 -2
- package/dist/{chunk-T6RTYOJB.js → chunk-6JHEJQWY.js} +3 -3
- package/dist/{chunk-ESHU3HUM.js → chunk-6LOREEJY.js} +2551 -252
- package/dist/chunk-6LOREEJY.js.map +7 -0
- package/dist/{chunk-RO73O3Q7.js → chunk-CXOM4XMN.js} +4 -4
- package/dist/{chunk-N74L4GAM.js → chunk-DZCV2FEW.js} +1 -1
- package/dist/{chunk-SSS2WVMA.js → chunk-E5BAXZSR.js} +1 -1
- package/dist/{chunk-KS52NNBY.js → chunk-HIH5HC5H.js} +2 -2
- package/dist/{chunk-2VUDETSP.js → chunk-HPSW7NNI.js} +1 -1
- package/dist/{chunk-6GABS3DM.js → chunk-HXH5LYLI.js} +1 -1
- package/dist/{chunk-6IH7H2LH.js → chunk-IZETEFF5.js} +3 -3
- package/dist/{chunk-H3P32G2A.js → chunk-K7QXXI4A.js} +3 -3
- package/dist/{chunk-JF5D7ADP.js → chunk-LHNX67NO.js} +3 -3
- package/dist/{chunk-CZ5UJ3RL.js → chunk-NMNFFCQ7.js} +1 -1
- package/dist/{chunk-BTAVLAZT.js → chunk-RRPXM25U.js} +3 -3
- package/dist/{chunk-3GLLMJKA.js → chunk-TWE6H65Q.js} +3 -3
- package/dist/{chunk-HNK7M2ZO.js → chunk-UNIJZL2G.js} +1 -1
- package/dist/{chunk-7I3UELIX.js → chunk-X36NKBPR.js} +2 -2
- package/dist/{chunk-5ONWVNJH.js → chunk-X46SRZQF.js} +1 -1
- package/dist/{chunk-HRXRIW33.js → chunk-X7ZDT7EX.js} +2 -2
- package/dist/{chunk-JNAMM7A6.js → chunk-XLA6ANZN.js} +11 -11
- package/dist/{chunk-M75PDOOM.js → chunk-Y5IRVMDD.js} +3 -3
- package/dist/{chunk-QUAOJLG6.js → chunk-YUJ45IMI.js} +1 -1
- package/dist/{chunk-U7ZJW3CQ.js → chunk-Z4QNIOFF.js} +2 -2
- package/dist/{cli-FE6CUZI3.js → cli-P4CJSCH4.js} +131 -84
- package/dist/cli-P4CJSCH4.js.map +7 -0
- package/dist/commands-Y7WI2LGN.js +46 -0
- package/dist/{config-JEGZHGSM.js → config-5L37WETO.js} +4 -4
- package/dist/{context-LEXLLT4O.js → context-SF3X335Q.js} +5 -5
- package/dist/{customCommands-RLUKKBRZ.js → customCommands-SPF7HJEH.js} +4 -4
- package/dist/{env-4PRTNVDJ.js → env-GR5OKVVR.js} +2 -2
- package/dist/index.js +3 -3
- package/dist/{kodeAgentSessionLoad-LUKUH23S.js → kodeAgentSessionLoad-L54J2WSU.js} +4 -4
- package/dist/{kodeAgentSessionResume-FDZ6H3PX.js → kodeAgentSessionResume-4S4ZW7WI.js} +4 -4
- package/dist/{kodeAgentStreamJsonSession-VE2UG5B2.js → kodeAgentStreamJsonSession-44EO542F.js} +1 -1
- package/dist/{kodeHooks-ZVNRQTZM.js → kodeHooks-G64RN6MW.js} +4 -4
- package/dist/{llm-IFU62ZT4.js → llm-23Z6UDED.js} +26 -26
- package/dist/{llmLazy-45EGHX2A.js → llmLazy-PKBZHKOG.js} +1 -1
- package/dist/{loader-TITFI6LS.js → loader-BXIFWM6O.js} +4 -4
- package/dist/{mcp-DE5HUK63.js → mcp-CYG2WZG5.js} +7 -7
- package/dist/{mentionProcessor-SAPYBDCK.js → mentionProcessor-XQ2HNO4M.js} +5 -5
- package/dist/{messages-BARXRPB4.js → messages-YOW6NTUG.js} +1 -1
- package/dist/{model-PC6MMS2S.js → model-NIOLLP6W.js} +5 -5
- package/dist/{openai-AVJO73FG.js → openai-G2AMXRJ2.js} +5 -5
- package/dist/{outputStyles-VL7EKGIQ.js → outputStyles-CZDXBWRF.js} +4 -4
- package/dist/{pluginRuntime-IG2H3W7C.js → pluginRuntime-ZIT4IL6O.js} +6 -6
- package/dist/{pluginValidation-TOBMLJ5A.js → pluginValidation-LO7TNL4T.js} +6 -6
- package/dist/prompts-MKPN6WZF.js +50 -0
- package/dist/query-MSMRQ2ET.js +50 -0
- package/dist/{ripgrep-HID6XW3J.js → ripgrep-XSFDNITT.js} +3 -3
- package/dist/{skillMarketplace-YBS7NR7Q.js → skillMarketplace-NX6XZDT4.js} +3 -3
- package/dist/{state-5OBXGJX6.js → state-YAYMHZAZ.js} +2 -2
- package/dist/{theme-U2POECGP.js → theme-RATH22A4.js} +5 -5
- package/dist/{toolPermissionSettings-AYX5MEOW.js → toolPermissionSettings-SFS4Z63J.js} +6 -6
- package/dist/tools-2J2DNXWI.js +47 -0
- package/dist/{userInput-RXNBLFAH.js → userInput-EQAF4OWN.js} +27 -27
- package/package.json +1 -1
- package/dist/REPL-URLRZ4T4.js +0 -42
- package/dist/chunk-ESHU3HUM.js.map +0 -7
- package/dist/cli-FE6CUZI3.js.map +0 -7
- package/dist/commands-6DP3QW2F.js +0 -46
- package/dist/prompts-JGBWXN2Z.js +0 -50
- package/dist/query-4DUM4QP7.js +0 -50
- package/dist/tools-JL434UMR.js +0 -47
- /package/dist/{REPL-URLRZ4T4.js.map → REPL-YFM3WKCC.js.map} +0 -0
- /package/dist/{acp-OF52BP4A.js.map → acp-LMW4BO5A.js.map} +0 -0
- /package/dist/{agentsValidate-WUX5I4FS.js.map → agentsValidate-5VUACF2G.js.map} +0 -0
- /package/dist/{ask-5P2J7UA5.js.map → ask-C57WQJNZ.js.map} +0 -0
- /package/dist/{autoUpdater-6ABURQZA.js.map → autoUpdater-KEQOIUBC.js.map} +0 -0
- /package/dist/{chunk-6KD43S3G.js.map → chunk-2CRLMZ76.js.map} +0 -0
- /package/dist/{chunk-BAYPSZHG.js.map → chunk-3A4ENL7W.js.map} +0 -0
- /package/dist/{chunk-VMJRNHDU.js.map → chunk-3ONZAVOS.js.map} +0 -0
- /package/dist/{chunk-QJMLHIGS.js.map → chunk-5TDBDWNG.js.map} +0 -0
- /package/dist/{chunk-T6RTYOJB.js.map → chunk-6JHEJQWY.js.map} +0 -0
- /package/dist/{chunk-RO73O3Q7.js.map → chunk-CXOM4XMN.js.map} +0 -0
- /package/dist/{chunk-N74L4GAM.js.map → chunk-DZCV2FEW.js.map} +0 -0
- /package/dist/{chunk-SSS2WVMA.js.map → chunk-E5BAXZSR.js.map} +0 -0
- /package/dist/{chunk-KS52NNBY.js.map → chunk-HIH5HC5H.js.map} +0 -0
- /package/dist/{chunk-2VUDETSP.js.map → chunk-HPSW7NNI.js.map} +0 -0
- /package/dist/{chunk-6GABS3DM.js.map → chunk-HXH5LYLI.js.map} +0 -0
- /package/dist/{chunk-6IH7H2LH.js.map → chunk-IZETEFF5.js.map} +0 -0
- /package/dist/{chunk-H3P32G2A.js.map → chunk-K7QXXI4A.js.map} +0 -0
- /package/dist/{chunk-JF5D7ADP.js.map → chunk-LHNX67NO.js.map} +0 -0
- /package/dist/{chunk-CZ5UJ3RL.js.map → chunk-NMNFFCQ7.js.map} +0 -0
- /package/dist/{chunk-BTAVLAZT.js.map → chunk-RRPXM25U.js.map} +0 -0
- /package/dist/{chunk-3GLLMJKA.js.map → chunk-TWE6H65Q.js.map} +0 -0
- /package/dist/{chunk-HNK7M2ZO.js.map → chunk-UNIJZL2G.js.map} +0 -0
- /package/dist/{chunk-7I3UELIX.js.map → chunk-X36NKBPR.js.map} +0 -0
- /package/dist/{chunk-5ONWVNJH.js.map → chunk-X46SRZQF.js.map} +0 -0
- /package/dist/{chunk-HRXRIW33.js.map → chunk-X7ZDT7EX.js.map} +0 -0
- /package/dist/{chunk-JNAMM7A6.js.map → chunk-XLA6ANZN.js.map} +0 -0
- /package/dist/{chunk-M75PDOOM.js.map → chunk-Y5IRVMDD.js.map} +0 -0
- /package/dist/{chunk-QUAOJLG6.js.map → chunk-YUJ45IMI.js.map} +0 -0
- /package/dist/{chunk-U7ZJW3CQ.js.map → chunk-Z4QNIOFF.js.map} +0 -0
- /package/dist/{commands-6DP3QW2F.js.map → commands-Y7WI2LGN.js.map} +0 -0
- /package/dist/{config-JEGZHGSM.js.map → config-5L37WETO.js.map} +0 -0
- /package/dist/{context-LEXLLT4O.js.map → context-SF3X335Q.js.map} +0 -0
- /package/dist/{customCommands-RLUKKBRZ.js.map → customCommands-SPF7HJEH.js.map} +0 -0
- /package/dist/{env-4PRTNVDJ.js.map → env-GR5OKVVR.js.map} +0 -0
- /package/dist/{kodeAgentSessionLoad-LUKUH23S.js.map → kodeAgentSessionLoad-L54J2WSU.js.map} +0 -0
- /package/dist/{kodeAgentSessionResume-FDZ6H3PX.js.map → kodeAgentSessionResume-4S4ZW7WI.js.map} +0 -0
- /package/dist/{kodeAgentStreamJsonSession-VE2UG5B2.js.map → kodeAgentStreamJsonSession-44EO542F.js.map} +0 -0
- /package/dist/{kodeHooks-ZVNRQTZM.js.map → kodeHooks-G64RN6MW.js.map} +0 -0
- /package/dist/{llm-IFU62ZT4.js.map → llm-23Z6UDED.js.map} +0 -0
- /package/dist/{llmLazy-45EGHX2A.js.map → llmLazy-PKBZHKOG.js.map} +0 -0
- /package/dist/{loader-TITFI6LS.js.map → loader-BXIFWM6O.js.map} +0 -0
- /package/dist/{mcp-DE5HUK63.js.map → mcp-CYG2WZG5.js.map} +0 -0
- /package/dist/{mentionProcessor-SAPYBDCK.js.map → mentionProcessor-XQ2HNO4M.js.map} +0 -0
- /package/dist/{messages-BARXRPB4.js.map → messages-YOW6NTUG.js.map} +0 -0
- /package/dist/{model-PC6MMS2S.js.map → model-NIOLLP6W.js.map} +0 -0
- /package/dist/{openai-AVJO73FG.js.map → openai-G2AMXRJ2.js.map} +0 -0
- /package/dist/{outputStyles-VL7EKGIQ.js.map → outputStyles-CZDXBWRF.js.map} +0 -0
- /package/dist/{pluginRuntime-IG2H3W7C.js.map → pluginRuntime-ZIT4IL6O.js.map} +0 -0
- /package/dist/{pluginValidation-TOBMLJ5A.js.map → pluginValidation-LO7TNL4T.js.map} +0 -0
- /package/dist/{prompts-JGBWXN2Z.js.map → prompts-MKPN6WZF.js.map} +0 -0
- /package/dist/{query-4DUM4QP7.js.map → query-MSMRQ2ET.js.map} +0 -0
- /package/dist/{ripgrep-HID6XW3J.js.map → ripgrep-XSFDNITT.js.map} +0 -0
- /package/dist/{skillMarketplace-YBS7NR7Q.js.map → skillMarketplace-NX6XZDT4.js.map} +0 -0
- /package/dist/{state-5OBXGJX6.js.map → state-YAYMHZAZ.js.map} +0 -0
- /package/dist/{theme-U2POECGP.js.map → theme-RATH22A4.js.map} +0 -0
- /package/dist/{toolPermissionSettings-AYX5MEOW.js.map → toolPermissionSettings-SFS4Z63J.js.map} +0 -0
- /package/dist/{tools-JL434UMR.js.map → tools-2J2DNXWI.js.map} +0 -0
- /package/dist/{userInput-RXNBLFAH.js.map → userInput-EQAF4OWN.js.map} +0 -0
package/README.md
CHANGED
|
@@ -25,20 +25,30 @@ npm install -g .
|
|
|
25
25
|
danya --version
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## 更新
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install -g @danya-ai/cli@latest
|
|
32
|
+
```
|
|
33
|
+
|
|
28
34
|
## 快速使用
|
|
29
35
|
|
|
30
36
|
```bash
|
|
31
|
-
#
|
|
37
|
+
# 进入你的游戏项目,启动 danya(首次启动会引导配置 AI 模型)
|
|
32
38
|
cd <你的游戏项目>
|
|
33
|
-
danya init
|
|
34
|
-
|
|
35
|
-
# 启动交互模式(首次启动会引导配置 AI 模型)
|
|
36
39
|
danya
|
|
37
40
|
|
|
41
|
+
# 初始化 harness(自动检测引擎,生成完整的规则、命令、Hook 体系)
|
|
42
|
+
# 注:首次启动时会自动初始化,也可以手动执行:
|
|
43
|
+
/init
|
|
44
|
+
|
|
38
45
|
# 常用命令
|
|
46
|
+
/auto-work "添加背包排序功能" # 全自动流水线(分类→规划→编码→审查→提交→沉淀→自演进)
|
|
47
|
+
/auto-bugfix "角色状态切换动画异常" # Bug 自动修复(必须先复现才能修)
|
|
39
48
|
/review # 评分制代码审查(100 分制)
|
|
40
|
-
/
|
|
41
|
-
/
|
|
49
|
+
/fix-harness # 更新 harness 规则(自演进)
|
|
50
|
+
/plan "大功能需求" # 分析需求,生成开发计划
|
|
51
|
+
/verify # 机械验证(quick | build | full)
|
|
42
52
|
/parallel-execute prepare "大功能" # 波次并行执行
|
|
43
53
|
```
|
|
44
54
|
|
|
@@ -74,80 +84,40 @@ danya
|
|
|
74
84
|
|
|
75
85
|
---
|
|
76
86
|
|
|
77
|
-
## 功能特性
|
|
78
|
-
|
|
79
|
-
- **AI 驱动的助手** — 使用先进的 AI 模型理解并响应你的请求
|
|
80
|
-
- **多模型协同** — 灵活切换和组合使用多个 AI 模型(20+ 提供商),发挥各自优势
|
|
81
|
-
- **代码编辑** — 直接编辑文件,提供智能建议和改进
|
|
82
|
-
- **代码库理解** — 分析项目结构和代码关系
|
|
83
|
-
- **命令执行** — 实时运行 shell 命令并查看结果
|
|
84
|
-
- **工作流自动化** — 用简单的提示处理复杂的开发任务
|
|
85
|
-
- **交互式界面** — 美观的终端界面,支持语法高亮
|
|
86
|
-
- **工具系统** — 可扩展的架构,为不同任务提供专门的工具(22 通用 + 13 游戏专用)
|
|
87
|
-
- **上下文管理** — 智能的上下文处理,保持对话连续性
|
|
88
|
-
- **游戏引擎感知** — 自动识别 Unity / UE / Godot / Go 服务器,注入引擎领域知识
|
|
89
|
-
- **门禁链质量管控** — 6 道门禁强制执行代码质量标准
|
|
90
|
-
- **评分制审查** — 100 分制量化审查,33 条引擎检查规则
|
|
91
|
-
- **知识自动沉淀** — 开发成果自动文档化,不丢失项目知识
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
87
|
## Danya 是什么
|
|
96
88
|
|
|
97
89
|
Danya 是一个运行在终端中的 AI 编程助手,**专门为游戏开发场景设计**。它不是一个通用的代码补全工具,而是一个理解游戏项目架构、强制执行质量标准、并能自动化整个开发工作流的 Agent。
|
|
98
90
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
┌──────────────────────────┐
|
|
103
|
-
│ Danya │
|
|
104
|
-
│ │
|
|
105
|
-
│ 传统 Agent 的工具系统 │
|
|
106
|
-
│ + Kode 的多模型能力 │
|
|
107
|
-
│ + Game Harness 的质量治理 │
|
|
108
|
-
│ + 游戏开发领域知识 │
|
|
109
|
-
└──────────────────────────┘
|
|
110
|
-
```
|
|
91
|
+
**开箱即用**——进入游戏项目启动 Danya,它会自动检测引擎类型,生成完整的 harness 体系(规则、命令、Hook、记忆),不需要你手动搭建任何环境。如果你之前用过 Claude Code 或 Codex,已有的 `.claude/` 或 `.codex/` 配置会自动整合到 `.danya/` 中。
|
|
111
92
|
|
|
112
93
|
---
|
|
113
94
|
|
|
114
|
-
##
|
|
115
|
-
|
|
116
|
-
### 一句话总结
|
|
117
|
-
|
|
118
|
-
| 产品 | 定位 | 一句话描述 |
|
|
119
|
-
|------|------|----------|
|
|
120
|
-
| **Claude Code** | 通用编程助手 | Anthropic 官方 CLI,能力强但不懂游戏 |
|
|
121
|
-
| **Codex (OpenAI)** | 通用编程助手 | OpenAI 的终端 Agent,只支持 OpenAI 模型 |
|
|
122
|
-
| **Kode** | 通用编程助手 | Claude Code 开源替代,支持多模型 |
|
|
123
|
-
| **Danya** | **游戏开发编程助手** | 为游戏项目定制:理解引擎、门禁链、评分审查 |
|
|
124
|
-
|
|
125
|
-
### 详细对比
|
|
126
|
-
|
|
127
|
-
| 能力 | Claude Code | Codex | Kode | **Danya** |
|
|
128
|
-
|------|------------|-------|------|-----------|
|
|
129
|
-
| **游戏引擎理解** | 无 | 无 | 无 | **Unity / UE / Godot 自动识别,注入引擎知识** |
|
|
130
|
-
| **禁区防护** | 无 | 无 | 无 | **自动检测 auto-generated 代码,Hook 硬拦截** |
|
|
131
|
-
| **评分制审查** | 无 | 无 | 无 | **100 分制,33 条引擎检查,质量棘轮** |
|
|
132
|
-
| **门禁链** | 无 | 无 | 无 | **6 道门禁:Guard→Syntax→Verify→Commit→Review→Push** |
|
|
133
|
-
| **全自动流水线** | 无 | 无 | 无 | **/auto-work, /auto-bugfix, /parallel-execute** |
|
|
134
|
-
| **知识沉淀** | 无 | 无 | 无 | **自动写 Docs/(功能/Bug/调研)** |
|
|
135
|
-
| **Harness 自演进** | 无 | 无 | 无 | **Agent 出错后自动更新规则** |
|
|
136
|
-
| 多模型支持 | 仅 Anthropic | 仅 OpenAI | **20+ 提供商** | **20+ 提供商(继承 Kode)** |
|
|
137
|
-
| Hook 系统 | 18 种事件 | 无 | 4 种事件 | **18 种事件** |
|
|
138
|
-
| 权限系统 | 规则层叠 | 简单 | 简单 | **规则层叠** |
|
|
139
|
-
| 工具系统 | 43 个工具 | ~10 | 22 个 | **22 通用 + 13 游戏专用 = 35 个工具** |
|
|
140
|
-
|
|
141
|
-
### 核心差异:通用 vs 游戏专用
|
|
95
|
+
## 功能特性
|
|
142
96
|
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
97
|
+
### 基础能力
|
|
98
|
+
- **AI 驱动的助手** — 使用先进的 AI 模型理解并响应你的请求
|
|
99
|
+
- **多模型协同** — 灵活切换和组合使用多个 AI 模型(20+ 提供商),发挥各自优势
|
|
100
|
+
- **代码编辑** — 直接编辑文件,提供智能建议和改进
|
|
101
|
+
- **代码库理解** — 分析项目结构和代码关系
|
|
102
|
+
- **命令执行** — 实时运行 shell 命令并查看结果
|
|
103
|
+
- **交互式界面** — 美观的终端界面,支持语法高亮
|
|
104
|
+
- **工具系统** — 可扩展的架构(22 通用 + 13 游戏专用 = 35 个工具)
|
|
149
105
|
|
|
150
|
-
|
|
106
|
+
### 游戏开发专用
|
|
107
|
+
- **游戏引擎感知** — 自动识别 Unity / UE / Godot / Go 服务器,注入引擎领域知识
|
|
108
|
+
- **完整 Harness 内置** — `/init` 自动释放规则、命令、Hook、记忆模板,开箱即用
|
|
109
|
+
- **门禁链质量管控** — 6 道门禁强制执行代码质量标准(Hook 硬拦截,Agent 无法绕过)
|
|
110
|
+
- **评分制审查** — 100 分制量化审查,33 条引擎检查规则,质量棘轮
|
|
111
|
+
- **全自动流水线** — /auto-work(7 阶段)、/auto-bugfix(5 轮)、/parallel-execute(波次并行)
|
|
112
|
+
- **Harness 自演进** — Agent 出错修复后自动检测并更新规则,防止同类错误再次发生
|
|
113
|
+
- **知识自动沉淀** — 开发成果自动文档化到 Docs/,不丢失项目知识
|
|
114
|
+
|
|
115
|
+
### 工程化能力
|
|
116
|
+
- **三层隔离** — 自动检测 workspace(client + server),workspace 层 + 子项目层各有独立配置
|
|
117
|
+
- **Legacy 兼容** — 自动整合 `.claude/` 和 `.codex/` 已有配置到 `.danya/`,无缝迁移
|
|
118
|
+
- **智能上下文压缩** — 语义分组 + 选择性压缩 + 8 段结构化摘要 + 关键文件自动恢复
|
|
119
|
+
- **Subagent 调度** — 5+ 工具调用自动使用子 Agent,避免主上下文污染
|
|
120
|
+
- **自动初始化** — 首次启动时静默生成 `.danya/` 完整体系,无需手动 /init
|
|
151
121
|
|
|
152
122
|
---
|
|
153
123
|
|
|
@@ -174,36 +144,49 @@ Danya 启动时自动检测项目引擎类型,注入对应的领域知识:
|
|
|
174
144
|
|
|
175
145
|
这意味着 Agent 从**第一行输出**就知道项目的规则,不需要你反复提醒。
|
|
176
146
|
|
|
177
|
-
### 2.
|
|
147
|
+
### 2. 完整 Harness 开箱即用
|
|
148
|
+
|
|
149
|
+
进入项目启动 Danya,自动生成完整的治理体系:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
.danya/
|
|
153
|
+
├── rules/ — 约束规则(constitution、golden-principles、known-pitfalls...)
|
|
154
|
+
├── commands/ — 工作流命令(auto-work、review、fix-harness、verify...)
|
|
155
|
+
├── memory/ — 持久领域知识(架构层级、调用链、配置管线...)
|
|
156
|
+
├── hooks/ — 机械执行脚本(禁区守卫、提交检查、推送闸门、自演进检测...)
|
|
157
|
+
├── settings.json — Hook 注册
|
|
158
|
+
├── gate-chain.json — 门禁链配置
|
|
159
|
+
└── guard-rules.json — 禁区规则
|
|
160
|
+
```
|
|
178
161
|
|
|
179
|
-
|
|
162
|
+
4 套引擎模板内置(Unity、Go Server、Unreal、Godot),根据检测结果自动选择。用户可以自由增删改规则,Danya 不会覆盖用户的自定义内容。
|
|
163
|
+
|
|
164
|
+
### 3. 自动生成代码禁区防护
|
|
180
165
|
|
|
181
166
|
Danya 的 **Gate 0 (Guard)** 在文件编辑前就拦截:
|
|
182
167
|
|
|
183
168
|
```
|
|
184
169
|
Agent 尝试编辑 Config/Gen/XXXConfig.cs
|
|
185
170
|
→ Guard Hook 检测到禁区
|
|
186
|
-
→
|
|
171
|
+
→ 阻断编辑
|
|
187
172
|
→ 告知 Agent:"这是自动生成代码,改 Excel 源文件后重新生成"
|
|
188
173
|
```
|
|
189
174
|
|
|
190
|
-
###
|
|
191
|
-
|
|
192
|
-
通用助手的代码审查只能给出主观的"看起来不错"。Danya 用**量化的评分系统**:
|
|
175
|
+
### 4. 评分制代码审查(不再是 PASS/FAIL)
|
|
193
176
|
|
|
194
177
|
```
|
|
195
178
|
初始分:100
|
|
196
179
|
CRITICAL: -30(任何 CRITICAL = 直接 FAIL)
|
|
197
180
|
HIGH: -10
|
|
198
181
|
MEDIUM: -3
|
|
199
|
-
|
|
182
|
+
通过线:>=80 且无 CRITICAL
|
|
200
183
|
|
|
201
184
|
质量棘轮:分数只升不降,防止"修一个 bug 引入两个新 bug"
|
|
202
185
|
```
|
|
203
186
|
|
|
204
187
|
33 条机械检查自动运行(5 套引擎规则),AI 判断补充架构和逻辑审查。
|
|
205
188
|
|
|
206
|
-
###
|
|
189
|
+
### 5. 全自动开发流水线
|
|
207
190
|
|
|
208
191
|
一条命令完成整个开发周期:
|
|
209
192
|
|
|
@@ -217,8 +200,6 @@ MEDIUM: -3
|
|
|
217
200
|
→ Stage 4: 提交 → <feat>(inventory) add item sorting
|
|
218
201
|
→ Stage 5: 沉淀 → Docs/Version/v1.2/inventory-sorting/summary.md
|
|
219
202
|
→ Stage 6: 自演进 → 更新规则文件
|
|
220
|
-
|
|
221
|
-
═══ AUTO-WORK COMPLETE ═══
|
|
222
203
|
```
|
|
223
204
|
|
|
224
205
|
Bug 修复有专用流水线,**必须先复现才能修**:
|
|
@@ -229,7 +210,35 @@ Bug 修复有专用流水线,**必须先复现才能修**:
|
|
|
229
210
|
→ 复现 → 定位根因 → 修复(最多5轮) → 审查 → 提交 → 经验固化
|
|
230
211
|
```
|
|
231
212
|
|
|
232
|
-
###
|
|
213
|
+
### 6. Harness 自演进
|
|
214
|
+
|
|
215
|
+
Agent 修复错误后,系统自动检测"出错→修复"模式,提示更新规则:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
Agent 编译出错 → 修复 → 编译成功
|
|
219
|
+
→ 系统检测到 error-then-fix 模式
|
|
220
|
+
→ 提示 Agent 运行 /fix-harness
|
|
221
|
+
→ 自动路由到正确的规则文件(constitution / golden-principles / known-pitfalls...)
|
|
222
|
+
→ 添加:错误写法 + 正确写法
|
|
223
|
+
→ 下次不再犯同样的错
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### 7. 三层隔离(Workspace 模式)
|
|
227
|
+
|
|
228
|
+
当项目包含客户端 + 服务器时,Danya 自动识别并创建分层配置:
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
workspace/
|
|
232
|
+
├── .danya/ — 跨项目规则(协议同步、配置表、版本管理)
|
|
233
|
+
├── client/
|
|
234
|
+
│ └── .danya/ — 客户端专属(Unity 规则、C# Hook、UI 架构)
|
|
235
|
+
└── server/
|
|
236
|
+
└── .danya/ — 服务端专属(Go 规则、RPC 约束、ECS 架构)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
单项目(仅客户端或仅服务器)则只用一层。
|
|
240
|
+
|
|
241
|
+
### 8. 多模型支持(国内团队友好)
|
|
233
242
|
|
|
234
243
|
不锁定任何一家 AI 提供商。4 种语义指针让不同任务用不同模型:
|
|
235
244
|
|
|
@@ -243,7 +252,17 @@ pointers:
|
|
|
243
252
|
|
|
244
253
|
内置 3 个预设:`china.yaml`(DeepSeek+千问+智谱)、`international.yaml`(Claude+GPT)、`single-model.yaml`(单模型极简配置)。
|
|
245
254
|
|
|
246
|
-
###
|
|
255
|
+
### 9. 智能上下文压缩
|
|
256
|
+
|
|
257
|
+
长对话不会"失忆"——融合两种压缩策略的最优方案:
|
|
258
|
+
|
|
259
|
+
- **选择性压缩**:只压缩最老的消息,保留最近 4 条原文
|
|
260
|
+
- **语义分组**:工具调用请求和结果配对,不拆散完整交互
|
|
261
|
+
- **8 段结构化摘要**:技术上下文、项目概览、代码变更、调试问题、当前状态、待办任务、用户偏好、关键决策
|
|
262
|
+
- **关键文件自动恢复**:压缩后自动恢复最近访问的 5 个文件
|
|
263
|
+
- **模型智能切换**:优先用 compact 模型压缩,装不下时自动切 main 模型
|
|
264
|
+
|
|
265
|
+
### 10. 知识不丢失
|
|
247
266
|
|
|
248
267
|
游戏项目的知识容易随人员流动丢失。Danya 在每次任务完成后**自动沉淀**:
|
|
249
268
|
|
|
@@ -289,21 +308,23 @@ Edit → Guard → Syntax → Verify → Commit → Review → Push
|
|
|
289
308
|
|
|
290
309
|
- **机械执行(Hook)**:Guard / Syntax / Commit / Push — shell 脚本,Agent 无法绕过
|
|
291
310
|
- **AI 判断(评分)**:Review — 需要理解代码质量,靠评分系统量化
|
|
311
|
+
- **自演进检测(Hook)**:PostToolUse 自动检测 error-then-fix 模式
|
|
292
312
|
|
|
293
313
|
**Push 令牌制**:审查通过才生成 `push-approved` 令牌,push 时检查并消费(一次性使用)。
|
|
294
314
|
|
|
295
315
|
---
|
|
296
316
|
|
|
297
|
-
##
|
|
317
|
+
## 与其他工具的兼容
|
|
298
318
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
| 来源 | 贡献 |
|
|
319
|
+
| 场景 | 行为 |
|
|
302
320
|
|------|------|
|
|
303
|
-
|
|
|
304
|
-
|
|
|
305
|
-
|
|
|
306
|
-
|
|
|
321
|
+
| 项目已有 `.claude/` | 自动整合到 `.danya/`,不丢失自定义内容 |
|
|
322
|
+
| 项目已有 `.codex/` | 同上,自动整合 |
|
|
323
|
+
| `.danya/` 和 `.claude/` 同时存在 | `.danya/` 优先,`.claude/` 中独有的内容整合进来 |
|
|
324
|
+
| 同名文件冲突 | `.danya/` 的保留,`.claude/` 的跳过 |
|
|
325
|
+
| 运行时 | 只读 `.danya/`,不再读 `.claude/` 或 `.codex/` |
|
|
326
|
+
| Claude 模型 | `/init` 生成 `CLAUDE.md` |
|
|
327
|
+
| 其他模型 | `/init` 生成 `AGENTS.md` |
|
|
307
328
|
|
|
308
329
|
---
|
|
309
330
|
|
|
@@ -324,25 +345,22 @@ Edit → Guard → Syntax → Verify → Commit → Review → Push
|
|
|
324
345
|
|
|
325
346
|
```
|
|
326
347
|
~/.danya/config.json — 全局配置(API Key、模型配置)
|
|
327
|
-
.danya/
|
|
328
|
-
.
|
|
329
|
-
|
|
330
|
-
|
|
348
|
+
.danya/
|
|
349
|
+
├── settings.json — Hook 注册
|
|
350
|
+
├── gate-chain.json — 门禁链配置
|
|
351
|
+
├── guard-rules.json — 禁区规则
|
|
352
|
+
├── rules/ — 约束规则(可自定义)
|
|
353
|
+
├── commands/ — 工作流命令(可自定义)
|
|
354
|
+
├── memory/ — 持久领域知识
|
|
355
|
+
└── hooks/ — 机械执行脚本
|
|
356
|
+
CLAUDE.md / AGENTS.md — 项目指令
|
|
331
357
|
```
|
|
332
358
|
|
|
333
359
|
---
|
|
334
360
|
|
|
335
|
-
## 文档
|
|
336
|
-
|
|
337
|
-
- [快速开始](docs/getting-started.md)
|
|
338
|
-
- [配置指南](docs/configuration.md)
|
|
339
|
-
- 引擎指南:[Unity](docs/engine-guides/unity.md) | [Unreal](docs/engine-guides/unreal.md) | [Godot](docs/engine-guides/godot.md) | [Go 服务端](docs/engine-guides/go-server.md)
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
361
|
## 学习项目声明
|
|
344
362
|
|
|
345
|
-
Danya 是一个**学习项目**,用于研究 AI Agent
|
|
363
|
+
Danya 是一个**学习项目**,用于研究 AI Agent 在游戏开发中的工程化实践。不用于商业用途。
|
|
346
364
|
|
|
347
365
|
核心价值不在于"又做了一个 Claude Code",而在于回答一个问题:**AI Agent 专门为游戏开发定制后,能比通用助手好多少?**
|
|
348
366
|
|
|
@@ -351,7 +369,9 @@ Danya 是一个**学习项目**,用于研究 AI Agent 在游戏开发中的工
|
|
|
351
369
|
- 通用助手不知道自动生成目录不能碰 → Danya Hook 硬拦截
|
|
352
370
|
- 通用助手的审查是 PASS/FAIL → Danya 是 100 分制量化评分
|
|
353
371
|
- 通用助手不沉淀知识 → Danya 自动写文档到 Docs/
|
|
354
|
-
-
|
|
372
|
+
- 通用助手出错不会自我进化 → Danya 自动更新规则防止重犯
|
|
373
|
+
- 通用助手不懂 workspace 隔离 → Danya 自动识别 client/server 分层配置
|
|
374
|
+
- 将一套经过验证的 Game Harness 融合到 Agent 中,开箱即用
|
|
355
375
|
|
|
356
376
|
**领域专用 > 通用万能。**
|
|
357
377
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
REPL
|
|
5
|
+
} from "./chunk-6LOREEJY.js";
|
|
6
|
+
import "./chunk-X46SRZQF.js";
|
|
7
|
+
import "./chunk-CXOM4XMN.js";
|
|
8
|
+
import "./chunk-IZETEFF5.js";
|
|
9
|
+
import "./chunk-HXH5LYLI.js";
|
|
10
|
+
import "./chunk-UNIJZL2G.js";
|
|
11
|
+
import "./chunk-Z4QNIOFF.js";
|
|
12
|
+
import "./chunk-Y5LQPJWK.js";
|
|
13
|
+
import "./chunk-JVGG2YQR.js";
|
|
14
|
+
import "./chunk-K7QXXI4A.js";
|
|
15
|
+
import "./chunk-U7Z4MXY4.js";
|
|
16
|
+
import "./chunk-X7ZDT7EX.js";
|
|
17
|
+
import "./chunk-3ONZAVOS.js";
|
|
18
|
+
import "./chunk-2CRLMZ76.js";
|
|
19
|
+
import "./chunk-E5BAXZSR.js";
|
|
20
|
+
import "./chunk-HIH5HC5H.js";
|
|
21
|
+
import "./chunk-Y5IRVMDD.js";
|
|
22
|
+
import "./chunk-HPSW7NNI.js";
|
|
23
|
+
import "./chunk-MVN3DHQF.js";
|
|
24
|
+
import "./chunk-5TDBDWNG.js";
|
|
25
|
+
import "./chunk-XEYEKVFT.js";
|
|
26
|
+
import "./chunk-X36NKBPR.js";
|
|
27
|
+
import "./chunk-WAY3DKFO.js";
|
|
28
|
+
import "./chunk-2VQWLLDU.js";
|
|
29
|
+
import "./chunk-YUJ45IMI.js";
|
|
30
|
+
import "./chunk-RRPXM25U.js";
|
|
31
|
+
import "./chunk-LHNX67NO.js";
|
|
32
|
+
import "./chunk-DZCV2FEW.js";
|
|
33
|
+
import "./chunk-6JHEJQWY.js";
|
|
34
|
+
import "./chunk-HIIHGKXP.js";
|
|
35
|
+
import "./chunk-NMNFFCQ7.js";
|
|
36
|
+
import "./chunk-3A4ENL7W.js";
|
|
37
|
+
import "./chunk-5M3MBCE7.js";
|
|
38
|
+
import "./chunk-LWXT5RGE.js";
|
|
39
|
+
import "./chunk-M3TKNAUR.js";
|
|
40
|
+
export {
|
|
41
|
+
REPL
|
|
42
|
+
};
|
|
@@ -6,60 +6,60 @@ import {
|
|
|
6
6
|
} from "./chunk-PDSAJX7G.js";
|
|
7
7
|
import {
|
|
8
8
|
getTools
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XLA6ANZN.js";
|
|
10
10
|
import {
|
|
11
11
|
getCommands,
|
|
12
12
|
getSystemPrompt,
|
|
13
13
|
grantReadPermissionForOriginalDir,
|
|
14
14
|
hasPermissionsToUseTool,
|
|
15
15
|
query
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-6LOREEJY.js";
|
|
17
|
+
import "./chunk-X46SRZQF.js";
|
|
18
18
|
import {
|
|
19
19
|
getClients
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-CXOM4XMN.js";
|
|
21
|
+
import "./chunk-IZETEFF5.js";
|
|
22
|
+
import "./chunk-HXH5LYLI.js";
|
|
23
|
+
import "./chunk-UNIJZL2G.js";
|
|
24
|
+
import "./chunk-Z4QNIOFF.js";
|
|
25
25
|
import "./chunk-Y5LQPJWK.js";
|
|
26
26
|
import "./chunk-JVGG2YQR.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-K7QXXI4A.js";
|
|
28
28
|
import "./chunk-U7Z4MXY4.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-X7ZDT7EX.js";
|
|
30
|
+
import "./chunk-3ONZAVOS.js";
|
|
31
|
+
import "./chunk-2CRLMZ76.js";
|
|
32
|
+
import "./chunk-E5BAXZSR.js";
|
|
33
|
+
import "./chunk-HIH5HC5H.js";
|
|
34
34
|
import {
|
|
35
35
|
loadToolPermissionContextFromDisk,
|
|
36
36
|
persistToolPermissionUpdateToDisk
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-Y5IRVMDD.js";
|
|
38
|
+
import "./chunk-HPSW7NNI.js";
|
|
39
39
|
import {
|
|
40
40
|
applyToolPermissionContextUpdates
|
|
41
41
|
} from "./chunk-MVN3DHQF.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-5TDBDWNG.js";
|
|
43
43
|
import "./chunk-XEYEKVFT.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-X36NKBPR.js";
|
|
45
45
|
import "./chunk-WAY3DKFO.js";
|
|
46
46
|
import "./chunk-2VQWLLDU.js";
|
|
47
47
|
import {
|
|
48
48
|
createAssistantMessage,
|
|
49
49
|
createUserMessage
|
|
50
|
-
} from "./chunk-
|
|
51
|
-
import "./chunk-
|
|
50
|
+
} from "./chunk-YUJ45IMI.js";
|
|
51
|
+
import "./chunk-RRPXM25U.js";
|
|
52
52
|
import {
|
|
53
53
|
getContext
|
|
54
|
-
} from "./chunk-
|
|
55
|
-
import "./chunk-
|
|
54
|
+
} from "./chunk-LHNX67NO.js";
|
|
55
|
+
import "./chunk-DZCV2FEW.js";
|
|
56
56
|
import {
|
|
57
57
|
enableConfigs
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-6JHEJQWY.js";
|
|
59
59
|
import "./chunk-HIIHGKXP.js";
|
|
60
60
|
import {
|
|
61
61
|
initDebugLogger
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-NMNFFCQ7.js";
|
|
63
63
|
import {
|
|
64
64
|
PRODUCT_COMMAND,
|
|
65
65
|
getKodeBaseDir,
|
|
@@ -72,11 +72,11 @@ import {
|
|
|
72
72
|
logError,
|
|
73
73
|
setCwd,
|
|
74
74
|
setOriginalCwd
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-3A4ENL7W.js";
|
|
76
76
|
import {
|
|
77
77
|
MACRO,
|
|
78
78
|
init_macros
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-5M3MBCE7.js";
|
|
80
80
|
import "./chunk-LWXT5RGE.js";
|
|
81
81
|
import "./chunk-M3TKNAUR.js";
|
|
82
82
|
|
|
@@ -2,12 +2,12 @@ import { createRequire as __kodeCreateRequire } from "node:module";
|
|
|
2
2
|
const require = __kodeCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
getModelManager
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-RRPXM25U.js";
|
|
6
|
+
import "./chunk-6JHEJQWY.js";
|
|
7
7
|
import "./chunk-HIIHGKXP.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-NMNFFCQ7.js";
|
|
9
|
+
import "./chunk-3A4ENL7W.js";
|
|
10
|
+
import "./chunk-5M3MBCE7.js";
|
|
11
11
|
import "./chunk-M3TKNAUR.js";
|
|
12
12
|
|
|
13
13
|
// src/entrypoints/cli/agentsValidate.ts
|
|
@@ -344,8 +344,8 @@ async function validateAgentTemplates(args) {
|
|
|
344
344
|
let knownToolNames;
|
|
345
345
|
if (args.checkTools) {
|
|
346
346
|
try {
|
|
347
|
-
const { getTools } = await import("./tools-
|
|
348
|
-
const { getCurrentProjectConfig } = await import("./config-
|
|
347
|
+
const { getTools } = await import("./tools-2J2DNXWI.js");
|
|
348
|
+
const { getCurrentProjectConfig } = await import("./config-5L37WETO.js");
|
|
349
349
|
const allTools = await getTools(getCurrentProjectConfig().enableArchitectTool);
|
|
350
350
|
knownToolNames = new Set(allTools.map((t) => t.name));
|
|
351
351
|
} catch {
|
|
@@ -3,51 +3,51 @@ const require = __kodeCreateRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
getSystemPrompt,
|
|
5
5
|
query
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-6LOREEJY.js";
|
|
7
|
+
import "./chunk-X46SRZQF.js";
|
|
8
|
+
import "./chunk-CXOM4XMN.js";
|
|
9
|
+
import "./chunk-IZETEFF5.js";
|
|
10
|
+
import "./chunk-HXH5LYLI.js";
|
|
11
|
+
import "./chunk-UNIJZL2G.js";
|
|
12
|
+
import "./chunk-Z4QNIOFF.js";
|
|
13
13
|
import "./chunk-Y5LQPJWK.js";
|
|
14
14
|
import "./chunk-JVGG2YQR.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-K7QXXI4A.js";
|
|
16
16
|
import "./chunk-U7Z4MXY4.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-X7ZDT7EX.js";
|
|
18
|
+
import "./chunk-3ONZAVOS.js";
|
|
19
|
+
import "./chunk-2CRLMZ76.js";
|
|
20
|
+
import "./chunk-E5BAXZSR.js";
|
|
21
|
+
import "./chunk-HIH5HC5H.js";
|
|
22
|
+
import "./chunk-Y5IRVMDD.js";
|
|
23
|
+
import "./chunk-HPSW7NNI.js";
|
|
24
24
|
import "./chunk-MVN3DHQF.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-5TDBDWNG.js";
|
|
26
26
|
import "./chunk-XEYEKVFT.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-X36NKBPR.js";
|
|
28
28
|
import "./chunk-WAY3DKFO.js";
|
|
29
29
|
import "./chunk-2VQWLLDU.js";
|
|
30
30
|
import {
|
|
31
31
|
createUserMessage
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YUJ45IMI.js";
|
|
33
33
|
import {
|
|
34
34
|
getModelManager
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-RRPXM25U.js";
|
|
36
36
|
import {
|
|
37
37
|
getContext
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
38
|
+
} from "./chunk-LHNX67NO.js";
|
|
39
|
+
import "./chunk-DZCV2FEW.js";
|
|
40
|
+
import "./chunk-6JHEJQWY.js";
|
|
41
41
|
import "./chunk-HIIHGKXP.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-NMNFFCQ7.js";
|
|
43
43
|
import {
|
|
44
44
|
getMessagesPath,
|
|
45
45
|
init_log,
|
|
46
46
|
init_state,
|
|
47
47
|
overwriteLog,
|
|
48
48
|
setCwd
|
|
49
|
-
} from "./chunk-
|
|
50
|
-
import "./chunk-
|
|
49
|
+
} from "./chunk-3A4ENL7W.js";
|
|
50
|
+
import "./chunk-5M3MBCE7.js";
|
|
51
51
|
import {
|
|
52
52
|
getTotalCost
|
|
53
53
|
} from "./chunk-LWXT5RGE.js";
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
checkAndNotifyUpdate,
|
|
6
6
|
getLatestVersion,
|
|
7
7
|
getUpdateCommandSuggestions
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-TWE6H65Q.js";
|
|
9
|
+
import "./chunk-3A4ENL7W.js";
|
|
10
|
+
import "./chunk-5M3MBCE7.js";
|
|
11
11
|
import "./chunk-M3TKNAUR.js";
|
|
12
12
|
export {
|
|
13
13
|
assertMinVersion,
|
|
@@ -3,7 +3,7 @@ const require = __kodeCreateRequire(import.meta.url);
|
|
|
3
3
|
|
|
4
4
|
// src/services/ai/llmLazy.ts
|
|
5
5
|
async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal, options) {
|
|
6
|
-
const { queryLLM: inner } = await import("./llm-
|
|
6
|
+
const { queryLLM: inner } = await import("./llm-23Z6UDED.js");
|
|
7
7
|
return inner(
|
|
8
8
|
messages,
|
|
9
9
|
systemPrompt,
|
|
@@ -14,15 +14,15 @@ async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal
|
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
16
|
async function queryQuick(args) {
|
|
17
|
-
const { queryQuick: inner } = await import("./llm-
|
|
17
|
+
const { queryQuick: inner } = await import("./llm-23Z6UDED.js");
|
|
18
18
|
return inner(args);
|
|
19
19
|
}
|
|
20
20
|
async function verifyApiKey(apiKey, baseURL, provider) {
|
|
21
|
-
const { verifyApiKey: inner } = await import("./llm-
|
|
21
|
+
const { verifyApiKey: inner } = await import("./llm-23Z6UDED.js");
|
|
22
22
|
return inner(apiKey, baseURL, provider);
|
|
23
23
|
}
|
|
24
24
|
async function fetchAnthropicModels(apiKey, baseURL) {
|
|
25
|
-
const { fetchAnthropicModels: inner } = await import("./llm-
|
|
25
|
+
const { fetchAnthropicModels: inner } = await import("./llm-23Z6UDED.js");
|
|
26
26
|
return inner(apiKey, baseURL);
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
} from "./chunk-XEYEKVFT.js";
|
|
7
7
|
import {
|
|
8
8
|
getGlobalConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6JHEJQWY.js";
|
|
10
10
|
import {
|
|
11
11
|
debug,
|
|
12
12
|
getCurrentRequest,
|
|
13
13
|
logAPIError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-NMNFFCQ7.js";
|
|
15
15
|
|
|
16
16
|
// src/services/ai/openai.ts
|
|
17
17
|
var ProxyAgent = class {
|