@machina.ai/cell-cli-core 1.4.0-rc2 → 1.6.1-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 +6 -4
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/package.json +6 -2
- package/dist/src/code_assist/codeAssist.js +1 -1
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/converter.d.ts +1 -0
- package/dist/src/code_assist/converter.js +1 -0
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js +10 -0
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/oauth-credential-storage.d.ts +25 -0
- package/dist/src/code_assist/oauth-credential-storage.js +109 -0
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
- package/dist/src/code_assist/oauth-credential-storage.test.js +136 -0
- package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -0
- package/dist/src/code_assist/oauth2.js +28 -2
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +674 -536
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +1 -1
- package/dist/src/code_assist/server.js +24 -1
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +25 -0
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +17 -2
- package/dist/src/config/config.d.ts +62 -5
- package/dist/src/config/config.js +154 -42
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +235 -137
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/models.d.ts +15 -0
- package/dist/src/config/models.js +27 -0
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.d.ts +6 -0
- package/dist/src/config/models.test.js +55 -0
- package/dist/src/config/models.test.js.map +1 -0
- package/dist/src/config/storage.d.ts +2 -0
- package/dist/src/config/storage.js +6 -1
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +4 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/confirmation-bus/index.d.ts +7 -0
- package/dist/src/confirmation-bus/index.js +8 -0
- package/dist/src/confirmation-bus/index.js.map +1 -0
- package/dist/src/confirmation-bus/message-bus.d.ts +17 -0
- package/dist/src/confirmation-bus/message-bus.js +81 -0
- package/dist/src/confirmation-bus/message-bus.js.map +1 -0
- package/dist/src/confirmation-bus/message-bus.test.d.ts +6 -0
- package/dist/src/confirmation-bus/message-bus.test.js +164 -0
- package/dist/src/confirmation-bus/message-bus.test.js.map +1 -0
- package/dist/src/confirmation-bus/types.d.ts +38 -0
- package/dist/src/confirmation-bus/types.js +15 -0
- package/dist/src/confirmation-bus/types.js.map +1 -0
- package/dist/src/core/baseLlmClient.d.ts +46 -0
- package/dist/src/core/baseLlmClient.js +112 -0
- package/dist/src/core/baseLlmClient.js.map +1 -0
- package/dist/src/core/baseLlmClient.test.d.ts +6 -0
- package/dist/src/core/baseLlmClient.test.js +253 -0
- package/dist/src/core/baseLlmClient.test.js.map +1 -0
- package/dist/src/core/client.d.ts +8 -18
- package/dist/src/core/client.js +108 -227
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +269 -491
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +0 -1
- package/dist/src/core/contentGenerator.js +0 -4
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +1 -3
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +8 -3
- package/dist/src/core/coreToolScheduler.js +118 -8
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +314 -5
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +15 -38
- package/dist/src/core/geminiChat.js +108 -257
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +429 -491
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +7 -10
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +57 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.d.ts +5 -0
- package/dist/src/core/prompts.js +64 -43
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +146 -17
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/subagent.js +2 -4
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/core/subagent.test.js +12 -13
- package/dist/src/core/subagent.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +3 -1
- package/dist/src/core/turn.js +2 -2
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +18 -18
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/fallback/handler.d.ts +7 -0
- package/dist/src/fallback/handler.js +51 -0
- package/dist/src/fallback/handler.js.map +1 -0
- package/dist/src/fallback/handler.test.d.ts +6 -0
- package/dist/src/fallback/handler.test.js +130 -0
- package/dist/src/fallback/handler.test.js.map +1 -0
- package/dist/src/fallback/types.d.ts +14 -0
- package/dist/src/fallback/types.js +7 -0
- package/dist/src/fallback/types.js.map +1 -0
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/ide/constants.d.ts +3 -0
- package/dist/src/ide/constants.js +3 -0
- package/dist/src/ide/constants.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +51 -13
- package/dist/src/ide/ide-client.js +241 -35
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-client.test.js +236 -0
- package/dist/src/ide/ide-client.test.js.map +1 -1
- package/dist/src/ide/ide-installer.js +8 -2
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +13 -2
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/ide/ideContext.d.ts +35 -377
- package/dist/src/ide/ideContext.js +60 -107
- package/dist/src/ide/ideContext.js.map +1 -1
- package/dist/src/ide/ideContext.test.js +152 -24
- package/dist/src/ide/ideContext.test.js.map +1 -1
- package/dist/src/ide/process-utils.js +8 -1
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/ide/types.d.ts +486 -0
- package/dist/src/ide/types.js +138 -0
- package/dist/src/ide/types.js.map +1 -0
- package/dist/src/index.d.ts +6 -1
- package/dist/src/index.js +6 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +1 -0
- package/dist/src/mcp/oauth-provider.js +22 -17
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +149 -13
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +10 -6
- package/dist/src/mcp/oauth-token-storage.js +48 -16
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.test.js +254 -163
- package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.js +1 -0
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/token-storage/index.d.ts +11 -0
- package/dist/src/mcp/token-storage/index.js +12 -0
- package/dist/src/mcp/token-storage/index.js.map +1 -0
- package/dist/src/output/json-formatter.d.ts +11 -0
- package/dist/src/output/json-formatter.js +30 -0
- package/dist/src/output/json-formatter.js.map +1 -0
- package/dist/src/output/json-formatter.test.d.ts +6 -0
- package/dist/src/output/json-formatter.test.js +266 -0
- package/dist/src/output/json-formatter.test.js.map +1 -0
- package/dist/src/output/types.d.ts +20 -0
- package/dist/src/output/types.js +11 -0
- package/dist/src/output/types.js.map +1 -0
- package/dist/src/policy/index.d.ts +7 -0
- package/dist/src/policy/index.js +8 -0
- package/dist/src/policy/index.js.map +1 -0
- package/dist/src/policy/policy-engine.d.ts +30 -0
- package/dist/src/policy/policy-engine.js +83 -0
- package/dist/src/policy/policy-engine.js.map +1 -0
- package/dist/src/policy/policy-engine.test.d.ts +6 -0
- package/dist/src/policy/policy-engine.test.js +470 -0
- package/dist/src/policy/policy-engine.test.js.map +1 -0
- package/dist/src/policy/stable-stringify.d.ts +58 -0
- package/dist/src/policy/stable-stringify.js +122 -0
- package/dist/src/policy/stable-stringify.js.map +1 -0
- package/dist/src/policy/types.d.ts +47 -0
- package/dist/src/policy/types.js +12 -0
- package/dist/src/policy/types.js.map +1 -0
- package/dist/src/routing/modelRouterService.d.ts +23 -0
- package/dist/src/routing/modelRouterService.js +70 -0
- package/dist/src/routing/modelRouterService.js.map +1 -0
- package/dist/src/routing/modelRouterService.test.d.ts +6 -0
- package/dist/src/routing/modelRouterService.test.js +98 -0
- package/dist/src/routing/modelRouterService.test.js.map +1 -0
- package/dist/src/routing/routingStrategy.d.ts +62 -0
- package/dist/src/routing/routingStrategy.js +7 -0
- package/dist/src/routing/routingStrategy.js.map +1 -0
- package/dist/src/routing/strategies/classifierStrategy.d.ts +12 -0
- package/dist/src/routing/strategies/classifierStrategy.js +173 -0
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -0
- package/dist/src/routing/strategies/classifierStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/classifierStrategy.test.js +192 -0
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -0
- package/dist/src/routing/strategies/compositeStrategy.d.ts +26 -0
- package/dist/src/routing/strategies/compositeStrategy.js +67 -0
- package/dist/src/routing/strategies/compositeStrategy.js.map +1 -0
- package/dist/src/routing/strategies/compositeStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/compositeStrategy.test.js +123 -0
- package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -0
- package/dist/src/routing/strategies/defaultStrategy.d.ts +12 -0
- package/dist/src/routing/strategies/defaultStrategy.js +20 -0
- package/dist/src/routing/strategies/defaultStrategy.js.map +1 -0
- package/dist/src/routing/strategies/defaultStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/defaultStrategy.test.js +26 -0
- package/dist/src/routing/strategies/defaultStrategy.test.js.map +1 -0
- package/dist/src/routing/strategies/fallbackStrategy.d.ts +12 -0
- package/dist/src/routing/strategies/fallbackStrategy.js +25 -0
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -0
- package/dist/src/routing/strategies/fallbackStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/fallbackStrategy.test.js +55 -0
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -0
- package/dist/src/routing/strategies/overrideStrategy.d.ts +15 -0
- package/dist/src/routing/strategies/overrideStrategy.js +28 -0
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -0
- package/dist/src/routing/strategies/overrideStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/overrideStrategy.test.js +42 -0
- package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -0
- package/dist/src/services/chatRecordingService.d.ts +2 -1
- package/dist/src/services/chatRecordingService.js +3 -3
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +8 -3
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.d.ts +10 -0
- package/dist/src/services/fileDiscoveryService.js +31 -17
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/services/gitService.js +9 -12
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +10 -20
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.d.ts +5 -0
- package/dist/src/services/loopDetectionService.js +36 -20
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +41 -12
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +34 -2
- package/dist/src/services/shellExecutionService.js +192 -43
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +184 -55
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +14 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +107 -5
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +82 -5
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +13 -2
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +33 -2
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +7 -0
- package/dist/src/telemetry/constants.js +7 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/gcp-exporters.d.ts +34 -0
- package/dist/src/telemetry/gcp-exporters.js +117 -0
- package/dist/src/telemetry/gcp-exporters.js.map +1 -0
- package/dist/src/telemetry/gcp-exporters.test.d.ts +6 -0
- package/dist/src/telemetry/gcp-exporters.test.js +318 -0
- package/dist/src/telemetry/gcp-exporters.test.js.map +1 -0
- package/dist/src/telemetry/high-water-mark-tracker.d.ts +43 -0
- package/dist/src/telemetry/high-water-mark-tracker.js +88 -0
- package/dist/src/telemetry/high-water-mark-tracker.js.map +1 -0
- package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +6 -0
- package/dist/src/telemetry/high-water-mark-tracker.test.js +152 -0
- package/dist/src/telemetry/high-water-mark-tracker.test.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +5 -2
- package/dist/src/telemetry/index.js +5 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +8 -1
- package/dist/src/telemetry/loggers.js +114 -7
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +232 -39
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +3 -1
- package/dist/src/telemetry/metrics.js +32 -3
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +42 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/rate-limiter.d.ts +48 -0
- package/dist/src/telemetry/rate-limiter.js +100 -0
- package/dist/src/telemetry/rate-limiter.js.map +1 -0
- package/dist/src/telemetry/rate-limiter.test.d.ts +6 -0
- package/dist/src/telemetry/rate-limiter.test.js +207 -0
- package/dist/src/telemetry/rate-limiter.test.js.map +1 -0
- package/dist/src/telemetry/sdk.js +19 -1
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/sdk.test.js +95 -0
- package/dist/src/telemetry/sdk.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +60 -3
- package/dist/src/telemetry/types.js +93 -3
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/edit.js +12 -5
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +120 -9
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +5 -1
- package/dist/src/tools/glob.js +24 -17
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +51 -0
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/ls.js +19 -32
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +140 -280
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.js +5 -21
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client.js +5 -5
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.js +30 -2
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +117 -0
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +7 -2
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +29 -0
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +1 -1
- package/dist/src/tools/read-many-files.js +17 -49
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +8 -0
- package/dist/src/tools/ripGrep.js +26 -1
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +107 -5
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +12 -2
- package/dist/src/tools/shell.js +20 -27
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +33 -68
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/smart-edit.d.ts +0 -1
- package/dist/src/tools/smart-edit.js +12 -19
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/smart-edit.test.js +68 -9
- package/dist/src/tools/smart-edit.test.js.map +1 -1
- package/dist/src/tools/tool-registry.js +1 -0
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +8 -5
- package/dist/src/tools/tools.js +9 -2
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/write-file.js +4 -5
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +94 -10
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.js +11 -5
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/editCorrector.d.ts +7 -6
- package/dist/src/utils/editCorrector.js +61 -18
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +30 -79
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.js +31 -44
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +61 -75
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/errorParsing.js +2 -2
- package/dist/src/utils/errorParsing.js.map +1 -1
- package/dist/src/utils/errorParsing.test.js +7 -7
- package/dist/src/utils/errorParsing.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +6 -0
- package/dist/src/utils/errors.js +10 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +1 -0
- package/dist/src/utils/fileUtils.js +10 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +34 -9
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/crawler.test.js +1 -1
- package/dist/src/utils/filesearch/crawler.test.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.test.js +1 -1
- package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
- package/dist/src/utils/filesearch/ignore.test.js +1 -1
- package/dist/src/utils/filesearch/ignore.test.js.map +1 -1
- package/dist/src/utils/flashFallback.test.d.ts +6 -0
- package/dist/src/utils/{flashFallback.integration.test.js → flashFallback.test.js} +31 -27
- package/dist/src/utils/flashFallback.test.js.map +1 -0
- package/dist/src/utils/geminiIgnoreParser.d.ts +18 -0
- package/dist/src/utils/geminiIgnoreParser.js +61 -0
- package/dist/src/utils/geminiIgnoreParser.js.map +1 -0
- package/dist/src/utils/geminiIgnoreParser.test.d.ts +6 -0
- package/dist/src/utils/geminiIgnoreParser.test.js +50 -0
- package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -0
- package/dist/src/utils/gitIgnoreParser.d.ts +3 -8
- package/dist/src/utils/gitIgnoreParser.js +60 -60
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.test.js +18 -53
- package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
- package/dist/src/utils/installationManager.test.js +1 -1
- package/dist/src/utils/installationManager.test.js.map +1 -1
- package/dist/src/utils/llm-edit-fixer.d.ts +4 -3
- package/dist/src/utils/llm-edit-fixer.js +19 -10
- package/dist/src/utils/llm-edit-fixer.js.map +1 -1
- package/dist/src/utils/llm-edit-fixer.test.d.ts +6 -0
- package/dist/src/utils/llm-edit-fixer.test.js +105 -0
- package/dist/src/utils/llm-edit-fixer.test.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.test.js +12 -6
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.d.ts +2 -2
- package/dist/src/utils/nextSpeakerChecker.js +8 -2
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +52 -74
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/promptIdContext.d.ts +7 -0
- package/dist/src/utils/promptIdContext.js +8 -0
- package/dist/src/utils/promptIdContext.js.map +1 -0
- package/dist/src/utils/shell-utils.d.ts +5 -0
- package/dist/src/utils/shell-utils.js +23 -0
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/terminalSerializer.d.ts +28 -0
- package/dist/src/utils/terminalSerializer.js +432 -0
- package/dist/src/utils/terminalSerializer.js.map +1 -0
- package/dist/src/utils/terminalSerializer.test.d.ts +6 -0
- package/dist/src/utils/terminalSerializer.test.js +176 -0
- package/dist/src/utils/terminalSerializer.test.js.map +1 -0
- package/dist/src/utils/textUtils.d.ts +5 -0
- package/dist/src/utils/textUtils.js +14 -0
- package/dist/src/utils/textUtils.js.map +1 -1
- package/dist/src/utils/textUtils.test.d.ts +6 -0
- package/dist/src/utils/textUtils.test.js +59 -0
- package/dist/src/utils/textUtils.test.js.map +1 -0
- package/dist/src/utils/userAccountManager.test.js +1 -1
- package/dist/src/utils/userAccountManager.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -2
- package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
- package/dist/src/utils/ide-trust.d.ts +0 -10
- package/dist/src/utils/ide-trust.js +0 -14
- package/dist/src/utils/ide-trust.js.map +0 -1
- /package/dist/src/{utils/flashFallback.integration.test.d.ts → code_assist/oauth-credential-storage.test.d.ts} +0 -0
|
@@ -16,6 +16,7 @@ import { GeminiClient } from '../core/client.js';
|
|
|
16
16
|
import { ensureCorrectEdit, ensureCorrectFileContent, } from '../utils/editCorrector.js';
|
|
17
17
|
import { createMockWorkspaceContext } from '../test-utils/mockWorkspaceContext.js';
|
|
18
18
|
import { StandardFileSystemService } from '../services/fileSystemService.js';
|
|
19
|
+
import { IdeClient } from '../ide/ide-client.js';
|
|
19
20
|
const rootDir = path.resolve(os.tmpdir(), 'gemini-cli-test-root');
|
|
20
21
|
// --- MOCKS ---
|
|
21
22
|
vi.mock('../core/client.js');
|
|
@@ -26,11 +27,17 @@ vi.mock('../ide/ide-client.js', () => ({
|
|
|
26
27
|
},
|
|
27
28
|
}));
|
|
28
29
|
let mockGeminiClientInstance;
|
|
30
|
+
let mockBaseLlmClientInstance;
|
|
29
31
|
const mockEnsureCorrectEdit = vi.fn();
|
|
30
32
|
const mockEnsureCorrectFileContent = vi.fn();
|
|
33
|
+
const mockIdeClient = {
|
|
34
|
+
openDiff: vi.fn(),
|
|
35
|
+
isDiffingEnabled: vi.fn(),
|
|
36
|
+
};
|
|
31
37
|
// Wire up the mocked functions to be used by the actual module imports
|
|
32
38
|
vi.mocked(ensureCorrectEdit).mockImplementation(mockEnsureCorrectEdit);
|
|
33
39
|
vi.mocked(ensureCorrectFileContent).mockImplementation(mockEnsureCorrectFileContent);
|
|
40
|
+
vi.mocked(IdeClient.getInstance).mockResolvedValue(mockIdeClient);
|
|
34
41
|
// Mock Config
|
|
35
42
|
const fsService = new StandardFileSystemService();
|
|
36
43
|
const mockConfigInternal = {
|
|
@@ -38,6 +45,7 @@ const mockConfigInternal = {
|
|
|
38
45
|
getApprovalMode: vi.fn(() => ApprovalMode.DEFAULT),
|
|
39
46
|
setApprovalMode: vi.fn(),
|
|
40
47
|
getGeminiClient: vi.fn(), // Initialize as a plain mock function
|
|
48
|
+
getBaseLlmClient: vi.fn(), // Initialize as a plain mock function
|
|
41
49
|
getFileSystemService: () => fsService,
|
|
42
50
|
getIdeMode: vi.fn(() => false),
|
|
43
51
|
getWorkspaceContext: () => createMockWorkspaceContext(rootDir),
|
|
@@ -80,10 +88,15 @@ describe('WriteFileTool', () => {
|
|
|
80
88
|
// Setup GeminiClient mock
|
|
81
89
|
mockGeminiClientInstance = new (vi.mocked(GeminiClient))(mockConfig);
|
|
82
90
|
vi.mocked(GeminiClient).mockImplementation(() => mockGeminiClientInstance);
|
|
91
|
+
// Setup BaseLlmClient mock
|
|
92
|
+
mockBaseLlmClientInstance = {
|
|
93
|
+
generateJson: vi.fn(),
|
|
94
|
+
};
|
|
83
95
|
vi.mocked(ensureCorrectEdit).mockImplementation(mockEnsureCorrectEdit);
|
|
84
96
|
vi.mocked(ensureCorrectFileContent).mockImplementation(mockEnsureCorrectFileContent);
|
|
85
|
-
// Now that
|
|
97
|
+
// Now that mock instances are initialized, set the mock implementations for config getters
|
|
86
98
|
mockConfigInternal.getGeminiClient.mockReturnValue(mockGeminiClientInstance);
|
|
99
|
+
mockConfigInternal.getBaseLlmClient.mockReturnValue(mockBaseLlmClientInstance);
|
|
87
100
|
tool = new WriteFileTool(mockConfig);
|
|
88
101
|
// Reset mocks before each test
|
|
89
102
|
mockConfigInternal.getApprovalMode.mockReturnValue(ApprovalMode.DEFAULT);
|
|
@@ -91,7 +104,7 @@ describe('WriteFileTool', () => {
|
|
|
91
104
|
mockEnsureCorrectEdit.mockReset();
|
|
92
105
|
mockEnsureCorrectFileContent.mockReset();
|
|
93
106
|
// Default mock implementations that return valid structures
|
|
94
|
-
mockEnsureCorrectEdit.mockImplementation(async (filePath, _currentContent, params, _client, signal) => {
|
|
107
|
+
mockEnsureCorrectEdit.mockImplementation(async (filePath, _currentContent, params, _client, _baseClient, signal) => {
|
|
95
108
|
if (signal?.aborted) {
|
|
96
109
|
return Promise.reject(new Error('Aborted'));
|
|
97
110
|
}
|
|
@@ -100,8 +113,7 @@ describe('WriteFileTool', () => {
|
|
|
100
113
|
occurrences: 1,
|
|
101
114
|
});
|
|
102
115
|
});
|
|
103
|
-
mockEnsureCorrectFileContent.mockImplementation(async (content,
|
|
104
|
-
// Make AbortSignal optional
|
|
116
|
+
mockEnsureCorrectFileContent.mockImplementation(async (content, _baseClient, signal) => {
|
|
105
117
|
if (signal?.aborted) {
|
|
106
118
|
return Promise.reject(new Error('Aborted'));
|
|
107
119
|
}
|
|
@@ -177,7 +189,7 @@ describe('WriteFileTool', () => {
|
|
|
177
189
|
// Ensure the mock is set for this specific test case if needed, or rely on beforeEach
|
|
178
190
|
mockEnsureCorrectFileContent.mockResolvedValue(correctedContent);
|
|
179
191
|
const result = await getCorrectedFileContent(mockConfig, filePath, proposedContent, abortSignal);
|
|
180
|
-
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent,
|
|
192
|
+
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent, mockBaseLlmClientInstance, abortSignal);
|
|
181
193
|
expect(mockEnsureCorrectEdit).not.toHaveBeenCalled();
|
|
182
194
|
expect(result.correctedContent).toBe(correctedContent);
|
|
183
195
|
expect(result.originalContent).toBe('');
|
|
@@ -205,7 +217,7 @@ describe('WriteFileTool', () => {
|
|
|
205
217
|
old_string: originalContent,
|
|
206
218
|
new_string: proposedContent,
|
|
207
219
|
file_path: filePath,
|
|
208
|
-
}, mockGeminiClientInstance, abortSignal);
|
|
220
|
+
}, mockGeminiClientInstance, mockBaseLlmClientInstance, abortSignal);
|
|
209
221
|
expect(mockEnsureCorrectFileContent).not.toHaveBeenCalled();
|
|
210
222
|
expect(result.correctedContent).toBe(correctedProposedContent);
|
|
211
223
|
expect(result.originalContent).toBe(originalContent);
|
|
@@ -254,7 +266,7 @@ describe('WriteFileTool', () => {
|
|
|
254
266
|
const params = { file_path: filePath, content: proposedContent };
|
|
255
267
|
const invocation = tool.build(params);
|
|
256
268
|
const confirmation = (await invocation.shouldConfirmExecute(abortSignal));
|
|
257
|
-
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent,
|
|
269
|
+
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent, mockBaseLlmClientInstance, abortSignal);
|
|
258
270
|
expect(confirmation).toEqual(expect.objectContaining({
|
|
259
271
|
title: `Confirm Write: ${path.basename(filePath)}`,
|
|
260
272
|
fileName: 'confirm_new_file.txt',
|
|
@@ -284,7 +296,7 @@ describe('WriteFileTool', () => {
|
|
|
284
296
|
old_string: originalContent,
|
|
285
297
|
new_string: proposedContent,
|
|
286
298
|
file_path: filePath,
|
|
287
|
-
}, mockGeminiClientInstance, abortSignal);
|
|
299
|
+
}, mockGeminiClientInstance, mockBaseLlmClientInstance, abortSignal);
|
|
288
300
|
expect(confirmation).toEqual(expect.objectContaining({
|
|
289
301
|
title: `Confirm Write: ${path.basename(filePath)}`,
|
|
290
302
|
fileName: 'confirm_existing_file.txt',
|
|
@@ -292,6 +304,78 @@ describe('WriteFileTool', () => {
|
|
|
292
304
|
}));
|
|
293
305
|
expect(confirmation.fileDiff).toMatch(originalContent.replace(/[.*+?^${}()|[\\]\\]/g, '\\$&'));
|
|
294
306
|
});
|
|
307
|
+
describe('with IDE integration', () => {
|
|
308
|
+
beforeEach(() => {
|
|
309
|
+
// Enable IDE mode and set connection status for these tests
|
|
310
|
+
mockConfigInternal.getIdeMode.mockReturnValue(true);
|
|
311
|
+
mockIdeClient.isDiffingEnabled.mockReturnValue(true);
|
|
312
|
+
mockIdeClient.openDiff.mockResolvedValue({
|
|
313
|
+
status: 'accepted',
|
|
314
|
+
content: 'ide-modified-content',
|
|
315
|
+
});
|
|
316
|
+
});
|
|
317
|
+
it('should call openDiff and await it when in IDE mode and connected', async () => {
|
|
318
|
+
const filePath = path.join(rootDir, 'ide_confirm_file.txt');
|
|
319
|
+
const params = { file_path: filePath, content: 'test' };
|
|
320
|
+
const invocation = tool.build(params);
|
|
321
|
+
const confirmation = (await invocation.shouldConfirmExecute(abortSignal));
|
|
322
|
+
expect(mockIdeClient.openDiff).toHaveBeenCalledWith(filePath, 'test');
|
|
323
|
+
// Ensure the promise is awaited by checking the result
|
|
324
|
+
expect(confirmation.ideConfirmation).toBeDefined();
|
|
325
|
+
await confirmation.ideConfirmation; // Should resolve
|
|
326
|
+
});
|
|
327
|
+
it('should not call openDiff if not in IDE mode', async () => {
|
|
328
|
+
mockConfigInternal.getIdeMode.mockReturnValue(false);
|
|
329
|
+
const filePath = path.join(rootDir, 'ide_disabled_file.txt');
|
|
330
|
+
const params = { file_path: filePath, content: 'test' };
|
|
331
|
+
const invocation = tool.build(params);
|
|
332
|
+
await invocation.shouldConfirmExecute(abortSignal);
|
|
333
|
+
expect(mockIdeClient.openDiff).not.toHaveBeenCalled();
|
|
334
|
+
});
|
|
335
|
+
it('should not call openDiff if IDE is not connected', async () => {
|
|
336
|
+
mockIdeClient.isDiffingEnabled.mockReturnValue(false);
|
|
337
|
+
const filePath = path.join(rootDir, 'ide_disconnected_file.txt');
|
|
338
|
+
const params = { file_path: filePath, content: 'test' };
|
|
339
|
+
const invocation = tool.build(params);
|
|
340
|
+
await invocation.shouldConfirmExecute(abortSignal);
|
|
341
|
+
expect(mockIdeClient.openDiff).not.toHaveBeenCalled();
|
|
342
|
+
});
|
|
343
|
+
it('should update params.content with IDE content when onConfirm is called', async () => {
|
|
344
|
+
const filePath = path.join(rootDir, 'ide_onconfirm_file.txt');
|
|
345
|
+
const params = { file_path: filePath, content: 'original-content' };
|
|
346
|
+
const invocation = tool.build(params);
|
|
347
|
+
// This is the key part: get the confirmation details
|
|
348
|
+
const confirmation = (await invocation.shouldConfirmExecute(abortSignal));
|
|
349
|
+
// The `onConfirm` function should exist on the details object
|
|
350
|
+
expect(confirmation.onConfirm).toBeDefined();
|
|
351
|
+
// Call `onConfirm` to trigger the logic that updates the content
|
|
352
|
+
await confirmation.onConfirm(ToolConfirmationOutcome.ProceedOnce);
|
|
353
|
+
// Now, check if the original `params` object (captured by the invocation) was modified
|
|
354
|
+
expect(invocation.params.content).toBe('ide-modified-content');
|
|
355
|
+
});
|
|
356
|
+
it('should not await ideConfirmation promise', async () => {
|
|
357
|
+
const filePath = path.join(rootDir, 'ide_no_await_file.txt');
|
|
358
|
+
const params = { file_path: filePath, content: 'test' };
|
|
359
|
+
const invocation = tool.build(params);
|
|
360
|
+
let diffPromiseResolved = false;
|
|
361
|
+
const diffPromise = new Promise((resolve) => {
|
|
362
|
+
setTimeout(() => {
|
|
363
|
+
diffPromiseResolved = true;
|
|
364
|
+
resolve({ status: 'accepted', content: 'ide-modified-content' });
|
|
365
|
+
}, 50); // A small delay to ensure the check happens before resolution
|
|
366
|
+
});
|
|
367
|
+
mockIdeClient.openDiff.mockReturnValue(diffPromise);
|
|
368
|
+
const confirmation = (await invocation.shouldConfirmExecute(abortSignal));
|
|
369
|
+
// This is the key check: the confirmation details should be returned
|
|
370
|
+
// *before* the diffPromise is resolved.
|
|
371
|
+
expect(diffPromiseResolved).toBe(false);
|
|
372
|
+
expect(confirmation).toBeDefined();
|
|
373
|
+
expect(confirmation.ideConfirmation).toBe(diffPromise);
|
|
374
|
+
// Now, we can await the promise to let the test finish cleanly.
|
|
375
|
+
await diffPromise;
|
|
376
|
+
expect(diffPromiseResolved).toBe(true);
|
|
377
|
+
});
|
|
378
|
+
});
|
|
295
379
|
});
|
|
296
380
|
describe('execute', () => {
|
|
297
381
|
const abortSignal = new AbortController().signal;
|
|
@@ -327,7 +411,7 @@ describe('WriteFileTool', () => {
|
|
|
327
411
|
await confirmDetails.onConfirm(ToolConfirmationOutcome.ProceedOnce);
|
|
328
412
|
}
|
|
329
413
|
const result = await invocation.execute(abortSignal);
|
|
330
|
-
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent,
|
|
414
|
+
expect(mockEnsureCorrectFileContent).toHaveBeenCalledWith(proposedContent, mockBaseLlmClientInstance, abortSignal);
|
|
331
415
|
expect(result.llmContent).toMatch(/Successfully created and wrote to new file/);
|
|
332
416
|
expect(fs.existsSync(filePath)).toBe(true);
|
|
333
417
|
const writtenContent = await fsService.readTextFile(filePath);
|
|
@@ -365,7 +449,7 @@ describe('WriteFileTool', () => {
|
|
|
365
449
|
old_string: initialContent,
|
|
366
450
|
new_string: proposedContent,
|
|
367
451
|
file_path: filePath,
|
|
368
|
-
}, mockGeminiClientInstance, abortSignal);
|
|
452
|
+
}, mockGeminiClientInstance, mockBaseLlmClientInstance, abortSignal);
|
|
369
453
|
expect(result.llmContent).toMatch(/Successfully overwrote file/);
|
|
370
454
|
const writtenContent = await fsService.readTextFile(filePath);
|
|
371
455
|
expect(writtenContent).toBe(correctedProposedContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.test.js","sourceRoot":"","sources":["../../../src/tools/write-file.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"write-file.test.js","sourceRoot":"","sources":["../../../src/tools/write-file.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,18 +67,24 @@ export async function bfsFileSearch(rootDir, options) {
|
|
|
67
67
|
for (const { currentDir, entries } of results) {
|
|
68
68
|
for (const entry of entries) {
|
|
69
69
|
const fullPath = path.join(currentDir, entry.name);
|
|
70
|
+
const isDirectory = entry.isDirectory();
|
|
71
|
+
const isMatchingFile = entry.isFile() && entry.name === fileName;
|
|
72
|
+
if (!isDirectory && !isMatchingFile) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (isDirectory && ignoreDirsSet.has(entry.name)) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
70
78
|
if (fileService?.shouldIgnoreFile(fullPath, {
|
|
71
79
|
respectGitIgnore: options.fileFilteringOptions?.respectGitIgnore,
|
|
72
80
|
respectGeminiIgnore: options.fileFilteringOptions?.respectGeminiIgnore,
|
|
73
81
|
})) {
|
|
74
82
|
continue;
|
|
75
83
|
}
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
queue.push(fullPath);
|
|
79
|
-
}
|
|
84
|
+
if (isDirectory) {
|
|
85
|
+
queue.push(fullPath);
|
|
80
86
|
}
|
|
81
|
-
else
|
|
87
|
+
else {
|
|
82
88
|
foundFiles.push(fullPath);
|
|
83
89
|
}
|
|
84
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bfsFileSearch.js","sourceRoot":"","sources":["../../../src/utils/bfsFileSearch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bfsFileSearch.js","sourceRoot":"","sources":["../../../src/utils/bfsFileSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { GeminiClient } from '../core/client.js';
|
|
7
|
+
import type { BaseLlmClient } from '../core/baseLlmClient.js';
|
|
7
8
|
import type { EditToolParams } from '../tools/edit.js';
|
|
8
9
|
/**
|
|
9
10
|
* Defines the structure of the parameters within CorrectedEditResult
|
|
@@ -32,15 +33,15 @@ export interface CorrectedEditResult {
|
|
|
32
33
|
* EditToolParams (as CorrectedEditParams) and the final occurrences count.
|
|
33
34
|
*/
|
|
34
35
|
export declare function ensureCorrectEdit(filePath: string, currentContent: string, originalParams: EditToolParams, // This is the EditToolParams from edit.ts, without \'corrected\'
|
|
35
|
-
|
|
36
|
-
export declare function ensureCorrectFileContent(content: string,
|
|
37
|
-
export declare function correctOldStringMismatch(
|
|
36
|
+
geminiClient: GeminiClient, baseLlmClient: BaseLlmClient, abortSignal: AbortSignal): Promise<CorrectedEditResult>;
|
|
37
|
+
export declare function ensureCorrectFileContent(content: string, baseLlmClient: BaseLlmClient, abortSignal: AbortSignal): Promise<string>;
|
|
38
|
+
export declare function correctOldStringMismatch(baseLlmClient: BaseLlmClient, fileContent: string, problematicSnippet: string, abortSignal: AbortSignal): Promise<string>;
|
|
38
39
|
/**
|
|
39
40
|
* Adjusts the new_string to align with a corrected old_string, maintaining the original intent.
|
|
40
41
|
*/
|
|
41
|
-
export declare function correctNewString(
|
|
42
|
-
export declare function correctNewStringEscaping(
|
|
43
|
-
export declare function correctStringEscaping(potentiallyProblematicString: string,
|
|
42
|
+
export declare function correctNewString(baseLlmClient: BaseLlmClient, originalOldString: string, correctedOldString: string, originalNewString: string, abortSignal: AbortSignal): Promise<string>;
|
|
43
|
+
export declare function correctNewStringEscaping(baseLlmClient: BaseLlmClient, oldString: string, potentiallyProblematicNewString: string, abortSignal: AbortSignal): Promise<string>;
|
|
44
|
+
export declare function correctStringEscaping(potentiallyProblematicString: string, baseLlmClient: BaseLlmClient, abortSignal: AbortSignal): Promise<string>;
|
|
44
45
|
/**
|
|
45
46
|
* Unescapes a string that might have been overly escaped by an LLM.
|
|
46
47
|
*/
|
|
@@ -12,12 +12,23 @@ import { LruCache } from './LruCache.js';
|
|
|
12
12
|
import { DEFAULT_GEMINI_FLASH_LITE_MODEL } from '../config/models.js';
|
|
13
13
|
import { isFunctionResponse, isFunctionCall, } from '../utils/messageInspectors.js';
|
|
14
14
|
import * as fs from 'node:fs';
|
|
15
|
-
|
|
16
|
-
const
|
|
15
|
+
import { promptIdContext } from './promptIdContext.js';
|
|
16
|
+
const EDIT_MODEL = DEFAULT_GEMINI_FLASH_LITE_MODEL;
|
|
17
|
+
const EDIT_CONFIG = {
|
|
17
18
|
thinkingConfig: {
|
|
18
19
|
thinkingBudget: 0,
|
|
19
20
|
},
|
|
20
21
|
};
|
|
22
|
+
const CODE_CORRECTION_SYSTEM_PROMPT = `
|
|
23
|
+
You are an expert code-editing assistant. Your task is to analyze a failed edit attempt and provide a corrected version of the text snippets.
|
|
24
|
+
The correction should be as minimal as possible, staying very close to the original.
|
|
25
|
+
Focus ONLY on fixing issues like whitespace, indentation, line endings, or incorrect escaping.
|
|
26
|
+
Do NOT invent a completely new edit. Your job is to fix the provided parameters to make the edit succeed.
|
|
27
|
+
Return ONLY the corrected snippet in the specified JSON format.
|
|
28
|
+
`.trim();
|
|
29
|
+
function getPromptId() {
|
|
30
|
+
return promptIdContext.getStore() ?? `edit-corrector-${Date.now()}`;
|
|
31
|
+
}
|
|
21
32
|
const MAX_CACHE_SIZE = 50;
|
|
22
33
|
// Cache for ensureCorrectEdit results
|
|
23
34
|
const editCorrectionCache = new LruCache(MAX_CACHE_SIZE);
|
|
@@ -109,7 +120,7 @@ async function findLastEditTimestamp(filePath, client) {
|
|
|
109
120
|
* EditToolParams (as CorrectedEditParams) and the final occurrences count.
|
|
110
121
|
*/
|
|
111
122
|
export async function ensureCorrectEdit(filePath, currentContent, originalParams, // This is the EditToolParams from edit.ts, without \'corrected\'
|
|
112
|
-
|
|
123
|
+
geminiClient, baseLlmClient, abortSignal) {
|
|
113
124
|
const cacheKey = `${currentContent}---${originalParams.old_string}---${originalParams.new_string}`;
|
|
114
125
|
const cachedResult = editCorrectionCache.get(cacheKey);
|
|
115
126
|
if (cachedResult) {
|
|
@@ -123,7 +134,7 @@ client, abortSignal) {
|
|
|
123
134
|
let occurrences = countOccurrences(currentContent, finalOldString);
|
|
124
135
|
if (occurrences === expectedReplacements) {
|
|
125
136
|
if (newStringPotentiallyEscaped) {
|
|
126
|
-
finalNewString = await correctNewStringEscaping(
|
|
137
|
+
finalNewString = await correctNewStringEscaping(baseLlmClient, finalOldString, originalParams.new_string, abortSignal);
|
|
127
138
|
}
|
|
128
139
|
}
|
|
129
140
|
else if (occurrences > expectedReplacements) {
|
|
@@ -161,7 +172,7 @@ client, abortSignal) {
|
|
|
161
172
|
if (occurrences === expectedReplacements) {
|
|
162
173
|
finalOldString = unescapedOldStringAttempt;
|
|
163
174
|
if (newStringPotentiallyEscaped) {
|
|
164
|
-
finalNewString = await correctNewString(
|
|
175
|
+
finalNewString = await correctNewString(baseLlmClient, originalParams.old_string, // original old
|
|
165
176
|
unescapedOldStringAttempt, // corrected old
|
|
166
177
|
originalParams.new_string, // original new (which is potentially escaped)
|
|
167
178
|
abortSignal);
|
|
@@ -172,7 +183,7 @@ client, abortSignal) {
|
|
|
172
183
|
// In order to keep from clobbering edits made outside our system,
|
|
173
184
|
// let's check if there was a more recent edit to the file than what
|
|
174
185
|
// our system has done
|
|
175
|
-
const lastEditedByUsTime = await findLastEditTimestamp(filePath,
|
|
186
|
+
const lastEditedByUsTime = await findLastEditTimestamp(filePath, geminiClient);
|
|
176
187
|
// Add a 1-second buffer to account for timing inaccuracies. If the file
|
|
177
188
|
// was modified more than a second after the last edit tool was run, we
|
|
178
189
|
// can assume it was modified by something else.
|
|
@@ -191,14 +202,14 @@ client, abortSignal) {
|
|
|
191
202
|
}
|
|
192
203
|
}
|
|
193
204
|
}
|
|
194
|
-
const llmCorrectedOldString = await correctOldStringMismatch(
|
|
205
|
+
const llmCorrectedOldString = await correctOldStringMismatch(baseLlmClient, currentContent, unescapedOldStringAttempt, abortSignal);
|
|
195
206
|
const llmOldOccurrences = countOccurrences(currentContent, llmCorrectedOldString);
|
|
196
207
|
if (llmOldOccurrences === expectedReplacements) {
|
|
197
208
|
finalOldString = llmCorrectedOldString;
|
|
198
209
|
occurrences = llmOldOccurrences;
|
|
199
210
|
if (newStringPotentiallyEscaped) {
|
|
200
211
|
const baseNewStringForLLMCorrection = unescapeStringForGeminiBug(originalParams.new_string);
|
|
201
|
-
finalNewString = await correctNewString(
|
|
212
|
+
finalNewString = await correctNewString(baseLlmClient, originalParams.old_string, // original old
|
|
202
213
|
llmCorrectedOldString, // corrected old
|
|
203
214
|
baseNewStringForLLMCorrection, // base new for correction
|
|
204
215
|
abortSignal);
|
|
@@ -239,7 +250,7 @@ client, abortSignal) {
|
|
|
239
250
|
editCorrectionCache.set(cacheKey, result);
|
|
240
251
|
return result;
|
|
241
252
|
}
|
|
242
|
-
export async function ensureCorrectFileContent(content,
|
|
253
|
+
export async function ensureCorrectFileContent(content, baseLlmClient, abortSignal) {
|
|
243
254
|
const cachedResult = fileContentCorrectionCache.get(content);
|
|
244
255
|
if (cachedResult) {
|
|
245
256
|
return cachedResult;
|
|
@@ -249,7 +260,7 @@ export async function ensureCorrectFileContent(content, client, abortSignal) {
|
|
|
249
260
|
fileContentCorrectionCache.set(content, content);
|
|
250
261
|
return content;
|
|
251
262
|
}
|
|
252
|
-
const correctedContent = await correctStringEscaping(content,
|
|
263
|
+
const correctedContent = await correctStringEscaping(content, baseLlmClient, abortSignal);
|
|
253
264
|
fileContentCorrectionCache.set(content, correctedContent);
|
|
254
265
|
return correctedContent;
|
|
255
266
|
}
|
|
@@ -264,7 +275,7 @@ const OLD_STRING_CORRECTION_SCHEMA = {
|
|
|
264
275
|
},
|
|
265
276
|
required: ['corrected_target_snippet'],
|
|
266
277
|
};
|
|
267
|
-
export async function correctOldStringMismatch(
|
|
278
|
+
export async function correctOldStringMismatch(baseLlmClient, fileContent, problematicSnippet, abortSignal) {
|
|
268
279
|
const prompt = `
|
|
269
280
|
Context: A process needs to find an exact literal, unique match for a specific text snippet within a file's content. The provided snippet failed to match exactly. This is most likely because it has been overly escaped.
|
|
270
281
|
|
|
@@ -287,7 +298,15 @@ Return ONLY the corrected target snippet in the specified JSON format with the k
|
|
|
287
298
|
`.trim();
|
|
288
299
|
const contents = [{ role: 'user', parts: [{ text: prompt }] }];
|
|
289
300
|
try {
|
|
290
|
-
const result = await
|
|
301
|
+
const result = await baseLlmClient.generateJson({
|
|
302
|
+
contents,
|
|
303
|
+
schema: OLD_STRING_CORRECTION_SCHEMA,
|
|
304
|
+
abortSignal,
|
|
305
|
+
model: EDIT_MODEL,
|
|
306
|
+
config: EDIT_CONFIG,
|
|
307
|
+
systemInstruction: CODE_CORRECTION_SYSTEM_PROMPT,
|
|
308
|
+
promptId: getPromptId(),
|
|
309
|
+
});
|
|
291
310
|
if (result &&
|
|
292
311
|
typeof result['corrected_target_snippet'] === 'string' &&
|
|
293
312
|
result['corrected_target_snippet'].length > 0) {
|
|
@@ -319,7 +338,7 @@ const NEW_STRING_CORRECTION_SCHEMA = {
|
|
|
319
338
|
/**
|
|
320
339
|
* Adjusts the new_string to align with a corrected old_string, maintaining the original intent.
|
|
321
340
|
*/
|
|
322
|
-
export async function correctNewString(
|
|
341
|
+
export async function correctNewString(baseLlmClient, originalOldString, correctedOldString, originalNewString, abortSignal) {
|
|
323
342
|
if (originalOldString === correctedOldString) {
|
|
324
343
|
return originalNewString;
|
|
325
344
|
}
|
|
@@ -351,7 +370,15 @@ Return ONLY the corrected string in the specified JSON format with the key 'corr
|
|
|
351
370
|
`.trim();
|
|
352
371
|
const contents = [{ role: 'user', parts: [{ text: prompt }] }];
|
|
353
372
|
try {
|
|
354
|
-
const result = await
|
|
373
|
+
const result = await baseLlmClient.generateJson({
|
|
374
|
+
contents,
|
|
375
|
+
schema: NEW_STRING_CORRECTION_SCHEMA,
|
|
376
|
+
abortSignal,
|
|
377
|
+
model: EDIT_MODEL,
|
|
378
|
+
config: EDIT_CONFIG,
|
|
379
|
+
systemInstruction: CODE_CORRECTION_SYSTEM_PROMPT,
|
|
380
|
+
promptId: getPromptId(),
|
|
381
|
+
});
|
|
355
382
|
if (result &&
|
|
356
383
|
typeof result['corrected_new_string'] === 'string' &&
|
|
357
384
|
result['corrected_new_string'].length > 0) {
|
|
@@ -379,7 +406,7 @@ const CORRECT_NEW_STRING_ESCAPING_SCHEMA = {
|
|
|
379
406
|
},
|
|
380
407
|
required: ['corrected_new_string_escaping'],
|
|
381
408
|
};
|
|
382
|
-
export async function correctNewStringEscaping(
|
|
409
|
+
export async function correctNewStringEscaping(baseLlmClient, oldString, potentiallyProblematicNewString, abortSignal) {
|
|
383
410
|
const prompt = `
|
|
384
411
|
Context: A text replacement operation is planned. The text to be replaced (old_string) has been correctly identified in the file. However, the replacement text (new_string) might have been improperly escaped by a previous LLM generation (e.g. too many backslashes for newlines like \\n instead of \n, or unnecessarily quotes like \\"Hello\\" instead of "Hello").
|
|
385
412
|
|
|
@@ -402,7 +429,15 @@ Return ONLY the corrected string in the specified JSON format with the key 'corr
|
|
|
402
429
|
`.trim();
|
|
403
430
|
const contents = [{ role: 'user', parts: [{ text: prompt }] }];
|
|
404
431
|
try {
|
|
405
|
-
const result = await
|
|
432
|
+
const result = await baseLlmClient.generateJson({
|
|
433
|
+
contents,
|
|
434
|
+
schema: CORRECT_NEW_STRING_ESCAPING_SCHEMA,
|
|
435
|
+
abortSignal,
|
|
436
|
+
model: EDIT_MODEL,
|
|
437
|
+
config: EDIT_CONFIG,
|
|
438
|
+
systemInstruction: CODE_CORRECTION_SYSTEM_PROMPT,
|
|
439
|
+
promptId: getPromptId(),
|
|
440
|
+
});
|
|
406
441
|
if (result &&
|
|
407
442
|
typeof result['corrected_new_string_escaping'] === 'string' &&
|
|
408
443
|
result['corrected_new_string_escaping'].length > 0) {
|
|
@@ -430,7 +465,7 @@ const CORRECT_STRING_ESCAPING_SCHEMA = {
|
|
|
430
465
|
},
|
|
431
466
|
required: ['corrected_string_escaping'],
|
|
432
467
|
};
|
|
433
|
-
export async function correctStringEscaping(potentiallyProblematicString,
|
|
468
|
+
export async function correctStringEscaping(potentiallyProblematicString, baseLlmClient, abortSignal) {
|
|
434
469
|
const prompt = `
|
|
435
470
|
Context: An LLM has just generated potentially_problematic_string and the text might have been improperly escaped (e.g. too many backslashes for newlines like \\n instead of \n, or unnecessarily quotes like \\"Hello\\" instead of "Hello").
|
|
436
471
|
|
|
@@ -448,7 +483,15 @@ Return ONLY the corrected string in the specified JSON format with the key 'corr
|
|
|
448
483
|
`.trim();
|
|
449
484
|
const contents = [{ role: 'user', parts: [{ text: prompt }] }];
|
|
450
485
|
try {
|
|
451
|
-
const result = await
|
|
486
|
+
const result = await baseLlmClient.generateJson({
|
|
487
|
+
contents,
|
|
488
|
+
schema: CORRECT_STRING_ESCAPING_SCHEMA,
|
|
489
|
+
abortSignal,
|
|
490
|
+
model: EDIT_MODEL,
|
|
491
|
+
config: EDIT_CONFIG,
|
|
492
|
+
systemInstruction: CODE_CORRECTION_SYSTEM_PROMPT,
|
|
493
|
+
promptId: getPromptId(),
|
|
494
|
+
});
|
|
452
495
|
if (result &&
|
|
453
496
|
typeof result['corrected_string_escaping'] === 'string' &&
|
|
454
497
|
result['corrected_string_escaping'].length > 0) {
|