@vybestack/llxprt-code-core 0.1.12
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/.last_build +0 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/src/__mocks__/fs/promises.d.ts +11 -0
- package/dist/src/__mocks__/fs/promises.js +17 -0
- package/dist/src/__mocks__/fs/promises.js.map +1 -0
- package/dist/src/code_assist/codeAssist.d.ts +9 -0
- package/dist/src/code_assist/codeAssist.js +19 -0
- package/dist/src/code_assist/codeAssist.js.map +1 -0
- package/dist/src/code_assist/converter.d.ts +68 -0
- package/dist/src/code_assist/converter.js +125 -0
- package/dist/src/code_assist/converter.js.map +1 -0
- package/dist/src/code_assist/converter.test.d.ts +6 -0
- package/dist/src/code_assist/converter.test.js +229 -0
- package/dist/src/code_assist/converter.test.js.map +1 -0
- package/dist/src/code_assist/oauth2.d.ts +20 -0
- package/dist/src/code_assist/oauth2.js +339 -0
- package/dist/src/code_assist/oauth2.js.map +1 -0
- package/dist/src/code_assist/oauth2.test.d.ts +6 -0
- package/dist/src/code_assist/oauth2.test.js +249 -0
- package/dist/src/code_assist/oauth2.test.js.map +1 -0
- package/dist/src/code_assist/server.d.ts +39 -0
- package/dist/src/code_assist/server.js +191 -0
- package/dist/src/code_assist/server.js.map +1 -0
- package/dist/src/code_assist/server.test.d.ts +6 -0
- package/dist/src/code_assist/server.test.js +123 -0
- package/dist/src/code_assist/server.test.js.map +1 -0
- package/dist/src/code_assist/setup.d.ts +15 -0
- package/dist/src/code_assist/setup.js +67 -0
- package/dist/src/code_assist/setup.js.map +1 -0
- package/dist/src/code_assist/setup.test.d.ts +6 -0
- package/dist/src/code_assist/setup.test.js +62 -0
- package/dist/src/code_assist/setup.test.js.map +1 -0
- package/dist/src/code_assist/types.d.ts +148 -0
- package/dist/src/code_assist/types.js +46 -0
- package/dist/src/code_assist/types.js.map +1 -0
- package/dist/src/config/config.d.ts +212 -0
- package/dist/src/config/config.js +454 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/config/config.test.d.ts +6 -0
- package/dist/src/config/config.test.js +291 -0
- package/dist/src/config/config.test.js.map +1 -0
- package/dist/src/config/flashFallback.test.d.ts +6 -0
- package/dist/src/config/flashFallback.test.js +115 -0
- package/dist/src/config/flashFallback.test.js.map +1 -0
- package/dist/src/config/models.d.ts +8 -0
- package/dist/src/config/models.js +9 -0
- package/dist/src/config/models.js.map +1 -0
- package/dist/src/core/client.d.ts +59 -0
- package/dist/src/core/client.js +503 -0
- package/dist/src/core/client.js.map +1 -0
- package/dist/src/core/client.test.d.ts +6 -0
- package/dist/src/core/client.test.js +1006 -0
- package/dist/src/core/client.test.js.map +1 -0
- package/dist/src/core/contentGenerator.d.ts +36 -0
- package/dist/src/core/contentGenerator.js +79 -0
- package/dist/src/core/contentGenerator.js.map +1 -0
- package/dist/src/core/contentGenerator.test.d.ts +6 -0
- package/dist/src/core/contentGenerator.test.js +92 -0
- package/dist/src/core/contentGenerator.test.js.map +1 -0
- package/dist/src/core/coreToolScheduler.d.ts +104 -0
- package/dist/src/core/coreToolScheduler.js +413 -0
- package/dist/src/core/coreToolScheduler.js.map +1 -0
- package/dist/src/core/coreToolScheduler.test.d.ts +6 -0
- package/dist/src/core/coreToolScheduler.test.js +347 -0
- package/dist/src/core/coreToolScheduler.test.js.map +1 -0
- package/dist/src/core/geminiChat.d.ts +116 -0
- package/dist/src/core/geminiChat.js +513 -0
- package/dist/src/core/geminiChat.js.map +1 -0
- package/dist/src/core/geminiChat.test.d.ts +6 -0
- package/dist/src/core/geminiChat.test.js +424 -0
- package/dist/src/core/geminiChat.test.js.map +1 -0
- package/dist/src/core/geminiRequest.d.ts +13 -0
- package/dist/src/core/geminiRequest.js +45 -0
- package/dist/src/core/geminiRequest.js.map +1 -0
- package/dist/src/core/geminiRequest.test.d.ts +6 -0
- package/dist/src/core/geminiRequest.test.js +72 -0
- package/dist/src/core/geminiRequest.test.js.map +1 -0
- package/dist/src/core/logger.d.ts +38 -0
- package/dist/src/core/logger.js +237 -0
- package/dist/src/core/logger.js.map +1 -0
- package/dist/src/core/logger.test.d.ts +6 -0
- package/dist/src/core/logger.test.js +387 -0
- package/dist/src/core/logger.test.js.map +1 -0
- package/dist/src/core/modelCheck.d.ts +14 -0
- package/dist/src/core/modelCheck.js +55 -0
- package/dist/src/core/modelCheck.js.map +1 -0
- package/dist/src/core/nonInteractiveToolExecutor.d.ts +12 -0
- package/dist/src/core/nonInteractiveToolExecutor.js +93 -0
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -0
- package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +6 -0
- package/dist/src/core/nonInteractiveToolExecutor.test.js +180 -0
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -0
- package/dist/src/core/prompts.d.ts +12 -0
- package/dist/src/core/prompts.js +418 -0
- package/dist/src/core/prompts.js.map +1 -0
- package/dist/src/core/prompts.test.d.ts +6 -0
- package/dist/src/core/prompts.test.js +97 -0
- package/dist/src/core/prompts.test.js.map +1 -0
- package/dist/src/core/tokenLimits.d.ts +10 -0
- package/dist/src/core/tokenLimits.js +75 -0
- package/dist/src/core/tokenLimits.js.map +1 -0
- package/dist/src/core/tokenLimits.test.d.ts +6 -0
- package/dist/src/core/tokenLimits.test.js +66 -0
- package/dist/src/core/tokenLimits.test.js.map +1 -0
- package/dist/src/core/turn.d.ts +116 -0
- package/dist/src/core/turn.js +131 -0
- package/dist/src/core/turn.js.map +1 -0
- package/dist/src/core/turn.test.d.ts +6 -0
- package/dist/src/core/turn.test.js +237 -0
- package/dist/src/core/turn.test.js.map +1 -0
- package/dist/src/index.d.ts +57 -0
- package/dist/src/index.js +64 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/index.test.d.ts +6 -0
- package/dist/src/index.test.js +12 -0
- package/dist/src/index.test.js.map +1 -0
- package/dist/src/providers/ProviderContentGenerator.d.ts +21 -0
- package/dist/src/providers/ProviderContentGenerator.js +52 -0
- package/dist/src/providers/ProviderContentGenerator.js.map +1 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.d.ts +68 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +549 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +6 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +253 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +1 -0
- package/dist/src/providers/types.d.ts +82 -0
- package/dist/src/providers/types.js +7 -0
- package/dist/src/providers/types.js.map +1 -0
- package/dist/src/services/fileDiscoveryService.d.ts +35 -0
- package/dist/src/services/fileDiscoveryService.js +91 -0
- package/dist/src/services/fileDiscoveryService.js.map +1 -0
- package/dist/src/services/fileDiscoveryService.test.d.ts +6 -0
- package/dist/src/services/fileDiscoveryService.test.js +102 -0
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -0
- package/dist/src/services/gitService.d.ts +21 -0
- package/dist/src/services/gitService.js +102 -0
- package/dist/src/services/gitService.js.map +1 -0
- package/dist/src/services/gitService.test.d.ts +6 -0
- package/dist/src/services/gitService.test.js +246 -0
- package/dist/src/services/gitService.test.js.map +1 -0
- package/dist/src/services/ideContext.d.ts +124 -0
- package/dist/src/services/ideContext.js +90 -0
- package/dist/src/services/ideContext.js.map +1 -0
- package/dist/src/services/ideContext.test.d.ts +6 -0
- package/dist/src/services/ideContext.test.js +101 -0
- package/dist/src/services/ideContext.test.js.map +1 -0
- package/dist/src/services/loopDetectionService.d.ts +35 -0
- package/dist/src/services/loopDetectionService.js +117 -0
- package/dist/src/services/loopDetectionService.js.map +1 -0
- package/dist/src/services/loopDetectionService.test.d.ts +6 -0
- package/dist/src/services/loopDetectionService.test.js +232 -0
- package/dist/src/services/loopDetectionService.test.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +35 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +424 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +47 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +123 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -0
- package/dist/src/telemetry/constants.d.ts +20 -0
- package/dist/src/telemetry/constants.js +21 -0
- package/dist/src/telemetry/constants.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +18 -0
- package/dist/src/telemetry/index.js +20 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/integration.test.circular.d.ts +6 -0
- package/dist/src/telemetry/integration.test.circular.js +53 -0
- package/dist/src/telemetry/integration.test.circular.js.map +1 -0
- package/dist/src/telemetry/loggers.d.ts +15 -0
- package/dist/src/telemetry/loggers.js +229 -0
- package/dist/src/telemetry/loggers.js.map +1 -0
- package/dist/src/telemetry/loggers.test.circular.d.ts +6 -0
- package/dist/src/telemetry/loggers.test.circular.js +100 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -0
- package/dist/src/telemetry/loggers.test.d.ts +6 -0
- package/dist/src/telemetry/loggers.test.js +558 -0
- package/dist/src/telemetry/loggers.test.js.map +1 -0
- package/dist/src/telemetry/metrics.d.ts +19 -0
- package/dist/src/telemetry/metrics.js +144 -0
- package/dist/src/telemetry/metrics.js.map +1 -0
- package/dist/src/telemetry/metrics.test.d.ts +6 -0
- package/dist/src/telemetry/metrics.test.js +162 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -0
- package/dist/src/telemetry/sdk.d.ts +9 -0
- package/dist/src/telemetry/sdk.js +120 -0
- package/dist/src/telemetry/sdk.js.map +1 -0
- package/dist/src/telemetry/telemetry.test.d.ts +6 -0
- package/dist/src/telemetry/telemetry.test.js +52 -0
- package/dist/src/telemetry/telemetry.test.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +115 -0
- package/dist/src/telemetry/types.js +217 -0
- package/dist/src/telemetry/types.js.map +1 -0
- package/dist/src/telemetry/uiTelemetry.d.ts +67 -0
- package/dist/src/telemetry/uiTelemetry.js +131 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -0
- package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
- package/dist/src/telemetry/uiTelemetry.test.js +412 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
- package/dist/src/tools/diffOptions.d.ts +7 -0
- package/dist/src/tools/diffOptions.js +10 -0
- package/dist/src/tools/diffOptions.js.map +1 -0
- package/dist/src/tools/edit.d.ts +73 -0
- package/dist/src/tools/edit.js +343 -0
- package/dist/src/tools/edit.js.map +1 -0
- package/dist/src/tools/edit.test.d.ts +6 -0
- package/dist/src/tools/edit.test.js +500 -0
- package/dist/src/tools/edit.test.js.map +1 -0
- package/dist/src/tools/glob.d.ts +58 -0
- package/dist/src/tools/glob.js +193 -0
- package/dist/src/tools/glob.js.map +1 -0
- package/dist/src/tools/glob.test.d.ts +6 -0
- package/dist/src/tools/glob.test.js +294 -0
- package/dist/src/tools/glob.test.js.map +1 -0
- package/dist/src/tools/grep.d.ts +78 -0
- package/dist/src/tools/grep.js +422 -0
- package/dist/src/tools/grep.js.map +1 -0
- package/dist/src/tools/grep.test.d.ts +6 -0
- package/dist/src/tools/grep.test.js +188 -0
- package/dist/src/tools/grep.test.js.map +1 -0
- package/dist/src/tools/ls.d.ts +83 -0
- package/dist/src/tools/ls.js +194 -0
- package/dist/src/tools/ls.js.map +1 -0
- package/dist/src/tools/mcp-client.d.ts +112 -0
- package/dist/src/tools/mcp-client.js +332 -0
- package/dist/src/tools/mcp-client.js.map +1 -0
- package/dist/src/tools/mcp-client.test.d.ts +6 -0
- package/dist/src/tools/mcp-client.test.js +227 -0
- package/dist/src/tools/mcp-client.test.js.map +1 -0
- package/dist/src/tools/mcp-tool.d.ts +23 -0
- package/dist/src/tools/mcp-tool.js +119 -0
- package/dist/src/tools/mcp-tool.js.map +1 -0
- package/dist/src/tools/mcp-tool.test.d.ts +6 -0
- package/dist/src/tools/mcp-tool.test.js +173 -0
- package/dist/src/tools/mcp-tool.test.js.map +1 -0
- package/dist/src/tools/memoryTool.d.ts +28 -0
- package/dist/src/tools/memoryTool.js +172 -0
- package/dist/src/tools/memoryTool.js.map +1 -0
- package/dist/src/tools/memoryTool.test.d.ts +6 -0
- package/dist/src/tools/memoryTool.test.js +181 -0
- package/dist/src/tools/memoryTool.test.js.map +1 -0
- package/dist/src/tools/modifiable-tool.d.ts +29 -0
- package/dist/src/tools/modifiable-tool.js +85 -0
- package/dist/src/tools/modifiable-tool.js.map +1 -0
- package/dist/src/tools/modifiable-tool.test.d.ts +6 -0
- package/dist/src/tools/modifiable-tool.test.js +204 -0
- package/dist/src/tools/modifiable-tool.test.js.map +1 -0
- package/dist/src/tools/read-file.d.ts +35 -0
- package/dist/src/tools/read-file.js +106 -0
- package/dist/src/tools/read-file.js.map +1 -0
- package/dist/src/tools/read-file.test.d.ts +6 -0
- package/dist/src/tools/read-file.test.js +181 -0
- package/dist/src/tools/read-file.test.js.map +1 -0
- package/dist/src/tools/read-many-files.d.ts +59 -0
- package/dist/src/tools/read-many-files.js +321 -0
- package/dist/src/tools/read-many-files.js.map +1 -0
- package/dist/src/tools/read-many-files.test.d.ts +6 -0
- package/dist/src/tools/read-many-files.test.js +312 -0
- package/dist/src/tools/read-many-files.test.js.map +1 -0
- package/dist/src/tools/shell.d.ts +43 -0
- package/dist/src/tools/shell.js +435 -0
- package/dist/src/tools/shell.js.map +1 -0
- package/dist/src/tools/shell.test.d.ts +6 -0
- package/dist/src/tools/shell.test.js +407 -0
- package/dist/src/tools/shell.test.js.map +1 -0
- package/dist/src/tools/todo-read.d.ts +15 -0
- package/dist/src/tools/todo-read.js +66 -0
- package/dist/src/tools/todo-read.js.map +1 -0
- package/dist/src/tools/todo-read.test.d.ts +6 -0
- package/dist/src/tools/todo-read.test.js +158 -0
- package/dist/src/tools/todo-read.test.js.map +1 -0
- package/dist/src/tools/todo-schemas.d.ts +43 -0
- package/dist/src/tools/todo-schemas.js +16 -0
- package/dist/src/tools/todo-schemas.js.map +1 -0
- package/dist/src/tools/todo-schemas.test.d.ts +6 -0
- package/dist/src/tools/todo-schemas.test.js +152 -0
- package/dist/src/tools/todo-schemas.test.js.map +1 -0
- package/dist/src/tools/todo-store.d.ts +15 -0
- package/dist/src/tools/todo-store.js +59 -0
- package/dist/src/tools/todo-store.js.map +1 -0
- package/dist/src/tools/todo-store.test.d.ts +6 -0
- package/dist/src/tools/todo-store.test.js +175 -0
- package/dist/src/tools/todo-store.test.js.map +1 -0
- package/dist/src/tools/todo-write.d.ts +17 -0
- package/dist/src/tools/todo-write.js +98 -0
- package/dist/src/tools/todo-write.js.map +1 -0
- package/dist/src/tools/todo-write.test.d.ts +6 -0
- package/dist/src/tools/todo-write.test.js +208 -0
- package/dist/src/tools/todo-write.test.js.map +1 -0
- package/dist/src/tools/tool-registry.d.ts +67 -0
- package/dist/src/tools/tool-registry.js +326 -0
- package/dist/src/tools/tool-registry.js.map +1 -0
- package/dist/src/tools/tool-registry.test.d.ts +6 -0
- package/dist/src/tools/tool-registry.test.js +398 -0
- package/dist/src/tools/tool-registry.test.js.map +1 -0
- package/dist/src/tools/tools.d.ts +184 -0
- package/dist/src/tools/tools.js +88 -0
- package/dist/src/tools/tools.js.map +1 -0
- package/dist/src/tools/web-fetch.d.ts +29 -0
- package/dist/src/tools/web-fetch.js +243 -0
- package/dist/src/tools/web-fetch.js.map +1 -0
- package/dist/src/tools/web-fetch.test.d.ts +6 -0
- package/dist/src/tools/web-fetch.test.js +70 -0
- package/dist/src/tools/web-fetch.test.js.map +1 -0
- package/dist/src/tools/web-search.d.ts +49 -0
- package/dist/src/tools/web-search.js +120 -0
- package/dist/src/tools/web-search.js.map +1 -0
- package/dist/src/tools/write-file.d.ts +42 -0
- package/dist/src/tools/write-file.js +248 -0
- package/dist/src/tools/write-file.js.map +1 -0
- package/dist/src/tools/write-file.test.d.ts +6 -0
- package/dist/src/tools/write-file.test.js +413 -0
- package/dist/src/tools/write-file.test.js.map +1 -0
- package/dist/src/utils/LruCache.d.ts +13 -0
- package/dist/src/utils/LruCache.js +38 -0
- package/dist/src/utils/LruCache.js.map +1 -0
- package/dist/src/utils/bfsFileSearch.d.ts +22 -0
- package/dist/src/utils/bfsFileSearch.js +62 -0
- package/dist/src/utils/bfsFileSearch.js.map +1 -0
- package/dist/src/utils/bfsFileSearch.test.d.ts +6 -0
- package/dist/src/utils/bfsFileSearch.test.js +129 -0
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -0
- package/dist/src/utils/editCorrector.d.ts +53 -0
- package/dist/src/utils/editCorrector.js +546 -0
- package/dist/src/utils/editCorrector.js.map +1 -0
- package/dist/src/utils/editCorrector.test.d.ts +6 -0
- package/dist/src/utils/editCorrector.test.js +564 -0
- package/dist/src/utils/editCorrector.test.js.map +1 -0
- package/dist/src/utils/editor.d.ts +28 -0
- package/dist/src/utils/editor.js +163 -0
- package/dist/src/utils/editor.js.map +1 -0
- package/dist/src/utils/editor.test.d.ts +6 -0
- package/dist/src/utils/editor.test.js +293 -0
- package/dist/src/utils/editor.test.js.map +1 -0
- package/dist/src/utils/errorReporting.d.ts +14 -0
- package/dist/src/utils/errorReporting.js +88 -0
- package/dist/src/utils/errorReporting.js.map +1 -0
- package/dist/src/utils/errorReporting.test.d.ts +6 -0
- package/dist/src/utils/errorReporting.test.js +124 -0
- package/dist/src/utils/errorReporting.test.js.map +1 -0
- package/dist/src/utils/errors.d.ts +14 -0
- package/dist/src/utils/errors.js +54 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/fetch.d.ts +11 -0
- package/dist/src/utils/fetch.js +51 -0
- package/dist/src/utils/fetch.js.map +1 -0
- package/dist/src/utils/fileUtils.d.ts +49 -0
- package/dist/src/utils/fileUtils.js +286 -0
- package/dist/src/utils/fileUtils.js.map +1 -0
- package/dist/src/utils/fileUtils.test.d.ts +6 -0
- package/dist/src/utils/fileUtils.test.js +321 -0
- package/dist/src/utils/fileUtils.test.js.map +1 -0
- package/dist/src/utils/flashFallback.integration.test.d.ts +6 -0
- package/dist/src/utils/flashFallback.integration.test.js +112 -0
- package/dist/src/utils/flashFallback.integration.test.js.map +1 -0
- package/dist/src/utils/generateContentResponseUtilities.d.ts +14 -0
- package/dist/src/utils/generateContentResponseUtilities.js +92 -0
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -0
- package/dist/src/utils/generateContentResponseUtilities.test.d.ts +6 -0
- package/dist/src/utils/generateContentResponseUtilities.test.js +273 -0
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -0
- package/dist/src/utils/getFolderStructure.d.ts +30 -0
- package/dist/src/utils/getFolderStructure.js +247 -0
- package/dist/src/utils/getFolderStructure.js.map +1 -0
- package/dist/src/utils/getFolderStructure.test.d.ts +6 -0
- package/dist/src/utils/getFolderStructure.test.js +298 -0
- package/dist/src/utils/getFolderStructure.test.js.map +1 -0
- package/dist/src/utils/gitIgnoreParser.d.ts +20 -0
- package/dist/src/utils/gitIgnoreParser.js +64 -0
- package/dist/src/utils/gitIgnoreParser.js.map +1 -0
- package/dist/src/utils/gitIgnoreParser.test.d.ts +6 -0
- package/dist/src/utils/gitIgnoreParser.test.js +145 -0
- package/dist/src/utils/gitIgnoreParser.test.js.map +1 -0
- package/dist/src/utils/gitUtils.d.ts +17 -0
- package/dist/src/utils/gitUtils.js +61 -0
- package/dist/src/utils/gitUtils.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.d.ts +14 -0
- package/dist/src/utils/memoryDiscovery.js +219 -0
- package/dist/src/utils/memoryDiscovery.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.test.d.ts +6 -0
- package/dist/src/utils/memoryDiscovery.test.js +432 -0
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -0
- package/dist/src/utils/memoryImportProcessor.d.ts +35 -0
- package/dist/src/utils/memoryImportProcessor.js +141 -0
- package/dist/src/utils/memoryImportProcessor.js.map +1 -0
- package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
- package/dist/src/utils/memoryImportProcessor.test.js +170 -0
- package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
- package/dist/src/utils/messageInspectors.d.ts +8 -0
- package/dist/src/utils/messageInspectors.js +16 -0
- package/dist/src/utils/messageInspectors.js.map +1 -0
- package/dist/src/utils/nextSpeakerChecker.d.ts +12 -0
- package/dist/src/utils/nextSpeakerChecker.js +113 -0
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -0
- package/dist/src/utils/nextSpeakerChecker.test.d.ts +6 -0
- package/dist/src/utils/nextSpeakerChecker.test.js +168 -0
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -0
- package/dist/src/utils/paths.d.ts +49 -0
- package/dist/src/utils/paths.js +145 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
- package/dist/src/utils/quotaErrorDetection.js +67 -0
- package/dist/src/utils/quotaErrorDetection.js.map +1 -0
- package/dist/src/utils/retry.d.ts +21 -0
- package/dist/src/utils/retry.js +276 -0
- package/dist/src/utils/retry.js.map +1 -0
- package/dist/src/utils/retry.test.d.ts +6 -0
- package/dist/src/utils/retry.test.js +322 -0
- package/dist/src/utils/retry.test.js.map +1 -0
- package/dist/src/utils/safeJsonStringify.d.ts +13 -0
- package/dist/src/utils/safeJsonStringify.js +25 -0
- package/dist/src/utils/safeJsonStringify.js.map +1 -0
- package/dist/src/utils/safeJsonStringify.test.d.ts +6 -0
- package/dist/src/utils/safeJsonStringify.test.js +61 -0
- package/dist/src/utils/safeJsonStringify.test.js.map +1 -0
- package/dist/src/utils/schemaValidator.d.ts +23 -0
- package/dist/src/utils/schemaValidator.js +142 -0
- package/dist/src/utils/schemaValidator.js.map +1 -0
- package/dist/src/utils/schemaValidator.test.d.ts +6 -0
- package/dist/src/utils/schemaValidator.test.js +146 -0
- package/dist/src/utils/schemaValidator.test.js.map +1 -0
- package/dist/src/utils/session.d.ts +6 -0
- package/dist/src/utils/session.js +8 -0
- package/dist/src/utils/session.js.map +1 -0
- package/dist/src/utils/summarizer.d.ts +25 -0
- package/dist/src/utils/summarizer.js +80 -0
- package/dist/src/utils/summarizer.js.map +1 -0
- package/dist/src/utils/summarizer.test.d.ts +6 -0
- package/dist/src/utils/summarizer.test.js +131 -0
- package/dist/src/utils/summarizer.test.js.map +1 -0
- package/dist/src/utils/testUtils.d.ts +29 -0
- package/dist/src/utils/testUtils.js +70 -0
- package/dist/src/utils/testUtils.js.map +1 -0
- package/dist/src/utils/user_account.d.ts +9 -0
- package/dist/src/utils/user_account.js +99 -0
- package/dist/src/utils/user_account.js.map +1 -0
- package/dist/src/utils/user_account.test.d.ts +6 -0
- package/dist/src/utils/user_account.test.js +153 -0
- package/dist/src/utils/user_account.test.js.map +1 -0
- package/dist/src/utils/user_id.d.ts +11 -0
- package/dist/src/utils/user_id.js +49 -0
- package/dist/src/utils/user_id.js.map +1 -0
- package/dist/src/utils/user_id.test.d.ts +6 -0
- package/dist/src/utils/user_id.test.js +21 -0
- package/dist/src/utils/user_id.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vybestack-llxprt-code-core-0.1.12.tgz +0 -0
- package/package.json +62 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export const SERVICE_NAME = 'gemini-cli';
|
|
7
|
+
export const EVENT_USER_PROMPT = 'gemini_cli.user_prompt';
|
|
8
|
+
export const EVENT_TOOL_CALL = 'gemini_cli.tool_call';
|
|
9
|
+
export const EVENT_API_REQUEST = 'gemini_cli.api_request';
|
|
10
|
+
export const EVENT_API_ERROR = 'gemini_cli.api_error';
|
|
11
|
+
export const EVENT_API_RESPONSE = 'gemini_cli.api_response';
|
|
12
|
+
export const EVENT_CLI_CONFIG = 'gemini_cli.config';
|
|
13
|
+
export const EVENT_FLASH_FALLBACK = 'gemini_cli.flash_fallback';
|
|
14
|
+
export const METRIC_TOOL_CALL_COUNT = 'gemini_cli.tool.call.count';
|
|
15
|
+
export const METRIC_TOOL_CALL_LATENCY = 'gemini_cli.tool.call.latency';
|
|
16
|
+
export const METRIC_API_REQUEST_COUNT = 'gemini_cli.api.request.count';
|
|
17
|
+
export const METRIC_API_REQUEST_LATENCY = 'gemini_cli.api.request.latency';
|
|
18
|
+
export const METRIC_TOKEN_USAGE = 'gemini_cli.token.usage';
|
|
19
|
+
export const METRIC_SESSION_COUNT = 'gemini_cli.session.count';
|
|
20
|
+
export const METRIC_FILE_OPERATION_COUNT = 'gemini_cli.file.operation.count';
|
|
21
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/telemetry/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GAAG,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export declare enum TelemetryTarget {
|
|
7
|
+
GCP = "gcp",
|
|
8
|
+
LOCAL = "local"
|
|
9
|
+
}
|
|
10
|
+
declare const DEFAULT_TELEMETRY_TARGET = TelemetryTarget.LOCAL;
|
|
11
|
+
declare const DEFAULT_OTLP_ENDPOINT = "http://localhost:4317";
|
|
12
|
+
export { DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT };
|
|
13
|
+
export { initializeTelemetry, shutdownTelemetry, isTelemetrySdkInitialized, } from './sdk.js';
|
|
14
|
+
export { logCliConfiguration, logUserPrompt, logToolCall, logApiRequest, logApiError, logApiResponse, logFlashFallback, } from './loggers.js';
|
|
15
|
+
export { StartSessionEvent, EndSessionEvent, UserPromptEvent, ToolCallEvent, ApiRequestEvent, ApiErrorEvent, ApiResponseEvent, TelemetryEvent, FlashFallbackEvent, } from './types.js';
|
|
16
|
+
export { SpanStatusCode, ValueType } from '@opentelemetry/api';
|
|
17
|
+
export { SemanticAttributes } from '@opentelemetry/semantic-conventions';
|
|
18
|
+
export * from './uiTelemetry.js';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export var TelemetryTarget;
|
|
7
|
+
(function (TelemetryTarget) {
|
|
8
|
+
TelemetryTarget["GCP"] = "gcp";
|
|
9
|
+
TelemetryTarget["LOCAL"] = "local";
|
|
10
|
+
})(TelemetryTarget || (TelemetryTarget = {}));
|
|
11
|
+
const DEFAULT_TELEMETRY_TARGET = TelemetryTarget.LOCAL;
|
|
12
|
+
const DEFAULT_OTLP_ENDPOINT = 'http://localhost:4317';
|
|
13
|
+
export { DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT };
|
|
14
|
+
export { initializeTelemetry, shutdownTelemetry, isTelemetrySdkInitialized, } from './sdk.js';
|
|
15
|
+
export { logCliConfiguration, logUserPrompt, logToolCall, logApiRequest, logApiError, logApiResponse, logFlashFallback, } from './loggers.js';
|
|
16
|
+
export { StartSessionEvent, EndSessionEvent, UserPromptEvent, ToolCallEvent, ApiRequestEvent, ApiErrorEvent, ApiResponseEvent, FlashFallbackEvent, } from './types.js';
|
|
17
|
+
export { SpanStatusCode, ValueType } from '@opentelemetry/api';
|
|
18
|
+
export { SemanticAttributes } from '@opentelemetry/semantic-conventions';
|
|
19
|
+
export * from './uiTelemetry.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,wBAAwB,GAAG,eAAe,CAAC,KAAK,CAAC;AACvD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAEhB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Integration test to verify circular reference handling with proxy agents
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from 'vitest';
|
|
10
|
+
import { ClearcutLogger } from './clearcut-logger/clearcut-logger.js';
|
|
11
|
+
describe('Circular Reference Integration Test', () => {
|
|
12
|
+
it('should handle HttpsProxyAgent-like circular references in clearcut logging', () => {
|
|
13
|
+
// Create a mock config with proxy
|
|
14
|
+
const mockConfig = {
|
|
15
|
+
getTelemetryEnabled: () => true,
|
|
16
|
+
getUsageStatisticsEnabled: () => true,
|
|
17
|
+
getSessionId: () => 'test-session',
|
|
18
|
+
getModel: () => 'test-model',
|
|
19
|
+
getEmbeddingModel: () => 'test-embedding',
|
|
20
|
+
getDebugMode: () => false,
|
|
21
|
+
getProxy: () => 'http://proxy.example.com:8080',
|
|
22
|
+
};
|
|
23
|
+
// Simulate the structure that causes the circular reference error
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
const proxyAgentLike = {
|
|
26
|
+
sockets: {},
|
|
27
|
+
options: { proxy: 'http://proxy.example.com:8080' },
|
|
28
|
+
};
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
const socketLike = {
|
|
31
|
+
_httpMessage: {
|
|
32
|
+
agent: proxyAgentLike,
|
|
33
|
+
socket: null,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
socketLike._httpMessage.socket = socketLike; // Create circular reference
|
|
37
|
+
proxyAgentLike.sockets['cloudcode-pa.googleapis.com:443'] = [socketLike];
|
|
38
|
+
// Create an event that would contain this circular structure
|
|
39
|
+
const problematicEvent = {
|
|
40
|
+
error: new Error('Network error'),
|
|
41
|
+
function_args: {
|
|
42
|
+
filePath: '/test/file.txt',
|
|
43
|
+
httpAgent: proxyAgentLike, // This would cause the circular reference
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
// Test that ClearcutLogger can handle this
|
|
47
|
+
const logger = ClearcutLogger.getInstance(mockConfig);
|
|
48
|
+
expect(() => {
|
|
49
|
+
logger?.enqueueLogEvent(problematicEvent);
|
|
50
|
+
}).not.toThrow();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=integration.test.circular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.circular.js","sourceRoot":"","sources":["../../../src/telemetry/integration.test.circular.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAGtE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,kCAAkC;QAClC,MAAM,UAAU,GAAG;YACjB,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI;YAC/B,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI;YACrC,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc;YAClC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY;YAC5B,iBAAiB,EAAE,GAAG,EAAE,CAAC,gBAAgB;YACzC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;YACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,+BAA+B;SAC3B,CAAC;QAEvB,kEAAkE;QAClE,8DAA8D;QAC9D,MAAM,cAAc,GAAQ;YAC1B,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE;SACpD,CAAC;QAEF,8DAA8D;QAC9D,MAAM,UAAU,GAAQ;YACtB,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAEF,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,4BAA4B;QACzE,cAAc,CAAC,OAAO,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEzE,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG;YACvB,KAAK,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC;YACjC,aAAa,EAAE;gBACb,QAAQ,EAAE,gBAAgB;gBAC1B,SAAS,EAAE,cAAc,EAAE,0CAA0C;aACtE;SACF,CAAC;QAEF,2CAA2C;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Config } from '../config/config.js';
|
|
7
|
+
import { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, StartSessionEvent, ToolCallEvent, UserPromptEvent, FlashFallbackEvent, LoopDetectedEvent } from './types.js';
|
|
8
|
+
export declare function logCliConfiguration(config: Config, event: StartSessionEvent): void;
|
|
9
|
+
export declare function logUserPrompt(config: Config, event: UserPromptEvent): void;
|
|
10
|
+
export declare function logToolCall(config: Config, event: ToolCallEvent): void;
|
|
11
|
+
export declare function logApiRequest(config: Config, event: ApiRequestEvent): void;
|
|
12
|
+
export declare function logFlashFallback(config: Config, event: FlashFallbackEvent): void;
|
|
13
|
+
export declare function logApiError(config: Config, event: ApiErrorEvent): void;
|
|
14
|
+
export declare function logApiResponse(config: Config, event: ApiResponseEvent): void;
|
|
15
|
+
export declare function logLoopDetected(config: Config, event: LoopDetectedEvent): void;
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { logs } from '@opentelemetry/api-logs';
|
|
7
|
+
import { SemanticAttributes } from '@opentelemetry/semantic-conventions';
|
|
8
|
+
import { EVENT_API_ERROR, EVENT_API_REQUEST, EVENT_API_RESPONSE, EVENT_CLI_CONFIG, EVENT_TOOL_CALL, EVENT_USER_PROMPT, EVENT_FLASH_FALLBACK, SERVICE_NAME, } from './constants.js';
|
|
9
|
+
import { recordApiErrorMetrics, recordTokenUsageMetrics, recordApiResponseMetrics, recordToolCallMetrics, } from './metrics.js';
|
|
10
|
+
import { isTelemetrySdkInitialized } from './sdk.js';
|
|
11
|
+
import { uiTelemetryService } from './uiTelemetry.js';
|
|
12
|
+
// TELEMETRY REMOVED: ClearcutLogger import disabled
|
|
13
|
+
// import { ClearcutLogger } from './clearcut-logger/clearcut-logger.js';
|
|
14
|
+
import { safeJsonStringify } from '../utils/safeJsonStringify.js';
|
|
15
|
+
const shouldLogUserPrompts = (config) => config.getTelemetryLogPromptsEnabled();
|
|
16
|
+
function getCommonAttributes(config) {
|
|
17
|
+
return {
|
|
18
|
+
'session.id': config.getSessionId(),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function logCliConfiguration(config, event) {
|
|
22
|
+
// TELEMETRY REMOVED: Disabled ClearcutLogger to prevent Google data collection
|
|
23
|
+
// ClearcutLogger.getInstance(config)?.logStartSessionEvent(event);
|
|
24
|
+
if (!isTelemetrySdkInitialized())
|
|
25
|
+
return;
|
|
26
|
+
const attributes = {
|
|
27
|
+
...getCommonAttributes(config),
|
|
28
|
+
'event.name': EVENT_CLI_CONFIG,
|
|
29
|
+
'event.timestamp': new Date().toISOString(),
|
|
30
|
+
model: event.model,
|
|
31
|
+
embedding_model: event.embedding_model,
|
|
32
|
+
sandbox_enabled: event.sandbox_enabled,
|
|
33
|
+
core_tools_enabled: event.core_tools_enabled,
|
|
34
|
+
approval_mode: event.approval_mode,
|
|
35
|
+
api_key_enabled: event.api_key_enabled,
|
|
36
|
+
vertex_ai_enabled: event.vertex_ai_enabled,
|
|
37
|
+
log_user_prompts_enabled: event.telemetry_log_user_prompts_enabled,
|
|
38
|
+
file_filtering_respect_git_ignore: event.file_filtering_respect_git_ignore,
|
|
39
|
+
debug_mode: event.debug_enabled,
|
|
40
|
+
mcp_servers: event.mcp_servers,
|
|
41
|
+
};
|
|
42
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
43
|
+
const logRecord = {
|
|
44
|
+
body: 'CLI configuration loaded.',
|
|
45
|
+
attributes,
|
|
46
|
+
};
|
|
47
|
+
logger.emit(logRecord);
|
|
48
|
+
}
|
|
49
|
+
export function logUserPrompt(config, event) {
|
|
50
|
+
// TELEMETRY REMOVED: Disabled ClearcutLogger to prevent Google data collection
|
|
51
|
+
// ClearcutLogger.getInstance(config)?.logNewPromptEvent(event);
|
|
52
|
+
if (!isTelemetrySdkInitialized())
|
|
53
|
+
return;
|
|
54
|
+
const attributes = {
|
|
55
|
+
...getCommonAttributes(config),
|
|
56
|
+
'event.name': EVENT_USER_PROMPT,
|
|
57
|
+
'event.timestamp': new Date().toISOString(),
|
|
58
|
+
prompt_length: event.prompt_length,
|
|
59
|
+
};
|
|
60
|
+
if (shouldLogUserPrompts(config)) {
|
|
61
|
+
attributes.prompt = event.prompt;
|
|
62
|
+
}
|
|
63
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
64
|
+
const logRecord = {
|
|
65
|
+
body: `User prompt. Length: ${event.prompt_length}.`,
|
|
66
|
+
attributes,
|
|
67
|
+
};
|
|
68
|
+
logger.emit(logRecord);
|
|
69
|
+
}
|
|
70
|
+
export function logToolCall(config, event) {
|
|
71
|
+
const uiEvent = {
|
|
72
|
+
...event,
|
|
73
|
+
'event.name': EVENT_TOOL_CALL,
|
|
74
|
+
'event.timestamp': new Date().toISOString(),
|
|
75
|
+
};
|
|
76
|
+
uiTelemetryService.addEvent(uiEvent);
|
|
77
|
+
// TELEMETRY REMOVED: Disabled ClearcutLogger to prevent Google data collection
|
|
78
|
+
// ClearcutLogger.getInstance(config)?.logToolCallEvent(event);
|
|
79
|
+
if (!isTelemetrySdkInitialized())
|
|
80
|
+
return;
|
|
81
|
+
const attributes = {
|
|
82
|
+
...getCommonAttributes(config),
|
|
83
|
+
...event,
|
|
84
|
+
'event.name': EVENT_TOOL_CALL,
|
|
85
|
+
'event.timestamp': new Date().toISOString(),
|
|
86
|
+
function_args: safeJsonStringify(event.function_args, 2),
|
|
87
|
+
};
|
|
88
|
+
if (event.error) {
|
|
89
|
+
attributes['error.message'] = event.error;
|
|
90
|
+
if (event.error_type) {
|
|
91
|
+
attributes['error.type'] = event.error_type;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
95
|
+
const logRecord = {
|
|
96
|
+
body: `Tool call: ${event.function_name}${event.decision ? `. Decision: ${event.decision}` : ''}. Success: ${event.success}. Duration: ${event.duration_ms}ms.`,
|
|
97
|
+
attributes,
|
|
98
|
+
};
|
|
99
|
+
logger.emit(logRecord);
|
|
100
|
+
recordToolCallMetrics(config, event.function_name, event.duration_ms, event.success, event.decision);
|
|
101
|
+
}
|
|
102
|
+
export function logApiRequest(config, event) {
|
|
103
|
+
// TELEMETRY REMOVED: Disabled ClearcutLogger to prevent Google data collection
|
|
104
|
+
// ClearcutLogger.getInstance(config)?.logApiRequestEvent(event);
|
|
105
|
+
if (!isTelemetrySdkInitialized())
|
|
106
|
+
return;
|
|
107
|
+
const attributes = {
|
|
108
|
+
...getCommonAttributes(config),
|
|
109
|
+
...event,
|
|
110
|
+
'event.name': EVENT_API_REQUEST,
|
|
111
|
+
'event.timestamp': new Date().toISOString(),
|
|
112
|
+
};
|
|
113
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
114
|
+
const logRecord = {
|
|
115
|
+
body: `API request to ${event.model}.`,
|
|
116
|
+
attributes,
|
|
117
|
+
};
|
|
118
|
+
logger.emit(logRecord);
|
|
119
|
+
}
|
|
120
|
+
export function logFlashFallback(config, event) {
|
|
121
|
+
// TELEMETRY REMOVED: ClearcutLogger disabled
|
|
122
|
+
// ClearcutLogger.getInstance(config)?.logFlashFallbackEvent(event);
|
|
123
|
+
if (!isTelemetrySdkInitialized())
|
|
124
|
+
return;
|
|
125
|
+
const attributes = {
|
|
126
|
+
...getCommonAttributes(config),
|
|
127
|
+
...event,
|
|
128
|
+
'event.name': EVENT_FLASH_FALLBACK,
|
|
129
|
+
'event.timestamp': new Date().toISOString(),
|
|
130
|
+
};
|
|
131
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
132
|
+
const logRecord = {
|
|
133
|
+
body: `Switching to flash as Fallback.`,
|
|
134
|
+
attributes,
|
|
135
|
+
};
|
|
136
|
+
logger.emit(logRecord);
|
|
137
|
+
}
|
|
138
|
+
export function logApiError(config, event) {
|
|
139
|
+
const uiEvent = {
|
|
140
|
+
...event,
|
|
141
|
+
'event.name': EVENT_API_ERROR,
|
|
142
|
+
'event.timestamp': new Date().toISOString(),
|
|
143
|
+
};
|
|
144
|
+
uiTelemetryService.addEvent(uiEvent);
|
|
145
|
+
// TELEMETRY REMOVED: Disabled ClearcutLogger to prevent Google data collection
|
|
146
|
+
// ClearcutLogger.getInstance(config)?.logApiErrorEvent(event);
|
|
147
|
+
if (!isTelemetrySdkInitialized())
|
|
148
|
+
return;
|
|
149
|
+
const attributes = {
|
|
150
|
+
...getCommonAttributes(config),
|
|
151
|
+
...event,
|
|
152
|
+
'event.name': EVENT_API_ERROR,
|
|
153
|
+
'event.timestamp': new Date().toISOString(),
|
|
154
|
+
['error.message']: event.error,
|
|
155
|
+
model_name: event.model,
|
|
156
|
+
duration: event.duration_ms,
|
|
157
|
+
};
|
|
158
|
+
if (event.error_type) {
|
|
159
|
+
attributes['error.type'] = event.error_type;
|
|
160
|
+
}
|
|
161
|
+
if (typeof event.status_code === 'number') {
|
|
162
|
+
attributes[SemanticAttributes.HTTP_STATUS_CODE] = event.status_code;
|
|
163
|
+
}
|
|
164
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
165
|
+
const logRecord = {
|
|
166
|
+
body: `API error for ${event.model}. Error: ${event.error}. Duration: ${event.duration_ms}ms.`,
|
|
167
|
+
attributes,
|
|
168
|
+
};
|
|
169
|
+
logger.emit(logRecord);
|
|
170
|
+
recordApiErrorMetrics(config, event.model, event.duration_ms, event.status_code, event.error_type);
|
|
171
|
+
}
|
|
172
|
+
export function logApiResponse(config, event) {
|
|
173
|
+
const uiEvent = {
|
|
174
|
+
...event,
|
|
175
|
+
'event.name': EVENT_API_RESPONSE,
|
|
176
|
+
'event.timestamp': new Date().toISOString(),
|
|
177
|
+
};
|
|
178
|
+
uiTelemetryService.addEvent(uiEvent);
|
|
179
|
+
// TELEMETRY REMOVED: Disabled ClearcutLogger to prevent Google data collection
|
|
180
|
+
// ClearcutLogger.getInstance(config)?.logApiResponseEvent(event);
|
|
181
|
+
if (!isTelemetrySdkInitialized())
|
|
182
|
+
return;
|
|
183
|
+
const attributes = {
|
|
184
|
+
...getCommonAttributes(config),
|
|
185
|
+
...event,
|
|
186
|
+
'event.name': EVENT_API_RESPONSE,
|
|
187
|
+
'event.timestamp': new Date().toISOString(),
|
|
188
|
+
};
|
|
189
|
+
if (event.response_text) {
|
|
190
|
+
attributes.response_text = event.response_text;
|
|
191
|
+
}
|
|
192
|
+
if (event.error) {
|
|
193
|
+
attributes['error.message'] = event.error;
|
|
194
|
+
}
|
|
195
|
+
else if (event.status_code) {
|
|
196
|
+
if (typeof event.status_code === 'number') {
|
|
197
|
+
attributes[SemanticAttributes.HTTP_STATUS_CODE] = event.status_code;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
201
|
+
const logRecord = {
|
|
202
|
+
body: `API response from ${event.model}. Status: ${event.status_code || 'N/A'}. Duration: ${event.duration_ms}ms.`,
|
|
203
|
+
attributes,
|
|
204
|
+
};
|
|
205
|
+
logger.emit(logRecord);
|
|
206
|
+
recordApiResponseMetrics(config, event.model, event.duration_ms, event.status_code, event.error);
|
|
207
|
+
recordTokenUsageMetrics(config, event.model, event.input_token_count, 'input');
|
|
208
|
+
recordTokenUsageMetrics(config, event.model, event.output_token_count, 'output');
|
|
209
|
+
recordTokenUsageMetrics(config, event.model, event.cached_content_token_count, 'cache');
|
|
210
|
+
recordTokenUsageMetrics(config, event.model, event.thoughts_token_count, 'thought');
|
|
211
|
+
recordTokenUsageMetrics(config, event.model, event.tool_token_count, 'tool');
|
|
212
|
+
}
|
|
213
|
+
export function logLoopDetected(config, event) {
|
|
214
|
+
// TELEMETRY REMOVED: ClearcutLogger disabled
|
|
215
|
+
// ClearcutLogger.getInstance(config)?.logLoopDetectedEvent(event);
|
|
216
|
+
if (!isTelemetrySdkInitialized())
|
|
217
|
+
return;
|
|
218
|
+
const attributes = {
|
|
219
|
+
...getCommonAttributes(config),
|
|
220
|
+
...event,
|
|
221
|
+
};
|
|
222
|
+
const logger = logs.getLogger(SERVICE_NAME);
|
|
223
|
+
const logRecord = {
|
|
224
|
+
body: `Loop detected. Type: ${event.loop_type}.`,
|
|
225
|
+
attributes,
|
|
226
|
+
};
|
|
227
|
+
logger.emit(logRecord);
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=loggers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggers.js","sourceRoot":"","sources":["../../../src/telemetry/loggers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Test to verify circular reference handling in telemetry logging
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from 'vitest';
|
|
10
|
+
import { logToolCall } from './loggers.js';
|
|
11
|
+
import { ToolCallEvent } from './types.js';
|
|
12
|
+
describe('Circular Reference Handling', () => {
|
|
13
|
+
it('should handle circular references in tool function arguments', () => {
|
|
14
|
+
// Create a mock config
|
|
15
|
+
const mockConfig = {
|
|
16
|
+
getTelemetryEnabled: () => true,
|
|
17
|
+
getUsageStatisticsEnabled: () => true,
|
|
18
|
+
getSessionId: () => 'test-session',
|
|
19
|
+
getModel: () => 'test-model',
|
|
20
|
+
getEmbeddingModel: () => 'test-embedding',
|
|
21
|
+
getDebugMode: () => false,
|
|
22
|
+
};
|
|
23
|
+
// Create an object with circular references (similar to HttpsProxyAgent)
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
const circularObject = {
|
|
26
|
+
sockets: {},
|
|
27
|
+
agent: null,
|
|
28
|
+
};
|
|
29
|
+
circularObject.agent = circularObject; // Create circular reference
|
|
30
|
+
circularObject.sockets['test-host'] = [
|
|
31
|
+
{ _httpMessage: { agent: circularObject } },
|
|
32
|
+
];
|
|
33
|
+
// Create a mock CompletedToolCall with circular references in function_args
|
|
34
|
+
const mockRequest = {
|
|
35
|
+
callId: 'test-call-id',
|
|
36
|
+
name: 'ReadFile',
|
|
37
|
+
args: circularObject, // This would cause the original error
|
|
38
|
+
isClientInitiated: false,
|
|
39
|
+
prompt_id: 'test-prompt-id',
|
|
40
|
+
};
|
|
41
|
+
const mockResponse = {
|
|
42
|
+
callId: 'test-call-id',
|
|
43
|
+
responseParts: [{ text: 'test result' }],
|
|
44
|
+
resultDisplay: undefined,
|
|
45
|
+
error: undefined, // undefined means success
|
|
46
|
+
};
|
|
47
|
+
const mockCompletedToolCall = {
|
|
48
|
+
status: 'success',
|
|
49
|
+
request: mockRequest,
|
|
50
|
+
response: mockResponse,
|
|
51
|
+
tool: {},
|
|
52
|
+
durationMs: 100,
|
|
53
|
+
};
|
|
54
|
+
// Create a tool call event with circular references in function_args
|
|
55
|
+
const event = new ToolCallEvent(mockCompletedToolCall);
|
|
56
|
+
// This should not throw an error
|
|
57
|
+
expect(() => {
|
|
58
|
+
logToolCall(mockConfig, event);
|
|
59
|
+
}).not.toThrow();
|
|
60
|
+
});
|
|
61
|
+
it('should handle normal objects without circular references', () => {
|
|
62
|
+
const mockConfig = {
|
|
63
|
+
getTelemetryEnabled: () => true,
|
|
64
|
+
getUsageStatisticsEnabled: () => true,
|
|
65
|
+
getSessionId: () => 'test-session',
|
|
66
|
+
getModel: () => 'test-model',
|
|
67
|
+
getEmbeddingModel: () => 'test-embedding',
|
|
68
|
+
getDebugMode: () => false,
|
|
69
|
+
};
|
|
70
|
+
const normalObject = {
|
|
71
|
+
filePath: '/test/path',
|
|
72
|
+
options: { encoding: 'utf8' },
|
|
73
|
+
};
|
|
74
|
+
const mockRequest = {
|
|
75
|
+
callId: 'test-call-id',
|
|
76
|
+
name: 'ReadFile',
|
|
77
|
+
args: normalObject,
|
|
78
|
+
isClientInitiated: false,
|
|
79
|
+
prompt_id: 'test-prompt-id',
|
|
80
|
+
};
|
|
81
|
+
const mockResponse = {
|
|
82
|
+
callId: 'test-call-id',
|
|
83
|
+
responseParts: [{ text: 'test result' }],
|
|
84
|
+
resultDisplay: undefined,
|
|
85
|
+
error: undefined, // undefined means success
|
|
86
|
+
};
|
|
87
|
+
const mockCompletedToolCall = {
|
|
88
|
+
status: 'success',
|
|
89
|
+
request: mockRequest,
|
|
90
|
+
response: mockResponse,
|
|
91
|
+
tool: {},
|
|
92
|
+
durationMs: 100,
|
|
93
|
+
};
|
|
94
|
+
const event = new ToolCallEvent(mockCompletedToolCall);
|
|
95
|
+
expect(() => {
|
|
96
|
+
logToolCall(mockConfig, event);
|
|
97
|
+
}).not.toThrow();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=loggers.test.circular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggers.test.circular.js","sourceRoot":"","sources":["../../../src/telemetry/loggers.test.circular.ts"],"names":[],"mappings":"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"}
|