@machina.ai/cell-cli-core 1.20.2-rc1 → 1.22.5-rc1
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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/agents/delegate-to-agent-tool.d.ts +19 -0
- package/dist/src/agents/delegate-to-agent-tool.js +111 -0
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -0
- package/dist/src/agents/delegate-to-agent-tool.test.d.ts +6 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js +133 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
- package/dist/src/agents/executor.js +1 -1
- package/dist/src/agents/executor.js.map +1 -1
- package/dist/src/agents/executor.test.js.map +1 -1
- package/dist/src/agents/registry.d.ts +15 -0
- package/dist/src/agents/registry.js +58 -2
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +61 -0
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/availability/errorClassification.d.ts +7 -0
- package/dist/src/availability/errorClassification.js +20 -0
- package/dist/src/availability/errorClassification.js.map +1 -0
- package/dist/src/availability/modelAvailabilityService.d.ts +1 -0
- package/dist/src/availability/modelAvailabilityService.js +3 -0
- package/dist/src/availability/modelAvailabilityService.js.map +1 -1
- package/dist/src/availability/modelPolicy.d.ts +8 -1
- package/dist/src/availability/policyCatalog.d.ts +1 -0
- package/dist/src/availability/policyCatalog.js +6 -7
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +2 -2
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.d.ts +33 -3
- package/dist/src/availability/policyHelpers.js +113 -13
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +133 -13
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/availability/testUtils.d.ts +10 -0
- package/dist/src/availability/testUtils.js +22 -0
- package/dist/src/availability/testUtils.js.map +1 -0
- package/dist/src/code_assist/experiments/client_metadata.js +2 -1
- package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
- package/dist/src/code_assist/experiments/client_metadata.test.js +7 -10
- package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -0
- package/dist/src/code_assist/oauth2.js +38 -12
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +113 -6
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +53 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/init.test.d.ts +6 -0
- package/dist/src/commands/init.test.js +25 -0
- package/dist/src/commands/init.test.js.map +1 -0
- package/dist/src/commands/restore.d.ts +9 -0
- package/dist/src/commands/restore.js +46 -0
- package/dist/src/commands/restore.js.map +1 -0
- package/dist/src/commands/restore.test.d.ts +6 -0
- package/dist/src/commands/restore.test.js +137 -0
- package/dist/src/commands/restore.test.js.map +1 -0
- package/dist/src/commands/types.d.ts +41 -0
- package/dist/src/commands/types.js +7 -0
- package/dist/src/commands/types.js.map +1 -0
- package/dist/src/config/config.d.ts +29 -3
- package/dist/src/config/config.js +146 -29
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +203 -9
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +21 -0
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/models.d.ts +33 -11
- package/dist/src/config/models.js +82 -24
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +70 -76
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.js +1 -0
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +4 -0
- package/dist/src/core/baseLlmClient.d.ts +3 -1
- package/dist/src/core/baseLlmClient.js +40 -3
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +184 -7
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.js +47 -13
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +133 -6
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +5 -3
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +29 -22
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +1 -1
- package/dist/src/core/coreToolScheduler.js +76 -34
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +135 -37
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +60 -29
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +236 -188
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.d.ts +6 -0
- package/dist/src/core/geminiChat_network_retry.test.js +198 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -5
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +13 -11
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +19 -8
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/sessionHookTriggers.d.ts +28 -0
- package/dist/src/core/sessionHookTriggers.js +68 -0
- package/dist/src/core/sessionHookTriggers.js.map +1 -0
- package/dist/src/core/turn.d.ts +1 -0
- package/dist/src/core/turn.js +1 -1
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/fallback/handler.js +56 -115
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +124 -278
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookEventHandler.js +59 -1
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +8 -1
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +0 -7
- package/dist/src/hooks/hookRegistry.js +8 -21
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +2 -7
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.js +12 -2
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +1 -1
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +0 -8
- package/dist/src/hooks/hookSystem.js +0 -18
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookSystem.test.js +123 -18
- package/dist/src/hooks/hookSystem.test.js.map +1 -1
- package/dist/src/hooks/index.d.ts +3 -1
- package/dist/src/hooks/index.js +3 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/types.d.ts +1 -2
- package/dist/src/hooks/types.js +0 -1
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +32 -1
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +2 -0
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +1 -1
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/output/json-formatter.d.ts +2 -2
- package/dist/src/output/json-formatter.js +6 -3
- package/dist/src/output/json-formatter.js.map +1 -1
- package/dist/src/output/json-formatter.test.js +37 -9
- package/dist/src/output/json-formatter.test.js.map +1 -1
- package/dist/src/output/stream-json-formatter.js +6 -0
- package/dist/src/output/stream-json-formatter.js.map +1 -1
- package/dist/src/output/stream-json-formatter.test.js +98 -100
- package/dist/src/output/stream-json-formatter.test.js.map +1 -1
- package/dist/src/output/types.d.ts +3 -0
- package/dist/src/output/types.js.map +1 -1
- package/dist/src/policy/config.js +97 -11
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/persistence.test.d.ts +6 -0
- package/dist/src/policy/persistence.test.js +154 -0
- package/dist/src/policy/persistence.test.js.map +1 -0
- package/dist/src/policy/policies/agent.toml +31 -0
- package/dist/src/policy/policy-engine.d.ts +10 -1
- package/dist/src/policy/policy-engine.js +79 -5
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +26 -2
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.d.ts +6 -0
- package/dist/src/policy/policy-updater.test.js +116 -0
- package/dist/src/policy/policy-updater.test.js.map +1 -0
- package/dist/src/policy/shell-safety.test.d.ts +6 -0
- package/dist/src/policy/shell-safety.test.js +75 -0
- package/dist/src/policy/shell-safety.test.js.map +1 -0
- package/dist/src/policy/toml-loader.d.ts +11 -5
- package/dist/src/policy/toml-loader.js +38 -23
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +28 -7
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +15 -0
- package/dist/src/resources/resource-registry.d.ts +30 -0
- package/dist/src/resources/resource-registry.js +57 -0
- package/dist/src/resources/resource-registry.js.map +1 -0
- package/dist/src/resources/resource-registry.test.d.ts +6 -0
- package/dist/src/resources/resource-registry.test.js +54 -0
- package/dist/src/resources/resource-registry.test.js.map +1 -0
- package/dist/src/routing/modelRouterService.js +0 -15
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +0 -62
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js +10 -21
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +23 -12
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +69 -39
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +4 -3
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/safety/checker-runner.js +17 -6
- package/dist/src/safety/checker-runner.js.map +1 -1
- package/dist/src/services/chatCompressionService.js +15 -1
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +2 -0
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +14 -0
- package/dist/src/services/chatRecordingService.js +37 -0
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/fileSystemService.d.ts +0 -9
- package/dist/src/services/fileSystemService.js +0 -11
- package/dist/src/services/fileSystemService.js.map +1 -1
- package/dist/src/services/gitService.js +5 -0
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +28 -0
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +2 -2
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/modelConfig.golden.test.js +32 -0
- package/dist/src/services/modelConfig.golden.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +3 -0
- package/dist/src/services/modelConfigService.js +3 -2
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +110 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/modelConfigServiceTestUtils.d.ts +10 -0
- package/dist/src/services/modelConfigServiceTestUtils.js +17 -0
- package/dist/src/services/modelConfigServiceTestUtils.js.map +1 -0
- package/dist/src/services/sessionSummaryService.d.ts +28 -0
- package/dist/src/services/sessionSummaryService.js +131 -0
- package/dist/src/services/sessionSummaryService.js.map +1 -0
- package/dist/src/services/sessionSummaryService.test.d.ts +6 -0
- package/dist/src/services/sessionSummaryService.test.js +785 -0
- package/dist/src/services/sessionSummaryService.test.js.map +1 -0
- package/dist/src/services/sessionSummaryUtils.d.ts +16 -0
- package/dist/src/services/sessionSummaryUtils.js +129 -0
- package/dist/src/services/sessionSummaryUtils.js.map +1 -0
- package/dist/src/services/sessionSummaryUtils.test.d.ts +6 -0
- package/dist/src/services/sessionSummaryUtils.test.js +137 -0
- package/dist/src/services/sessionSummaryUtils.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.js +28 -22
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +46 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
- package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
- package/dist/src/telemetry/activity-detector.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +28 -5
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +67 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +3 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/config.js +2 -0
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/config.test.js +25 -0
- package/dist/src/telemetry/config.test.js.map +1 -1
- package/dist/src/telemetry/gcp-exporters.d.ts +4 -3
- package/dist/src/telemetry/gcp-exporters.js +8 -4
- package/dist/src/telemetry/gcp-exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -1
- package/dist/src/telemetry/index.js +1 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +2 -1
- package/dist/src/telemetry/loggers.js +345 -335
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +20 -5
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/sdk.d.ts +9 -2
- package/dist/src/telemetry/sdk.js +143 -17
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/sdk.test.js +130 -28
- package/dist/src/telemetry/sdk.test.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.js +26 -3
- package/dist/src/telemetry/startupProfiler.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.test.js +49 -7
- package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
- package/dist/src/telemetry/telemetry.test.js +10 -3
- package/dist/src/telemetry/telemetry.test.js.map +1 -1
- package/dist/src/telemetry/trace.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +31 -6
- package/dist/src/telemetry/types.js +47 -8
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
- package/dist/src/telemetry/uiTelemetry.js +2 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +4 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/mock-message-bus.js.map +1 -1
- package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
- package/dist/src/tools/confirmation-policy.test.js +152 -0
- package/dist/src/tools/confirmation-policy.test.js.map +1 -0
- package/dist/src/tools/edit.js +5 -0
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +2 -1
- package/dist/src/tools/mcp-client-manager.js +20 -4
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +13 -10
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +39 -3
- package/dist/src/tools/mcp-client.js +433 -168
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +648 -28
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.js +13 -0
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +25 -0
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.js +1 -0
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +22 -13
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +1 -1
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +6 -4
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +1 -1
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +2 -1
- package/dist/src/tools/shell.js +15 -1
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +2 -1
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/smart-edit.js +5 -0
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/smart-edit.test.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +2 -0
- package/dist/src/tools/tool-names.js +2 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tools.d.ts +19 -0
- package/dist/src/tools/tools.js +29 -8
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +17 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +1 -0
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/write-file.js +5 -0
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.d.ts +8 -0
- package/dist/src/utils/bfsFileSearch.js +63 -23
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +65 -1
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/checkpointUtils.d.ts +82 -0
- package/dist/src/utils/checkpointUtils.js +117 -0
- package/dist/src/utils/checkpointUtils.js.map +1 -0
- package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
- package/dist/src/utils/checkpointUtils.test.js +229 -0
- package/dist/src/utils/checkpointUtils.test.js.map +1 -0
- package/dist/src/utils/debugLogger.d.ts +3 -0
- package/dist/src/utils/debugLogger.js +27 -0
- package/dist/src/utils/debugLogger.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +4 -0
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +9 -1
- package/dist/src/utils/editor.js +23 -14
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/errors.d.ts +8 -0
- package/dist/src/utils/errors.js +39 -2
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.d.ts +6 -0
- package/dist/src/utils/errors.test.js +155 -0
- package/dist/src/utils/errors.test.js.map +1 -0
- package/dist/src/utils/extensionLoader.d.ts +2 -2
- package/dist/src/utils/extensionLoader.js +5 -6
- package/dist/src/utils/extensionLoader.js.map +1 -1
- package/dist/src/utils/extensionLoader.test.js +11 -0
- package/dist/src/utils/extensionLoader.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -1
- package/dist/src/utils/fetch.js +3 -3
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +15 -0
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +1 -1
- package/dist/src/utils/flashFallback.test.js.map +1 -1
- package/dist/src/utils/googleErrors.js +31 -18
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/googleErrors.test.js +10 -2
- package/dist/src/utils/googleErrors.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.d.ts +3 -3
- package/dist/src/utils/googleQuotaErrors.js +32 -6
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +94 -2
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +4 -0
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/pathCorrector.js +12 -2
- package/dist/src/utils/pathCorrector.js.map +1 -1
- package/dist/src/utils/pathCorrector.test.js +6 -2
- package/dist/src/utils/pathCorrector.test.js.map +1 -1
- package/dist/src/utils/retry.d.ts +11 -0
- package/dist/src/utils/retry.js +54 -13
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +170 -10
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/shell-permissions.d.ts +52 -0
- package/dist/src/utils/shell-permissions.js +188 -0
- package/dist/src/utils/shell-permissions.js.map +1 -0
- package/dist/src/utils/shell-permissions.test.d.ts +6 -0
- package/dist/src/utils/shell-permissions.test.js +347 -0
- package/dist/src/utils/shell-permissions.test.js.map +1 -0
- package/dist/src/utils/shell-utils.d.ts +10 -47
- package/dist/src/utils/shell-utils.js +1 -182
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +1 -288
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/terminalSerializer.test.js +17 -0
- package/dist/src/utils/terminalSerializer.test.js.map +1 -1
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/dist/src/utils/version.d.ts +6 -0
- package/dist/src/utils/version.js +15 -0
- package/dist/src/utils/version.js.map +1 -0
- package/dist/src/utils/version.test.d.ts +6 -0
- package/dist/src/utils/version.test.js +39 -0
- package/dist/src/utils/version.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
export declare const PREVIEW_GEMINI_MODEL = "gemini-3-pro-preview";
|
|
7
|
+
export declare const PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
|
|
7
8
|
export declare const DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
|
|
8
9
|
export declare const DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
|
|
9
10
|
export declare const DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-2.5-flash-lite";
|
|
10
|
-
export declare const
|
|
11
|
+
export declare const VALID_GEMINI_MODELS: Set<string>;
|
|
12
|
+
export declare const PREVIEW_GEMINI_MODEL_AUTO = "auto-gemini-3";
|
|
13
|
+
export declare const DEFAULT_GEMINI_MODEL_AUTO = "auto-gemini-2.5";
|
|
14
|
+
export declare const GEMINI_MODEL_ALIAS_AUTO = "auto";
|
|
11
15
|
export declare const GEMINI_MODEL_ALIAS_PRO = "pro";
|
|
12
16
|
export declare const GEMINI_MODEL_ALIAS_FLASH = "flash";
|
|
13
17
|
export declare const GEMINI_MODEL_ALIAS_FLASH_LITE = "flash-lite";
|
|
@@ -21,26 +25,44 @@ export declare const DEFAULT_THINKING_MODE = 8192;
|
|
|
21
25
|
* @param previewFeaturesEnabled A boolean indicating if preview features are enabled.
|
|
22
26
|
* @returns The resolved concrete model name.
|
|
23
27
|
*/
|
|
24
|
-
export declare function resolveModel(requestedModel: string, previewFeaturesEnabled
|
|
28
|
+
export declare function resolveModel(requestedModel: string, previewFeaturesEnabled?: boolean): string;
|
|
25
29
|
/**
|
|
26
|
-
*
|
|
30
|
+
* Resolves the appropriate model based on the classifier's decision.
|
|
27
31
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
|
|
32
|
+
* @param requestedModel The current requested model (e.g. auto-gemini-2.5).
|
|
33
|
+
* @param modelAlias The alias selected by the classifier ('flash' or 'pro').
|
|
34
|
+
* @param previewFeaturesEnabled Whether preview features are enabled.
|
|
35
|
+
* @returns The resolved concrete model name.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveClassifierModel(requestedModel: string, modelAlias: string, previewFeaturesEnabled?: boolean): string;
|
|
38
|
+
/**
|
|
39
|
+
* Determines the effective model to use.
|
|
33
40
|
*
|
|
34
|
-
* @param isInFallbackMode Whether the application is in fallback mode.
|
|
35
41
|
* @param requestedModel The model that was originally requested.
|
|
36
42
|
* @param previewFeaturesEnabled A boolean indicating if preview features are enabled.
|
|
37
43
|
* @returns The effective model name.
|
|
38
44
|
*/
|
|
39
|
-
export declare function getEffectiveModel(
|
|
45
|
+
export declare function getEffectiveModel(requestedModel: string, previewFeaturesEnabled: boolean | undefined): string;
|
|
46
|
+
export declare function getDisplayString(model: string, previewFeaturesEnabled?: boolean): string;
|
|
47
|
+
/**
|
|
48
|
+
* Checks if the model is a preview model.
|
|
49
|
+
*
|
|
50
|
+
* @param model The model name to check.
|
|
51
|
+
* @returns True if the model is a preview model.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isPreviewModel(model: string): boolean;
|
|
40
54
|
/**
|
|
41
55
|
* Checks if the model is a Gemini 2.x model.
|
|
42
56
|
*
|
|
43
57
|
* @param model The model name to check.
|
|
44
|
-
* @returns True if the model is a Gemini
|
|
58
|
+
* @returns True if the model is a Gemini-2.x model.
|
|
45
59
|
*/
|
|
46
60
|
export declare function isGemini2Model(model: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Checks if the model supports multimodal function responses (multimodal data nested within function response).
|
|
63
|
+
* This is supported in Gemini 3.
|
|
64
|
+
*
|
|
65
|
+
* @param model The model name to check.
|
|
66
|
+
* @returns True if the model supports multimodal function responses.
|
|
67
|
+
*/
|
|
68
|
+
export declare function supportsMultimodalFunctionResponse(model: string): boolean;
|
|
@@ -4,11 +4,21 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
export const PREVIEW_GEMINI_MODEL = 'gemini-3-pro-preview';
|
|
7
|
+
export const PREVIEW_GEMINI_FLASH_MODEL = 'gemini-3-flash-preview';
|
|
7
8
|
export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro';
|
|
8
9
|
export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash';
|
|
9
10
|
export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite';
|
|
10
|
-
export const
|
|
11
|
+
export const VALID_GEMINI_MODELS = new Set([
|
|
12
|
+
PREVIEW_GEMINI_MODEL,
|
|
13
|
+
PREVIEW_GEMINI_FLASH_MODEL,
|
|
14
|
+
DEFAULT_GEMINI_MODEL,
|
|
15
|
+
DEFAULT_GEMINI_FLASH_MODEL,
|
|
16
|
+
DEFAULT_GEMINI_FLASH_LITE_MODEL,
|
|
17
|
+
]);
|
|
18
|
+
export const PREVIEW_GEMINI_MODEL_AUTO = 'auto-gemini-3';
|
|
19
|
+
export const DEFAULT_GEMINI_MODEL_AUTO = 'auto-gemini-2.5';
|
|
11
20
|
// Model aliases for user convenience.
|
|
21
|
+
export const GEMINI_MODEL_ALIAS_AUTO = 'auto';
|
|
12
22
|
export const GEMINI_MODEL_ALIAS_PRO = 'pro';
|
|
13
23
|
export const GEMINI_MODEL_ALIAS_FLASH = 'flash';
|
|
14
24
|
export const GEMINI_MODEL_ALIAS_FLASH_LITE = 'flash-lite';
|
|
@@ -23,16 +33,23 @@ export const DEFAULT_THINKING_MODE = 8192;
|
|
|
23
33
|
* @param previewFeaturesEnabled A boolean indicating if preview features are enabled.
|
|
24
34
|
* @returns The resolved concrete model name.
|
|
25
35
|
*/
|
|
26
|
-
export function resolveModel(requestedModel, previewFeaturesEnabled) {
|
|
36
|
+
export function resolveModel(requestedModel, previewFeaturesEnabled = false) {
|
|
27
37
|
switch (requestedModel) {
|
|
28
|
-
case
|
|
38
|
+
case PREVIEW_GEMINI_MODEL_AUTO: {
|
|
39
|
+
return PREVIEW_GEMINI_MODEL;
|
|
40
|
+
}
|
|
41
|
+
case DEFAULT_GEMINI_MODEL_AUTO: {
|
|
42
|
+
return DEFAULT_GEMINI_MODEL;
|
|
43
|
+
}
|
|
29
44
|
case GEMINI_MODEL_ALIAS_PRO: {
|
|
30
45
|
return previewFeaturesEnabled
|
|
31
46
|
? PREVIEW_GEMINI_MODEL
|
|
32
47
|
: DEFAULT_GEMINI_MODEL;
|
|
33
48
|
}
|
|
34
49
|
case GEMINI_MODEL_ALIAS_FLASH: {
|
|
35
|
-
return
|
|
50
|
+
return previewFeaturesEnabled
|
|
51
|
+
? PREVIEW_GEMINI_FLASH_MODEL
|
|
52
|
+
: DEFAULT_GEMINI_FLASH_MODEL;
|
|
36
53
|
}
|
|
37
54
|
case GEMINI_MODEL_ALIAS_FLASH_LITE: {
|
|
38
55
|
return DEFAULT_GEMINI_FLASH_LITE_MODEL;
|
|
@@ -43,40 +60,81 @@ export function resolveModel(requestedModel, previewFeaturesEnabled) {
|
|
|
43
60
|
}
|
|
44
61
|
}
|
|
45
62
|
/**
|
|
46
|
-
*
|
|
63
|
+
* Resolves the appropriate model based on the classifier's decision.
|
|
47
64
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
|
|
65
|
+
* @param requestedModel The current requested model (e.g. auto-gemini-2.5).
|
|
66
|
+
* @param modelAlias The alias selected by the classifier ('flash' or 'pro').
|
|
67
|
+
* @param previewFeaturesEnabled Whether preview features are enabled.
|
|
68
|
+
* @returns The resolved concrete model name.
|
|
69
|
+
*/
|
|
70
|
+
export function resolveClassifierModel(requestedModel, modelAlias, previewFeaturesEnabled = false) {
|
|
71
|
+
if (modelAlias === GEMINI_MODEL_ALIAS_FLASH) {
|
|
72
|
+
if (requestedModel === DEFAULT_GEMINI_MODEL_AUTO ||
|
|
73
|
+
requestedModel === DEFAULT_GEMINI_MODEL) {
|
|
74
|
+
return DEFAULT_GEMINI_FLASH_MODEL;
|
|
75
|
+
}
|
|
76
|
+
if (requestedModel === PREVIEW_GEMINI_MODEL_AUTO ||
|
|
77
|
+
requestedModel === PREVIEW_GEMINI_MODEL) {
|
|
78
|
+
return PREVIEW_GEMINI_FLASH_MODEL;
|
|
79
|
+
}
|
|
80
|
+
return resolveModel(GEMINI_MODEL_ALIAS_FLASH, previewFeaturesEnabled);
|
|
81
|
+
}
|
|
82
|
+
return resolveModel(requestedModel, previewFeaturesEnabled);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Determines the effective model to use.
|
|
53
86
|
*
|
|
54
|
-
* @param isInFallbackMode Whether the application is in fallback mode.
|
|
55
87
|
* @param requestedModel The model that was originally requested.
|
|
56
88
|
* @param previewFeaturesEnabled A boolean indicating if preview features are enabled.
|
|
57
89
|
* @returns The effective model name.
|
|
58
90
|
*/
|
|
59
|
-
export function getEffectiveModel(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
91
|
+
export function getEffectiveModel(requestedModel, previewFeaturesEnabled) {
|
|
92
|
+
return resolveModel(requestedModel, previewFeaturesEnabled);
|
|
93
|
+
}
|
|
94
|
+
export function getDisplayString(model, previewFeaturesEnabled = false) {
|
|
95
|
+
switch (model) {
|
|
96
|
+
case PREVIEW_GEMINI_MODEL_AUTO:
|
|
97
|
+
return 'Auto (Gemini 3)';
|
|
98
|
+
case DEFAULT_GEMINI_MODEL_AUTO:
|
|
99
|
+
return 'Auto (Gemini 2.5)';
|
|
100
|
+
case GEMINI_MODEL_ALIAS_PRO:
|
|
101
|
+
return `Manual (${previewFeaturesEnabled ? PREVIEW_GEMINI_MODEL : DEFAULT_GEMINI_MODEL})`;
|
|
102
|
+
case GEMINI_MODEL_ALIAS_FLASH:
|
|
103
|
+
return `Manual (${previewFeaturesEnabled
|
|
104
|
+
? PREVIEW_GEMINI_FLASH_MODEL
|
|
105
|
+
: DEFAULT_GEMINI_FLASH_MODEL})`;
|
|
106
|
+
default:
|
|
107
|
+
return `Manual (${model})`;
|
|
69
108
|
}
|
|
70
|
-
|
|
71
|
-
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Checks if the model is a preview model.
|
|
112
|
+
*
|
|
113
|
+
* @param model The model name to check.
|
|
114
|
+
* @returns True if the model is a preview model.
|
|
115
|
+
*/
|
|
116
|
+
export function isPreviewModel(model) {
|
|
117
|
+
return (model === PREVIEW_GEMINI_MODEL ||
|
|
118
|
+
model === PREVIEW_GEMINI_FLASH_MODEL ||
|
|
119
|
+
model === PREVIEW_GEMINI_MODEL_AUTO);
|
|
72
120
|
}
|
|
73
121
|
/**
|
|
74
122
|
* Checks if the model is a Gemini 2.x model.
|
|
75
123
|
*
|
|
76
124
|
* @param model The model name to check.
|
|
77
|
-
* @returns True if the model is a Gemini
|
|
125
|
+
* @returns True if the model is a Gemini-2.x model.
|
|
78
126
|
*/
|
|
79
127
|
export function isGemini2Model(model) {
|
|
80
128
|
return /^gemini-2(\.|$)/.test(model);
|
|
81
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Checks if the model supports multimodal function responses (multimodal data nested within function response).
|
|
132
|
+
* This is supported in Gemini 3.
|
|
133
|
+
*
|
|
134
|
+
* @param model The model name to check.
|
|
135
|
+
* @returns True if the model supports multimodal function responses.
|
|
136
|
+
*/
|
|
137
|
+
export function supportsMultimodalFunctionResponse(model) {
|
|
138
|
+
return model.startsWith('gemini-3-');
|
|
139
|
+
}
|
|
82
140
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,uBAAuB,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/config/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,113 +4,107 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect } from 'vitest';
|
|
7
|
-
import { getEffectiveModel, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, } from './models.js';
|
|
7
|
+
import { getEffectiveModel, resolveClassifierModel, isGemini2Model, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, supportsMultimodalFunctionResponse, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, } from './models.js';
|
|
8
|
+
describe('supportsMultimodalFunctionResponse', () => {
|
|
9
|
+
it('should return true for gemini-3 model', () => {
|
|
10
|
+
expect(supportsMultimodalFunctionResponse('gemini-3-pro')).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
it('should return false for gemini-2 models', () => {
|
|
13
|
+
expect(supportsMultimodalFunctionResponse('gemini-2.5-pro')).toBe(false);
|
|
14
|
+
expect(supportsMultimodalFunctionResponse('gemini-2.5-flash')).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
it('should return false for other models', () => {
|
|
17
|
+
expect(supportsMultimodalFunctionResponse('some-other-model')).toBe(false);
|
|
18
|
+
expect(supportsMultimodalFunctionResponse('')).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
8
21
|
describe('getEffectiveModel', () => {
|
|
9
|
-
describe('
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
expect(model).toBe(DEFAULT_GEMINI_MODEL);
|
|
22
|
+
describe('delegation to resolveModel', () => {
|
|
23
|
+
it('should return the Preview Pro model when auto-gemini-3 is requested', () => {
|
|
24
|
+
const model = getEffectiveModel(PREVIEW_GEMINI_MODEL_AUTO, false);
|
|
25
|
+
expect(model).toBe(PREVIEW_GEMINI_MODEL);
|
|
14
26
|
});
|
|
15
|
-
it('should return the
|
|
16
|
-
const model = getEffectiveModel(
|
|
17
|
-
expect(model).toBe(
|
|
27
|
+
it('should return the Default Pro model when auto-gemini-2.5 is requested', () => {
|
|
28
|
+
const model = getEffectiveModel(DEFAULT_GEMINI_MODEL_AUTO, false);
|
|
29
|
+
expect(model).toBe(DEFAULT_GEMINI_MODEL);
|
|
18
30
|
});
|
|
19
|
-
it('should return the
|
|
20
|
-
|
|
21
|
-
expect(
|
|
31
|
+
it('should return the requested model as-is for explicit specific models', () => {
|
|
32
|
+
expect(getEffectiveModel(DEFAULT_GEMINI_MODEL, false)).toBe(DEFAULT_GEMINI_MODEL);
|
|
33
|
+
expect(getEffectiveModel(DEFAULT_GEMINI_FLASH_MODEL, false)).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
34
|
+
expect(getEffectiveModel(DEFAULT_GEMINI_FLASH_LITE_MODEL, false)).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
|
|
22
35
|
});
|
|
23
36
|
it('should return a custom model name when requested', () => {
|
|
24
37
|
const customModel = 'custom-model-v1';
|
|
25
|
-
const model = getEffectiveModel(
|
|
38
|
+
const model = getEffectiveModel(customModel, false);
|
|
26
39
|
expect(model).toBe(customModel);
|
|
27
40
|
});
|
|
28
41
|
describe('with preview features', () => {
|
|
29
42
|
it('should return the preview model when pro alias is requested', () => {
|
|
30
|
-
const model = getEffectiveModel(
|
|
43
|
+
const model = getEffectiveModel(GEMINI_MODEL_ALIAS_PRO, true);
|
|
31
44
|
expect(model).toBe(PREVIEW_GEMINI_MODEL);
|
|
32
45
|
});
|
|
33
46
|
it('should return the default pro model when pro alias is requested and preview is off', () => {
|
|
34
|
-
const model = getEffectiveModel(
|
|
47
|
+
const model = getEffectiveModel(GEMINI_MODEL_ALIAS_PRO, false);
|
|
35
48
|
expect(model).toBe(DEFAULT_GEMINI_MODEL);
|
|
36
49
|
});
|
|
37
50
|
it('should return the flash model when flash is requested and preview is on', () => {
|
|
38
|
-
const model = getEffectiveModel(
|
|
39
|
-
expect(model).toBe(
|
|
51
|
+
const model = getEffectiveModel(GEMINI_MODEL_ALIAS_FLASH, true);
|
|
52
|
+
expect(model).toBe(PREVIEW_GEMINI_FLASH_MODEL);
|
|
40
53
|
});
|
|
41
54
|
it('should return the flash model when lite is requested and preview is on', () => {
|
|
42
|
-
const model = getEffectiveModel(
|
|
55
|
+
const model = getEffectiveModel(GEMINI_MODEL_ALIAS_FLASH_LITE, true);
|
|
43
56
|
expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
|
|
44
57
|
});
|
|
45
58
|
it('should return the flash model when the flash model name is explicitly requested and preview is on', () => {
|
|
46
|
-
const model = getEffectiveModel(
|
|
59
|
+
const model = getEffectiveModel(DEFAULT_GEMINI_FLASH_MODEL, true);
|
|
47
60
|
expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
48
61
|
});
|
|
49
62
|
it('should return the lite model when the lite model name is requested and preview is on', () => {
|
|
50
|
-
const model = getEffectiveModel(
|
|
63
|
+
const model = getEffectiveModel(DEFAULT_GEMINI_FLASH_LITE_MODEL, true);
|
|
51
64
|
expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
|
|
52
65
|
});
|
|
53
66
|
it('should return the default gemini model when the model is explicitly set and preview is on', () => {
|
|
54
|
-
const model = getEffectiveModel(
|
|
67
|
+
const model = getEffectiveModel(DEFAULT_GEMINI_MODEL, true);
|
|
55
68
|
expect(model).toBe(DEFAULT_GEMINI_MODEL);
|
|
56
69
|
});
|
|
57
70
|
});
|
|
58
71
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
});
|
|
96
|
-
it('should downgrade the default Gemini model to the Flash model', () => {
|
|
97
|
-
const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_MODEL, true);
|
|
98
|
-
expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
99
|
-
});
|
|
100
|
-
it('should return the default Flash model when requested', () => {
|
|
101
|
-
const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_MODEL, true);
|
|
102
|
-
expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
103
|
-
});
|
|
104
|
-
it('should return the default Lite model when requested', () => {
|
|
105
|
-
const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_LITE_MODEL, true);
|
|
106
|
-
expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
|
|
107
|
-
});
|
|
108
|
-
it('should downgrade any other custom model to the Flash model', () => {
|
|
109
|
-
const customModel = 'custom-model-v1-unlisted';
|
|
110
|
-
const model = getEffectiveModel(isInFallbackMode, customModel, true);
|
|
111
|
-
expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
112
|
-
});
|
|
113
|
-
});
|
|
72
|
+
});
|
|
73
|
+
describe('isGemini2Model', () => {
|
|
74
|
+
it('should return true for gemini-2.5-pro', () => {
|
|
75
|
+
expect(isGemini2Model('gemini-2.5-pro')).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
it('should return true for gemini-2.5-flash', () => {
|
|
78
|
+
expect(isGemini2Model('gemini-2.5-flash')).toBe(true);
|
|
79
|
+
});
|
|
80
|
+
it('should return true for gemini-2.0-flash', () => {
|
|
81
|
+
expect(isGemini2Model('gemini-2.0-flash')).toBe(true);
|
|
82
|
+
});
|
|
83
|
+
it('should return false for gemini-1.5-pro', () => {
|
|
84
|
+
expect(isGemini2Model('gemini-1.5-pro')).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
it('should return false for gemini-3-pro', () => {
|
|
87
|
+
expect(isGemini2Model('gemini-3-pro')).toBe(false);
|
|
88
|
+
});
|
|
89
|
+
it('should return false for arbitrary strings', () => {
|
|
90
|
+
expect(isGemini2Model('gpt-4')).toBe(false);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
describe('resolveClassifierModel', () => {
|
|
94
|
+
it('should return flash model when alias is flash', () => {
|
|
95
|
+
expect(resolveClassifierModel(DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH)).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
96
|
+
expect(resolveClassifierModel(PREVIEW_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH)).toBe(PREVIEW_GEMINI_FLASH_MODEL);
|
|
97
|
+
});
|
|
98
|
+
it('should return pro model when alias is pro', () => {
|
|
99
|
+
expect(resolveClassifierModel(DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_PRO)).toBe(DEFAULT_GEMINI_MODEL);
|
|
100
|
+
expect(resolveClassifierModel(PREVIEW_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_PRO)).toBe(PREVIEW_GEMINI_MODEL);
|
|
101
|
+
});
|
|
102
|
+
it('should handle preview features being enabled', () => {
|
|
103
|
+
// If preview is enabled, resolving 'flash' without context (fallback) might switch to preview flash,
|
|
104
|
+
// but here we test explicit auto models which should stick to their families if possible?
|
|
105
|
+
// Actually our logic forces DEFAULT_GEMINI_FLASH_MODEL for DEFAULT_GEMINI_MODEL_AUTO even if preview is on,
|
|
106
|
+
// because the USER requested 2.5 explicitly via "auto-gemini-2.5".
|
|
107
|
+
expect(resolveClassifierModel(DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH, true)).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
114
108
|
});
|
|
115
109
|
});
|
|
116
110
|
//# sourceMappingURL=models.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.test.js","sourceRoot":"","sources":["../../../src/config/models.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"models.test.js","sourceRoot":"","sources":["../../../src/config/models.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,7 @@ export class MessageBus extends EventEmitter {
|
|
|
141
141
|
// Subscribe to responses
|
|
142
142
|
this.subscribe(responseType, responseHandler);
|
|
143
143
|
// Publish the request with correlation ID
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
144
145
|
this.publish({ ...request, correlationId });
|
|
145
146
|
});
|
|
146
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-bus.js","sourceRoot":"","sources":["../../../src/confirmation-bus/message-bus.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"message-bus.js","sourceRoot":"","sources":["../../../src/confirmation-bus/message-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,10 @@ export interface ToolConfirmationResponse {
|
|
|
34
34
|
export interface UpdatePolicy {
|
|
35
35
|
type: MessageBusType.UPDATE_POLICY;
|
|
36
36
|
toolName: string;
|
|
37
|
+
persist?: boolean;
|
|
38
|
+
argsPattern?: string;
|
|
39
|
+
commandPrefix?: string | string[];
|
|
40
|
+
mcpName?: string;
|
|
37
41
|
}
|
|
38
42
|
export interface ToolPolicyRejection {
|
|
39
43
|
type: MessageBusType.TOOL_POLICY_REJECTION;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import type { Content, Part, GenerateContentResponse } from '@google/genai';
|
|
7
7
|
import type { Config } from '../config/config.js';
|
|
8
8
|
import type { ContentGenerator } from './contentGenerator.js';
|
|
9
|
+
import type { AuthType } from './contentGenerator.js';
|
|
9
10
|
import type { ModelConfigKey } from '../services/modelConfigService.js';
|
|
10
11
|
/**
|
|
11
12
|
* Options for the generateJson utility function.
|
|
@@ -63,7 +64,8 @@ export interface GenerateContentOptions {
|
|
|
63
64
|
export declare class BaseLlmClient {
|
|
64
65
|
private readonly contentGenerator;
|
|
65
66
|
private readonly config;
|
|
66
|
-
|
|
67
|
+
private readonly authType?;
|
|
68
|
+
constructor(contentGenerator: ContentGenerator, config: Config, authType?: AuthType | undefined);
|
|
67
69
|
generateJson(options: GenerateJsonOptions): Promise<Record<string, unknown>>;
|
|
68
70
|
generateEmbedding(texts: string[]): Promise<number[][]>;
|
|
69
71
|
private cleanJsonResponse;
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { handleFallback } from '../fallback/handler.js';
|
|
6
7
|
import { getResponseText } from '../utils/partUtils.js';
|
|
7
8
|
import { reportError } from '../utils/errorReporting.js';
|
|
8
9
|
import { getErrorMessage } from '../utils/errors.js';
|
|
9
10
|
import { logMalformedJsonResponse } from '../telemetry/loggers.js';
|
|
10
11
|
import { MalformedJsonResponseEvent } from '../telemetry/types.js';
|
|
11
12
|
import { retryWithBackoff } from '../utils/retry.js';
|
|
13
|
+
import { applyModelSelection, createAvailabilityContextProvider, } from '../availability/policyHelpers.js';
|
|
12
14
|
const DEFAULT_MAX_ATTEMPTS = 5;
|
|
13
15
|
/**
|
|
14
16
|
* A client dedicated to stateless, utility-focused LLM calls.
|
|
@@ -16,9 +18,11 @@ const DEFAULT_MAX_ATTEMPTS = 5;
|
|
|
16
18
|
export class BaseLlmClient {
|
|
17
19
|
contentGenerator;
|
|
18
20
|
config;
|
|
19
|
-
|
|
21
|
+
authType;
|
|
22
|
+
constructor(contentGenerator, config, authType) {
|
|
20
23
|
this.contentGenerator = contentGenerator;
|
|
21
24
|
this.config = config;
|
|
25
|
+
this.authType = authType;
|
|
22
26
|
}
|
|
23
27
|
async generateJson(options) {
|
|
24
28
|
const { schema, modelConfigKey, contents, systemInstruction, abortSignal, promptId, maxAttempts, } = options;
|
|
@@ -103,11 +107,44 @@ export class BaseLlmClient {
|
|
|
103
107
|
}
|
|
104
108
|
async _generateWithRetry(requestParams, promptId, maxAttempts, shouldRetryOnContent, errorContext) {
|
|
105
109
|
const abortSignal = requestParams.config?.abortSignal;
|
|
110
|
+
// Define callback to fetch context dynamically since active model may get updated during retry loop
|
|
111
|
+
const getAvailabilityContext = createAvailabilityContextProvider(this.config, () => requestParams.model);
|
|
112
|
+
const { model, config: newConfig, maxAttempts: availabilityMaxAttempts, } = applyModelSelection(this.config, requestParams.model, requestParams.config);
|
|
113
|
+
requestParams.model = model;
|
|
114
|
+
if (newConfig) {
|
|
115
|
+
requestParams.config = newConfig;
|
|
116
|
+
}
|
|
117
|
+
if (abortSignal) {
|
|
118
|
+
requestParams.config = { ...requestParams.config, abortSignal };
|
|
119
|
+
}
|
|
106
120
|
try {
|
|
107
|
-
const apiCall = () =>
|
|
121
|
+
const apiCall = () => {
|
|
122
|
+
// If availability is enabled, ensure we use the current active model
|
|
123
|
+
// in case a fallback occurred in a previous attempt.
|
|
124
|
+
if (this.config.isModelAvailabilityServiceEnabled()) {
|
|
125
|
+
const activeModel = this.config.getActiveModel();
|
|
126
|
+
if (activeModel !== requestParams.model) {
|
|
127
|
+
requestParams.model = activeModel;
|
|
128
|
+
// Re-resolve config if model changed during retry
|
|
129
|
+
const { generateContentConfig } = this.config.modelConfigService.getResolvedConfig({
|
|
130
|
+
model: activeModel,
|
|
131
|
+
});
|
|
132
|
+
requestParams.config = {
|
|
133
|
+
...requestParams.config,
|
|
134
|
+
...generateContentConfig,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return this.contentGenerator.generateContent(requestParams, promptId);
|
|
139
|
+
};
|
|
108
140
|
return await retryWithBackoff(apiCall, {
|
|
109
141
|
shouldRetryOnContent,
|
|
110
|
-
maxAttempts: maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
|
|
142
|
+
maxAttempts: availabilityMaxAttempts ?? maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
|
|
143
|
+
getAvailabilityContext,
|
|
144
|
+
onPersistent429: this.config.isInteractive()
|
|
145
|
+
? (authType, error) => handleFallback(this.config, requestParams.model, authType, error)
|
|
146
|
+
: undefined,
|
|
147
|
+
authType: this.authType ?? this.config.getContentGeneratorConfig()?.authType,
|
|
111
148
|
});
|
|
112
149
|
}
|
|
113
150
|
catch (error) {
|