@zqagent/core 0.2.20 → 0.3.6

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 (238) hide show
  1. package/README.md +1 -1
  2. package/README.oss.en.md +3 -3
  3. package/README.oss.md +8 -3
  4. package/README.oss.zh-TW.md +3 -3
  5. package/dist/McpClient-CEQBUPuC.d.cts +145 -0
  6. package/dist/McpClient-CEQBUPuC.d.ts +145 -0
  7. package/dist/{ToolRegistry-C3pTFiaJ.d.cts → ToolRegistry-Cy0fQxrb.d.ts} +2 -111
  8. package/dist/{ToolRegistry-C3pTFiaJ.d.ts → ToolRegistry-DouDvn9E.d.cts} +2 -111
  9. package/dist/{explore-RtZtb-V6.d.ts → TurnEngine-BPKhWuSI.d.cts} +108 -73
  10. package/dist/{explore-BgRhj6SP.d.cts → TurnEngine-DtGEuVLT.d.ts} +108 -73
  11. package/dist/conflictGuard-BBOOIxxK.d.cts +42 -0
  12. package/dist/conflictGuard-BBOOIxxK.d.ts +42 -0
  13. package/dist/index.cjs +5418 -1096
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +577 -195
  16. package/dist/index.d.ts +577 -195
  17. package/dist/index.js +5299 -1011
  18. package/dist/index.js.map +1 -1
  19. package/dist/internal/crypto/secrets.cjs +25 -0
  20. package/dist/internal/crypto/secrets.cjs.map +1 -0
  21. package/dist/internal/crypto/secrets.d.cts +2 -0
  22. package/dist/internal/crypto/secrets.d.ts +2 -0
  23. package/dist/internal/crypto/secrets.js +3 -0
  24. package/dist/internal/crypto/secrets.js.map +1 -0
  25. package/dist/internal/engine/FileLogHook.cjs +179 -0
  26. package/dist/internal/engine/FileLogHook.cjs.map +1 -0
  27. package/dist/internal/engine/FileLogHook.d.cts +67 -0
  28. package/dist/internal/engine/FileLogHook.d.ts +67 -0
  29. package/dist/internal/engine/FileLogHook.js +144 -0
  30. package/dist/internal/engine/FileLogHook.js.map +1 -0
  31. package/dist/internal/engine/approvalView.cjs +25 -0
  32. package/dist/internal/engine/approvalView.cjs.map +1 -0
  33. package/dist/internal/engine/approvalView.d.cts +1 -0
  34. package/dist/internal/engine/approvalView.d.ts +1 -0
  35. package/dist/internal/engine/approvalView.js +3 -0
  36. package/dist/internal/engine/approvalView.js.map +1 -0
  37. package/dist/internal/engine/limits.cjs +59 -0
  38. package/dist/internal/engine/limits.cjs.map +1 -0
  39. package/dist/internal/engine/limits.d.cts +32 -0
  40. package/dist/internal/engine/limits.d.ts +32 -0
  41. package/dist/internal/engine/limits.js +31 -0
  42. package/dist/internal/engine/limits.js.map +1 -0
  43. package/dist/internal/engine/sessionNaming.cjs +47 -0
  44. package/dist/internal/engine/sessionNaming.cjs.map +1 -0
  45. package/dist/internal/engine/sessionNaming.d.cts +25 -0
  46. package/dist/internal/engine/sessionNaming.d.ts +25 -0
  47. package/dist/internal/engine/sessionNaming.js +20 -0
  48. package/dist/internal/engine/sessionNaming.js.map +1 -0
  49. package/dist/internal/llmConfig.cjs +561 -0
  50. package/dist/internal/llmConfig.cjs.map +1 -0
  51. package/dist/internal/llmConfig.d.cts +75 -0
  52. package/dist/internal/llmConfig.d.ts +75 -0
  53. package/dist/internal/llmConfig.js +535 -0
  54. package/dist/internal/llmConfig.js.map +1 -0
  55. package/dist/internal/mcp/builtin/index.cjs +685 -0
  56. package/dist/internal/mcp/builtin/index.cjs.map +1 -0
  57. package/dist/internal/mcp/builtin/index.d.cts +21 -0
  58. package/dist/internal/mcp/builtin/index.d.ts +21 -0
  59. package/dist/internal/mcp/builtin/index.js +652 -0
  60. package/dist/internal/mcp/builtin/index.js.map +1 -0
  61. package/dist/internal/mcp/config.cjs +278 -0
  62. package/dist/internal/mcp/config.cjs.map +1 -0
  63. package/dist/internal/mcp/config.d.cts +61 -0
  64. package/dist/internal/mcp/config.d.ts +61 -0
  65. package/dist/internal/mcp/config.js +235 -0
  66. package/dist/internal/mcp/config.js.map +1 -0
  67. package/dist/internal/mcp/presets.cjs +184 -0
  68. package/dist/internal/mcp/presets.cjs.map +1 -0
  69. package/dist/internal/mcp/presets.d.cts +39 -0
  70. package/dist/internal/mcp/presets.d.ts +39 -0
  71. package/dist/internal/mcp/presets.js +158 -0
  72. package/dist/internal/mcp/presets.js.map +1 -0
  73. package/dist/internal/node-name.cjs +45 -0
  74. package/dist/internal/node-name.cjs.map +1 -0
  75. package/dist/internal/node-name.d.cts +3 -0
  76. package/dist/internal/node-name.d.ts +3 -0
  77. package/dist/internal/node-name.js +10 -0
  78. package/dist/internal/node-name.js.map +1 -0
  79. package/dist/internal/paths.cjs +63 -0
  80. package/dist/internal/paths.cjs.map +1 -0
  81. package/dist/internal/paths.d.cts +17 -0
  82. package/dist/internal/paths.d.ts +17 -0
  83. package/dist/internal/paths.js +25 -0
  84. package/dist/internal/paths.js.map +1 -0
  85. package/dist/internal/providers/diagnostics.cjs +288 -0
  86. package/dist/internal/providers/diagnostics.cjs.map +1 -0
  87. package/dist/internal/providers/diagnostics.d.cts +103 -0
  88. package/dist/internal/providers/diagnostics.d.ts +103 -0
  89. package/dist/internal/providers/diagnostics.js +250 -0
  90. package/dist/internal/providers/diagnostics.js.map +1 -0
  91. package/dist/internal/providers/models.cjs +699 -0
  92. package/dist/internal/providers/models.cjs.map +1 -0
  93. package/dist/internal/providers/models.d.cts +136 -0
  94. package/dist/internal/providers/models.d.ts +136 -0
  95. package/dist/internal/providers/models.js +654 -0
  96. package/dist/internal/providers/models.js.map +1 -0
  97. package/dist/internal/terminal.cjs +161 -0
  98. package/dist/internal/terminal.cjs.map +1 -0
  99. package/dist/internal/terminal.d.cts +58 -0
  100. package/dist/internal/terminal.d.ts +58 -0
  101. package/dist/internal/terminal.js +128 -0
  102. package/dist/internal/terminal.js.map +1 -0
  103. package/dist/internal/tools/execAsync.cjs +187 -0
  104. package/dist/internal/tools/execAsync.cjs.map +1 -0
  105. package/dist/internal/tools/execAsync.d.cts +30 -0
  106. package/dist/internal/tools/execAsync.d.ts +30 -0
  107. package/dist/internal/tools/execAsync.js +162 -0
  108. package/dist/internal/tools/execAsync.js.map +1 -0
  109. package/dist/internal/tools/git.cjs +935 -0
  110. package/dist/internal/tools/git.cjs.map +1 -0
  111. package/dist/internal/tools/git.d.cts +206 -0
  112. package/dist/internal/tools/git.d.ts +206 -0
  113. package/dist/internal/tools/git.js +883 -0
  114. package/dist/internal/tools/git.js.map +1 -0
  115. package/dist/internal/tools/pathSafety.cjs +99 -0
  116. package/dist/internal/tools/pathSafety.cjs.map +1 -0
  117. package/dist/internal/tools/pathSafety.d.cts +44 -0
  118. package/dist/internal/tools/pathSafety.d.ts +44 -0
  119. package/dist/internal/tools/pathSafety.js +61 -0
  120. package/dist/internal/tools/pathSafety.js.map +1 -0
  121. package/dist/internal/tools/plan.cjs +146 -0
  122. package/dist/internal/tools/plan.cjs.map +1 -0
  123. package/dist/internal/tools/plan.d.cts +48 -0
  124. package/dist/internal/tools/plan.d.ts +48 -0
  125. package/dist/internal/tools/plan.js +117 -0
  126. package/dist/internal/tools/plan.js.map +1 -0
  127. package/dist/internal/tools/ripgrep.cjs +118 -0
  128. package/dist/internal/tools/ripgrep.cjs.map +1 -0
  129. package/dist/internal/tools/ripgrep.d.cts +6 -0
  130. package/dist/internal/tools/ripgrep.d.ts +6 -0
  131. package/dist/internal/tools/ripgrep.js +89 -0
  132. package/dist/internal/tools/ripgrep.js.map +1 -0
  133. package/dist/internal/tools/sandbox.cjs +253 -0
  134. package/dist/internal/tools/sandbox.cjs.map +1 -0
  135. package/dist/internal/tools/sandbox.d.cts +67 -0
  136. package/dist/internal/tools/sandbox.d.ts +67 -0
  137. package/dist/internal/tools/sandbox.js +213 -0
  138. package/dist/internal/tools/sandbox.js.map +1 -0
  139. package/dist/internal/tools/shell.cjs +771 -0
  140. package/dist/internal/tools/shell.cjs.map +1 -0
  141. package/dist/internal/tools/shell.d.cts +47 -0
  142. package/dist/internal/tools/shell.d.ts +47 -0
  143. package/dist/internal/tools/shell.js +731 -0
  144. package/dist/internal/tools/shell.js.map +1 -0
  145. package/dist/internal/tools/shellRuntime.cjs +220 -0
  146. package/dist/internal/tools/shellRuntime.cjs.map +1 -0
  147. package/dist/internal/tools/shellRuntime.d.cts +67 -0
  148. package/dist/internal/tools/shellRuntime.d.ts +67 -0
  149. package/dist/internal/tools/shellRuntime.js +181 -0
  150. package/dist/internal/tools/shellRuntime.js.map +1 -0
  151. package/dist/internal/update/controller.cjs +1035 -0
  152. package/dist/internal/update/controller.cjs.map +1 -0
  153. package/dist/internal/update/controller.d.cts +150 -0
  154. package/dist/internal/update/controller.d.ts +150 -0
  155. package/dist/internal/update/controller.js +991 -0
  156. package/dist/internal/update/controller.js.map +1 -0
  157. package/dist/internal/update/platform.cjs +234 -0
  158. package/dist/internal/update/platform.cjs.map +1 -0
  159. package/dist/internal/update/platform.d.cts +77 -0
  160. package/dist/internal/update/platform.d.ts +77 -0
  161. package/dist/internal/update/platform.js +184 -0
  162. package/dist/internal/update/platform.js.map +1 -0
  163. package/dist/tools/ask.d.cts +3 -1
  164. package/dist/tools/ask.d.ts +3 -1
  165. package/dist/tools/diff.cjs +17 -6
  166. package/dist/tools/diff.cjs.map +1 -1
  167. package/dist/tools/diff.d.cts +5 -2
  168. package/dist/tools/diff.d.ts +5 -2
  169. package/dist/tools/diff.js +17 -6
  170. package/dist/tools/diff.js.map +1 -1
  171. package/dist/tools/directories.d.cts +3 -1
  172. package/dist/tools/directories.d.ts +3 -1
  173. package/dist/tools/explore.cjs +1778 -204
  174. package/dist/tools/explore.cjs.map +1 -1
  175. package/dist/tools/explore.d.cts +82 -2
  176. package/dist/tools/explore.d.ts +82 -2
  177. package/dist/tools/explore.js +1780 -204
  178. package/dist/tools/explore.js.map +1 -1
  179. package/dist/tools/files.cjs +56 -21
  180. package/dist/tools/files.cjs.map +1 -1
  181. package/dist/tools/files.d.cts +6 -3
  182. package/dist/tools/files.d.ts +6 -3
  183. package/dist/tools/files.js +56 -21
  184. package/dist/tools/files.js.map +1 -1
  185. package/dist/tools/git.cjs +34 -25
  186. package/dist/tools/git.cjs.map +1 -1
  187. package/dist/tools/git.d.cts +4 -204
  188. package/dist/tools/git.d.ts +4 -204
  189. package/dist/tools/git.js +34 -25
  190. package/dist/tools/git.js.map +1 -1
  191. package/dist/tools/media.cjs +280 -3
  192. package/dist/tools/media.cjs.map +1 -1
  193. package/dist/tools/media.d.cts +3 -1
  194. package/dist/tools/media.d.ts +3 -1
  195. package/dist/tools/media.js +278 -1
  196. package/dist/tools/media.js.map +1 -1
  197. package/dist/tools/plan.cjs +62 -0
  198. package/dist/tools/plan.cjs.map +1 -1
  199. package/dist/tools/plan.d.cts +4 -17
  200. package/dist/tools/plan.d.ts +4 -17
  201. package/dist/tools/plan.js +59 -0
  202. package/dist/tools/plan.js.map +1 -1
  203. package/dist/tools/search.cjs +3 -0
  204. package/dist/tools/search.cjs.map +1 -1
  205. package/dist/tools/search.d.cts +3 -1
  206. package/dist/tools/search.d.ts +3 -1
  207. package/dist/tools/search.js +3 -0
  208. package/dist/tools/search.js.map +1 -1
  209. package/dist/tools/shell.cjs +76 -11
  210. package/dist/tools/shell.cjs.map +1 -1
  211. package/dist/tools/shell.d.cts +5 -39
  212. package/dist/tools/shell.d.ts +5 -39
  213. package/dist/tools/shell.js +75 -11
  214. package/dist/tools/shell.js.map +1 -1
  215. package/dist/tools/todo.d.cts +3 -1
  216. package/dist/tools/todo.d.ts +3 -1
  217. package/dist/tools/web.cjs +279 -5
  218. package/dist/tools/web.cjs.map +1 -1
  219. package/dist/tools/web.d.cts +3 -1
  220. package/dist/tools/web.d.ts +3 -1
  221. package/dist/tools/web.js +275 -3
  222. package/dist/tools/web.js.map +1 -1
  223. package/dist/types-BYyXWWPW.d.cts +237 -0
  224. package/dist/types-BYyXWWPW.d.ts +237 -0
  225. package/package.json +26 -37
  226. package/bin/zqagent +0 -2
  227. package/dist/cli/index.cjs +0 -25218
  228. package/dist/cli/index.cjs.map +0 -1
  229. package/dist/cli/index.d.cts +0 -2
  230. package/dist/cli/index.d.ts +0 -2
  231. package/dist/cli/index.js +0 -25201
  232. package/dist/cli/index.js.map +0 -1
  233. package/dist/server/index.cjs +0 -20510
  234. package/dist/server/index.cjs.map +0 -1
  235. package/dist/server/index.d.cts +0 -2
  236. package/dist/server/index.d.ts +0 -2
  237. package/dist/server/index.js +0 -20493
  238. package/dist/server/index.js.map +0 -1
@@ -0,0 +1,237 @@
1
+ import { ModelCapability } from '@zqagent/shared/model-capabilities';
2
+
3
+ /** 一次提交的附件总大小上限(原文件字节数,不含 base64 膨胀) */
4
+ declare const MAX_ATTACHMENT_BYTES: number;
5
+ /** 一次提交的附件个数上限(DeepSeek 单请求最多 600 张,这里只是防误操作) */
6
+ declare const MAX_ATTACHMENTS = 4;
7
+ /** 单个附件 */
8
+ interface MessageAttachment {
9
+ /** 原始文件名(展示 + 供应商侧提示用) */
10
+ name: string;
11
+ /** MIME 类型(如 image/png),与 dataUrl 内声明的一致 */
12
+ mimeType: string;
13
+ /** `data:<mime>;base64,<payload>` */
14
+ dataUrl: string;
15
+ }
16
+ /** 附件校验失败(调用方转成 400,避免把供应商的晦涩报错暴露给用户) */
17
+ declare class AttachmentError extends Error {
18
+ constructor(message: string);
19
+ }
20
+ /** 附件的实际字节数(按 base64 长度反推,不真正解码) */
21
+ declare function attachmentBytes(a: MessageAttachment): number;
22
+ /**
23
+ * 校验并规范化请求里的附件。
24
+ *
25
+ * 返回 `undefined` 表示「没有附件」。**不再限制类型**:任何文件都可以随消息
26
+ * 发送,能直接给模型读的走内联,不能的落到工作目录(见 `splitByCapability`)。
27
+ * 只有结构性错误(不是 data URL、超限)才抛 `AttachmentError`,由 HTTP /
28
+ * 指令层转成 400——静默丢弃会让用户以为文件发出去了。
29
+ */
30
+ declare function normalizeAttachments(v: unknown): MessageAttachment[] | undefined;
31
+ /**
32
+ * 按「当前模型的输入能力」把附件分成两拨:
33
+ *
34
+ * - `inline`:模型能直接读的(图片/音频/视频,且该模态已勾选),内联进请求;
35
+ * - `workspace`:其余全部——模型没开能力的模态,以及 PDF / 表格 / 压缩包
36
+ * 这类模型根本不吃的文件。它们会被写进工作目录,路径交给助手去读。
37
+ *
38
+ * `capabilities` 为 `undefined` 表示调用方没提供模型能力(例如直接使用 core
39
+ * 的集成方、CLI):沿用旧行为,凡是模态可识别的都内联,避免把图片莫名存盘。
40
+ */
41
+ declare function splitByCapability(attachments: MessageAttachment[] | undefined, capabilities: ModelCapability[] | undefined): {
42
+ inline: MessageAttachment[];
43
+ workspace: MessageAttachment[];
44
+ };
45
+ /**
46
+ * 已落盘的附件引用(消息 / 事件 / 轮次索引里只带它,不带 base64)。
47
+ *
48
+ * `path` 相对会话目录(如 `attachments/1712-0-shot.png`),前端按
49
+ * `readSessionAttachment` 取回内容。
50
+ */
51
+ interface StoredAttachment {
52
+ /** 原始文件名(展示用) */
53
+ name: string;
54
+ /** MIME 类型 */
55
+ mimeType: string;
56
+ /** 原始字节数 */
57
+ size: number;
58
+ /** 相对会话目录的路径(POSIX 分隔符) */
59
+ path: string;
60
+ }
61
+ /** 附件目录名(相对会话目录) */
62
+ declare const ATTACHMENT_DIR = "attachments";
63
+ /**
64
+ * 把附件字节写到会话目录下的 `attachments/`,返回轻量引用。
65
+ *
66
+ * 落盘失败不影响本轮请求(附件仍会内联给模型),只在返回里跳过该条;
67
+ * 写盘用「时间戳 + 序号」前缀保证同一会话内不重名。
68
+ */
69
+ declare function saveAttachments(sessionDir: string, attachments: MessageAttachment[] | undefined): StoredAttachment[];
70
+ /**
71
+ * 附件落到**工作目录**(模型读不了、交给助手用文件工具去读的那一拨)。
72
+ *
73
+ * 与 `saveAttachments` 的区别:
74
+ * - 位置:工作目录下的 `uploads/`,是助手能用 `read_file` 等工具直接读到的路径;
75
+ * - 命名:保留原文件名(助手和用户都认得出),重名时自动加 `-2`、`-3`;
76
+ * - 返回相对工作目录的路径,写进消息里给模型看。
77
+ */
78
+ declare const UPLOAD_DIR = "uploads";
79
+ /** 落盘到工作目录后的引用(`path` 相对工作目录) */
80
+ interface WorkspaceFileRef {
81
+ name: string;
82
+ mimeType: string;
83
+ size: number;
84
+ path: string;
85
+ }
86
+ /**
87
+ * 写入工作目录。单个文件失败不影响其余文件(返回里跳过该条),
88
+ * 也不影响本轮请求——调用方按返回结果决定提到哪些文件。
89
+ */
90
+ declare function saveAttachmentsToWorkspace(workspaceRoot: string, attachments: MessageAttachment[] | undefined): WorkspaceFileRef[];
91
+ declare function buildWorkspaceFileNotice(files: WorkspaceFileRef[]): string;
92
+ /**
93
+ * 读取已落盘的附件(聊天记录里的缩略图 / 大图)。
94
+ *
95
+ * `relPath` 必须落在 `attachments/` 下且是单层文件名:拒绝 `..`、子目录与
96
+ * 其它目录,避免这条只读接口被用来读会话目录里的别的东西。
97
+ */
98
+ declare function readStoredAttachment(sessionDir: string, relPath: string): {
99
+ name: string;
100
+ mimeType: string;
101
+ size: number;
102
+ base64: string;
103
+ };
104
+ /** 剥掉所有消息上的附件(落盘 / 事件 / 会话摘要用) */
105
+ declare function stripAttachments<T>(messages: T[]): T[];
106
+ /** 消息是否带非图片附件(Responses API 只支持图片,需要降级到 Chat) */
107
+ declare function hasNonImageAttachments(messages: {
108
+ attachments?: MessageAttachment[];
109
+ }[]): boolean;
110
+
111
+ /**
112
+ * 基础类型定义
113
+ *
114
+ * 与 Python 版 zqagent 对齐的基础类型。这里定义了 Agent 引擎内部
115
+ * 流转的核心数据模型:LLM 工具调用、助手回复、Token 用量、流式 chunk、
116
+ * 对话消息以及 OpenAI 工具 Schema。
117
+ */
118
+
119
+ /** LLM 请求的工具调用 */
120
+ interface ToolCall {
121
+ /** 工具调用 ID(OpenAI 格式,用于把 tool 结果消息关联回对应的调用) */
122
+ id: string;
123
+ /** 工具名称 */
124
+ name: string;
125
+ /** 工具参数(已解析为对象的形态) */
126
+ arguments: Record<string, unknown>;
127
+ }
128
+ /** LLM 一次回复 */
129
+ interface AssistantTurn {
130
+ /** 回复正文文本;无文本时为 null */
131
+ text: string | null;
132
+ /** 本次回复请求的工具调用列表(可能为空) */
133
+ toolCalls: ToolCall[];
134
+ /** 结束原因(stop / tool_calls / length 等),由 Provider 提供 */
135
+ finishReason: string | null;
136
+ /** 推理过程内容(如 OpenAI o 系列模型的 reasoning_content) */
137
+ reasoning: string | null;
138
+ /** 本次调用的 Token 用量统计 */
139
+ usage: TokenUsage | null;
140
+ }
141
+ /** 标准化的 Token 用量 */
142
+ interface TokenUsage {
143
+ /** 输入 token 数 */
144
+ input: number;
145
+ /** 输出 token 数 */
146
+ output: number;
147
+ /** 命中缓存(缓存读取)的 token 数 */
148
+ cacheRead: number;
149
+ /** 写入缓存的 token 数 */
150
+ cacheWrite: number;
151
+ }
152
+ /** 流式输出的单个 chunk */
153
+ interface StreamChunk {
154
+ /** 文本增量;该 chunk 无文本时为 null */
155
+ content: string | null;
156
+ /** 推理内容增量 */
157
+ reasoning: string | null;
158
+ /**
159
+ * 工具调用:流式过程中为 null;
160
+ * 流结束的最终 chunk 中,有工具调用时为完整列表,否则为 null
161
+ */
162
+ toolCalls: ToolCall[] | null;
163
+ /** 累计 Token 用量(OpenAI 在流结束前的最后一个 chunk 中返回) */
164
+ usage: TokenUsage | null;
165
+ /** 结束原因(仅在流结束 chunk 中出现) */
166
+ finishReason: string | null;
167
+ }
168
+ /** 对话消息 */
169
+ interface Message {
170
+ /** 本轮任务ID */
171
+ taskId?: string;
172
+ /** 消息角色 */
173
+ role: "system" | "user" | "assistant" | "tool" | "notice";
174
+ /** 消息正文 */
175
+ content: string;
176
+ /**
177
+ * 用户消息的附件(图片/音频/视频,base64 data URL)。
178
+ *
179
+ * 仅在产生它的这一轮里发给模型:`_finalizeOutbound` 会剥离历史轮次的附件,
180
+ * 落盘前也会被 `stripAttachments` 去掉(见 `engine/attachments.ts`)。
181
+ */
182
+ attachments?: MessageAttachment[];
183
+ /**
184
+ * 同一批附件的落盘引用(轻量,会随消息一起落盘)。
185
+ *
186
+ * 控制台用它在用户消息上方渲染缩略图、在聊天详情里回看;字节本体存在
187
+ * `sessions/<id>/attachments/` 下。
188
+ */
189
+ attachmentRefs?: StoredAttachment[];
190
+ /** 附加来源信息(展示用) */
191
+ source?: Record<string, unknown>;
192
+ /** 展示用的替代文本(展示用) */
193
+ _display?: string;
194
+ /** 消息时间戳 */
195
+ ts?: number;
196
+ /** 推理过程文本(assistant 消息) */
197
+ reasoning?: string;
198
+ /** Token 用量(assistant 消息) */
199
+ usage?: Record<string, unknown>;
200
+ /** 关联的工具调用 ID(tool 消息回填用) */
201
+ tool_call_id?: string;
202
+ /** 工具调用名称(tool 消息回填用) */
203
+ tool_call_name?: string;
204
+ /** 工具调用列表(assistant 消息,OpenAI 格式) */
205
+ tool_calls?: {
206
+ id: string;
207
+ type: "function";
208
+ function: {
209
+ name: string;
210
+ arguments: string;
211
+ };
212
+ }[];
213
+ /** 通知类型:错误 / 中断 / 上下文压缩 / 模型切换 */
214
+ kind?: "error" | "interrupted" | "compacted" | "model_switch" | "retry";
215
+ /** 通知附加文本 */
216
+ text?: string;
217
+ }
218
+ /**
219
+ * 推理强度(reasoning effort)
220
+ *
221
+ * 控制模型在生成答案前投入的推理计算量(OpenAI 的
222
+ * reasoning_effort / Responses 的 reasoning.effort 参数)。
223
+ * 仅对支持该参数的非 DeepSeek 模型生效(DeepSeek 用 thinking
224
+ * 布尔开关,不支持级别控制,Provider 层会跳过)。
225
+ */
226
+ type ReasoningEffort = "low" | "medium" | "high";
227
+ /** OpenAI 工具 Schema */
228
+ interface ToolSchema {
229
+ type: "function";
230
+ function: {
231
+ name: string;
232
+ description: string;
233
+ parameters: Record<string, unknown>;
234
+ };
235
+ }
236
+
237
+ export { ATTACHMENT_DIR as A, type Message as M, type ReasoningEffort as R, type StreamChunk as S, type TokenUsage as T, UPLOAD_DIR as U, type WorkspaceFileRef as W, type ToolSchema as a, type MessageAttachment as b, type StoredAttachment as c, type AssistantTurn as d, AttachmentError as e, MAX_ATTACHMENTS as f, MAX_ATTACHMENT_BYTES as g, type ToolCall as h, attachmentBytes as i, buildWorkspaceFileNotice as j, hasNonImageAttachments as k, saveAttachmentsToWorkspace as l, splitByCapability as m, normalizeAttachments as n, stripAttachments as o, readStoredAttachment as r, saveAttachments as s };
package/package.json CHANGED
@@ -1,15 +1,12 @@
1
1
  {
2
2
  "name": "@zqagent/core",
3
- "version": "0.2.20",
3
+ "version": "0.3.6",
4
4
  "description": "TypeScript agent engine core — TurnEngine, ToolRegistry, PermissionEngine, OpenAI provider with 18 built-in tools",
5
5
  "author": "成都志前科技有限公司",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
8
8
  "module": "./dist/index.js",
9
9
  "types": "./dist/index.d.ts",
10
- "bin": {
11
- "zqagent": "./bin/zqagent"
12
- },
13
10
  "exports": {
14
11
  ".": {
15
12
  "import": {
@@ -21,16 +18,6 @@
21
18
  "default": "./dist/index.cjs"
22
19
  }
23
20
  },
24
- "./server": {
25
- "import": {
26
- "types": "./dist/server/index.d.ts",
27
- "default": "./dist/server/index.js"
28
- },
29
- "require": {
30
- "types": "./dist/server/index.d.cts",
31
- "default": "./dist/server/index.cjs"
32
- }
33
- },
34
21
  "./tools/fs": {
35
22
  "import": {
36
23
  "types": "./dist/tools/files.d.ts",
@@ -141,6 +128,16 @@
141
128
  "default": "./dist/tools/explore.cjs"
142
129
  }
143
130
  },
131
+ "./internal/*": {
132
+ "import": {
133
+ "types": "./dist/internal/*.d.ts",
134
+ "default": "./dist/internal/*.js"
135
+ },
136
+ "require": {
137
+ "types": "./dist/internal/*.d.cts",
138
+ "default": "./dist/internal/*.cjs"
139
+ }
140
+ },
144
141
  "./tools/media": {
145
142
  "import": {
146
143
  "types": "./dist/tools/media.d.ts",
@@ -154,36 +151,22 @@
154
151
  },
155
152
  "files": [
156
153
  "dist/",
157
- "bin/",
158
154
  "SECURITY.md",
159
155
  "CONTRIBUTING.md"
160
156
  ],
161
- "scripts": {
162
- "dev": "tsx src/cli/index.ts",
163
- "start": "tsx src/cli/index.ts",
164
- "server": "tsx src/server/index.ts",
165
- "build": "tsup",
166
- "watch": "tsup --watch",
167
- "build:sea": "tsup --config tsup.sea.config.ts",
168
- "build:cli-bin": "node scripts/build_cli_binary.mjs",
169
- "probes:sea": "node scripts/make_sea_probes.mjs",
170
- "fetch:busybox": "node scripts/fetch_busybox_windows.mjs",
171
- "typecheck": "tsc --noEmit",
172
- "test": "vitest run"
173
- },
174
157
  "dependencies": {
175
158
  "@modelcontextprotocol/sdk": "^1.30.0",
159
+ "@zqagent/shared": "0.1.0",
176
160
  "chalk": "^5.6.2",
177
161
  "cli-highlight": "^2.1.11",
178
162
  "cli-table3": "^0.6.5",
179
- "dotenv": "^16.4.0",
163
+ "debug": "^4.4.3",
180
164
  "markdown-it": "^15.0.2",
181
165
  "node-emoji": "^2.2.0",
182
166
  "node-fetch": "^2.7.0",
183
- "nodemailer": "^10.0.16",
184
167
  "openai": "^4.73.0",
185
- "socks-proxy-agent": "^9.0.0",
186
- "ws": "^8.22.0"
168
+ "socks": "^2.8.9",
169
+ "socks-proxy-agent": "^9.0.0"
187
170
  },
188
171
  "devDependencies": {
189
172
  "@types/node": "^22.20.1",
@@ -191,13 +174,13 @@
191
174
  "@types/node-fetch": "^2.6.13",
192
175
  "@types/nodemailer": "^8.0.2",
193
176
  "@types/ws": "^8.18.2",
194
- "@zqagent/shared": "workspace:*",
195
- "postject": "^1.0.0-alpha.6",
196
177
  "tsup": "^8.5.1",
197
178
  "tsx": "^4.19.0",
198
179
  "typescript": "^5.6.0",
199
180
  "vitest": "^4.1.10",
200
- "zod": "^3.25.76"
181
+ "werift": "0.25.2",
182
+ "zod": "^3.25.76",
183
+ "ws": "^8.22.0"
201
184
  },
202
185
  "keywords": [
203
186
  "ai-agent",
@@ -215,5 +198,11 @@
215
198
  "type": "git",
216
199
  "url": "https://github.com/zqagent/zqagent.git"
217
200
  },
218
- "homepage": "https://agent.cd-zq.com/"
219
- }
201
+ "homepage": "https://agent.cd-zq.com/",
202
+ "scripts": {
203
+ "build": "tsup",
204
+ "watch": "tsup --watch",
205
+ "typecheck": "tsc --noEmit",
206
+ "test": "vitest run"
207
+ }
208
+ }
package/bin/zqagent DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import "../dist/cli/index.js";