@machina.ai/cell-cli-core 1.0.21-rc3 → 1.2.2-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 +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/package.json +24 -11
- package/dist/src/code_assist/codeAssist.d.ts +4 -3
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/converter.d.ts +2 -1
- package/dist/src/code_assist/converter.js +36 -4
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js +83 -0
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -1
- package/dist/src/code_assist/oauth2.js +29 -24
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +65 -15
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +5 -5
- package/dist/src/code_assist/server.js +1 -1
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/setup.d.ts +1 -1
- package/dist/src/code_assist/setup.js +1 -1
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/config/config.d.ts +53 -11
- package/dist/src/config/config.js +113 -29
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +103 -5
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/models.d.ts +1 -0
- package/dist/src/config/models.js +2 -0
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/storage.d.ts +32 -0
- package/dist/src/config/storage.js +90 -0
- package/dist/src/config/storage.js.map +1 -0
- package/dist/src/config/storage.test.js +43 -0
- package/dist/src/config/storage.test.js.map +1 -0
- package/dist/src/core/client.d.ts +17 -9
- package/dist/src/core/client.js +76 -19
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +366 -84
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +6 -6
- package/dist/src/core/contentGenerator.js +14 -5
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +14 -5
- package/dist/src/core/coreToolScheduler.js +120 -49
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +365 -72
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +18 -14
- package/dist/src/core/geminiChat.js +223 -156
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +862 -257
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiRequest.js +1 -0
- package/dist/src/core/geminiRequest.js.map +1 -1
- package/dist/src/core/logger.d.ts +4 -2
- package/dist/src/core/logger.js +4 -3
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +19 -18
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +3 -3
- package/dist/src/core/loggingContentGenerator.js +3 -1
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.d.ts +3 -5
- package/dist/src/core/nonInteractiveToolExecutor.js +15 -123
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +114 -90
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +8 -7
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +21 -21
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/subagent.d.ts +24 -18
- package/dist/src/core/subagent.js +125 -87
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/core/subagent.test.js +31 -26
- package/dist/src/core/subagent.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +24 -7
- package/dist/src/core/turn.js +41 -11
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +157 -1
- package/dist/src/core/turn.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/generated/git-commit.js.map +1 -1
- package/dist/src/ide/constants.d.ts +1 -1
- package/dist/src/ide/constants.js +1 -1
- package/dist/src/ide/constants.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +8 -3
- package/dist/src/ide/detect-ide.js +29 -11
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +96 -52
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +11 -7
- package/dist/src/ide/ide-client.js +127 -29
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-client.test.js +147 -25
- package/dist/src/ide/ide-client.test.js.map +1 -1
- package/dist/src/ide/ide-installer.d.ts +1 -1
- package/dist/src/ide/ide-installer.js +31 -22
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +82 -22
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/ide/process-utils.d.ts +14 -6
- package/dist/src/ide/process-utils.js +136 -34
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/ide/process-utils.test.js +158 -0
- package/dist/src/ide/process-utils.test.js.map +1 -0
- package/dist/src/index.d.ts +11 -2
- package/dist/src/index.js +10 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/google-auth-provider.d.ts +3 -3
- package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +2 -2
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +1 -1
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +5 -27
- package/dist/src/mcp/oauth-token-storage.js +2 -5
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.test.js +7 -6
- package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.d.ts +9 -1
- package/dist/src/mcp/oauth-utils.js +41 -27
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +41 -1
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/mcp/token-storage/base-token-storage.d.ts +19 -0
- package/dist/src/mcp/token-storage/base-token-storage.js +36 -0
- package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -0
- package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +6 -0
- package/dist/src/mcp/token-storage/base-token-storage.test.js +160 -0
- package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -0
- package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
- package/dist/src/mcp/token-storage/file-token-storage.js +144 -0
- package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
- package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
- package/dist/src/mcp/token-storage/file-token-storage.test.js +235 -0
- package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
- package/dist/src/mcp/token-storage/types.d.ts +34 -0
- package/dist/src/mcp/token-storage/types.js +7 -0
- package/dist/src/mcp/token-storage/types.js.map +1 -0
- package/dist/src/prompts/mcp-prompts.d.ts +2 -2
- package/dist/src/prompts/prompt-registry.d.ts +1 -1
- package/dist/src/services/chatRecordingService.d.ts +2 -2
- package/dist/src/services/chatRecordingService.js +6 -3
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +10 -8
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.js +1 -1
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.test.js +3 -3
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
- package/dist/src/services/fileSystemService.js +1 -1
- package/dist/src/services/fileSystemService.js.map +1 -1
- package/dist/src/services/fileSystemService.test.js +1 -1
- package/dist/src/services/fileSystemService.test.js.map +1 -1
- package/dist/src/services/gitService.d.ts +3 -1
- package/dist/src/services/gitService.js +21 -12
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +22 -19
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.d.ts +2 -2
- package/dist/src/services/loopDetectionService.js +9 -3
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +23 -1
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +8 -10
- package/dist/src/services/shellExecutionService.js +292 -135
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +277 -42
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +16 -4
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +140 -9
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +84 -11
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +26 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +62 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +8 -0
- package/dist/src/telemetry/constants.js +8 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/file-exporters.d.ts +5 -4
- package/dist/src/telemetry/file-exporters.js +1 -1
- package/dist/src/telemetry/file-exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +5 -2
- package/dist/src/telemetry/index.js +3 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +8 -2
- package/dist/src/telemetry/loggers.js +105 -2
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +69 -9
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +15 -4
- package/dist/src/telemetry/metrics.js +46 -8
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +5 -25
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/sdk.d.ts +1 -1
- package/dist/src/telemetry/sdk.js +3 -3
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/telemetry-utils.d.ts +6 -0
- package/dist/src/telemetry/telemetry-utils.js +14 -0
- package/dist/src/telemetry/telemetry-utils.js.map +1 -0
- package/dist/src/telemetry/telemetry-utils.test.d.ts +6 -0
- package/dist/src/telemetry/telemetry-utils.test.js +40 -0
- package/dist/src/telemetry/telemetry-utils.test.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +52 -6
- package/dist/src/telemetry/types.js +87 -2
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +2 -2
- package/dist/src/telemetry/uiTelemetry.js +1 -1
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +16 -12
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/config.d.ts +2 -1
- package/dist/src/test-utils/config.js.map +1 -1
- package/dist/src/test-utils/index.d.ts +6 -0
- package/dist/src/test-utils/index.js +7 -0
- package/dist/src/test-utils/index.js.map +1 -0
- package/dist/src/test-utils/mock-tool.d.ts +41 -0
- package/dist/src/test-utils/mock-tool.js +51 -0
- package/dist/src/test-utils/mock-tool.js.map +1 -0
- package/dist/src/test-utils/mockWorkspaceContext.d.ts +1 -1
- package/dist/src/test-utils/tools.d.ts +3 -2
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/diffOptions.d.ts +1 -1
- package/dist/src/tools/edit.d.ts +6 -5
- package/dist/src/tools/edit.js +36 -17
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +45 -8
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +3 -2
- package/dist/src/tools/glob.js +17 -6
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +29 -4
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +3 -2
- package/dist/src/tools/grep.js +35 -15
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +26 -3
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.d.ts +3 -2
- package/dist/src/tools/ls.js +12 -7
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +7 -2
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +8 -6
- package/dist/src/tools/mcp-client-manager.js +30 -5
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +20 -1
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +18 -11
- package/dist/src/tools/mcp-client.js +78 -33
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +29 -4
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +6 -3
- package/dist/src/tools/mcp-tool.js +21 -7
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +49 -6
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +4 -3
- package/dist/src/tools/memoryTool.js +15 -38
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +24 -12
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/modifiable-tool.d.ts +2 -2
- package/dist/src/tools/modifiable-tool.js +3 -3
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +4 -4
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +3 -2
- package/dist/src/tools/read-file.js +12 -34
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +9 -6
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +3 -2
- package/dist/src/tools/read-many-files.js +35 -58
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +60 -7
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +47 -0
- package/dist/src/tools/ripGrep.js +368 -0
- package/dist/src/tools/ripGrep.js.map +1 -0
- package/dist/src/tools/ripGrep.test.d.ts +6 -0
- package/dist/src/tools/ripGrep.test.js +874 -0
- package/dist/src/tools/ripGrep.test.js.map +1 -0
- package/dist/src/tools/shell.d.ts +3 -2
- package/dist/src/tools/shell.js +26 -24
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +33 -24
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/smart-edit.d.ts +73 -0
- package/dist/src/tools/smart-edit.js +607 -0
- package/dist/src/tools/smart-edit.js.map +1 -0
- package/dist/src/tools/smart-edit.test.d.ts +6 -0
- package/dist/src/tools/smart-edit.test.js +397 -0
- package/dist/src/tools/smart-edit.test.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +17 -1
- package/dist/src/tools/tool-error.js +26 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +10 -4
- package/dist/src/tools/tool-registry.js +19 -7
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +86 -3
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +9 -7
- package/dist/src/tools/tools.js +12 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.js +1 -2
- package/dist/src/tools/tools.test.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +3 -2
- package/dist/src/tools/web-fetch.js +10 -7
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +55 -16
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +4 -3
- package/dist/src/tools/web-search.js +28 -7
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/web-search.test.js +69 -1
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +4 -3
- package/dist/src/tools/write-file.js +13 -13
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +9 -5
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.d.ts +2 -2
- package/dist/src/utils/bfsFileSearch.js +2 -2
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +3 -3
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/editCorrector.d.ts +2 -2
- package/dist/src/utils/editCorrector.js +1 -1
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +3 -3
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.js +2 -2
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +2 -2
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +2 -2
- package/dist/src/utils/environmentContext.js +1 -1
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +1 -1
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/errorReporting.d.ts +1 -1
- package/dist/src/utils/errors.d.ts +19 -0
- package/dist/src/utils/errors.js +32 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/fetch.js +1 -1
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +23 -12
- package/dist/src/utils/fileUtils.js +155 -75
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +293 -1
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/crawler.d.ts +1 -1
- package/dist/src/utils/filesearch/crawler.test.js +2 -2
- package/dist/src/utils/filesearch/crawler.test.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
- package/dist/src/utils/filesearch/fileSearch.js +14 -9
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.test.js +90 -0
- package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -2
- package/dist/src/utils/generateContentResponseUtilities.js +1 -13
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.test.js +2 -40
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.d.ts +2 -2
- package/dist/src/utils/getFolderStructure.js +2 -2
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/getFolderStructure.test.js +13 -13
- package/dist/src/utils/getFolderStructure.test.js.map +1 -1
- package/dist/src/utils/getPty.d.ts +19 -0
- package/dist/src/utils/getPty.js +23 -0
- package/dist/src/utils/getPty.js.map +1 -0
- package/dist/src/utils/gitIgnoreParser.js +3 -3
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.test.js +3 -3
- package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
- package/dist/src/utils/gitUtils.js +2 -2
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/ignorePatterns.d.ts +103 -0
- package/dist/src/utils/ignorePatterns.js +220 -0
- package/dist/src/utils/ignorePatterns.js.map +1 -0
- package/dist/src/utils/ignorePatterns.test.d.ts +6 -0
- package/dist/src/utils/ignorePatterns.test.js +250 -0
- package/dist/src/utils/ignorePatterns.test.js.map +1 -0
- package/dist/src/utils/installationManager.d.ts +16 -0
- package/dist/src/utils/installationManager.js +50 -0
- package/dist/src/utils/installationManager.js.map +1 -0
- package/dist/src/utils/installationManager.test.d.ts +6 -0
- package/dist/src/utils/installationManager.test.js +83 -0
- package/dist/src/utils/installationManager.test.js.map +1 -0
- package/dist/src/utils/language-detection.d.ts +6 -0
- package/dist/src/utils/language-detection.js +101 -0
- package/dist/src/utils/language-detection.js.map +1 -0
- package/dist/src/utils/llm-edit-fixer.d.ts +25 -0
- package/dist/src/utils/llm-edit-fixer.js +112 -0
- package/dist/src/utils/llm-edit-fixer.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.d.ts +7 -6
- package/dist/src/utils/memoryDiscovery.js +68 -33
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +76 -20
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.js +2 -2
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.test.js +2 -141
- package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
- package/dist/src/utils/messageInspectors.d.ts +1 -1
- package/dist/src/utils/nextSpeakerChecker.d.ts +2 -2
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/partUtils.d.ts +22 -1
- package/dist/src/utils/partUtils.js +68 -0
- package/dist/src/utils/partUtils.js.map +1 -1
- package/dist/src/utils/partUtils.test.js +112 -1
- package/dist/src/utils/partUtils.test.js.map +1 -1
- package/dist/src/utils/pathReader.d.ts +17 -0
- package/dist/src/utils/pathReader.js +92 -0
- package/dist/src/utils/pathReader.js.map +1 -0
- package/dist/src/utils/pathReader.test.d.ts +6 -0
- package/dist/src/utils/pathReader.test.js +363 -0
- package/dist/src/utils/pathReader.test.js.map +1 -0
- package/dist/src/utils/paths.d.ts +1 -18
- package/dist/src/utils/paths.js +3 -29
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.d.ts +1 -1
- package/dist/src/utils/retry.test.js +4 -1
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/schemaValidator.js +4 -0
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/session.js +1 -1
- package/dist/src/utils/session.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +1 -1
- package/dist/src/utils/shell-utils.js +23 -29
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +8 -1
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/summarizer.d.ts +2 -2
- package/dist/src/utils/summarizer.test.js.map +1 -1
- package/dist/src/utils/systemEncoding.js +2 -2
- package/dist/src/utils/systemEncoding.js.map +1 -1
- package/dist/src/utils/systemEncoding.test.js +2 -2
- package/dist/src/utils/systemEncoding.test.js.map +1 -1
- package/dist/src/utils/tool-utils.d.ts +19 -0
- package/dist/src/utils/tool-utils.js +58 -0
- package/dist/src/utils/tool-utils.js.map +1 -0
- package/dist/src/utils/tool-utils.test.d.ts +6 -0
- package/dist/src/utils/tool-utils.test.js +61 -0
- package/dist/src/utils/tool-utils.test.js.map +1 -0
- package/dist/src/utils/userAccountManager.d.ts +20 -0
- package/dist/src/utils/userAccountManager.js +114 -0
- package/dist/src/utils/userAccountManager.js.map +1 -0
- package/dist/src/utils/userAccountManager.test.d.ts +6 -0
- package/dist/src/utils/{user_account.test.js → userAccountManager.test.js} +33 -30
- package/dist/src/utils/userAccountManager.test.js.map +1 -0
- package/dist/src/utils/workspaceContext.js +13 -7
- package/dist/src/utils/workspaceContext.js.map +1 -1
- package/dist/src/utils/workspaceContext.test.js +41 -16
- package/dist/src/utils/workspaceContext.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +25 -12
- package/dist/src/utils/user_account.d.ts +0 -9
- package/dist/src/utils/user_account.js +0 -109
- package/dist/src/utils/user_account.js.map +0 -1
- package/dist/src/utils/user_account.test.js.map +0 -1
- package/dist/src/utils/user_id.d.ts +0 -11
- package/dist/src/utils/user_id.js +0 -49
- package/dist/src/utils/user_id.js.map +0 -1
- package/dist/src/utils/user_id.test.js +0 -21
- package/dist/src/utils/user_id.test.js.map +0 -1
- /package/dist/src/{utils/user_account.test.d.ts → config/storage.test.d.ts} +0 -0
- /package/dist/src/{utils/user_id.test.d.ts → ide/process-utils.test.d.ts} +0 -0
|
@@ -11,7 +11,7 @@ import { createContentGenerator } from './contentGenerator.js';
|
|
|
11
11
|
import { getEnvironmentContext } from '../utils/environmentContext.js';
|
|
12
12
|
import { executeToolCall } from './nonInteractiveToolExecutor.js';
|
|
13
13
|
import { DEFAULT_GEMINI_MODEL } from '../config/models.js';
|
|
14
|
-
import { Type
|
|
14
|
+
import { Type } from '@google/genai';
|
|
15
15
|
import { ToolErrorType } from '../tools/tool-error.js';
|
|
16
16
|
vi.mock('./geminiChat.js');
|
|
17
17
|
vi.mock('./contentGenerator.js');
|
|
@@ -36,7 +36,7 @@ async function createMockConfig(toolRegistryMocks = {}) {
|
|
|
36
36
|
getFunctionDeclarationsFiltered: vi.fn().mockReturnValue([]),
|
|
37
37
|
...toolRegistryMocks,
|
|
38
38
|
};
|
|
39
|
-
vi.spyOn(config, 'getToolRegistry').
|
|
39
|
+
vi.spyOn(config, 'getToolRegistry').mockReturnValue(mockToolRegistry);
|
|
40
40
|
return { config, toolRegistry: mockToolRegistry };
|
|
41
41
|
}
|
|
42
42
|
// Helper to simulate LLM responses (sequence of tool calls over multiple turns)
|
|
@@ -122,7 +122,8 @@ describe('subagent.ts', () => {
|
|
|
122
122
|
});
|
|
123
123
|
it('should throw an error if a tool requires confirmation', async () => {
|
|
124
124
|
const mockTool = {
|
|
125
|
-
|
|
125
|
+
name: 'risky_tool',
|
|
126
|
+
schema: { parametersJsonSchema: { type: 'object', properties: {} } },
|
|
126
127
|
build: vi.fn().mockReturnValue({
|
|
127
128
|
shouldConfirmExecute: vi.fn().mockResolvedValue({
|
|
128
129
|
type: 'exec',
|
|
@@ -136,11 +137,13 @@ describe('subagent.ts', () => {
|
|
|
136
137
|
getTool: vi.fn().mockReturnValue(mockTool),
|
|
137
138
|
});
|
|
138
139
|
const toolConfig = { tools: ['risky_tool'] };
|
|
139
|
-
|
|
140
|
+
const options = { toolConfig };
|
|
141
|
+
await expect(SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, options)).rejects.toThrow('Tool "risky_tool" requires user confirmation and cannot be used in a non-interactive subagent.');
|
|
140
142
|
});
|
|
141
143
|
it('should succeed if tools do not require confirmation', async () => {
|
|
142
144
|
const mockTool = {
|
|
143
|
-
|
|
145
|
+
name: 'safe_tool',
|
|
146
|
+
schema: { parametersJsonSchema: { type: 'object', properties: {} } },
|
|
144
147
|
build: vi.fn().mockReturnValue({
|
|
145
148
|
shouldConfirmExecute: vi.fn().mockResolvedValue(null),
|
|
146
149
|
}),
|
|
@@ -150,7 +153,8 @@ describe('subagent.ts', () => {
|
|
|
150
153
|
getTool: vi.fn().mockReturnValue(mockTool),
|
|
151
154
|
});
|
|
152
155
|
const toolConfig = { tools: ['safe_tool'] };
|
|
153
|
-
const
|
|
156
|
+
const options = { toolConfig };
|
|
157
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, options);
|
|
154
158
|
expect(scope).toBeInstanceOf(SubAgentScope);
|
|
155
159
|
});
|
|
156
160
|
it('should skip interactivity check and warn for tools with required parameters', async () => {
|
|
@@ -158,11 +162,12 @@ describe('subagent.ts', () => {
|
|
|
158
162
|
.spyOn(console, 'warn')
|
|
159
163
|
.mockImplementation(() => { });
|
|
160
164
|
const mockToolWithParams = {
|
|
165
|
+
name: 'tool_with_params',
|
|
161
166
|
schema: {
|
|
162
|
-
|
|
163
|
-
type:
|
|
167
|
+
parametersJsonSchema: {
|
|
168
|
+
type: 'object',
|
|
164
169
|
properties: {
|
|
165
|
-
path: { type:
|
|
170
|
+
path: { type: 'string' },
|
|
166
171
|
},
|
|
167
172
|
required: ['path'],
|
|
168
173
|
},
|
|
@@ -172,10 +177,12 @@ describe('subagent.ts', () => {
|
|
|
172
177
|
};
|
|
173
178
|
const { config } = await createMockConfig({
|
|
174
179
|
getTool: vi.fn().mockReturnValue(mockToolWithParams),
|
|
180
|
+
getAllTools: vi.fn().mockReturnValue([mockToolWithParams]),
|
|
175
181
|
});
|
|
176
182
|
const toolConfig = { tools: ['tool_with_params'] };
|
|
183
|
+
const options = { toolConfig };
|
|
177
184
|
// The creation should succeed without throwing
|
|
178
|
-
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig,
|
|
185
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, options);
|
|
179
186
|
expect(scope).toBeInstanceOf(SubAgentScope);
|
|
180
187
|
// Check that the warning was logged
|
|
181
188
|
expect(consoleWarnSpy).toHaveBeenCalledWith('Cannot check tool "tool_with_params" for interactivity because it requires parameters. Assuming it is safe for non-interactive use.');
|
|
@@ -229,8 +236,7 @@ describe('subagent.ts', () => {
|
|
|
229
236
|
const context = new ContextState();
|
|
230
237
|
// Model stops immediately
|
|
231
238
|
mockSendMessageStream.mockImplementation(createMockStream(['stop']));
|
|
232
|
-
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig,
|
|
233
|
-
outputConfig);
|
|
239
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, { outputConfig });
|
|
234
240
|
await scope.runNonInteractive(context);
|
|
235
241
|
const generationConfig = getGenerationConfigFromMock();
|
|
236
242
|
const systemInstruction = generationConfig.systemInstruction;
|
|
@@ -323,16 +329,14 @@ describe('subagent.ts', () => {
|
|
|
323
329
|
],
|
|
324
330
|
'stop',
|
|
325
331
|
]));
|
|
326
|
-
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig,
|
|
332
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, { outputConfig });
|
|
327
333
|
await scope.runNonInteractive(new ContextState());
|
|
328
334
|
expect(scope.output.terminate_reason).toBe(SubagentTerminateMode.GOAL);
|
|
329
335
|
expect(scope.output.emitted_vars).toEqual({ result: 'Success!' });
|
|
330
|
-
expect(mockSendMessageStream).toHaveBeenCalledTimes(
|
|
336
|
+
expect(mockSendMessageStream).toHaveBeenCalledTimes(1);
|
|
331
337
|
// Check the tool response sent back in the second call
|
|
332
|
-
const secondCallArgs = mockSendMessageStream.mock.calls[
|
|
333
|
-
expect(secondCallArgs.message).toEqual([
|
|
334
|
-
{ text: 'Emitted variable result successfully' },
|
|
335
|
-
]);
|
|
338
|
+
const secondCallArgs = mockSendMessageStream.mock.calls[0][0];
|
|
339
|
+
expect(secondCallArgs.message).toEqual([{ text: 'Get Started!' }]);
|
|
336
340
|
});
|
|
337
341
|
it('should execute external tools and provide the response to the model', async () => {
|
|
338
342
|
const listFilesToolDef = {
|
|
@@ -340,10 +344,11 @@ describe('subagent.ts', () => {
|
|
|
340
344
|
description: 'Lists files',
|
|
341
345
|
parameters: { type: Type.OBJECT, properties: {} },
|
|
342
346
|
};
|
|
343
|
-
const { config
|
|
347
|
+
const { config } = await createMockConfig({
|
|
344
348
|
getFunctionDeclarationsFiltered: vi
|
|
345
349
|
.fn()
|
|
346
350
|
.mockReturnValue([listFilesToolDef]),
|
|
351
|
+
getTool: vi.fn().mockReturnValue(undefined),
|
|
347
352
|
});
|
|
348
353
|
const toolConfig = { tools: ['list_files'] };
|
|
349
354
|
// Turn 1: Model calls the external tool
|
|
@@ -361,15 +366,15 @@ describe('subagent.ts', () => {
|
|
|
361
366
|
// Mock the tool execution result
|
|
362
367
|
vi.mocked(executeToolCall).mockResolvedValue({
|
|
363
368
|
callId: 'call_1',
|
|
364
|
-
responseParts: 'file1.txt\nfile2.ts',
|
|
369
|
+
responseParts: [{ text: 'file1.txt\nfile2.ts' }],
|
|
365
370
|
resultDisplay: 'Listed 2 files',
|
|
366
371
|
error: undefined,
|
|
367
372
|
errorType: undefined, // Or ToolErrorType.NONE if available and appropriate
|
|
368
373
|
});
|
|
369
|
-
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, toolConfig);
|
|
374
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, { toolConfig });
|
|
370
375
|
await scope.runNonInteractive(new ContextState());
|
|
371
376
|
// Check tool execution
|
|
372
|
-
expect(executeToolCall).toHaveBeenCalledWith(config, expect.objectContaining({ name: 'list_files', args: { path: '.' } }),
|
|
377
|
+
expect(executeToolCall).toHaveBeenCalledWith(config, expect.objectContaining({ name: 'list_files', args: { path: '.' } }), expect.any(AbortSignal));
|
|
373
378
|
// Check the response sent back to the model
|
|
374
379
|
const secondCallArgs = mockSendMessageStream.mock.calls[1][0];
|
|
375
380
|
expect(secondCallArgs.message).toEqual([
|
|
@@ -395,12 +400,12 @@ describe('subagent.ts', () => {
|
|
|
395
400
|
// Mock the tool execution failure.
|
|
396
401
|
vi.mocked(executeToolCall).mockResolvedValue({
|
|
397
402
|
callId: 'call_fail',
|
|
398
|
-
responseParts: 'ERROR: Tool failed catastrophically', // This should be sent to the model
|
|
403
|
+
responseParts: [{ text: 'ERROR: Tool failed catastrophically' }], // This should be sent to the model
|
|
399
404
|
resultDisplay: 'Tool failed catastrophically',
|
|
400
405
|
error: new Error('Failure'),
|
|
401
406
|
errorType: ToolErrorType.INVALID_TOOL_PARAMS,
|
|
402
407
|
});
|
|
403
|
-
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, toolConfig);
|
|
408
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, { toolConfig });
|
|
404
409
|
await scope.runNonInteractive(new ContextState());
|
|
405
410
|
// The agent should send the specific error message from responseParts.
|
|
406
411
|
const secondCallArgs = mockSendMessageStream.mock.calls[1][0];
|
|
@@ -431,7 +436,7 @@ describe('subagent.ts', () => {
|
|
|
431
436
|
],
|
|
432
437
|
'stop',
|
|
433
438
|
]));
|
|
434
|
-
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig,
|
|
439
|
+
const scope = await SubAgentScope.create('test-agent', config, promptConfig, defaultModelConfig, defaultRunConfig, { outputConfig });
|
|
435
440
|
await scope.runNonInteractive(new ContextState());
|
|
436
441
|
// Check the nudge message sent in Turn 2
|
|
437
442
|
const secondCallArgs = mockSendMessageStream.mock.calls[1][0];
|
|
@@ -442,7 +447,7 @@ describe('subagent.ts', () => {
|
|
|
442
447
|
expect(scope.output.emitted_vars).toEqual({
|
|
443
448
|
required_var: 'Here it is',
|
|
444
449
|
});
|
|
445
|
-
expect(mockSendMessageStream).toHaveBeenCalledTimes(
|
|
450
|
+
expect(mockSendMessageStream).toHaveBeenCalledTimes(2);
|
|
446
451
|
});
|
|
447
452
|
});
|
|
448
453
|
describe('runNonInteractive - Termination and Recovery', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.test.js","sourceRoot":"","sources":["../../../src/core/subagent.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subagent.test.js","sourceRoot":"","sources":["../../../src/core/subagent.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,qBAAqB,GACtB,MAAM,eAAe,CAAC;AASvB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOrC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC3B,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACjC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AAC1C,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AAC3C,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEhC,KAAK,UAAU,gBAAgB,CAC7B,iBAAiB,GAAG,EAAE;IAEtB,MAAM,YAAY,GAAqB;QACrC,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,KAAK;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,MAAM,MAAM,CAAC,WAAW,CAAC,WAAkB,CAAC,CAAC;IAE7C,oBAAoB;IACpB,MAAM,gBAAgB,GAAG;QACvB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,+BAA+B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5D,GAAG,iBAAiB;KACM,CAAC;IAE7B,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACtE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACpD,CAAC;AAED,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,CACvB,iBAAiD,EACjD,EAAE;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;QACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;QACpD,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,SAAS,CAAC;YACrB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,yHAAyH;gBACzH,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC1B,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,kCAAkC;YAC7D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,qBAA2B,CAAC;QAEhC,MAAM,kBAAkB,GAAgB;YACtC,KAAK,EAAE,yBAAyB;YAChC,IAAI,EAAE,GAAG,EAAE,iCAAiC;YAC5C,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,MAAM,gBAAgB,GAAc;YAClC,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,EAAE,CAAC,aAAa,EAAE,CAAC;YAEnB,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,iBAAiB,CAAC;gBACjD,EAAE,IAAI,EAAE,aAAa,EAAE;aACxB,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,iBAAiB,CAAC;gBAClD,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC3B,8DAA8D;aACxD,CAAC,CAAC;YAEV,qBAAqB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,iDAAiD;YACjD,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,kBAAkB,CACtC,GAAG,EAAE,CACH,CAAC;gBACC,iBAAiB,EAAE,qBAAqB;aACzC,CAA0B,CAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,EAAE,CAAC,eAAe,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,2DAA2D;QAC3D,MAAM,2BAA2B,GAAG,CAClC,SAAS,GAAG,CAAC,EACqD,EAAE;YACpE,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,gBAAgB,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,wCAAwC;YACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACxE,OAAO,gBAEN,CAAC;QACJ,CAAC,CAAC;QAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,MAAM,YAAY,GAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;YAEnE,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;gBAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;gBACrE,MAAM,QAAQ,GAAG;oBACf,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;oBACpE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;wBAC7B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;4BAC9C,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE,UAAU;yBACpB,CAAC;qBACH,CAAC;iBACH,CAAC;gBAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;oBACxC,8DAA8D;oBAC9D,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAe,CAAC;iBAClD,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzD,MAAM,OAAO,GAAoB,EAAE,UAAU,EAAE,CAAC;gBAEhD,MAAM,MAAM,CACV,aAAa,CAAC,MAAM,CAClB,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CACR,CACF,CAAC,OAAO,CAAC,OAAO,CACf,gGAAgG,CACjG,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,MAAM,QAAQ,GAAG;oBACf,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;oBACpE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;wBAC7B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;qBACtD,CAAC;iBACH,CAAC;gBACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;oBACxC,8DAA8D;oBAC9D,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAe,CAAC;iBAClD,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAoB,EAAE,UAAU,EAAE,CAAC;gBAEhD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CACR,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;gBAC3F,MAAM,cAAc,GAAG,EAAE;qBACtB,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;qBACtB,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAEhC,MAAM,kBAAkB,GAAG;oBACzB,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE;wBACN,oBAAoB,EAAE;4BACpB,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BACzB;4BACD,QAAQ,EAAE,CAAC,MAAM,CAAC;yBACnB;qBACF;oBACD,wDAAwD;oBACxD,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;iBACf,CAAC;gBAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;oBACxC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC;oBACpD,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,kBAAkB,CAAC,CAAC;iBAC3D,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/D,MAAM,OAAO,GAAoB,EAAE,UAAU,EAAE,CAAC;gBAEhD,+CAA+C;gBAC/C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CACR,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAE5C,oCAAoC;gBACpC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACzC,qIAAqI,CACtI,CAAC;gBAEF,gCAAgC;gBAChC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAExD,cAAc,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAChE,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;gBACrF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAE5C,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;gBAElC,MAAM,YAAY,GAAiB;oBACjC,YAAY,EAAE,sCAAsC;iBACrD,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAE/B,0BAA0B;gBAC1B,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAErE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAEvC,gEAAgE;gBAChE,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAErD,0BAA0B;gBAC1B,MAAM,gBAAgB,GAAG,2BAA2B,EAAE,CAAC;gBAEvD,6BAA6B;gBAC7B,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACnE,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAClD,oCAAoC,CACrC,CAAC;gBACF,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAClD,kBAAkB,CACnB,CAAC;gBAEF,qDAAqD;gBACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBACtB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE;oBAClD;wBACE,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC;qBACrD;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;gBAChG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;gBAElC,MAAM,YAAY,GAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;gBACpE,MAAM,YAAY,GAAiB;oBACjC,OAAO,EAAE;wBACP,OAAO,EAAE,kBAAkB;qBAC5B;iBACF,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBAEnC,0BAA0B;gBAC1B,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAErE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,YAAY,EAAE,CACjB,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAEvC,MAAM,gBAAgB,GAAG,2BAA2B,EAAE,CAAC;gBACvD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,iBAA2B,CAAC;gBAEvE,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBACpD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CACjC,6CAA6C,CAC9C,CAAC;gBACF,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CACjC,gDAAgD,CACjD,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;gBAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;gBAElC,MAAM,eAAe,GAAc;oBACjC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;iBAC1C,CAAC;gBACF,MAAM,YAAY,GAAiB,EAAE,eAAe,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBAEnC,0BAA0B;gBAC1B,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAErE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAEvC,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrD,MAAM,gBAAgB,GAAG,2BAA2B,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE5B,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,CAAC;gBAC3D,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBACtB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE;oBAClD;wBACE,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC;qBACrD;oBACD,GAAG,eAAe;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAiB;oBACjC,YAAY,EAAE,4CAA4C;iBAC3D,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7B,uBAAuB;gBAEvB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBAEF,yGAAyG;gBACzG,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC5D,wDAAwD,CACzD,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;gBAC5F,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAiB;oBACjC,YAAY,EAAE,QAAQ;oBACtB,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;iBAC7D,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBAEnC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,WAAW,EACX,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBAEF,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC5D,6EAA6E,CAC9E,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAC1D,MAAM,YAAY,GAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;YAErE,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;gBACrF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,0BAA0B;gBAC1B,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAErE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CAEjB,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAElD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACvD,4BAA4B;gBAC5B,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBAC7D,EAAE,IAAI,EAAE,cAAc,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;gBACzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAiB;oBACjC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;iBACxC,CAAC;gBAEF,6CAA6C;gBAC7C,wDAAwD;gBACxD,qBAAqB,CAAC,kBAAkB,CACtC,gBAAgB,CAAC;oBACf;wBACE;4BACE,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE;gCACJ,kBAAkB,EAAE,QAAQ;gCAC5B,mBAAmB,EAAE,UAAU;6BAChC;yBACF;qBACF;oBACD,MAAM;iBACP,CAAC,CACH,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,YAAY,EAAE,CACjB,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAElD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBAClE,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAEvD,uDAAuD;gBACvD,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACnF,MAAM,gBAAgB,GAAwB;oBAC5C,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,aAAa;oBAC1B,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;iBAClD,CAAC;gBAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;oBACxC,+BAA+B,EAAE,EAAE;yBAChC,EAAE,EAAE;yBACJ,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC;oBACtC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;iBAC5C,CAAC,CAAC;gBACH,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBAEzD,wCAAwC;gBACxC,sBAAsB;gBACtB,qBAAqB,CAAC,kBAAkB,CACtC,gBAAgB,CAAC;oBACf;wBACE;4BACE,EAAE,EAAE,QAAQ;4BACZ,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;yBACpB;qBACF;oBACD,MAAM;iBACP,CAAC,CACH,CAAC;gBAEF,iCAAiC;gBACjC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC;oBAC3C,MAAM,EAAE,QAAQ;oBAChB,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;oBAChD,aAAa,EAAE,gBAAgB;oBAC/B,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,SAAS,EAAE,qDAAqD;iBAC5E,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,UAAU,EAAE,CACf,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAElD,uBAAuB;gBACvB,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,MAAM,EACN,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EACpE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CACxB,CAAC;gBAEF,4CAA4C;gBAC5C,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE;iBAChC,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;gBAE3D,uCAAuC;gBACvC,yDAAyD;gBACzD,qBAAqB,CAAC,kBAAkB,CACtC,gBAAgB,CAAC;oBACf;wBACE;4BACE,EAAE,EAAE,WAAW;4BACf,IAAI,EAAE,cAAc;4BACpB,IAAI,EAAE,EAAE;yBACT;qBACF;oBACD,MAAM;iBACP,CAAC,CACH,CAAC;gBAEF,mCAAmC;gBACnC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC;oBAC3C,MAAM,EAAE,WAAW;oBACnB,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC,EAAE,mCAAmC;oBACrG,aAAa,EAAE,8BAA8B;oBAC7C,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC;oBAC3B,SAAS,EAAE,aAAa,CAAC,mBAAmB;iBAC7C,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,UAAU,EAAE,CACf,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAElD,uEAAuE;gBACvE,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBACrC;wBACE,IAAI,EAAE,qCAAqC;qBAC5C;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;gBACzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAiB;oBACjC,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;iBAC7C,CAAC;gBAEF,kCAAkC;gBAClC,6DAA6D;gBAC7D,sBAAsB;gBACtB,qBAAqB,CAAC,kBAAkB,CACtC,gBAAgB,CAAC;oBACf,MAAM;oBACN;wBACE;4BACE,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE;gCACJ,kBAAkB,EAAE,cAAc;gCAClC,mBAAmB,EAAE,YAAY;6BAClC;yBACF;qBACF;oBACD,MAAM;iBACP,CAAC,CACH,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,YAAY,EAAE,CACjB,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAElD,yCAAyC;gBACzC,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9D,wFAAwF;gBACxF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBACjE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAC9C,gCAAgC,CACjC,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;oBACxC,YAAY,EAAE,YAAY;iBAC3B,CAAC,CAAC;gBACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC5D,MAAM,YAAY,GAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;YAErE,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAc,EAAE,GAAG,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBAEnE,sDAAsD;gBACtD,qBAAqB,CAAC,kBAAkB,CACtC,gBAAgB,CAAC;oBACf;wBACE;4BACE,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE;yBAChE;qBACF;oBACD;wBACE;4BACE,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE;yBAChE;qBACF;oBACD,8BAA8B;oBAC9B;wBACE;4BACE,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE;yBAChE;qBACF;iBACF,CAAC,CACH,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV,CAAC;gBAEF,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAElD,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACxC,qBAAqB,CAAC,SAAS,CAChC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;gBAC7F,4CAA4C;gBAC5C,EAAE,CAAC,aAAa,EAAE,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAc,EAAE,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;gBAErE,4GAA4G;gBAC5G,IAAI,aAEK,CAAC;gBACV,MAAM,aAAa,GAAG,IAAI,OAAO,CAE/B,CAAC,OAAO,EAAE,EAAE;oBACZ,8DAA8D;oBAC9D,aAAa,GAAG,OAAc,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,uDAAuD;gBACvD,qBAAqB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAErD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV,CAAC;gBAEF,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBAE/D,0FAA0F;gBAC1F,MAAM,EAAE,CAAC,wBAAwB,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAEjD,oDAAoD;gBACpD,8DAA8D;gBAC9D,aAAc,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAS,CAAC,CAAC;gBAEpD,MAAM,UAAU,CAAC;gBAEjB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACxC,qBAAqB,CAAC,OAAO,CAC9B,CAAC;gBACF,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAEvD,EAAE,CAAC,aAAa,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;gBACpE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5C,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;gBAElE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CACtC,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBAEF,MAAM,MAAM,CACV,KAAK,CAAC,iBAAiB,CAAC,IAAI,YAAY,EAAE,CAAC,CAC5C,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/src/core/turn.d.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { PartListUnion, GenerateContentResponse, FunctionDeclaration, FinishReason } from '@google/genai';
|
|
7
|
-
import { ToolCallConfirmationDetails, ToolResult, ToolResultDisplay } from '../tools/tools.js';
|
|
8
|
-
import { ToolErrorType } from '../tools/tool-error.js';
|
|
9
|
-
import { GeminiChat } from './geminiChat.js';
|
|
6
|
+
import type { Part, PartListUnion, GenerateContentResponse, FunctionDeclaration, FinishReason } from '@google/genai';
|
|
7
|
+
import type { ToolCallConfirmationDetails, ToolResult, ToolResultDisplay } from '../tools/tools.js';
|
|
8
|
+
import type { ToolErrorType } from '../tools/tool-error.js';
|
|
9
|
+
import type { GeminiChat } from './geminiChat.js';
|
|
10
10
|
export interface ServerTool {
|
|
11
11
|
name: string;
|
|
12
12
|
schema: FunctionDeclaration;
|
|
@@ -24,7 +24,8 @@ export declare enum GeminiEventType {
|
|
|
24
24
|
Thought = "thought",
|
|
25
25
|
MaxSessionTurns = "max_session_turns",
|
|
26
26
|
Finished = "finished",
|
|
27
|
-
LoopDetected = "loop_detected"
|
|
27
|
+
LoopDetected = "loop_detected",
|
|
28
|
+
Citation = "citation"
|
|
28
29
|
}
|
|
29
30
|
export interface StructuredError {
|
|
30
31
|
message: string;
|
|
@@ -42,7 +43,7 @@ export interface ToolCallRequestInfo {
|
|
|
42
43
|
}
|
|
43
44
|
export interface ToolCallResponseInfo {
|
|
44
45
|
callId: string;
|
|
45
|
-
responseParts:
|
|
46
|
+
responseParts: Part[];
|
|
46
47
|
resultDisplay: ToolResultDisplay | undefined;
|
|
47
48
|
error: Error | undefined;
|
|
48
49
|
errorType: ToolErrorType | undefined;
|
|
@@ -82,9 +83,20 @@ export type ServerGeminiErrorEvent = {
|
|
|
82
83
|
type: GeminiEventType.Error;
|
|
83
84
|
value: GeminiErrorEventValue;
|
|
84
85
|
};
|
|
86
|
+
export declare enum CompressionStatus {
|
|
87
|
+
/** The compression was successful */
|
|
88
|
+
COMPRESSED = 1,
|
|
89
|
+
/** The compression failed due to the compression inflating the token count */
|
|
90
|
+
COMPRESSION_FAILED_INFLATED_TOKEN_COUNT = 2,
|
|
91
|
+
/** The compression failed due to an error counting tokens */
|
|
92
|
+
COMPRESSION_FAILED_TOKEN_COUNT_ERROR = 3,
|
|
93
|
+
/** The compression was not necessary and no action was taken */
|
|
94
|
+
NOOP = 4
|
|
95
|
+
}
|
|
85
96
|
export interface ChatCompressionInfo {
|
|
86
97
|
originalTokenCount: number;
|
|
87
98
|
newTokenCount: number;
|
|
99
|
+
compressionStatus: CompressionStatus;
|
|
88
100
|
}
|
|
89
101
|
export type ServerGeminiChatCompressedEvent = {
|
|
90
102
|
type: GeminiEventType.ChatCompressed;
|
|
@@ -100,12 +112,17 @@ export type ServerGeminiFinishedEvent = {
|
|
|
100
112
|
export type ServerGeminiLoopDetectedEvent = {
|
|
101
113
|
type: GeminiEventType.LoopDetected;
|
|
102
114
|
};
|
|
103
|
-
export type
|
|
115
|
+
export type ServerGeminiCitationEvent = {
|
|
116
|
+
type: GeminiEventType.Citation;
|
|
117
|
+
value: string;
|
|
118
|
+
};
|
|
119
|
+
export type ServerGeminiStreamEvent = ServerGeminiChatCompressedEvent | ServerGeminiCitationEvent | ServerGeminiContentEvent | ServerGeminiErrorEvent | ServerGeminiFinishedEvent | ServerGeminiLoopDetectedEvent | ServerGeminiMaxSessionTurnsEvent | ServerGeminiThoughtEvent | ServerGeminiToolCallConfirmationEvent | ServerGeminiToolCallRequestEvent | ServerGeminiToolCallResponseEvent | ServerGeminiUserCancelledEvent;
|
|
104
120
|
export declare class Turn {
|
|
105
121
|
private readonly chat;
|
|
106
122
|
private readonly prompt_id;
|
|
107
123
|
readonly pendingToolCalls: ToolCallRequestInfo[];
|
|
108
124
|
private debugResponses;
|
|
125
|
+
private pendingCitations;
|
|
109
126
|
finishReason: FinishReason | undefined;
|
|
110
127
|
constructor(chat: GeminiChat, prompt_id: string);
|
|
111
128
|
run(req: PartListUnion, signal: AbortSignal): AsyncGenerator<ServerGeminiStreamEvent>;
|
package/dist/src/core/turn.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { getResponseText } from '../utils/
|
|
6
|
+
import { getResponseText } from '../utils/partUtils.js';
|
|
7
7
|
import { reportError } from '../utils/errorReporting.js';
|
|
8
8
|
import { getErrorMessage, UnauthorizedError, toFriendlyError, } from '../utils/errors.js';
|
|
9
9
|
export var GeminiEventType;
|
|
@@ -19,20 +19,30 @@ export var GeminiEventType;
|
|
|
19
19
|
GeminiEventType["MaxSessionTurns"] = "max_session_turns";
|
|
20
20
|
GeminiEventType["Finished"] = "finished";
|
|
21
21
|
GeminiEventType["LoopDetected"] = "loop_detected";
|
|
22
|
+
GeminiEventType["Citation"] = "citation";
|
|
22
23
|
})(GeminiEventType || (GeminiEventType = {}));
|
|
24
|
+
export var CompressionStatus;
|
|
25
|
+
(function (CompressionStatus) {
|
|
26
|
+
/** The compression was successful */
|
|
27
|
+
CompressionStatus[CompressionStatus["COMPRESSED"] = 1] = "COMPRESSED";
|
|
28
|
+
/** The compression failed due to the compression inflating the token count */
|
|
29
|
+
CompressionStatus[CompressionStatus["COMPRESSION_FAILED_INFLATED_TOKEN_COUNT"] = 2] = "COMPRESSION_FAILED_INFLATED_TOKEN_COUNT";
|
|
30
|
+
/** The compression failed due to an error counting tokens */
|
|
31
|
+
CompressionStatus[CompressionStatus["COMPRESSION_FAILED_TOKEN_COUNT_ERROR"] = 3] = "COMPRESSION_FAILED_TOKEN_COUNT_ERROR";
|
|
32
|
+
/** The compression was not necessary and no action was taken */
|
|
33
|
+
CompressionStatus[CompressionStatus["NOOP"] = 4] = "NOOP";
|
|
34
|
+
})(CompressionStatus || (CompressionStatus = {}));
|
|
23
35
|
// A turn manages the agentic loop turn within the server context.
|
|
24
36
|
export class Turn {
|
|
25
37
|
chat;
|
|
26
38
|
prompt_id;
|
|
27
|
-
pendingToolCalls;
|
|
28
|
-
debugResponses;
|
|
29
|
-
|
|
39
|
+
pendingToolCalls = [];
|
|
40
|
+
debugResponses = [];
|
|
41
|
+
pendingCitations = new Set();
|
|
42
|
+
finishReason = undefined;
|
|
30
43
|
constructor(chat, prompt_id) {
|
|
31
44
|
this.chat = chat;
|
|
32
45
|
this.prompt_id = prompt_id;
|
|
33
|
-
this.pendingToolCalls = [];
|
|
34
|
-
this.debugResponses = [];
|
|
35
|
-
this.finishReason = undefined;
|
|
36
46
|
}
|
|
37
47
|
// The run method yields simpler events suitable for server logic
|
|
38
48
|
async *run(req, signal) {
|
|
@@ -82,9 +92,19 @@ export class Turn {
|
|
|
82
92
|
yield event;
|
|
83
93
|
}
|
|
84
94
|
}
|
|
95
|
+
for (const citation of getCitations(resp)) {
|
|
96
|
+
this.pendingCitations.add(citation);
|
|
97
|
+
}
|
|
85
98
|
// Check if response was truncated or stopped for various reasons
|
|
86
99
|
const finishReason = resp.candidates?.[0]?.finishReason;
|
|
87
100
|
if (finishReason) {
|
|
101
|
+
if (this.pendingCitations.size > 0) {
|
|
102
|
+
yield {
|
|
103
|
+
type: GeminiEventType.Citation,
|
|
104
|
+
value: `Citations:\n${[...this.pendingCitations].sort().join('\n')}`,
|
|
105
|
+
};
|
|
106
|
+
this.pendingCitations.clear();
|
|
107
|
+
}
|
|
88
108
|
this.finishReason = finishReason;
|
|
89
109
|
yield {
|
|
90
110
|
type: GeminiEventType.Finished,
|
|
@@ -94,15 +114,15 @@ export class Turn {
|
|
|
94
114
|
}
|
|
95
115
|
}
|
|
96
116
|
catch (e) {
|
|
97
|
-
const error = toFriendlyError(e);
|
|
98
|
-
if (error instanceof UnauthorizedError) {
|
|
99
|
-
throw error;
|
|
100
|
-
}
|
|
101
117
|
if (signal.aborted) {
|
|
102
118
|
yield { type: GeminiEventType.UserCancelled };
|
|
103
119
|
// Regular cancellation error, fail gracefully.
|
|
104
120
|
return;
|
|
105
121
|
}
|
|
122
|
+
const error = toFriendlyError(e);
|
|
123
|
+
if (error instanceof UnauthorizedError) {
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
106
126
|
const contextForReport = [...this.chat.getHistory(/*curated*/ true), req];
|
|
107
127
|
await reportError(error, 'Error when talking to Gemini API', contextForReport, 'Turn.run-sendMessageStream');
|
|
108
128
|
const status = typeof error === 'object' &&
|
|
@@ -140,4 +160,14 @@ export class Turn {
|
|
|
140
160
|
return this.debugResponses;
|
|
141
161
|
}
|
|
142
162
|
}
|
|
163
|
+
function getCitations(resp) {
|
|
164
|
+
return (resp.candidates?.[0]?.citationMetadata?.citations ?? [])
|
|
165
|
+
.filter((citation) => citation.uri !== undefined)
|
|
166
|
+
.map((citation) => {
|
|
167
|
+
if (citation.title) {
|
|
168
|
+
return `(${citation.title}) ${citation.uri}`;
|
|
169
|
+
}
|
|
170
|
+
return citation.uri;
|
|
171
|
+
});
|
|
172
|
+
}
|
|
143
173
|
//# sourceMappingURL=turn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn.js","sourceRoot":"","sources":["../../../src/core/turn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"turn.js","sourceRoot":"","sources":["../../../src/core/turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
|
-
import { Turn, GeminiEventType
|
|
7
|
+
import { Turn, GeminiEventType } from './turn.js';
|
|
8
8
|
import { reportError } from '../utils/errorReporting.js';
|
|
9
9
|
const mockSendMessageStream = vi.fn();
|
|
10
10
|
const mockGetHistory = vi.fn();
|
|
@@ -344,6 +344,162 @@ describe('Turn', () => {
|
|
|
344
344
|
{ type: GeminiEventType.Finished, value: 'OTHER' },
|
|
345
345
|
]);
|
|
346
346
|
});
|
|
347
|
+
it('should yield citation and finished events when response has citationMetadata', async () => {
|
|
348
|
+
const mockResponseStream = (async function* () {
|
|
349
|
+
yield {
|
|
350
|
+
candidates: [
|
|
351
|
+
{
|
|
352
|
+
content: { parts: [{ text: 'Some text.' }] },
|
|
353
|
+
citationMetadata: {
|
|
354
|
+
citations: [
|
|
355
|
+
{
|
|
356
|
+
uri: 'https://example.com/source1',
|
|
357
|
+
title: 'Source 1 Title',
|
|
358
|
+
},
|
|
359
|
+
],
|
|
360
|
+
},
|
|
361
|
+
finishReason: 'STOP',
|
|
362
|
+
},
|
|
363
|
+
],
|
|
364
|
+
};
|
|
365
|
+
})();
|
|
366
|
+
mockSendMessageStream.mockResolvedValue(mockResponseStream);
|
|
367
|
+
const events = [];
|
|
368
|
+
for await (const event of turn.run([{ text: 'Test citations' }], new AbortController().signal)) {
|
|
369
|
+
events.push(event);
|
|
370
|
+
}
|
|
371
|
+
expect(events).toEqual([
|
|
372
|
+
{ type: GeminiEventType.Content, value: 'Some text.' },
|
|
373
|
+
{
|
|
374
|
+
type: GeminiEventType.Citation,
|
|
375
|
+
value: 'Citations:\n(Source 1 Title) https://example.com/source1',
|
|
376
|
+
},
|
|
377
|
+
{ type: GeminiEventType.Finished, value: 'STOP' },
|
|
378
|
+
]);
|
|
379
|
+
});
|
|
380
|
+
it('should yield a single citation event for multiple citations in one response', async () => {
|
|
381
|
+
const mockResponseStream = (async function* () {
|
|
382
|
+
yield {
|
|
383
|
+
candidates: [
|
|
384
|
+
{
|
|
385
|
+
content: { parts: [{ text: 'Some text.' }] },
|
|
386
|
+
citationMetadata: {
|
|
387
|
+
citations: [
|
|
388
|
+
{
|
|
389
|
+
uri: 'https://example.com/source2',
|
|
390
|
+
title: 'Title2',
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
uri: 'https://example.com/source1',
|
|
394
|
+
title: 'Title1',
|
|
395
|
+
},
|
|
396
|
+
],
|
|
397
|
+
},
|
|
398
|
+
finishReason: 'STOP',
|
|
399
|
+
},
|
|
400
|
+
],
|
|
401
|
+
};
|
|
402
|
+
})();
|
|
403
|
+
mockSendMessageStream.mockResolvedValue(mockResponseStream);
|
|
404
|
+
const events = [];
|
|
405
|
+
for await (const event of turn.run([{ text: 'test' }], new AbortController().signal)) {
|
|
406
|
+
events.push(event);
|
|
407
|
+
}
|
|
408
|
+
expect(events).toEqual([
|
|
409
|
+
{ type: GeminiEventType.Content, value: 'Some text.' },
|
|
410
|
+
{
|
|
411
|
+
type: GeminiEventType.Citation,
|
|
412
|
+
value: 'Citations:\n(Title1) https://example.com/source1\n(Title2) https://example.com/source2',
|
|
413
|
+
},
|
|
414
|
+
{ type: GeminiEventType.Finished, value: 'STOP' },
|
|
415
|
+
]);
|
|
416
|
+
});
|
|
417
|
+
it('should not yield citation event if there is no finish reason', async () => {
|
|
418
|
+
const mockResponseStream = (async function* () {
|
|
419
|
+
yield {
|
|
420
|
+
candidates: [
|
|
421
|
+
{
|
|
422
|
+
content: { parts: [{ text: 'Some text.' }] },
|
|
423
|
+
citationMetadata: {
|
|
424
|
+
citations: [
|
|
425
|
+
{
|
|
426
|
+
uri: 'https://example.com/source1',
|
|
427
|
+
title: 'Source 1 Title',
|
|
428
|
+
},
|
|
429
|
+
],
|
|
430
|
+
},
|
|
431
|
+
// No finishReason
|
|
432
|
+
},
|
|
433
|
+
],
|
|
434
|
+
};
|
|
435
|
+
})();
|
|
436
|
+
mockSendMessageStream.mockResolvedValue(mockResponseStream);
|
|
437
|
+
const events = [];
|
|
438
|
+
for await (const event of turn.run([{ text: 'test' }], new AbortController().signal)) {
|
|
439
|
+
events.push(event);
|
|
440
|
+
}
|
|
441
|
+
expect(events).toEqual([
|
|
442
|
+
{ type: GeminiEventType.Content, value: 'Some text.' },
|
|
443
|
+
]);
|
|
444
|
+
// No Citation or Finished event
|
|
445
|
+
expect(events.some((e) => e.type === GeminiEventType.Citation)).toBe(false);
|
|
446
|
+
});
|
|
447
|
+
it('should ignore citations without a URI', async () => {
|
|
448
|
+
const mockResponseStream = (async function* () {
|
|
449
|
+
yield {
|
|
450
|
+
candidates: [
|
|
451
|
+
{
|
|
452
|
+
content: { parts: [{ text: 'Some text.' }] },
|
|
453
|
+
citationMetadata: {
|
|
454
|
+
citations: [
|
|
455
|
+
{
|
|
456
|
+
uri: 'https://example.com/source1',
|
|
457
|
+
title: 'Good Source',
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
// uri is undefined
|
|
461
|
+
title: 'Bad Source',
|
|
462
|
+
},
|
|
463
|
+
],
|
|
464
|
+
},
|
|
465
|
+
finishReason: 'STOP',
|
|
466
|
+
},
|
|
467
|
+
],
|
|
468
|
+
};
|
|
469
|
+
})();
|
|
470
|
+
mockSendMessageStream.mockResolvedValue(mockResponseStream);
|
|
471
|
+
const events = [];
|
|
472
|
+
for await (const event of turn.run([{ text: 'test' }], new AbortController().signal)) {
|
|
473
|
+
events.push(event);
|
|
474
|
+
}
|
|
475
|
+
expect(events).toEqual([
|
|
476
|
+
{ type: GeminiEventType.Content, value: 'Some text.' },
|
|
477
|
+
{
|
|
478
|
+
type: GeminiEventType.Citation,
|
|
479
|
+
value: 'Citations:\n(Good Source) https://example.com/source1',
|
|
480
|
+
},
|
|
481
|
+
{ type: GeminiEventType.Finished, value: 'STOP' },
|
|
482
|
+
]);
|
|
483
|
+
});
|
|
484
|
+
it('should not crash when cancelled request has malformed error', async () => {
|
|
485
|
+
const abortController = new AbortController();
|
|
486
|
+
const errorToThrow = {
|
|
487
|
+
response: {
|
|
488
|
+
data: undefined, // Malformed error data
|
|
489
|
+
},
|
|
490
|
+
};
|
|
491
|
+
mockSendMessageStream.mockImplementation(async () => {
|
|
492
|
+
abortController.abort();
|
|
493
|
+
throw errorToThrow;
|
|
494
|
+
});
|
|
495
|
+
const events = [];
|
|
496
|
+
const reqParts = [{ text: 'Test malformed error handling' }];
|
|
497
|
+
for await (const event of turn.run(reqParts, abortController.signal)) {
|
|
498
|
+
events.push(event);
|
|
499
|
+
}
|
|
500
|
+
expect(events).toEqual([{ type: GeminiEventType.UserCancelled }]);
|
|
501
|
+
expect(reportError).not.toHaveBeenCalled();
|
|
502
|
+
});
|
|
347
503
|
});
|
|
348
504
|
describe('getDebugResponses', () => {
|
|
349
505
|
it('should return collected debug responses', async () => {
|