@cuylabs/agent-core 4.9.0 → 5.0.0
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/README.md +11 -12
- package/dist/agent/chat-loop/commit-batch.d.ts +10 -0
- package/dist/agent/chat-loop/commit-batch.d.ts.map +1 -0
- package/dist/agent/chat-loop/context-recovery.d.ts +33 -0
- package/dist/agent/chat-loop/context-recovery.d.ts.map +1 -0
- package/dist/agent/chat-loop/finalize-turn.d.ts +19 -0
- package/dist/agent/chat-loop/finalize-turn.d.ts.map +1 -0
- package/dist/agent/chat-loop/index.d.ts +7 -0
- package/dist/agent/chat-loop/index.d.ts.map +1 -0
- package/dist/agent/chat-loop/loop.d.ts +8 -0
- package/dist/agent/chat-loop/loop.d.ts.map +1 -0
- package/dist/agent/chat-loop/model-step-runner.d.ts +26 -0
- package/dist/agent/chat-loop/model-step-runner.d.ts.map +1 -0
- package/dist/agent/chat-loop/model-step-snapshot.d.ts +49 -0
- package/dist/agent/chat-loop/model-step-snapshot.d.ts.map +1 -0
- package/dist/agent/chat-loop/turn-tools.d.ts +19 -0
- package/dist/agent/chat-loop/turn-tools.d.ts.map +1 -0
- package/dist/agent/chat-loop/types.d.ts +60 -0
- package/dist/agent/chat-loop/types.d.ts.map +1 -0
- package/dist/agent/defaults.d.ts +69 -0
- package/dist/agent/defaults.d.ts.map +1 -0
- package/dist/agent/event-printer.d.ts +94 -0
- package/dist/agent/event-printer.d.ts.map +1 -0
- package/dist/agent/fork.d.ts +59 -0
- package/dist/agent/fork.d.ts.map +1 -0
- package/dist/agent/index.d.ts +17 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/instance/context-management.d.ts +42 -0
- package/dist/agent/instance/context-management.d.ts.map +1 -0
- package/dist/agent/instance/forking.d.ts +26 -0
- package/dist/agent/instance/forking.d.ts.map +1 -0
- package/dist/agent/instance/index.d.ts +182 -0
- package/dist/agent/instance/index.d.ts.map +1 -0
- package/dist/agent/instance/interventions.d.ts +10 -0
- package/dist/agent/instance/interventions.d.ts.map +1 -0
- package/dist/agent/instance/mcp.d.ts +21 -0
- package/dist/agent/instance/mcp.d.ts.map +1 -0
- package/dist/agent/instance/sessions.d.ts +8 -0
- package/dist/agent/instance/sessions.d.ts.map +1 -0
- package/dist/agent/instance/tools.d.ts +16 -0
- package/dist/agent/instance/tools.d.ts.map +1 -0
- package/dist/agent/instance/turn-lifecycle.d.ts +61 -0
- package/dist/agent/instance/turn-lifecycle.d.ts.map +1 -0
- package/dist/agent/session.d.ts +16 -0
- package/dist/agent/session.d.ts.map +1 -0
- package/dist/agent/setup/config.d.ts +8 -0
- package/dist/agent/setup/config.d.ts.map +1 -0
- package/dist/agent/setup/context-window.d.ts +4 -0
- package/dist/agent/setup/context-window.d.ts.map +1 -0
- package/dist/agent/setup/environment.d.ts +5 -0
- package/dist/agent/setup/environment.d.ts.map +1 -0
- package/dist/agent/setup/middleware.d.ts +9 -0
- package/dist/agent/setup/middleware.d.ts.map +1 -0
- package/dist/agent/setup/runtime-config.d.ts +9 -0
- package/dist/agent/setup/runtime-config.d.ts.map +1 -0
- package/dist/agent/setup/state.d.ts +4 -0
- package/dist/agent/setup/state.d.ts.map +1 -0
- package/dist/agent/setup/tools.d.ts +8 -0
- package/dist/agent/setup/tools.d.ts.map +1 -0
- package/dist/agent/setup.d.ts +47 -0
- package/dist/agent/setup.d.ts.map +1 -0
- package/dist/agent/stream-provider.d.ts +27 -0
- package/dist/agent/stream-provider.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/agent-context.d.ts +76 -0
- package/dist/agent/turn-context/compaction/agent-context.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/budget.d.ts +4 -0
- package/dist/agent/turn-context/compaction/budget.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/check.d.ts +45 -0
- package/dist/agent/turn-context/compaction/check.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/fragments.d.ts +4 -0
- package/dist/agent/turn-context/compaction/fragments.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/index.d.ts +5 -0
- package/dist/agent/turn-context/compaction/index.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/memory.d.ts +18 -0
- package/dist/agent/turn-context/compaction/memory.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/results.d.ts +25 -0
- package/dist/agent/turn-context/compaction/results.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/summary.d.ts +3 -0
- package/dist/agent/turn-context/compaction/summary.d.ts.map +1 -0
- package/dist/agent/turn-context/compaction/types.d.ts +30 -0
- package/dist/agent/turn-context/compaction/types.d.ts.map +1 -0
- package/dist/agent/turn-context/fit-model-context.d.ts +29 -0
- package/dist/agent/turn-context/fit-model-context.d.ts.map +1 -0
- package/dist/agent/turn-context/index.d.ts +5 -0
- package/dist/agent/turn-context/index.d.ts.map +1 -0
- package/dist/agent/turn-context/system-prompts.d.ts +12 -0
- package/dist/agent/turn-context/system-prompts.d.ts.map +1 -0
- package/dist/agent/types/config.d.ts +206 -0
- package/dist/agent/types/config.d.ts.map +1 -0
- package/dist/agent/types/index.d.ts +11 -0
- package/dist/agent/types/index.d.ts.map +1 -0
- package/dist/agent/types/state.d.ts +16 -0
- package/dist/agent/types/state.d.ts.map +1 -0
- package/dist/agent/types/tracing.d.ts +12 -0
- package/dist/agent/types/tracing.d.ts.map +1 -0
- package/dist/{chunk-KYLPMBHD.js → chunk-336EDIBL.js} +1 -1
- package/dist/chunk-346FIYKT.js +960 -0
- package/dist/{chunk-HSUPTXNV.js → chunk-556CPZ3J.js} +13 -10
- package/dist/chunk-AHDCR7SX.js +83 -0
- package/dist/{chunk-CSR75JVC.js → chunk-ASXF5AC6.js} +1 -1
- package/dist/{chunk-BJC46FIF.js → chunk-BKHWKKSG.js} +2 -2
- package/dist/{chunk-2TTOLHBT.js → chunk-CFBSQLP5.js} +1 -1
- package/dist/chunk-CGP6UNCQ.js +554 -0
- package/dist/{chunk-GJFP5L2V.js → chunk-CNM6OROH.js} +15 -3
- package/dist/chunk-DD7S7ZG4.js +274 -0
- package/dist/chunk-DYZGHHDB.js +1458 -0
- package/dist/chunk-E66PKKDL.js +772 -0
- package/dist/{chunk-H3GRHFFG.js → chunk-EDKZOPUV.js} +63 -306
- package/dist/{chunk-GEBFHREI.js → chunk-GHVW7L4P.js} +71 -5
- package/dist/chunk-JFH6HBUG.js +227 -0
- package/dist/{chunk-MWPU2EVV.js → chunk-JUIL2NJC.js} +4 -81
- package/dist/{chunk-NS7D7JJU.js → chunk-K453AFTL.js} +35 -16
- package/dist/chunk-MJRZ2ZRI.js +498 -0
- package/dist/{chunk-UMIVJDEJ.js → chunk-SAWRDGBE.js} +30 -7
- package/dist/chunk-TYQWH6XH.js +88 -0
- package/dist/{chunk-QJV5XPPS.js → chunk-UEEHZ4QH.js} +1 -1
- package/dist/chunk-UG5PVNZV.js +53 -0
- package/dist/{chunk-BGG2HVIR.js → chunk-V4MIDL5B.js} +9 -0
- package/dist/chunk-W6LWIMIX.js +8 -0
- package/dist/context/assembly/index.d.ts +3 -0
- package/dist/context/assembly/index.d.ts.map +1 -0
- package/dist/context/assembly/prepare.d.ts +11 -0
- package/dist/context/assembly/prepare.d.ts.map +1 -0
- package/dist/context/assembly/types.d.ts +64 -0
- package/dist/context/assembly/types.d.ts.map +1 -0
- package/dist/context/config.d.ts +20 -0
- package/dist/context/config.d.ts.map +1 -0
- package/dist/context/fragments/index.d.ts +4 -0
- package/dist/context/fragments/index.d.ts.map +1 -0
- package/dist/context/fragments/messages.d.ts +12 -0
- package/dist/context/fragments/messages.d.ts.map +1 -0
- package/dist/context/fragments/render.d.ts +16 -0
- package/dist/context/fragments/render.d.ts.map +1 -0
- package/dist/context/fragments/types.d.ts +87 -0
- package/dist/context/fragments/types.d.ts.map +1 -0
- package/dist/context/index.d.ts +13 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +96 -0
- package/dist/context/text/truncation.d.ts +13 -0
- package/dist/context/text/truncation.d.ts.map +1 -0
- package/dist/context/window/budget.d.ts +135 -0
- package/dist/context/window/budget.d.ts.map +1 -0
- package/dist/context/window/compactor.d.ts +89 -0
- package/dist/context/window/compactor.d.ts.map +1 -0
- package/dist/context/window/cut-planner.d.ts +67 -0
- package/dist/context/window/cut-planner.d.ts.map +1 -0
- package/dist/context/window/decision.d.ts +50 -0
- package/dist/context/window/decision.d.ts.map +1 -0
- package/dist/context/window/estimation.d.ts +60 -0
- package/dist/context/window/estimation.d.ts.map +1 -0
- package/dist/context/window/index.d.ts +28 -0
- package/dist/context/window/index.d.ts.map +1 -0
- package/dist/context/window/manager.d.ts +113 -0
- package/dist/context/window/manager.d.ts.map +1 -0
- package/dist/context/window/summary-policy.d.ts +50 -0
- package/dist/context/window/summary-policy.d.ts.map +1 -0
- package/dist/context/window/summary.d.ts +65 -0
- package/dist/context/window/summary.d.ts.map +1 -0
- package/dist/context/window/tool-pruning.d.ts +73 -0
- package/dist/context/window/tool-pruning.d.ts.map +1 -0
- package/dist/dispatch/executor.d.ts +56 -0
- package/dist/dispatch/executor.d.ts.map +1 -0
- package/dist/dispatch/index.d.ts +7 -95
- package/dist/dispatch/index.d.ts.map +1 -0
- package/dist/dispatch/index.js +4 -3
- package/dist/dispatch/results.d.ts +9 -0
- package/dist/dispatch/results.d.ts.map +1 -0
- package/dist/dispatch/runtime.d.ts +19 -0
- package/dist/dispatch/runtime.d.ts.map +1 -0
- package/dist/dispatch/tool-factories.d.ts +8 -0
- package/dist/dispatch/tool-factories.d.ts.map +1 -0
- package/dist/dispatch/tools.d.ts +10 -0
- package/dist/dispatch/tools.d.ts.map +1 -0
- package/dist/dispatch/types.d.ts +131 -0
- package/dist/dispatch/types.d.ts.map +1 -0
- package/dist/events/event-bus/index.d.ts +13 -0
- package/dist/events/event-bus/index.d.ts.map +1 -0
- package/dist/events/event-bus/index.js +6 -0
- package/dist/events/event-bus/local.d.ts +14 -0
- package/dist/events/event-bus/local.d.ts.map +1 -0
- package/dist/events/event-bus/types.d.ts +78 -0
- package/dist/events/event-bus/types.d.ts.map +1 -0
- package/dist/events/index.d.ts +10 -89
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +6 -1
- package/dist/events/signal/index.d.ts +18 -0
- package/dist/events/signal/index.d.ts.map +1 -0
- package/dist/events/signal/index.js +6 -0
- package/dist/events/signal/local.d.ts +22 -0
- package/dist/events/signal/local.d.ts.map +1 -0
- package/dist/events/signal/types.d.ts +69 -0
- package/dist/events/signal/types.d.ts.map +1 -0
- package/dist/execution/index.d.ts +33 -481
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +45 -19
- package/dist/execution/scope/index.d.ts +10 -0
- package/dist/execution/scope/index.d.ts.map +1 -0
- package/dist/execution/scope/index.js +12 -0
- package/dist/execution/scope/run.d.ts +8 -0
- package/dist/execution/scope/run.d.ts.map +1 -0
- package/dist/execution/scope/store.d.ts +6 -0
- package/dist/execution/scope/store.d.ts.map +1 -0
- package/dist/execution/scope/types.d.ts +28 -0
- package/dist/execution/scope/types.d.ts.map +1 -0
- package/dist/execution/shared/usage.d.ts +9 -0
- package/dist/execution/shared/usage.d.ts.map +1 -0
- package/dist/execution/task/index.d.ts +6 -0
- package/dist/execution/task/index.d.ts.map +1 -0
- package/dist/execution/task/observer.d.ts +80 -0
- package/dist/execution/task/observer.d.ts.map +1 -0
- package/dist/execution/task/runner.d.ts +39 -0
- package/dist/execution/task/runner.d.ts.map +1 -0
- package/dist/execution/task/types.d.ts +85 -0
- package/dist/execution/task/types.d.ts.map +1 -0
- package/dist/execution/turn/engine/commit-batch.d.ts +16 -0
- package/dist/execution/turn/engine/commit-batch.d.ts.map +1 -0
- package/dist/execution/turn/engine/engine.d.ts +32 -0
- package/dist/execution/turn/engine/engine.d.ts.map +1 -0
- package/dist/execution/turn/engine/index.d.ts +12 -0
- package/dist/execution/turn/engine/index.d.ts.map +1 -0
- package/dist/execution/turn/engine/types.d.ts +67 -0
- package/dist/execution/turn/engine/types.d.ts.map +1 -0
- package/dist/execution/turn/index.d.ts +18 -0
- package/dist/execution/turn/index.d.ts.map +1 -0
- package/dist/execution/turn/index.js +52 -0
- package/dist/execution/turn/runner/commit.d.ts +11 -0
- package/dist/execution/turn/runner/commit.d.ts.map +1 -0
- package/dist/execution/turn/runner/index.d.ts +16 -0
- package/dist/execution/turn/runner/index.d.ts.map +1 -0
- package/dist/execution/turn/runner/prepare.d.ts +6 -0
- package/dist/execution/turn/runner/prepare.d.ts.map +1 -0
- package/dist/execution/turn/runner/stream-step.d.ts +8 -0
- package/dist/execution/turn/runner/stream-step.d.ts.map +1 -0
- package/dist/execution/turn/runner/tool-batch.d.ts +13 -0
- package/dist/execution/turn/runner/tool-batch.d.ts.map +1 -0
- package/dist/execution/turn/runner/types.d.ts +111 -0
- package/dist/execution/turn/runner/types.d.ts.map +1 -0
- package/dist/execution/turn/state.d.ts +110 -0
- package/dist/execution/turn/state.d.ts.map +1 -0
- package/dist/execution/turn/step-ledger.d.ts +89 -0
- package/dist/execution/turn/step-ledger.d.ts.map +1 -0
- package/dist/execution/turn/step-processing/doom-loop.d.ts +28 -0
- package/dist/execution/turn/step-processing/doom-loop.d.ts.map +1 -0
- package/dist/execution/turn/step-processing/index.d.ts +14 -0
- package/dist/execution/turn/step-processing/index.d.ts.map +1 -0
- package/dist/execution/turn/step-processing/overflow.d.ts +17 -0
- package/dist/execution/turn/step-processing/overflow.d.ts.map +1 -0
- package/dist/execution/turn/step-processing/process.d.ts +7 -0
- package/dist/execution/turn/step-processing/process.d.ts.map +1 -0
- package/dist/execution/turn/step-processing/types.d.ts +65 -0
- package/dist/execution/turn/step-processing/types.d.ts.map +1 -0
- package/dist/execution/workflow/index.d.ts +12 -0
- package/dist/execution/workflow/index.d.ts.map +1 -0
- package/dist/execution/workflow/index.js +39 -0
- package/dist/execution/workflow/planner/apply.d.ts +30 -0
- package/dist/execution/workflow/planner/apply.d.ts.map +1 -0
- package/dist/execution/workflow/planner/helpers.d.ts +6 -0
- package/dist/execution/workflow/planner/helpers.d.ts.map +1 -0
- package/dist/execution/workflow/planner/index.d.ts +13 -0
- package/dist/execution/workflow/planner/index.d.ts.map +1 -0
- package/dist/execution/workflow/planner/plan.d.ts +7 -0
- package/dist/execution/workflow/planner/plan.d.ts.map +1 -0
- package/dist/execution/workflow/planner/types.d.ts +49 -0
- package/dist/execution/workflow/planner/types.d.ts.map +1 -0
- package/dist/execution/workflow/snapshot.d.ts +11 -0
- package/dist/execution/workflow/snapshot.d.ts.map +1 -0
- package/dist/execution/workflow/state.d.ts +161 -0
- package/dist/execution/workflow/state.d.ts.map +1 -0
- package/dist/human/controller.d.ts +24 -0
- package/dist/human/controller.d.ts.map +1 -0
- package/dist/human/handler.d.ts +15 -0
- package/dist/human/handler.d.ts.map +1 -0
- package/dist/human/index.d.ts +5 -0
- package/dist/human/index.d.ts.map +1 -0
- package/dist/human/tool.d.ts +17 -0
- package/dist/human/tool.d.ts.map +1 -0
- package/dist/human/types.d.ts +62 -0
- package/dist/human/types.d.ts.map +1 -0
- package/dist/index.d.ts +66 -567
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2681 -1859
- package/dist/inference/defaults.d.ts +8 -0
- package/dist/inference/defaults.d.ts.map +1 -0
- package/dist/inference/errors/classify.d.ts +5 -0
- package/dist/inference/errors/classify.d.ts.map +1 -0
- package/dist/inference/errors/extract.d.ts +3 -0
- package/dist/inference/errors/extract.d.ts.map +1 -0
- package/dist/inference/errors/index.d.ts +8 -11
- package/dist/inference/errors/index.d.ts.map +1 -0
- package/dist/inference/errors/llm-error.d.ts +14 -0
- package/dist/inference/errors/llm-error.d.ts.map +1 -0
- package/dist/inference/errors/types.d.ts +18 -0
- package/dist/inference/errors/types.d.ts.map +1 -0
- package/dist/inference/errors/utils.d.ts +5 -0
- package/dist/inference/errors/utils.d.ts.map +1 -0
- package/dist/inference/index.d.ts +17 -49
- package/dist/inference/index.d.ts.map +1 -0
- package/dist/inference/index.js +7 -7
- package/dist/inference/middleware-support.d.ts +14 -0
- package/dist/inference/middleware-support.d.ts.map +1 -0
- package/dist/{model-messages-n_ZMZwIm.d.ts → inference/model-messages.d.ts} +4 -6
- package/dist/inference/model-messages.d.ts.map +1 -0
- package/dist/inference/retry.d.ts +73 -0
- package/dist/inference/retry.d.ts.map +1 -0
- package/dist/inference/stream.d.ts +16 -0
- package/dist/inference/stream.d.ts.map +1 -0
- package/dist/inference/toolset.d.ts +26 -0
- package/dist/inference/toolset.d.ts.map +1 -0
- package/dist/inference/types.d.ts +129 -0
- package/dist/inference/types.d.ts.map +1 -0
- package/dist/intervention/follow-up-policy.d.ts +41 -0
- package/dist/intervention/follow-up-policy.d.ts.map +1 -0
- package/dist/intervention/index.d.ts +5 -0
- package/dist/intervention/index.d.ts.map +1 -0
- package/dist/intervention/intervention.d.ts +130 -0
- package/dist/intervention/intervention.d.ts.map +1 -0
- package/dist/intervention/types.d.ts +74 -0
- package/dist/intervention/types.d.ts.map +1 -0
- package/dist/logger/index.d.ts +5 -47
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/logger.d.ts +46 -0
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/{types-RSCv7nQ4.d.ts → logger/types.d.ts} +6 -7
- package/dist/logger/types.d.ts.map +1 -0
- package/dist/mcp/auth.d.ts +109 -0
- package/dist/mcp/auth.d.ts.map +1 -0
- package/dist/mcp/diagnostics.d.ts +23 -0
- package/dist/mcp/diagnostics.d.ts.map +1 -0
- package/dist/mcp/factories.d.ts +47 -0
- package/dist/mcp/factories.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +14 -175
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/manager.d.ts +45 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/modules.d.ts +6 -0
- package/dist/mcp/modules.d.ts.map +1 -0
- package/dist/{types-DMjoFKKv.d.ts → mcp/types.d.ts} +18 -19
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/memory/config.d.ts +4 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/format.d.ts +8 -0
- package/dist/memory/format.d.ts.map +1 -0
- package/dist/memory/index.d.ts +5 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +14 -0
- package/dist/memory/middleware.d.ts +14 -0
- package/dist/memory/middleware.d.ts.map +1 -0
- package/dist/memory/types.d.ts +251 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/middleware/approval.d.ts +70 -0
- package/dist/middleware/approval.d.ts.map +1 -0
- package/dist/middleware/index.d.ts +25 -110
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +2 -2
- package/dist/middleware/prompt-cache/cache.d.ts +44 -0
- package/dist/middleware/prompt-cache/cache.d.ts.map +1 -0
- package/dist/middleware/prompt-cache/index.d.ts +14 -0
- package/dist/middleware/prompt-cache/index.d.ts.map +1 -0
- package/dist/middleware/prompt-cache/types.d.ts +50 -0
- package/dist/middleware/prompt-cache/types.d.ts.map +1 -0
- package/dist/middleware/runner.d.ts +115 -0
- package/dist/middleware/runner.d.ts.map +1 -0
- package/dist/middleware/telemetry/index.d.ts +12 -0
- package/dist/middleware/telemetry/index.d.ts.map +1 -0
- package/dist/middleware/telemetry/otel.d.ts +4 -0
- package/dist/middleware/telemetry/otel.d.ts.map +1 -0
- package/dist/middleware/telemetry/provider.d.ts +3 -0
- package/dist/middleware/telemetry/provider.d.ts.map +1 -0
- package/dist/middleware/telemetry/types.d.ts +150 -0
- package/dist/middleware/telemetry/types.d.ts.map +1 -0
- package/dist/middleware/types.d.ts +426 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/models/cache/adapters.d.ts +4 -0
- package/dist/models/cache/adapters.d.ts.map +1 -0
- package/dist/models/cache/index.d.ts +5 -0
- package/dist/models/cache/index.d.ts.map +1 -0
- package/dist/models/cache/manager.d.ts +32 -0
- package/dist/models/cache/manager.d.ts.map +1 -0
- package/dist/models/cache/types.d.ts +17 -0
- package/dist/models/cache/types.d.ts.map +1 -0
- package/dist/models/capability-resolver.d.ts +104 -0
- package/dist/models/capability-resolver.d.ts.map +1 -0
- package/dist/models/identifiers.d.ts +23 -0
- package/dist/models/identifiers.d.ts.map +1 -0
- package/dist/models/index.d.ts +35 -256
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +1 -1
- package/dist/models/overrides.d.ts +10 -0
- package/dist/models/overrides.d.ts.map +1 -0
- package/dist/models/profiles.d.ts +38 -0
- package/dist/models/profiles.d.ts.map +1 -0
- package/dist/models/reasoning/config.d.ts +49 -0
- package/dist/models/reasoning/config.d.ts.map +1 -0
- package/dist/models/reasoning/index.d.ts +12 -4
- package/dist/models/reasoning/index.d.ts.map +1 -0
- package/dist/models/reasoning/index.js +1 -1
- package/dist/models/reasoning/providers.d.ts +63 -0
- package/dist/models/reasoning/providers.d.ts.map +1 -0
- package/dist/{types-CQaXbRsS.d.ts → models/reasoning/types.d.ts} +7 -8
- package/dist/models/reasoning/types.d.ts.map +1 -0
- package/dist/models/remote/fetcher.d.ts +13 -0
- package/dist/models/remote/fetcher.d.ts.map +1 -0
- package/dist/models/remote/index.d.ts +8 -0
- package/dist/models/remote/index.d.ts.map +1 -0
- package/dist/models/remote/network.d.ts +6 -0
- package/dist/models/remote/network.d.ts.map +1 -0
- package/dist/models/remote/source.d.ts +16 -0
- package/dist/models/remote/source.d.ts.map +1 -0
- package/dist/models/remote/transform.d.ts +4 -0
- package/dist/models/remote/transform.d.ts.map +1 -0
- package/dist/models/remote/types.d.ts +28 -0
- package/dist/models/remote/types.d.ts.map +1 -0
- package/dist/models/resolver.d.ts +26 -0
- package/dist/models/resolver.d.ts.map +1 -0
- package/dist/models/types.d.ts +137 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/plugin/compatibility.d.ts +11 -0
- package/dist/plugin/compatibility.d.ts.map +1 -0
- package/dist/plugin/define.d.ts +77 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/event-bus.d.ts +31 -0
- package/dist/plugin/event-bus.d.ts.map +1 -0
- package/dist/plugin/index.d.ts +9 -458
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/loader.d.ts +63 -0
- package/dist/plugin/loader.d.ts.map +1 -0
- package/dist/plugin/registry.d.ts +81 -0
- package/dist/plugin/registry.d.ts.map +1 -0
- package/dist/plugin/settings.d.ts +36 -0
- package/dist/plugin/settings.d.ts.map +1 -0
- package/dist/plugin/types.d.ts +168 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/profiles/apply.d.ts +17 -0
- package/dist/profiles/apply.d.ts.map +1 -0
- package/dist/profiles/builtins.d.ts +18 -0
- package/dist/profiles/builtins.d.ts.map +1 -0
- package/dist/profiles/index.d.ts +12 -55
- package/dist/profiles/index.d.ts.map +1 -0
- package/dist/profiles/patterns.d.ts +12 -0
- package/dist/profiles/patterns.d.ts.map +1 -0
- package/dist/profiles/types.d.ts +48 -0
- package/dist/profiles/types.d.ts.map +1 -0
- package/dist/prompt/builder/builder.d.ts +27 -0
- package/dist/prompt/builder/builder.d.ts.map +1 -0
- package/dist/prompt/builder/index.d.ts +11 -0
- package/dist/prompt/builder/index.d.ts.map +1 -0
- package/dist/prompt/builder/priorities.d.ts +13 -0
- package/dist/prompt/builder/priorities.d.ts.map +1 -0
- package/dist/prompt/builder/sections.d.ts +30 -0
- package/dist/prompt/builder/sections.d.ts.map +1 -0
- package/dist/prompt/environment.d.ts +46 -0
- package/dist/prompt/environment.d.ts.map +1 -0
- package/dist/prompt/index.d.ts +31 -220
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +3 -1
- package/dist/prompt/instructions.d.ts +104 -0
- package/dist/prompt/instructions.d.ts.map +1 -0
- package/dist/prompt/templates.d.ts +56 -0
- package/dist/prompt/templates.d.ts.map +1 -0
- package/dist/prompt/types.d.ts +218 -0
- package/dist/prompt/types.d.ts.map +1 -0
- package/dist/safety/errors.d.ts +18 -0
- package/dist/safety/errors.d.ts.map +1 -0
- package/dist/safety/handler.d.ts +16 -0
- package/dist/safety/handler.d.ts.map +1 -0
- package/dist/safety/index.d.ts +11 -133
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/patterns.d.ts +17 -0
- package/dist/safety/patterns.d.ts.map +1 -0
- package/dist/safety/policy.d.ts +31 -0
- package/dist/safety/policy.d.ts.map +1 -0
- package/dist/safety/presets.d.ts +43 -0
- package/dist/safety/presets.d.ts.map +1 -0
- package/dist/safety/risk.d.ts +14 -0
- package/dist/safety/risk.d.ts.map +1 -0
- package/dist/safety/types.d.ts +165 -0
- package/dist/safety/types.d.ts.map +1 -0
- package/dist/sandbox/index.d.ts +2 -81
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/types.d.ts +79 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sessions/index.d.ts +13 -0
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/{storage → sessions}/index.js +6 -17
- package/dist/sessions/manager/default.d.ts +11 -0
- package/dist/sessions/manager/default.d.ts.map +1 -0
- package/dist/sessions/manager/index.d.ts +12 -0
- package/dist/sessions/manager/index.d.ts.map +1 -0
- package/dist/sessions/manager/session-manager.d.ts +67 -0
- package/dist/sessions/manager/session-manager.d.ts.map +1 -0
- package/dist/sessions/manager/types.d.ts +42 -0
- package/dist/sessions/manager/types.d.ts.map +1 -0
- package/dist/sessions/store/lock.d.ts +18 -0
- package/dist/sessions/store/lock.d.ts.map +1 -0
- package/dist/sessions/store/memory.d.ts +22 -0
- package/dist/sessions/store/memory.d.ts.map +1 -0
- package/dist/sessions/types.d.ts +215 -0
- package/dist/sessions/types.d.ts.map +1 -0
- package/dist/sessions/utils.d.ts +77 -0
- package/dist/sessions/utils.d.ts.map +1 -0
- package/dist/skill/discovery/constants.d.ts +6 -0
- package/dist/skill/discovery/constants.d.ts.map +1 -0
- package/dist/skill/discovery/dedupe.d.ts +3 -0
- package/dist/skill/discovery/dedupe.d.ts.map +1 -0
- package/dist/skill/discovery/discover.d.ts +3 -0
- package/dist/skill/discovery/discover.d.ts.map +1 -0
- package/dist/skill/discovery/fs.d.ts +4 -0
- package/dist/skill/discovery/fs.d.ts.map +1 -0
- package/dist/skill/discovery/index.d.ts +6 -0
- package/dist/skill/discovery/index.d.ts.map +1 -0
- package/dist/skill/discovery/scan.d.ts +3 -0
- package/dist/skill/discovery/scan.d.ts.map +1 -0
- package/dist/skill/discovery/types.d.ts +15 -0
- package/dist/skill/discovery/types.d.ts.map +1 -0
- package/dist/skill/index.d.ts +67 -89
- package/dist/skill/index.d.ts.map +1 -0
- package/dist/skill/index.js +2 -2
- package/dist/skill/loader/constants.d.ts +5 -0
- package/dist/skill/loader/constants.d.ts.map +1 -0
- package/dist/skill/loader/frontmatter.d.ts +5 -0
- package/dist/skill/loader/frontmatter.d.ts.map +1 -0
- package/dist/skill/loader/index.d.ts +8 -0
- package/dist/skill/loader/index.d.ts.map +1 -0
- package/dist/skill/loader/metadata.d.ts +3 -0
- package/dist/skill/loader/metadata.d.ts.map +1 -0
- package/dist/skill/loader/resources.d.ts +5 -0
- package/dist/skill/loader/resources.d.ts.map +1 -0
- package/dist/skill/registry.d.ts +177 -0
- package/dist/skill/registry.d.ts.map +1 -0
- package/dist/skill/tools.d.ts +77 -0
- package/dist/skill/tools.d.ts.map +1 -0
- package/dist/skill/types.d.ts +291 -0
- package/dist/skill/types.d.ts.map +1 -0
- package/dist/subagents/index.d.ts +8 -179
- package/dist/subagents/index.d.ts.map +1 -0
- package/dist/subagents/index.js +5 -4
- package/dist/subagents/installation.d.ts +23 -0
- package/dist/subagents/installation.d.ts.map +1 -0
- package/dist/subagents/results.d.ts +15 -0
- package/dist/subagents/results.d.ts.map +1 -0
- package/dist/subagents/roles/discovery.d.ts +38 -0
- package/dist/subagents/roles/discovery.d.ts.map +1 -0
- package/dist/subagents/roles/index.d.ts +5 -0
- package/dist/subagents/roles/index.d.ts.map +1 -0
- package/dist/subagents/roles/markdown-profile.d.ts +61 -0
- package/dist/subagents/roles/markdown-profile.d.ts.map +1 -0
- package/dist/subagents/tool-factories.d.ts +11 -0
- package/dist/subagents/tool-factories.d.ts.map +1 -0
- package/dist/subagents/tools.d.ts +13 -0
- package/dist/subagents/tools.d.ts.map +1 -0
- package/dist/subagents/types.d.ts +21 -0
- package/dist/subagents/types.d.ts.map +1 -0
- package/dist/team/coordinator/coordinator.d.ts +342 -0
- package/dist/team/coordinator/coordinator.d.ts.map +1 -0
- package/dist/team/coordinator/inbox.d.ts +99 -0
- package/dist/team/coordinator/inbox.d.ts.map +1 -0
- package/dist/team/coordinator/index.d.ts +19 -0
- package/dist/team/coordinator/index.d.ts.map +1 -0
- package/dist/team/coordinator/planning.d.ts +33 -0
- package/dist/team/coordinator/planning.d.ts.map +1 -0
- package/dist/team/coordinator/policy.d.ts +31 -0
- package/dist/team/coordinator/policy.d.ts.map +1 -0
- package/dist/team/coordinator/round-engine.d.ts +25 -0
- package/dist/team/coordinator/round-engine.d.ts.map +1 -0
- package/dist/team/coordinator/synthesis.d.ts +20 -0
- package/dist/team/coordinator/synthesis.d.ts.map +1 -0
- package/dist/team/coordinator/turn.d.ts +107 -0
- package/dist/team/coordinator/turn.d.ts.map +1 -0
- package/dist/team/coordinator/types.d.ts +344 -0
- package/dist/team/coordinator/types.d.ts.map +1 -0
- package/dist/team/events.d.ts +148 -0
- package/dist/team/events.d.ts.map +1 -0
- package/dist/team/execution.d.ts +51 -0
- package/dist/team/execution.d.ts.map +1 -0
- package/dist/team/index.d.ts +23 -545
- package/dist/team/index.d.ts.map +1 -0
- package/dist/team/index.js +2 -2
- package/dist/team/mailbox.d.ts +91 -0
- package/dist/team/mailbox.d.ts.map +1 -0
- package/dist/team/notifications.d.ts +23 -0
- package/dist/team/notifications.d.ts.map +1 -0
- package/dist/team/permissions.d.ts +88 -0
- package/dist/team/permissions.d.ts.map +1 -0
- package/dist/team/shutdown.d.ts +38 -0
- package/dist/team/shutdown.d.ts.map +1 -0
- package/dist/team/task-board.d.ts +161 -0
- package/dist/team/task-board.d.ts.map +1 -0
- package/dist/team/types.d.ts +233 -0
- package/dist/team/types.d.ts.map +1 -0
- package/dist/team/work-loop.d.ts +30 -0
- package/dist/team/work-loop.d.ts.map +1 -0
- package/dist/tool/executor.d.ts +59 -0
- package/dist/tool/executor.d.ts.map +1 -0
- package/dist/tool/host/index.d.ts +7 -38
- package/dist/tool/host/index.d.ts.map +1 -0
- package/dist/tool/host/local.d.ts +15 -0
- package/dist/tool/host/local.d.ts.map +1 -0
- package/dist/tool/host/registry.d.ts +17 -0
- package/dist/tool/host/registry.d.ts.map +1 -0
- package/dist/{types-C_LCeYNg.d.ts → tool/host/types.d.ts} +6 -7
- package/dist/tool/host/types.d.ts.map +1 -0
- package/dist/tool/index.d.ts +21 -285
- package/dist/tool/index.d.ts.map +1 -0
- package/dist/tool/index.js +4 -3
- package/dist/tool/registry.d.ts +130 -0
- package/dist/tool/registry.d.ts.map +1 -0
- package/dist/tool/replay.d.ts +11 -0
- package/dist/tool/replay.d.ts.map +1 -0
- package/dist/tool/tool-search.d.ts +50 -0
- package/dist/tool/tool-search.d.ts.map +1 -0
- package/dist/tool/tool.d.ts +308 -0
- package/dist/tool/tool.d.ts.map +1 -0
- package/dist/tool/truncation.d.ts +34 -0
- package/dist/tool/truncation.d.ts.map +1 -0
- package/dist/tool/turn-tools.d.ts +71 -0
- package/dist/tool/turn-tools.d.ts.map +1 -0
- package/dist/tracking/file-tracking.d.ts +25 -0
- package/dist/tracking/file-tracking.d.ts.map +1 -0
- package/dist/tracking/index.d.ts +9 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/turn-tracker/diff.d.ts +11 -0
- package/dist/tracking/turn-tracker/diff.d.ts.map +1 -0
- package/dist/tracking/turn-tracker/index.d.ts +11 -0
- package/dist/tracking/turn-tracker/index.d.ts.map +1 -0
- package/dist/tracking/turn-tracker/tracker.d.ts +31 -0
- package/dist/tracking/turn-tracker/tracker.d.ts.map +1 -0
- package/dist/tracking/turn-tracker/types.d.ts +66 -0
- package/dist/tracking/turn-tracker/types.d.ts.map +1 -0
- package/dist/types/compaction.d.ts +191 -0
- package/dist/types/compaction.d.ts.map +1 -0
- package/dist/types/doom-loop.d.ts +25 -0
- package/dist/types/doom-loop.d.ts.map +1 -0
- package/dist/types/events.d.ts +196 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/messages.d.ts +119 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/stream.d.ts +172 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/tool.d.ts +309 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/turn-source.d.ts +36 -0
- package/dist/types/turn-source.d.ts.map +1 -0
- package/dist/utils/sleep.d.ts +7 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/package.json +49 -12
- package/dist/chunk-CJI7PVS2.js +0 -58
- package/dist/chunk-V6ETEYST.js +0 -2091
- package/dist/index-BCqEGzBj.d.ts +0 -251
- package/dist/instance-Bg61WSyz.d.ts +0 -6004
- package/dist/llm-error-D93FNNLY.d.ts +0 -32
- package/dist/storage/index.d.ts +0 -191
- package/dist/turn-tools/index.d.ts +0 -12
- package/dist/turn-tools/index.js +0 -1
- package/dist/{chunk-O2WCYSXQ.js → chunk-3NBTQHVV.js} +0 -0
- package/dist/{chunk-Q742PSH3.js → chunk-MJML3A2F.js} +36 -36
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context compaction orchestration.
|
|
3
|
+
*
|
|
4
|
+
* Combines deterministic decisions, tool-context pruning, safe cut planning,
|
|
5
|
+
* and summary generation into one operation over a message array.
|
|
6
|
+
*/
|
|
7
|
+
import type { Message } from "../../types/index.js";
|
|
8
|
+
import type { CompactionCutReason, CompactionEffectiveness, CompactionReason, CompactionTrigger, ToolContextPrunePolicy } from "../../types/compaction.js";
|
|
9
|
+
import { type ContextTokenEstimator } from "./estimation.js";
|
|
10
|
+
import { type ContextLimits } from "./budget.js";
|
|
11
|
+
import { type ContextCompactionDecision } from "./decision.js";
|
|
12
|
+
import { type ToolContextPruneReport } from "./tool-pruning.js";
|
|
13
|
+
import { type ContextSummaryPolicy, type ResolvedContextSummaryPolicy } from "./summary-policy.js";
|
|
14
|
+
/**
|
|
15
|
+
* Options for {@link pruneContext}.
|
|
16
|
+
*/
|
|
17
|
+
export interface PruneContextOptions {
|
|
18
|
+
/** Context limits to enforce */
|
|
19
|
+
limits?: ContextLimits;
|
|
20
|
+
/** Summary behavior for conversation cuts. */
|
|
21
|
+
summary?: ContextSummaryPolicy | ResolvedContextSummaryPolicy;
|
|
22
|
+
/** Cheap tool-context pruning controls. */
|
|
23
|
+
toolPruning?: {
|
|
24
|
+
/** Set false to skip old tool-output and tool-argument pruning. */
|
|
25
|
+
enabled?: boolean;
|
|
26
|
+
/** Policy for deciding how aggressively old tool context is compacted. */
|
|
27
|
+
policy?: ToolContextPrunePolicy;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Force a best-effort compaction pass after the provider reports context
|
|
31
|
+
* overflow.
|
|
32
|
+
*/
|
|
33
|
+
force?: boolean;
|
|
34
|
+
/** Lifecycle source that requested this compaction pass. */
|
|
35
|
+
trigger?: CompactionTrigger;
|
|
36
|
+
/** Operational reason for the pass. */
|
|
37
|
+
reason?: CompactionReason;
|
|
38
|
+
/** Optional model-aware token estimator for context-window planning. */
|
|
39
|
+
tokenEstimator?: ContextTokenEstimator;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result of a pruning operation.
|
|
43
|
+
*/
|
|
44
|
+
export interface PruneResult {
|
|
45
|
+
/** Messages after pruning (may include a summary message) */
|
|
46
|
+
messages: Message[];
|
|
47
|
+
/** Deterministic policy decision that caused or skipped compaction */
|
|
48
|
+
decision: ContextCompactionDecision;
|
|
49
|
+
/** Measured compaction savings */
|
|
50
|
+
effectiveness: CompactionEffectiveness;
|
|
51
|
+
/** Number of messages removed */
|
|
52
|
+
removedCount: number;
|
|
53
|
+
/** Estimated tokens removed */
|
|
54
|
+
tokensRemoved: number;
|
|
55
|
+
/** Whether summarization was used */
|
|
56
|
+
summarized: boolean;
|
|
57
|
+
/** The summary content, if generated */
|
|
58
|
+
summary?: string;
|
|
59
|
+
/** Existing handoff summary incorporated into the generated summary, if any */
|
|
60
|
+
previousSummary?: string;
|
|
61
|
+
/** Summary policy resolved for this pruning operation */
|
|
62
|
+
summaryPolicy: ResolvedContextSummaryPolicy;
|
|
63
|
+
/** Messages removed by conversation cutting, when applicable */
|
|
64
|
+
removedMessages?: Message[];
|
|
65
|
+
/** Messages kept after conversation cutting, before summary insertion */
|
|
66
|
+
keptMessages?: Message[];
|
|
67
|
+
/** Safe cut index used for conversation cutting, when applicable */
|
|
68
|
+
cutIndex?: number;
|
|
69
|
+
/** Why the cut boundary was selected */
|
|
70
|
+
cutReason?: CompactionCutReason;
|
|
71
|
+
/** Output token budget used for the summary request, if generated */
|
|
72
|
+
summaryOutputTokens?: number;
|
|
73
|
+
/** Details from the cheap tool-context pruning pass */
|
|
74
|
+
toolContext?: ToolContextPruneReport;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Prune a conversation to fit within context-window limits.
|
|
78
|
+
*
|
|
79
|
+
* Strategy, in order:
|
|
80
|
+
* 1. Prune old tool context without a model call.
|
|
81
|
+
* 2. If still overflowing, find a safe cut point and remove older messages.
|
|
82
|
+
* 3. If conversation history is cut, apply the configured summary policy.
|
|
83
|
+
*
|
|
84
|
+
* @param messages - Current message array
|
|
85
|
+
* @param options - Limits, model, and prompt overrides
|
|
86
|
+
* @returns A `PruneResult` with the trimmed messages
|
|
87
|
+
*/
|
|
88
|
+
export declare function pruneContext(messages: Message[], options?: PruneContextOptions): Promise<PruneResult>;
|
|
89
|
+
//# sourceMappingURL=compactor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../../src/context/window/compactor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;AAM7B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,oBAAoB,GAAG,4BAA4B,CAAC;IAC9D,2CAA2C;IAC3C,WAAW,CAAC,EAAE;QACZ,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,0EAA0E;QAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,uCAAuC;IACvC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,sEAAsE;IACtE,QAAQ,EAAE,yBAAyB,CAAC;IACpC,kCAAkC;IAClC,aAAa,EAAE,uBAAuB,CAAC;IACvC,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,aAAa,EAAE,4BAA4B,CAAC;IAC5C,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAyBD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,WAAW,CAAC,CAmMtB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context cut planning.
|
|
3
|
+
*
|
|
4
|
+
* Finds a safe message boundary for replacing old conversation history with a
|
|
5
|
+
* summary. The planner validates the entire kept suffix so the next model call
|
|
6
|
+
* does not receive orphaned tool results or incomplete tool-call groups.
|
|
7
|
+
*/
|
|
8
|
+
import type { Message } from "../../types/messages.js";
|
|
9
|
+
import type { CompactionCutReason } from "../../types/compaction.js";
|
|
10
|
+
import { type ContextTokenEstimator } from "./estimation.js";
|
|
11
|
+
/**
|
|
12
|
+
* Rich planning result for conversation cutting.
|
|
13
|
+
*/
|
|
14
|
+
export interface CompactionCutPlan {
|
|
15
|
+
/**
|
|
16
|
+
* Shape of the cut.
|
|
17
|
+
*
|
|
18
|
+
* `conversation` removes a contiguous conversation prefix. `split-turn-prefix`
|
|
19
|
+
* removes the early part of the active turn so the latest suffix can remain
|
|
20
|
+
* verbatim when the active turn is too large to fit as a unit.
|
|
21
|
+
*/
|
|
22
|
+
kind: "conversation" | "split-turn-prefix";
|
|
23
|
+
/** Cut index (exclusive: remove messages before this index) */
|
|
24
|
+
cutIndex: number;
|
|
25
|
+
/** Messages that would be removed and summarized */
|
|
26
|
+
removedMessages: Message[];
|
|
27
|
+
/** Messages that would remain visible after the summary */
|
|
28
|
+
keptMessages: Message[];
|
|
29
|
+
/** Estimated tokens removed by the cut */
|
|
30
|
+
tokensRemoved: number;
|
|
31
|
+
/** Estimated tokens kept after the cut */
|
|
32
|
+
tokensKept: number;
|
|
33
|
+
/** Protected suffix target used while planning */
|
|
34
|
+
protectedTokens: number;
|
|
35
|
+
/** Why the cut boundary was selected */
|
|
36
|
+
reason: CompactionCutReason;
|
|
37
|
+
/** Historical messages before the active turn, used as summary input */
|
|
38
|
+
historyMessages: Message[];
|
|
39
|
+
/** Removed early messages from the active turn, used as summary input */
|
|
40
|
+
currentTurnPrefixMessages: Message[];
|
|
41
|
+
/** Index of the active turn start when `kind` is `split-turn-prefix` */
|
|
42
|
+
currentTurnStartIndex?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface PlanCompactionCutOptions {
|
|
45
|
+
/**
|
|
46
|
+
* Allow the planner to cut inside the active turn when a normal turn-safe cut
|
|
47
|
+
* still leaves too much context.
|
|
48
|
+
*/
|
|
49
|
+
allowSplitTurn?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Desired upper bound for the kept suffix. Used only to decide whether the
|
|
52
|
+
* planner should try split-turn prefix compaction.
|
|
53
|
+
*/
|
|
54
|
+
maxKeptTokens?: number;
|
|
55
|
+
/** Optional model-aware token estimator for cut planning. */
|
|
56
|
+
tokenEstimator?: ContextTokenEstimator;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Plan a safe conversation cut.
|
|
60
|
+
*
|
|
61
|
+
* The plan preserves a recent token suffix, avoids keeping orphaned tool
|
|
62
|
+
* results, and prefers boundaries where the kept suffix starts with a new user
|
|
63
|
+
* or system message. It returns the exact removed/kept slices so callers can
|
|
64
|
+
* summarize and persist without recomputing the boundary.
|
|
65
|
+
*/
|
|
66
|
+
export declare function planCompactionCut(messages: Message[], protectedTokens?: number, options?: PlanCompactionCutOptions): CompactionCutPlan;
|
|
67
|
+
//# sourceMappingURL=cut-planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cut-planner.d.ts","sourceRoot":"","sources":["../../../src/context/window/cut-planner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAoB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,iBAAiB,CAAC;AAOzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,IAAI,EAAE,cAAc,GAAG,mBAAmB,CAAC;IAC3C,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,wEAAwE;IACxE,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,yEAAyE;IACzE,yBAAyB,EAAE,OAAO,EAAE,CAAC;IACrC,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AA4PD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,GAAE,MAA+C,EAChE,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CA8JnB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic context compaction decisions.
|
|
3
|
+
*
|
|
4
|
+
* This module answers whether the context-window layer should attempt
|
|
5
|
+
* compaction. It does not mutate messages and never calls a model; LLM usage is
|
|
6
|
+
* reserved for the later summary-generation step after a safe cut is selected.
|
|
7
|
+
*/
|
|
8
|
+
import type { Message } from "../../types/messages.js";
|
|
9
|
+
import type { CompactionReason, CompactionTrigger } from "../../types/compaction.js";
|
|
10
|
+
import { type ContextLimits } from "./budget.js";
|
|
11
|
+
import { type ContextTokenEstimator } from "./estimation.js";
|
|
12
|
+
export type ContextCompactionDecisionReason = "below-prune-minimum" | "under-limit" | "overflow" | "forced-recovery";
|
|
13
|
+
export type ContextCompactionDecisionStrategy = "none" | "tool-context-first";
|
|
14
|
+
export interface ContextCompactionDecision {
|
|
15
|
+
/** Whether the compactor should run. */
|
|
16
|
+
needed: boolean;
|
|
17
|
+
/** Why this decision was made. */
|
|
18
|
+
reason: ContextCompactionDecisionReason;
|
|
19
|
+
/** First execution strategy selected by deterministic policy. */
|
|
20
|
+
strategy: ContextCompactionDecisionStrategy;
|
|
21
|
+
/** Whether the caller forced compaction after provider overflow. */
|
|
22
|
+
forced: boolean;
|
|
23
|
+
/** Lifecycle source that requested this decision. */
|
|
24
|
+
trigger?: CompactionTrigger;
|
|
25
|
+
/** Operational reason for running compaction. */
|
|
26
|
+
compactionReason?: CompactionReason;
|
|
27
|
+
/** Whether a summary model is available if history must be cut. */
|
|
28
|
+
canSummarize: boolean;
|
|
29
|
+
/** Estimated input tokens before compaction. */
|
|
30
|
+
inputTokens: number;
|
|
31
|
+
/** Token threshold that starts compaction for this decision. */
|
|
32
|
+
limit: number;
|
|
33
|
+
/** Estimated tokens above the compaction threshold. */
|
|
34
|
+
overflowTokens: number;
|
|
35
|
+
/** Recent token suffix protected from compaction. */
|
|
36
|
+
protectedTokens: number;
|
|
37
|
+
/** Minimum estimated context size before automatic compaction runs. */
|
|
38
|
+
pruneMinimum: number;
|
|
39
|
+
}
|
|
40
|
+
export interface DecideContextCompactionOptions {
|
|
41
|
+
limits?: ContextLimits;
|
|
42
|
+
force?: boolean;
|
|
43
|
+
canSummarize?: boolean;
|
|
44
|
+
inputTokens?: number;
|
|
45
|
+
trigger?: CompactionTrigger;
|
|
46
|
+
reason?: CompactionReason;
|
|
47
|
+
tokenEstimator?: ContextTokenEstimator;
|
|
48
|
+
}
|
|
49
|
+
export declare function decideContextCompaction(messages: readonly Message[], options?: DecideContextCompactionOptions): ContextCompactionDecision;
|
|
50
|
+
//# sourceMappingURL=decision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../../src/context/window/decision.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,+BAA+B,GACvC,qBAAqB,GACrB,aAAa,GACb,UAAU,GACV,iBAAiB,CAAC;AAEtB,MAAM,MAAM,iCAAiC,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAE9E,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,+BAA+B,CAAC;IACxC,iEAAiE;IACjE,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mEAAmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AA2CD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,GAAE,8BAAmC,GAC3C,yBAAyB,CAkF3B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Estimation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides lightweight heuristic-based token counting for messages
|
|
5
|
+
* and conversations. Uses the chars/4 approximation — simple but
|
|
6
|
+
* effective for context-window planning decisions.
|
|
7
|
+
*
|
|
8
|
+
* These are *estimates*, not exact counts. For billing or hard limits,
|
|
9
|
+
* use the provider's native tokeniser instead.
|
|
10
|
+
*/
|
|
11
|
+
import type { Message } from "../../types/messages.js";
|
|
12
|
+
import type { ModelMessage } from "ai";
|
|
13
|
+
/**
|
|
14
|
+
* Optional estimator used by context-window planning.
|
|
15
|
+
*
|
|
16
|
+
* The contract is intentionally named "estimator" instead of "tokenizer":
|
|
17
|
+
* callers may provide an exact model tokenizer, but approximations are also
|
|
18
|
+
* valid. Invalid return values are ignored and the built-in heuristic is used.
|
|
19
|
+
*/
|
|
20
|
+
export interface ContextTokenEstimator {
|
|
21
|
+
/** Estimate plain text. Used for message content, tool names, and arguments. */
|
|
22
|
+
estimateTextTokens?(text: string): number | undefined;
|
|
23
|
+
/** Estimate one model-visible message. Takes precedence over text estimates. */
|
|
24
|
+
estimateMessageTokens?(message: Message | ModelMessage): number | undefined;
|
|
25
|
+
/** Estimate the full message list. Takes precedence over message estimates. */
|
|
26
|
+
estimateConversationTokens?(messages: readonly (Message | ModelMessage)[]): number | undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Estimate token count for a plain string.
|
|
30
|
+
*
|
|
31
|
+
* Uses the widely-accepted `chars / 4` heuristic.
|
|
32
|
+
*
|
|
33
|
+
* @param text - Text to estimate
|
|
34
|
+
* @returns Estimated token count
|
|
35
|
+
*/
|
|
36
|
+
export declare function estimateTokens(text: string, estimator?: ContextTokenEstimator): number;
|
|
37
|
+
/**
|
|
38
|
+
* Estimate token count for a single message.
|
|
39
|
+
*
|
|
40
|
+
* Handles:
|
|
41
|
+
* - Plain string content
|
|
42
|
+
* - Multi-part / multimodal arrays (text parts + images)
|
|
43
|
+
*
|
|
44
|
+
* @param message - A `Message` (internal) or `ModelMessage` (AI SDK)
|
|
45
|
+
* @returns Estimated token count
|
|
46
|
+
*/
|
|
47
|
+
export declare function estimateMessageTokens(message: Message | ModelMessage, estimator?: ContextTokenEstimator): number;
|
|
48
|
+
/**
|
|
49
|
+
* Estimate total tokens for an entire conversation.
|
|
50
|
+
*
|
|
51
|
+
* Adds a small per-message overhead (≈ 4 tokens) for message
|
|
52
|
+
* framing (`role`, delimiters, etc.). When a recent assistant message has
|
|
53
|
+
* provider usage metadata, use it as a lower bound so planning follows the
|
|
54
|
+
* provider-observed context size instead of only the character heuristic.
|
|
55
|
+
*
|
|
56
|
+
* @param messages - Array of messages to estimate
|
|
57
|
+
* @returns Estimated total token count
|
|
58
|
+
*/
|
|
59
|
+
export declare function estimateConversationTokens(messages: readonly (Message | ModelMessage)[], estimator?: ContextTokenEstimator): number;
|
|
60
|
+
//# sourceMappingURL=estimation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimation.d.ts","sourceRoot":"","sources":["../../../src/context/window/estimation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAMvC;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtD,gFAAgF;IAChF,qBAAqB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,+EAA+E;IAC/E,0BAA0B,CAAC,CACzB,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAC5C,MAAM,GAAG,SAAS,CAAC;CACvB;AAQD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,qBAAqB,GAChC,MAAM,CAKR;AAsCD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GAAG,YAAY,EAC/B,SAAS,CAAC,EAAE,qBAAqB,GAChC,MAAM,CA6BR;AAgDD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,EAC7C,SAAS,CAAC,EAAE,qBAAqB,GAChC,MAAM,CAYR"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Management — Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the public surface of context-window primitives while keeping the
|
|
5
|
+
* implementation split into focused files.
|
|
6
|
+
*/
|
|
7
|
+
export { estimateTokens, estimateMessageTokens, estimateConversationTokens, } from "./estimation.js";
|
|
8
|
+
export type { ContextTokenEstimator } from "./estimation.js";
|
|
9
|
+
export { DEFAULT_CONTEXT_LIMITS, DEFAULT_COMPACTION_EFFECTIVE_MIN_SAVINGS_RATIO, DEFAULT_SUMMARY_MAX_INPUT_TOKENS, DEFAULT_SUMMARY_MAX_OUTPUT_TOKENS, createCompactionEffectiveness, getAutoCompactTokenLimit, getEffectiveContextWindow, getUsableTokenLimit, isContextOverflowing, resolveSummaryOutputTokens, shouldPruneContext, } from "./budget.js";
|
|
10
|
+
export type { ContextLimits, SummaryOutputBudgetOptions } from "./budget.js";
|
|
11
|
+
export { planCompactionCut } from "./cut-planner.js";
|
|
12
|
+
export type { CompactionCutPlan, PlanCompactionCutOptions, } from "./cut-planner.js";
|
|
13
|
+
export { decideContextCompaction } from "./decision.js";
|
|
14
|
+
export type { ContextCompactionDecision, ContextCompactionDecisionReason, ContextCompactionDecisionStrategy, DecideContextCompactionOptions, } from "./decision.js";
|
|
15
|
+
export { DEFAULT_TOOL_CONTEXT_PRUNE_POLICY, pruneToolContext, pruneToolContextWithReport, } from "./tool-pruning.js";
|
|
16
|
+
export type { ToolContextPruneReport, ToolContextPruneResult, } from "./tool-pruning.js";
|
|
17
|
+
export type { ToolContextPrunePolicy } from "../../types/compaction.js";
|
|
18
|
+
export { createCompactionSummaryContent, extractCompactionSummaryText, generateSummary, generateSplitTurnSummary, redactSummaryText, serializeMessagesForSummary, } from "./summary.js";
|
|
19
|
+
export type { SplitTurnSummarizationOptions, SummarizationOptions, } from "./summary.js";
|
|
20
|
+
export type { SummarySerializationOptions } from "./summary.js";
|
|
21
|
+
export { pruneContext } from "./compactor.js";
|
|
22
|
+
export type { PruneContextOptions, PruneResult } from "./compactor.js";
|
|
23
|
+
export { ContextWindowManager } from "./manager.js";
|
|
24
|
+
export type { ContextWindowStats, ContextWindowToolPruningOptions, } from "./manager.js";
|
|
25
|
+
export { canGenerateCompactionSummary, ContextSummaryModelRequiredError, resolveContextSummaryPolicy, shouldFallbackOnSummaryFailure, } from "./summary-policy.js";
|
|
26
|
+
export type { ContextSummaryPolicy, ResolvedContextSummaryPolicy, } from "./summary-policy.js";
|
|
27
|
+
export type { ContextSummaryMode } from "../../types/compaction.js";
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/window/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EACL,sBAAsB,EACtB,8CAA8C,EAC9C,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EACV,yBAAyB,EACzB,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Window Manager
|
|
3
|
+
*
|
|
4
|
+
* Stateful wrapper around the context-window primitives.
|
|
5
|
+
* Tracks per-session context limits and provides a single entry
|
|
6
|
+
* point for token estimation, overflow detection, and pruning.
|
|
7
|
+
*/
|
|
8
|
+
import type { LanguageModel, ModelMessage } from "ai";
|
|
9
|
+
import type { Message } from "../../types/index.js";
|
|
10
|
+
import type { CompactionReason, CompactionTrigger, ToolContextPrunePolicy } from "../../types/compaction.js";
|
|
11
|
+
import { type ContextTokenEstimator } from "./estimation.js";
|
|
12
|
+
import { type ContextLimits } from "./budget.js";
|
|
13
|
+
import { type PruneResult } from "./compactor.js";
|
|
14
|
+
import { type ContextCompactionDecision } from "./decision.js";
|
|
15
|
+
import { type ContextSummaryPolicy, type ResolvedContextSummaryPolicy } from "./summary-policy.js";
|
|
16
|
+
export interface ContextWindowStats {
|
|
17
|
+
tokens: number;
|
|
18
|
+
/** Threshold that starts automatic compaction. Kept as `limit` for compatibility. */
|
|
19
|
+
limit: number;
|
|
20
|
+
/** Safety-adjusted context window before reserving output tokens. */
|
|
21
|
+
effectiveContextWindow: number;
|
|
22
|
+
/** Hard model-input budget after output-token reservation. */
|
|
23
|
+
usableLimit: number;
|
|
24
|
+
/** Threshold used by automatic pruning decisions. */
|
|
25
|
+
autoCompactLimit: number;
|
|
26
|
+
available: number;
|
|
27
|
+
utilizationPercent: number;
|
|
28
|
+
isOverflowing: boolean;
|
|
29
|
+
shouldPrune: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface ContextWindowToolPruningOptions {
|
|
32
|
+
/** Set false to skip deterministic old tool-output and tool-argument pruning. */
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
/** Policy for deciding how aggressively old tool context is compacted. */
|
|
35
|
+
policy?: ToolContextPrunePolicy;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Per-session context-window manager.
|
|
39
|
+
*
|
|
40
|
+
* Holds the active context-window limits and provides convenience
|
|
41
|
+
* methods for checking, reporting, and pruning context.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const ctx = new ContextWindowManager({ limits: { contextWindow: 200_000 } });
|
|
46
|
+
*
|
|
47
|
+
* if (ctx.shouldPrune(messages)) {
|
|
48
|
+
* const result = await ctx.prune(messages);
|
|
49
|
+
* console.log(`Removed ${result.removedCount} messages`);
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare class ContextWindowManager {
|
|
54
|
+
private limits;
|
|
55
|
+
private activeModel?;
|
|
56
|
+
private summaryPolicy?;
|
|
57
|
+
private toolPruning?;
|
|
58
|
+
private tokenEstimator?;
|
|
59
|
+
constructor(options?: {
|
|
60
|
+
limits?: Partial<ContextLimits>;
|
|
61
|
+
/** Active agent model. Used for summaries unless `summary.model` overrides it. */
|
|
62
|
+
model?: LanguageModel;
|
|
63
|
+
summary?: ContextSummaryPolicy;
|
|
64
|
+
toolPruning?: ContextWindowToolPruningOptions;
|
|
65
|
+
/** Optional model-aware token estimator for context planning. */
|
|
66
|
+
tokenEstimator?: ContextTokenEstimator;
|
|
67
|
+
});
|
|
68
|
+
/** Get a copy of the current context limits. */
|
|
69
|
+
getLimits(): ContextLimits;
|
|
70
|
+
/** Update context limits (e.g. when switching models). */
|
|
71
|
+
setLimits(limits: Partial<ContextLimits>): void;
|
|
72
|
+
/** Set the active agent model used for summaries unless overridden. */
|
|
73
|
+
setModel(model: LanguageModel): void;
|
|
74
|
+
/** Set the summary policy used when conversation history must be cut. */
|
|
75
|
+
setSummaryPolicy(policy: ContextSummaryPolicy): void;
|
|
76
|
+
/** Set deterministic tool-context pruning behavior. */
|
|
77
|
+
setToolPruning(options: ContextWindowToolPruningOptions): void;
|
|
78
|
+
/** Get deterministic tool-context pruning behavior. */
|
|
79
|
+
getToolPruning(): ContextWindowToolPruningOptions | undefined;
|
|
80
|
+
/** Set the token estimator used for context-window planning. */
|
|
81
|
+
setTokenEstimator(estimator: ContextTokenEstimator | undefined): void;
|
|
82
|
+
/** Get the token estimator used for context-window planning. */
|
|
83
|
+
getTokenEstimator(): ContextTokenEstimator | undefined;
|
|
84
|
+
/** Resolve summary policy against the active agent model. */
|
|
85
|
+
getSummaryPolicy(): ResolvedContextSummaryPolicy;
|
|
86
|
+
/** Estimate total tokens for a message array. */
|
|
87
|
+
estimateTokens(messages: readonly (Message | ModelMessage)[]): number;
|
|
88
|
+
/** Check whether the context is overflowing. */
|
|
89
|
+
isOverflowing(messages: readonly (Message | ModelMessage)[]): boolean;
|
|
90
|
+
/** Check whether pruning should be triggered. */
|
|
91
|
+
shouldPrune(messages: readonly (Message | ModelMessage)[]): boolean;
|
|
92
|
+
/** Explain whether context compaction should run. */
|
|
93
|
+
decide(messages: readonly Message[], options?: {
|
|
94
|
+
force?: boolean;
|
|
95
|
+
inputTokens?: number;
|
|
96
|
+
trigger?: CompactionTrigger;
|
|
97
|
+
reason?: CompactionReason;
|
|
98
|
+
}): ContextCompactionDecision;
|
|
99
|
+
/** Prune context to fit within limits. */
|
|
100
|
+
prune(messages: Message[], options?: {
|
|
101
|
+
force?: boolean;
|
|
102
|
+
trigger?: CompactionTrigger;
|
|
103
|
+
reason?: CompactionReason;
|
|
104
|
+
toolPruning?: ContextWindowToolPruningOptions;
|
|
105
|
+
}): Promise<PruneResult>;
|
|
106
|
+
/**
|
|
107
|
+
* Get a snapshot of token statistics.
|
|
108
|
+
*
|
|
109
|
+
* Useful for dashboards, logging, or deciding whether to prune.
|
|
110
|
+
*/
|
|
111
|
+
getStats(messages: readonly (Message | ModelMessage)[]): ContextWindowStats;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/context/window/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,aAAa,EAOnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC9C,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAC,CAAkC;IACtD,OAAO,CAAC,cAAc,CAAC,CAAwB;gBAEnC,OAAO,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAChC,kFAAkF;QAClF,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,OAAO,CAAC,EAAE,oBAAoB,CAAC;QAC/B,WAAW,CAAC,EAAE,+BAA+B,CAAC;QAC9C,iEAAiE;QACjE,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC;IAQD,gDAAgD;IAChD,SAAS,IAAI,aAAa;IAI1B,0DAA0D;IAC1D,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAI/C,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIpC,yEAAyE;IACzE,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAIpD,uDAAuD;IACvD,cAAc,CAAC,OAAO,EAAE,+BAA+B,GAAG,IAAI;IAI9D,uDAAuD;IACvD,cAAc,IAAI,+BAA+B,GAAG,SAAS;IAI7D,gEAAgE;IAChE,iBAAiB,CAAC,SAAS,EAAE,qBAAqB,GAAG,SAAS,GAAG,IAAI;IAIrE,gEAAgE;IAChE,iBAAiB,IAAI,qBAAqB,GAAG,SAAS;IAItD,6DAA6D;IAC7D,gBAAgB,IAAI,4BAA4B;IAIhD,iDAAiD;IACjD,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,MAAM;IAIrE,gDAAgD;IAChD,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO;IAKrE,iDAAiD;IACjD,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO;IAKnE,qDAAqD;IACrD,MAAM,CACJ,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;KAC3B,GACA,yBAAyB;IAa5B,0CAA0C;IACpC,KAAK,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,WAAW,CAAC,EAAE,+BAA+B,CAAC;KAC/C,GACA,OAAO,CAAC,WAAW,CAAC;IAYvB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,kBAAkB;CAmB5E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Summary model policy for context compaction.
|
|
3
|
+
*
|
|
4
|
+
* The compaction decision and cut planner are deterministic. This policy only
|
|
5
|
+
* controls what happens after a conversation slice must be removed.
|
|
6
|
+
*/
|
|
7
|
+
import type { LanguageModel } from "ai";
|
|
8
|
+
import type { ContextSummaryMode } from "../../types/compaction.js";
|
|
9
|
+
export interface ContextSummaryPolicy {
|
|
10
|
+
/**
|
|
11
|
+
* `required` means conversation cuts must produce an LLM summary.
|
|
12
|
+
* `best-effort` allows deterministic fallback summaries if the model fails.
|
|
13
|
+
* `disabled` permits conversation cuts without LLM summarization.
|
|
14
|
+
*
|
|
15
|
+
* Default: `required`.
|
|
16
|
+
*/
|
|
17
|
+
mode?: ContextSummaryMode;
|
|
18
|
+
/**
|
|
19
|
+
* Summary model override. When omitted, the active agent model is used.
|
|
20
|
+
*/
|
|
21
|
+
model?: LanguageModel;
|
|
22
|
+
/** Custom summarization prompt. */
|
|
23
|
+
prompt?: string;
|
|
24
|
+
/** Maximum estimated input tokens sent to the summary model. */
|
|
25
|
+
maxInputTokens?: number;
|
|
26
|
+
/** Maximum output tokens requested for compaction summaries. */
|
|
27
|
+
maxOutputTokens?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Optional proportional summary budget based on removed content size.
|
|
30
|
+
*/
|
|
31
|
+
targetRatio?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ResolvedContextSummaryPolicy {
|
|
34
|
+
mode: ContextSummaryMode;
|
|
35
|
+
model?: LanguageModel;
|
|
36
|
+
prompt?: string;
|
|
37
|
+
maxInputTokens?: number;
|
|
38
|
+
maxOutputTokens?: number;
|
|
39
|
+
targetRatio?: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class ContextSummaryModelRequiredError extends Error {
|
|
42
|
+
constructor();
|
|
43
|
+
}
|
|
44
|
+
export declare function resolveContextSummaryPolicy(policy: ContextSummaryPolicy | undefined, activeModel?: LanguageModel): ResolvedContextSummaryPolicy;
|
|
45
|
+
export declare function canGenerateCompactionSummary(policy: ResolvedContextSummaryPolicy): boolean;
|
|
46
|
+
export declare function shouldFallbackOnSummaryFailure(options: {
|
|
47
|
+
policy: ResolvedContextSummaryPolicy;
|
|
48
|
+
force?: boolean;
|
|
49
|
+
}): boolean;
|
|
50
|
+
//# sourceMappingURL=summary-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-policy.d.ts","sourceRoot":"","sources":["../../../src/context/window/summary-policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;;CAO1D;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,WAAW,CAAC,EAAE,aAAa,GAC1B,4BAA4B,CAa9B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,MAAM,EAAE,4BAA4B,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAEV"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compaction summary generation.
|
|
3
|
+
*
|
|
4
|
+
* This module is intentionally limited to serializing messages and asking a
|
|
5
|
+
* model for a summary. Boundary planning and persistence live elsewhere.
|
|
6
|
+
*/
|
|
7
|
+
import type { LanguageModel } from "ai";
|
|
8
|
+
import type { Message } from "../../types/messages.js";
|
|
9
|
+
/**
|
|
10
|
+
* Options for summary generation.
|
|
11
|
+
*/
|
|
12
|
+
export interface SummarizationOptions {
|
|
13
|
+
/** Model used to generate the summary */
|
|
14
|
+
model: LanguageModel;
|
|
15
|
+
/** Max estimated input tokens for serialized messages */
|
|
16
|
+
maxInputTokens?: number;
|
|
17
|
+
/** Max tokens for the summary output */
|
|
18
|
+
maxTokens?: number;
|
|
19
|
+
/** Custom summarization system prompt */
|
|
20
|
+
customPrompt?: string;
|
|
21
|
+
/** Existing handoff summary to update instead of summarizing from scratch */
|
|
22
|
+
previousSummary?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SplitTurnSummarizationOptions extends SummarizationOptions {
|
|
25
|
+
/** Older conversation messages removed before the active turn */
|
|
26
|
+
historyMessages: Message[];
|
|
27
|
+
/** Early active-turn messages removed while keeping the later suffix */
|
|
28
|
+
currentTurnPrefixMessages: Message[];
|
|
29
|
+
}
|
|
30
|
+
export interface SummarySerializationOptions {
|
|
31
|
+
/** Max estimated tokens across the whole serialized transcript */
|
|
32
|
+
maxInputTokens?: number;
|
|
33
|
+
/** Max estimated tokens per message before middle truncation */
|
|
34
|
+
maxMessageTokens?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Fraction of the serialized budget reserved for the newest removed
|
|
37
|
+
* messages when the transcript is too large to include in full.
|
|
38
|
+
*
|
|
39
|
+
* Compaction summaries need both the original goal and the latest removed
|
|
40
|
+
* work nearest the kept suffix. A tail-biased default avoids spending the
|
|
41
|
+
* whole summary prompt on stale early context.
|
|
42
|
+
*/
|
|
43
|
+
recentMessageRatio?: number;
|
|
44
|
+
}
|
|
45
|
+
export declare function createCompactionSummaryContent(summary: string): string;
|
|
46
|
+
export declare function extractCompactionSummaryText(message: Message): string | undefined;
|
|
47
|
+
export declare function redactSummaryText(text: string): string;
|
|
48
|
+
export declare function serializeMessagesForSummary(messages: Message[], options?: SummarySerializationOptions): string;
|
|
49
|
+
/**
|
|
50
|
+
* Generate a natural-language summary of a message sequence.
|
|
51
|
+
*
|
|
52
|
+
* @param messages - Messages to summarize
|
|
53
|
+
* @param options - Model and prompt configuration
|
|
54
|
+
* @returns Summary text
|
|
55
|
+
*/
|
|
56
|
+
export declare function generateSummary(messages: Message[], options: SummarizationOptions): Promise<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Generate a summary for a cut that splits the active turn.
|
|
59
|
+
*
|
|
60
|
+
* This keeps the later active-turn suffix verbatim while summarizing the
|
|
61
|
+
* removed prefix with different instructions from normal completed-history
|
|
62
|
+
* compaction.
|
|
63
|
+
*/
|
|
64
|
+
export declare function generateSplitTurnSummary(options: SplitTurnSummarizationOptions): Promise<string>;
|
|
65
|
+
//# sourceMappingURL=summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/context/window/summary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AASvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,iEAAiE;IACjE,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,wEAAwE;IACxE,yBAAyB,EAAE,OAAO,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAqCD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,GACf,MAAM,GAAG,SAAS,CAIpB;AAsBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtD;AAgLD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,2BAAgC,GACxC,MAAM,CA2BR;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool context pruning.
|
|
3
|
+
*
|
|
4
|
+
* Performs the cheap compaction pass that does not require an LLM call:
|
|
5
|
+
* old, large tool outputs and old, large tool-call arguments outside the
|
|
6
|
+
* protected suffix are replaced with compact previews while preserving
|
|
7
|
+
* tool-call/result shape.
|
|
8
|
+
*/
|
|
9
|
+
import type { Message } from "../../types/index.js";
|
|
10
|
+
import { type ToolContextPrunePolicy } from "../../types/compaction.js";
|
|
11
|
+
import { type ContextTokenEstimator } from "./estimation.js";
|
|
12
|
+
export declare const DEFAULT_TOOL_CONTEXT_PRUNE_POLICY: Required<ToolContextPrunePolicy>;
|
|
13
|
+
export interface ToolContextPruneReport {
|
|
14
|
+
/** Number of tool result messages compacted. */
|
|
15
|
+
outputCompactedCount: number;
|
|
16
|
+
/** Number of assistant tool-call argument payloads compacted. */
|
|
17
|
+
argumentCompactedCount: number;
|
|
18
|
+
/** Estimated message tokens before the tool context pass. */
|
|
19
|
+
tokensBefore: number;
|
|
20
|
+
/** Estimated message tokens after the tool context pass. */
|
|
21
|
+
tokensAfter: number;
|
|
22
|
+
/** Estimated tokens removed by the tool context pass. */
|
|
23
|
+
tokensRemoved: number;
|
|
24
|
+
}
|
|
25
|
+
export interface ToolContextPruneResult {
|
|
26
|
+
messages: Message[];
|
|
27
|
+
report: ToolContextPruneReport;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Prune old, large tool context from the conversation.
|
|
31
|
+
*
|
|
32
|
+
* Prune strategy:
|
|
33
|
+
* - Walks backwards through messages
|
|
34
|
+
* - Protects recent outputs within `protectedTokens`
|
|
35
|
+
* - Skips protected tools such as `skill`
|
|
36
|
+
* - Stamps pruned messages with a `compactedAt` timestamp
|
|
37
|
+
*
|
|
38
|
+
* @param messages - Messages to prune
|
|
39
|
+
* @param protectedTokens - Recent tokens protected from pruning
|
|
40
|
+
* @param options - Extra tool names to protect
|
|
41
|
+
* @returns New message array with large tool context replaced
|
|
42
|
+
*/
|
|
43
|
+
export declare function pruneToolContextWithReport(messages: Message[], protectedTokens?: number, options?: {
|
|
44
|
+
/** Additional tools to protect from pruning */
|
|
45
|
+
protectedTools?: string[];
|
|
46
|
+
/** Policy for deciding how aggressively old tool context is compacted. */
|
|
47
|
+
policy?: ToolContextPrunePolicy;
|
|
48
|
+
/** Optional model-aware token estimator for tool context pruning. */
|
|
49
|
+
tokenEstimator?: ContextTokenEstimator;
|
|
50
|
+
}): ToolContextPruneResult;
|
|
51
|
+
/**
|
|
52
|
+
* Prune old, large tool context from the conversation.
|
|
53
|
+
*
|
|
54
|
+
* Prune strategy:
|
|
55
|
+
* - Walks backwards through messages
|
|
56
|
+
* - Protects recent outputs within `protectedTokens`
|
|
57
|
+
* - Skips protected tools such as `skill`
|
|
58
|
+
* - Stamps pruned tool-result messages with a `compactedAt` timestamp
|
|
59
|
+
*
|
|
60
|
+
* @param messages - Messages to prune
|
|
61
|
+
* @param protectedTokens - Recent tokens protected from pruning
|
|
62
|
+
* @param options - Extra tool names to protect
|
|
63
|
+
* @returns New message array with large tool context replaced
|
|
64
|
+
*/
|
|
65
|
+
export declare function pruneToolContext(messages: Message[], protectedTokens?: number, options?: {
|
|
66
|
+
/** Additional tools to protect from pruning */
|
|
67
|
+
protectedTools?: string[];
|
|
68
|
+
/** Policy for deciding how aggressively old tool context is compacted. */
|
|
69
|
+
policy?: ToolContextPrunePolicy;
|
|
70
|
+
/** Optional model-aware token estimator for tool context pruning. */
|
|
71
|
+
tokenEstimator?: ContextTokenEstimator;
|
|
72
|
+
}): Message[];
|
|
73
|
+
//# sourceMappingURL=tool-pruning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-pruning.d.ts","sourceRoot":"","sources":["../../../src/context/window/tool-pruning.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAEV,OAAO,EAER,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,sBAAsB,CAY5E,CAAC;AAEJ,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAuSD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,GAAE,MAA+C,EAChE,OAAO,CAAC,EAAE;IACR,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC,GACA,sBAAsB,CAwGxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,GAAE,MAA+C,EAChE,OAAO,CAAC,EAAE;IACR,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC,GACA,OAAO,EAAE,CAGX"}
|