tianxincode 1.0.2 → 1.0.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.
Files changed (118) hide show
  1. package/README.md +164 -21
  2. package/dist/api/chat.routes.js +14 -8
  3. package/dist/api/chat.routes.js.map +1 -1
  4. package/dist/api/session.routes.js +1 -1
  5. package/dist/api/session.routes.js.map +1 -1
  6. package/dist/cli/commands.js +1 -1
  7. package/dist/cli/commands.js.map +1 -1
  8. package/dist/components/App.d.ts.map +1 -1
  9. package/dist/components/App.js +109 -70
  10. package/dist/components/App.js.map +1 -1
  11. package/dist/modules/ai/ai.service.d.ts.map +1 -1
  12. package/dist/modules/ai/ai.service.js +4 -19
  13. package/dist/modules/ai/ai.service.js.map +1 -1
  14. package/dist/modules/ai/ai.types.d.ts +4 -2
  15. package/dist/modules/ai/ai.types.d.ts.map +1 -1
  16. package/dist/modules/ai/openai.provider.d.ts +2 -124
  17. package/dist/modules/ai/openai.provider.d.ts.map +1 -1
  18. package/dist/modules/ai/openai.provider.js +47 -212
  19. package/dist/modules/ai/openai.provider.js.map +1 -1
  20. package/dist/modules/ai/react/react.parser.d.ts +12 -7
  21. package/dist/modules/ai/react/react.parser.d.ts.map +1 -1
  22. package/dist/modules/ai/react/react.parser.js +170 -83
  23. package/dist/modules/ai/react/react.parser.js.map +1 -1
  24. package/dist/modules/ai/react/react.prompts.d.ts.map +1 -1
  25. package/dist/modules/ai/react/react.prompts.js +23 -33
  26. package/dist/modules/ai/react/react.prompts.js.map +1 -1
  27. package/dist/modules/ai/react/react.types.d.ts +5 -2
  28. package/dist/modules/ai/react/react.types.d.ts.map +1 -1
  29. package/dist/modules/ai/react/react.validator.d.ts +14 -0
  30. package/dist/modules/ai/react/react.validator.d.ts.map +1 -0
  31. package/dist/modules/ai/react/react.validator.js +53 -0
  32. package/dist/modules/ai/react/react.validator.js.map +1 -0
  33. package/dist/modules/ai/react.agent.d.ts +41 -0
  34. package/dist/modules/ai/react.agent.d.ts.map +1 -1
  35. package/dist/modules/ai/react.agent.js +81 -10
  36. package/dist/modules/ai/react.agent.js.map +1 -1
  37. package/dist/modules/ai/summarizer/summarizer.service.d.ts +1 -1
  38. package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -1
  39. package/dist/modules/ai/summarizer/summarizer.service.js +9 -22
  40. package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -1
  41. package/dist/modules/ai/summarizer/summarizer.types.d.ts +1 -1
  42. package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -1
  43. package/dist/modules/db/db.service.js +1 -1
  44. package/dist/modules/db/db.service.js.map +1 -1
  45. package/dist/modules/memory/memory.service.js +1 -1
  46. package/dist/modules/memory/memory.service.js.map +1 -1
  47. package/dist/modules/skill/skill.tool.d.ts.map +1 -1
  48. package/dist/modules/skill/skill.tool.js +1 -0
  49. package/dist/modules/skill/skill.tool.js.map +1 -1
  50. package/dist/modules/skill/skill.txt +20 -2
  51. package/dist/modules/tools/builtin/bash.d.ts.map +1 -1
  52. package/dist/modules/tools/builtin/bash.js +2 -1
  53. package/dist/modules/tools/builtin/bash.js.map +1 -1
  54. package/dist/modules/tools/builtin/bash.txt +30 -42
  55. package/dist/modules/tools/builtin/code_search.d.ts.map +1 -1
  56. package/dist/modules/tools/builtin/code_search.js +1 -0
  57. package/dist/modules/tools/builtin/code_search.js.map +1 -1
  58. package/dist/modules/tools/builtin/code_search.txt +23 -0
  59. package/dist/modules/tools/builtin/edit_file.d.ts.map +1 -1
  60. package/dist/modules/tools/builtin/edit_file.js +44 -8
  61. package/dist/modules/tools/builtin/edit_file.js.map +1 -1
  62. package/dist/modules/tools/builtin/edit_file.txt +56 -5
  63. package/dist/modules/tools/builtin/glob.d.ts.map +1 -1
  64. package/dist/modules/tools/builtin/glob.js +1 -0
  65. package/dist/modules/tools/builtin/glob.js.map +1 -1
  66. package/dist/modules/tools/builtin/glob.txt +23 -0
  67. package/dist/modules/tools/builtin/grep.d.ts.map +1 -1
  68. package/dist/modules/tools/builtin/grep.js +1 -0
  69. package/dist/modules/tools/builtin/grep.js.map +1 -1
  70. package/dist/modules/tools/builtin/grep.txt +25 -0
  71. package/dist/modules/tools/builtin/index.d.ts.map +1 -1
  72. package/dist/modules/tools/builtin/index.js +27 -35
  73. package/dist/modules/tools/builtin/index.js.map +1 -1
  74. package/dist/modules/tools/builtin/lsp.d.ts.map +1 -1
  75. package/dist/modules/tools/builtin/lsp.js +2 -1
  76. package/dist/modules/tools/builtin/lsp.js.map +1 -1
  77. package/dist/modules/tools/builtin/lsp.txt +31 -5
  78. package/dist/modules/tools/builtin/memory.d.ts.map +1 -1
  79. package/dist/modules/tools/builtin/memory.js +1 -0
  80. package/dist/modules/tools/builtin/memory.js.map +1 -1
  81. package/dist/modules/tools/builtin/memory.txt +23 -1
  82. package/dist/modules/tools/builtin/read_file.d.ts.map +1 -1
  83. package/dist/modules/tools/builtin/read_file.js +11 -3
  84. package/dist/modules/tools/builtin/read_file.js.map +1 -1
  85. package/dist/modules/tools/builtin/read_file.txt +25 -2
  86. package/dist/modules/tools/builtin/todo_read.d.ts.map +1 -1
  87. package/dist/modules/tools/builtin/todo_read.js +1 -0
  88. package/dist/modules/tools/builtin/todo_read.js.map +1 -1
  89. package/dist/modules/tools/builtin/todo_read.txt +20 -0
  90. package/dist/modules/tools/builtin/todo_write.d.ts.map +1 -1
  91. package/dist/modules/tools/builtin/todo_write.js +1 -0
  92. package/dist/modules/tools/builtin/todo_write.js.map +1 -1
  93. package/dist/modules/tools/builtin/todo_write.txt +21 -0
  94. package/dist/modules/tools/builtin/web_fetch.d.ts.map +1 -1
  95. package/dist/modules/tools/builtin/web_fetch.js +1 -0
  96. package/dist/modules/tools/builtin/web_fetch.js.map +1 -1
  97. package/dist/modules/tools/builtin/web_fetch.txt +23 -0
  98. package/dist/modules/tools/builtin/web_search.d.ts.map +1 -1
  99. package/dist/modules/tools/builtin/web_search.js +1 -0
  100. package/dist/modules/tools/builtin/web_search.js.map +1 -1
  101. package/dist/modules/tools/builtin/web_search.txt +28 -1
  102. package/dist/modules/tools/builtin/write_file.d.ts.map +1 -1
  103. package/dist/modules/tools/builtin/write_file.js +16 -1
  104. package/dist/modules/tools/builtin/write_file.js.map +1 -1
  105. package/dist/modules/tools/builtin/write_file.txt +50 -1
  106. package/dist/modules/tools/tool.service.d.ts.map +1 -1
  107. package/dist/modules/tools/tool.service.js +3 -0
  108. package/dist/modules/tools/tool.service.js.map +1 -1
  109. package/dist/modules/tools/tool.types.d.ts +1 -0
  110. package/dist/modules/tools/tool.types.d.ts.map +1 -1
  111. package/dist/web/web.service.d.ts.map +1 -1
  112. package/dist/web/web.service.js +8 -5
  113. package/dist/web/web.service.js.map +1 -1
  114. package/package.json +9 -6
  115. package/web/dist/assets/{Layout-Bb76CGAL.js → Layout-Pvn6DBHZ.js} +1 -1
  116. package/web/dist/assets/{index-KTH-myBB.css → index-BnpKQafm.css} +1 -1
  117. package/web/dist/assets/{index-DQRR0ggU.js → index-CEHMSOel.js} +64 -64
  118. package/web/dist/index.html +2 -2
@@ -1,3 +1,4 @@
1
+ ### 工具bash
1
2
  在持久化 shell 会话中执行 bash 命令,支持可选超时,确保正确的处理和安全措施。
2
3
 
3
4
  所有命令默认在 ${directory} 执行。如需在其他目录运行命令,使用 `workdir` 参数。**禁止使用 `cd <目录> && <命令>` 模式**,应该使用 `workdir` 参数代替。
@@ -21,16 +22,16 @@
21
22
  - `command` 参数是必需的
22
23
  - 可选超时时间(毫秒),默认 120000ms(2分钟)
23
24
  - 请用 5-10 个字写清楚命令作用的描述
24
- - 如果输出超过 ${maxLines} 行或 ${maxBytes} 字节,会被截断并保存到文件
25
- - 可以用 Read 的 offset/limit 读取特定部分,或用 Grep 搜索全部内容
25
+ - 如果输出超过 2000 行或 51200 字节,会被截断并保存到文件
26
+ - 可以用 Read 的 offset/limit 读取特定部分,或用 grep 搜索全部内容
26
27
  - **禁止**使用 `head`、`tail` 等命令限制输出
27
28
 
28
29
  **禁止使用 bash 执行以下操作**,请使用专用工具:
29
- - 文件搜索:用 Glob(不用 find 或 ls)
30
- - 内容搜索:用 Grep(不用 grep 或 rg)
31
- - 读取文件:用 Read(不用 cat/head/tail)
32
- - 编辑文件:用 Edit(不用 sed/awk)
33
- - 写入文件:用 Write(不用 echo >/cat <<EOF)
30
+ - 文件搜索:用 glob(不用 find 或 ls)
31
+ - 内容搜索:用 grep(不用 grep 或 rg)
32
+ - 读取文件:用 read_file(不用 cat/head/tail)
33
+ - 编辑文件:用 edit_file(不用 sed/awk)
34
+ - 写入文件:用 write_file(不用 echo >/cat <<EOF)
34
35
  - 输出文本:直接输出(不用 echo/printf)
35
36
 
36
37
  **多命令执行**:
@@ -39,43 +40,30 @@
39
40
  - 不关心前置结果时用 `;` 分隔
40
41
  - **禁止**使用换行符分隔命令(在引号字符串中除外)
41
42
 
42
- ## Git 提交规范
43
-
44
- **何时创建提交**:只有用户明确要求时才创建提交。不确定时先询问。
45
-
46
- **Git 安全协议**:
47
- - 禁止强制推送(push --force)或硬重置
48
- - 禁止跳过 hooks(--no-verify、--no-gpg-sign 等)
49
- - 禁止强制推送到 main/master
50
- - 禁止 `git commit --amend`,**仅当**同时满足以下条件时才可使用:
51
- (1) 用户明确要求,或提交成功但 pre-commit hook 自动修改了文件
52
- (2) HEAD 提交是由你创建的(验证:`git log -1 --format='%an %ae'`)
53
- (3) 提交**尚未**推送到远程(验证:`git status` 显示 "Your branch is ahead")
54
- - **关键**:如果提交失败或被 hook 拒绝,**禁止 amend**——修复问题后创建新提交
55
- - **关键**:如果已推送到远程,**禁止 amend**(除非用户明确要求,需要 force push)
56
-
57
- **创建提交的步骤**:
58
- 1. 并行执行 `git status`、`git diff`、`git log` 查看状态和提交风格
59
- 2. 分析所有变更内容,起草 1-2 句话的提交信息(聚焦"为什么"而非"做了什么")
60
- 3. 并行执行:添加文件到暂存区 → 创建提交 → 运行 `git status` 验证
61
- 4. 如果提交失败,修复问题后创建新提交(不要 amend)
62
-
63
43
  **注意事项**:
64
44
  - 禁止使用交互式 git 命令(如 `git rebase -i` 或 `git add -i`)
65
45
  - 除非用户明确要求,不要推送到远程
66
46
  - 没有变更时不创建空提交
67
47
 
68
- ## 创建 Pull Request
69
-
70
- 使用 Bash 工具的 `gh` 命令处理所有 GitHub 相关任务(issues、PRs、checks、releases)。收到 GitHub URL 时用 gh 命令获取所需信息。
71
-
72
- **创建 PR 的步骤**:
73
- 1. 并行执行了解当前分支状态:`git status`、`git diff`、`git log` 和 `git diff [base-branch]...HEAD`
74
- 2. 分析所有将包含在 PR 中的变更(不是只有最新提交,是**所有**提交),起草 PR 摘要
75
- 3. 并行执行:需要时创建新分支 → 需要时推送 → 使用 `gh pr create` 创建 PR
76
-
77
- **注意**:不要使用 TodoWrite 或 Task 工具。完成后返回 PR URL。
78
-
79
- ## 其他常用操作
80
-
81
- - 查看 PR 评论:`gh api repos/foo/bar/pulls/123/comments`
48
+ 举例:
49
+ ```xml
50
+ <react>
51
+ <thought>安装项目依赖</thought>
52
+ <action>
53
+ <action_name>bash</action_name>
54
+ <action_input>
55
+ <command>npm install</command>
56
+ <workdir>E:\ai\txcode</workdir>
57
+ </action_input>
58
+ </action>
59
+ <keep_context>true</keep_context>
60
+ </react>
61
+ ```
62
+
63
+ 参数说明:
64
+
65
+ | 字段 | 类型 | 说明 |
66
+ |------|------|
67
+ | `command` | string | 要执行的命令 |
68
+ | `workdir` | string | 工作目录(可选,默认为当前目录) |
69
+ | `timeout` | number | 超时时间,毫秒(可选,默认 120000 = 2分钟) |
@@ -1 +1 @@
1
- {"version":3,"file":"code_search.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/code_search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAkChE,eAAO,MAAM,cAAc,EAAE,IAiF5B,CAAA"}
1
+ {"version":3,"file":"code_search.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/code_search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAkChE,eAAO,MAAM,cAAc,EAAE,IAkF5B,CAAA"}
@@ -9,6 +9,7 @@ const API_CONFIG = {
9
9
  export const codeSearchTool = {
10
10
  name: 'code_search',
11
11
  description: '',
12
+ descriptionFile: 'code_search.txt',
12
13
  parameters: {
13
14
  type: 'object',
14
15
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"code_search.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/code_search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code_search.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/code_search.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ ### 工具code_search
1
2
  使用 Exa Code API 搜索编程相关的代码和上下文。
2
3
 
3
4
  **功能**:
@@ -16,3 +17,25 @@
16
17
  - 'React useState hook examples'
17
18
  - 'Python pandas dataframe filtering'
18
19
  - 'Express.js middleware'
20
+
21
+ 举例:
22
+ ```xml
23
+ <react>
24
+ <thought>查找 React useEffect 的最佳实践示例</thought>
25
+ <action>
26
+ <action_name>code_search</action_name>
27
+ <action_input>
28
+ <query>React useEffect best practices cleanup</query>
29
+ <tokens>5000</tokens>
30
+ </action_input>
31
+ </action>
32
+ <keep_context>true</keep_context>
33
+ </react>
34
+ ```
35
+
36
+ 参数说明:
37
+
38
+ | 字段 | 类型 | 说明 |
39
+ |------|------|
40
+ | `query` | string | 搜索查询字符串,用于查找 APIs、库和 SDK 的相关上下文(必需) |
41
+ | `tokens` | number | 返回的 token 数量(可选,1000-50000,默认 5000) |
@@ -1 +1 @@
1
- {"version":3,"file":"edit_file.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/edit_file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAEhE,eAAO,MAAM,YAAY,EAAE,IAwE1B,CAAA"}
1
+ {"version":3,"file":"edit_file.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/edit_file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAEhE,eAAO,MAAM,YAAY,EAAE,IAiH1B,CAAA"}
@@ -3,6 +3,7 @@ import path from 'path';
3
3
  export const editFileTool = {
4
4
  name: 'edit_file',
5
5
  description: '',
6
+ descriptionFile: 'edit_file.txt',
6
7
  parameters: {
7
8
  type: 'object',
8
9
  properties: {
@@ -12,11 +13,11 @@ export const editFileTool = {
12
13
  },
13
14
  old_string: {
14
15
  type: 'string',
15
- description: '要被替换的内容(必须精确匹配)'
16
+ description: '<![CDATA[要被替换的内容(必须精确匹配)]]>'
16
17
  },
17
18
  new_string: {
18
19
  type: 'string',
19
- description: '替换后的新内容'
20
+ description: '<![CDATA[替换后的新内容]]>'
20
21
  },
21
22
  replace_all: {
22
23
  type: 'boolean',
@@ -26,7 +27,39 @@ export const editFileTool = {
26
27
  required: ['file_path', 'old_string', 'new_string']
27
28
  },
28
29
  execute: async (params, context) => {
30
+ const extractCDATA = (str) => {
31
+ if (!str)
32
+ return '';
33
+ const cdataMatch = str.match(/^<!\[CDATA\[([\s\S]*?)\]\]>$/);
34
+ return cdataMatch ? cdataMatch[1] : str;
35
+ };
36
+ const normalizeLineEndings = (str) => {
37
+ return str.replace(/\r\n/g, '\n');
38
+ };
29
39
  let { file_path, old_string, new_string, replace_all = false } = params;
40
+ old_string = extractCDATA(old_string);
41
+ new_string = extractCDATA(new_string);
42
+ if (!file_path) {
43
+ return {
44
+ success: false,
45
+ output: '',
46
+ error: `Missing required parameter: file_path. Available parameters: ${Object.keys(params).join(', ')}`
47
+ };
48
+ }
49
+ if (!old_string) {
50
+ return {
51
+ success: false,
52
+ output: '',
53
+ error: 'Missing required parameter: old_string'
54
+ };
55
+ }
56
+ if (!new_string) {
57
+ return {
58
+ success: false,
59
+ output: '',
60
+ error: 'Missing required parameter: new_string'
61
+ };
62
+ }
30
63
  if (file_path.startsWith('@')) {
31
64
  file_path = file_path.substring(1);
32
65
  }
@@ -38,16 +71,19 @@ export const editFileTool = {
38
71
  return { success: false, output: '', error: `File not found: ${file_path}` };
39
72
  }
40
73
  const content = await fs.promises.readFile(file_path, 'utf-8');
41
- if (!content.includes(old_string)) {
74
+ const normalizedContent = normalizeLineEndings(content);
75
+ const normalizedOldString = normalizeLineEndings(old_string);
76
+ const normalizedNewString = normalizeLineEndings(new_string);
77
+ if (!normalizedContent.includes(normalizedOldString)) {
42
78
  return { success: false, output: '', error: 'old_string not found in content' };
43
79
  }
44
80
  let newContent;
45
81
  if (replace_all) {
46
- newContent = content.split(old_string).join(new_string);
82
+ newContent = normalizedContent.split(normalizedOldString).join(normalizedNewString);
47
83
  }
48
84
  else {
49
- const firstIndex = content.indexOf(old_string);
50
- const secondIndex = content.indexOf(old_string, firstIndex + old_string.length);
85
+ const firstIndex = normalizedContent.indexOf(normalizedOldString);
86
+ const secondIndex = normalizedContent.indexOf(normalizedOldString, firstIndex + normalizedOldString.length);
51
87
  if (secondIndex !== -1) {
52
88
  return {
53
89
  success: false,
@@ -55,10 +91,10 @@ export const editFileTool = {
55
91
  error: 'Found multiple matches. Use replace_all=true or provide more context to make old_string unique.'
56
92
  };
57
93
  }
58
- newContent = content.replace(old_string, new_string);
94
+ newContent = normalizedContent.replace(normalizedOldString, normalizedNewString);
59
95
  }
60
96
  await fs.promises.writeFile(file_path, newContent, 'utf-8');
61
- const count = replace_all ? (content.split(old_string).length - 1) : 1;
97
+ const count = replace_all ? (normalizedContent.split(normalizedOldString).length - 1) : 1;
62
98
  return {
63
99
  success: true,
64
100
  output: `成功: 文件已更新 ${file_path}${count > 1 ? ` (${count} 处替换)` : ''}`,
@@ -1 +1 @@
1
- {"version":3,"file":"edit_file.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/edit_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,QAAQ;aACtB;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;aAC/B;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,SAAS;aACvB;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wBAAwB;aACtC;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;KACpD;IACD,OAAO,EAAE,KAAK,EAAE,MAA4F,EAAE,OAAoB,EAAuB,EAAE;QACzJ,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;QAEvE,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACtF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,SAAS,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAE9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;QACjF,CAAC;QAED,IAAI,UAAkB,CAAA;QACtB,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/E,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,iGAAiG;iBACzG,CAAA;YACH,CAAC;YACD,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAE3D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,aAAa,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE;SACnD,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"edit_file.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/edit_file.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,61 @@
1
+ ### 工具edit_file
1
2
  对文件执行精确的字符串替换。
2
3
 
3
- **使用说明**:
4
+ **功能**:
4
5
  - 在编辑前,**必须**至少使用过一次 Read 工具。未读取文件就编辑会报错
5
- - 从 Read 工具输出编辑文本时,确保保留精确的缩进(空格/制表符)。行号前缀格式是:行号 + 冒号 + 空格(如 `1: `)。`oldString` 和 `newString` 中**禁止**包含行号前缀的任何部分
6
+ - 从 Read 工具输出编辑文本时,确保保留精确的缩进(空格/制表符)。行号前缀格式是:行号 + 冒号 + 空格(如 `1: `)。`old_string` 和 `new_string` 中**禁止**包含行号前缀的任何部分
6
7
  - **优先**编辑现有文件,**禁止**创建新文件除非明确需要
7
8
  - 只有用户明确要求时才使用表情符号
8
- - 如果 `oldString` 在文件中找不到会**失败**,报错 "oldString not found in content"
9
- - 如果 `oldString` 在文件中出现多次会**失败**,报错 "Found multiple matches for oldString. Provide more surrounding lines in oldString to identify the correct match."。可以提供更多上下文使其唯一,或使用 `replaceAll` 替换所有匹配项
10
- - `replaceAll` 用于在整个文件中替换和重命名字符串
9
+ - 如果 `old_string` 在文件中找不到会**失败**
10
+ - 如果 `old_string` 在文件中出现多次会**失败**,可以提供更多上下文使其唯一,或使用 `replace_all` 替换所有匹配项
11
+ - `replace_all` 用于在整个文件中替换和重命名字符串
12
+
13
+ **注意**:old_string 和 new_string 中内容必须用 <![CDATA[ ]]> 包裹。
14
+
15
+ **举例**:
16
+ 正确例子
17
+ ```xml
18
+ <react>
19
+ <thought>在 App.tsx 中添加调试日志</thought>
20
+ <action>
21
+ <action_name>edit_file</action_name>
22
+ <action_input>
23
+ <file_path>E:\ai\txcode\src\components\App.tsx</file_path>
24
+ <old_string><![CDATA[if (trimmedInput.startsWith('/')) {
25
+ const result = await executeCommand(trimmedInput);]]></old_string>
26
+ <new_string><![CDATA[if (trimmedInput.startsWith('/')) {
27
+ console.log('[DEBUG] executeCommand input:', trimmedInput);
28
+ const result = await executeCommand(trimmedInput);]]></new_string>
29
+ </action_input>
30
+ </action>
31
+ <keep_context>true</keep_context>
32
+ </react>
33
+ ```
34
+
35
+ 错误例子(错误的方式,old_string和new_string 没有用<![CDATA[ ]]> 包裹):
36
+ ```xml
37
+ <react>
38
+ <thought>在 App.tsx 中添加调试日志</thought>
39
+ <action>
40
+ <action_name>edit_file</action_name>
41
+ <action_input>
42
+ <file_path>E:\ai\txcode\src\components\App.tsx</file_path>
43
+ <old_string>if (trimmedInput.startsWith('/')) {
44
+ const result = await executeCommand(trimmedInput);</old_string>
45
+ <new_string>if (trimmedInput.startsWith('/')) {
46
+ console.log('[DEBUG] executeCommand input:', trimmedInput);
47
+ const result = await executeCommand(trimmedInput);</new_string>
48
+ </action_input>
49
+ </action>
50
+ <keep_context>true</keep_context>
51
+ </react>
52
+ ```
53
+
54
+ 参数说明:
55
+
56
+ | 字段 | 类型 | 说明 |
57
+ |------|------|
58
+ | `file_path` | string | 文件绝对路径 |
59
+ | `old_string` | string | 要被替换的内容(必须精确匹配),用 <![CDATA[ ]]> 包裹 |
60
+ | `new_string` | string | 替换后的新内容,用 <![CDATA[ ]]> 包裹 |
61
+ | `replace_all` | boolean | 是否替换所有匹配项(可选,默认 false) |
@@ -1 +1 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/glob.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAqDhE,eAAO,MAAM,QAAQ,EAAE,IA0CtB,CAAA"}
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/glob.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAqDhE,eAAO,MAAM,QAAQ,EAAE,IA2CtB,CAAA"}
@@ -46,6 +46,7 @@ function glob(pattern, dir) {
46
46
  export const globTool = {
47
47
  name: 'glob',
48
48
  description: '',
49
+ descriptionFile: 'glob.txt',
49
50
  parameters: {
50
51
  type: 'object',
51
52
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/glob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/glob.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ ### 工具glob
1
2
  快速的文件模式匹配工具,适用于任何规模的代码库。
2
3
 
3
4
  **功能**:
@@ -8,3 +9,25 @@
8
9
  **注意**:当你需要进行可能需要多轮 glob 和 grep 的开放式搜索时,使用 Task 工具。
9
10
 
10
11
  **最佳实践**:可以并行调用多个工具,总是更好地批量执行多个可能有用的搜索。
12
+
13
+ 举例:
14
+ ```xml
15
+ <react>
16
+ <thought>查找所有 TypeScript 组件文件</thought>
17
+ <action>
18
+ <action_name>glob</action_name>
19
+ <action_input>
20
+ <pattern>src/**/*.tsx</pattern>
21
+ <directory>E:\ai\txcode</directory>
22
+ </action_input>
23
+ </action>
24
+ <keep_context>true</keep_context>
25
+ </react>
26
+ ```
27
+
28
+ 参数说明:
29
+
30
+ | 字段 | 类型 | 说明 |
31
+ |------|------|
32
+ | `pattern` | string | glob 模式,如 "**/*.ts" 匹配所有 ts 文件 |
33
+ | `directory` | string | 搜索目录的绝对路径(可选,默认当前工作目录) |
@@ -1 +1 @@
1
- {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/grep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAWhE,eAAO,MAAM,QAAQ,EAAE,IA0FtB,CAAA"}
1
+ {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/grep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAWhE,eAAO,MAAM,QAAQ,EAAE,IA2FtB,CAAA"}
@@ -10,6 +10,7 @@ function matchGlob(pattern, filePath) {
10
10
  export const grepTool = {
11
11
  name: 'grep',
12
12
  description: '',
13
+ descriptionFile: 'grep.txt',
13
14
  parameters: {
14
15
  type: 'object',
15
16
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/grep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/grep.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ ### 工具grep
1
2
  快速的内容搜索工具,适用于任何规模的代码库。
2
3
 
3
4
  **功能**:
@@ -10,3 +11,27 @@
10
11
  **注意**:
11
12
  - 如果需要识别/统计文件中的匹配数量,直接用 Bash 工具运行 `rg` (ripgrep),**不要**用 Grep
12
13
  - 当你需要可能需要多轮搜索的开放式搜索时,使用 Task 工具
14
+
15
+ 举例:
16
+ ```xml
17
+ <react>
18
+ <thought>搜索包含 "executeCommand" 的 TypeScript 文件</thought>
19
+ <action>
20
+ <action_name>grep</action_name>
21
+ <action_input>
22
+ <pattern>executeCommand</pattern>
23
+ <directory>E:\ai\txcode\src</directory>
24
+ <include>*.ts</include>
25
+ </action_input>
26
+ </action>
27
+ <keep_context>true</keep_context>
28
+ </react>
29
+ ```
30
+
31
+ 参数说明:
32
+
33
+ | 字段 | 类型 | 说明 |
34
+ |------|------|
35
+ | `pattern` | string | 正则表达式模式 |
36
+ | `directory` | string | 搜索目录(可选) |
37
+ | `include` | string | 文件模式过滤(可选,如 "*.ts") |
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAgCvC,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAkDvD;AAID,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAK/D;AAED,eAAO,MAAM,YAAY,EAAE,IAAI,EAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAoDvC,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAkBvD;AAID,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAK/D;AAED,eAAO,MAAM,YAAY,EAAE,IAAI,EAAO,CAAA"}
@@ -20,47 +20,38 @@ import path from 'path';
20
20
  import { fileURLToPath } from 'url';
21
21
  const __filename = fileURLToPath(import.meta.url);
22
22
  const DESCRIPTIONS_DIR = path.dirname(__filename);
23
- async function loadDescription(filename, baseDir) {
23
+ async function loadDescription(filePath) {
24
24
  try {
25
- const dir = baseDir || DESCRIPTIONS_DIR;
26
- return await fs.readFile(path.join(dir, filename), 'utf-8');
25
+ return await fs.readFile(filePath, 'utf-8');
27
26
  }
28
27
  catch {
29
28
  return '';
30
29
  }
31
30
  }
31
+ async function withDescriptions(tools) {
32
+ const results = [];
33
+ for (const tool of tools) {
34
+ if (tool.descriptionFile) {
35
+ let descPath;
36
+ if (tool.name === 'skill') {
37
+ descPath = path.join(DESCRIPTIONS_DIR, '..', '..', 'skill', 'skill.txt');
38
+ }
39
+ else {
40
+ descPath = path.isAbsolute(tool.descriptionFile)
41
+ ? tool.descriptionFile
42
+ : path.join(DESCRIPTIONS_DIR, tool.descriptionFile);
43
+ }
44
+ const desc = await loadDescription(descPath);
45
+ results.push({ ...tool, description: desc });
46
+ }
47
+ else {
48
+ results.push(tool);
49
+ }
50
+ }
51
+ return results;
52
+ }
32
53
  export async function getBuiltinTools() {
33
- const [bashDesc, readFileDesc, writeFileDesc, editFileDesc, globDesc, grepDesc, todoReadDesc, todoWriteDesc, lspDesc, webSearchDesc, webFetchDesc, codeSearchDesc, memoryDesc] = await Promise.all([
34
- loadDescription('bash.txt'),
35
- loadDescription('read_file.txt'),
36
- loadDescription('write_file.txt'),
37
- loadDescription('edit_file.txt'),
38
- loadDescription('glob.txt'),
39
- loadDescription('grep.txt'),
40
- loadDescription('todo_read.txt'),
41
- loadDescription('todo_write.txt'),
42
- loadDescription('lsp.txt'),
43
- loadDescription('web_search.txt'),
44
- loadDescription('web_fetch.txt'),
45
- loadDescription('code_search.txt'),
46
- loadDescription('memory.txt'),
47
- ]);
48
- const skillDesc = await loadDescription('skill.txt', path.join(DESCRIPTIONS_DIR, '..', '..', 'skill'));
49
- bashTool.description = bashDesc;
50
- readFileTool.description = readFileDesc;
51
- writeFileTool.description = writeFileDesc;
52
- editFileTool.description = editFileDesc;
53
- globTool.description = globDesc;
54
- grepTool.description = grepDesc;
55
- todoReadTool.description = todoReadDesc;
56
- todoWriteTool.description = todoWriteDesc;
57
- lspTool.description = lspDesc;
58
- webSearchTool.description = webSearchDesc;
59
- webFetchTool.description = webFetchDesc;
60
- codeSearchTool.description = codeSearchDesc;
61
- memoryTool.description = memoryDesc;
62
- skillTool.description = skillDesc;
63
- return [
54
+ const tools = [
64
55
  bashTool,
65
56
  readFileTool,
66
57
  writeFileTool,
@@ -76,6 +67,7 @@ export async function getBuiltinTools() {
76
67
  memoryTool,
77
68
  skillTool,
78
69
  ];
70
+ return withDescriptions(tools);
79
71
  }
80
72
  let _builtinTools = null;
81
73
  export async function getBuiltinToolsInstance() {
@@ -84,5 +76,5 @@ export async function getBuiltinToolsInstance() {
84
76
  }
85
77
  return _builtinTools;
86
78
  }
87
- export const builtinTools = []; // 占位符,实际通过getBuiltinToolsInstance获取
79
+ export const builtinTools = [];
88
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/lsp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAGhE,QAAA,MAAM,OAAO,EAAE,IA4Id,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/lsp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAGhE,QAAA,MAAM,OAAO,EAAE,IA6Id,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
@@ -5,7 +5,8 @@ import * as path from "path";
5
5
  import { LSPManager, LSPClient, getServersByExtension } from "../../../lsp/index.js";
6
6
  const lspTool = {
7
7
  name: "lsp",
8
- description: '', // 从 lsp.txt 加载
8
+ description: '',
9
+ descriptionFile: 'lsp.txt',
9
10
  parameters: {
10
11
  type: "object",
11
12
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"lsp.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/lsp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lsp.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/lsp.ts"],"names":[],"mappings":"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"}