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