openhorse 0.2.19 → 0.2.22
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/agents/coordinator.d.ts.map +1 -1
- package/dist/agents/fork.d.ts.map +1 -1
- package/dist/agents/fork.js +0 -1
- package/dist/agents/fork.js.map +1 -1
- package/dist/agents/worker-pool.d.ts.map +1 -1
- package/dist/agents/worker-pool.js +3 -1
- package/dist/agents/worker-pool.js.map +1 -1
- package/dist/cli.js +28 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +202 -77
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/parser.d.ts.map +1 -1
- package/dist/commands/parser.js +8 -3
- package/dist/commands/parser.js.map +1 -1
- package/dist/commands/types.d.ts +2 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/core/checkpoint.d.ts.map +1 -1
- package/dist/core/checkpoint.js +3 -0
- package/dist/core/checkpoint.js.map +1 -1
- package/dist/core/cost-tracker.d.ts +45 -5
- package/dist/core/cost-tracker.d.ts.map +1 -1
- package/dist/core/cost-tracker.js +78 -13
- package/dist/core/cost-tracker.js.map +1 -1
- package/dist/framework/index.d.ts +1 -1
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/prompt.d.ts.map +1 -1
- package/dist/framework/prompt.js +16 -0
- package/dist/framework/prompt.js.map +1 -1
- package/dist/framework/query.d.ts +25 -0
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +196 -56
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/store.d.ts +6 -1
- package/dist/framework/store.d.ts.map +1 -1
- package/dist/framework/store.js +10 -1
- package/dist/framework/store.js.map +1 -1
- package/dist/harness/context-harness.d.ts.map +1 -1
- package/dist/harness/context-harness.js +6 -1
- package/dist/harness/context-harness.js.map +1 -1
- package/dist/harness/ledger.d.ts +1 -0
- package/dist/harness/ledger.d.ts.map +1 -1
- package/dist/harness/ledger.js +12 -0
- package/dist/harness/ledger.js.map +1 -1
- package/dist/harness/safety.d.ts +2 -0
- package/dist/harness/safety.d.ts.map +1 -1
- package/dist/harness/safety.js +27 -3
- package/dist/harness/safety.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +1 -1
- package/dist/init.js.map +1 -1
- package/dist/ink-ui/components/Markdown.d.ts +1 -1
- package/dist/ink-ui/components/Markdown.d.ts.map +1 -1
- package/dist/ink-ui/components/Markdown.js +1 -1
- package/dist/ink-ui/components/Markdown.js.map +1 -1
- package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.js +0 -2
- package/dist/ink-ui/components/StatusLine.js.map +1 -1
- package/dist/ink-ui/runtime/grapheme.d.ts +9 -8
- package/dist/ink-ui/runtime/grapheme.d.ts.map +1 -1
- package/dist/ink-ui/runtime/grapheme.js +14 -60
- package/dist/ink-ui/runtime/grapheme.js.map +1 -1
- package/dist/ink-ui/runtime/input-buffer.d.ts +9 -31
- package/dist/ink-ui/runtime/input-buffer.d.ts.map +1 -1
- package/dist/ink-ui/runtime/input-buffer.js +15 -162
- package/dist/ink-ui/runtime/input-buffer.js.map +1 -1
- package/dist/ink-ui/runtime/native-cursor.js +0 -25
- package/dist/ink-ui/runtime/native-cursor.js.map +1 -1
- package/dist/ink-ui/runtime/prompt-layout.d.ts +9 -29
- package/dist/ink-ui/runtime/prompt-layout.d.ts.map +1 -1
- package/dist/ink-ui/runtime/prompt-layout.js +18 -166
- package/dist/ink-ui/runtime/prompt-layout.js.map +1 -1
- package/dist/ink-ui/runtime/transcript-state.d.ts.map +1 -1
- package/dist/ink-ui/runtime/transcript-state.js +2 -0
- package/dist/ink-ui/runtime/transcript-state.js.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.js +23 -5
- package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
- package/dist/memory/entrypoint.js +1 -1
- package/dist/memory/entrypoint.js.map +1 -1
- package/dist/memory/storage.js +1 -1
- package/dist/memory/storage.js.map +1 -1
- package/dist/memory/store.d.ts +1 -0
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +9 -0
- package/dist/memory/store.js.map +1 -1
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +25 -0
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +4 -1
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +6 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts +27 -0
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +374 -88
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/composer/buffer.d.ts +43 -0
- package/dist/runtime/composer/buffer.d.ts.map +1 -0
- package/dist/runtime/composer/buffer.js +176 -0
- package/dist/runtime/composer/buffer.js.map +1 -0
- package/dist/runtime/composer/grapheme.d.ts +19 -0
- package/dist/runtime/composer/grapheme.d.ts.map +1 -0
- package/dist/runtime/composer/grapheme.js +73 -0
- package/dist/runtime/composer/grapheme.js.map +1 -0
- package/dist/runtime/composer/history.d.ts +39 -0
- package/dist/runtime/composer/history.d.ts.map +1 -0
- package/dist/runtime/composer/history.js +91 -0
- package/dist/runtime/composer/history.js.map +1 -0
- package/dist/runtime/composer/layout.d.ts +40 -0
- package/dist/runtime/composer/layout.d.ts.map +1 -0
- package/dist/runtime/composer/layout.js +174 -0
- package/dist/runtime/composer/layout.js.map +1 -0
- package/dist/runtime/rich-text/ansi-parser.d.ts +31 -0
- package/dist/runtime/rich-text/ansi-parser.d.ts.map +1 -0
- package/dist/runtime/rich-text/ansi-parser.js +310 -0
- package/dist/runtime/rich-text/ansi-parser.js.map +1 -0
- package/dist/runtime/rich-text/layout.d.ts +12 -0
- package/dist/runtime/rich-text/layout.d.ts.map +1 -0
- package/dist/runtime/rich-text/layout.js +362 -0
- package/dist/runtime/rich-text/layout.js.map +1 -0
- package/dist/runtime/rich-text/markdown-parser.d.ts +17 -0
- package/dist/runtime/rich-text/markdown-parser.d.ts.map +1 -0
- package/dist/runtime/rich-text/markdown-parser.js +218 -0
- package/dist/runtime/rich-text/markdown-parser.js.map +1 -0
- package/dist/runtime/rich-text/sanitizer.d.ts +18 -0
- package/dist/runtime/rich-text/sanitizer.d.ts.map +1 -0
- package/dist/runtime/rich-text/sanitizer.js +32 -0
- package/dist/runtime/rich-text/sanitizer.js.map +1 -0
- package/dist/runtime/rich-text/types.d.ts +59 -0
- package/dist/runtime/rich-text/types.d.ts.map +1 -0
- package/dist/runtime/rich-text/types.js +17 -0
- package/dist/runtime/rich-text/types.js.map +1 -0
- package/dist/runtime/subagents/budget.d.ts +118 -0
- package/dist/runtime/subagents/budget.d.ts.map +1 -0
- package/dist/runtime/subagents/budget.js +173 -0
- package/dist/runtime/subagents/budget.js.map +1 -0
- package/dist/runtime/subagents/child-executor-guard.d.ts +60 -0
- package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -0
- package/dist/runtime/subagents/child-executor-guard.js +219 -0
- package/dist/runtime/subagents/child-executor-guard.js.map +1 -0
- package/dist/runtime/subagents/context-builder.d.ts +34 -0
- package/dist/runtime/subagents/context-builder.d.ts.map +1 -0
- package/dist/runtime/subagents/context-builder.js +99 -0
- package/dist/runtime/subagents/context-builder.js.map +1 -0
- package/dist/runtime/subagents/index.d.ts +21 -0
- package/dist/runtime/subagents/index.d.ts.map +1 -0
- package/dist/runtime/subagents/index.js +62 -0
- package/dist/runtime/subagents/index.js.map +1 -0
- package/dist/runtime/subagents/policy.d.ts +68 -0
- package/dist/runtime/subagents/policy.d.ts.map +1 -0
- package/dist/runtime/subagents/policy.js +230 -0
- package/dist/runtime/subagents/policy.js.map +1 -0
- package/dist/runtime/subagents/presets.d.ts +44 -0
- package/dist/runtime/subagents/presets.d.ts.map +1 -0
- package/dist/runtime/subagents/presets.js +148 -0
- package/dist/runtime/subagents/presets.js.map +1 -0
- package/dist/runtime/subagents/production.d.ts +44 -0
- package/dist/runtime/subagents/production.d.ts.map +1 -0
- package/dist/runtime/subagents/production.js +143 -0
- package/dist/runtime/subagents/production.js.map +1 -0
- package/dist/runtime/subagents/provider-gate.d.ts +99 -0
- package/dist/runtime/subagents/provider-gate.d.ts.map +1 -0
- package/dist/runtime/subagents/provider-gate.js +186 -0
- package/dist/runtime/subagents/provider-gate.js.map +1 -0
- package/dist/runtime/subagents/result-parser.d.ts +40 -0
- package/dist/runtime/subagents/result-parser.d.ts.map +1 -0
- package/dist/runtime/subagents/result-parser.js +240 -0
- package/dist/runtime/subagents/result-parser.js.map +1 -0
- package/dist/runtime/subagents/runner.d.ts +53 -0
- package/dist/runtime/subagents/runner.d.ts.map +1 -0
- package/dist/runtime/subagents/runner.js +172 -0
- package/dist/runtime/subagents/runner.js.map +1 -0
- package/dist/runtime/subagents/runtime-integration.d.ts +73 -0
- package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -0
- package/dist/runtime/subagents/runtime-integration.js +148 -0
- package/dist/runtime/subagents/runtime-integration.js.map +1 -0
- package/dist/runtime/subagents/supervisor.d.ts +79 -0
- package/dist/runtime/subagents/supervisor.d.ts.map +1 -0
- package/dist/runtime/subagents/supervisor.js +301 -0
- package/dist/runtime/subagents/supervisor.js.map +1 -0
- package/dist/runtime/subagents/tool.d.ts +38 -0
- package/dist/runtime/subagents/tool.d.ts.map +1 -0
- package/dist/runtime/subagents/tool.js +171 -0
- package/dist/runtime/subagents/tool.js.map +1 -0
- package/dist/runtime/subagents/types.d.ts +152 -0
- package/dist/runtime/subagents/types.d.ts.map +1 -0
- package/dist/runtime/subagents/types.js +56 -0
- package/dist/runtime/subagents/types.js.map +1 -0
- package/dist/runtime/ui-events.d.ts +18 -0
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/runtime/ui-view-model.d.ts +44 -1
- package/dist/runtime/ui-view-model.d.ts.map +1 -1
- package/dist/runtime/ui-view-model.js +90 -37
- package/dist/runtime/ui-view-model.js.map +1 -1
- package/dist/sdk/query.d.ts.map +1 -1
- package/dist/sdk/query.js +0 -1
- package/dist/sdk/query.js.map +1 -1
- package/dist/services/auto-fix/autoFixHook.d.ts.map +1 -1
- package/dist/services/auto-fix/autoFixHook.js +3 -2
- package/dist/services/auto-fix/autoFixHook.js.map +1 -1
- package/dist/services/auto-fix/autoFixRunner.d.ts +2 -2
- package/dist/services/auto-fix/autoFixRunner.d.ts.map +1 -1
- package/dist/services/auto-fix/autoFixRunner.js +2 -2
- package/dist/services/auto-fix/autoFixRunner.js.map +1 -1
- package/dist/services/compact/auto-compact.d.ts +15 -2
- package/dist/services/compact/auto-compact.d.ts.map +1 -1
- package/dist/services/compact/auto-compact.js +59 -27
- package/dist/services/compact/auto-compact.js.map +1 -1
- package/dist/services/compact/compact.d.ts +2 -0
- package/dist/services/compact/compact.d.ts.map +1 -1
- package/dist/services/compact/compact.js +22 -5
- package/dist/services/compact/compact.js.map +1 -1
- package/dist/services/compact/coordinator.d.ts +26 -0
- package/dist/services/compact/coordinator.d.ts.map +1 -0
- package/dist/services/compact/coordinator.js +44 -0
- package/dist/services/compact/coordinator.js.map +1 -0
- package/dist/services/compact/index.d.ts +1 -0
- package/dist/services/compact/index.d.ts.map +1 -1
- package/dist/services/compact/index.js +3 -1
- package/dist/services/compact/index.js.map +1 -1
- package/dist/services/compact/summary-generator.d.ts +6 -2
- package/dist/services/compact/summary-generator.d.ts.map +1 -1
- package/dist/services/compact/summary-generator.js +73 -32
- package/dist/services/compact/summary-generator.js.map +1 -1
- package/dist/services/concurrent-sessions.d.ts.map +1 -1
- package/dist/services/concurrent-sessions.js +3 -0
- package/dist/services/concurrent-sessions.js.map +1 -1
- package/dist/services/config-dir.d.ts +11 -1
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +19 -2
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts +13 -4
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +85 -4
- package/dist/services/config.js.map +1 -1
- package/dist/services/doctor.d.ts +2 -0
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +9 -2
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/global-config.d.ts +33 -1
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js +3 -0
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/llm.d.ts +21 -4
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +75 -9
- package/dist/services/llm.js.map +1 -1
- package/dist/services/mcp/transports.d.ts +2 -0
- package/dist/services/mcp/transports.d.ts.map +1 -1
- package/dist/services/mcp/transports.js +23 -2
- package/dist/services/mcp/transports.js.map +1 -1
- package/dist/services/memory.d.ts.map +1 -1
- package/dist/services/memory.js.map +1 -1
- package/dist/services/model-context.d.ts +36 -0
- package/dist/services/model-context.d.ts.map +1 -1
- package/dist/services/model-context.js +243 -31
- package/dist/services/model-context.js.map +1 -1
- package/dist/services/redaction.js +1 -1
- package/dist/services/redaction.js.map +1 -1
- package/dist/services/session-memory/sessionMemory.js +1 -1
- package/dist/services/session-memory/sessionMemory.js.map +1 -1
- package/dist/services/session-storage.d.ts +39 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +156 -28
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/task-manager.d.ts +2 -0
- package/dist/services/task-manager.d.ts.map +1 -1
- package/dist/services/task-manager.js +13 -0
- package/dist/services/task-manager.js.map +1 -1
- package/dist/services/usage-state.d.ts +55 -5
- package/dist/services/usage-state.d.ts.map +1 -1
- package/dist/services/usage-state.js +188 -59
- package/dist/services/usage-state.js.map +1 -1
- package/dist/services/verification-profile.d.ts.map +1 -1
- package/dist/services/verification-profile.js +3 -2
- package/dist/services/verification-profile.js.map +1 -1
- package/dist/services/workspace-diff.d.ts.map +1 -1
- package/dist/services/workspace-diff.js +34 -3
- package/dist/services/workspace-diff.js.map +1 -1
- package/dist/services/yaml-config.js +1 -1
- package/dist/skills/loader.d.ts +1 -1
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +1 -1
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/registry.d.ts +1 -1
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +1 -1
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/runtime.d.ts +9 -5
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +157 -12
- package/dist/skills/runtime.js.map +1 -1
- package/dist/terminal-ui/launch.d.ts +20 -3
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +86 -25
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/terminal-ui/raw-editor.d.ts +9 -0
- package/dist/terminal-ui/raw-editor.d.ts.map +1 -1
- package/dist/terminal-ui/raw-editor.js +207 -30
- package/dist/terminal-ui/raw-editor.js.map +1 -1
- package/dist/tools/bash_security.d.ts.map +1 -1
- package/dist/tools/bash_security.js +14 -5
- package/dist/tools/bash_security.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +51 -24
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lsp.js.map +1 -1
- package/dist/tools/plan.d.ts.map +1 -1
- package/dist/tools/plan.js +7 -0
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/web.d.ts +10 -0
- package/dist/tools/web.d.ts.map +1 -1
- package/dist/tools/web.js +84 -4
- package/dist/tools/web.js.map +1 -1
- package/dist/tui-core/frame.d.ts +13 -1
- package/dist/tui-core/frame.d.ts.map +1 -1
- package/dist/tui-core/frame.js +61 -8
- package/dist/tui-core/frame.js.map +1 -1
- package/dist/tui-core/input-parser.d.ts +1 -1
- package/dist/tui-core/input-parser.d.ts.map +1 -1
- package/dist/tui-core/input-parser.js +20 -1
- package/dist/tui-core/input-parser.js.map +1 -1
- package/dist/tui-core/style.d.ts +103 -0
- package/dist/tui-core/style.d.ts.map +1 -0
- package/dist/tui-core/style.js +269 -0
- package/dist/tui-core/style.js.map +1 -0
- package/dist/tui-core/terminal-writer.d.ts.map +1 -1
- package/dist/tui-core/terminal-writer.js +16 -3
- package/dist/tui-core/terminal-writer.js.map +1 -1
- package/dist/tui-ui/inline-surface.d.ts +185 -0
- package/dist/tui-ui/inline-surface.d.ts.map +1 -0
- package/dist/tui-ui/inline-surface.js +615 -0
- package/dist/tui-ui/inline-surface.js.map +1 -0
- package/dist/tui-ui/launch.d.ts +1 -0
- package/dist/tui-ui/launch.d.ts.map +1 -1
- package/dist/tui-ui/launch.js +398 -69
- package/dist/tui-ui/launch.js.map +1 -1
- package/dist/tui-ui/layout.d.ts +51 -2
- package/dist/tui-ui/layout.d.ts.map +1 -1
- package/dist/tui-ui/layout.js +240 -77
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/render-scheduler.d.ts +37 -0
- package/dist/tui-ui/render-scheduler.d.ts.map +1 -0
- package/dist/tui-ui/render-scheduler.js +118 -0
- package/dist/tui-ui/render-scheduler.js.map +1 -0
- package/dist/tui-ui/runner.d.ts +78 -5
- package/dist/tui-ui/runner.d.ts.map +1 -1
- package/dist/tui-ui/runner.js +317 -22
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/tui-ui/state.d.ts +38 -7
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +199 -40
- package/dist/tui-ui/state.js.map +1 -1
- package/dist/tui-ui/theme.d.ts +13 -0
- package/dist/tui-ui/theme.d.ts.map +1 -0
- package/dist/tui-ui/theme.js +20 -0
- package/dist/tui-ui/theme.js.map +1 -0
- package/dist/tui-ui/transcript-cache.d.ts +35 -0
- package/dist/tui-ui/transcript-cache.d.ts.map +1 -0
- package/dist/tui-ui/transcript-cache.js +74 -0
- package/dist/tui-ui/transcript-cache.js.map +1 -0
- package/dist/tui-ui/transcript-layout.d.ts +21 -0
- package/dist/tui-ui/transcript-layout.d.ts.map +1 -0
- package/dist/tui-ui/transcript-layout.js +398 -0
- package/dist/tui-ui/transcript-layout.js.map +1 -0
- package/dist/ui/box.d.ts.map +1 -1
- package/dist/ui/box.js +0 -11
- package/dist/ui/box.js.map +1 -1
- package/dist/ui/command-panel.d.ts.map +1 -1
- package/dist/ui/command-panel.js +1 -3
- package/dist/ui/command-panel.js.map +1 -1
- package/dist/ui/file-completion.js +1 -1
- package/dist/ui/file-completion.js.map +1 -1
- package/dist/ui/markdown.d.ts.map +1 -1
- package/dist/ui/markdown.js +1 -2
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/multiline-input.d.ts.map +1 -1
- package/dist/ui/multiline-input.js +1 -2
- package/dist/ui/multiline-input.js.map +1 -1
- package/dist/ui/progress.d.ts.map +1 -1
- package/dist/ui/progress.js +0 -3
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/status-bar.d.ts +1 -1
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +2 -16
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/ui/stream-markdown.d.ts +3 -0
- package/dist/ui/stream-markdown.d.ts.map +1 -1
- package/dist/ui/stream-markdown.js +0 -6
- package/dist/ui/stream-markdown.js.map +1 -1
- package/dist/ui/tool-preview.d.ts.map +1 -1
- package/dist/ui/tool-preview.js +0 -1
- package/dist/ui/tool-preview.js.map +1 -1
- package/dist/ui-v2/components/shell.d.ts.map +1 -1
- package/dist/ui-v2/components/shell.js +0 -8
- package/dist/ui-v2/components/shell.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli-dbg.js +0 -717
- package/dist/cli-debug.d.ts +0 -7
- package/dist/cli-debug.d.ts.map +0 -1
- package/dist/cli-debug.js +0 -717
- package/dist/cli-debug.js.map +0 -1
- package/dist/cli-debug2.d.ts +0 -7
- package/dist/cli-debug2.d.ts.map +0 -1
- package/dist/cli-debug2.js +0 -717
- package/dist/cli-debug2.js.map +0 -1
- package/dist/cli-debug3.d.ts +0 -7
- package/dist/cli-debug3.d.ts.map +0 -1
- package/dist/cli-debug3.js +0 -719
- package/dist/cli-debug3.js.map +0 -1
- package/dist/cli-ink.d.ts +0 -8
- package/dist/cli-ink.d.ts.map +0 -1
- package/dist/cli-ink.js +0 -32
- package/dist/cli-ink.js.map +0 -1
- package/dist/cli-patch.js +0 -716
- package/dist/cli-test.js +0 -726
|
@@ -25,13 +25,17 @@ class AutoCompact {
|
|
|
25
25
|
this.preCompactArmed = false;
|
|
26
26
|
this.lastCompactFingerprint = null;
|
|
27
27
|
this.lastCompactMode = null;
|
|
28
|
+
this.lastCompactResult = null;
|
|
29
|
+
this.providerCorrection = 0;
|
|
30
|
+
this.calibrationModel = null;
|
|
28
31
|
this.config = {
|
|
29
32
|
threshold: config?.threshold ?? model_context_1.AUTO_COMPACT_THRESHOLD,
|
|
30
33
|
modelId: config?.modelId ?? 'gpt-4o',
|
|
31
34
|
maxMessages: config?.maxMessages ?? 20,
|
|
32
35
|
enabled: config?.enabled ?? true,
|
|
33
36
|
preCompactThreshold: config?.preCompactThreshold ?? 0.8,
|
|
34
|
-
predictiveCompactThreshold: config?.predictiveCompactThreshold ??
|
|
37
|
+
predictiveCompactThreshold: config?.predictiveCompactThreshold ?? model_context_1.AUTO_COMPACT_THRESHOLD,
|
|
38
|
+
outputReserveTokens: config?.outputReserveTokens ?? 8192,
|
|
35
39
|
onCompact: config?.onCompact,
|
|
36
40
|
getContextCapsule: config?.getContextCapsule,
|
|
37
41
|
getHarnessState: config?.getHarnessState,
|
|
@@ -48,7 +52,7 @@ class AutoCompact {
|
|
|
48
52
|
if (config.threshold !== undefined)
|
|
49
53
|
this.config.threshold = config.threshold;
|
|
50
54
|
if (config.modelId !== undefined)
|
|
51
|
-
this.config.modelId
|
|
55
|
+
this.setModel(config.modelId);
|
|
52
56
|
if (config.maxMessages !== undefined)
|
|
53
57
|
this.config.maxMessages = config.maxMessages;
|
|
54
58
|
if (config.enabled !== undefined)
|
|
@@ -57,6 +61,8 @@ class AutoCompact {
|
|
|
57
61
|
this.config.preCompactThreshold = config.preCompactThreshold;
|
|
58
62
|
if (config.predictiveCompactThreshold !== undefined)
|
|
59
63
|
this.config.predictiveCompactThreshold = config.predictiveCompactThreshold;
|
|
64
|
+
if (config.outputReserveTokens !== undefined)
|
|
65
|
+
this.config.outputReserveTokens = config.outputReserveTokens;
|
|
60
66
|
if (config.onCompact !== undefined)
|
|
61
67
|
this.config.onCompact = config.onCompact;
|
|
62
68
|
if (config.getContextCapsule !== undefined)
|
|
@@ -70,8 +76,33 @@ class AutoCompact {
|
|
|
70
76
|
* 更新模型(切换模型时调用)
|
|
71
77
|
*/
|
|
72
78
|
setModel(modelId) {
|
|
79
|
+
if (modelId !== this.config.modelId)
|
|
80
|
+
this.resetProviderCalibration();
|
|
73
81
|
this.config.modelId = modelId;
|
|
74
82
|
}
|
|
83
|
+
adjustTokenEstimate(estimatedTokens, modelId = this.config.modelId) {
|
|
84
|
+
this.ensureCalibrationModel(modelId);
|
|
85
|
+
return Math.max(0, Math.round(estimatedTokens + this.providerCorrection));
|
|
86
|
+
}
|
|
87
|
+
recordProviderUsage(estimatedPromptTokens, providerPromptTokens, modelId = this.config.modelId) {
|
|
88
|
+
this.ensureCalibrationModel(modelId);
|
|
89
|
+
if (!Number.isFinite(providerPromptTokens) || providerPromptTokens <= 0)
|
|
90
|
+
return;
|
|
91
|
+
this.providerCorrection = Math.round(providerPromptTokens - estimatedPromptTokens);
|
|
92
|
+
}
|
|
93
|
+
hasProviderCalibration(modelId = this.config.modelId) {
|
|
94
|
+
return this.calibrationModel === modelId && this.providerCorrection !== 0;
|
|
95
|
+
}
|
|
96
|
+
ensureCalibrationModel(modelId) {
|
|
97
|
+
if (this.calibrationModel === modelId)
|
|
98
|
+
return;
|
|
99
|
+
this.calibrationModel = modelId;
|
|
100
|
+
this.providerCorrection = 0;
|
|
101
|
+
}
|
|
102
|
+
resetProviderCalibration() {
|
|
103
|
+
this.calibrationModel = null;
|
|
104
|
+
this.providerCorrection = 0;
|
|
105
|
+
}
|
|
75
106
|
/**
|
|
76
107
|
* 检查并触发自动压缩(基于 token 百分比)
|
|
77
108
|
* @param messages 当前对话消息列表
|
|
@@ -90,27 +121,26 @@ class AutoCompact {
|
|
|
90
121
|
if (!this.config.enabled) {
|
|
91
122
|
return messages;
|
|
92
123
|
}
|
|
93
|
-
const ctxPercent = this.
|
|
94
|
-
this.preCompactArmed =
|
|
124
|
+
const { percent: ctxPercent, ratio } = this.calculateContextUsage(usedTokens, messages);
|
|
125
|
+
this.preCompactArmed = ratio >= this.config.preCompactThreshold;
|
|
95
126
|
const contextCapsule = this.preCompactArmed
|
|
96
|
-
? this.config.getContextCapsule?.() ?? undefined
|
|
127
|
+
? (this.config.getContextCapsule?.() ?? undefined)
|
|
97
128
|
: undefined;
|
|
98
129
|
const harnessState = this.preCompactArmed
|
|
99
|
-
? this.config.getHarnessState?.() ?? undefined
|
|
130
|
+
? (this.config.getHarnessState?.() ?? undefined)
|
|
100
131
|
: undefined;
|
|
101
132
|
// 达到阈值才触发
|
|
102
|
-
if (
|
|
133
|
+
if (ratio < threshold) {
|
|
103
134
|
return messages;
|
|
104
135
|
}
|
|
105
|
-
//
|
|
136
|
+
// Do not compact the exact same post-compact history repeatedly. A changed
|
|
137
|
+
// history must still be eligible immediately because a single tool result
|
|
138
|
+
// can push context back over 95% within seconds.
|
|
106
139
|
const now = Date.now();
|
|
107
140
|
const fingerprint = this.getMessagesFingerprint(messages);
|
|
108
141
|
if (fingerprint === this.lastCompactFingerprint && now - this.lastCompactTime < 30000) {
|
|
109
142
|
return messages;
|
|
110
143
|
}
|
|
111
|
-
if (now - this.lastCompactTime < 30000) {
|
|
112
|
-
return messages;
|
|
113
|
-
}
|
|
114
144
|
// 执行压缩
|
|
115
145
|
const result = await (0, compact_1.compactMessages)(messages, {
|
|
116
146
|
maxMessages: this.config.maxMessages,
|
|
@@ -124,6 +154,7 @@ class AutoCompact {
|
|
|
124
154
|
this.compactCount++;
|
|
125
155
|
this.lastCompactFingerprint = this.getMessagesFingerprint(result.messages);
|
|
126
156
|
this.lastCompactMode = mode;
|
|
157
|
+
this.lastCompactResult = result;
|
|
127
158
|
// 通知回调
|
|
128
159
|
if (this.config.onCompact) {
|
|
129
160
|
this.config.onCompact({
|
|
@@ -138,35 +169,31 @@ class AutoCompact {
|
|
|
138
169
|
getMessagesFingerprint(messages) {
|
|
139
170
|
const first = messages[0];
|
|
140
171
|
const last = messages[messages.length - 1];
|
|
141
|
-
const totalChars = messages.reduce((sum, message) => sum + message.content
|
|
172
|
+
const totalChars = messages.reduce((sum, message) => sum + (message.content?.length ?? 0), 0);
|
|
142
173
|
return [
|
|
143
174
|
messages.length,
|
|
144
175
|
totalChars,
|
|
145
|
-
first ? `${first.role}:${first.content
|
|
146
|
-
last ? `${last.role}:${last.content
|
|
176
|
+
first ? `${first.role}:${first.content?.length ?? 0}` : 'none',
|
|
177
|
+
last ? `${last.role}:${last.content?.length ?? 0}` : 'none',
|
|
147
178
|
].join(':');
|
|
148
179
|
}
|
|
149
180
|
/**
|
|
150
181
|
* 计算上下文使用百分比
|
|
151
182
|
*/
|
|
152
|
-
|
|
153
|
-
const contextWindow = (0, model_context_1.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const estimated = messages ? (0, token_estimate_1.estimateMessagesTokens)(messages) : 0;
|
|
161
|
-
this.lastTokenCount = estimated;
|
|
162
|
-
this.lastCtxPercent = Math.min(100, Math.round((estimated / contextWindow) * 100));
|
|
163
|
-
return this.lastCtxPercent;
|
|
183
|
+
calculateContextUsage(usedTokens, messages) {
|
|
184
|
+
const contextWindow = (0, model_context_1.resolveContextBudget)(this.config.modelId, this.config.outputReserveTokens).safeInputBudget;
|
|
185
|
+
const tokenCount = usedTokens !== undefined ? usedTokens : messages ? (0, token_estimate_1.estimateMessagesTokens)(messages) : 0;
|
|
186
|
+
const normalizedTokens = Number.isFinite(tokenCount) ? Math.max(0, tokenCount) : 0;
|
|
187
|
+
const ratio = normalizedTokens / contextWindow;
|
|
188
|
+
this.lastTokenCount = normalizedTokens;
|
|
189
|
+
this.lastCtxPercent = Math.min(100, Math.floor(ratio * 100));
|
|
190
|
+
return { percent: this.lastCtxPercent, ratio };
|
|
164
191
|
}
|
|
165
192
|
/**
|
|
166
193
|
* 获取当前上下文百分比
|
|
167
194
|
*/
|
|
168
195
|
getCtxPercent(usedTokens, messages) {
|
|
169
|
-
return this.
|
|
196
|
+
return this.calculateContextUsage(usedTokens, messages).percent;
|
|
170
197
|
}
|
|
171
198
|
/**
|
|
172
199
|
* 强制压缩
|
|
@@ -183,6 +210,7 @@ class AutoCompact {
|
|
|
183
210
|
this.lastCompactTime = Date.now();
|
|
184
211
|
this.lastCompactFingerprint = this.getMessagesFingerprint(result.messages);
|
|
185
212
|
this.lastCompactMode = 'manual';
|
|
213
|
+
this.lastCompactResult = result;
|
|
186
214
|
if (this.config.onCompact) {
|
|
187
215
|
this.config.onCompact({
|
|
188
216
|
originalCount: result.originalCount,
|
|
@@ -212,8 +240,12 @@ class AutoCompact {
|
|
|
212
240
|
lastTokenCount: this.lastTokenCount,
|
|
213
241
|
preCompactArmed: this.preCompactArmed,
|
|
214
242
|
lastCompactMode: this.lastCompactMode,
|
|
243
|
+
outputReserveTokens: this.config.outputReserveTokens,
|
|
215
244
|
};
|
|
216
245
|
}
|
|
246
|
+
getLastCompactResult() {
|
|
247
|
+
return this.lastCompactResult;
|
|
248
|
+
}
|
|
217
249
|
/**
|
|
218
250
|
* 启用/禁用自动压缩
|
|
219
251
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../../src/services/compact/auto-compact.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../../src/services/compact/auto-compact.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkXH,wCAOC;AAED,4CAEC;AAzXD,uCAA4C;AAC5C,oDAI0B;AAG1B,+DAAoE;AAoCpE,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,MAAa,WAAW;IA8BtB,YAAY,MAA0B;QAZ9B,oBAAe,GAAW,CAAC,CAAC;QAC5B,iBAAY,GAAW,CAAC,CAAC;QACjC,wBAAwB;QAChB,mBAAc,GAAW,CAAC,CAAC;QAC3B,mBAAc,GAAW,CAAC,CAAC;QAC3B,oBAAe,GAAY,KAAK,CAAC;QACjC,2BAAsB,GAAkB,IAAI,CAAC;QAC7C,oBAAe,GAAiD,IAAI,CAAC;QACrE,sBAAiB,GAAyB,IAAI,CAAC;QAC/C,uBAAkB,GAAG,CAAC,CAAC;QACvB,qBAAgB,GAAkB,IAAI,CAAC;QAG7C,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,sCAAsB;YACtD,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ;YACpC,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,EAAE;YACtC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;YAChC,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,IAAI,GAAG;YACvD,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,IAAI,sCAAsB;YACxF,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,IAAI,IAAI;YACxD,SAAS,EAAE,MAAM,EAAE,SAAS;YAC5B,iBAAiB,EAAE,MAAM,EAAE,iBAAiB;YAC5C,eAAe,EAAE,MAAM,EAAE,eAAe;YACxC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,SAAS;SAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,MAA0B;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACnF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACvE,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;YAC1C,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/D,IAAI,MAAM,CAAC,0BAA0B,KAAK,SAAS;YACjD,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAC7E,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;YAC1C,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7E,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACxC,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC3D,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/F,IAAI,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACtB,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,eAAuB,EAAE,UAAkB,IAAI,CAAC,MAAM,CAAC,OAAO;QAChF,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,mBAAmB,CACjB,qBAA6B,EAC7B,oBAA4B,EAC5B,UAAkB,IAAI,CAAC,MAAM,CAAC,OAAO;QAErC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,IAAI,CAAC;YAAE,OAAO;QAChF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,qBAAqB,CAAC,CAAC;IACrF,CAAC;IAED,sBAAsB,CAAC,UAAkB,IAAI,CAAC,MAAM,CAAC,OAAO;QAC1D,OAAO,IAAI,CAAC,gBAAgB,KAAK,OAAO,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC;IAC5E,CAAC;IAEO,sBAAsB,CAAC,OAAe;QAC5C,IAAI,IAAI,CAAC,gBAAgB,KAAK,OAAO;YAAE,OAAO;QAC9C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,QAAmB,EAAE,UAAmB;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAC7B,QAAmB,EACnB,eAAwB;QAExB,OAAO,IAAI,CAAC,eAAe,CACzB,QAAQ,EACR,eAAe,EACf,IAAI,CAAC,MAAM,CAAC,0BAA0B,EACtC,YAAY,CACb,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,QAAmB,EACnB,UAA8B,EAC9B,SAAiB,EACjB,IAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe;YACzC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,SAAS,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe;YACvC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,SAAS,CAAC;YAChD,CAAC,CAAC,SAAS,CAAC;QAEd,UAAU;QACV,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,WAAW,KAAK,IAAI,CAAC,sBAAsB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,CAAC;YACtF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,EAAC,QAAQ,EAAE;YAC7C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,cAAc;YACd,YAAY;YACZ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACpB,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QAEH,OAAO;QACP,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAEhC,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACpB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU;gBACV,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEO,sBAAsB,CAAC,QAAmB;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9F,OAAO;YACL,QAAQ,CAAC,MAAM;YACf,UAAU;YACV,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;YAC9D,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;SAC5D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,UAAmB,EACnB,QAAoB;QAEpB,MAAM,aAAa,GAAG,IAAA,oCAAoB,EACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAChC,CAAC,eAAe,CAAC;QAClB,MAAM,UAAU,GACd,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,uCAAsB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,gBAAgB,GAAG,aAAa,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAmB,EAAE,QAAoB;QACrD,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAmB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,EAAC,QAAQ,EAAE;YAC7C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,SAAS;YAC9D,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,SAAS;YAC1D,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACpB,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACpB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;gBAChC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,QAAQ;QAgBN,MAAM,KAAK,GAAG,IAAA,mCAAmB,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;YACpD,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B;YAClE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;SACrD,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAChC,CAAC;CACF;AAtTD,kCAsTC;AAED,+EAA+E;AAC/E,KAAK;AACL,+EAA+E;AAE/E,IAAI,mBAAmB,GAAuB,IAAI,CAAC;AAEnD,SAAgB,cAAc,CAAC,MAA0B;IACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,SAAgB,gBAAgB;IAC9B,mBAAmB,GAAG,IAAI,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAsD,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAM3H,MAAM,WAAW,cAAc;IAC7B,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mDAAmD;IACnD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qFAAqF;IACrF,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,UAAU,CAAC;CACvD;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,KAAK,GAAG,WAAW,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAiBD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA2HxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,EAAE,CAiBlF;AAMD,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,aAAa,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -42,6 +42,8 @@ async function compactMessages(messages, options) {
|
|
|
42
42
|
compactedCount: originalCount,
|
|
43
43
|
ratio: 1,
|
|
44
44
|
summary: '',
|
|
45
|
+
summarySource: 'heuristic',
|
|
46
|
+
summaryGeneratedAt: Date.now(),
|
|
45
47
|
};
|
|
46
48
|
}
|
|
47
49
|
// 1. 保留 system 消息
|
|
@@ -52,14 +54,27 @@ async function compactMessages(messages, options) {
|
|
|
52
54
|
const toCompact = opts.keepSystemMessage
|
|
53
55
|
? messages.filter(m => m.role !== 'system')
|
|
54
56
|
: messages;
|
|
57
|
+
const priorSummary = [...toCompact]
|
|
58
|
+
.reverse()
|
|
59
|
+
.find(message => message.content?.startsWith('[Context Summary]\n'));
|
|
60
|
+
const conversationMessages = toCompact.filter(message => !message.content?.startsWith('[Context Summary]\n') &&
|
|
61
|
+
!(message.role === 'assistant' &&
|
|
62
|
+
message.content ===
|
|
63
|
+
'I understand the context. I will continue the conversation with this background information.'));
|
|
55
64
|
// 3. 保留最近 maxMessages 条
|
|
56
|
-
const recentMessages =
|
|
57
|
-
const oldMessages =
|
|
65
|
+
const recentMessages = conversationMessages.slice(-opts.maxMessages);
|
|
66
|
+
const oldMessages = conversationMessages.slice(0, conversationMessages.length - opts.maxMessages);
|
|
67
|
+
if (priorSummary)
|
|
68
|
+
oldMessages.unshift(priorSummary);
|
|
58
69
|
// 4. 对早期消息生成摘要
|
|
59
70
|
// Use LLM-driven summary if LLM service is provided, else fall back to heuristic
|
|
60
|
-
const
|
|
61
|
-
? await (0, summary_generator_1.
|
|
62
|
-
:
|
|
71
|
+
const generated = opts.llm
|
|
72
|
+
? await (0, summary_generator_1.generateSummaryWithSource)(oldMessages, opts.llm, opts.summaryOptions)
|
|
73
|
+
: {
|
|
74
|
+
text: await (0, summary_generator_1.summaryGenerator)(oldMessages, opts.summaryOptions),
|
|
75
|
+
source: 'heuristic',
|
|
76
|
+
};
|
|
77
|
+
const summary = generated.text;
|
|
63
78
|
// 5. 构建压缩后的消息列表
|
|
64
79
|
let compactedMessages = [];
|
|
65
80
|
if (systemMessage) {
|
|
@@ -116,6 +131,8 @@ async function compactMessages(messages, options) {
|
|
|
116
131
|
compactedCount,
|
|
117
132
|
ratio,
|
|
118
133
|
summary,
|
|
134
|
+
summarySource: generated.source,
|
|
135
|
+
summaryGeneratedAt: Date.now(),
|
|
119
136
|
};
|
|
120
137
|
}
|
|
121
138
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ContextCapsule, HarnessState } from '../../harness';
|
|
2
|
+
import type { LLMService, Message } from '../llm';
|
|
3
|
+
import { AutoCompact } from './auto-compact';
|
|
4
|
+
import { type CompactResult } from './compact';
|
|
5
|
+
export interface CompactCoordinatorConfig {
|
|
6
|
+
modelId: string;
|
|
7
|
+
llm?: LLMService | null;
|
|
8
|
+
outputReserveTokens?: number;
|
|
9
|
+
getContextCapsule?: () => ContextCapsule | undefined | null;
|
|
10
|
+
getHarnessState?: () => HarnessState | undefined | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Owns compact policy and provider calibration for one runtime. Manual
|
|
14
|
+
* compaction deliberately bypasses the automatic policy instance so a
|
|
15
|
+
* `/compact N` command cannot change the automatic 20-message retention.
|
|
16
|
+
*/
|
|
17
|
+
export declare class CompactCoordinator {
|
|
18
|
+
private readonly automatic;
|
|
19
|
+
private config;
|
|
20
|
+
constructor(config: CompactCoordinatorConfig);
|
|
21
|
+
configure(config: Partial<CompactCoordinatorConfig>): void;
|
|
22
|
+
getAutomatic(): AutoCompact;
|
|
23
|
+
compactManual(messages: Message[], maxMessages: number): Promise<CompactResult>;
|
|
24
|
+
private toAutoConfig;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/services/compact/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,WAAW,EAA0B,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,cAAc,GAAG,SAAS,GAAG,IAAI,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;CACzD;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,wBAAwB;IAK5C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI;IAK1D,YAAY,IAAI,WAAW;IAIrB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAUrF,OAAO,CAAC,YAAY;CAUrB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompactCoordinator = void 0;
|
|
4
|
+
const auto_compact_1 = require("./auto-compact");
|
|
5
|
+
const compact_1 = require("./compact");
|
|
6
|
+
/**
|
|
7
|
+
* Owns compact policy and provider calibration for one runtime. Manual
|
|
8
|
+
* compaction deliberately bypasses the automatic policy instance so a
|
|
9
|
+
* `/compact N` command cannot change the automatic 20-message retention.
|
|
10
|
+
*/
|
|
11
|
+
class CompactCoordinator {
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.config = { ...config };
|
|
14
|
+
this.automatic = new auto_compact_1.AutoCompact(this.toAutoConfig(config));
|
|
15
|
+
}
|
|
16
|
+
configure(config) {
|
|
17
|
+
this.config = { ...this.config, ...config };
|
|
18
|
+
this.automatic.configure(this.toAutoConfig(this.config));
|
|
19
|
+
}
|
|
20
|
+
getAutomatic() {
|
|
21
|
+
return this.automatic;
|
|
22
|
+
}
|
|
23
|
+
async compactManual(messages, maxMessages) {
|
|
24
|
+
return (0, compact_1.compactMessages)(messages, {
|
|
25
|
+
maxMessages,
|
|
26
|
+
contextCapsule: this.config.getContextCapsule?.() ?? undefined,
|
|
27
|
+
harnessState: this.config.getHarnessState?.() ?? undefined,
|
|
28
|
+
llm: this.config.llm ?? undefined,
|
|
29
|
+
compactMode: 'manual',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
toAutoConfig(config) {
|
|
33
|
+
return {
|
|
34
|
+
modelId: config.modelId,
|
|
35
|
+
llm: config.llm,
|
|
36
|
+
outputReserveTokens: config.outputReserveTokens,
|
|
37
|
+
maxMessages: 20,
|
|
38
|
+
getContextCapsule: config.getContextCapsule,
|
|
39
|
+
getHarnessState: config.getHarnessState,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.CompactCoordinator = CompactCoordinator;
|
|
44
|
+
//# sourceMappingURL=coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/services/compact/coordinator.ts"],"names":[],"mappings":";;;AAEA,iDAAqE;AACrE,uCAAgE;AAUhE;;;;GAIG;AACH,MAAa,kBAAkB;IAI7B,YAAY,MAAgC;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,MAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAmB,EAAE,WAAmB;QAC1D,OAAO,IAAA,yBAAe,EAAC,QAAQ,EAAE;YAC/B,WAAW;YACX,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,SAAS;YAC9D,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,SAAS;YAC1D,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS;YACjC,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,MAAgC;QACnD,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,WAAW,EAAE,EAAE;YACf,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC;IACJ,CAAC;CACF;AAtCD,gDAsCC"}
|
|
@@ -6,5 +6,6 @@
|
|
|
6
6
|
export { compactMessages, needsCompact, quickCompact, type CompactOptions, type CompactResult, } from './compact';
|
|
7
7
|
export { summaryGenerator, type SummaryOptions, } from './summary-generator';
|
|
8
8
|
export { AutoCompact, getAutoCompact, resetAutoCompact, type AutoCompactConfig, } from './auto-compact';
|
|
9
|
+
export { CompactCoordinator, type CompactCoordinatorConfig, } from './coordinator';
|
|
9
10
|
export { microCompact, ultraCompact, roleCompact, } from './micro-compact';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/compact/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/compact/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 导出所有压缩相关功能。
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.roleCompact = exports.ultraCompact = exports.microCompact = exports.resetAutoCompact = exports.getAutoCompact = exports.AutoCompact = exports.summaryGenerator = exports.quickCompact = exports.needsCompact = exports.compactMessages = void 0;
|
|
8
|
+
exports.roleCompact = exports.ultraCompact = exports.microCompact = exports.CompactCoordinator = exports.resetAutoCompact = exports.getAutoCompact = exports.AutoCompact = exports.summaryGenerator = exports.quickCompact = exports.needsCompact = exports.compactMessages = void 0;
|
|
9
9
|
var compact_1 = require("./compact");
|
|
10
10
|
Object.defineProperty(exports, "compactMessages", { enumerable: true, get: function () { return compact_1.compactMessages; } });
|
|
11
11
|
Object.defineProperty(exports, "needsCompact", { enumerable: true, get: function () { return compact_1.needsCompact; } });
|
|
@@ -16,6 +16,8 @@ var auto_compact_1 = require("./auto-compact");
|
|
|
16
16
|
Object.defineProperty(exports, "AutoCompact", { enumerable: true, get: function () { return auto_compact_1.AutoCompact; } });
|
|
17
17
|
Object.defineProperty(exports, "getAutoCompact", { enumerable: true, get: function () { return auto_compact_1.getAutoCompact; } });
|
|
18
18
|
Object.defineProperty(exports, "resetAutoCompact", { enumerable: true, get: function () { return auto_compact_1.resetAutoCompact; } });
|
|
19
|
+
var coordinator_1 = require("./coordinator");
|
|
20
|
+
Object.defineProperty(exports, "CompactCoordinator", { enumerable: true, get: function () { return coordinator_1.CompactCoordinator; } });
|
|
19
21
|
var micro_compact_1 = require("./micro-compact");
|
|
20
22
|
Object.defineProperty(exports, "microCompact", { enumerable: true, get: function () { return micro_compact_1.microCompact; } });
|
|
21
23
|
Object.defineProperty(exports, "ultraCompact", { enumerable: true, get: function () { return micro_compact_1.ultraCompact; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/compact/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qCAMmB;AALjB,0GAAA,eAAe,OAAA;AACf,uGAAA,YAAY,OAAA;AACZ,uGAAA,YAAY,OAAA;AAKd,yDAG6B;AAF3B,qHAAA,gBAAgB,OAAA;AAIlB,+CAKwB;AAJtB,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAIlB,iDAIyB;AAHvB,6GAAA,YAAY,OAAA;AACZ,6GAAA,YAAY,OAAA;AACZ,4GAAA,WAAW,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/compact/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qCAMmB;AALjB,0GAAA,eAAe,OAAA;AACf,uGAAA,YAAY,OAAA;AACZ,uGAAA,YAAY,OAAA;AAKd,yDAG6B;AAF3B,qHAAA,gBAAgB,OAAA;AAIlB,+CAKwB;AAJtB,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAIlB,6CAGuB;AAFrB,iHAAA,kBAAkB,OAAA;AAIpB,iDAIyB;AAHvB,6GAAA,YAAY,OAAA;AACZ,6GAAA,YAAY,OAAA;AACZ,4GAAA,WAAW,OAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 为压缩的历史消息生成简洁摘要,保留关键信息。
|
|
5
5
|
*/
|
|
6
|
-
import type { Message } from '../llm';
|
|
6
|
+
import type { LLMService, Message } from '../llm';
|
|
7
7
|
export interface SummaryOptions {
|
|
8
8
|
/** 摘要最大长度 */
|
|
9
9
|
maxLength?: number;
|
|
@@ -22,7 +22,11 @@ export interface SummaryOptions {
|
|
|
22
22
|
*/
|
|
23
23
|
export declare function summaryGenerator(messages: Message[], options?: SummaryOptions): Promise<string>;
|
|
24
24
|
export { summaryGenerator as generateSummary };
|
|
25
|
-
|
|
25
|
+
export interface GeneratedSummary {
|
|
26
|
+
text: string;
|
|
27
|
+
source: 'llm' | 'heuristic';
|
|
28
|
+
}
|
|
29
|
+
export declare function generateSummaryWithSource(messages: Message[], llm: LLMService, options?: SummaryOptions): Promise<GeneratedSummary>;
|
|
26
30
|
/**
|
|
27
31
|
* Generate a summary using the LLM for high-quality context compaction.
|
|
28
32
|
* Falls back to heuristic summary if LLM call fails or times out.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary-generator.d.ts","sourceRoot":"","sources":["../../../src/services/compact/summary-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"summary-generator.d.ts","sourceRoot":"","sources":["../../../src/services/compact/summary-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAOlD,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW;IACX,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;CAChD;AAiBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAkFD,OAAO,EAAE,gBAAgB,IAAI,eAAe,EAAE,CAAC;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,WAAW,CAAC;CAC7B;AAgCD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,OAAO,EAAE,EACnB,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAyD3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,OAAO,EAAE,EACnB,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|