@superblocksteam/vite-plugin-file-sync 2.0.42-next.5 → 2.0.42-next.50
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 +2 -1
- 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 +31 -2
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/example-selector.d.ts +24 -0
- package/dist/ai-service/agent/subagents/apis/example-selector.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/apis/example-selector.js +104 -0
- package/dist/ai-service/agent/subagents/apis/example-selector.js.map +1 -0
- package/dist/ai-service/agent/subagents/apis/examples.d.ts +55 -0
- package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/apis/examples.js +1229 -0
- package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -0
- package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +83 -0
- package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -0
- package/dist/ai-service/agent/{apis.js → subagents/apis/generate-api-source.js} +131 -99
- package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -0
- package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts +39 -0
- package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/apis/prompt-builder.js +115 -0
- package/dist/ai-service/agent/subagents/apis/prompt-builder.js.map +1 -0
- package/dist/ai-service/agent/{apis-static-analysis.d.ts → subagents/apis/static-analysis.d.ts} +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -0
- package/dist/ai-service/agent/{apis-static-analysis.js → subagents/apis/static-analysis.js} +3 -2
- package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -0
- package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +3 -0
- package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -0
- package/dist/ai-service/agent/{apis-system-prompt.js → subagents/apis/system-prompt.js} +67 -31
- package/dist/ai-service/agent/{apis-system-prompt.js.map → subagents/apis/system-prompt.js.map} +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts +6 -15
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +75 -248
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/build-add-event.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-add-event.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-add-event.js +9 -8
- package/dist/ai-service/agent/tools/build-add-event.js.map +1 -1
- package/dist/ai-service/agent/tools/build-add-state-var.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-add-state-var.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-add-state-var.js +6 -5
- package/dist/ai-service/agent/tools/build-add-state-var.js.map +1 -1
- package/dist/ai-service/agent/tools/build-add-timer.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-add-timer.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-add-timer.js +7 -6
- package/dist/ai-service/agent/tools/build-add-timer.js.map +1 -1
- package/dist/ai-service/agent/tools/build-create-page.d.ts +2 -3
- package/dist/ai-service/agent/tools/build-create-page.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-create-page.js +11 -10
- package/dist/ai-service/agent/tools/build-create-page.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts +1 -3
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +7 -5
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +10 -7
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +7 -6
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +7 -6
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-available-components.d.ts +3 -8
- package/dist/ai-service/agent/tools/build-list-available-components.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-list-available-components.js +30 -9
- package/dist/ai-service/agent/tools/build-list-available-components.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.d.ts +2 -3
- package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.js +10 -8
- package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +3 -3
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -8
- package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +9 -6
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-files.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-read-files.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-files.js +10 -8
- package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
- package/dist/ai-service/agent/tools/build-register-component-name.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-register-component-name.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-register-component-name.js +9 -8
- package/dist/ai-service/agent/tools/build-register-component-name.js.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-page.d.ts +2 -3
- package/dist/ai-service/agent/tools/build-rename-page.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-page.js +6 -5
- package/dist/ai-service/agent/tools/build-rename-page.js.map +1 -1
- package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-set-api-triggers.js +6 -5
- package/dist/ai-service/agent/tools/build-set-api-triggers.js.map +1 -1
- package/dist/ai-service/agent/tools/build-update-state-var.d.ts +2 -3
- package/dist/ai-service/agent/tools/build-update-state-var.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-update-state-var.js +6 -5
- package/dist/ai-service/agent/tools/build-update-state-var.js.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.d.ts +2 -3
- package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.js +8 -6
- package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -4
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +6 -5
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +3 -0
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +23 -20
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +23 -20
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +25 -0
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/integrations/execute-request.js +213 -0
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -0
- package/dist/ai-service/agent/tools/integrations/index.d.ts +4 -0
- package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/integrations/index.js +4 -0
- package/dist/ai-service/agent/tools/integrations/index.js.map +1 -0
- package/dist/ai-service/agent/tools/integrations/internal.d.ts +3 -0
- package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/integrations/internal.js +11 -0
- package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -0
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts +9 -0
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/integrations/metadata.js +57 -0
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -0
- package/dist/ai-service/agent/tools/integrations/run-code.d.ts +5 -0
- package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/integrations/run-code.js +32 -0
- package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -0
- package/dist/ai-service/agent/tools/study-current-app-state.d.ts +2 -4
- package/dist/ai-service/agent/tools/study-current-app-state.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/study-current-app-state.js +10 -8
- package/dist/ai-service/agent/tools/study-current-app-state.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts +3 -280
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +68 -55
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +119 -0
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/access-control.js +216 -0
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -0
- package/dist/ai-service/agent/tools2/example.d.ts +13 -0
- package/dist/ai-service/agent/tools2/example.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/example.js +143 -0
- package/dist/ai-service/agent/tools2/example.js.map +1 -0
- package/dist/ai-service/agent/tools2/index.d.ts +16 -0
- package/dist/ai-service/agent/tools2/index.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/index.js +18 -0
- package/dist/ai-service/agent/tools2/index.js.map +1 -0
- package/dist/ai-service/agent/tools2/registry.d.ts +167 -0
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/registry.js +305 -0
- package/dist/ai-service/agent/tools2/registry.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts +12 -0
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +73 -0
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/bash.d.ts +34 -0
- package/dist/ai-service/agent/tools2/tools/bash.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/bash.js +76 -0
- package/dist/ai-service/agent/tools2/tools/bash.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/edit.d.ts +14 -0
- package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/edit.js +60 -0
- package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +10 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +66 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/glob.d.ts +11 -0
- package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/glob.js +44 -0
- package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +21 -0
- package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/grep.js +100 -0
- package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/index.d.ts +13 -0
- package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/index.js +13 -0
- package/dist/ai-service/agent/tools2/tools/index.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/read.d.ts +9 -0
- package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/read.js +43 -0
- package/dist/ai-service/agent/tools2/tools/read.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/write.d.ts +11 -0
- package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/write.js +28 -0
- package/dist/ai-service/agent/tools2/tools/write.js.map +1 -0
- package/dist/ai-service/agent/tools2/types.d.ts +148 -0
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/types.js +55 -0
- package/dist/ai-service/agent/tools2/types.js.map +1 -0
- package/dist/ai-service/agent/utils.d.ts +2 -3
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +14 -13
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +5 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +484 -345
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/extract-history.d.ts +1 -0
- package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
- package/dist/ai-service/chat/extract-history.js +12 -1
- package/dist/ai-service/chat/extract-history.js.map +1 -1
- package/dist/ai-service/const.d.ts +2 -1
- package/dist/ai-service/const.d.ts.map +1 -1
- package/dist/ai-service/const.js +7 -1
- package/dist/ai-service/const.js.map +1 -1
- package/dist/ai-service/index.d.ts +9 -8
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +7 -0
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +24 -1
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +86 -2
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/context/caching/constants.d.ts +27 -0
- package/dist/ai-service/llm/context/caching/constants.d.ts.map +1 -0
- package/dist/ai-service/llm/context/caching/constants.js +20 -0
- package/dist/ai-service/llm/context/caching/constants.js.map +1 -0
- package/dist/ai-service/llm/context/caching/factory.d.ts +12 -0
- package/dist/ai-service/llm/context/caching/factory.d.ts.map +1 -0
- package/dist/ai-service/llm/context/caching/factory.js +28 -0
- package/dist/ai-service/llm/context/caching/factory.js.map +1 -0
- package/dist/ai-service/llm/context/caching/index.d.ts +10 -0
- package/dist/ai-service/llm/context/caching/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context/caching/index.js +9 -0
- package/dist/ai-service/llm/context/caching/index.js.map +1 -0
- package/dist/ai-service/llm/context/caching/quantized-strategy.d.ts +22 -0
- package/dist/ai-service/llm/context/caching/quantized-strategy.d.ts.map +1 -0
- package/dist/ai-service/llm/context/caching/quantized-strategy.js +48 -0
- package/dist/ai-service/llm/context/caching/quantized-strategy.js.map +1 -0
- package/dist/ai-service/llm/context/caching/strategy.d.ts +20 -0
- package/dist/ai-service/llm/context/caching/strategy.d.ts.map +1 -0
- package/dist/ai-service/llm/context/caching/strategy.js +5 -0
- package/dist/ai-service/llm/context/caching/strategy.js.map +1 -0
- package/dist/ai-service/llm/context/caching/types.d.ts +34 -0
- package/dist/ai-service/llm/context/caching/types.d.ts.map +1 -0
- package/dist/ai-service/llm/context/caching/types.js +8 -0
- package/dist/ai-service/llm/context/caching/types.js.map +1 -0
- package/dist/ai-service/llm/context/config.d.ts +51 -0
- package/dist/ai-service/llm/context/config.d.ts.map +1 -0
- package/dist/ai-service/llm/context/config.js +58 -0
- package/dist/ai-service/llm/context/config.js.map +1 -0
- package/dist/ai-service/llm/context/constants.d.ts +106 -0
- package/dist/ai-service/llm/context/constants.d.ts.map +1 -0
- package/dist/ai-service/llm/context/constants.js +106 -0
- package/dist/ai-service/llm/context/constants.js.map +1 -0
- package/dist/ai-service/llm/context/context.d.ts +207 -0
- package/dist/ai-service/llm/context/context.d.ts.map +1 -0
- package/dist/ai-service/llm/context/context.js +742 -0
- package/dist/ai-service/llm/context/context.js.map +1 -0
- package/dist/ai-service/llm/context/errors.d.ts +45 -0
- package/dist/ai-service/llm/context/errors.d.ts.map +1 -0
- package/dist/ai-service/llm/context/errors.js +56 -0
- package/dist/ai-service/llm/context/errors.js.map +1 -0
- package/dist/ai-service/llm/context/index.d.ts +13 -0
- package/dist/ai-service/llm/context/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context/index.js +17 -0
- package/dist/ai-service/llm/context/index.js.map +1 -0
- package/dist/ai-service/llm/context/internal-types.d.ts +52 -0
- package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -0
- package/dist/ai-service/llm/context/internal-types.js +28 -0
- package/dist/ai-service/llm/context/internal-types.js.map +1 -0
- package/dist/ai-service/llm/context/levels/index.d.ts +12 -0
- package/dist/ai-service/llm/context/levels/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context/levels/index.js +12 -0
- package/dist/ai-service/llm/context/levels/index.js.map +1 -0
- package/dist/ai-service/llm/context/levels/l1.d.ts +83 -0
- package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -0
- package/dist/ai-service/llm/context/levels/l1.js +143 -0
- package/dist/ai-service/llm/context/levels/l1.js.map +1 -0
- package/dist/ai-service/llm/context/levels/l2.d.ts +60 -0
- package/dist/ai-service/llm/context/levels/l2.d.ts.map +1 -0
- package/dist/ai-service/llm/context/levels/l2.js +96 -0
- package/dist/ai-service/llm/context/levels/l2.js.map +1 -0
- package/dist/ai-service/llm/context/levels/l3.d.ts +46 -0
- package/dist/ai-service/llm/context/levels/l3.d.ts.map +1 -0
- package/dist/ai-service/llm/context/levels/l3.js +70 -0
- package/dist/ai-service/llm/context/levels/l3.js.map +1 -0
- package/dist/ai-service/llm/context/logger.d.ts +17 -0
- package/dist/ai-service/llm/context/logger.d.ts.map +1 -0
- package/dist/ai-service/llm/context/logger.js +26 -0
- package/dist/ai-service/llm/context/logger.js.map +1 -0
- package/dist/ai-service/llm/context/manager.d.ts +79 -0
- package/dist/ai-service/llm/context/manager.d.ts.map +1 -0
- package/dist/ai-service/llm/context/manager.js +136 -0
- package/dist/ai-service/llm/context/manager.js.map +1 -0
- package/dist/ai-service/llm/context/options.d.ts +43 -0
- package/dist/ai-service/llm/context/options.d.ts.map +1 -0
- package/dist/ai-service/llm/context/options.js +81 -0
- package/dist/ai-service/llm/context/options.js.map +1 -0
- package/dist/ai-service/llm/context/serialization.d.ts +56 -0
- package/dist/ai-service/llm/context/serialization.d.ts.map +1 -0
- package/dist/ai-service/llm/context/serialization.js +9 -0
- package/dist/ai-service/llm/context/serialization.js.map +1 -0
- package/dist/ai-service/llm/context/storage/index.d.ts +10 -0
- package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context/storage/index.js +2 -0
- package/dist/ai-service/llm/context/storage/index.js.map +1 -0
- package/dist/ai-service/llm/context/storage/local.d.ts +22 -0
- package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -0
- package/dist/ai-service/llm/context/storage/local.js +42 -0
- package/dist/ai-service/llm/context/storage/local.js.map +1 -0
- package/dist/ai-service/llm/context/types.d.ts +125 -0
- package/dist/ai-service/llm/context/types.d.ts.map +1 -0
- package/dist/ai-service/llm/context/types.js +5 -0
- package/dist/ai-service/llm/context/types.js.map +1 -0
- package/dist/ai-service/llm/context/utils/content-compaction.d.ts +26 -0
- package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -0
- package/dist/ai-service/llm/context/utils/content-compaction.js +52 -0
- package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -0
- package/dist/ai-service/llm/context/utils/index.d.ts +10 -0
- package/dist/ai-service/llm/context/utils/index.d.ts.map +1 -0
- package/dist/ai-service/llm/context/utils/index.js +10 -0
- package/dist/ai-service/llm/context/utils/index.js.map +1 -0
- package/dist/ai-service/llm/context/utils/message-utils.d.ts +34 -0
- package/dist/ai-service/llm/context/utils/message-utils.d.ts.map +1 -0
- package/dist/ai-service/llm/context/utils/message-utils.js +68 -0
- package/dist/ai-service/llm/context/utils/message-utils.js.map +1 -0
- package/dist/ai-service/llm/context/utils/token-estimation.d.ts +31 -0
- package/dist/ai-service/llm/context/utils/token-estimation.d.ts.map +1 -0
- package/dist/ai-service/llm/context/utils/token-estimation.js +52 -0
- package/dist/ai-service/llm/context/utils/token-estimation.js.map +1 -0
- package/dist/ai-service/llm/context/utils/visualization.d.ts +40 -0
- package/dist/ai-service/llm/context/utils/visualization.d.ts.map +1 -0
- package/dist/ai-service/llm/context/utils/visualization.js +516 -0
- package/dist/ai-service/llm/context/utils/visualization.js.map +1 -0
- package/dist/ai-service/llm/impl/anthropic.js +2 -2
- package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
- package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
- package/dist/ai-service/llmobs/helpers.js +10 -19
- package/dist/ai-service/llmobs/helpers.js.map +1 -1
- package/dist/ai-service/llmobs/middleware/stream-text.js +4 -1
- package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +9 -5
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- 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 +36 -9
- package/dist/ai-service/state-machine/handlers/agent-planning.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 +154 -104
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.d.ts +4 -0
- package/dist/ai-service/state-machine/helpers/context-id.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/context-id.js +16 -0
- package/dist/ai-service/state-machine/helpers/context-id.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +7 -4
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts +2 -3
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/types.d.ts +3 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/ai-service/util/parse-jwt.d.ts +12 -0
- package/dist/ai-service/util/parse-jwt.d.ts.map +1 -0
- package/dist/ai-service/util/parse-jwt.js +30 -0
- package/dist/ai-service/util/parse-jwt.js.map +1 -0
- package/dist/ai-service/util/safe-stringify.d.ts +1 -1
- package/dist/ai-service/util/safe-stringify.d.ts.map +1 -1
- package/dist/ai-service/util/safe-stringify.js +3 -3
- package/dist/ai-service/util/safe-stringify.js.map +1 -1
- package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -1
- package/dist/binding-extraction/extract-js-identifiers.js +1 -1
- package/dist/binding-extraction/extract-js-identifiers.js.map +1 -1
- package/dist/component-docs-service/index.d.ts.map +1 -1
- package/dist/component-docs-service/index.js +0 -2
- package/dist/component-docs-service/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/ai-service/agent/apis-static-analysis.d.ts.map +0 -1
- package/dist/ai-service/agent/apis-static-analysis.js.map +0 -1
- package/dist/ai-service/agent/apis-system-prompt.d.ts +0 -3
- package/dist/ai-service/agent/apis-system-prompt.d.ts.map +0 -1
- package/dist/ai-service/agent/apis.d.ts +0 -55
- package/dist/ai-service/agent/apis.d.ts.map +0 -1
- package/dist/ai-service/agent/apis.js.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serialization types and utilities for persisting context state.
|
|
3
|
+
*
|
|
4
|
+
* These types define the JSON-serializable format used to save and load
|
|
5
|
+
* context state from the database. They mirror the internal turn structures
|
|
6
|
+
* but are pure data (no methods).
|
|
7
|
+
*/
|
|
8
|
+
import type { TokenizedUserMessage, TokenizedResponseMessage, TokenizedAssistantMessage, Step } from "./internal-types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Complete serialized context state.
|
|
11
|
+
*
|
|
12
|
+
* This is the format saved to storage and loaded on context restoration.
|
|
13
|
+
* It contains all conversation turns organized by compression level, and
|
|
14
|
+
* the latest characters per token estimate.
|
|
15
|
+
*
|
|
16
|
+
* Preserving the estimate allows for more accurate token budgeting on
|
|
17
|
+
* session resumption.
|
|
18
|
+
*/
|
|
19
|
+
export type ContextRecord = {
|
|
20
|
+
/** Estimated average characters per token */
|
|
21
|
+
charsPerToken: number;
|
|
22
|
+
/** Level 1 turns (newest, full detail) */
|
|
23
|
+
l1Turns: L1TurnRecord[];
|
|
24
|
+
/** Level 2 turns (moderate compression) */
|
|
25
|
+
l2Turns: L2TurnRecord[];
|
|
26
|
+
/** Level 3 turns (heavy compression) */
|
|
27
|
+
l3Turns: L3TurnRecord[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Serialized representation of an L1 (Level 1) turn.
|
|
31
|
+
*/
|
|
32
|
+
export type L1TurnRecord = {
|
|
33
|
+
/** The user message that initiated this turn */
|
|
34
|
+
user: TokenizedUserMessage;
|
|
35
|
+
/** Array of steps, where each step contains response messages */
|
|
36
|
+
steps: Step[];
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Serialized representation of an L2 (Level 2) turn.
|
|
40
|
+
*/
|
|
41
|
+
export type L2TurnRecord = {
|
|
42
|
+
/** The user message that initiated this turn */
|
|
43
|
+
user: TokenizedUserMessage;
|
|
44
|
+
/** Flattened array of all response messages from all steps */
|
|
45
|
+
response: TokenizedResponseMessage[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Serialized representation of an L3 (Level 3) turn.
|
|
49
|
+
*/
|
|
50
|
+
export type L3TurnRecord = {
|
|
51
|
+
/** The user message that initiated this turn */
|
|
52
|
+
user: TokenizedUserMessage;
|
|
53
|
+
/** Optional last assistant message (if any) */
|
|
54
|
+
assistant?: TokenizedAssistantMessage;
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,IAAI,EACL,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2CAA2C;IAC3C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,wCAAwC;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gDAAgD;IAChD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,iEAAiE;IACjE,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gDAAgD;IAChD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,gDAAgD;IAChD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serialization types and utilities for persisting context state.
|
|
3
|
+
*
|
|
4
|
+
* These types define the JSON-serializable format used to save and load
|
|
5
|
+
* context state from the database. They mirror the internal turn structures
|
|
6
|
+
* but are pure data (no methods).
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ContextRecord } from "../serialization.js";
|
|
2
|
+
import type { ContextId } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Storage backend interface for persisting and retrieving context records.
|
|
5
|
+
*/
|
|
6
|
+
export interface ContextStorage {
|
|
7
|
+
saveContext(id: ContextId, context: ContextRecord): Promise<void>;
|
|
8
|
+
loadContext(id: ContextId): Promise<ContextRecord | null>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/storage/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ContextRecord } from "../serialization.js";
|
|
2
|
+
import type { ContextStorage } from "./index.js";
|
|
3
|
+
import type { ContextId } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Local filesystem storage backend for context records.
|
|
6
|
+
*
|
|
7
|
+
* Contexts are stored as JSON files in the following structure:
|
|
8
|
+
* {rootDir}/.superblocks/context/{userId}/{contextName}.json
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* /data/.superblocks/context/user123/chat-session.json
|
|
12
|
+
*/
|
|
13
|
+
export declare class LocalContextStorage implements ContextStorage {
|
|
14
|
+
readonly rootDir: string;
|
|
15
|
+
private readonly SUPERBLOCKS_SYSTEM_DIR;
|
|
16
|
+
constructor(rootDir: string);
|
|
17
|
+
loadContext(id: ContextId): Promise<ContextRecord | null>;
|
|
18
|
+
saveContext(id: ContextId, record: ContextRecord): Promise<void>;
|
|
19
|
+
private ensureBaseDirExists;
|
|
20
|
+
private getFilePath;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/storage/local.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAE5C,QAAQ,CAAC,OAAO,EAAE,MAAM;IADpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkB;gBACpC,OAAO,EAAE,MAAM;IAE9B,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAYzD,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAMxD,mBAAmB;IAIjC,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Local filesystem storage backend for context records.
|
|
5
|
+
*
|
|
6
|
+
* Contexts are stored as JSON files in the following structure:
|
|
7
|
+
* {rootDir}/.superblocks/context/{userId}/{contextName}.json
|
|
8
|
+
*
|
|
9
|
+
* Example:
|
|
10
|
+
* /data/.superblocks/context/user123/chat-session.json
|
|
11
|
+
*/
|
|
12
|
+
export class LocalContextStorage {
|
|
13
|
+
rootDir;
|
|
14
|
+
SUPERBLOCKS_SYSTEM_DIR = ".superblocks";
|
|
15
|
+
constructor(rootDir) {
|
|
16
|
+
this.rootDir = rootDir;
|
|
17
|
+
}
|
|
18
|
+
async loadContext(id) {
|
|
19
|
+
try {
|
|
20
|
+
const content = await readFile(this.getFilePath(id), "utf-8");
|
|
21
|
+
return JSON.parse(content);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (err.code === "ENOENT") {
|
|
25
|
+
return null; // File does not exist
|
|
26
|
+
}
|
|
27
|
+
throw err; // Rethrow other errors
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async saveContext(id, record) {
|
|
31
|
+
const filePath = this.getFilePath(id);
|
|
32
|
+
await this.ensureBaseDirExists(filePath);
|
|
33
|
+
await writeFile(filePath, JSON.stringify(record, null, 2));
|
|
34
|
+
}
|
|
35
|
+
async ensureBaseDirExists(filePath) {
|
|
36
|
+
await mkdir(path.dirname(filePath), { recursive: true });
|
|
37
|
+
}
|
|
38
|
+
getFilePath(id) {
|
|
39
|
+
return path.join(this.rootDir, this.SUPERBLOCKS_SYSTEM_DIR, "context", id.userId, `${id.name}.json`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/storage/local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IAET;IADJ,sBAAsB,GAAG,cAAc,CAAC;IACzD,YAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAExC,KAAK,CAAC,WAAW,CAAC,EAAa;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,CAAC,sBAAsB;YACrC,CAAC;YACD,MAAM,GAAG,CAAC,CAAC,uBAAuB;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAa,EAAE,MAAqB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,WAAW,CAAC,EAAa;QAC/B,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,sBAAsB,EAC3B,SAAS,EACT,EAAE,CAAC,MAAM,EACT,GAAG,EAAE,CAAC,IAAI,OAAO,CAClB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public type definitions for the Context management system.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Globally unique identifier for a conversation context.
|
|
6
|
+
*/
|
|
7
|
+
export type ContextId = {
|
|
8
|
+
/** Application identifier */
|
|
9
|
+
appId: string;
|
|
10
|
+
/** User identifier */
|
|
11
|
+
userId: string;
|
|
12
|
+
/** Context name */
|
|
13
|
+
name: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Configuration options for context creation and management.
|
|
17
|
+
* Undefined values will resolve to defaults.
|
|
18
|
+
*/
|
|
19
|
+
export interface ContextOptions {
|
|
20
|
+
/** Maximum tokens allowed in context window */
|
|
21
|
+
maxTokens?: number;
|
|
22
|
+
/** Character-to-token conversion ratio (auto-refined during usage) */
|
|
23
|
+
charsPerToken?: number;
|
|
24
|
+
/** If false, an error will be thrown if maxTokens exceeded after compaction */
|
|
25
|
+
allowOverflow?: boolean;
|
|
26
|
+
/** Compaction behavior (fractions of maxTokens) */
|
|
27
|
+
compaction?: CompactionOptions;
|
|
28
|
+
/** Token estimation configuration */
|
|
29
|
+
tokenEstimation?: TokenEstimationOptions;
|
|
30
|
+
/** Prompt caching configuration */
|
|
31
|
+
caching?: CachingOptions;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Token count estimation configuration.
|
|
35
|
+
*/
|
|
36
|
+
export interface TokenEstimationOptions {
|
|
37
|
+
/** Minimum tokens required before updating estimate */
|
|
38
|
+
minTokensForUpdate?: number;
|
|
39
|
+
/** Minimum valid chars/token ratio */
|
|
40
|
+
minCharsPerToken?: number;
|
|
41
|
+
/** Maximum valid chars/token ratio */
|
|
42
|
+
maxCharsPerToken?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Prompt caching configuration.
|
|
46
|
+
*/
|
|
47
|
+
export interface CachingOptions {
|
|
48
|
+
/** Maximum number of cache breakpoints (provider-specific) */
|
|
49
|
+
maxBreakpoints?: number;
|
|
50
|
+
/** Minimum tokens required between cache points for efficiency */
|
|
51
|
+
minCacheableTokens?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Compaction behavior configuration.
|
|
55
|
+
*/
|
|
56
|
+
export interface CompactionOptions {
|
|
57
|
+
/** Token threshold that triggers compaction (as fraction of maxTokens) */
|
|
58
|
+
trigger?: number;
|
|
59
|
+
/** Target token count after compaction (as fraction of maxTokens) */
|
|
60
|
+
target?: number;
|
|
61
|
+
/** Budget allocation for each compaction level (as fractions of compaction target) */
|
|
62
|
+
budgets?: CompactionLevelBudgets;
|
|
63
|
+
/** Number of most recent steps to protect from compression on a best-effort basis (most recent 2 will never be compressed) */
|
|
64
|
+
prioritizedSteps?: number;
|
|
65
|
+
}
|
|
66
|
+
/** Budget allocations for each compaction level.
|
|
67
|
+
* Values are fractions of the overall compaction target.
|
|
68
|
+
* Budget for L3 is implicit as remainder (1 - l1 - l2).
|
|
69
|
+
*/
|
|
70
|
+
export interface CompactionLevelBudgets {
|
|
71
|
+
/** Fraction of compaction target allocated to Level 1 */
|
|
72
|
+
l1?: number;
|
|
73
|
+
/** Fraction of compaction target allocated to Level 2 */
|
|
74
|
+
l2?: number;
|
|
75
|
+
}
|
|
76
|
+
/** Options for logging context activity. */
|
|
77
|
+
export type LoggingOptions = {
|
|
78
|
+
/** Enable verbose logging */
|
|
79
|
+
verbose: boolean;
|
|
80
|
+
visualization: VisualizationOptions;
|
|
81
|
+
};
|
|
82
|
+
/** Options for context visualizations */
|
|
83
|
+
export type VisualizationOptions = {
|
|
84
|
+
mode: VisualizationMode;
|
|
85
|
+
/** Width of visualization output (default: 120) */
|
|
86
|
+
width?: number;
|
|
87
|
+
/** Path to write visualizations (overwrites file each time for use with `watch` command) */
|
|
88
|
+
outputPath?: string;
|
|
89
|
+
};
|
|
90
|
+
/** Visualization mode (default: "detailed")
|
|
91
|
+
* - "off": No visualization
|
|
92
|
+
* - "summary": Shows turn, step, and token counts at each level
|
|
93
|
+
* - "detailed": All messages and parts
|
|
94
|
+
* */
|
|
95
|
+
export type VisualizationMode = "off" | "summary" | "detailed";
|
|
96
|
+
/**
|
|
97
|
+
* Information provided when user prompt exceeds size limits.
|
|
98
|
+
*/
|
|
99
|
+
export interface UserPromptTooLargeInfo {
|
|
100
|
+
/** User message token count */
|
|
101
|
+
userTokens: number;
|
|
102
|
+
/** System prompt token count */
|
|
103
|
+
systemTokens: number;
|
|
104
|
+
/** Combined user + system tokens */
|
|
105
|
+
combined: number;
|
|
106
|
+
/** Maximum allowed tokens */
|
|
107
|
+
maxTokens: number;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Information provided when context exceeds limits after compaction.
|
|
111
|
+
*/
|
|
112
|
+
export interface ContextLimitExceededInfo {
|
|
113
|
+
/** Current total token count */
|
|
114
|
+
currentTokens: number;
|
|
115
|
+
/** Maximum allowed tokens */
|
|
116
|
+
maxTokens: number;
|
|
117
|
+
/** Token breakdown by component */
|
|
118
|
+
breakdown: {
|
|
119
|
+
system: number;
|
|
120
|
+
user: number;
|
|
121
|
+
activeStep: number;
|
|
122
|
+
history: number;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,qCAAqC;IACrC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,mCAAmC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,8HAA8H;IAC9H,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG;IAC3B,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,oBAAoB,CAAC;CACrC,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;KAIK;AACL,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content compaction utilities for removing or reducing tool interaction details.
|
|
3
|
+
*
|
|
4
|
+
* These functions are used when demoting turns to more compressed levels,
|
|
5
|
+
* removing tool call inputs and results while preserving the conversation structure.
|
|
6
|
+
*/
|
|
7
|
+
import type { ContentPart } from "../internal-types.js";
|
|
8
|
+
import type { ReasoningPart } from "@ai-sdk/provider-utils";
|
|
9
|
+
import type { TextPart, ToolCallPart, ToolResultPart } from "ai";
|
|
10
|
+
/**
|
|
11
|
+
* Compacts content parts by removing tool interaction details.
|
|
12
|
+
*
|
|
13
|
+
* Used when demoting turns to L2 (moderate compression):
|
|
14
|
+
* - Text parts: Preserved unchanged
|
|
15
|
+
* - Reasoning parts: Preserved unchanged
|
|
16
|
+
* Reasoning blocks from current turn must be preserved, and reasoning from previous turns is automatically ignored
|
|
17
|
+
* https://docs.aws.amazon.com/bedrock/latest/userguide/claude-messages-extended-thinking.html#claude-messages-how-extended-thinking-works
|
|
18
|
+
* - Tool call parts: Input replaced with empty object
|
|
19
|
+
* - Tool result parts: Output replaced with placeholder text
|
|
20
|
+
* - File parts: Removed
|
|
21
|
+
*
|
|
22
|
+
* @param parts - Content parts to compact
|
|
23
|
+
* @returns Compacted content parts
|
|
24
|
+
*/
|
|
25
|
+
export declare function compactContentParts(parts: ContentPart[]): (TextPart | ReasoningPart | ToolCallPart | ToolResultPart)[];
|
|
26
|
+
//# sourceMappingURL=content-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-compaction.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/content-compaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAAE,GACnB,CAAC,QAAQ,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,CA0B9D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content compaction utilities for removing or reducing tool interaction details.
|
|
3
|
+
*
|
|
4
|
+
* These functions are used when demoting turns to more compressed levels,
|
|
5
|
+
* removing tool call inputs and results while preserving the conversation structure.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Compacts content parts by removing tool interaction details.
|
|
9
|
+
*
|
|
10
|
+
* Used when demoting turns to L2 (moderate compression):
|
|
11
|
+
* - Text parts: Preserved unchanged
|
|
12
|
+
* - Reasoning parts: Preserved unchanged
|
|
13
|
+
* Reasoning blocks from current turn must be preserved, and reasoning from previous turns is automatically ignored
|
|
14
|
+
* https://docs.aws.amazon.com/bedrock/latest/userguide/claude-messages-extended-thinking.html#claude-messages-how-extended-thinking-works
|
|
15
|
+
* - Tool call parts: Input replaced with empty object
|
|
16
|
+
* - Tool result parts: Output replaced with placeholder text
|
|
17
|
+
* - File parts: Removed
|
|
18
|
+
*
|
|
19
|
+
* @param parts - Content parts to compact
|
|
20
|
+
* @returns Compacted content parts
|
|
21
|
+
*/
|
|
22
|
+
export function compactContentParts(parts) {
|
|
23
|
+
return parts.flatMap((part) => {
|
|
24
|
+
if (part.type === "text" || part.type === "reasoning") {
|
|
25
|
+
return part;
|
|
26
|
+
}
|
|
27
|
+
else if (part.type === "tool-call") {
|
|
28
|
+
return {
|
|
29
|
+
type: "tool-call",
|
|
30
|
+
toolCallId: part.toolCallId,
|
|
31
|
+
toolName: part.toolName,
|
|
32
|
+
input: {},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else if (part.type === "tool-result") {
|
|
36
|
+
return {
|
|
37
|
+
type: "tool-result",
|
|
38
|
+
toolCallId: part.toolCallId,
|
|
39
|
+
toolName: part.toolName,
|
|
40
|
+
output: {
|
|
41
|
+
type: "text",
|
|
42
|
+
value: "[tool output trimmed]",
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// File parts are removed
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=content-compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-compaction.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/content-compaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAoB;IAEpB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,EAAE;aACa,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,uBAAuB;iBAC/B;aACuB,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility function exports for context management.
|
|
3
|
+
*
|
|
4
|
+
* Internal utilities used by Context and Turn classes.
|
|
5
|
+
*/
|
|
6
|
+
export { estimateTokenCount, countChars as countChars, } from "./token-estimation.js";
|
|
7
|
+
export { compactContentParts } from "./content-compaction.js";
|
|
8
|
+
export { normalizeToolResultOutput } from "./message-utils.js";
|
|
9
|
+
export { renderContext } from "./visualization.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,UAAU,IAAI,UAAU,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility function exports for context management.
|
|
3
|
+
*
|
|
4
|
+
* Internal utilities used by Context and Turn classes.
|
|
5
|
+
*/
|
|
6
|
+
export { estimateTokenCount, countChars as countChars, } from "./token-estimation.js";
|
|
7
|
+
export { compactContentParts } from "./content-compaction.js";
|
|
8
|
+
export { normalizeToolResultOutput } from "./message-utils.js";
|
|
9
|
+
export { renderContext } from "./visualization.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,UAAU,IAAI,UAAU,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message normalization and validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Ensures messages conform to expected formats, particularly for tool results
|
|
5
|
+
* which must match the LanguageModelV2ToolResultOutput schema.
|
|
6
|
+
*/
|
|
7
|
+
import type { LanguageModelV2ToolResultOutput } from "@ai-sdk/provider";
|
|
8
|
+
import type { AssistantModelMessage } from "ai";
|
|
9
|
+
/**
|
|
10
|
+
* Validates and normalizes a tool result output to ensure it conforms to
|
|
11
|
+
* LanguageModelV2ToolResultOutput.
|
|
12
|
+
*
|
|
13
|
+
* Handles common issues:
|
|
14
|
+
* - Null/undefined outputs → wrapped in json type
|
|
15
|
+
* - Non-object outputs → wrapped in json type
|
|
16
|
+
* - Missing type field → defaults to json type
|
|
17
|
+
* - Invalid type values → normalized to json type
|
|
18
|
+
*
|
|
19
|
+
* @param output - Tool result output to normalize
|
|
20
|
+
* @returns Normalized output conforming to LanguageModelV2ToolResultOutput
|
|
21
|
+
*/
|
|
22
|
+
export declare function normalizeToolResultOutput(output: unknown): LanguageModelV2ToolResultOutput;
|
|
23
|
+
/**
|
|
24
|
+
* Ensures an assistant message's content starts with a reasoning block.
|
|
25
|
+
* If the first content part is not a reasoning block, one is prepended.
|
|
26
|
+
*
|
|
27
|
+
* Avoids issues that can arise when dropping messages, as some models
|
|
28
|
+
* expect reasoning blocks in specific positions in the turn sequence.
|
|
29
|
+
*
|
|
30
|
+
* @param message - Assistant message to check and modify if needed
|
|
31
|
+
* @returns Assistant message guaranteed to start with a reasoning block
|
|
32
|
+
*/
|
|
33
|
+
export declare function prependReasoningBlockIfNeeded(message: AssistantModelMessage): AssistantModelMessage;
|
|
34
|
+
//# sourceMappingURL=message-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/message-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,GACd,+BAA+B,CAuBjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,qBAAqB,GAC7B,qBAAqB,CAkBvB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message normalization and validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Ensures messages conform to expected formats, particularly for tool results
|
|
5
|
+
* which must match the LanguageModelV2ToolResultOutput schema.
|
|
6
|
+
*/
|
|
7
|
+
import { getLogger } from "../../../../util/logger.js";
|
|
8
|
+
/**
|
|
9
|
+
* Validates and normalizes a tool result output to ensure it conforms to
|
|
10
|
+
* LanguageModelV2ToolResultOutput.
|
|
11
|
+
*
|
|
12
|
+
* Handles common issues:
|
|
13
|
+
* - Null/undefined outputs → wrapped in json type
|
|
14
|
+
* - Non-object outputs → wrapped in json type
|
|
15
|
+
* - Missing type field → defaults to json type
|
|
16
|
+
* - Invalid type values → normalized to json type
|
|
17
|
+
*
|
|
18
|
+
* @param output - Tool result output to normalize
|
|
19
|
+
* @returns Normalized output conforming to LanguageModelV2ToolResultOutput
|
|
20
|
+
*/
|
|
21
|
+
export function normalizeToolResultOutput(output) {
|
|
22
|
+
if (output === null || output === undefined) {
|
|
23
|
+
return { type: "json", value: null };
|
|
24
|
+
}
|
|
25
|
+
if (typeof output !== "object") {
|
|
26
|
+
return { type: "json", value: output };
|
|
27
|
+
}
|
|
28
|
+
const outputObj = output;
|
|
29
|
+
if (!("type" in outputObj) || typeof outputObj.type !== "string") {
|
|
30
|
+
return { type: "json", value: output };
|
|
31
|
+
}
|
|
32
|
+
const validTypes = ["text", "json", "error-text", "error-json"];
|
|
33
|
+
if (!validTypes.includes(outputObj.type)) {
|
|
34
|
+
getLogger().warn(`[context] Invalid tool result output type: ${outputObj.type}. Normalizing to json type.`);
|
|
35
|
+
return { type: "json", value: output };
|
|
36
|
+
}
|
|
37
|
+
return output;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Ensures an assistant message's content starts with a reasoning block.
|
|
41
|
+
* If the first content part is not a reasoning block, one is prepended.
|
|
42
|
+
*
|
|
43
|
+
* Avoids issues that can arise when dropping messages, as some models
|
|
44
|
+
* expect reasoning blocks in specific positions in the turn sequence.
|
|
45
|
+
*
|
|
46
|
+
* @param message - Assistant message to check and modify if needed
|
|
47
|
+
* @returns Assistant message guaranteed to start with a reasoning block
|
|
48
|
+
*/
|
|
49
|
+
export function prependReasoningBlockIfNeeded(message) {
|
|
50
|
+
if (typeof message.content == "string") {
|
|
51
|
+
return message;
|
|
52
|
+
}
|
|
53
|
+
const firstPart = message.content.at(0);
|
|
54
|
+
if (!firstPart || firstPart.type === "reasoning") {
|
|
55
|
+
return message;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
...message,
|
|
59
|
+
content: [
|
|
60
|
+
{
|
|
61
|
+
type: "reasoning",
|
|
62
|
+
text: "",
|
|
63
|
+
},
|
|
64
|
+
...message.content,
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=message-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-utils.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/message-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAIvD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAe;IAEf,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAqC,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAqC,CAAC;IAC5E,CAAC;IAED,MAAM,SAAS,GAAG,MAAiC,CAAC;IACpD,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAqC,CAAC;IAC5E,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,SAAS,EAAE,CAAC,IAAI,CACd,8CAA8C,SAAS,CAAC,IAAI,6BAA6B,CAC1F,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAqC,CAAC;IAC5E,CAAC;IAED,OAAO,MAAyC,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA8B;IAE9B,IAAI,OAAO,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,EAAE;aACT;YACD,GAAG,OAAO,CAAC,OAAO;SACnB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token estimation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for estimating token counts from message content.
|
|
5
|
+
* Token estimation is based on a character-to-token ratio that is
|
|
6
|
+
* learned and refined during usage.
|
|
7
|
+
*/
|
|
8
|
+
import type { ModelMessage } from "ai";
|
|
9
|
+
/**
|
|
10
|
+
* Estimates the token count for a message based on its content.
|
|
11
|
+
*
|
|
12
|
+
* Token estimation strategy:
|
|
13
|
+
* - String content: Direct character count / ratio
|
|
14
|
+
* - Array content: Sum of all parts after JSON serialization
|
|
15
|
+
* - Text/reasoning parts: Use text length
|
|
16
|
+
* - Tool call parts: JSON serialize the input
|
|
17
|
+
* - Tool result parts: JSON serialize the output
|
|
18
|
+
*
|
|
19
|
+
* @param message - The message to estimate tokens for
|
|
20
|
+
* @param charactersPerToken - Estimated characters per token ratio (typically 2-5)
|
|
21
|
+
* @returns Estimated token count (rounded up to nearest integer)
|
|
22
|
+
*/
|
|
23
|
+
export declare function estimateTokenCount(message: ModelMessage, charactersPerToken: number): number;
|
|
24
|
+
/**
|
|
25
|
+
* Counts the number of characters in a message
|
|
26
|
+
*
|
|
27
|
+
* @param message - The message to count characters for
|
|
28
|
+
* @returns Total character count
|
|
29
|
+
*/
|
|
30
|
+
export declare function countChars(message: ModelMessage): number;
|
|
31
|
+
//# sourceMappingURL=token-estimation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-estimation.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/token-estimation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAoBxD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token estimation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for estimating token counts from message content.
|
|
5
|
+
* Token estimation is based on a character-to-token ratio that is
|
|
6
|
+
* learned and refined during usage.
|
|
7
|
+
*/
|
|
8
|
+
import { safeJsonStringify } from "../../../util/safe-stringify.js";
|
|
9
|
+
/**
|
|
10
|
+
* Estimates the token count for a message based on its content.
|
|
11
|
+
*
|
|
12
|
+
* Token estimation strategy:
|
|
13
|
+
* - String content: Direct character count / ratio
|
|
14
|
+
* - Array content: Sum of all parts after JSON serialization
|
|
15
|
+
* - Text/reasoning parts: Use text length
|
|
16
|
+
* - Tool call parts: JSON serialize the input
|
|
17
|
+
* - Tool result parts: JSON serialize the output
|
|
18
|
+
*
|
|
19
|
+
* @param message - The message to estimate tokens for
|
|
20
|
+
* @param charactersPerToken - Estimated characters per token ratio (typically 2-5)
|
|
21
|
+
* @returns Estimated token count (rounded up to nearest integer)
|
|
22
|
+
*/
|
|
23
|
+
export function estimateTokenCount(message, charactersPerToken) {
|
|
24
|
+
return Math.ceil(countChars(message) / charactersPerToken);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Counts the number of characters in a message
|
|
28
|
+
*
|
|
29
|
+
* @param message - The message to count characters for
|
|
30
|
+
* @returns Total character count
|
|
31
|
+
*/
|
|
32
|
+
export function countChars(message) {
|
|
33
|
+
const content = message.content;
|
|
34
|
+
if (typeof content === "string") {
|
|
35
|
+
return content.length;
|
|
36
|
+
}
|
|
37
|
+
// For array content, estimate each part separately
|
|
38
|
+
return content.reduce((sum, part) => {
|
|
39
|
+
let count = 0;
|
|
40
|
+
if (part.type === "text" || part.type === "reasoning") {
|
|
41
|
+
count += part.text.length;
|
|
42
|
+
}
|
|
43
|
+
else if (part.type === "tool-call") {
|
|
44
|
+
count += safeJsonStringify(part.input).length;
|
|
45
|
+
}
|
|
46
|
+
else if (part.type === "tool-result") {
|
|
47
|
+
count += safeJsonStringify(part.output).length;
|
|
48
|
+
}
|
|
49
|
+
return sum + count;
|
|
50
|
+
}, 0);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=token-estimation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-estimation.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context/utils/token-estimation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAqB,EACrB,kBAA0B;IAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,mDAAmD;IACnD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtD,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAChD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACjD,CAAC;QAED,OAAO,GAAG,GAAG,KAAK,CAAC;IACrB,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC"}
|