@superblocksteam/vite-plugin-file-sync 2.0.77 → 2.0.78-next.1
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/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +26 -0
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +13 -0
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-executor.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-executor.js +102 -7
- package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts +17 -0
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +20 -12
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +9 -1
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +46 -0
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.js +326 -58
- package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/integration-types.d.ts +20 -1
- package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/integration-types.js +1033 -288
- package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -1
- package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +18 -10
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +11 -7
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +27 -5
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +78 -7
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +6 -2
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js +26 -0
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/index.d.ts +2 -0
- package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/index.js +2 -0
- package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.js +2 -3
- package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.js +51 -6
- package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts +28 -0
- package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/web-fetch.js +274 -0
- package/dist/ai-service/agent/tools2/tools/web-fetch.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/web-search.d.ts +25 -0
- package/dist/ai-service/agent/tools2/tools/web-search.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/web-search.js +210 -0
- package/dist/ai-service/agent/tools2/tools/web-search.js.map +1 -0
- package/dist/ai-service/attachments/store.d.ts +4 -4
- package/dist/ai-service/attachments/store.d.ts.map +1 -1
- package/dist/ai-service/attachments/store.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +19 -4
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +32 -6
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/clark-provider/clark-language-model.d.ts.map +1 -1
- package/dist/ai-service/clark-provider/clark-language-model.js +11 -2
- package/dist/ai-service/clark-provider/clark-language-model.js.map +1 -1
- package/dist/ai-service/const.d.ts +3 -2
- package/dist/ai-service/const.d.ts.map +1 -1
- package/dist/ai-service/const.js +3 -2
- package/dist/ai-service/const.js.map +1 -1
- package/dist/ai-service/context-download.d.ts +4 -1
- package/dist/ai-service/context-download.d.ts.map +1 -1
- package/dist/ai-service/context-download.js +36 -7
- package/dist/ai-service/context-download.js.map +1 -1
- package/dist/ai-service/features.d.ts +8 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +8 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +1 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +101 -18
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +14 -2
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +19 -2
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/judge/judge-eval-service-runner.d.ts.map +1 -1
- package/dist/ai-service/judge/judge-eval-service-runner.js +7 -0
- package/dist/ai-service/judge/judge-eval-service-runner.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +29 -11
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +95 -78
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +2 -1
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/context/conversation-context.d.ts +89 -0
- package/dist/ai-service/llm/context/conversation-context.d.ts.map +1 -0
- package/dist/ai-service/llm/context/conversation-context.js +13 -0
- package/dist/ai-service/llm/context/conversation-context.js.map +1 -0
- package/dist/ai-service/llm/context/index.d.ts +1 -0
- package/dist/ai-service/llm/context/index.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/get-loaded-context.d.ts +12 -0
- package/dist/ai-service/llm/context/utils/get-loaded-context.d.ts.map +1 -0
- package/dist/ai-service/llm/context/utils/get-loaded-context.js +7 -0
- package/dist/ai-service/llm/context/utils/get-loaded-context.js.map +1 -0
- package/dist/ai-service/llm/context/utils/index.d.ts +1 -5
- package/dist/ai-service/llm/context/utils/index.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/index.js +1 -5
- package/dist/ai-service/llm/context/utils/index.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +26 -0
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/adapter.js +88 -0
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -0
- package/dist/ai-service/llm/context-v2/caching.d.ts +39 -0
- package/dist/ai-service/llm/context-v2/caching.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/caching.js +48 -0
- package/dist/ai-service/llm/context-v2/caching.js.map +1 -0
- package/dist/ai-service/llm/context-v2/compactor.d.ts +16 -0
- package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/compactor.js +164 -0
- package/dist/ai-service/llm/context-v2/compactor.js.map +1 -0
- package/dist/ai-service/llm/context-v2/config.d.ts +6 -0
- package/dist/ai-service/llm/context-v2/config.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/config.js +8 -0
- package/dist/ai-service/llm/context-v2/config.js.map +1 -0
- package/dist/ai-service/llm/context-v2/context.d.ts +61 -0
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/context.js +238 -0
- package/dist/ai-service/llm/context-v2/context.js.map +1 -0
- package/dist/ai-service/llm/context-v2/index.d.ts +16 -0
- package/dist/ai-service/llm/context-v2/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/index.js +16 -0
- package/dist/ai-service/llm/context-v2/index.js.map +1 -0
- package/dist/ai-service/llm/context-v2/manager.d.ts +57 -0
- package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/manager.js +129 -0
- package/dist/ai-service/llm/context-v2/manager.js.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/index.d.ts +8 -0
- package/dist/ai-service/llm/context-v2/migrations/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/index.js +8 -0
- package/dist/ai-service/llm/context-v2/migrations/index.js.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/registry.d.ts +19 -0
- package/dist/ai-service/llm/context-v2/migrations/registry.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/registry.js +32 -0
- package/dist/ai-service/llm/context-v2/migrations/registry.js.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/runner.d.ts +3 -0
- package/dist/ai-service/llm/context-v2/migrations/runner.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/runner.js +61 -0
- package/dist/ai-service/llm/context-v2/migrations/runner.js.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/types.d.ts +22 -0
- package/dist/ai-service/llm/context-v2/migrations/types.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/types.js +33 -0
- package/dist/ai-service/llm/context-v2/migrations/types.js.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.d.ts +29 -0
- package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.js +143 -0
- package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.js.map +1 -0
- package/dist/ai-service/llm/context-v2/operation-queue.d.ts +9 -0
- package/dist/ai-service/llm/context-v2/operation-queue.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/operation-queue.js +13 -0
- package/dist/ai-service/llm/context-v2/operation-queue.js.map +1 -0
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +16 -0
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +135 -0
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -0
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts +20 -0
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js +213 -0
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js.map +1 -0
- package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts +11 -0
- package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/prompts/compaction.js +57 -0
- package/dist/ai-service/llm/context-v2/prompts/compaction.js.map +1 -0
- package/dist/ai-service/llm/context-v2/session-capture.d.ts +18 -0
- package/dist/ai-service/llm/context-v2/session-capture.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/session-capture.js +64 -0
- package/dist/ai-service/llm/context-v2/session-capture.js.map +1 -0
- package/dist/ai-service/llm/context-v2/storage/index.d.ts +14 -0
- package/dist/ai-service/llm/context-v2/storage/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/storage/index.js +2 -0
- package/dist/ai-service/llm/context-v2/storage/index.js.map +1 -0
- package/dist/ai-service/llm/context-v2/storage/local.d.ts +25 -0
- package/dist/ai-service/llm/context-v2/storage/local.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/storage/local.js +71 -0
- package/dist/ai-service/llm/context-v2/storage/local.js.map +1 -0
- package/dist/ai-service/llm/context-v2/storage/types.d.ts +12 -0
- package/dist/ai-service/llm/context-v2/storage/types.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/storage/types.js +2 -0
- package/dist/ai-service/llm/context-v2/storage/types.js.map +1 -0
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts +4 -0
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/token-tracker.js +13 -0
- package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -0
- package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts +10 -0
- package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/truncation-fallback.js +120 -0
- package/dist/ai-service/llm/context-v2/truncation-fallback.js.map +1 -0
- package/dist/ai-service/llm/context-v2/turns.d.ts +23 -0
- package/dist/ai-service/llm/context-v2/turns.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/turns.js +61 -0
- package/dist/ai-service/llm/context-v2/turns.js.map +1 -0
- package/dist/ai-service/llm/context-v2/types.d.ts +100 -0
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/types.js +262 -0
- package/dist/ai-service/llm/context-v2/types.js.map +1 -0
- package/dist/ai-service/llm/error.d.ts +4 -0
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +26 -0
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
- package/dist/ai-service/llm/impl/clark.js +3 -2
- package/dist/ai-service/llm/impl/clark.js.map +1 -1
- package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -1
- package/dist/ai-service/llm/interaction/adapters/vercel.js +3 -1
- package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -1
- package/dist/ai-service/llm/provider.d.ts +2 -2
- package/dist/ai-service/llm/provider.d.ts.map +1 -1
- package/dist/ai-service/llm/provider.js +2 -2
- package/dist/ai-service/llm/provider.js.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts +1 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.d.ts +2 -9
- package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.js +4 -4
- package/dist/ai-service/llm/stream/observers/context.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +2 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +22 -13
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +3 -0
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +2 -0
- package/dist/ai-service/llm/stream/session.js.map +1 -1
- package/dist/ai-service/llm/utils.d.ts +2 -2
- package/dist/ai-service/llm/utils.d.ts.map +1 -1
- package/dist/ai-service/llm/utils.js +27 -10
- package/dist/ai-service/llm/utils.js.map +1 -1
- package/dist/ai-service/llm/workflow-metrics.d.ts +14 -0
- package/dist/ai-service/llm/workflow-metrics.d.ts.map +1 -0
- package/dist/ai-service/llm/workflow-metrics.js +19 -0
- package/dist/ai-service/llm/workflow-metrics.js.map +1 -0
- package/dist/ai-service/security/safety-classifier.d.ts +2 -0
- package/dist/ai-service/security/safety-classifier.d.ts.map +1 -1
- package/dist/ai-service/security/safety-classifier.js +9 -6
- package/dist/ai-service/security/safety-classifier.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +15 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +3 -4
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +32 -18
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +34 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +6 -1
- package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +84 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +6 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts +7 -0
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +24 -8
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/transform/api-builder/shared.d.ts +5 -0
- package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/shared.js +13 -1
- package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +11 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +11 -4
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts +4 -0
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +7 -0
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
- package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
- package/dist/binding-extraction/extract-identifiers.js +39 -3
- package/dist/binding-extraction/extract-identifiers.js.map +1 -1
- package/dist/clark-log-forwarder.d.ts.map +1 -1
- package/dist/clark-log-forwarder.js +1 -0
- package/dist/clark-log-forwarder.js.map +1 -1
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +4 -1
- package/dist/resolver.js.map +1 -1
- package/dist/router-parser.d.ts.map +1 -1
- package/dist/router-parser.js +34 -9
- package/dist/router-parser.js.map +1 -1
- package/package.json +23 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,UAAU,GAA0B,CAAC,eAAe,CAAC,CAAC;AAE5D,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,SAAiB;IAEjB,OAAO,UAAU,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAClE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,SAAiB;IAEjB,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,WAAW,KAAK,SAAS,CAAC;IACnC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,wBAAgB,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,GACpB,eAAe,CAAC,CAAC,CAAC,CA0EpB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getPrefixedLogger } from "../../../../util/logger.js";
|
|
2
|
+
import { getMigration, hasMigrationPath } from "./registry.js";
|
|
3
|
+
import { detectVersion } from "./types.js";
|
|
4
|
+
const logger = getPrefixedLogger("[context-migration]");
|
|
5
|
+
export function migrateContext(record, targetVersion) {
|
|
6
|
+
const currentVersion = detectVersion(record);
|
|
7
|
+
if (currentVersion === 0) {
|
|
8
|
+
logger.error(`Unrecognized context format, cannot determine version. Deleting context.`);
|
|
9
|
+
return {
|
|
10
|
+
success: false,
|
|
11
|
+
deleted: true,
|
|
12
|
+
reason: "Unrecognized context format",
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (currentVersion === targetVersion) {
|
|
16
|
+
logger.debug(`Context already at version ${targetVersion}, no migration needed`);
|
|
17
|
+
return {
|
|
18
|
+
success: true,
|
|
19
|
+
record: record,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// Downgrade case: saved version is newer than expected, not supported
|
|
23
|
+
if (currentVersion > targetVersion) {
|
|
24
|
+
logger.error(`Context version ${currentVersion} is newer than expected version ${targetVersion}. ` +
|
|
25
|
+
`Downgrade is not supported. Deleting context.`);
|
|
26
|
+
return {
|
|
27
|
+
success: false,
|
|
28
|
+
deleted: true,
|
|
29
|
+
reason: `Downgrade not supported: ${currentVersion} > ${targetVersion}`,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (!hasMigrationPath(currentVersion, targetVersion)) {
|
|
33
|
+
logger.error(`No migration path from version ${currentVersion} to ${targetVersion}. Deleting context.`);
|
|
34
|
+
return {
|
|
35
|
+
success: false,
|
|
36
|
+
deleted: true,
|
|
37
|
+
reason: `No migration path from ${currentVersion} to ${targetVersion}`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
logger.debug(`Migrating context from version ${currentVersion} to ${targetVersion}`);
|
|
41
|
+
let migrated = record;
|
|
42
|
+
for (let v = currentVersion; v < targetVersion; v++) {
|
|
43
|
+
const migration = getMigration(v, v + 1);
|
|
44
|
+
try {
|
|
45
|
+
migrated = migration.migrate(migrated);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
logger.error(`Migration v${v} → v${v + 1} failed: ${err}. Deleting context.`);
|
|
49
|
+
return {
|
|
50
|
+
success: false,
|
|
51
|
+
deleted: true,
|
|
52
|
+
reason: `Migration v${v} → v${v + 1} failed: ${err}`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
success: true,
|
|
58
|
+
record: migrated,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;AAExD,MAAM,UAAU,cAAc,CAC5B,MAAe,EACf,aAAqB;IAErB,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CACV,0EAA0E,CAC3E,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,6BAA6B;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CACV,8BAA8B,aAAa,uBAAuB,CACnE,CAAC;QACF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAW;SACpB,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,CACV,mBAAmB,cAAc,mCAAmC,aAAa,IAAI;YACnF,+CAA+C,CAClD,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,4BAA4B,cAAc,MAAM,aAAa,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,CACV,kCAAkC,cAAc,OAAO,aAAa,qBAAqB,CAC1F,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,0BAA0B,cAAc,OAAO,aAAa,EAAE;SACvE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CACV,kCAAkC,cAAc,OAAO,aAAa,EAAE,CACvE,CAAC;IAEF,IAAI,QAAQ,GAAY,MAAM,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,QAAQ,GAAG,SAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,qBAAqB,CAChE,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE;aACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,QAAa;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ContextRecord } from "../../context/serialization.js";
|
|
2
|
+
import type { ContextRecordV2 } from "../types.js";
|
|
3
|
+
export type ContextRecordV1 = ContextRecord;
|
|
4
|
+
export type AnyContextRecord = ContextRecordV1 | ContextRecordV2;
|
|
5
|
+
export type ContextVersion = 1 | 2;
|
|
6
|
+
export type MigrationResult<T> = {
|
|
7
|
+
success: true;
|
|
8
|
+
record: T;
|
|
9
|
+
} | {
|
|
10
|
+
success: false;
|
|
11
|
+
deleted: true;
|
|
12
|
+
reason: string;
|
|
13
|
+
};
|
|
14
|
+
export interface Migration<From, To> {
|
|
15
|
+
fromVersion: ContextVersion;
|
|
16
|
+
toVersion: ContextVersion;
|
|
17
|
+
migrate(record: From): To;
|
|
18
|
+
}
|
|
19
|
+
export declare function isContextRecordV1(record: unknown): record is ContextRecordV1;
|
|
20
|
+
export declare function isContextRecordV2(record: unknown): record is ContextRecordV2;
|
|
21
|
+
export declare function detectVersion(record: unknown): number;
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAC5C,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,eAAe,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnC,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GAC5B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,SAAS,CAAC,IAAI,EAAE,EAAE;IACjC,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAY5E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAM5E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAarD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export function isContextRecordV1(record) {
|
|
2
|
+
if (typeof record !== "object" || record === null) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
const r = record;
|
|
6
|
+
return (!("version" in r) &&
|
|
7
|
+
"charsPerToken" in r &&
|
|
8
|
+
"l1Turns" in r &&
|
|
9
|
+
"l2Turns" in r &&
|
|
10
|
+
"l3Turns" in r);
|
|
11
|
+
}
|
|
12
|
+
export function isContextRecordV2(record) {
|
|
13
|
+
if (typeof record !== "object" || record === null) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const r = record;
|
|
17
|
+
return "version" in r && r.version === 2;
|
|
18
|
+
}
|
|
19
|
+
export function detectVersion(record) {
|
|
20
|
+
if (typeof record !== "object" || record === null) {
|
|
21
|
+
return 0; // Invalid record
|
|
22
|
+
}
|
|
23
|
+
const r = record;
|
|
24
|
+
if ("version" in r && typeof r.version === "number") {
|
|
25
|
+
return r.version;
|
|
26
|
+
}
|
|
27
|
+
// No version field = V1
|
|
28
|
+
if (isContextRecordV1(record)) {
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
return 0; // Unknown format
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/types.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,OAAO,CACL,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;QACjB,eAAe,IAAI,CAAC;QACpB,SAAS,IAAI,CAAC;QACd,SAAS,IAAI,CAAC;QACd,SAAS,IAAI,CAAC,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,CAAC,CAAC,CAAC,iBAAiB;IAC7B,CAAC;IACD,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACD,wBAAwB;IACxB,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,iBAAiB;AAC7B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration from V1 context format to V2.
|
|
3
|
+
*
|
|
4
|
+
* V1 format has:
|
|
5
|
+
* - charsPerToken, l1Turns, l2Turns, l3Turns, attachments (no version field)
|
|
6
|
+
* - TokenizedMessage format with tokenCount at top level
|
|
7
|
+
* - toolSummariesById at top level
|
|
8
|
+
*
|
|
9
|
+
* V2 format has:
|
|
10
|
+
* - version: 2, messages, toolSummariesById
|
|
11
|
+
* - StoredMessage format with _superblocks metadata
|
|
12
|
+
* - toolSummaries stored on individual messages
|
|
13
|
+
*/
|
|
14
|
+
import type { ContextRecordV1, Migration } from "./types.js";
|
|
15
|
+
import type { ContextRecordV2 } from "../types.js";
|
|
16
|
+
/**
|
|
17
|
+
* Migrate a V1 context record to V2 format.
|
|
18
|
+
*
|
|
19
|
+
* Flattens all turns from oldest to newest (l3 → l2 → l1) into a single
|
|
20
|
+
* messages array. Does not extract system prompt - the new system prompt
|
|
21
|
+
* will be set when the context is used.
|
|
22
|
+
*
|
|
23
|
+
* Tool summaries from V1 are migrated to message-level storage:
|
|
24
|
+
* - L2/L3 turns are already compacted, so they don't need summaries
|
|
25
|
+
* - L1 turns are un-compacted, so summaries are attached to messages
|
|
26
|
+
*/
|
|
27
|
+
export declare function migrateV1ToV2(record: ContextRecordV1): ContextRecordV2;
|
|
28
|
+
export declare const v1ToV2Migration: Migration<ContextRecordV1, ContextRecordV2>;
|
|
29
|
+
//# sourceMappingURL=v1-to-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1-to-v2.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/v1-to-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAW7D,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AAkHlE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAuBtE;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,eAAe,EAAE,eAAe,CAIvE,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration from V1 context format to V2.
|
|
3
|
+
*
|
|
4
|
+
* V1 format has:
|
|
5
|
+
* - charsPerToken, l1Turns, l2Turns, l3Turns, attachments (no version field)
|
|
6
|
+
* - TokenizedMessage format with tokenCount at top level
|
|
7
|
+
* - toolSummariesById at top level
|
|
8
|
+
*
|
|
9
|
+
* V2 format has:
|
|
10
|
+
* - version: 2, messages, toolSummariesById
|
|
11
|
+
* - StoredMessage format with _superblocks metadata
|
|
12
|
+
* - toolSummaries stored on individual messages
|
|
13
|
+
*/
|
|
14
|
+
function toStoredMessage(msg) {
|
|
15
|
+
const { tokenCount, timestamp, hasBreakPoint, ...rest } = msg;
|
|
16
|
+
return {
|
|
17
|
+
...rest,
|
|
18
|
+
_superblocks: {
|
|
19
|
+
tokenCount,
|
|
20
|
+
timestamp: timestamp ?? Date.now(),
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convert a message and attach any relevant tool summaries.
|
|
26
|
+
* - For assistant messages: attach input summaries for tool-calls
|
|
27
|
+
* - For tool messages: attach output summaries for tool-results
|
|
28
|
+
*/
|
|
29
|
+
function toStoredMessageWithSummaries(msg, toolSummariesById) {
|
|
30
|
+
const stored = toStoredMessage(msg);
|
|
31
|
+
if (!toolSummariesById) {
|
|
32
|
+
return stored;
|
|
33
|
+
}
|
|
34
|
+
// Extract tool call/result IDs from message content
|
|
35
|
+
if (msg.role === "assistant" && Array.isArray(msg.content)) {
|
|
36
|
+
const inputSummaries = {};
|
|
37
|
+
for (const part of msg.content) {
|
|
38
|
+
if (typeof part === "object" &&
|
|
39
|
+
part !== null &&
|
|
40
|
+
"type" in part &&
|
|
41
|
+
part.type === "tool-call" &&
|
|
42
|
+
"toolCallId" in part) {
|
|
43
|
+
const toolCallId = part.toolCallId;
|
|
44
|
+
const summary = toolSummariesById[toolCallId];
|
|
45
|
+
if (summary?.input) {
|
|
46
|
+
inputSummaries[toolCallId] = summary.input;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (Object.keys(inputSummaries).length > 0) {
|
|
51
|
+
stored._superblocks = {
|
|
52
|
+
...stored._superblocks,
|
|
53
|
+
timestamp: stored._superblocks?.timestamp ?? Date.now(),
|
|
54
|
+
toolSummaries: inputSummaries,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (msg.role === "tool" && Array.isArray(msg.content)) {
|
|
59
|
+
const outputSummaries = {};
|
|
60
|
+
for (const part of msg.content) {
|
|
61
|
+
if (typeof part === "object" &&
|
|
62
|
+
part !== null &&
|
|
63
|
+
"type" in part &&
|
|
64
|
+
part.type === "tool-result" &&
|
|
65
|
+
"toolCallId" in part) {
|
|
66
|
+
const toolCallId = part.toolCallId;
|
|
67
|
+
const summary = toolSummariesById[toolCallId];
|
|
68
|
+
if (summary?.output) {
|
|
69
|
+
outputSummaries[toolCallId] = summary.output;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (Object.keys(outputSummaries).length > 0) {
|
|
74
|
+
stored._superblocks = {
|
|
75
|
+
...stored._superblocks,
|
|
76
|
+
timestamp: stored._superblocks?.timestamp ?? Date.now(),
|
|
77
|
+
toolSummaries: outputSummaries,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return stored;
|
|
82
|
+
}
|
|
83
|
+
function flattenL3Turn(turn) {
|
|
84
|
+
const messages = [toStoredMessage(turn.user)];
|
|
85
|
+
if (turn.assistant) {
|
|
86
|
+
messages.push(toStoredMessage(turn.assistant));
|
|
87
|
+
}
|
|
88
|
+
return messages;
|
|
89
|
+
}
|
|
90
|
+
function flattenL2Turn(turn) {
|
|
91
|
+
const messages = [toStoredMessage(turn.user)];
|
|
92
|
+
for (const response of turn.response) {
|
|
93
|
+
messages.push(toStoredMessage(response));
|
|
94
|
+
}
|
|
95
|
+
return messages;
|
|
96
|
+
}
|
|
97
|
+
function flattenL1Turn(turn, toolSummariesById) {
|
|
98
|
+
const messages = [toStoredMessage(turn.user)];
|
|
99
|
+
for (const step of turn.steps) {
|
|
100
|
+
for (const response of step) {
|
|
101
|
+
// L1 turns are un-compacted, so attach summaries for future compaction
|
|
102
|
+
messages.push(toStoredMessageWithSummaries(response, toolSummariesById));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return messages;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Migrate a V1 context record to V2 format.
|
|
109
|
+
*
|
|
110
|
+
* Flattens all turns from oldest to newest (l3 → l2 → l1) into a single
|
|
111
|
+
* messages array. Does not extract system prompt - the new system prompt
|
|
112
|
+
* will be set when the context is used.
|
|
113
|
+
*
|
|
114
|
+
* Tool summaries from V1 are migrated to message-level storage:
|
|
115
|
+
* - L2/L3 turns are already compacted, so they don't need summaries
|
|
116
|
+
* - L1 turns are un-compacted, so summaries are attached to messages
|
|
117
|
+
*/
|
|
118
|
+
export function migrateV1ToV2(record) {
|
|
119
|
+
const messages = [];
|
|
120
|
+
const { toolSummariesById } = record;
|
|
121
|
+
// L3 and L2 turns are already compacted - no summaries needed
|
|
122
|
+
for (const turn of record.l3Turns) {
|
|
123
|
+
messages.push(...flattenL3Turn(turn));
|
|
124
|
+
}
|
|
125
|
+
for (const turn of record.l2Turns) {
|
|
126
|
+
messages.push(...flattenL2Turn(turn));
|
|
127
|
+
}
|
|
128
|
+
// L1 turns are un-compacted - attach summaries for future compaction
|
|
129
|
+
for (const turn of record.l1Turns) {
|
|
130
|
+
messages.push(...flattenL1Turn(turn, toolSummariesById));
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
version: 2,
|
|
134
|
+
messages,
|
|
135
|
+
attachments: record.attachments,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
export const v1ToV2Migration = {
|
|
139
|
+
fromVersion: 1,
|
|
140
|
+
toVersion: 2,
|
|
141
|
+
migrate: migrateV1ToV2,
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=v1-to-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1-to-v2.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/v1-to-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple sequential operation queue.
|
|
3
|
+
* Operations are executed in FIFO order - each waits for the previous to complete.
|
|
4
|
+
*/
|
|
5
|
+
export declare class OperationQueue {
|
|
6
|
+
private chain;
|
|
7
|
+
enqueue<T>(fn: () => Promise<T>): Promise<T>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=operation-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-queue.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/operation-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAoC;IAEjD,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAQ7C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple sequential operation queue.
|
|
3
|
+
* Operations are executed in FIFO order - each waits for the previous to complete.
|
|
4
|
+
*/
|
|
5
|
+
export class OperationQueue {
|
|
6
|
+
chain = Promise.resolve();
|
|
7
|
+
enqueue(fn) {
|
|
8
|
+
const result = this.chain.then(fn);
|
|
9
|
+
this.chain = result.then(() => { }, () => { });
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=operation-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-queue.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/operation-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEjD,OAAO,CAAI,EAAoB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CACtB,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StoredMessage } from "./types.js";
|
|
2
|
+
export interface ToolSummarizationResult {
|
|
3
|
+
messages: StoredMessage[];
|
|
4
|
+
summarizedCount: number;
|
|
5
|
+
}
|
|
6
|
+
export interface SummarizeToolOutputsOptions {
|
|
7
|
+
messages: StoredMessage[];
|
|
8
|
+
protectedTokens: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function summarizeToolOutputs(options: SummarizeToolOutputsOptions): ToolSummarizationResult;
|
|
11
|
+
/**
|
|
12
|
+
* Calculates the total tokens that can be pruned by Phase 1.
|
|
13
|
+
* This is the sum of token counts for turns with unprotected tool messages.
|
|
14
|
+
*/
|
|
15
|
+
export declare function calculatePruneableTokens(messages: StoredMessage[], protectedTokens: number): number;
|
|
16
|
+
//# sourceMappingURL=phase1-tool-summarizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase1-tool-summarizer.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/phase1-tool-summarizer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAgJD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,uBAAuB,CAsBzB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EAAE,EACzB,eAAe,EAAE,MAAM,GACtB,MAAM,CAiBR"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { INPUT_COMPACTION_THRESHOLD_CHARS } from "../context/internal-types.js";
|
|
2
|
+
import { identifyTurns } from "./turns.js";
|
|
3
|
+
/** Default placeholder when no summary is available for outputs */
|
|
4
|
+
const DEFAULT_OUTPUT_PLACEHOLDER = "output compacted";
|
|
5
|
+
// --- Type guards ---
|
|
6
|
+
function isToolMessage(msg) {
|
|
7
|
+
return msg.role === "tool" && Array.isArray(msg.content);
|
|
8
|
+
}
|
|
9
|
+
function isAssistantMessage(msg) {
|
|
10
|
+
return msg.role === "assistant" && Array.isArray(msg.content);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Determines which tool message indices should be protected based on
|
|
14
|
+
* the protectedTokens budget. Protects the most recent turns first.
|
|
15
|
+
*/
|
|
16
|
+
function getProtectedToolIndices(messages, protectedTokens) {
|
|
17
|
+
const turns = identifyTurns(messages);
|
|
18
|
+
const protected_ = new Set();
|
|
19
|
+
let budget = protectedTokens;
|
|
20
|
+
// Walk backward to protect most recent turns first
|
|
21
|
+
for (let i = turns.length - 1; i >= 0 && budget > 0; i--) {
|
|
22
|
+
const turn = turns[i];
|
|
23
|
+
if (turn.toolMessageIndices.length === 0)
|
|
24
|
+
continue;
|
|
25
|
+
if (budget >= turn.tokenCount) {
|
|
26
|
+
budget -= turn.tokenCount;
|
|
27
|
+
for (const idx of turn.toolMessageIndices) {
|
|
28
|
+
protected_.add(idx);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return protected_;
|
|
33
|
+
}
|
|
34
|
+
// --- Tool result compaction (for tool messages) ---
|
|
35
|
+
function compactToolResult(part, toolSummaries) {
|
|
36
|
+
const outputText = toolSummaries?.[part.toolCallId] ?? DEFAULT_OUTPUT_PLACEHOLDER;
|
|
37
|
+
return {
|
|
38
|
+
type: "tool-result",
|
|
39
|
+
toolCallId: part.toolCallId,
|
|
40
|
+
toolName: part.toolName,
|
|
41
|
+
output: { type: "text", value: `[summarized] ${outputText}` },
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// --- Tool call compaction (for assistant messages) ---
|
|
45
|
+
function compactToolCall(part, toolSummaries) {
|
|
46
|
+
const rawInput = typeof part.input === "string" ? part.input : JSON.stringify(part.input);
|
|
47
|
+
// Only compact large inputs
|
|
48
|
+
if (rawInput.length <= INPUT_COMPACTION_THRESHOLD_CHARS) {
|
|
49
|
+
return part;
|
|
50
|
+
}
|
|
51
|
+
const summaryText = toolSummaries?.[part.toolCallId];
|
|
52
|
+
// Input must be an object (dictionary) for LLM providers - wrap summary in object
|
|
53
|
+
const input = {
|
|
54
|
+
_compacted: summaryText
|
|
55
|
+
? `[summarized] ${summaryText}`
|
|
56
|
+
: `[truncated] ${rawInput.slice(0, INPUT_COMPACTION_THRESHOLD_CHARS - 3)}...`,
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
type: "tool-call",
|
|
60
|
+
toolCallId: part.toolCallId,
|
|
61
|
+
toolName: part.toolName,
|
|
62
|
+
input,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// --- Message compaction ---
|
|
66
|
+
function compactToolMessage(msg) {
|
|
67
|
+
const toolSummaries = msg._superblocks?.toolSummaries;
|
|
68
|
+
const compactedContent = msg.content.map((part) => compactToolResult(part, toolSummaries));
|
|
69
|
+
// Create new metadata without toolSummaries (cleanup after use)
|
|
70
|
+
const { toolSummaries: _, ...restSuperblocks } = msg._superblocks ?? {};
|
|
71
|
+
return {
|
|
72
|
+
role: "tool",
|
|
73
|
+
content: compactedContent,
|
|
74
|
+
_superblocks: {
|
|
75
|
+
...restSuperblocks,
|
|
76
|
+
timestamp: msg._superblocks?.timestamp ?? Date.now(),
|
|
77
|
+
summarized: true,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function compactAssistantMessage(msg) {
|
|
82
|
+
const toolSummaries = msg._superblocks?.toolSummaries;
|
|
83
|
+
const compactedContent = msg.content.map((part) => {
|
|
84
|
+
if (typeof part === "object" &&
|
|
85
|
+
part !== null &&
|
|
86
|
+
"type" in part &&
|
|
87
|
+
part.type === "tool-call") {
|
|
88
|
+
return compactToolCall(part, toolSummaries);
|
|
89
|
+
}
|
|
90
|
+
return part;
|
|
91
|
+
});
|
|
92
|
+
// Create new metadata without toolSummaries (cleanup after use)
|
|
93
|
+
const { toolSummaries: _, ...restSuperblocks } = msg._superblocks ?? {};
|
|
94
|
+
return {
|
|
95
|
+
...msg,
|
|
96
|
+
content: compactedContent,
|
|
97
|
+
_superblocks: restSuperblocks,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export function summarizeToolOutputs(options) {
|
|
101
|
+
const { messages, protectedTokens } = options;
|
|
102
|
+
const protectedIndices = getProtectedToolIndices(messages, protectedTokens);
|
|
103
|
+
let summarizedCount = 0;
|
|
104
|
+
const result = messages.map((msg, i) => {
|
|
105
|
+
// Compact unprotected tool messages
|
|
106
|
+
if (isToolMessage(msg) && !protectedIndices.has(i)) {
|
|
107
|
+
summarizedCount++;
|
|
108
|
+
return compactToolMessage(msg);
|
|
109
|
+
}
|
|
110
|
+
// Compact tool-call inputs in assistant messages (always unprotected)
|
|
111
|
+
if (isAssistantMessage(msg)) {
|
|
112
|
+
return compactAssistantMessage(msg);
|
|
113
|
+
}
|
|
114
|
+
return msg;
|
|
115
|
+
});
|
|
116
|
+
return { messages: result, summarizedCount };
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Calculates the total tokens that can be pruned by Phase 1.
|
|
120
|
+
* This is the sum of token counts for turns with unprotected tool messages.
|
|
121
|
+
*/
|
|
122
|
+
export function calculatePruneableTokens(messages, protectedTokens) {
|
|
123
|
+
const turns = identifyTurns(messages);
|
|
124
|
+
const protectedIndices = getProtectedToolIndices(messages, protectedTokens);
|
|
125
|
+
let pruneable = 0;
|
|
126
|
+
for (const turn of turns) {
|
|
127
|
+
// Check if any tool messages in this turn are unprotected
|
|
128
|
+
const hasUnprotectedTools = turn.toolMessageIndices.some((idx) => !protectedIndices.has(idx));
|
|
129
|
+
if (hasUnprotectedTools) {
|
|
130
|
+
pruneable += turn.tokenCount;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return pruneable;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=phase1-tool-summarizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase1-tool-summarizer.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/phase1-tool-summarizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C,mEAAmE;AACnE,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAOtD,sBAAsB;AAEtB,SAAS,aAAa,CACpB,GAAkB;IAElB,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAkB;IAElB,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,QAAyB,EACzB,eAAuB;IAEvB,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,IAAI,MAAM,GAAG,eAAe,CAAC;IAE7B,mDAAmD;IACnD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEnD,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,qDAAqD;AAErD,SAAS,iBAAiB,CACxB,IAAoB,EACpB,aAAiD;IAEjD,MAAM,UAAU,GACd,aAAa,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,0BAA0B,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,UAAU,EAAE,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,wDAAwD;AAExD,SAAS,eAAe,CACtB,IAAkB,EAClB,aAAiD;IAEjD,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE3E,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,gCAAgC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAErD,kFAAkF;IAClF,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,WAAW;YACrB,CAAC,CAAC,gBAAgB,WAAW,EAAE;YAC/B,CAAC,CAAC,eAAe,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,GAAG,CAAC,CAAC,KAAK;KAChF,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK;KACN,CAAC;AACJ,CAAC;AAED,6BAA6B;AAE7B,SAAS,kBAAkB,CACzB,GAAgE;IAEhE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC;IACtD,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CACvC,CAAC;IAEF,gEAAgE;IAChE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IAExE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE;YACZ,GAAG,eAAe;YAClB,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;YACpD,UAAU,EAAE,IAAI;SACjB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAA8D;IAE9D,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC;IACtD,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,MAAM,IAAI,IAAI;YACd,IAAI,CAAC,IAAI,KAAK,WAAW,EACzB,CAAC;YACD,OAAO,eAAe,CAAC,IAAoB,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IAExE,OAAO;QACL,GAAG,GAAG;QACN,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE,eAAe;KACb,CAAC;AACrB,CAAC;AASD,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAE5E,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACrC,oCAAoC;QACpC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,eAAe,EAAE,CAAC;YAClB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,sEAAsE;QACtE,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,eAAuB;IAEvB,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAE5E,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,0DAA0D;QAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACtD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CACpC,CAAC;QACF,IAAI,mBAAmB,EAAE,CAAC;YACxB,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { LLMObsTracer } from "../../llmobs/tracer.js";
|
|
2
|
+
import type { StoredMessage } from "./types.js";
|
|
3
|
+
import type { LanguageModel } from "ai";
|
|
4
|
+
export interface SummarizeResult {
|
|
5
|
+
summary: string;
|
|
6
|
+
messages: StoredMessage[];
|
|
7
|
+
}
|
|
8
|
+
export interface SummarizeOptions {
|
|
9
|
+
messages: StoredMessage[];
|
|
10
|
+
model: LanguageModel;
|
|
11
|
+
targetTokens: number;
|
|
12
|
+
abortSignal?: AbortSignal;
|
|
13
|
+
tracer?: LLMObsTracer;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Summarizes a session, automatically handling oversized inputs by recursively
|
|
17
|
+
* splitting messages in half until they fit within the model's context window.
|
|
18
|
+
*/
|
|
19
|
+
export declare function summarizeSession(options: SummarizeOptions): Promise<SummarizeResult>;
|
|
20
|
+
//# sourceMappingURL=phase2-session-summarizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase2-session-summarizer.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/phase2-session-summarizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAStD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAsDD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CA2N1B"}
|