@codemieai/code 0.0.16 → 0.0.18
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/README.md +62 -5
- package/bin/agent-executor.js +7 -28
- package/bin/codemie-claude.js +18 -0
- package/bin/codemie-codex.js +18 -0
- package/bin/codemie-deepagents.js +18 -0
- package/bin/codemie-gemini.js +18 -0
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +3 -32
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/tools/planning.d.ts +2 -2
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +31 -62
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +9 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +125 -10
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/BaseMetricsAdapter.d.ts +64 -0
- package/dist/agents/core/BaseMetricsAdapter.d.ts.map +1 -0
- package/dist/agents/core/BaseMetricsAdapter.js +74 -0
- package/dist/agents/core/BaseMetricsAdapter.js.map +1 -0
- package/dist/agents/core/types.d.ts +1 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude.metrics.d.ts +112 -0
- package/dist/agents/plugins/claude.metrics.d.ts.map +1 -0
- package/dist/agents/plugins/claude.metrics.js +700 -0
- package/dist/agents/plugins/claude.metrics.js.map +1 -0
- package/dist/agents/plugins/claude.plugin.d.ts +9 -0
- package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +52 -10
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +57 -13
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex.plugin.js +1 -3
- package/dist/agents/plugins/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/gemini.plugin.js +0 -7
- package/dist/agents/plugins/gemini.plugin.js.map +1 -1
- package/dist/agents/plugins/history-parser.d.ts +52 -0
- package/dist/agents/plugins/history-parser.d.ts.map +1 -0
- package/dist/agents/plugins/history-parser.js +155 -0
- package/dist/agents/plugins/history-parser.js.map +1 -0
- package/dist/cli/commands/analytics/aggregator.d.ts +58 -0
- package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -0
- package/dist/cli/commands/analytics/aggregator.js +702 -0
- package/dist/cli/commands/analytics/aggregator.js.map +1 -0
- package/dist/cli/commands/analytics/data-loader.d.ts +84 -0
- package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -0
- package/dist/cli/commands/analytics/data-loader.js +211 -0
- package/dist/cli/commands/analytics/data-loader.js.map +1 -0
- package/dist/cli/commands/analytics/exporter.d.ts +20 -0
- package/dist/cli/commands/analytics/exporter.d.ts.map +1 -0
- package/dist/cli/commands/analytics/exporter.js +103 -0
- package/dist/cli/commands/analytics/exporter.js.map +1 -0
- package/dist/cli/commands/analytics/formatter.d.ts +49 -0
- package/dist/cli/commands/analytics/formatter.d.ts.map +1 -0
- package/dist/cli/commands/analytics/formatter.js +309 -0
- package/dist/cli/commands/analytics/formatter.js.map +1 -0
- package/dist/cli/commands/analytics/index.d.ts +6 -0
- package/dist/cli/commands/analytics/index.d.ts.map +1 -0
- package/dist/cli/commands/analytics/index.js +157 -0
- package/dist/cli/commands/analytics/index.js.map +1 -0
- package/dist/cli/commands/analytics/model-normalizer.d.ts +21 -0
- package/dist/cli/commands/analytics/model-normalizer.d.ts.map +1 -0
- package/dist/cli/commands/analytics/model-normalizer.js +44 -0
- package/dist/cli/commands/analytics/model-normalizer.js.map +1 -0
- package/dist/cli/commands/analytics/types.d.ts +188 -0
- package/dist/cli/commands/analytics/types.d.ts.map +1 -0
- package/dist/cli/commands/analytics/types.js +6 -0
- package/dist/cli/commands/analytics/types.js.map +1 -0
- package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts +9 -0
- package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/AwsCliCheck.js +28 -0
- package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/PythonCheck.js +10 -0
- package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +2 -1
- package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -1
- package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/index.js +1 -0
- package/dist/cli/commands/doctor/checks/index.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +75 -3
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/profile.d.ts.map +1 -1
- package/dist/cli/commands/profile.js +49 -89
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/setup.js +1 -21
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +14 -2
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/metrics/MetricsOrchestrator.d.ts +67 -0
- package/dist/metrics/MetricsOrchestrator.d.ts.map +1 -0
- package/dist/metrics/MetricsOrchestrator.js +287 -0
- package/dist/metrics/MetricsOrchestrator.js.map +1 -0
- package/dist/metrics/config.d.ts +38 -0
- package/dist/metrics/config.d.ts.map +1 -0
- package/dist/metrics/config.js +80 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/core/DeltaWriter.d.ts +49 -0
- package/dist/metrics/core/DeltaWriter.d.ts.map +1 -0
- package/dist/metrics/core/DeltaWriter.js +146 -0
- package/dist/metrics/core/DeltaWriter.js.map +1 -0
- package/dist/metrics/core/FileSnapshotter.d.ts +22 -0
- package/dist/metrics/core/FileSnapshotter.d.ts.map +1 -0
- package/dist/metrics/core/FileSnapshotter.js +74 -0
- package/dist/metrics/core/FileSnapshotter.js.map +1 -0
- package/dist/metrics/core/SessionCorrelator.d.ts +34 -0
- package/dist/metrics/core/SessionCorrelator.d.ts.map +1 -0
- package/dist/metrics/core/SessionCorrelator.js +115 -0
- package/dist/metrics/core/SessionCorrelator.js.map +1 -0
- package/dist/metrics/core/SyncStateManager.d.ts +69 -0
- package/dist/metrics/core/SyncStateManager.d.ts.map +1 -0
- package/dist/metrics/core/SyncStateManager.js +284 -0
- package/dist/metrics/core/SyncStateManager.js.map +1 -0
- package/dist/metrics/index.d.ts +9 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +11 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/session/SessionStore.d.ts +43 -0
- package/dist/metrics/session/SessionStore.d.ts.map +1 -0
- package/dist/metrics/session/SessionStore.js +142 -0
- package/dist/metrics/session/SessionStore.js.map +1 -0
- package/dist/metrics/sync/MetricsApiClient.d.ts +32 -0
- package/dist/metrics/sync/MetricsApiClient.d.ts.map +1 -0
- package/dist/metrics/sync/MetricsApiClient.js +155 -0
- package/dist/metrics/sync/MetricsApiClient.js.map +1 -0
- package/dist/metrics/sync/aggregator.d.ts +14 -0
- package/dist/metrics/sync/aggregator.d.ts.map +1 -0
- package/dist/metrics/sync/aggregator.js +214 -0
- package/dist/metrics/sync/aggregator.js.map +1 -0
- package/dist/metrics/sync/index.d.ts +10 -0
- package/dist/metrics/sync/index.d.ts.map +1 -0
- package/dist/metrics/sync/index.js +10 -0
- package/dist/metrics/sync/index.js.map +1 -0
- package/dist/metrics/sync/jsonl-writer.d.ts +28 -0
- package/dist/metrics/sync/jsonl-writer.d.ts.map +1 -0
- package/dist/metrics/sync/jsonl-writer.js +72 -0
- package/dist/metrics/sync/jsonl-writer.js.map +1 -0
- package/dist/metrics/sync/types.d.ts +73 -0
- package/dist/metrics/sync/types.d.ts.map +1 -0
- package/dist/metrics/sync/types.js +7 -0
- package/dist/metrics/sync/types.js.map +1 -0
- package/dist/metrics/types.d.ts +308 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/metrics/types.js +8 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/integration/setup-ui.d.ts +1 -1
- package/dist/providers/integration/setup-ui.d.ts.map +1 -1
- package/dist/providers/integration/setup-ui.js +51 -6
- package/dist/providers/integration/setup-ui.js.map +1 -1
- package/dist/providers/plugins/bedrock/bedrock.health.d.ts +53 -0
- package/dist/providers/plugins/bedrock/bedrock.health.d.ts.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.health.js +115 -0
- package/dist/providers/plugins/bedrock/bedrock.health.js.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.models.d.ts +26 -0
- package/dist/providers/plugins/bedrock/bedrock.models.d.ts.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.models.js +89 -0
- package/dist/providers/plugins/bedrock/bedrock.models.js.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts +12 -0
- package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.setup-steps.js +308 -0
- package/dist/providers/plugins/bedrock/bedrock.setup-steps.js.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.template.d.ts +11 -0
- package/dist/providers/plugins/bedrock/bedrock.template.d.ts.map +1 -0
- package/dist/providers/plugins/bedrock/bedrock.template.js +85 -0
- package/dist/providers/plugins/bedrock/bedrock.template.js.map +1 -0
- package/dist/providers/plugins/bedrock/index.d.ts +11 -0
- package/dist/providers/plugins/bedrock/index.d.ts.map +1 -0
- package/dist/providers/plugins/bedrock/index.js +11 -0
- package/dist/providers/plugins/bedrock/index.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
- package/dist/providers/plugins/ollama/ollama.template.js +2 -0
- package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.d.ts +2 -0
- package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +9 -3
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/proxy/http-client.d.ts +1 -1
- package/dist/proxy/http-client.d.ts.map +1 -1
- package/dist/proxy/http-client.js +78 -12
- package/dist/proxy/http-client.js.map +1 -1
- package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts +19 -0
- package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -0
- package/dist/proxy/plugins/endpoint-blocker.plugin.js +61 -0
- package/dist/proxy/plugins/endpoint-blocker.plugin.js.map +1 -0
- package/dist/proxy/plugins/header-injection.plugin.js +3 -0
- package/dist/proxy/plugins/header-injection.plugin.js.map +1 -1
- package/dist/proxy/plugins/index.d.ts +3 -1
- package/dist/proxy/plugins/index.d.ts.map +1 -1
- package/dist/proxy/plugins/index.js +5 -1
- package/dist/proxy/plugins/index.js.map +1 -1
- package/dist/proxy/plugins/logging.plugin.d.ts +11 -3
- package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -1
- package/dist/proxy/plugins/logging.plugin.js +189 -25
- package/dist/proxy/plugins/logging.plugin.js.map +1 -1
- package/dist/proxy/plugins/metrics-sync.plugin.d.ts +33 -0
- package/dist/proxy/plugins/metrics-sync.plugin.d.ts.map +1 -0
- package/dist/proxy/plugins/metrics-sync.plugin.js +320 -0
- package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -0
- package/dist/proxy/plugins/registry.d.ts.map +1 -1
- package/dist/proxy/plugins/registry.js +8 -1
- package/dist/proxy/plugins/registry.js.map +1 -1
- package/dist/proxy/plugins/types.d.ts +6 -2
- package/dist/proxy/plugins/types.d.ts.map +1 -1
- package/dist/proxy/types.d.ts +8 -1
- package/dist/proxy/types.d.ts.map +1 -1
- package/dist/utils/ascii-logo.d.ts +21 -0
- package/dist/utils/ascii-logo.d.ts.map +1 -0
- package/dist/utils/ascii-logo.js +85 -0
- package/dist/utils/ascii-logo.js.map +1 -0
- package/dist/utils/codemie-proxy.d.ts +2 -7
- package/dist/utils/codemie-proxy.d.ts.map +1 -1
- package/dist/utils/codemie-proxy.js +83 -61
- package/dist/utils/codemie-proxy.js.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +22 -6
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/exec.d.ts +11 -0
- package/dist/utils/exec.d.ts.map +1 -1
- package/dist/utils/exec.js +17 -1
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/goodbye-messages.d.ts +13 -0
- package/dist/utils/goodbye-messages.d.ts.map +1 -0
- package/dist/utils/goodbye-messages.js +245 -0
- package/dist/utils/goodbye-messages.js.map +1 -0
- package/dist/utils/json-parser.d.ts +52 -0
- package/dist/utils/json-parser.d.ts.map +1 -0
- package/dist/utils/json-parser.js +126 -0
- package/dist/utils/json-parser.js.map +1 -0
- package/dist/utils/logger.d.ts +37 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +92 -20
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/sanitize.d.ts.map +1 -1
- package/dist/utils/sanitize.js +0 -1
- package/dist/utils/sanitize.js.map +1 -1
- package/dist/utils/which.d.ts +20 -0
- package/dist/utils/which.d.ts.map +1 -0
- package/dist/utils/which.js +47 -0
- package/dist/utils/which.js.map +1 -0
- package/package.json +10 -5
- package/dist/analytics/aggregation/adapters/claude.adapter.d.ts +0 -37
- package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +0 -1
- package/dist/analytics/aggregation/adapters/claude.adapter.js +0 -531
- package/dist/analytics/aggregation/adapters/claude.adapter.js.map +0 -1
- package/dist/analytics/aggregation/adapters/codex.adapter.d.ts +0 -25
- package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +0 -1
- package/dist/analytics/aggregation/adapters/codex.adapter.js +0 -396
- package/dist/analytics/aggregation/adapters/codex.adapter.js.map +0 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +0 -36
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +0 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.js +0 -365
- package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +0 -1
- package/dist/analytics/aggregation/adapters/index.d.ts +0 -7
- package/dist/analytics/aggregation/adapters/index.d.ts.map +0 -1
- package/dist/analytics/aggregation/adapters/index.js +0 -7
- package/dist/analytics/aggregation/adapters/index.js.map +0 -1
- package/dist/analytics/aggregation/aggregator.d.ts +0 -49
- package/dist/analytics/aggregation/aggregator.d.ts.map +0 -1
- package/dist/analytics/aggregation/aggregator.js +0 -239
- package/dist/analytics/aggregation/aggregator.js.map +0 -1
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +0 -99
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +0 -110
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +0 -1
- package/dist/analytics/aggregation/core/adapter.interface.d.ts +0 -76
- package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/adapter.interface.js +0 -9
- package/dist/analytics/aggregation/core/adapter.interface.js.map +0 -1
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts +0 -86
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/aggregation-utils.js +0 -126
- package/dist/analytics/aggregation/core/aggregation-utils.js.map +0 -1
- package/dist/analytics/aggregation/core/discovery.d.ts +0 -40
- package/dist/analytics/aggregation/core/discovery.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/discovery.js +0 -132
- package/dist/analytics/aggregation/core/discovery.js.map +0 -1
- package/dist/analytics/aggregation/core/file-utils.d.ts +0 -24
- package/dist/analytics/aggregation/core/file-utils.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/file-utils.js +0 -143
- package/dist/analytics/aggregation/core/file-utils.js.map +0 -1
- package/dist/analytics/aggregation/core/index.d.ts +0 -14
- package/dist/analytics/aggregation/core/index.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/index.js +0 -14
- package/dist/analytics/aggregation/core/index.js.map +0 -1
- package/dist/analytics/aggregation/core/project-mapping.d.ts +0 -50
- package/dist/analytics/aggregation/core/project-mapping.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/project-mapping.js +0 -102
- package/dist/analytics/aggregation/core/project-mapping.js.map +0 -1
- package/dist/analytics/aggregation/core/streaming.d.ts +0 -26
- package/dist/analytics/aggregation/core/streaming.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/streaming.js +0 -58
- package/dist/analytics/aggregation/core/streaming.js.map +0 -1
- package/dist/analytics/aggregation/core/user-prompt-source.d.ts +0 -81
- package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/user-prompt-source.js +0 -69
- package/dist/analytics/aggregation/core/user-prompt-source.js.map +0 -1
- package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +0 -49
- package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/user-prompt-sources/json.js +0 -66
- package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +0 -1
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +0 -43
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +0 -1
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +0 -56
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +0 -1
- package/dist/analytics/aggregation/index.d.ts +0 -8
- package/dist/analytics/aggregation/index.d.ts.map +0 -1
- package/dist/analytics/aggregation/index.js +0 -8
- package/dist/analytics/aggregation/index.js.map +0 -1
- package/dist/analytics/aggregation/types.d.ts +0 -278
- package/dist/analytics/aggregation/types.d.ts.map +0 -1
- package/dist/analytics/aggregation/types.js +0 -8
- package/dist/analytics/aggregation/types.js.map +0 -1
- package/dist/analytics/collector.d.ts +0 -46
- package/dist/analytics/collector.d.ts.map +0 -1
- package/dist/analytics/collector.js +0 -83
- package/dist/analytics/collector.js.map +0 -1
- package/dist/analytics/config.d.ts +0 -15
- package/dist/analytics/config.d.ts.map +0 -1
- package/dist/analytics/config.js +0 -65
- package/dist/analytics/config.js.map +0 -1
- package/dist/analytics/index.d.ts +0 -99
- package/dist/analytics/index.d.ts.map +0 -1
- package/dist/analytics/index.js +0 -280
- package/dist/analytics/index.js.map +0 -1
- package/dist/analytics/plugins/api-metrics.plugin.d.ts +0 -26
- package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +0 -1
- package/dist/analytics/plugins/api-metrics.plugin.js +0 -97
- package/dist/analytics/plugins/api-metrics.plugin.js.map +0 -1
- package/dist/analytics/plugins/index.d.ts +0 -15
- package/dist/analytics/plugins/index.d.ts.map +0 -1
- package/dist/analytics/plugins/index.js +0 -15
- package/dist/analytics/plugins/index.js.map +0 -1
- package/dist/analytics/plugins/model-metrics.plugin.d.ts +0 -39
- package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +0 -1
- package/dist/analytics/plugins/model-metrics.plugin.js +0 -105
- package/dist/analytics/plugins/model-metrics.plugin.js.map +0 -1
- package/dist/analytics/plugins/provider-metrics.plugin.d.ts +0 -41
- package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +0 -1
- package/dist/analytics/plugins/provider-metrics.plugin.js +0 -123
- package/dist/analytics/plugins/provider-metrics.plugin.js.map +0 -1
- package/dist/analytics/plugins/types.d.ts +0 -61
- package/dist/analytics/plugins/types.d.ts.map +0 -1
- package/dist/analytics/plugins/types.js +0 -54
- package/dist/analytics/plugins/types.js.map +0 -1
- package/dist/analytics/privacy.d.ts +0 -10
- package/dist/analytics/privacy.d.ts.map +0 -1
- package/dist/analytics/privacy.js +0 -20
- package/dist/analytics/privacy.js.map +0 -1
- package/dist/analytics/remote-submission/cursor-manager.d.ts +0 -71
- package/dist/analytics/remote-submission/cursor-manager.d.ts.map +0 -1
- package/dist/analytics/remote-submission/cursor-manager.js +0 -204
- package/dist/analytics/remote-submission/cursor-manager.js.map +0 -1
- package/dist/analytics/remote-submission/index.d.ts +0 -12
- package/dist/analytics/remote-submission/index.d.ts.map +0 -1
- package/dist/analytics/remote-submission/index.js +0 -11
- package/dist/analytics/remote-submission/index.js.map +0 -1
- package/dist/analytics/remote-submission/lock-manager.d.ts +0 -71
- package/dist/analytics/remote-submission/lock-manager.d.ts.map +0 -1
- package/dist/analytics/remote-submission/lock-manager.js +0 -238
- package/dist/analytics/remote-submission/lock-manager.js.map +0 -1
- package/dist/analytics/remote-submission/metric-transformer.d.ts +0 -21
- package/dist/analytics/remote-submission/metric-transformer.d.ts.map +0 -1
- package/dist/analytics/remote-submission/metric-transformer.js +0 -82
- package/dist/analytics/remote-submission/metric-transformer.js.map +0 -1
- package/dist/analytics/remote-submission/submitter.d.ts +0 -79
- package/dist/analytics/remote-submission/submitter.d.ts.map +0 -1
- package/dist/analytics/remote-submission/submitter.js +0 -362
- package/dist/analytics/remote-submission/submitter.js.map +0 -1
- package/dist/analytics/remote-submission/types.d.ts +0 -123
- package/dist/analytics/remote-submission/types.d.ts.map +0 -1
- package/dist/analytics/remote-submission/types.js +0 -13
- package/dist/analytics/remote-submission/types.js.map +0 -1
- package/dist/analytics/session.d.ts +0 -56
- package/dist/analytics/session.d.ts.map +0 -1
- package/dist/analytics/session.js +0 -95
- package/dist/analytics/session.js.map +0 -1
- package/dist/analytics/types.d.ts +0 -104
- package/dist/analytics/types.d.ts.map +0 -1
- package/dist/analytics/types.js +0 -15
- package/dist/analytics/types.js.map +0 -1
- package/dist/analytics/writer.d.ts +0 -18
- package/dist/analytics/writer.d.ts.map +0 -1
- package/dist/analytics/writer.js +0 -44
- package/dist/analytics/writer.js.map +0 -1
- package/dist/cli/commands/analytics.d.ts +0 -3
- package/dist/cli/commands/analytics.d.ts.map +0 -1
- package/dist/cli/commands/analytics.js +0 -748
- package/dist/cli/commands/analytics.js.map +0 -1
- package/dist/utils/analytics-reader.d.ts +0 -117
- package/dist/utils/analytics-reader.d.ts.map +0 -1
- package/dist/utils/analytics-reader.js +0 -421
- package/dist/utils/analytics-reader.js.map +0 -1
- package/dist/utils/date-formatter.d.ts +0 -88
- package/dist/utils/date-formatter.d.ts.map +0 -1
- package/dist/utils/date-formatter.js +0 -133
- package/dist/utils/date-formatter.js.map +0 -1
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CodeMie Analytics Aggregator
|
|
3
|
-
*
|
|
4
|
-
* Main service for aggregating analytics data from multiple AI agents.
|
|
5
|
-
* Uses AgentRegistry to automatically discover all registered analytics adapters.
|
|
6
|
-
*/
|
|
7
|
-
import { AgentRegistry } from '../../agents/registry.js';
|
|
8
|
-
/**
|
|
9
|
-
* Main aggregator service
|
|
10
|
-
*/
|
|
11
|
-
export class CodemieAnalyticsAggregator {
|
|
12
|
-
/**
|
|
13
|
-
* Aggregate sessions from all agents
|
|
14
|
-
*/
|
|
15
|
-
async aggregateSessions(options = {}) {
|
|
16
|
-
const sessions = [];
|
|
17
|
-
// Get all analytics adapters from registry (automatically registered with plugins)
|
|
18
|
-
const adapters = AgentRegistry.getAllAnalyticsAdapters();
|
|
19
|
-
// Filter by agent if specified
|
|
20
|
-
const filteredAdapters = options.agent
|
|
21
|
-
? adapters.filter(a => a.agentName === options.agent)
|
|
22
|
-
: adapters;
|
|
23
|
-
// Query all adapters in parallel
|
|
24
|
-
const promises = filteredAdapters.map(async (adapter) => {
|
|
25
|
-
try {
|
|
26
|
-
// Check if source is valid
|
|
27
|
-
const isValid = await adapter.validateSource();
|
|
28
|
-
if (!isValid) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
// Find sessions matching criteria
|
|
32
|
-
const descriptors = await adapter.findSessions({
|
|
33
|
-
projectPath: options.projectPath,
|
|
34
|
-
dateFrom: options.dateFrom,
|
|
35
|
-
dateTo: options.dateTo,
|
|
36
|
-
limit: options.limit,
|
|
37
|
-
offset: options.offset
|
|
38
|
-
});
|
|
39
|
-
// Extract session details
|
|
40
|
-
for (const descriptor of descriptors) {
|
|
41
|
-
try {
|
|
42
|
-
const session = await adapter.extractSession(descriptor);
|
|
43
|
-
sessions.push(session);
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
console.error(`Error extracting session ${descriptor.sessionId}: ${error}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
console.error(`Error aggregating ${adapter.displayName} (${adapter.agentName}): ${error}`);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
await Promise.all(promises);
|
|
55
|
-
// Sort by startTime
|
|
56
|
-
return sessions.sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get detailed information for a specific session
|
|
60
|
-
*/
|
|
61
|
-
async getSessionDetails(sessionId, agentName) {
|
|
62
|
-
// Get adapter from registry
|
|
63
|
-
const adapter = AgentRegistry.getAnalyticsAdapter(agentName);
|
|
64
|
-
if (!adapter) {
|
|
65
|
-
throw new Error(`Unknown agent or no analytics adapter: ${agentName}`);
|
|
66
|
-
}
|
|
67
|
-
// Find session descriptor
|
|
68
|
-
const descriptors = await adapter.findSessions();
|
|
69
|
-
const descriptor = descriptors.find(d => d.sessionId === sessionId);
|
|
70
|
-
if (!descriptor) {
|
|
71
|
-
throw new Error(`Session not found: ${sessionId}`);
|
|
72
|
-
}
|
|
73
|
-
// Extract all details in parallel
|
|
74
|
-
const [session, messages, toolCalls, fileModifications] = await Promise.all([
|
|
75
|
-
adapter.extractSession(descriptor),
|
|
76
|
-
adapter.extractMessages(descriptor),
|
|
77
|
-
adapter.extractToolCalls(descriptor),
|
|
78
|
-
adapter.extractFileModifications(descriptor)
|
|
79
|
-
]);
|
|
80
|
-
return {
|
|
81
|
-
session,
|
|
82
|
-
messages,
|
|
83
|
-
toolCalls,
|
|
84
|
-
fileModifications
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Generate analytics report with statistics
|
|
89
|
-
*/
|
|
90
|
-
async generateReport(options = {}) {
|
|
91
|
-
const sessions = await this.aggregateSessions(options);
|
|
92
|
-
return {
|
|
93
|
-
summary: this.calculateSummary(sessions),
|
|
94
|
-
sessions,
|
|
95
|
-
breakdown: {
|
|
96
|
-
byAgent: this.groupByAgent(sessions),
|
|
97
|
-
byModel: this.groupByModel(sessions),
|
|
98
|
-
byProject: this.groupByProject(sessions),
|
|
99
|
-
byDay: this.groupByDay(sessions)
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Calculate summary statistics
|
|
105
|
-
*/
|
|
106
|
-
calculateSummary(sessions) {
|
|
107
|
-
const totalMessages = sessions.reduce((sum, s) => sum + s.userMessageCount + s.assistantMessageCount, 0);
|
|
108
|
-
const totalTokens = sessions.reduce((sum, s) => sum + s.tokens.total, 0);
|
|
109
|
-
const totalToolCalls = sessions.reduce((sum, s) => sum + s.toolCallCount, 0);
|
|
110
|
-
const totalFileModifications = sessions.reduce((sum, s) => sum + s.fileModifications, 0);
|
|
111
|
-
const durations = sessions.map(s => s.durationMs || 0).filter(d => d > 0);
|
|
112
|
-
const averageSessionDuration = durations.length > 0
|
|
113
|
-
? durations.reduce((sum, d) => sum + d, 0) / durations.length
|
|
114
|
-
: 0;
|
|
115
|
-
const successRate = this.calculateSuccessRate(sessions);
|
|
116
|
-
return {
|
|
117
|
-
totalSessions: sessions.length,
|
|
118
|
-
totalMessages,
|
|
119
|
-
totalTokens,
|
|
120
|
-
totalToolCalls,
|
|
121
|
-
totalFileModifications,
|
|
122
|
-
averageSessionDuration,
|
|
123
|
-
successRate
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Calculate success rate (sessions without errors)
|
|
128
|
-
*/
|
|
129
|
-
calculateSuccessRate(sessions) {
|
|
130
|
-
if (sessions.length === 0)
|
|
131
|
-
return 0;
|
|
132
|
-
const successfulSessions = sessions.filter(s => !s.hadErrors).length;
|
|
133
|
-
return successfulSessions / sessions.length;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Group sessions by agent
|
|
137
|
-
*/
|
|
138
|
-
groupByAgent(sessions) {
|
|
139
|
-
const grouped = {};
|
|
140
|
-
for (const session of sessions) {
|
|
141
|
-
if (!grouped[session.agent]) {
|
|
142
|
-
grouped[session.agent] = {
|
|
143
|
-
sessions: 0,
|
|
144
|
-
messages: 0,
|
|
145
|
-
tokens: 0,
|
|
146
|
-
toolCalls: 0,
|
|
147
|
-
fileModifications: 0,
|
|
148
|
-
averageDuration: 0,
|
|
149
|
-
successRate: 0
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
const stats = grouped[session.agent];
|
|
153
|
-
stats.sessions++;
|
|
154
|
-
stats.messages += session.userMessageCount + session.assistantMessageCount;
|
|
155
|
-
stats.tokens += session.tokens.total;
|
|
156
|
-
stats.toolCalls += session.toolCallCount;
|
|
157
|
-
stats.fileModifications += session.fileModifications;
|
|
158
|
-
}
|
|
159
|
-
// Calculate averages
|
|
160
|
-
for (const agent in grouped) {
|
|
161
|
-
const stats = grouped[agent];
|
|
162
|
-
const agentSessions = sessions.filter(s => s.agent === agent);
|
|
163
|
-
const durations = agentSessions.map(s => s.durationMs || 0).filter(d => d > 0);
|
|
164
|
-
stats.averageDuration = durations.length > 0
|
|
165
|
-
? durations.reduce((sum, d) => sum + d, 0) / durations.length
|
|
166
|
-
: 0;
|
|
167
|
-
stats.successRate = this.calculateSuccessRate(agentSessions);
|
|
168
|
-
}
|
|
169
|
-
return grouped;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Group sessions by model
|
|
173
|
-
*/
|
|
174
|
-
groupByModel(sessions) {
|
|
175
|
-
const grouped = {};
|
|
176
|
-
for (const session of sessions) {
|
|
177
|
-
if (!grouped[session.model]) {
|
|
178
|
-
grouped[session.model] = {
|
|
179
|
-
sessions: 0,
|
|
180
|
-
tokens: 0,
|
|
181
|
-
averageTokensPerSession: 0
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
const stats = grouped[session.model];
|
|
185
|
-
stats.sessions++;
|
|
186
|
-
stats.tokens += session.tokens.total;
|
|
187
|
-
}
|
|
188
|
-
// Calculate averages
|
|
189
|
-
for (const model in grouped) {
|
|
190
|
-
const stats = grouped[model];
|
|
191
|
-
stats.averageTokensPerSession = stats.tokens / stats.sessions;
|
|
192
|
-
}
|
|
193
|
-
return grouped;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Group sessions by project
|
|
197
|
-
*/
|
|
198
|
-
groupByProject(sessions) {
|
|
199
|
-
const grouped = {};
|
|
200
|
-
for (const session of sessions) {
|
|
201
|
-
const project = session.projectPath || 'other';
|
|
202
|
-
if (!grouped[project]) {
|
|
203
|
-
grouped[project] = {
|
|
204
|
-
sessions: 0,
|
|
205
|
-
messages: 0,
|
|
206
|
-
fileModifications: 0
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
const stats = grouped[project];
|
|
210
|
-
stats.sessions++;
|
|
211
|
-
stats.messages += session.userMessageCount + session.assistantMessageCount;
|
|
212
|
-
stats.fileModifications += session.fileModifications;
|
|
213
|
-
}
|
|
214
|
-
return grouped;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Group sessions by day
|
|
218
|
-
*/
|
|
219
|
-
groupByDay(sessions) {
|
|
220
|
-
const grouped = {};
|
|
221
|
-
for (const session of sessions) {
|
|
222
|
-
const date = session.startTime.toISOString().split('T')[0];
|
|
223
|
-
if (!grouped[date]) {
|
|
224
|
-
grouped[date] = {
|
|
225
|
-
date,
|
|
226
|
-
sessions: 0,
|
|
227
|
-
messages: 0,
|
|
228
|
-
tokens: 0
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
const stats = grouped[date];
|
|
232
|
-
stats.sessions++;
|
|
233
|
-
stats.messages += session.userMessageCount + session.assistantMessageCount;
|
|
234
|
-
stats.tokens += session.tokens.total;
|
|
235
|
-
}
|
|
236
|
-
return grouped;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=aggregator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../../src/analytics/aggregation/aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Analytics Adapter
|
|
3
|
-
*
|
|
4
|
-
* Provides common functionality for all agent analytics adapters.
|
|
5
|
-
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
6
|
-
* Subclasses provide agent-specific session discovery and extraction.
|
|
7
|
-
*/
|
|
8
|
-
import { AgentAnalyticsAdapter, AdapterMetadata } from './adapter.interface.js';
|
|
9
|
-
import { SessionQueryOptions, SessionDescriptor, CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../types.js';
|
|
10
|
-
import { UserPromptSource, UserPrompt } from './user-prompt-source.js';
|
|
11
|
-
/**
|
|
12
|
-
* Base Analytics Adapter
|
|
13
|
-
*
|
|
14
|
-
* Provides common functionality for all agent analytics adapters.
|
|
15
|
-
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
16
|
-
* Subclasses provide agent-specific session discovery and extraction.
|
|
17
|
-
*/
|
|
18
|
-
export declare abstract class BaseAnalyticsAdapter implements AgentAnalyticsAdapter {
|
|
19
|
-
agentName: string;
|
|
20
|
-
displayName: string;
|
|
21
|
-
version: string;
|
|
22
|
-
protected homePath: string;
|
|
23
|
-
protected sessionsPath: string;
|
|
24
|
-
protected userPromptSource?: UserPromptSource;
|
|
25
|
-
/**
|
|
26
|
-
* Constructor - Extracts metadata for all adapters
|
|
27
|
-
*/
|
|
28
|
-
constructor(metadata: AdapterMetadata);
|
|
29
|
-
/**
|
|
30
|
-
* Validate that the adapter's data source exists
|
|
31
|
-
* Implementation provided - works for all adapters
|
|
32
|
-
*/
|
|
33
|
-
validateSource(): Promise<boolean>;
|
|
34
|
-
/**
|
|
35
|
-
* Apply pagination to session descriptors
|
|
36
|
-
* Shared helper for subclasses to use in findSessions()
|
|
37
|
-
*/
|
|
38
|
-
protected applyPagination(descriptors: SessionDescriptor[], options?: SessionQueryOptions): SessionDescriptor[];
|
|
39
|
-
/**
|
|
40
|
-
* Read user prompts from source (optional)
|
|
41
|
-
* Subclasses should set userPromptSource to enable this functionality
|
|
42
|
-
*/
|
|
43
|
-
protected readUserPrompts(sessionId: string, options?: {
|
|
44
|
-
dateFrom?: Date;
|
|
45
|
-
dateTo?: Date;
|
|
46
|
-
}): Promise<UserPrompt[]>;
|
|
47
|
-
/**
|
|
48
|
-
* Count user prompts from source (optional)
|
|
49
|
-
* Returns 0 if no user prompt source is configured
|
|
50
|
-
*/
|
|
51
|
-
protected countUserPrompts(sessionId: string, options?: {
|
|
52
|
-
dateFrom?: Date;
|
|
53
|
-
dateTo?: Date;
|
|
54
|
-
}): Promise<number>;
|
|
55
|
-
/**
|
|
56
|
-
* Calculate user prompt percentage
|
|
57
|
-
* Formula: (userPromptCount / userMessageCount) * 100
|
|
58
|
-
* Returns undefined if userMessageCount is 0
|
|
59
|
-
* Shows what percentage of user messages are actual user prompts
|
|
60
|
-
* Lower percentage = more system-generated messages
|
|
61
|
-
*/
|
|
62
|
-
protected calculateUserPromptPercentage(userPromptCount: number, userMessageCount: number): number | undefined;
|
|
63
|
-
/**
|
|
64
|
-
* Find all sessions - MUST be implemented by subclass
|
|
65
|
-
* Each agent stores sessions differently
|
|
66
|
-
*/
|
|
67
|
-
abstract findSessions(options?: SessionQueryOptions): Promise<SessionDescriptor[]>;
|
|
68
|
-
/**
|
|
69
|
-
* Extract full session - MUST be implemented by subclass
|
|
70
|
-
* Each agent has different session format
|
|
71
|
-
*/
|
|
72
|
-
abstract extractSession(descriptor: SessionDescriptor): Promise<CodemieSession>;
|
|
73
|
-
/**
|
|
74
|
-
* Extract messages - MUST be implemented by subclass
|
|
75
|
-
* Each agent has different message format
|
|
76
|
-
*/
|
|
77
|
-
abstract extractMessages(descriptor: SessionDescriptor): Promise<CodemieMessage[]>;
|
|
78
|
-
/**
|
|
79
|
-
* Extract tool calls - MUST be implemented by subclass
|
|
80
|
-
* Each agent has different tool call format
|
|
81
|
-
*/
|
|
82
|
-
abstract extractToolCalls(descriptor: SessionDescriptor): Promise<CodemieToolCall[]>;
|
|
83
|
-
/**
|
|
84
|
-
* Extract file modifications - MUST be implemented by subclass
|
|
85
|
-
* Each agent has different tool naming
|
|
86
|
-
*/
|
|
87
|
-
abstract extractFileModifications(descriptor: SessionDescriptor): Promise<CodemieFileModification[]>;
|
|
88
|
-
/**
|
|
89
|
-
* Extract raw events (messages, tool calls, file modifications)
|
|
90
|
-
* Default implementation combines existing extract methods
|
|
91
|
-
* Subclasses can override for more efficient extraction
|
|
92
|
-
*/
|
|
93
|
-
extractRawEvents(descriptor: SessionDescriptor): Promise<{
|
|
94
|
-
messages: CodemieMessage[];
|
|
95
|
-
toolCalls: CodemieToolCall[];
|
|
96
|
-
fileModifications: CodemieFileModification[];
|
|
97
|
-
}>;
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=BaseAnalyticsAdapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAnalyticsAdapter.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/BaseAnalyticsAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,qBAAqB,EACrB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;;;;;GAMG;AACH,8BAAsB,oBAAqB,YAAW,qBAAqB;IAEzE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,SAAW;IAGlB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAE9C;;OAEG;gBACS,QAAQ,EAAE,eAAe;IASrC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAKxC;;;OAGG;IACH,SAAS,CAAC,eAAe,CACvB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,iBAAiB,EAAE;IActB;;;OAGG;cACa,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;IAWxB;;;OAGG;cACa,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC3C,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;;OAMG;IACH,SAAS,CAAC,6BAA6B,CACrC,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,GAAG,SAAS;IASrB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAElF;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAE/E;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAElF;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAEpF;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAEpG;;;;OAIG;IACG,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAC7D,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;KAC9C,CAAC;CAaH"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Analytics Adapter
|
|
3
|
-
*
|
|
4
|
-
* Provides common functionality for all agent analytics adapters.
|
|
5
|
-
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
6
|
-
* Subclasses provide agent-specific session discovery and extraction.
|
|
7
|
-
*/
|
|
8
|
-
import { existsSync } from 'node:fs';
|
|
9
|
-
import { resolvePath } from './discovery.js';
|
|
10
|
-
/**
|
|
11
|
-
* Base Analytics Adapter
|
|
12
|
-
*
|
|
13
|
-
* Provides common functionality for all agent analytics adapters.
|
|
14
|
-
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
15
|
-
* Subclasses provide agent-specific session discovery and extraction.
|
|
16
|
-
*/
|
|
17
|
-
export class BaseAnalyticsAdapter {
|
|
18
|
-
// === Interface Properties ===
|
|
19
|
-
agentName;
|
|
20
|
-
displayName;
|
|
21
|
-
version = '1.0.0';
|
|
22
|
-
// === Protected Properties ===
|
|
23
|
-
homePath;
|
|
24
|
-
sessionsPath;
|
|
25
|
-
userPromptSource;
|
|
26
|
-
/**
|
|
27
|
-
* Constructor - Extracts metadata for all adapters
|
|
28
|
-
*/
|
|
29
|
-
constructor(metadata) {
|
|
30
|
-
this.agentName = metadata.name;
|
|
31
|
-
this.displayName = metadata.displayName;
|
|
32
|
-
// Extract paths from metadata
|
|
33
|
-
this.homePath = metadata.dataPaths?.home || `~/.${metadata.name}`;
|
|
34
|
-
this.sessionsPath = metadata.dataPaths?.sessions || 'sessions';
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Validate that the adapter's data source exists
|
|
38
|
-
* Implementation provided - works for all adapters
|
|
39
|
-
*/
|
|
40
|
-
async validateSource() {
|
|
41
|
-
const baseDir = resolvePath(this.homePath);
|
|
42
|
-
return existsSync(baseDir);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Apply pagination to session descriptors
|
|
46
|
-
* Shared helper for subclasses to use in findSessions()
|
|
47
|
-
*/
|
|
48
|
-
applyPagination(descriptors, options) {
|
|
49
|
-
let results = descriptors;
|
|
50
|
-
if (options?.offset) {
|
|
51
|
-
results = results.slice(options.offset);
|
|
52
|
-
}
|
|
53
|
-
if (options?.limit) {
|
|
54
|
-
results = results.slice(0, options.limit);
|
|
55
|
-
}
|
|
56
|
-
return results;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Read user prompts from source (optional)
|
|
60
|
-
* Subclasses should set userPromptSource to enable this functionality
|
|
61
|
-
*/
|
|
62
|
-
async readUserPrompts(sessionId, options) {
|
|
63
|
-
if (!this.userPromptSource) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
return this.userPromptSource.readPrompts({
|
|
67
|
-
...options,
|
|
68
|
-
sessionId
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Count user prompts from source (optional)
|
|
73
|
-
* Returns 0 if no user prompt source is configured
|
|
74
|
-
*/
|
|
75
|
-
async countUserPrompts(sessionId, options) {
|
|
76
|
-
const prompts = await this.readUserPrompts(sessionId, options);
|
|
77
|
-
return prompts.length;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Calculate user prompt percentage
|
|
81
|
-
* Formula: (userPromptCount / userMessageCount) * 100
|
|
82
|
-
* Returns undefined if userMessageCount is 0
|
|
83
|
-
* Shows what percentage of user messages are actual user prompts
|
|
84
|
-
* Lower percentage = more system-generated messages
|
|
85
|
-
*/
|
|
86
|
-
calculateUserPromptPercentage(userPromptCount, userMessageCount) {
|
|
87
|
-
if (userMessageCount === 0) {
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
return (userPromptCount / userMessageCount) * 100;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Extract raw events (messages, tool calls, file modifications)
|
|
94
|
-
* Default implementation combines existing extract methods
|
|
95
|
-
* Subclasses can override for more efficient extraction
|
|
96
|
-
*/
|
|
97
|
-
async extractRawEvents(descriptor) {
|
|
98
|
-
const [messages, toolCalls, fileModifications] = await Promise.all([
|
|
99
|
-
this.extractMessages(descriptor),
|
|
100
|
-
this.extractToolCalls(descriptor),
|
|
101
|
-
this.extractFileModifications(descriptor)
|
|
102
|
-
]);
|
|
103
|
-
return {
|
|
104
|
-
messages,
|
|
105
|
-
toolCalls,
|
|
106
|
-
fileModifications
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=BaseAnalyticsAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAnalyticsAdapter.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/BaseAnalyticsAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C;;;;;;GAMG;AACH,MAAM,OAAgB,oBAAoB;IACxC,+BAA+B;IAC/B,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,OAAO,GAAG,OAAO,CAAC;IAElB,+BAA+B;IACrB,QAAQ,CAAS;IACjB,YAAY,CAAS;IACrB,gBAAgB,CAAoB;IAE9C;;OAEG;IACH,YAAY,QAAyB;QACnC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAExC,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,IAAI,UAAU,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACO,eAAe,CACvB,WAAgC,EAChC,OAA6B;QAE7B,IAAI,OAAO,GAAG,WAAW,CAAC;QAE1B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,eAAe,CAC7B,SAAiB,EACjB,OAA4C;QAE5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACvC,GAAG,OAAO;YACV,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,gBAAgB,CAC9B,SAAiB,EACjB,OAA4C;QAE5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACO,6BAA6B,CACrC,eAAuB,EACvB,gBAAwB;QAExB,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,eAAe,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC;IAkCD;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAA6B;QAKlD,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC;SAC1C,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ;YACR,SAAS;YACT,iBAAiB;SAClB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Analytics Adapter Interface
|
|
3
|
-
*
|
|
4
|
-
* Defines the contract that all agent-specific analytics adapters must implement.
|
|
5
|
-
* This interface enables standardized extraction of analytics data from different
|
|
6
|
-
* agent log formats (JSON, JSONL, etc.).
|
|
7
|
-
*/
|
|
8
|
-
import { SessionQueryOptions, SessionDescriptor, CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Base interface for agent analytics adapters
|
|
11
|
-
*/
|
|
12
|
-
export interface AgentAnalyticsAdapter {
|
|
13
|
-
agentName: string;
|
|
14
|
-
displayName: string;
|
|
15
|
-
version: string;
|
|
16
|
-
/**
|
|
17
|
-
* Find all sessions matching the query criteria
|
|
18
|
-
* @param options Query options for filtering sessions
|
|
19
|
-
* @returns Array of session descriptors (lightweight metadata)
|
|
20
|
-
*/
|
|
21
|
-
findSessions(options?: SessionQueryOptions): Promise<SessionDescriptor[]>;
|
|
22
|
-
/**
|
|
23
|
-
* Extract full session details from a session descriptor
|
|
24
|
-
* @param descriptor Session descriptor from findSessions()
|
|
25
|
-
* @returns Complete session with aggregated statistics
|
|
26
|
-
*/
|
|
27
|
-
extractSession(descriptor: SessionDescriptor): Promise<CodemieSession>;
|
|
28
|
-
/**
|
|
29
|
-
* Extract all messages from a session
|
|
30
|
-
* @param descriptor Session descriptor
|
|
31
|
-
* @returns Array of messages
|
|
32
|
-
*/
|
|
33
|
-
extractMessages(descriptor: SessionDescriptor): Promise<CodemieMessage[]>;
|
|
34
|
-
/**
|
|
35
|
-
* Extract all tool calls from a session
|
|
36
|
-
* @param descriptor Session descriptor
|
|
37
|
-
* @returns Array of tool calls
|
|
38
|
-
*/
|
|
39
|
-
extractToolCalls(descriptor: SessionDescriptor): Promise<CodemieToolCall[]>;
|
|
40
|
-
/**
|
|
41
|
-
* Extract all file modifications from a session
|
|
42
|
-
* @param descriptor Session descriptor
|
|
43
|
-
* @returns Array of file modifications
|
|
44
|
-
*/
|
|
45
|
-
extractFileModifications(descriptor: SessionDescriptor): Promise<CodemieFileModification[]>;
|
|
46
|
-
/**
|
|
47
|
-
* Extract raw events (messages, tool calls, file modifications) for granular metrics
|
|
48
|
-
* Used by remote submission system to generate backend-aligned metrics
|
|
49
|
-
* @param descriptor Session descriptor
|
|
50
|
-
* @returns Raw events from session
|
|
51
|
-
*/
|
|
52
|
-
extractRawEvents(descriptor: SessionDescriptor): Promise<{
|
|
53
|
-
messages: CodemieMessage[];
|
|
54
|
-
toolCalls: CodemieToolCall[];
|
|
55
|
-
fileModifications: CodemieFileModification[];
|
|
56
|
-
}>;
|
|
57
|
-
/**
|
|
58
|
-
* Validate that the adapter's data source is accessible
|
|
59
|
-
* @returns true if data source exists and is readable
|
|
60
|
-
*/
|
|
61
|
-
validateSource(): Promise<boolean>;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Metadata passed from plugin to adapter constructor
|
|
65
|
-
*/
|
|
66
|
-
export interface AdapterMetadata {
|
|
67
|
-
name: string;
|
|
68
|
-
displayName: string;
|
|
69
|
-
dataPaths?: {
|
|
70
|
-
home: string;
|
|
71
|
-
sessions?: string;
|
|
72
|
-
settings?: string;
|
|
73
|
-
cache?: string;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=adapter.interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/adapter.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAEpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAGhB;;;;OAIG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAG1E;;;;OAIG;IACH,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEvE;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE1E;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE5E;;;;OAIG;IACH,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAE5F;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC;QACvD,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;KAC9C,CAAC,CAAC;IAGH;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Analytics Adapter Interface
|
|
3
|
-
*
|
|
4
|
-
* Defines the contract that all agent-specific analytics adapters must implement.
|
|
5
|
-
* This interface enables standardized extraction of analytics data from different
|
|
6
|
-
* agent log formats (JSON, JSONL, etc.).
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=adapter.interface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.interface.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/adapter.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Aggregation Utilities
|
|
3
|
-
*
|
|
4
|
-
* Shared utility functions for aggregating file modification statistics.
|
|
5
|
-
* Used by all analytics adapters to calculate consistent statistics.
|
|
6
|
-
*/
|
|
7
|
-
import { CodemieFileModification } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Aggregate file modifications by language
|
|
10
|
-
*/
|
|
11
|
-
export declare function aggregateByLanguage(modifications: CodemieFileModification[]): Record<string, {
|
|
12
|
-
filesCreated: number;
|
|
13
|
-
filesModified: number;
|
|
14
|
-
linesAdded: number;
|
|
15
|
-
linesRemoved: number;
|
|
16
|
-
}>;
|
|
17
|
-
/**
|
|
18
|
-
* Aggregate file modifications by format
|
|
19
|
-
*/
|
|
20
|
-
export declare function aggregateByFormat(modifications: CodemieFileModification[]): Record<string, {
|
|
21
|
-
filesCreated: number;
|
|
22
|
-
filesModified: number;
|
|
23
|
-
linesAdded: number;
|
|
24
|
-
linesRemoved: number;
|
|
25
|
-
}>;
|
|
26
|
-
/**
|
|
27
|
-
* Aggregate file modifications by tool
|
|
28
|
-
*/
|
|
29
|
-
export declare function aggregateByTool(modifications: CodemieFileModification[]): Record<string, {
|
|
30
|
-
count: number;
|
|
31
|
-
linesAdded: number;
|
|
32
|
-
linesRemoved: number;
|
|
33
|
-
}>;
|
|
34
|
-
/**
|
|
35
|
-
* Calculate file statistics from modifications
|
|
36
|
-
*/
|
|
37
|
-
export declare function calculateFileStats(modifications: CodemieFileModification[]): {
|
|
38
|
-
filesCreated: number;
|
|
39
|
-
filesModified: number;
|
|
40
|
-
filesDeleted: number;
|
|
41
|
-
totalLinesAdded: number;
|
|
42
|
-
totalLinesRemoved: number;
|
|
43
|
-
totalLinesModified: number;
|
|
44
|
-
byLanguage: Record<string, {
|
|
45
|
-
filesCreated: number;
|
|
46
|
-
filesModified: number;
|
|
47
|
-
linesAdded: number;
|
|
48
|
-
linesRemoved: number;
|
|
49
|
-
}>;
|
|
50
|
-
byFormat: Record<string, {
|
|
51
|
-
filesCreated: number;
|
|
52
|
-
filesModified: number;
|
|
53
|
-
linesAdded: number;
|
|
54
|
-
linesRemoved: number;
|
|
55
|
-
}>;
|
|
56
|
-
byTool: Record<string, {
|
|
57
|
-
count: number;
|
|
58
|
-
linesAdded: number;
|
|
59
|
-
linesRemoved: number;
|
|
60
|
-
}>;
|
|
61
|
-
} | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* Calculate duration between two dates
|
|
64
|
-
*/
|
|
65
|
-
export declare function calculateDuration(startTime: Date | string, endTime: Date | string): number;
|
|
66
|
-
/**
|
|
67
|
-
* Normalize LLM model names from different provider formats
|
|
68
|
-
*
|
|
69
|
-
* Handles various model name formats:
|
|
70
|
-
* - AWS Bedrock Converse: converse/region.provider.model-v1:0 -> model
|
|
71
|
-
* - AWS Bedrock Direct: region.provider.model-v1:0 -> model
|
|
72
|
-
* - Standard Claude: claude-sonnet-4-5-20250929 (unchanged)
|
|
73
|
-
* - OpenAI: gpt-4.1-turbo (unchanged)
|
|
74
|
-
* - Google: gemini-1.5-pro (unchanged)
|
|
75
|
-
*
|
|
76
|
-
* Examples:
|
|
77
|
-
* - converse/global.anthropic.claude-haiku-4-5-20251001-v1:0 -> claude-haiku-4-5-20251001
|
|
78
|
-
* - eu.anthropic.claude-haiku-4-5-20251001-v1:0 -> claude-haiku-4-5-20251001
|
|
79
|
-
* - us-east-1.anthropic.claude-opus-4-20250514-v1:0 -> claude-opus-4-20250514
|
|
80
|
-
* - claude-sonnet-4-5-20250929 -> claude-sonnet-4-5-20250929
|
|
81
|
-
*
|
|
82
|
-
* @param modelName - Raw model name from analytics data
|
|
83
|
-
* @returns Normalized model name for display
|
|
84
|
-
*/
|
|
85
|
-
export declare function normalizeModelName(modelName: string): string;
|
|
86
|
-
//# sourceMappingURL=aggregation-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-utils.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/aggregation-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAwCtD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;IAC5F,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAED;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;IAC1F,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAED;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAmBD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,uBAAuB,EAAE;;;;;;;;sBAnD3D,MAAM;uBACL,MAAM;oBACT,MAAM;sBACJ,MAAM;;;sBASN,MAAM;uBACL,MAAM;oBACT,MAAM;sBACJ,MAAM;;;eASb,MAAM;oBACD,MAAM;sBACJ,MAAM;;cAyCrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAI1F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAyB5D"}
|