@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,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ToolConfirmationOutcome } from '../tools/tools.js';
|
|
7
|
+
import { AuthType } from '../core/contentGenerator.js';
|
|
8
|
+
export var ToolCallDecision;
|
|
9
|
+
(function (ToolCallDecision) {
|
|
10
|
+
ToolCallDecision["ACCEPT"] = "accept";
|
|
11
|
+
ToolCallDecision["REJECT"] = "reject";
|
|
12
|
+
ToolCallDecision["MODIFY"] = "modify";
|
|
13
|
+
})(ToolCallDecision || (ToolCallDecision = {}));
|
|
14
|
+
export function getDecisionFromOutcome(outcome) {
|
|
15
|
+
switch (outcome) {
|
|
16
|
+
case ToolConfirmationOutcome.ProceedOnce:
|
|
17
|
+
case ToolConfirmationOutcome.ProceedAlways:
|
|
18
|
+
case ToolConfirmationOutcome.ProceedAlwaysServer:
|
|
19
|
+
case ToolConfirmationOutcome.ProceedAlwaysTool:
|
|
20
|
+
return ToolCallDecision.ACCEPT;
|
|
21
|
+
case ToolConfirmationOutcome.ModifyWithEditor:
|
|
22
|
+
return ToolCallDecision.MODIFY;
|
|
23
|
+
case ToolConfirmationOutcome.Cancel:
|
|
24
|
+
default:
|
|
25
|
+
return ToolCallDecision.REJECT;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class StartSessionEvent {
|
|
29
|
+
'event.name';
|
|
30
|
+
'event.timestamp'; // ISO 8601
|
|
31
|
+
model;
|
|
32
|
+
embedding_model;
|
|
33
|
+
sandbox_enabled;
|
|
34
|
+
core_tools_enabled;
|
|
35
|
+
approval_mode;
|
|
36
|
+
api_key_enabled;
|
|
37
|
+
vertex_ai_enabled;
|
|
38
|
+
debug_enabled;
|
|
39
|
+
mcp_servers;
|
|
40
|
+
telemetry_enabled;
|
|
41
|
+
telemetry_log_user_prompts_enabled;
|
|
42
|
+
file_filtering_respect_git_ignore;
|
|
43
|
+
constructor(config) {
|
|
44
|
+
const generatorConfig = config.getContentGeneratorConfig();
|
|
45
|
+
const mcpServers = config.getMcpServers();
|
|
46
|
+
let useGemini = false;
|
|
47
|
+
let useVertex = false;
|
|
48
|
+
if (generatorConfig && generatorConfig.authType) {
|
|
49
|
+
useGemini = generatorConfig.authType === AuthType.USE_GEMINI;
|
|
50
|
+
useVertex = generatorConfig.authType === AuthType.USE_VERTEX_AI;
|
|
51
|
+
}
|
|
52
|
+
this['event.name'] = 'cli_config';
|
|
53
|
+
this.model = config.getModel();
|
|
54
|
+
this.embedding_model = config.getEmbeddingModel();
|
|
55
|
+
this.sandbox_enabled =
|
|
56
|
+
typeof config.getSandbox() === 'string' || !!config.getSandbox();
|
|
57
|
+
this.core_tools_enabled = (config.getCoreTools() ?? []).join(',');
|
|
58
|
+
this.approval_mode = config.getApprovalMode();
|
|
59
|
+
this.api_key_enabled = useGemini || useVertex;
|
|
60
|
+
this.vertex_ai_enabled = useVertex;
|
|
61
|
+
this.debug_enabled = config.getDebugMode();
|
|
62
|
+
this.mcp_servers = mcpServers ? Object.keys(mcpServers).join(',') : '';
|
|
63
|
+
this.telemetry_enabled = config.getTelemetryEnabled();
|
|
64
|
+
this.telemetry_log_user_prompts_enabled =
|
|
65
|
+
config.getTelemetryLogPromptsEnabled();
|
|
66
|
+
this.file_filtering_respect_git_ignore =
|
|
67
|
+
config.getFileFilteringRespectGitIgnore();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export class EndSessionEvent {
|
|
71
|
+
'event.name';
|
|
72
|
+
'event.timestamp'; // ISO 8601
|
|
73
|
+
session_id;
|
|
74
|
+
constructor(config) {
|
|
75
|
+
this['event.name'] = 'end_session';
|
|
76
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
77
|
+
this.session_id = config?.getSessionId();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export class UserPromptEvent {
|
|
81
|
+
'event.name';
|
|
82
|
+
'event.timestamp'; // ISO 8601
|
|
83
|
+
prompt_length;
|
|
84
|
+
prompt_id;
|
|
85
|
+
auth_type;
|
|
86
|
+
prompt;
|
|
87
|
+
constructor(prompt_length, prompt_Id, auth_type, prompt) {
|
|
88
|
+
this['event.name'] = 'user_prompt';
|
|
89
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
90
|
+
this.prompt_length = prompt_length;
|
|
91
|
+
this.prompt_id = prompt_Id;
|
|
92
|
+
this.auth_type = auth_type;
|
|
93
|
+
this.prompt = prompt;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export class ToolCallEvent {
|
|
97
|
+
'event.name';
|
|
98
|
+
'event.timestamp'; // ISO 8601
|
|
99
|
+
function_name;
|
|
100
|
+
function_args;
|
|
101
|
+
duration_ms;
|
|
102
|
+
success;
|
|
103
|
+
decision;
|
|
104
|
+
error;
|
|
105
|
+
error_type;
|
|
106
|
+
prompt_id;
|
|
107
|
+
constructor(call) {
|
|
108
|
+
this['event.name'] = 'tool_call';
|
|
109
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
110
|
+
this.function_name = call.request.name;
|
|
111
|
+
this.function_args = call.request.args;
|
|
112
|
+
this.duration_ms = call.durationMs ?? 0;
|
|
113
|
+
this.success = call.status === 'success';
|
|
114
|
+
this.decision = call.outcome
|
|
115
|
+
? getDecisionFromOutcome(call.outcome)
|
|
116
|
+
: undefined;
|
|
117
|
+
this.error = call.response.error?.message;
|
|
118
|
+
this.error_type = call.response.error?.name;
|
|
119
|
+
this.prompt_id = call.request.prompt_id;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
export class ApiRequestEvent {
|
|
123
|
+
'event.name';
|
|
124
|
+
'event.timestamp'; // ISO 8601
|
|
125
|
+
model;
|
|
126
|
+
prompt_id;
|
|
127
|
+
request_text;
|
|
128
|
+
constructor(model, prompt_id, request_text) {
|
|
129
|
+
this['event.name'] = 'api_request';
|
|
130
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
131
|
+
this.model = model;
|
|
132
|
+
this.prompt_id = prompt_id;
|
|
133
|
+
this.request_text = request_text;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export class ApiErrorEvent {
|
|
137
|
+
'event.name';
|
|
138
|
+
'event.timestamp'; // ISO 8601
|
|
139
|
+
model;
|
|
140
|
+
error;
|
|
141
|
+
error_type;
|
|
142
|
+
status_code;
|
|
143
|
+
duration_ms;
|
|
144
|
+
prompt_id;
|
|
145
|
+
auth_type;
|
|
146
|
+
constructor(model, error, duration_ms, prompt_id, auth_type, error_type, status_code) {
|
|
147
|
+
this['event.name'] = 'api_error';
|
|
148
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
149
|
+
this.model = model;
|
|
150
|
+
this.error = error;
|
|
151
|
+
this.error_type = error_type;
|
|
152
|
+
this.status_code = status_code;
|
|
153
|
+
this.duration_ms = duration_ms;
|
|
154
|
+
this.prompt_id = prompt_id;
|
|
155
|
+
this.auth_type = auth_type;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
export class ApiResponseEvent {
|
|
159
|
+
'event.name';
|
|
160
|
+
'event.timestamp'; // ISO 8601
|
|
161
|
+
model;
|
|
162
|
+
status_code;
|
|
163
|
+
duration_ms;
|
|
164
|
+
error;
|
|
165
|
+
input_token_count;
|
|
166
|
+
output_token_count;
|
|
167
|
+
cached_content_token_count;
|
|
168
|
+
thoughts_token_count;
|
|
169
|
+
tool_token_count;
|
|
170
|
+
total_token_count;
|
|
171
|
+
response_text;
|
|
172
|
+
prompt_id;
|
|
173
|
+
auth_type;
|
|
174
|
+
constructor(model, duration_ms, prompt_id, auth_type, usage_data, response_text, error) {
|
|
175
|
+
this['event.name'] = 'api_response';
|
|
176
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
177
|
+
this.model = model;
|
|
178
|
+
this.duration_ms = duration_ms;
|
|
179
|
+
this.status_code = 200;
|
|
180
|
+
this.input_token_count = usage_data?.promptTokenCount ?? 0;
|
|
181
|
+
this.output_token_count = usage_data?.candidatesTokenCount ?? 0;
|
|
182
|
+
this.cached_content_token_count = usage_data?.cachedContentTokenCount ?? 0;
|
|
183
|
+
this.thoughts_token_count = usage_data?.thoughtsTokenCount ?? 0;
|
|
184
|
+
this.tool_token_count = usage_data?.toolUsePromptTokenCount ?? 0;
|
|
185
|
+
this.total_token_count = usage_data?.totalTokenCount ?? 0;
|
|
186
|
+
this.response_text = response_text;
|
|
187
|
+
this.error = error;
|
|
188
|
+
this.prompt_id = prompt_id;
|
|
189
|
+
this.auth_type = auth_type;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
export class FlashFallbackEvent {
|
|
193
|
+
'event.name';
|
|
194
|
+
'event.timestamp'; // ISO 8601
|
|
195
|
+
auth_type;
|
|
196
|
+
constructor(auth_type) {
|
|
197
|
+
this['event.name'] = 'flash_fallback';
|
|
198
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
199
|
+
this.auth_type = auth_type;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
export var LoopType;
|
|
203
|
+
(function (LoopType) {
|
|
204
|
+
LoopType["CONSECUTIVE_IDENTICAL_TOOL_CALLS"] = "consecutive_identical_tool_calls";
|
|
205
|
+
LoopType["CHANTING_IDENTICAL_SENTENCES"] = "chanting_identical_sentences";
|
|
206
|
+
})(LoopType || (LoopType = {}));
|
|
207
|
+
export class LoopDetectedEvent {
|
|
208
|
+
'event.name';
|
|
209
|
+
'event.timestamp'; // ISO 8601
|
|
210
|
+
loop_type;
|
|
211
|
+
constructor(loop_type) {
|
|
212
|
+
this['event.name'] = 'loop_detected';
|
|
213
|
+
this['event.timestamp'] = new Date().toISOString();
|
|
214
|
+
this.loop_type = loop_type;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/telemetry/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
import { EVENT_API_ERROR, EVENT_API_RESPONSE, EVENT_TOOL_CALL } from './constants.js';
|
|
8
|
+
import { ApiErrorEvent, ApiResponseEvent, ToolCallEvent, ToolCallDecision } from './types.js';
|
|
9
|
+
export type UiEvent = (ApiResponseEvent & {
|
|
10
|
+
'event.name': typeof EVENT_API_RESPONSE;
|
|
11
|
+
}) | (ApiErrorEvent & {
|
|
12
|
+
'event.name': typeof EVENT_API_ERROR;
|
|
13
|
+
}) | (ToolCallEvent & {
|
|
14
|
+
'event.name': typeof EVENT_TOOL_CALL;
|
|
15
|
+
});
|
|
16
|
+
export interface ToolCallStats {
|
|
17
|
+
count: number;
|
|
18
|
+
success: number;
|
|
19
|
+
fail: number;
|
|
20
|
+
durationMs: number;
|
|
21
|
+
decisions: {
|
|
22
|
+
[ToolCallDecision.ACCEPT]: number;
|
|
23
|
+
[ToolCallDecision.REJECT]: number;
|
|
24
|
+
[ToolCallDecision.MODIFY]: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface ModelMetrics {
|
|
28
|
+
api: {
|
|
29
|
+
totalRequests: number;
|
|
30
|
+
totalErrors: number;
|
|
31
|
+
totalLatencyMs: number;
|
|
32
|
+
};
|
|
33
|
+
tokens: {
|
|
34
|
+
prompt: number;
|
|
35
|
+
candidates: number;
|
|
36
|
+
total: number;
|
|
37
|
+
cached: number;
|
|
38
|
+
thoughts: number;
|
|
39
|
+
tool: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface SessionMetrics {
|
|
43
|
+
models: Record<string, ModelMetrics>;
|
|
44
|
+
tools: {
|
|
45
|
+
totalCalls: number;
|
|
46
|
+
totalSuccess: number;
|
|
47
|
+
totalFail: number;
|
|
48
|
+
totalDurationMs: number;
|
|
49
|
+
totalDecisions: {
|
|
50
|
+
[ToolCallDecision.ACCEPT]: number;
|
|
51
|
+
[ToolCallDecision.REJECT]: number;
|
|
52
|
+
[ToolCallDecision.MODIFY]: number;
|
|
53
|
+
};
|
|
54
|
+
byName: Record<string, ToolCallStats>;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare class UiTelemetryService extends EventEmitter {
|
|
58
|
+
#private;
|
|
59
|
+
addEvent(event: UiEvent): void;
|
|
60
|
+
getMetrics(): SessionMetrics;
|
|
61
|
+
getLastPromptTokenCount(): number;
|
|
62
|
+
private getOrCreateModelMetrics;
|
|
63
|
+
private processApiResponse;
|
|
64
|
+
private processApiError;
|
|
65
|
+
private processToolCall;
|
|
66
|
+
}
|
|
67
|
+
export declare const uiTelemetryService: UiTelemetryService;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
import { EVENT_API_ERROR, EVENT_API_RESPONSE, EVENT_TOOL_CALL, } from './constants.js';
|
|
8
|
+
import { ToolCallDecision, } from './types.js';
|
|
9
|
+
const createInitialModelMetrics = () => ({
|
|
10
|
+
api: {
|
|
11
|
+
totalRequests: 0,
|
|
12
|
+
totalErrors: 0,
|
|
13
|
+
totalLatencyMs: 0,
|
|
14
|
+
},
|
|
15
|
+
tokens: {
|
|
16
|
+
prompt: 0,
|
|
17
|
+
candidates: 0,
|
|
18
|
+
total: 0,
|
|
19
|
+
cached: 0,
|
|
20
|
+
thoughts: 0,
|
|
21
|
+
tool: 0,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const createInitialMetrics = () => ({
|
|
25
|
+
models: {},
|
|
26
|
+
tools: {
|
|
27
|
+
totalCalls: 0,
|
|
28
|
+
totalSuccess: 0,
|
|
29
|
+
totalFail: 0,
|
|
30
|
+
totalDurationMs: 0,
|
|
31
|
+
totalDecisions: {
|
|
32
|
+
[ToolCallDecision.ACCEPT]: 0,
|
|
33
|
+
[ToolCallDecision.REJECT]: 0,
|
|
34
|
+
[ToolCallDecision.MODIFY]: 0,
|
|
35
|
+
},
|
|
36
|
+
byName: {},
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
export class UiTelemetryService extends EventEmitter {
|
|
40
|
+
#metrics = createInitialMetrics();
|
|
41
|
+
#lastPromptTokenCount = 0;
|
|
42
|
+
addEvent(event) {
|
|
43
|
+
switch (event['event.name']) {
|
|
44
|
+
case EVENT_API_RESPONSE:
|
|
45
|
+
this.processApiResponse(event);
|
|
46
|
+
break;
|
|
47
|
+
case EVENT_API_ERROR:
|
|
48
|
+
this.processApiError(event);
|
|
49
|
+
break;
|
|
50
|
+
case EVENT_TOOL_CALL:
|
|
51
|
+
this.processToolCall(event);
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
// We should not emit update for any other event metric.
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.emit('update', {
|
|
58
|
+
metrics: this.#metrics,
|
|
59
|
+
lastPromptTokenCount: this.#lastPromptTokenCount,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
getMetrics() {
|
|
63
|
+
return this.#metrics;
|
|
64
|
+
}
|
|
65
|
+
getLastPromptTokenCount() {
|
|
66
|
+
return this.#lastPromptTokenCount;
|
|
67
|
+
}
|
|
68
|
+
getOrCreateModelMetrics(modelName) {
|
|
69
|
+
if (!this.#metrics.models[modelName]) {
|
|
70
|
+
this.#metrics.models[modelName] = createInitialModelMetrics();
|
|
71
|
+
}
|
|
72
|
+
return this.#metrics.models[modelName];
|
|
73
|
+
}
|
|
74
|
+
processApiResponse(event) {
|
|
75
|
+
const modelMetrics = this.getOrCreateModelMetrics(event.model);
|
|
76
|
+
modelMetrics.api.totalRequests++;
|
|
77
|
+
modelMetrics.api.totalLatencyMs += event.duration_ms;
|
|
78
|
+
modelMetrics.tokens.prompt += event.input_token_count;
|
|
79
|
+
modelMetrics.tokens.candidates += event.output_token_count;
|
|
80
|
+
modelMetrics.tokens.total += event.total_token_count;
|
|
81
|
+
modelMetrics.tokens.cached += event.cached_content_token_count;
|
|
82
|
+
modelMetrics.tokens.thoughts += event.thoughts_token_count;
|
|
83
|
+
modelMetrics.tokens.tool += event.tool_token_count;
|
|
84
|
+
this.#lastPromptTokenCount = event.input_token_count;
|
|
85
|
+
}
|
|
86
|
+
processApiError(event) {
|
|
87
|
+
const modelMetrics = this.getOrCreateModelMetrics(event.model);
|
|
88
|
+
modelMetrics.api.totalRequests++;
|
|
89
|
+
modelMetrics.api.totalErrors++;
|
|
90
|
+
modelMetrics.api.totalLatencyMs += event.duration_ms;
|
|
91
|
+
}
|
|
92
|
+
processToolCall(event) {
|
|
93
|
+
const { tools } = this.#metrics;
|
|
94
|
+
tools.totalCalls++;
|
|
95
|
+
tools.totalDurationMs += event.duration_ms;
|
|
96
|
+
if (event.success) {
|
|
97
|
+
tools.totalSuccess++;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
tools.totalFail++;
|
|
101
|
+
}
|
|
102
|
+
if (!tools.byName[event.function_name]) {
|
|
103
|
+
tools.byName[event.function_name] = {
|
|
104
|
+
count: 0,
|
|
105
|
+
success: 0,
|
|
106
|
+
fail: 0,
|
|
107
|
+
durationMs: 0,
|
|
108
|
+
decisions: {
|
|
109
|
+
[ToolCallDecision.ACCEPT]: 0,
|
|
110
|
+
[ToolCallDecision.REJECT]: 0,
|
|
111
|
+
[ToolCallDecision.MODIFY]: 0,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const toolStats = tools.byName[event.function_name];
|
|
116
|
+
toolStats.count++;
|
|
117
|
+
toolStats.durationMs += event.duration_ms;
|
|
118
|
+
if (event.success) {
|
|
119
|
+
toolStats.success++;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
toolStats.fail++;
|
|
123
|
+
}
|
|
124
|
+
if (event.decision) {
|
|
125
|
+
tools.totalDecisions[event.decision]++;
|
|
126
|
+
toolStats.decisions[event.decision]++;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export const uiTelemetryService = new UiTelemetryService();
|
|
131
|
+
//# sourceMappingURL=uiTelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiTelemetry.js","sourceRoot":"","sources":["../../../src/telemetry/uiTelemetry.ts"],"names":[],"mappings":"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"}
|