@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,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lock Manager - File-Based Locking for Concurrency Control
|
|
3
|
-
*
|
|
4
|
-
* Implements file-based locking to ensure only one RemoteAnalyticsSubmitter
|
|
5
|
-
* runs at a time across multiple concurrent proxy instances.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Exclusive lock acquisition with retries
|
|
9
|
-
* - Stale lock detection and recovery
|
|
10
|
-
* - Process liveness checking
|
|
11
|
-
* - Heartbeat to prevent false stale detection
|
|
12
|
-
* - Graceful cleanup on exit signals
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Lock Manager
|
|
16
|
-
*/
|
|
17
|
-
export declare class LockManager {
|
|
18
|
-
private lockPath;
|
|
19
|
-
private lockInfo;
|
|
20
|
-
private heartbeatTimer;
|
|
21
|
-
constructor(analyticsDir?: string);
|
|
22
|
-
/**
|
|
23
|
-
* Ensure analytics directory exists
|
|
24
|
-
*/
|
|
25
|
-
private ensureDir;
|
|
26
|
-
/**
|
|
27
|
-
* Check if a process is alive
|
|
28
|
-
*/
|
|
29
|
-
private isProcessAlive;
|
|
30
|
-
/**
|
|
31
|
-
* Read lock file
|
|
32
|
-
*/
|
|
33
|
-
private readLock;
|
|
34
|
-
/**
|
|
35
|
-
* Write lock file
|
|
36
|
-
*/
|
|
37
|
-
private writeLock;
|
|
38
|
-
/**
|
|
39
|
-
* Remove lock file
|
|
40
|
-
*/
|
|
41
|
-
private removeLock;
|
|
42
|
-
/**
|
|
43
|
-
* Check if lock is stale (old or process dead)
|
|
44
|
-
*/
|
|
45
|
-
private isLockStale;
|
|
46
|
-
/**
|
|
47
|
-
* Start heartbeat to refresh lock timestamp
|
|
48
|
-
*/
|
|
49
|
-
private startHeartbeat;
|
|
50
|
-
/**
|
|
51
|
-
* Stop heartbeat
|
|
52
|
-
*/
|
|
53
|
-
private stopHeartbeat;
|
|
54
|
-
/**
|
|
55
|
-
* Acquire lock with retry
|
|
56
|
-
*
|
|
57
|
-
* @param name Lock name (for logging)
|
|
58
|
-
* @param maxRetries Maximum number of retries
|
|
59
|
-
* @returns true if lock acquired, false if failed
|
|
60
|
-
*/
|
|
61
|
-
acquire(name: string, maxRetries?: number): Promise<boolean>;
|
|
62
|
-
/**
|
|
63
|
-
* Release lock
|
|
64
|
-
*/
|
|
65
|
-
release(): Promise<void>;
|
|
66
|
-
/**
|
|
67
|
-
* Setup exit handlers to release lock on process termination
|
|
68
|
-
*/
|
|
69
|
-
private setupExitHandlers;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=lock-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../../src/analytics/remote-submission/lock-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,cAAc,CAA+B;gBAEzC,YAAY,CAAC,EAAE,MAAM;IAKjC;;OAEG;YACW,SAAS;IAOvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;YACW,QAAQ;IActB;;OAEG;YACW,SAAS;IAMvB;;OAEG;YACW,UAAU;IAUxB;;OAEG;YACW,WAAW;IAezB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAyE7D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lock Manager - File-Based Locking for Concurrency Control
|
|
3
|
-
*
|
|
4
|
-
* Implements file-based locking to ensure only one RemoteAnalyticsSubmitter
|
|
5
|
-
* runs at a time across multiple concurrent proxy instances.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Exclusive lock acquisition with retries
|
|
9
|
-
* - Stale lock detection and recovery
|
|
10
|
-
* - Process liveness checking
|
|
11
|
-
* - Heartbeat to prevent false stale detection
|
|
12
|
-
* - Graceful cleanup on exit signals
|
|
13
|
-
*/
|
|
14
|
-
import { readFile, writeFile, unlink, mkdir } from 'node:fs/promises';
|
|
15
|
-
import { existsSync } from 'node:fs';
|
|
16
|
-
import { join } from 'node:path';
|
|
17
|
-
import { homedir, hostname } from 'node:os';
|
|
18
|
-
import { logger } from '../../utils/logger.js';
|
|
19
|
-
const LOCK_TIMEOUT = 5 * 60 * 1000; // 5 minutes
|
|
20
|
-
const RETRY_DELAY = 2000; // 2 seconds
|
|
21
|
-
const HEARTBEAT_INTERVAL = 30 * 1000; // 30 seconds
|
|
22
|
-
/**
|
|
23
|
-
* Lock Manager
|
|
24
|
-
*/
|
|
25
|
-
export class LockManager {
|
|
26
|
-
lockPath;
|
|
27
|
-
lockInfo = null;
|
|
28
|
-
heartbeatTimer = null;
|
|
29
|
-
constructor(analyticsDir) {
|
|
30
|
-
const baseDir = analyticsDir || join(homedir(), '.codemie', 'analytics');
|
|
31
|
-
this.lockPath = join(baseDir, '.lock');
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Ensure analytics directory exists
|
|
35
|
-
*/
|
|
36
|
-
async ensureDir() {
|
|
37
|
-
const dir = join(this.lockPath, '..');
|
|
38
|
-
if (!existsSync(dir)) {
|
|
39
|
-
await mkdir(dir, { recursive: true });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Check if a process is alive
|
|
44
|
-
*/
|
|
45
|
-
isProcessAlive(pid) {
|
|
46
|
-
try {
|
|
47
|
-
// kill(pid, 0) doesn't actually kill, just checks if process exists
|
|
48
|
-
process.kill(pid, 0);
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Read lock file
|
|
57
|
-
*/
|
|
58
|
-
async readLock() {
|
|
59
|
-
if (!existsSync(this.lockPath)) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
try {
|
|
63
|
-
const content = await readFile(this.lockPath, 'utf-8');
|
|
64
|
-
return JSON.parse(content);
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
logger.debug(`Failed to read lock file: ${error}`);
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Write lock file
|
|
73
|
-
*/
|
|
74
|
-
async writeLock(lockInfo) {
|
|
75
|
-
await this.ensureDir();
|
|
76
|
-
const content = JSON.stringify(lockInfo, null, 2);
|
|
77
|
-
await writeFile(this.lockPath, content, 'utf-8');
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Remove lock file
|
|
81
|
-
*/
|
|
82
|
-
async removeLock() {
|
|
83
|
-
if (existsSync(this.lockPath)) {
|
|
84
|
-
try {
|
|
85
|
-
await unlink(this.lockPath);
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
logger.debug(`Failed to remove lock: ${error}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Check if lock is stale (old or process dead)
|
|
94
|
-
*/
|
|
95
|
-
async isLockStale(lockInfo) {
|
|
96
|
-
// Check age
|
|
97
|
-
const age = Date.now() - new Date(lockInfo.timestamp).getTime();
|
|
98
|
-
if (age > LOCK_TIMEOUT) {
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
// Check if process is alive
|
|
102
|
-
if (!this.isProcessAlive(lockInfo.pid)) {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Start heartbeat to refresh lock timestamp
|
|
109
|
-
*/
|
|
110
|
-
startHeartbeat() {
|
|
111
|
-
this.heartbeatTimer = setInterval(async () => {
|
|
112
|
-
if (this.lockInfo) {
|
|
113
|
-
this.lockInfo.timestamp = new Date().toISOString();
|
|
114
|
-
try {
|
|
115
|
-
await this.writeLock(this.lockInfo);
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
logger.debug(`Heartbeat failed: ${error}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}, HEARTBEAT_INTERVAL);
|
|
122
|
-
// Ensure heartbeat doesn't prevent process exit
|
|
123
|
-
this.heartbeatTimer.unref();
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Stop heartbeat
|
|
127
|
-
*/
|
|
128
|
-
stopHeartbeat() {
|
|
129
|
-
if (this.heartbeatTimer) {
|
|
130
|
-
clearInterval(this.heartbeatTimer);
|
|
131
|
-
this.heartbeatTimer = null;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Acquire lock with retry
|
|
136
|
-
*
|
|
137
|
-
* @param name Lock name (for logging)
|
|
138
|
-
* @param maxRetries Maximum number of retries
|
|
139
|
-
* @returns true if lock acquired, false if failed
|
|
140
|
-
*/
|
|
141
|
-
async acquire(name, maxRetries = 3) {
|
|
142
|
-
let attempts = 0;
|
|
143
|
-
while (attempts < maxRetries) {
|
|
144
|
-
attempts++;
|
|
145
|
-
// Check existing lock
|
|
146
|
-
const existingLock = await this.readLock();
|
|
147
|
-
if (existingLock) {
|
|
148
|
-
// Check if stale
|
|
149
|
-
if (await this.isLockStale(existingLock)) {
|
|
150
|
-
logger.debug(`Removing stale lock from ${existingLock.agent} (PID ${existingLock.pid})`);
|
|
151
|
-
await this.removeLock();
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
// Lock is valid, wait and retry
|
|
155
|
-
if (attempts < maxRetries) {
|
|
156
|
-
logger.debug(`Lock held by ${existingLock.agent} (PID ${existingLock.pid}), ` +
|
|
157
|
-
`waiting ${RETRY_DELAY}ms (attempt ${attempts}/${maxRetries})`);
|
|
158
|
-
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY));
|
|
159
|
-
continue;
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
logger.debug(`Could not acquire lock after ${maxRetries} attempts`);
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Try to acquire lock
|
|
168
|
-
this.lockInfo = {
|
|
169
|
-
pid: process.pid,
|
|
170
|
-
timestamp: new Date().toISOString(),
|
|
171
|
-
hostname: hostname(),
|
|
172
|
-
agent: name
|
|
173
|
-
};
|
|
174
|
-
try {
|
|
175
|
-
await this.writeLock(this.lockInfo);
|
|
176
|
-
// Verify we own the lock (race condition check)
|
|
177
|
-
const verifyLock = await this.readLock();
|
|
178
|
-
if (verifyLock?.pid === process.pid) {
|
|
179
|
-
logger.debug(`Lock acquired by ${name} (PID ${process.pid})`);
|
|
180
|
-
this.startHeartbeat();
|
|
181
|
-
this.setupExitHandlers();
|
|
182
|
-
return true;
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
// Someone else got the lock first
|
|
186
|
-
this.lockInfo = null;
|
|
187
|
-
if (attempts < maxRetries) {
|
|
188
|
-
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY));
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
catch (error) {
|
|
197
|
-
logger.debug(`Failed to acquire lock: ${error}`);
|
|
198
|
-
this.lockInfo = null;
|
|
199
|
-
if (attempts < maxRetries) {
|
|
200
|
-
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY));
|
|
201
|
-
continue;
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Release lock
|
|
212
|
-
*/
|
|
213
|
-
async release() {
|
|
214
|
-
this.stopHeartbeat();
|
|
215
|
-
if (this.lockInfo) {
|
|
216
|
-
// Verify we still own the lock
|
|
217
|
-
const currentLock = await this.readLock();
|
|
218
|
-
if (currentLock?.pid === process.pid) {
|
|
219
|
-
await this.removeLock();
|
|
220
|
-
logger.debug(`Lock released by ${this.lockInfo.agent} (PID ${process.pid})`);
|
|
221
|
-
}
|
|
222
|
-
this.lockInfo = null;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Setup exit handlers to release lock on process termination
|
|
227
|
-
*/
|
|
228
|
-
setupExitHandlers() {
|
|
229
|
-
const cleanup = async () => {
|
|
230
|
-
await this.release();
|
|
231
|
-
};
|
|
232
|
-
// Handle various exit signals
|
|
233
|
-
process.once('SIGINT', cleanup);
|
|
234
|
-
process.once('SIGTERM', cleanup);
|
|
235
|
-
process.once('exit', cleanup);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
//# sourceMappingURL=lock-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lock-manager.js","sourceRoot":"","sources":["../../../src/analytics/remote-submission/lock-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAChD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,YAAY;AACtC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEnD;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,QAAQ,CAAS;IACjB,QAAQ,GAAoB,IAAI,CAAC;IACjC,cAAc,GAA0B,IAAI,CAAC;IAErD,YAAY,YAAqB;QAC/B,MAAM,OAAO,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,oEAAoE;YACpE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CAAC,QAAkB;QACxC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU;QACtB,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,QAAkB;QAC1C,YAAY;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,gDAAgD;QAChD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,UAAU,GAAG,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,OAAO,QAAQ,GAAG,UAAU,EAAE,CAAC;YAC7B,QAAQ,EAAE,CAAC;YAEX,sBAAsB;YACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE3C,IAAI,YAAY,EAAE,CAAC;gBACjB,iBAAiB;gBACjB,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;oBACzC,MAAM,CAAC,KAAK,CAAC,4BAA4B,YAAY,CAAC,KAAK,SAAS,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,gCAAgC;oBAChC,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC;wBAC1B,MAAM,CAAC,KAAK,CACV,gBAAgB,YAAY,CAAC,KAAK,SAAS,YAAY,CAAC,GAAG,KAAK;4BAChE,WAAW,WAAW,eAAe,QAAQ,IAAI,UAAU,GAAG,CAC/D,CAAC;wBACF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;wBAC/D,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,CAAC,gCAAgC,UAAU,WAAW,CAAC,CAAC;wBACpE,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC,QAAQ,GAAG;gBACd,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,QAAQ,EAAE;gBACpB,KAAK,EAAE,IAAI;aACZ,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEpC,gDAAgD;gBAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzC,IAAI,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,SAAS,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;oBAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,kCAAkC;oBAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC;wBAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;wBAC/D,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC;oBAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC/D,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,+BAA+B;YAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;YAC/E,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,8BAA8B;QAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metric Transformer - Backend-Aligned Pattern
|
|
3
|
-
*
|
|
4
|
-
* Transforms CodemieSession raw events into backend-aligned metric payloads
|
|
5
|
-
* generating only session-level aggregation metrics:
|
|
6
|
-
* - codemie_coding_agent_usage_total (session aggregation)
|
|
7
|
-
*/
|
|
8
|
-
import type { CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../aggregation/types.js';
|
|
9
|
-
import type { MetricPayload } from './types.js';
|
|
10
|
-
/**
|
|
11
|
-
* Create session aggregation metric
|
|
12
|
-
* Only called when session ends (explicit endTime or timeout)
|
|
13
|
-
*/
|
|
14
|
-
export declare function createSessionMetric(session: CodemieSession, rawData: {
|
|
15
|
-
messages: CodemieMessage[];
|
|
16
|
-
toolCalls: CodemieToolCall[];
|
|
17
|
-
fileModifications: CodemieFileModification[];
|
|
18
|
-
}, options: {
|
|
19
|
-
exitReason: string;
|
|
20
|
-
}): MetricPayload;
|
|
21
|
-
//# sourceMappingURL=metric-transformer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metric-transformer.d.ts","sourceRoot":"","sources":["../../../src/analytics/remote-submission/metric-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,YAAY,CAAC;AA+BpB;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE;IACP,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,EACD,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,aAAa,CAoDf"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metric Transformer - Backend-Aligned Pattern
|
|
3
|
-
*
|
|
4
|
-
* Transforms CodemieSession raw events into backend-aligned metric payloads
|
|
5
|
-
* generating only session-level aggregation metrics:
|
|
6
|
-
* - codemie_coding_agent_usage_total (session aggregation)
|
|
7
|
-
*/
|
|
8
|
-
import { sep } from 'node:path';
|
|
9
|
-
/**
|
|
10
|
-
* Helper: Normalize project path to relative format (cross-platform)
|
|
11
|
-
* "/Users/John_Doe/repos/codemie-ai/codemie-code" -> "codemie-ai/codemie-code"
|
|
12
|
-
* "C:\Users\John_Doe\repos\codemie-ai\codemie-code" -> "codemie-ai/codemie-code"
|
|
13
|
-
*/
|
|
14
|
-
function normalizeProjectPath(fullPath) {
|
|
15
|
-
// Split by platform-specific separator
|
|
16
|
-
const parts = fullPath.split(sep);
|
|
17
|
-
// Get last 2 parts (organization/project) and join with forward slash
|
|
18
|
-
return parts.slice(-2).join('/');
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Helper: Estimate API requests from messages
|
|
22
|
-
* Heuristic: Usually 1-2 API calls per assistant message
|
|
23
|
-
*/
|
|
24
|
-
function estimateAPIRequests(session) {
|
|
25
|
-
return Math.ceil(session.assistantMessageCount * 1.5);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Helper: Calculate total execution time from tool calls
|
|
29
|
-
*/
|
|
30
|
-
function calculateTotalExecutionTime(toolCalls) {
|
|
31
|
-
return toolCalls.reduce((sum, tc) => sum + (tc.durationMs || 0), 0);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Create session aggregation metric
|
|
35
|
-
* Only called when session ends (explicit endTime or timeout)
|
|
36
|
-
*/
|
|
37
|
-
export function createSessionMetric(session, rawData, options) {
|
|
38
|
-
const sessionAttributes = {
|
|
39
|
-
// Base context (no tool_type for session metric)
|
|
40
|
-
agent: session.agent,
|
|
41
|
-
agent_version: session.agentVersion,
|
|
42
|
-
llm_model: session.model,
|
|
43
|
-
project: normalizeProjectPath(session.projectPath),
|
|
44
|
-
session_id: session.sessionId,
|
|
45
|
-
// Context (only include if available)
|
|
46
|
-
...(session.projectHash && { projectHash: session.projectHash }),
|
|
47
|
-
...(session.gitBranch && { gitBranch: session.gitBranch }),
|
|
48
|
-
...(session.gitCommit && { gitCommit: session.gitCommit }),
|
|
49
|
-
// Interaction tracking
|
|
50
|
-
total_user_prompts: session.userPromptCount,
|
|
51
|
-
total_ai_requests: estimateAPIRequests(session),
|
|
52
|
-
total_ai_responses: session.assistantMessageCount,
|
|
53
|
-
total_tool_calls: session.toolCallCount,
|
|
54
|
-
successful_tool_calls: session.successfulToolCalls,
|
|
55
|
-
failed_tool_calls: session.failedToolCalls,
|
|
56
|
-
// Token totals
|
|
57
|
-
total_input_tokens: session.tokens.input,
|
|
58
|
-
total_output_tokens: session.tokens.output,
|
|
59
|
-
total_cache_read_input_tokens: session.tokens.cacheRead,
|
|
60
|
-
// Code totals
|
|
61
|
-
files_created: session.fileStats?.filesCreated || 0,
|
|
62
|
-
files_modified: session.fileStats?.filesModified || 0,
|
|
63
|
-
files_deleted: session.fileStats?.filesDeleted || 0,
|
|
64
|
-
total_lines_added: session.fileStats?.totalLinesAdded || 0,
|
|
65
|
-
total_lines_removed: session.fileStats?.totalLinesRemoved || 0,
|
|
66
|
-
// Performance
|
|
67
|
-
session_duration_ms: session.durationMs || 0,
|
|
68
|
-
...(rawData.toolCalls.some(tc => tc.durationMs) && {
|
|
69
|
-
total_execution_time: calculateTotalExecutionTime(rawData.toolCalls)
|
|
70
|
-
}),
|
|
71
|
-
// Status
|
|
72
|
-
exit_reason: options.exitReason,
|
|
73
|
-
had_errors: session.hadErrors,
|
|
74
|
-
count: 1,
|
|
75
|
-
};
|
|
76
|
-
return {
|
|
77
|
-
metric_name: 'codemie_coding_agent_usage_total',
|
|
78
|
-
attributes: sessionAttributes,
|
|
79
|
-
time: (session.endTime || new Date()).toISOString(),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=metric-transformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metric-transformer.js","sourceRoot":"","sources":["../../../src/analytics/remote-submission/metric-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAahC;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,uCAAuC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,sEAAsE;IACtE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,OAAuB;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,GAAG,CAAC,CAAC;AACxD,CAAC;AAGD;;GAEG;AACH,SAAS,2BAA2B,CAAC,SAA4B;IAC/D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,OAIC,EACD,OAEC;IAED,MAAM,iBAAiB,GAA4B;QACjD,iDAAiD;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,OAAO,CAAC,YAAY;QACnC,SAAS,EAAE,OAAO,CAAC,KAAK;QACxB,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,OAAO,CAAC,SAAS;QAE7B,sCAAsC;QACtC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAE1D,uBAAuB;QACvB,kBAAkB,EAAE,OAAO,CAAC,eAAe;QAC3C,iBAAiB,EAAE,mBAAmB,CAAC,OAAO,CAAC;QAC/C,kBAAkB,EAAE,OAAO,CAAC,qBAAqB;QACjD,gBAAgB,EAAE,OAAO,CAAC,aAAa;QACvC,qBAAqB,EAAE,OAAO,CAAC,mBAAmB;QAClD,iBAAiB,EAAE,OAAO,CAAC,eAAe;QAE1C,eAAe;QACf,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACxC,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC1C,6BAA6B,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QAEvD,cAAc;QACd,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,IAAI,CAAC;QACnD,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,IAAI,CAAC;QACrD,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,IAAI,CAAC;QACnD,iBAAiB,EAAE,OAAO,CAAC,SAAS,EAAE,eAAe,IAAI,CAAC;QAC1D,mBAAmB,EAAE,OAAO,CAAC,SAAS,EAAE,iBAAiB,IAAI,CAAC;QAE9D,cAAc;QACd,mBAAmB,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;YACjD,oBAAoB,EAAE,2BAA2B,CAAC,OAAO,CAAC,SAAS,CAAC;SACrE,CAAC;QAEF,SAAS;QACT,WAAW,EAAE,OAAO,CAAC,UAAU;QAC/B,UAAU,EAAE,OAAO,CAAC,SAAS;QAE7B,KAAK,EAAE,CAAC;KACT,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,kCAAkC;QAC/C,UAAU,EAAE,iBAAyE;QACrF,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Remote Analytics Submitter
|
|
3
|
-
*
|
|
4
|
-
* Orchestrates periodic submission of analytics metrics to /v1/metrics endpoint.
|
|
5
|
-
* Handles event-level tracking, concurrency control, and backend-aligned metrics.
|
|
6
|
-
*
|
|
7
|
-
* Key Features:
|
|
8
|
-
* - 5-minute submission interval
|
|
9
|
-
* - Event-level tracking (message IDs, tool call IDs)
|
|
10
|
-
* - Multi-terminal safety via file locking
|
|
11
|
-
* - Inactivity-based session end detection
|
|
12
|
-
* - Backend-aligned metric transformation (3+1 pattern)
|
|
13
|
-
*/
|
|
14
|
-
import type { RemoteSubmissionConfig } from './types.js';
|
|
15
|
-
/**
|
|
16
|
-
* Remote Analytics Submitter
|
|
17
|
-
*/
|
|
18
|
-
export declare class RemoteAnalyticsSubmitter {
|
|
19
|
-
private config;
|
|
20
|
-
private cursorManager;
|
|
21
|
-
private lockManager;
|
|
22
|
-
private intervalTimer;
|
|
23
|
-
private isRunning;
|
|
24
|
-
constructor(config: RemoteSubmissionConfig);
|
|
25
|
-
/**
|
|
26
|
-
* Start periodic submission
|
|
27
|
-
*/
|
|
28
|
-
start(): void;
|
|
29
|
-
/**
|
|
30
|
-
* Stop periodic submission
|
|
31
|
-
*/
|
|
32
|
-
stop(): void;
|
|
33
|
-
/**
|
|
34
|
-
* Main submission cycle
|
|
35
|
-
*/
|
|
36
|
-
private submitCycle;
|
|
37
|
-
/**
|
|
38
|
-
* Process all external agents
|
|
39
|
-
*/
|
|
40
|
-
private processExternalAgents;
|
|
41
|
-
/**
|
|
42
|
-
* Process single agent
|
|
43
|
-
*/
|
|
44
|
-
private processAgent;
|
|
45
|
-
/**
|
|
46
|
-
* Process single session
|
|
47
|
-
*/
|
|
48
|
-
private processSession;
|
|
49
|
-
/**
|
|
50
|
-
* Determine session status based on activity
|
|
51
|
-
*/
|
|
52
|
-
private determineSessionStatus;
|
|
53
|
-
/**
|
|
54
|
-
* Get last activity time from session
|
|
55
|
-
*/
|
|
56
|
-
private getLastActivityTime;
|
|
57
|
-
/**
|
|
58
|
-
* Maybe submit session metric based on status
|
|
59
|
-
*/
|
|
60
|
-
private maybeSubmitSessionMetric;
|
|
61
|
-
/**
|
|
62
|
-
* Submit batch of metrics - writes to local file and/or remote endpoint
|
|
63
|
-
*/
|
|
64
|
-
private submitBatch;
|
|
65
|
-
/**
|
|
66
|
-
* Write metrics to local JSONL file
|
|
67
|
-
*/
|
|
68
|
-
private writeMetricsToLocalFile;
|
|
69
|
-
/**
|
|
70
|
-
* Submit metrics to remote /v1/metrics endpoint
|
|
71
|
-
* Note: Caller should verify baseUrl and cookies are set before calling
|
|
72
|
-
*/
|
|
73
|
-
private submitToRemote;
|
|
74
|
-
/**
|
|
75
|
-
* Create batches from metrics
|
|
76
|
-
*/
|
|
77
|
-
private createBatches;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=submitter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"submitter.d.ts","sourceRoot":"","sources":["../../../src/analytics/remote-submission/submitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,sBAAsB;IAM1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAuBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;YACW,WAAW;IAsCzB;;OAEG;YACW,qBAAqB;IA4BnC;;OAEG;YACW,YAAY;IAoB1B;;OAEG;YACW,cAAc;IAyF5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkC9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;YACW,wBAAwB;IAgDtC;;OAEG;YACW,WAAW;IAiBzB;;OAEG;YACW,uBAAuB;IAyBrC;;;OAGG;YACW,cAAc;IA2B5B;;OAEG;IACH,OAAO,CAAC,aAAa;CAOtB"}
|