feihong-code 7.0.0 → 7.5.0

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 (149) hide show
  1. package/.github/workflows/ci.yml +180 -140
  2. package/.github/workflows/release.yml +200 -0
  3. package/CHANGELOG.md +94 -65
  4. package/README.md +609 -586
  5. package/dist/agent/browser-agent.js +354 -0
  6. package/dist/agent/browser-agent.js.map +1 -0
  7. package/dist/agent/change-manager.js +433 -0
  8. package/dist/agent/change-manager.js.map +1 -0
  9. package/dist/agent/code-rag.js +293 -0
  10. package/dist/agent/code-rag.js.map +1 -0
  11. package/dist/agent/code-writer.js +13 -1
  12. package/dist/agent/code-writer.js.map +1 -1
  13. package/dist/agent/completion-engine.js +553 -0
  14. package/dist/agent/completion-engine.js.map +1 -0
  15. package/dist/agent/completion-postprocess.js +109 -0
  16. package/dist/agent/completion-postprocess.js.map +1 -0
  17. package/dist/agent/context-budget.js +121 -0
  18. package/dist/agent/context-budget.js.map +1 -0
  19. package/dist/agent/context-compactor.js +235 -10
  20. package/dist/agent/context-compactor.js.map +1 -1
  21. package/dist/agent/custom-agent.js +368 -0
  22. package/dist/agent/custom-agent.js.map +1 -0
  23. package/dist/agent/design-to-code.js +218 -0
  24. package/dist/agent/design-to-code.js.map +1 -0
  25. package/dist/agent/event-driven-agent.js +359 -0
  26. package/dist/agent/event-driven-agent.js.map +1 -0
  27. package/dist/agent/git-integration.js +324 -0
  28. package/dist/agent/git-integration.js.map +1 -0
  29. package/dist/agent/layered-memory.js +329 -0
  30. package/dist/agent/layered-memory.js.map +1 -0
  31. package/dist/agent/lint.js +121 -0
  32. package/dist/agent/lint.js.map +1 -0
  33. package/dist/agent/multi-agent.js +359 -0
  34. package/dist/agent/multi-agent.js.map +1 -0
  35. package/dist/agent/orchestrator.js +136 -25
  36. package/dist/agent/orchestrator.js.map +1 -1
  37. package/dist/agent/prompts.js +54 -54
  38. package/dist/agent/quality-gate.js +139 -0
  39. package/dist/agent/quality-gate.js.map +1 -1
  40. package/dist/agent/self-correction.js +274 -0
  41. package/dist/agent/self-correction.js.map +1 -0
  42. package/dist/agent/self-heal.js +47 -17
  43. package/dist/agent/self-heal.js.map +1 -1
  44. package/dist/agent/solo-agent.js +321 -0
  45. package/dist/agent/solo-agent.js.map +1 -0
  46. package/dist/agent/symbol-index.js +258 -28
  47. package/dist/agent/symbol-index.js.map +1 -1
  48. package/dist/agent/team-collaboration.js +252 -0
  49. package/dist/agent/team-collaboration.js.map +1 -0
  50. package/dist/agent/type-checker.js +229 -0
  51. package/dist/agent/type-checker.js.map +1 -0
  52. package/dist/cli/commands.js +9 -0
  53. package/dist/cli/commands.js.map +1 -1
  54. package/dist/cli/index.js +9 -0
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/multi-pane-tui.js +217 -0
  57. package/dist/cli/multi-pane-tui.js.map +1 -0
  58. package/dist/cli/run.js +130 -40
  59. package/dist/cli/run.js.map +1 -1
  60. package/dist/cli/tui-run.js +79 -0
  61. package/dist/cli/tui-run.js.map +1 -0
  62. package/dist/cli/tui.js.map +1 -1
  63. package/dist/cli/version.js +1 -1
  64. package/dist/integrations/collaboration.js +219 -0
  65. package/dist/integrations/collaboration.js.map +1 -0
  66. package/dist/integrations/figma.js +307 -0
  67. package/dist/integrations/figma.js.map +1 -0
  68. package/dist/integrations/sso.js +327 -0
  69. package/dist/integrations/sso.js.map +1 -0
  70. package/dist/knowledge/library.js +301 -0
  71. package/dist/knowledge/library.js.map +1 -0
  72. package/dist/lsp/lsp-client.js +183 -0
  73. package/dist/lsp/lsp-client.js.map +1 -0
  74. package/dist/lsp/lsp-service.js +159 -0
  75. package/dist/lsp/lsp-service.js.map +1 -0
  76. package/dist/plugins/manager.js +380 -0
  77. package/dist/plugins/manager.js.map +1 -0
  78. package/dist/runtime/event-log.js.map +1 -1
  79. package/dist/shared/i18n.js +108 -100
  80. package/dist/shared/i18n.js.map +1 -1
  81. package/dist/tools/browser/browser.tool.js +217 -0
  82. package/dist/tools/browser/browser.tool.js.map +1 -0
  83. package/dist/tools/generator/code-generator.js +40 -40
  84. package/dist/tools/generator/test-generator.js +9 -9
  85. package/dist/tools/index.js +2 -0
  86. package/dist/tools/index.js.map +1 -1
  87. package/dist/tools/shell/exec.js +73 -11
  88. package/dist/tools/shell/exec.js.map +1 -1
  89. package/dist/tools/shell/run-shell.tool.js +8 -2
  90. package/dist/tools/shell/run-shell.tool.js.map +1 -1
  91. package/dist/training/completion-evaluator.js +213 -0
  92. package/dist/training/completion-evaluator.js.map +1 -0
  93. package/dist/training/fim-data.js +248 -0
  94. package/dist/training/fim-data.js.map +1 -0
  95. package/dist/voice/voice-programming.js +223 -0
  96. package/dist/voice/voice-programming.js.map +1 -0
  97. package/dist/web/extra-apis.js +440 -0
  98. package/dist/web/extra-apis.js.map +1 -0
  99. package/dist/web/public/css/style.css +1729 -1671
  100. package/dist/web/public/index.html +1242 -990
  101. package/dist/web/public/js/api.js +555 -382
  102. package/dist/web/public/js/app.js +2210 -2210
  103. package/dist/web/public/js/mock-api.js +234 -0
  104. package/dist/web/public/js/monaco-editor.js +363 -0
  105. package/dist/web/public/js/ui.js +2251 -1059
  106. package/dist/web/public/js/utils.js +214 -214
  107. package/dist/web/public/manifest.json +59 -0
  108. package/dist/web/public/service-worker.js +173 -0
  109. package/dist/web/server.js +1116 -45
  110. package/dist/web/server.js.map +1 -1
  111. package/dist/web/task-queue.js +22 -2
  112. package/dist/web/task-queue.js.map +1 -1
  113. package/docs/BENCHMARK_REPORT_en.md +386 -329
  114. package/docs/BENCHMARK_REPORT_zh.md +386 -329
  115. package/docs/DPA.md +63 -0
  116. package/docs/DPA/346/225/260/346/215/256/345/244/204/347/220/206/345/215/217/350/256/256/346/250/241/346/235/277_v1.0.md +67 -0
  117. package/docs/SECURITY_WHITEPAPER.md +74 -0
  118. package/docs/SWE_BENCH_REPORT.md +55 -0
  119. package/docs/TECHNICAL_SPEC_en.md +292 -292
  120. package/docs/TECHNICAL_SPEC_zh.md +292 -292
  121. package/docs/UPDATE_NOTES_en.md +159 -159
  122. package/docs/UPDATE_NOTES_zh.md +159 -159
  123. package/docs/UPGRADE_7.2.0.md +309 -0
  124. package/docs/UPGRADE_GUIDE_7_5.md +86 -0
  125. package/docs/geo-feihong-code.html +391 -0
  126. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_50/350/275/256/346/267/261/345/272/246/345/256/241/350/256/241_v7.2.0.md +208 -0
  127. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_6/351/241/271/351/207/215/347/202/271/346/240/270/346/237/245_v7.2.0.md +152 -0
  128. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_/350/277/220/350/241/214/346/227/266/345/256/236/346/265/213/347/211/210_v7.2.0.md +271 -0
  129. package/docs//345/220/210/350/247/204/350/256/244/350/257/201/345/207/206/345/244/207/346/270/205/345/215/225_v7.2.0.md +59 -0
  130. package/docs//345/256/211/345/205/250/347/231/275/347/232/256/344/271/246_v7.2.0.md +82 -0
  131. package/electron/main.js +404 -404
  132. package/package.json +175 -167
  133. package/templates/skills/api-design/SKILL.md +27 -0
  134. package/templates/skills/code-review/SKILL.md +35 -0
  135. package/templates/skills/dependency-upgrade/SKILL.md +29 -0
  136. package/templates/skills/doc-gen/SKILL.md +29 -0
  137. package/templates/skills/git-flow/SKILL.md +26 -0
  138. package/templates/skills/onboarding/SKILL.md +27 -0
  139. package/templates/skills/performance/SKILL.md +29 -0
  140. package/templates/skills/refactor/SKILL.md +28 -0
  141. package/templates/skills/security-audit/SKILL.md +28 -0
  142. package/templates/skills/test-gen/SKILL.md +30 -0
  143. package/tool-schema.json +197 -197
  144. package/dist/hello.js +0 -14
  145. package/dist/hello.js.map +0 -1
  146. package/dist/self-evolve/hook.ts +0 -80
  147. package/dist/self-evolve/manager.d.ts +0 -8
  148. package/dist/web/web-config.js +0 -143
  149. package/dist/web/web-config.js.map +0 -1
package/tool-schema.json CHANGED
@@ -1,198 +1,198 @@
1
- {
2
- "name": "feihong-code",
3
- "version": "7.0.0",
4
- "description": "Terminal AI Coding Agent 鈥?缁堢 AI 缂栫▼鏅鸿兘浣?,
5
- "tools": [
6
- {
7
- "name": "write_file",
8
- "description": "鍐欏叆鎴栬鐩栨枃浠跺唴瀹广€傚鏋滄枃浠朵笉瀛樺湪鍒欏垱寤猴紝濡傛灉宸插瓨鍦ㄥ垯瀹屽叏鏇挎崲銆?,
9
- "parameters": {
10
- "type": "object",
11
- "properties": {
12
- "path": {
13
- "type": "string",
14
- "description": "鏂囦欢鐩稿璺緞锛堢浉瀵逛簬宸ヤ綔鍖烘牴鐩綍锛?
15
- },
16
- "content": {
17
- "type": "string",
18
- "description": "鏂囦欢鐨勫畬鏁村唴瀹?
19
- }
20
- },
21
- "required": [
22
- "path",
23
- "content"
24
- ],
25
- "additionalProperties": false
26
- },
27
- "example": {
28
- "path": "src/main.ts",
29
- "content": "export function hello() { return 'world'; }"
30
- }
31
- },
32
- {
33
- "name": "edit_file",
34
- "description": "鍦ㄦ枃浠朵腑鎻掑叆銆佸垹闄ゆ垨鏇挎崲鏂囨湰鍧椼€備娇鐢?oldText/newText 绮剧‘鍖归厤銆?,
35
- "parameters": {
36
- "type": "object",
37
- "properties": {
38
- "path": {
39
- "type": "string",
40
- "description": "鐩爣鏂囦欢璺緞"
41
- },
42
- "oldText": {
43
- "type": "string",
44
- "description": "寰呮浛鎹㈢殑鍘熸枃鏈紙蹇呴』鍞竴瀛樺湪浜庢枃浠朵腑锛?
45
- },
46
- "newText": {
47
- "type": "string",
48
- "description": "鏇挎崲鍚庣殑鏂版枃鏈?
49
- }
50
- },
51
- "required": [
52
- "path",
53
- "oldText",
54
- "newText"
55
- ],
56
- "additionalProperties": false
57
- },
58
- "example": {
59
- "path": "src/calc.ts",
60
- "oldText": "return a - b;",
61
- "newText": "return a + b;"
62
- }
63
- },
64
- {
65
- "name": "read_file",
66
- "description": "璇诲彇鏂囦欢鐨勫叏閮ㄥ唴瀹广€?,
67
- "parameters": {
68
- "type": "object",
69
- "properties": {
70
- "path": {
71
- "type": "string",
72
- "description": "鏂囦欢鐩稿璺緞"
73
- }
74
- },
75
- "required": [
76
- "path"
77
- ],
78
- "additionalProperties": false
79
- },
80
- "example": {
81
- "path": "package.json"
82
- }
83
- },
84
- {
85
- "name": "list_files",
86
- "description": "鍒楀嚭鐩綍涓嬬殑鏂囦欢鍜屽瓙鐩綍銆?,
87
- "parameters": {
88
- "type": "object",
89
- "properties": {
90
- "path": {
91
- "type": "string",
92
- "description": "鐩綍璺緞锛岄粯璁や负 '.'锛堝伐浣滃尯鏍癸級"
93
- }
94
- },
95
- "additionalProperties": false
96
- },
97
- "example": {
98
- "path": "src/"
99
- }
100
- },
101
- {
102
- "name": "grep",
103
- "description": "浣跨敤姝e垯琛ㄨ揪寮忓湪椤圭洰涓悳绱㈡枃鏈€?,
104
- "parameters": {
105
- "type": "object",
106
- "properties": {
107
- "pattern": {
108
- "type": "string",
109
- "description": "姝e垯琛ㄨ揪寮忔ā寮?
110
- },
111
- "path": {
112
- "type": "string",
113
- "description": "鎼滅储璧峰鐩綍锛岄粯璁や负宸ヤ綔鍖烘牴"
114
- }
115
- },
116
- "required": [
117
- "pattern"
118
- ],
119
- "additionalProperties": false
120
- },
121
- "example": {
122
- "pattern": "class.*Error",
123
- "path": "src/"
124
- }
125
- },
126
- {
127
- "name": "run_shell",
128
- "description": "鍦ㄥ伐浣滃尯鍐呮墽琛?shell 鍛戒护銆傚懡浠ら渶閫氳繃鐧藉悕鍗曢獙璇併€?,
129
- "parameters": {
130
- "type": "object",
131
- "properties": {
132
- "command": {
133
- "type": "string",
134
- "description": "瑕佹墽琛岀殑瀹屾暣鍛戒护锛堝 'npm test'銆?node index.js'锛?
135
- }
136
- },
137
- "required": [
138
- "command"
139
- ],
140
- "additionalProperties": false
141
- },
142
- "example": {
143
- "command": "npm run typecheck"
144
- }
145
- },
146
- {
147
- "name": "build_check",
148
- "description": "妫€鏌ラ」鐩槸鍚﹁兘鎴愬姛缂栬瘧锛堣繍琛?tsc --noEmit锛夈€?,
149
- "parameters": {
150
- "type": "object",
151
- "properties": {},
152
- "additionalProperties": false
153
- },
154
- "example": {}
155
- },
156
- {
157
- "name": "run_tests",
158
- "description": "杩愯娴嬭瘯濂椾欢骞惰繑鍥炵粨鏋溿€?,
159
- "parameters": {
160
- "type": "object",
161
- "properties": {},
162
- "additionalProperties": false
163
- },
164
- "example": {}
165
- }
166
- ],
167
- "toolCategories": {
168
- "file": [
169
- "write_file",
170
- "edit_file",
171
- "read_file",
172
- "list_files"
173
- ],
174
- "search": [
175
- "grep"
176
- ],
177
- "shell": [
178
- "run_shell"
179
- ],
180
- "verify": [
181
- "build_check",
182
- "run_tests"
183
- ]
184
- },
185
- "security": {
186
- "sandbox": "鎵€鏈夋枃浠舵搷浣滈檺鍒跺湪宸ヤ綔鍖虹洰褰曞唴",
187
- "approval": "鍗遍櫓鎿嶄綔锛坰hell 鍛戒护銆佸啓鍏ユ晱鎰熸枃浠讹級鍙兘闇€瑕佷汉宸ュ鎵?,
188
- "audit": "鎵€鏈夊伐鍏疯皟鐢ㄨ褰曞埌 JSONL 浜嬩欢鏃ュ織"
189
- },
190
- "errorCodes": {
191
- "FH_4001": "閰嶉瓒呴檺 鈥?鏃ラ绠楀凡鑰楀敖锛岀瓑寰呮鏃ラ噸缃垨鐢宠閰嶉",
192
- "FH_4003": "鏉冮檺鎷掔粷 鈥?褰撳墠瑙掕壊鏃犳潈鎵ц姝ゆ搷浣滐紝妫€鏌?RBAC 绛栫暐",
193
- "FH_5001": "妯″瀷璋冪敤澶辫触 鈥?缃戠粶闂鎴?API Key 鏃犳晥锛屾鏌?provider 閰嶇疆",
194
- "FH_5002": "涓婁笅鏂囧帇缂╁け璐?鈥?瀵硅瘽杩囬暱锛屽皾璇曚娇鐢?/plan 閲嶆柊瑙勫垝",
195
- "FH_6001": "鏂囦欢璺緞瓒婃潈 鈥?璺緞鍖呭惈 '..' 鎴栫鍙烽摼鎺ワ紝妫€鏌ユ矙绠辫鍒?
196
- },
197
- "authoredBy": "鏅嬫睙甯傞铏规櫤绉戞妧浼佷笟绠$悊鏈夐檺鍏徃 路 椋炴壃浼佹簮鐮斿彂涓績 路 璐熻矗浜猴細鍚磋祼铏?
1
+ {
2
+ "name": "feihong-code",
3
+ "version": "7.0.0",
4
+ "description": "Terminal AI Coding Agent 鈥?缁堢 AI 缂栫▼鏅鸿兘浣?,
5
+ "tools": [
6
+ {
7
+ "name": "write_file",
8
+ "description": "鍐欏叆鎴栬鐩栨枃浠跺唴瀹广€傚鏋滄枃浠朵笉瀛樺湪鍒欏垱寤猴紝濡傛灉宸插瓨鍦ㄥ垯瀹屽叏鏇挎崲銆?,
9
+ "parameters": {
10
+ "type": "object",
11
+ "properties": {
12
+ "path": {
13
+ "type": "string",
14
+ "description": "鏂囦欢鐩稿璺緞锛堢浉瀵逛簬宸ヤ綔鍖烘牴鐩綍锛?
15
+ },
16
+ "content": {
17
+ "type": "string",
18
+ "description": "鏂囦欢鐨勫畬鏁村唴瀹?
19
+ }
20
+ },
21
+ "required": [
22
+ "path",
23
+ "content"
24
+ ],
25
+ "additionalProperties": false
26
+ },
27
+ "example": {
28
+ "path": "src/main.ts",
29
+ "content": "export function hello() { return 'world'; }"
30
+ }
31
+ },
32
+ {
33
+ "name": "edit_file",
34
+ "description": "鍦ㄦ枃浠朵腑鎻掑叆銆佸垹闄ゆ垨鏇挎崲鏂囨湰鍧椼€備娇鐢?oldText/newText 绮剧‘鍖归厤銆?,
35
+ "parameters": {
36
+ "type": "object",
37
+ "properties": {
38
+ "path": {
39
+ "type": "string",
40
+ "description": "鐩爣鏂囦欢璺緞"
41
+ },
42
+ "oldText": {
43
+ "type": "string",
44
+ "description": "寰呮浛鎹㈢殑鍘熸枃鏈紙蹇呴』鍞竴瀛樺湪浜庢枃浠朵腑锛?
45
+ },
46
+ "newText": {
47
+ "type": "string",
48
+ "description": "鏇挎崲鍚庣殑鏂版枃鏈?
49
+ }
50
+ },
51
+ "required": [
52
+ "path",
53
+ "oldText",
54
+ "newText"
55
+ ],
56
+ "additionalProperties": false
57
+ },
58
+ "example": {
59
+ "path": "src/calc.ts",
60
+ "oldText": "return a - b;",
61
+ "newText": "return a + b;"
62
+ }
63
+ },
64
+ {
65
+ "name": "read_file",
66
+ "description": "璇诲彇鏂囦欢鐨勫叏閮ㄥ唴瀹广€?,
67
+ "parameters": {
68
+ "type": "object",
69
+ "properties": {
70
+ "path": {
71
+ "type": "string",
72
+ "description": "鏂囦欢鐩稿璺緞"
73
+ }
74
+ },
75
+ "required": [
76
+ "path"
77
+ ],
78
+ "additionalProperties": false
79
+ },
80
+ "example": {
81
+ "path": "package.json"
82
+ }
83
+ },
84
+ {
85
+ "name": "list_files",
86
+ "description": "鍒楀嚭鐩綍涓嬬殑鏂囦欢鍜屽瓙鐩綍銆?,
87
+ "parameters": {
88
+ "type": "object",
89
+ "properties": {
90
+ "path": {
91
+ "type": "string",
92
+ "description": "鐩綍璺緞锛岄粯璁や负 '.'锛堝伐浣滃尯鏍癸級"
93
+ }
94
+ },
95
+ "additionalProperties": false
96
+ },
97
+ "example": {
98
+ "path": "src/"
99
+ }
100
+ },
101
+ {
102
+ "name": "grep",
103
+ "description": "浣跨敤姝e垯琛ㄨ揪寮忓湪椤圭洰涓悳绱㈡枃鏈€?,
104
+ "parameters": {
105
+ "type": "object",
106
+ "properties": {
107
+ "pattern": {
108
+ "type": "string",
109
+ "description": "姝e垯琛ㄨ揪寮忔ā寮?
110
+ },
111
+ "path": {
112
+ "type": "string",
113
+ "description": "鎼滅储璧峰鐩綍锛岄粯璁や负宸ヤ綔鍖烘牴"
114
+ }
115
+ },
116
+ "required": [
117
+ "pattern"
118
+ ],
119
+ "additionalProperties": false
120
+ },
121
+ "example": {
122
+ "pattern": "class.*Error",
123
+ "path": "src/"
124
+ }
125
+ },
126
+ {
127
+ "name": "run_shell",
128
+ "description": "鍦ㄥ伐浣滃尯鍐呮墽琛?shell 鍛戒护銆傚懡浠ら渶閫氳繃鐧藉悕鍗曢獙璇併€?,
129
+ "parameters": {
130
+ "type": "object",
131
+ "properties": {
132
+ "command": {
133
+ "type": "string",
134
+ "description": "瑕佹墽琛岀殑瀹屾暣鍛戒护锛堝 'npm test'銆?node index.js'锛?
135
+ }
136
+ },
137
+ "required": [
138
+ "command"
139
+ ],
140
+ "additionalProperties": false
141
+ },
142
+ "example": {
143
+ "command": "npm run typecheck"
144
+ }
145
+ },
146
+ {
147
+ "name": "build_check",
148
+ "description": "妫€鏌ラ」鐩槸鍚﹁兘鎴愬姛缂栬瘧锛堣繍琛?tsc --noEmit锛夈€?,
149
+ "parameters": {
150
+ "type": "object",
151
+ "properties": {},
152
+ "additionalProperties": false
153
+ },
154
+ "example": {}
155
+ },
156
+ {
157
+ "name": "run_tests",
158
+ "description": "杩愯娴嬭瘯濂椾欢骞惰繑鍥炵粨鏋溿€?,
159
+ "parameters": {
160
+ "type": "object",
161
+ "properties": {},
162
+ "additionalProperties": false
163
+ },
164
+ "example": {}
165
+ }
166
+ ],
167
+ "toolCategories": {
168
+ "file": [
169
+ "write_file",
170
+ "edit_file",
171
+ "read_file",
172
+ "list_files"
173
+ ],
174
+ "search": [
175
+ "grep"
176
+ ],
177
+ "shell": [
178
+ "run_shell"
179
+ ],
180
+ "verify": [
181
+ "build_check",
182
+ "run_tests"
183
+ ]
184
+ },
185
+ "security": {
186
+ "sandbox": "鎵€鏈夋枃浠舵搷浣滈檺鍒跺湪宸ヤ綔鍖虹洰褰曞唴",
187
+ "approval": "鍗遍櫓鎿嶄綔锛坰hell 鍛戒护銆佸啓鍏ユ晱鎰熸枃浠讹級鍙兘闇€瑕佷汉宸ュ鎵?,
188
+ "audit": "鎵€鏈夊伐鍏疯皟鐢ㄨ褰曞埌 JSONL 浜嬩欢鏃ュ織"
189
+ },
190
+ "errorCodes": {
191
+ "FH_4001": "閰嶉瓒呴檺 鈥?鏃ラ绠楀凡鑰楀敖锛岀瓑寰呮鏃ラ噸缃垨鐢宠閰嶉",
192
+ "FH_4003": "鏉冮檺鎷掔粷 鈥?褰撳墠瑙掕壊鏃犳潈鎵ц姝ゆ搷浣滐紝妫€鏌?RBAC 绛栫暐",
193
+ "FH_5001": "妯″瀷璋冪敤澶辫触 鈥?缃戠粶闂鎴?API Key 鏃犳晥锛屾鏌?provider 閰嶇疆",
194
+ "FH_5002": "涓婁笅鏂囧帇缂╁け璐?鈥?瀵硅瘽杩囬暱锛屽皾璇曚娇鐢?/plan 閲嶆柊瑙勫垝",
195
+ "FH_6001": "鏂囦欢璺緞瓒婃潈 鈥?璺緞鍖呭惈 '..' 鎴栫鍙烽摼鎺ワ紝妫€鏌ユ矙绠辫鍒?
196
+ },
197
+ "authoredBy": "鏅嬫睙甯傞铏规櫤绉戞妧浼佷笟绠$悊鏈夐檺鍏徃 路 椋炴壃浼佹簮鐮斿彂涓績 路 璐熻矗浜猴細鍚磋祼铏?
198
198
  }
package/dist/hello.js DELETED
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hello = hello;
4
- /**
5
- * Hello world 示例
6
- */
7
- function hello(name) {
8
- return `Hello, ${name}!`;
9
- }
10
- if (require.main === module) {
11
- const name = process.argv[2] ?? 'World';
12
- console.log(hello(name));
13
- }
14
- //# sourceMappingURL=hello.js.map
package/dist/hello.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"hello.js","sourceRoot":"","sources":["../src/hello.ts"],"names":[],"mappings":";;AAGA,sBAEC;AALD;;GAEG;AACH,SAAgB,KAAK,CAAC,IAAY;IAChC,OAAO,UAAU,IAAI,GAAG,CAAC;AAC3B,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,80 +0,0 @@
1
- import { SelfEvolveManager } from './manager';
2
-
3
- /**
4
- * Hook: 任务完成后自动检查是否需要记录失败
5
- * 集成到工具调用流程中
6
- */
7
- export class SelfEvolveHook {
8
- private manager: SelfEvolveManager;
9
-
10
- constructor() {
11
- this.manager = new SelfEvolveManager();
12
- this.manager.init();
13
- }
14
-
15
- /**
16
- * 在工具调用失败时触发
17
- */
18
- onToolFailure(context: {
19
- tool: string,
20
- input: any,
21
- error: Error | string,
22
- attemptedSolutions?: string[]
23
- }) {
24
- const { tool, input, error, attemptedSolutions } = context;
25
-
26
- console.log(`[自我迭代] 检测到工具 ${tool} 调用失败`);
27
-
28
- const failure = this.manager.recordFailure(
29
- `${tool}: ${JSON.stringify(input).slice(0, 100)}`,
30
- error,
31
- attemptedSolutions || []
32
- );
33
-
34
- // 尝试查找已知解决方案
35
- const solutions = this.manager.searchSolution(failure.error_type, failure.error_message);
36
-
37
- if (solutions.length > 0) {
38
- console.log(`[自我迭代] 找到已知解决方案: ${solutions[0].name}`);
39
- // 这里可以自动应用解决方案
40
- } else {
41
- console.log(`[自我迭代] 新问题,建议创建技能解决`);
42
- }
43
-
44
- return failure;
45
- }
46
-
47
- /**
48
- * 在任务完成时触发
49
- */
50
- onTaskComplete(context: {
51
- success: boolean,
52
- task: string,
53
- error?: Error | string
54
- }) {
55
- if (!context.success && context.error) {
56
- return this.onToolFailure({
57
- tool: 'task',
58
- input: { task: context.task },
59
- error: context.error
60
- });
61
- }
62
- return null;
63
- }
64
-
65
- /**
66
- * 每日自动复盘
67
- */
68
- async dailyReview() {
69
- const report = this.manager.generateDailyReport();
70
-
71
- if (report.pending > 0) {
72
- console.warn(`[自我迭代] 今日仍有 ${report.pending} 个未解决问题`);
73
- }
74
-
75
- return report;
76
- }
77
- }
78
-
79
- // 导出单例
80
- export const selfEvolveHook = new SelfEvolveHook();
@@ -1,8 +0,0 @@
1
- declare class SelfEvolveManager {
2
- init(): void;
3
- recordFailure(errorType: string, error: any, attemptedSolutions?: string[]): any;
4
- searchSolution(errorType: string, errorMessage: string): any[];
5
- generateDailyReport(): any;
6
- }
7
-
8
- export { SelfEvolveManager };
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CAPABILITY_TAGS = void 0;
4
- exports.defaultWebConfig = defaultWebConfig;
5
- exports.getWebConfigPath = getWebConfigPath;
6
- exports.loadWebConfig = loadWebConfig;
7
- exports.saveWebConfig = saveWebConfig;
8
- exports.toProviderConfigs = toProviderConfigs;
9
- /**
10
- * Muse Code 中文开发版 (Muse Code 中文开发版)
11
- * 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
12
- *
13
- * Web 控制台「系统配置」持久化模块:
14
- * - 自定义大模型(openai-compatible / ollama)列表与运行参数
15
- * - 落盘到 <FH_HOME>/web-config.json(原子写:tmp + rename)
16
- * - 读取缺失/损坏时回退默认值,不抛错,便于离线/首启
17
- */
18
- const fs_1 = require("fs");
19
- const path_1 = require("path");
20
- const config_1 = require("../shared/config");
21
- exports.CAPABILITY_TAGS = [
22
- 'code-gen',
23
- 'reasoning',
24
- 'long-context',
25
- 'vision',
26
- 'cheap',
27
- 'local',
28
- ];
29
- const DEFAULT_BASE_URL_OLLAMA = 'http://localhost:11434';
30
- function defaultWebConfig() {
31
- return {
32
- models: {
33
- providers: [],
34
- defaultStrategy: 'cost',
35
- budgetPerTaskUsd: 0.5,
36
- defaultModelId: null,
37
- },
38
- runtime: {
39
- maxConcurrency: 2,
40
- webhookUrl: '',
41
- temperature: 0.2,
42
- maxRetries: 3,
43
- workspaceDir: '',
44
- },
45
- security: {
46
- sandboxMode: 'workspace-write',
47
- requireApproval: true,
48
- },
49
- };
50
- }
51
- function getWebConfigPath() {
52
- return (0, path_1.join)((0, config_1.resolveHomeDir)(), 'web-config.json');
53
- }
54
- /** 读取配置,缺省/损坏回退默认(深合并,保证新增字段始终存在) */
55
- function loadWebConfig() {
56
- const def = defaultWebConfig();
57
- const file = getWebConfigPath();
58
- if (!(0, fs_1.existsSync)(file))
59
- return def;
60
- try {
61
- const raw = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
62
- return mergeConfig(def, raw);
63
- }
64
- catch {
65
- return def;
66
- }
67
- }
68
- /** 深合并用户配置到默认骨架,避免缺字段导致的运行期 undefined */
69
- function mergeConfig(def, raw) {
70
- const models = (raw.models ?? {});
71
- const runtime = (raw.runtime ?? {});
72
- const security = (raw.security ?? {});
73
- const validTags = (arr) => {
74
- if (!Array.isArray(arr))
75
- return [];
76
- return arr.filter((t) => exports.CAPABILITY_TAGS.includes(t));
77
- };
78
- const providers = Array.isArray(models.providers)
79
- ? models.providers
80
- .filter((p) => !!p && typeof p === 'object')
81
- .map((p) => ({
82
- id: String(p.id ?? ''),
83
- name: String(p.name ?? ''),
84
- type: (p.type === 'ollama' ? 'ollama' : 'openai-compatible'),
85
- baseURL: String(p.baseURL ?? ''),
86
- model: String(p.model ?? ''),
87
- apiKey: String(p.apiKey ?? ''),
88
- tags: validTags(p.tags),
89
- costPer1k: Number(p.costPer1k ?? 0) || 0,
90
- enabled: p.enabled !== false,
91
- isDefault: p.isDefault === true,
92
- }))
93
- : [];
94
- return {
95
- models: {
96
- providers,
97
- defaultStrategy: (models.defaultStrategy ?? def.models.defaultStrategy),
98
- budgetPerTaskUsd: Number(models.budgetPerTaskUsd ?? def.models.budgetPerTaskUsd) || 0,
99
- defaultModelId: models.defaultModelId != null ? String(models.defaultModelId) : null,
100
- },
101
- runtime: {
102
- maxConcurrency: clampInt(runtime.maxConcurrency, 1, 16, def.runtime.maxConcurrency),
103
- webhookUrl: String(runtime.webhookUrl ?? ''),
104
- temperature: typeof runtime.temperature === 'number' ? runtime.temperature : def.runtime.temperature,
105
- maxRetries: clampInt(runtime.maxRetries, 0, 10, def.runtime.maxRetries),
106
- workspaceDir: typeof runtime.workspaceDir === 'string' ? runtime.workspaceDir : (def.runtime.workspaceDir ?? ''),
107
- },
108
- security: {
109
- sandboxMode: (security.sandboxMode ?? def.security.sandboxMode),
110
- requireApproval: security.requireApproval !== false,
111
- },
112
- };
113
- }
114
- function clampInt(v, min, max, fallback) {
115
- const n = Number(v);
116
- if (!Number.isFinite(n))
117
- return fallback;
118
- return Math.min(max, Math.max(min, Math.floor(n)));
119
- }
120
- /** 原子落盘(tmp + rename),避免半写损坏 */
121
- function saveWebConfig(cfg) {
122
- const file = getWebConfigPath();
123
- (0, fs_1.mkdirSync)((0, config_1.resolveHomeDir)(), { recursive: true });
124
- const tmp = file + '.tmp';
125
- (0, fs_1.writeFileSync)(tmp, JSON.stringify(cfg, null, 2), 'utf8');
126
- (0, fs_1.renameSync)(tmp, file);
127
- }
128
- /** 将自定义模型规整为 ProviderConfig(供注入 FH_PROVIDERS) */
129
- function toProviderConfigs(cfg) {
130
- return cfg.models.providers
131
- .filter((m) => m.enabled && m.model)
132
- .map((m) => ({
133
- id: m.id || m.model,
134
- type: m.type,
135
- baseURL: m.baseURL ||
136
- (m.type === 'ollama' ? DEFAULT_BASE_URL_OLLAMA : ''),
137
- model: m.model,
138
- apiKey: m.apiKey || undefined,
139
- tags: m.tags.length > 0 ? m.tags : ['code-gen', 'reasoning'],
140
- costPer1k: m.costPer1k || 0,
141
- }));
142
- }
143
- //# sourceMappingURL=web-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-config.js","sourceRoot":"","sources":["../../src/web/web-config.ts"],"names":[],"mappings":"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"}