aws-runtime-bridge 1.9.33 → 1.9.40

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 (276) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +35 -1
  2. package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
  3. package/dist/adapter/AcodeSdkAdapter.js +417 -40
  4. package/dist/adapter/ClaudeSdkAdapter.d.ts +6 -0
  5. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
  6. package/dist/adapter/ClaudeSdkAdapter.js +23 -1
  7. package/dist/adapter/idle-poll-loop.d.ts +2 -1
  8. package/dist/adapter/idle-poll-loop.d.ts.map +1 -1
  9. package/dist/adapter/types.d.ts +65 -3
  10. package/dist/adapter/types.d.ts.map +1 -1
  11. package/dist/adapter/types.js +5 -4
  12. package/dist/index.js +4 -0
  13. package/dist/routes/acode-todos.d.ts +11 -0
  14. package/dist/routes/acode-todos.d.ts.map +1 -0
  15. package/dist/routes/acode-todos.js +75 -0
  16. package/dist/routes/memory.d.ts +1 -1
  17. package/dist/routes/memory.d.ts.map +1 -1
  18. package/dist/routes/memory.js +3 -3
  19. package/dist/routes/pty.d.ts.map +1 -1
  20. package/dist/routes/pty.js +9 -0
  21. package/dist/routes/sub-agents.d.ts +14 -0
  22. package/dist/routes/sub-agents.d.ts.map +1 -0
  23. package/dist/routes/sub-agents.js +253 -0
  24. package/dist/routes/terminal.d.ts +9 -1
  25. package/dist/routes/terminal.d.ts.map +1 -1
  26. package/dist/routes/terminal.js +207 -22
  27. package/dist/services/agent-event-store.d.ts +1 -0
  28. package/dist/services/agent-event-store.d.ts.map +1 -1
  29. package/dist/services/event-delta-pusher.js +4 -4
  30. package/dist/services/session-output.d.ts +3 -0
  31. package/dist/services/session-output.d.ts.map +1 -1
  32. package/dist/services/session-output.js +38 -2
  33. package/dist/services/sub-agent-manager-instance.d.ts +4 -0
  34. package/dist/services/sub-agent-manager-instance.d.ts.map +1 -0
  35. package/dist/services/sub-agent-manager-instance.js +12 -0
  36. package/dist/services/workspace-files.d.ts +1 -0
  37. package/dist/services/workspace-files.d.ts.map +1 -1
  38. package/dist/services/workspace-files.js +57 -1
  39. package/package/acode/dist/ask-user-question-tool.d.ts +47 -0
  40. package/package/acode/dist/ask-user-question-tool.d.ts.map +1 -0
  41. package/package/acode/dist/ask-user-question-tool.js +233 -0
  42. package/package/acode/dist/built-in-file-tools.d.ts +2 -0
  43. package/package/acode/dist/built-in-file-tools.d.ts.map +1 -1
  44. package/package/acode/dist/compaction.d.ts +206 -0
  45. package/package/acode/dist/compaction.d.ts.map +1 -0
  46. package/package/acode/dist/compaction.js +664 -0
  47. package/package/acode/dist/config.d.ts +6 -1
  48. package/package/acode/dist/config.d.ts.map +1 -1
  49. package/package/acode/dist/config.js +27 -2
  50. package/package/acode/dist/index.d.ts +4 -0
  51. package/package/acode/dist/index.d.ts.map +1 -1
  52. package/package/acode/dist/index.js +4 -0
  53. package/package/acode/dist/runtime.d.ts +137 -0
  54. package/package/acode/dist/runtime.d.ts.map +1 -1
  55. package/package/acode/dist/runtime.js +974 -172
  56. package/package/acode/dist/skill-tool.d.ts +30 -0
  57. package/package/acode/dist/skill-tool.d.ts.map +1 -0
  58. package/package/acode/dist/skill-tool.js +174 -0
  59. package/package/acode/dist/sub-agent-manager.d.ts +169 -0
  60. package/package/acode/dist/sub-agent-manager.d.ts.map +1 -0
  61. package/package/acode/dist/sub-agent-manager.js +535 -0
  62. package/package/acode/dist/sub-agent-store.d.ts +33 -0
  63. package/package/acode/dist/sub-agent-store.d.ts.map +1 -0
  64. package/package/acode/dist/sub-agent-store.js +109 -0
  65. package/package/acode/dist/sub-agent-tools.d.ts +72 -0
  66. package/package/acode/dist/sub-agent-tools.d.ts.map +1 -0
  67. package/package/acode/dist/sub-agent-tools.js +429 -0
  68. package/package/acode/dist/sub-agent-types.d.ts +81 -0
  69. package/package/acode/dist/sub-agent-types.d.ts.map +1 -0
  70. package/package/acode/dist/sub-agent-types.js +8 -0
  71. package/package/acode/dist/todo-store.d.ts +42 -0
  72. package/package/acode/dist/todo-store.d.ts.map +1 -0
  73. package/package/acode/dist/todo-store.js +68 -0
  74. package/package/acode/dist/todo-tool.d.ts +6 -0
  75. package/package/acode/dist/todo-tool.d.ts.map +1 -0
  76. package/package/acode/dist/todo-tool.js +138 -0
  77. package/package/acode/dist/types.d.ts +22 -1
  78. package/package/acode/dist/types.d.ts.map +1 -1
  79. package/package/acode/package.json +13 -2
  80. package/package/aws-client-agent-mcp/dist/context-manager.test.js +0 -3
  81. package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +1 -1
  82. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +83 -50
  83. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
  84. package/package/aws-client-agent-mcp/dist/mcp-server.js +451 -346
  85. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
  86. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +259 -241
  87. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
  88. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +1 -19
  89. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -1
  90. package/package/aws-client-agent-mcp/dist/mcp-tools.js +4 -77
  91. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -1
  92. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +17 -40
  93. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
  94. package/package/aws-client-agent-mcp/dist/memory-store.js +62 -149
  95. package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
  96. package/package/aws-client-agent-mcp/dist/memory-store.test.js +175 -164
  97. package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +1 -1
  98. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +3 -9
  99. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
  100. package/package/aws-client-agent-mcp/dist/memory-tools.js +28 -55
  101. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
  102. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +27 -9
  103. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +1 -1
  104. package/package/aws-client-agent-mcp/dist/message-buffer.js +100 -23
  105. package/package/aws-client-agent-mcp/dist/message-buffer.js.map +1 -1
  106. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +1 -14
  107. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +1 -1
  108. package/package/aws-client-agent-mcp/dist/server-memory-store.js +7 -18
  109. package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +1 -1
  110. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +1 -1
  111. package/package/aws-client-agent-mcp/dist/status-reporter.js +8 -5
  112. package/package/aws-client-agent-mcp/dist/status-reporter.js.map +1 -1
  113. package/package/aws-client-agent-mcp/dist/status-reporter.test.js +93 -0
  114. package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +1 -1
  115. package/package/aws-client-agent-mcp/dist/types.d.ts +3 -25
  116. package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
  117. package/package.json +17 -7
  118. package/dist/adapter/AcodeSdkAdapter.test.d.ts +0 -2
  119. package/dist/adapter/AcodeSdkAdapter.test.d.ts.map +0 -1
  120. package/dist/adapter/AcodeSdkAdapter.test.js +0 -2000
  121. package/dist/adapter/AdapterRegistry.test.d.ts +0 -5
  122. package/dist/adapter/AdapterRegistry.test.d.ts.map +0 -1
  123. package/dist/adapter/AdapterRegistry.test.js +0 -118
  124. package/dist/adapter/ClaudeSdkAdapter.test.d.ts +0 -2
  125. package/dist/adapter/ClaudeSdkAdapter.test.d.ts.map +0 -1
  126. package/dist/adapter/ClaudeSdkAdapter.test.js +0 -311
  127. package/dist/adapter/CodexSdkAdapter.test.d.ts +0 -2
  128. package/dist/adapter/CodexSdkAdapter.test.d.ts.map +0 -1
  129. package/dist/adapter/CodexSdkAdapter.test.js +0 -270
  130. package/dist/adapter/OpencodeSdkAdapter.test.d.ts +0 -2
  131. package/dist/adapter/OpencodeSdkAdapter.test.d.ts.map +0 -1
  132. package/dist/adapter/OpencodeSdkAdapter.test.js +0 -158
  133. package/dist/adapter/acode-tool-names.test.d.ts +0 -2
  134. package/dist/adapter/acode-tool-names.test.d.ts.map +0 -1
  135. package/dist/adapter/acode-tool-names.test.js +0 -28
  136. package/dist/adapter/adapter.test.d.ts +0 -5
  137. package/dist/adapter/adapter.test.d.ts.map +0 -1
  138. package/dist/adapter/adapter.test.js +0 -180
  139. package/dist/adapter/idle-poll-loop.test.d.ts +0 -2
  140. package/dist/adapter/idle-poll-loop.test.d.ts.map +0 -1
  141. package/dist/adapter/idle-poll-loop.test.js +0 -85
  142. package/dist/adapter/types.test.d.ts +0 -2
  143. package/dist/adapter/types.test.d.ts.map +0 -1
  144. package/dist/adapter/types.test.js +0 -50
  145. package/dist/adapters/cc-switch/mcp-acode.test.d.ts +0 -2
  146. package/dist/adapters/cc-switch/mcp-acode.test.d.ts.map +0 -1
  147. package/dist/adapters/cc-switch/mcp-acode.test.js +0 -80
  148. package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts +0 -2
  149. package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts.map +0 -1
  150. package/dist/adapters/cc-switch/mcp-claudecode.test.js +0 -75
  151. package/dist/adapters/cc-switch/mcp-codex.test.d.ts +0 -2
  152. package/dist/adapters/cc-switch/mcp-codex.test.d.ts.map +0 -1
  153. package/dist/adapters/cc-switch/mcp-codex.test.js +0 -126
  154. package/dist/adapters/cc-switch/mcp-opencode.test.d.ts +0 -2
  155. package/dist/adapters/cc-switch/mcp-opencode.test.d.ts.map +0 -1
  156. package/dist/adapters/cc-switch/mcp-opencode.test.js +0 -62
  157. package/dist/adapters/cc-switch/skill-directory.test.d.ts +0 -2
  158. package/dist/adapters/cc-switch/skill-directory.test.d.ts.map +0 -1
  159. package/dist/adapters/cc-switch/skill-directory.test.js +0 -74
  160. package/dist/config.test.d.ts +0 -2
  161. package/dist/config.test.d.ts.map +0 -1
  162. package/dist/config.test.js +0 -107
  163. package/dist/routes/ai-sources.test.d.ts +0 -2
  164. package/dist/routes/ai-sources.test.d.ts.map +0 -1
  165. package/dist/routes/ai-sources.test.js +0 -169
  166. package/dist/routes/file-browser.test.d.ts +0 -5
  167. package/dist/routes/file-browser.test.d.ts.map +0 -1
  168. package/dist/routes/file-browser.test.js +0 -155
  169. package/dist/routes/git.test.d.ts +0 -2
  170. package/dist/routes/git.test.d.ts.map +0 -1
  171. package/dist/routes/git.test.js +0 -330
  172. package/dist/routes/instance.test.d.ts +0 -5
  173. package/dist/routes/instance.test.d.ts.map +0 -1
  174. package/dist/routes/instance.test.js +0 -389
  175. package/dist/routes/mcp.test.d.ts +0 -5
  176. package/dist/routes/mcp.test.d.ts.map +0 -1
  177. package/dist/routes/mcp.test.js +0 -92
  178. package/dist/routes/memory-route-wiring.test.d.ts +0 -2
  179. package/dist/routes/memory-route-wiring.test.d.ts.map +0 -1
  180. package/dist/routes/memory-route-wiring.test.js +0 -15
  181. package/dist/routes/memory.test.d.ts +0 -2
  182. package/dist/routes/memory.test.d.ts.map +0 -1
  183. package/dist/routes/memory.test.js +0 -177
  184. package/dist/routes/properties.test.d.ts +0 -5
  185. package/dist/routes/properties.test.d.ts.map +0 -1
  186. package/dist/routes/properties.test.js +0 -72
  187. package/dist/routes/pty.test.d.ts +0 -2
  188. package/dist/routes/pty.test.d.ts.map +0 -1
  189. package/dist/routes/pty.test.js +0 -82
  190. package/dist/routes/runtime-binding.test.d.ts +0 -2
  191. package/dist/routes/runtime-binding.test.d.ts.map +0 -1
  192. package/dist/routes/runtime-binding.test.js +0 -32
  193. package/dist/routes/sessions.test.d.ts +0 -5
  194. package/dist/routes/sessions.test.d.ts.map +0 -1
  195. package/dist/routes/sessions.test.js +0 -86
  196. package/dist/routes/skills.test.d.ts +0 -5
  197. package/dist/routes/skills.test.d.ts.map +0 -1
  198. package/dist/routes/skills.test.js +0 -50
  199. package/dist/routes/system-metrics.test.d.ts +0 -2
  200. package/dist/routes/system-metrics.test.d.ts.map +0 -1
  201. package/dist/routes/system-metrics.test.js +0 -16
  202. package/dist/routes/terminal.stop-options.test.d.ts +0 -2
  203. package/dist/routes/terminal.stop-options.test.d.ts.map +0 -1
  204. package/dist/routes/terminal.stop-options.test.js +0 -39
  205. package/dist/routes/terminal.test.d.ts +0 -2
  206. package/dist/routes/terminal.test.d.ts.map +0 -1
  207. package/dist/routes/terminal.test.js +0 -746
  208. package/dist/routes/yml.test.d.ts +0 -5
  209. package/dist/routes/yml.test.d.ts.map +0 -1
  210. package/dist/routes/yml.test.js +0 -58
  211. package/dist/services/ai-source-apply.test.d.ts +0 -2
  212. package/dist/services/ai-source-apply.test.d.ts.map +0 -1
  213. package/dist/services/ai-source-apply.test.js +0 -138
  214. package/dist/services/auto-register.test.d.ts +0 -2
  215. package/dist/services/auto-register.test.d.ts.map +0 -1
  216. package/dist/services/auto-register.test.js +0 -184
  217. package/dist/services/aws-client-agent-mcp.test.d.ts +0 -2
  218. package/dist/services/aws-client-agent-mcp.test.d.ts.map +0 -1
  219. package/dist/services/aws-client-agent-mcp.test.js +0 -242
  220. package/dist/services/bridge-package-publish-hooks.test.d.ts +0 -2
  221. package/dist/services/bridge-package-publish-hooks.test.d.ts.map +0 -1
  222. package/dist/services/bridge-package-publish-hooks.test.js +0 -136
  223. package/dist/services/cc-switch-discovery.test.d.ts +0 -2
  224. package/dist/services/cc-switch-discovery.test.d.ts.map +0 -1
  225. package/dist/services/cc-switch-discovery.test.js +0 -56
  226. package/dist/services/cli-commands.test.d.ts +0 -2
  227. package/dist/services/cli-commands.test.d.ts.map +0 -1
  228. package/dist/services/cli-commands.test.js +0 -230
  229. package/dist/services/instance-init-service.test.d.ts +0 -2
  230. package/dist/services/instance-init-service.test.d.ts.map +0 -1
  231. package/dist/services/instance-init-service.test.js +0 -140
  232. package/dist/services/instance-state.test.d.ts +0 -2
  233. package/dist/services/instance-state.test.d.ts.map +0 -1
  234. package/dist/services/instance-state.test.js +0 -245
  235. package/dist/services/mcp-launch-binding-queue.test.d.ts +0 -2
  236. package/dist/services/mcp-launch-binding-queue.test.d.ts.map +0 -1
  237. package/dist/services/mcp-launch-binding-queue.test.js +0 -181
  238. package/dist/services/runtime-binding.test.d.ts +0 -2
  239. package/dist/services/runtime-binding.test.d.ts.map +0 -1
  240. package/dist/services/runtime-binding.test.js +0 -78
  241. package/dist/services/runtime-lifecycle-policy.test.d.ts +0 -2
  242. package/dist/services/runtime-lifecycle-policy.test.d.ts.map +0 -1
  243. package/dist/services/runtime-lifecycle-policy.test.js +0 -41
  244. package/dist/services/session-output.test.d.ts +0 -5
  245. package/dist/services/session-output.test.d.ts.map +0 -1
  246. package/dist/services/session-output.test.js +0 -177
  247. package/dist/services/startup-config-wizard.test.d.ts +0 -2
  248. package/dist/services/startup-config-wizard.test.d.ts.map +0 -1
  249. package/dist/services/startup-config-wizard.test.js +0 -184
  250. package/dist/services/terminal-persistence.test.d.ts +0 -5
  251. package/dist/services/terminal-persistence.test.d.ts.map +0 -1
  252. package/dist/services/terminal-persistence.test.js +0 -159
  253. package/dist/services/tool-installer.test.d.ts +0 -2
  254. package/dist/services/tool-installer.test.d.ts.map +0 -1
  255. package/dist/services/tool-installer.test.js +0 -225
  256. package/dist/services/workspace-files.test.d.ts +0 -2
  257. package/dist/services/workspace-files.test.d.ts.map +0 -1
  258. package/dist/services/workspace-files.test.js +0 -648
  259. package/dist/services/workspace-watch.test.d.ts +0 -2
  260. package/dist/services/workspace-watch.test.d.ts.map +0 -1
  261. package/dist/services/workspace-watch.test.js +0 -38
  262. package/dist/utils/file-utils.test.d.ts +0 -2
  263. package/dist/utils/file-utils.test.d.ts.map +0 -1
  264. package/dist/utils/file-utils.test.js +0 -244
  265. package/dist/utils/logger.test.d.ts +0 -2
  266. package/dist/utils/logger.test.d.ts.map +0 -1
  267. package/dist/utils/logger.test.js +0 -93
  268. package/dist/utils/sdk-package-loader.test.d.ts +0 -2
  269. package/dist/utils/sdk-package-loader.test.d.ts.map +0 -1
  270. package/dist/utils/sdk-package-loader.test.js +0 -84
  271. package/dist/utils/validation.test.d.ts +0 -2
  272. package/dist/utils/validation.test.d.ts.map +0 -1
  273. package/dist/utils/validation.test.js +0 -88
  274. package/dist/utils/yaml-utils.test.d.ts +0 -2
  275. package/dist/utils/yaml-utils.test.d.ts.map +0 -1
  276. package/dist/utils/yaml-utils.test.js +0 -363
@@ -0,0 +1,206 @@
1
+ /**
2
+ * 上下文压缩模块 — 参考 OpenCode compaction.ts 的设计
3
+ *
4
+ * 核心策略:
5
+ * 1. Prune(裁剪):从旧到新遍历工具输出,超过保护线后用占位符替换内容
6
+ * 2. Summarize(摘要):将早期对话结构化摘要,保留目标/指令/发现/已完成/相关文件
7
+ *
8
+ * 触发时机:在每次 AI 请求前检测 token 是否溢出,溢出则执行压缩
9
+ *
10
+ * 与 OpenCode 的对应关系:
11
+ * - isOverflow ↔ SessionCompaction.isOverflow
12
+ * - prune ↔ SessionCompaction.prune
13
+ * - summarize ↔ SessionCompaction.process (LLM 摘要的简化版)
14
+ */
15
+ /** 压缩缓冲区:保留这么多 token 的空闲空间,避免压缩过程中溢出 */
16
+ export declare const COMPACTION_BUFFER = 20000;
17
+ /** 基于实际累积 token 的触发比例:当累积量达到上下文窗口的此比例时触发压缩 */
18
+ export declare const COMPACTION_TRIGGER_RATIO = 0.55;
19
+ /** Prune 保护线默认值:保留最近 PRUNE_PROTECT token 的工具输出完整。
20
+ * 注意:实际使用时会按 contextLimit 比例调整(见 pruneToolOutputs),
21
+ * 避免在小上下文窗口(如 60k)下保护线过高导致 prune 永不触发。
22
+ */
23
+ export declare const PRUNE_PROTECT = 40000;
24
+ /** Prune 最小收益默认值:累计可释放 token 不足此数时跳过修剪。
25
+ * 注意:实际使用时会按 contextLimit 比例调整。
26
+ */
27
+ export declare const PRUNE_MINIMUM = 20000;
28
+ /**
29
+ * LLM 摘要 prompt 模板(OpenCode 风格结构化摘要)。
30
+ *
31
+ * 用于 summarizeConversationWithLLM:追加到 user 消息末尾,指导 LLM 按结构化
32
+ * 段落(Goal/Instructions/Discoveries/Accomplished/Files)输出摘要,便于后续
33
+ * 轮次快速恢复上下文。LLM 摘要失败时降级到 rule-based summarizeConversation。
34
+ */
35
+ export declare const COMPACTION_LLM_PROMPT_TEMPLATE: string;
36
+ interface ChatMessageLike {
37
+ role: "system" | "user" | "assistant" | "tool";
38
+ content: string | unknown[] | null;
39
+ tool_call_id?: string;
40
+ tool_calls?: unknown[];
41
+ }
42
+ /** 压缩结果 */
43
+ export interface CompactionResult {
44
+ /** 使用的策略 */
45
+ strategy: "prune" | "summarize" | "prune+summarize" | "none";
46
+ /** 释放的 token 数 */
47
+ freedTokens: number;
48
+ /** 压缩前对话大小(KB) */
49
+ sizeBeforeKB: number;
50
+ /** 压缩后对话大小(KB) */
51
+ sizeAfterKB: number;
52
+ /** 压缩前消息数 */
53
+ messageCountBefore: number;
54
+ /** 压缩后消息数 */
55
+ messageCountAfter: number;
56
+ /** 被裁剪的工具消息数 */
57
+ prunedToolMessages: number;
58
+ /** 被摘要化的消息数 */
59
+ summarizedMessages: number;
60
+ }
61
+ /**
62
+ * 压缩阶段事件:由 performCompaction 通过 onPhase 回调发射,
63
+ * 供 runtime 转换为时间线父子树结构(start → phase* → end)。
64
+ */
65
+ export interface CompactionPhaseEvent {
66
+ phase: "prune_start" | "prune_end" | "summarize_start" | "summarize_end";
67
+ /** 涉及的消息数(prune/summarize 阶段开始时) */
68
+ messageCount?: number;
69
+ /** 已裁剪的工具消息数(prune_end) */
70
+ prunedCount?: number;
71
+ /** 释放的 token 数(prune_end) */
72
+ freedTokens?: number;
73
+ /** 已摘要化的消息数(summarize_end) */
74
+ summarizedCount?: number;
75
+ /** 是否使用了 LLM 摘要(summarize_end) */
76
+ usedLLM?: boolean;
77
+ }
78
+ /**
79
+ * LLM 摘要器:由 runtime 注入,调用当前 provider 发起一次非流式摘要请求。
80
+ * 失败时抛出异常,由 summarizeConversation 降级到规则摘要。
81
+ */
82
+ export type LLMSummarizer = (input: {
83
+ conversationText: string;
84
+ messageCount: number;
85
+ contextLimit: number;
86
+ }) => Promise<string>;
87
+ /**
88
+ * 计算压缩触发阈值:取 min(contextLimit × 55%, hardLimit - reserved)。
89
+ *
90
+ * - ratioBased = contextLimit × COMPACTION_TRIGGER_RATIO(基于窗口比例的软阈值)
91
+ * - hardLimit = inputLimit ?? contextLimit(provider 显式 inputLimit 优先)
92
+ * - reserved = min(COMPACTION_BUFFER, maxOutput)(buffer 不超过输出上限)
93
+ *
94
+ * 取两者较小者,既避免小窗口下过早触发,又避免接近硬上限时来不及压缩。
95
+ */
96
+ export declare function calculateCompactionThreshold(contextLimit: number, maxOutput: number, inputLimit?: number): number;
97
+ /**
98
+ * 根据模型名查找上下文窗口大小。
99
+ * 主流程:优先使用传入的 configOverrides → 精确匹配 → 前缀匹配(按长度降序)→ 默认值。
100
+ *
101
+ * @param modelName 模型名
102
+ * @param configOverrides 可选的配置覆盖值(来自 acode.json 的 contextLimit/maxOutput)
103
+ */
104
+ export declare function lookupModelLimits(modelName: string, configOverrides?: {
105
+ contextLimit?: number;
106
+ maxOutput?: number;
107
+ }): {
108
+ contextLimit: number;
109
+ maxOutput: number;
110
+ };
111
+ /**
112
+ * 粗略估算文本的 token 数。
113
+ * 不使用真实 tokenizer(太慢),基于字符数乘经验系数。
114
+ * 对纯 ASCII 约 4 字符/token,对中文约 1.5-2 字符/token,混合取 3 字符/token。
115
+ */
116
+ export declare function estimateTokens(text: string): number;
117
+ /**
118
+ * 估算整个对话的 token 数。
119
+ */
120
+ export declare function estimateConversationTokens(messages: readonly ChatMessageLike[]): number;
121
+ /**
122
+ * 计算对话的 KB 大小。
123
+ */
124
+ export declare function conversationSizeKB(messages: readonly ChatMessageLike[]): number;
125
+ /**
126
+ * 判断对话是否上下文溢出(基于文本估算)。
127
+ * 使用显式传入的 contextLimit 和比例触发,不依赖模型名查找表。
128
+ *
129
+ * @param messages 对话消息数组
130
+ * @param contextLimit 上下文窗口上限
131
+ * @param maxOutput 模型最大输出 token(未使用,保留参数兼容)
132
+ */
133
+ export declare function isOverflow(messages: readonly ChatMessageLike[], contextLimit: number, _maxOutput?: number): boolean;
134
+ /**
135
+ * 基于 provider 实际返回的累积 token 使用量判断是否应触发压缩。
136
+ *
137
+ * provider 每次请求都会返回实际 token 计数(input + output),
138
+ * 这个计数比基于文本的估算(estimateConversationTokens)要准确得多。
139
+ *
140
+ * 触发条件:累积 tokens >= contextLimit * COMPACTION_TRIGGER_RATIO
141
+ * 使用显式传入的 contextLimit,不依赖模型名查找表。
142
+ *
143
+ * @param accumulatedInput provider 实际累积的 input tokens
144
+ * @param accumulatedOutput provider 实际累积的 output tokens
145
+ * @param contextLimit 上下文窗口上限(来自模板配置,未配置时使用默认值)
146
+ */
147
+ export declare function isOverflowByActualUsage(accumulatedInput: number, accumulatedOutput: number, contextLimit: number): boolean;
148
+ /**
149
+ * Prune:从消息列表中裁剪旧工具消息的输出内容。
150
+ *
151
+ * 算法(参考 OpenCode compaction.ts:58-99):
152
+ * 1. 从最新消息往旧遍历
153
+ * 2. 跳过前 2 轮对话(保护最近上下文)
154
+ * 3. 累计工具消息的 token
155
+ * 4. 超过保护线后,将工具输出替换为占位符
156
+ * 5. 只有收益超过最小阈值才真正执行
157
+ *
158
+ * 保护线和最小阈值会按 contextLimit 比例调整:
159
+ * - protectLine = min(PRUNE_PROTECT, contextLimit * PRUNE_PROTECT_RATIO)
160
+ * - minimumGain = min(PRUNE_MINIMUM, contextLimit * PRUNE_MINIMUM_RATIO)
161
+ * 这样在小上下文窗口(如 60k)下也能正常触发 prune,
162
+ * 而不是固定 40k/20k 导致 60k 上下文永远无法 prune。
163
+ *
164
+ * @param messages 对话消息数组(会被原地修改)
165
+ * @param contextLimit 上下文窗口大小,用于按比例调整阈值(默认使用 DEFAULT_CONTEXT_LIMIT)
166
+ * @returns 裁剪结果
167
+ */
168
+ export declare function pruneToolOutputs(messages: ChatMessageLike[], contextLimit?: number): {
169
+ prunedCount: number;
170
+ freedTokens: number;
171
+ };
172
+ /**
173
+ * Summarize:将早期对话消息替换为结构化摘要。
174
+ *
175
+ * 算法(参考 OpenCode compaction.ts:101-229 的 process 函数):
176
+ * 1. 分离 base system 消息和可压缩消息
177
+ * 2. 保留最近 COMPACTION_RECENT_MESSAGE_COUNT 条消息
178
+ * 3. 将早期消息生成结构化摘要
179
+ * 4. 用摘要消息替换早期消息
180
+ *
181
+ * @param messages 对话消息数组(会被原地修改)
182
+ * @returns 摘要化的消息数
183
+ */
184
+ export declare function summarizeConversation(messages: ChatMessageLike[], options?: {
185
+ llmSummarizer?: LLMSummarizer;
186
+ contextLimit?: number;
187
+ }): Promise<number>;
188
+ /**
189
+ * 执行完整压缩流程:Prune → 若仍溢出则 Summarize。
190
+ *
191
+ * 参考 OpenCode 的两阶段策略:
192
+ * 1. 先尝试 prune(低成本,只清除旧工具输出)
193
+ * 2. 若 prune 后仍溢出,执行 summarize(高成本,摘要化早期对话)
194
+ *
195
+ * @param messages 对话消息数组(会被原地修改)
196
+ * @param contextLimit 上下文窗口上限(来自模板配置,未配置时使用默认值)
197
+ * @param maxOutput 模型最大输出 token
198
+ * @param options 可选:llmSummarizer(LLM 摘要器,失败降级到规则摘要)、onPhase(阶段事件回调)
199
+ * @returns 压缩结果
200
+ */
201
+ export declare function performCompaction(messages: ChatMessageLike[], contextLimit: number, maxOutput?: number, options?: {
202
+ llmSummarizer?: LLMSummarizer;
203
+ onPhase?: (event: CompactionPhaseEvent) => void;
204
+ }): Promise<CompactionResult>;
205
+ export {};
206
+ //# sourceMappingURL=compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"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"}