@codemieai/code 0.0.28 → 0.0.29
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 +8 -10
- package/bin/agent-executor.js +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +0 -1
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +4 -8
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +17 -9
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +75 -67
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +258 -0
- package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -0
- package/dist/agents/core/extension/BaseExtensionInstaller.js +522 -0
- package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -0
- package/dist/agents/core/lifecycle-helpers.d.ts.map +1 -1
- package/dist/agents/core/lifecycle-helpers.js +16 -2
- package/dist/agents/core/lifecycle-helpers.js.map +1 -1
- package/dist/agents/core/metrics/index.d.ts +0 -2
- package/dist/agents/core/metrics/index.d.ts.map +1 -1
- package/dist/agents/core/metrics/index.js +0 -3
- package/dist/agents/core/metrics/index.js.map +1 -1
- package/dist/agents/core/metrics/types.d.ts +4 -232
- package/dist/agents/core/metrics/types.d.ts.map +1 -1
- package/dist/agents/core/metrics/types.js +2 -2
- package/dist/agents/core/session/BaseProcessor.d.ts +72 -0
- package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -0
- package/dist/agents/core/session/BaseProcessor.js +9 -0
- package/dist/agents/core/session/BaseProcessor.js.map +1 -0
- package/dist/agents/core/session/BaseSessionAdapter.d.ts +99 -0
- package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -0
- package/dist/agents/core/session/BaseSessionAdapter.js +9 -0
- package/dist/agents/core/session/BaseSessionAdapter.js.map +1 -0
- package/dist/agents/core/session/SessionStore.d.ts +23 -0
- package/dist/agents/core/session/SessionStore.d.ts.map +1 -0
- package/dist/agents/core/session/SessionStore.js +75 -0
- package/dist/agents/core/session/SessionStore.js.map +1 -0
- package/dist/agents/core/session/session-config.d.ts +27 -0
- package/dist/agents/core/session/session-config.d.ts.map +1 -0
- package/dist/agents/core/session/session-config.js +61 -0
- package/dist/agents/core/session/session-config.js.map +1 -0
- package/dist/agents/core/session/types.d.ts +87 -0
- package/dist/agents/core/session/types.d.ts.map +1 -0
- package/dist/agents/core/session/types.js +8 -0
- package/dist/agents/core/session/types.js.map +1 -0
- package/dist/agents/core/session/utils/jsonl-reader.d.ts +15 -0
- package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -0
- package/dist/agents/core/session/utils/jsonl-reader.js +33 -0
- package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -0
- package/dist/agents/core/session/utils/jsonl-writer.d.ts +26 -0
- package/dist/agents/core/session/utils/jsonl-writer.d.ts.map +1 -0
- package/dist/agents/core/session/utils/jsonl-writer.js +56 -0
- package/dist/agents/core/session/utils/jsonl-writer.js.map +1 -0
- package/dist/agents/core/types.d.ts +78 -11
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude-message-types.d.ts +74 -0
- package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -0
- package/dist/agents/plugins/claude/claude-message-types.js +8 -0
- package/dist/agents/plugins/claude/claude-message-types.js.map +1 -0
- package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +53 -0
- package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -0
- package/dist/agents/plugins/claude/claude.plugin-installer.js +63 -0
- package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -0
- package/dist/agents/plugins/claude/claude.plugin.d.ts +26 -0
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/{claude.plugin.js → claude/claude.plugin.js} +20 -11
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -0
- package/dist/agents/plugins/claude/claude.session.d.ts +60 -0
- package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -0
- package/dist/agents/plugins/claude/claude.session.js +339 -0
- package/dist/agents/plugins/claude/claude.session.js.map +1 -0
- package/dist/agents/plugins/claude/plugin/.claude-plugin/local-install.json +15 -0
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +9 -0
- package/dist/agents/plugins/claude/plugin/README.md +299 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/README.md +539 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +511 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +205 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +74 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +207 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +143 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +127 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +168 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +210 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +160 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +170 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +150 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +177 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +143 -0
- package/dist/agents/plugins/claude/plugin/commands/README.md +0 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +10 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +731 -0
- package/dist/agents/plugins/claude/plugin/commands/memory-add.md +44 -0
- package/dist/agents/plugins/claude/plugin/commands/memory-init.md +18 -0
- package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +54 -0
- package/dist/agents/plugins/claude/plugin/hooks/hooks.json +71 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +51 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +840 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +37 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +275 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -0
- package/dist/agents/plugins/gemini/extension/README.md +88 -0
- package/dist/agents/plugins/gemini/extension/gemini-extension.json +11 -0
- package/dist/agents/plugins/gemini/extension/hooks/hooks.json +65 -0
- package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts +49 -0
- package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/gemini.extension-installer.js +63 -0
- package/dist/agents/plugins/gemini/gemini.extension-installer.js.map +1 -0
- package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts +43 -0
- package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/gemini.hook-transformer.js +57 -0
- package/dist/agents/plugins/gemini/gemini.hook-transformer.js.map +1 -0
- package/dist/agents/plugins/gemini/gemini.plugin.d.ts +32 -0
- package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/gemini.plugin.js +136 -0
- package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -0
- package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +68 -0
- package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/gemini.session-adapter.js +268 -0
- package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts +36 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +186 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts +32 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +193 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -0
- package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts +26 -0
- package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/session/utils/token-aggregator.js +38 -0
- package/dist/agents/plugins/gemini/session/utils/token-aggregator.js.map +1 -0
- package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts +33 -0
- package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js +58 -0
- package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js.map +1 -0
- package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts +70 -0
- package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts.map +1 -0
- package/dist/agents/plugins/gemini/session/utils/turn-detector.js +86 -0
- package/dist/agents/plugins/gemini/session/utils/turn-detector.js.map +1 -0
- package/dist/agents/registry.d.ts +7 -2
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +17 -8
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/analytics/data-loader.d.ts +1 -1
- package/dist/cli/commands/analytics/data-loader.js +1 -1
- package/dist/cli/commands/analytics/index.js +1 -1
- package/dist/cli/commands/analytics/index.js.map +1 -1
- package/dist/cli/commands/doctor/checks/PythonCheck.d.ts +13 -0
- package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/PythonCheck.js +90 -31
- package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
- package/dist/cli/commands/hook.d.ts +7 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +788 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +3 -4
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +2 -1
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/first-time.d.ts +4 -0
- package/dist/cli/first-time.d.ts.map +1 -1
- package/dist/cli/first-time.js +26 -13
- package/dist/cli/first-time.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/frameworks/core/types.d.ts +1 -1
- package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
- package/dist/frameworks/plugins/speckit.plugin.js +1 -2
- package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
- package/dist/migrations/002-consolidate-sessions.migration.d.ts +50 -0
- package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -0
- package/dist/migrations/002-consolidate-sessions.migration.js +220 -0
- package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -0
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +3 -2
- package/dist/migrations/index.js.map +1 -1
- package/dist/providers/core/types.d.ts +1 -1
- package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
- package/dist/providers/plugins/ollama/ollama.template.js +2 -10
- package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
- package/dist/providers/plugins/sso/index.d.ts +1 -1
- package/dist/providers/plugins/sso/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/index.js +1 -1
- package/dist/providers/plugins/sso/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -3
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts +40 -0
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +194 -0
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -0
- package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-http-client.js +40 -6
- package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
- package/dist/providers/plugins/sso/session/BaseProcessor.d.ts +72 -0
- package/dist/providers/plugins/sso/session/BaseProcessor.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/BaseProcessor.js +9 -0
- package/dist/providers/plugins/sso/session/BaseProcessor.js.map +1 -0
- package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts +99 -0
- package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/BaseSessionAdapter.js +9 -0
- package/dist/providers/plugins/sso/session/BaseSessionAdapter.js.map +1 -0
- package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +36 -0
- package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/SessionSyncer.js +140 -0
- package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +26 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +146 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +1 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +23 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +171 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts +69 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +7 -0
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +1 -0
- package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts +30 -0
- package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js +79 -0
- package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.d.ts → session/processors/metrics/metrics-aggregator.d.ts} +6 -5
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.js → session/processors/metrics/metrics-aggregator.js} +20 -12
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.d.ts → session/processors/metrics/metrics-api-client.d.ts} +18 -11
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.js → session/processors/metrics/metrics-api-client.js} +143 -15
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.d.ts → session/processors/metrics/metrics-post-processor.d.ts} +3 -3
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.js → session/processors/metrics/metrics-post-processor.js} +3 -3
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -0
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts +24 -0
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sync.plugin.js → session/processors/metrics/metrics-sync-processor.js} +94 -165
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.d.ts → session/processors/metrics/metrics-types.d.ts} +2 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.js → session/processors/metrics/metrics-types.js} +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.js.map +1 -0
- package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts +15 -0
- package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts.map +1 -0
- package/dist/providers/plugins/sso/session/utils/jsonl-reader.js +33 -0
- package/dist/providers/plugins/sso/session/utils/jsonl-reader.js.map +1 -0
- package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts +26 -0
- package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts.map +1 -0
- package/dist/providers/plugins/sso/{metrics/sync/sso.jsonl-writer.js → session/utils/jsonl-writer.js} +11 -27
- package/dist/providers/plugins/sso/session/utils/jsonl-writer.js.map +1 -0
- package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.template.js +71 -44
- package/dist/providers/plugins/sso/sso.template.js.map +1 -1
- package/dist/utils/file-operations.d.ts +20 -0
- package/dist/utils/file-operations.d.ts.map +1 -0
- package/dist/utils/file-operations.js +48 -0
- package/dist/utils/file-operations.js.map +1 -0
- package/dist/utils/logger.d.ts +2 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +12 -4
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/paths.d.ts +20 -5
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +23 -5
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/processes.d.ts +2 -0
- package/dist/utils/processes.d.ts.map +1 -1
- package/dist/utils/processes.js +6 -1
- package/dist/utils/processes.js.map +1 -1
- package/package.json +9 -9
- package/scripts/copy-plugins.js +57 -0
- package/scripts/license-check.js +23 -0
- package/bin/codemie-codex.js +0 -18
- package/bin/codemie-deepagents.js +0 -18
- package/dist/agents/core/BaseMetricsAdapter.d.ts +0 -165
- package/dist/agents/core/BaseMetricsAdapter.d.ts.map +0 -1
- package/dist/agents/core/BaseMetricsAdapter.js +0 -308
- package/dist/agents/core/BaseMetricsAdapter.js.map +0 -1
- package/dist/agents/core/metrics/MetricsOrchestrator.d.ts +0 -81
- package/dist/agents/core/metrics/MetricsOrchestrator.d.ts.map +0 -1
- package/dist/agents/core/metrics/MetricsOrchestrator.js +0 -417
- package/dist/agents/core/metrics/MetricsOrchestrator.js.map +0 -1
- package/dist/agents/core/metrics/core/DeltaWriter.d.ts +0 -49
- package/dist/agents/core/metrics/core/DeltaWriter.d.ts.map +0 -1
- package/dist/agents/core/metrics/core/DeltaWriter.js +0 -152
- package/dist/agents/core/metrics/core/DeltaWriter.js.map +0 -1
- package/dist/agents/core/metrics/core/FileSnapshotter.d.ts +0 -22
- package/dist/agents/core/metrics/core/FileSnapshotter.d.ts.map +0 -1
- package/dist/agents/core/metrics/core/FileSnapshotter.js +0 -74
- package/dist/agents/core/metrics/core/FileSnapshotter.js.map +0 -1
- package/dist/agents/core/metrics/core/SessionCorrelator.d.ts +0 -34
- package/dist/agents/core/metrics/core/SessionCorrelator.d.ts.map +0 -1
- package/dist/agents/core/metrics/core/SessionCorrelator.js +0 -157
- package/dist/agents/core/metrics/core/SessionCorrelator.js.map +0 -1
- package/dist/agents/core/metrics/core/SyncStateManager.d.ts +0 -69
- package/dist/agents/core/metrics/core/SyncStateManager.d.ts.map +0 -1
- package/dist/agents/core/metrics/core/SyncStateManager.js +0 -283
- package/dist/agents/core/metrics/core/SyncStateManager.js.map +0 -1
- package/dist/agents/core/metrics/session/SessionStore.d.ts +0 -43
- package/dist/agents/core/metrics/session/SessionStore.d.ts.map +0 -1
- package/dist/agents/core/metrics/session/SessionStore.js +0 -146
- package/dist/agents/core/metrics/session/SessionStore.js.map +0 -1
- package/dist/agents/core/metrics-config.d.ts +0 -38
- package/dist/agents/core/metrics-config.d.ts.map +0 -1
- package/dist/agents/core/metrics-config.js +0 -96
- package/dist/agents/core/metrics-config.js.map +0 -1
- package/dist/agents/plugins/claude.metrics.d.ts +0 -102
- package/dist/agents/plugins/claude.metrics.d.ts.map +0 -1
- package/dist/agents/plugins/claude.metrics.js +0 -656
- package/dist/agents/plugins/claude.metrics.js.map +0 -1
- package/dist/agents/plugins/claude.plugin.d.ts +0 -19
- package/dist/agents/plugins/claude.plugin.d.ts.map +0 -1
- package/dist/agents/plugins/claude.plugin.js.map +0 -1
- package/dist/agents/plugins/codex.metrics.d.ts +0 -69
- package/dist/agents/plugins/codex.metrics.d.ts.map +0 -1
- package/dist/agents/plugins/codex.metrics.js +0 -483
- package/dist/agents/plugins/codex.metrics.js.map +0 -1
- package/dist/agents/plugins/codex.plugin.d.ts +0 -21
- package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
- package/dist/agents/plugins/codex.plugin.js +0 -222
- package/dist/agents/plugins/codex.plugin.js.map +0 -1
- package/dist/agents/plugins/deepagents.plugin.d.ts +0 -21
- package/dist/agents/plugins/deepagents.plugin.d.ts.map +0 -1
- package/dist/agents/plugins/deepagents.plugin.js +0 -104
- package/dist/agents/plugins/deepagents.plugin.js.map +0 -1
- package/dist/agents/plugins/gemini.metrics.d.ts +0 -99
- package/dist/agents/plugins/gemini.metrics.d.ts.map +0 -1
- package/dist/agents/plugins/gemini.metrics.js +0 -475
- package/dist/agents/plugins/gemini.metrics.js.map +0 -1
- package/dist/agents/plugins/gemini.plugin.d.ts +0 -16
- package/dist/agents/plugins/gemini.plugin.d.ts.map +0 -1
- package/dist/agents/plugins/gemini.plugin.js +0 -80
- package/dist/agents/plugins/gemini.plugin.js.map +0 -1
- package/dist/agents/plugins/history-parser.d.ts +0 -52
- package/dist/agents/plugins/history-parser.d.ts.map +0 -1
- package/dist/agents/plugins/history-parser.js +0 -155
- package/dist/agents/plugins/history-parser.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts +0 -28
- package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts +0 -62
- package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js +0 -157
- package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts +0 -32
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js +0 -159
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts +0 -36
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.js.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.d.ts.map +0 -1
- package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.js.map +0 -1
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* History Parser Utility
|
|
3
|
-
*
|
|
4
|
-
* Generic utility for parsing JSONL history files.
|
|
5
|
-
* Can be used by any agent that stores user prompts in JSONL format.
|
|
6
|
-
*/
|
|
7
|
-
import { readFile } from 'fs/promises';
|
|
8
|
-
import { existsSync } from 'fs';
|
|
9
|
-
import { logger } from '../../utils/logger.js';
|
|
10
|
-
export class HistoryParser {
|
|
11
|
-
historyPath;
|
|
12
|
-
timeWindow;
|
|
13
|
-
constructor(historyPath, options = {}) {
|
|
14
|
-
this.historyPath = historyPath;
|
|
15
|
-
this.timeWindow = options.timeWindow ?? 5000; // Default: ±5 seconds
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Check if history file exists
|
|
19
|
-
*/
|
|
20
|
-
exists() {
|
|
21
|
-
return existsSync(this.historyPath);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Parse entire history file and return all user prompts
|
|
25
|
-
* Claude's history.jsonl uses multi-line JSON format (pretty-printed)
|
|
26
|
-
*/
|
|
27
|
-
async parseAll() {
|
|
28
|
-
try {
|
|
29
|
-
if (!this.exists()) {
|
|
30
|
-
logger.debug(`[HistoryParser] File not found: ${this.historyPath}`);
|
|
31
|
-
return [];
|
|
32
|
-
}
|
|
33
|
-
const content = await readFile(this.historyPath, 'utf-8');
|
|
34
|
-
// Parse multi-line JSON objects
|
|
35
|
-
// Split by newlines followed by opening brace
|
|
36
|
-
const jsonObjects = [];
|
|
37
|
-
let currentObject = '';
|
|
38
|
-
let braceDepth = 0;
|
|
39
|
-
let inString = false;
|
|
40
|
-
let escapeNext = false;
|
|
41
|
-
for (let i = 0; i < content.length; i++) {
|
|
42
|
-
const char = content[i];
|
|
43
|
-
currentObject += char;
|
|
44
|
-
if (escapeNext) {
|
|
45
|
-
escapeNext = false;
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (char === '\\') {
|
|
49
|
-
escapeNext = true;
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
if (char === '"') {
|
|
53
|
-
inString = !inString;
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (!inString) {
|
|
57
|
-
if (char === '{') {
|
|
58
|
-
braceDepth++;
|
|
59
|
-
}
|
|
60
|
-
else if (char === '}') {
|
|
61
|
-
braceDepth--;
|
|
62
|
-
// Complete object found
|
|
63
|
-
if (braceDepth === 0 && currentObject.trim()) {
|
|
64
|
-
try {
|
|
65
|
-
const parsed = JSON.parse(currentObject.trim());
|
|
66
|
-
jsonObjects.push(parsed);
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
logger.debug(`[HistoryParser] Failed to parse object: ${currentObject.substring(0, 100)}...`);
|
|
70
|
-
}
|
|
71
|
-
currentObject = '';
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const prompts = [];
|
|
77
|
-
for (const parsed of jsonObjects) {
|
|
78
|
-
// Validate required fields
|
|
79
|
-
if (parsed.sessionId && parsed.timestamp && parsed.display) {
|
|
80
|
-
prompts.push({
|
|
81
|
-
display: parsed.display,
|
|
82
|
-
timestamp: parsed.timestamp,
|
|
83
|
-
project: parsed.project || '',
|
|
84
|
-
sessionId: parsed.sessionId,
|
|
85
|
-
pastedContents: parsed.pastedContents
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return prompts;
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
logger.error(`[HistoryParser] Failed to parse history file: ${this.historyPath}`, error);
|
|
93
|
-
return [];
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get user prompts for a specific session
|
|
98
|
-
*/
|
|
99
|
-
async getSessionPrompts(sessionId) {
|
|
100
|
-
const all = await this.parseAll();
|
|
101
|
-
return all.filter(p => p.sessionId === sessionId);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Get prompts for session within time range
|
|
105
|
-
*/
|
|
106
|
-
async getPromptsInRange(sessionId, fromTimestamp, toTimestamp) {
|
|
107
|
-
const sessionPrompts = await this.getSessionPrompts(sessionId);
|
|
108
|
-
if (!fromTimestamp && !toTimestamp) {
|
|
109
|
-
return sessionPrompts;
|
|
110
|
-
}
|
|
111
|
-
return sessionPrompts.filter(p => {
|
|
112
|
-
if (fromTimestamp && p.timestamp < fromTimestamp)
|
|
113
|
-
return false;
|
|
114
|
-
if (toTimestamp && p.timestamp > toTimestamp)
|
|
115
|
-
return false;
|
|
116
|
-
return true;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Count prompts per session
|
|
121
|
-
* Returns Map<sessionId, count>
|
|
122
|
-
*/
|
|
123
|
-
async countBySession() {
|
|
124
|
-
const all = await this.parseAll();
|
|
125
|
-
const counts = new Map();
|
|
126
|
-
for (const prompt of all) {
|
|
127
|
-
counts.set(prompt.sessionId, (counts.get(prompt.sessionId) || 0) + 1);
|
|
128
|
-
}
|
|
129
|
-
return counts;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Find prompts near a specific timestamp (within time window)
|
|
133
|
-
* Useful for correlating prompts with agent turns
|
|
134
|
-
*/
|
|
135
|
-
async findPromptsNearTimestamp(sessionId, targetTimestamp) {
|
|
136
|
-
const sessionPrompts = await this.getSessionPrompts(sessionId);
|
|
137
|
-
return sessionPrompts.filter(p => {
|
|
138
|
-
const timeDiff = Math.abs(p.timestamp - targetTimestamp);
|
|
139
|
-
return timeDiff <= this.timeWindow;
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Create a timestamp-indexed map for fast lookup
|
|
144
|
-
* Returns Map<timestamp, UserPrompt>
|
|
145
|
-
*/
|
|
146
|
-
async createTimestampMap(sessionId) {
|
|
147
|
-
const sessionPrompts = await this.getSessionPrompts(sessionId);
|
|
148
|
-
const map = new Map();
|
|
149
|
-
for (const prompt of sessionPrompts) {
|
|
150
|
-
map.set(prompt.timestamp, prompt);
|
|
151
|
-
}
|
|
152
|
-
return map;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=history-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history-parser.js","sourceRoot":"","sources":["../../../src/agents/plugins/history-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSONL Atomic Write Utility
|
|
3
|
-
*
|
|
4
|
-
* Provides safe JSONL file operations with atomic writes.
|
|
5
|
-
* Used by MetricsSyncPlugin to mark deltas as synced.
|
|
6
|
-
*
|
|
7
|
-
* Safety guarantees:
|
|
8
|
-
* - Atomic rename ensures no partial writes
|
|
9
|
-
* - Fsync ensures durability before rename
|
|
10
|
-
* - Temp file cleanup on error
|
|
11
|
-
* - No data loss on crash/power failure
|
|
12
|
-
*/
|
|
13
|
-
import type { MetricDelta } from '../../../../../agents/core/metrics/types.js';
|
|
14
|
-
/**
|
|
15
|
-
* Read all deltas from JSONL file
|
|
16
|
-
*/
|
|
17
|
-
export declare function readJSONL(filePath: string): Promise<MetricDelta[]>;
|
|
18
|
-
/**
|
|
19
|
-
* Atomically write deltas to JSONL file
|
|
20
|
-
*
|
|
21
|
-
* Process:
|
|
22
|
-
* 1. Write to temporary file
|
|
23
|
-
* 2. Fsync to ensure data is on disk
|
|
24
|
-
* 3. Atomic rename to target file
|
|
25
|
-
* 4. Cleanup temp file on error
|
|
26
|
-
*/
|
|
27
|
-
export declare function writeJSONLAtomic(filePath: string, deltas: MetricDelta[]): Promise<void>;
|
|
28
|
-
//# sourceMappingURL=sso.jsonl-writer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.jsonl-writer.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.jsonl-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAG/E;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBxE;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.jsonl-writer.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.jsonl-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEjD,OAAO,OAAO;aACX,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC,CAAC;IAElD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,MAAqB;IAErB,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;IAEnC,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnE,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzC,qCAAqC;QACrC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QAEjB,uCAAuC;QACvC,MAAM,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,MAAM,cAAc,QAAQ,EAAE,CAAC,CAAC;IAEzF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6BAA6B;QAC7B,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SSO Metrics Lifecycle Handler
|
|
3
|
-
*
|
|
4
|
-
* SSO-specific service for sending session lifecycle metrics.
|
|
5
|
-
* Uses SSO authentication cookies to send metrics to CodeMie API.
|
|
6
|
-
*
|
|
7
|
-
* Used by agent lifecycle hooks to track:
|
|
8
|
-
* - Session start (with status: started/failed)
|
|
9
|
-
* - Session end (with status: completed/failed/interrupted)
|
|
10
|
-
*
|
|
11
|
-
* IMPORTANT: This is an SSO provider capability.
|
|
12
|
-
* Only works with ai-run-sso provider which provides authentication cookies.
|
|
13
|
-
*/
|
|
14
|
-
import { SessionStartStatus, SessionError } from './sso.metrics-sender.js';
|
|
15
|
-
export interface SessionMetadata {
|
|
16
|
-
sessionId: string;
|
|
17
|
-
agentName: string;
|
|
18
|
-
provider: string;
|
|
19
|
-
project?: string;
|
|
20
|
-
llm_model?: string;
|
|
21
|
-
startTime: number;
|
|
22
|
-
workingDirectory: string;
|
|
23
|
-
}
|
|
24
|
-
export interface MetricsLifecycleConfig {
|
|
25
|
-
baseUrl: string;
|
|
26
|
-
cookies: string;
|
|
27
|
-
version?: string;
|
|
28
|
-
clientType?: string;
|
|
29
|
-
dryRun?: boolean;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Lifecycle handler for session metrics
|
|
33
|
-
* Decoupled from agent adapter - can be used anywhere
|
|
34
|
-
*/
|
|
35
|
-
export declare class MetricsLifecycleHandler {
|
|
36
|
-
private sender;
|
|
37
|
-
private sessionMetadata;
|
|
38
|
-
constructor(config: MetricsLifecycleConfig);
|
|
39
|
-
/**
|
|
40
|
-
* Send session start metric
|
|
41
|
-
* @param metadata - Session metadata
|
|
42
|
-
* @param status - Start status (started/failed)
|
|
43
|
-
* @param error - Optional error (required if status=failed)
|
|
44
|
-
*/
|
|
45
|
-
sendSessionStart(metadata: SessionMetadata, status?: SessionStartStatus, error?: SessionError): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Send session end metric
|
|
48
|
-
* @param exitCode - Process exit code
|
|
49
|
-
*/
|
|
50
|
-
sendSessionEnd(exitCode: number): Promise<void>;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Factory function to create lifecycle handler for SSO provider
|
|
54
|
-
* Loads credentials from SSO auth system
|
|
55
|
-
*
|
|
56
|
-
* @param ssoUrl - Original SSO URL for credential lookup (e.g., https://codemie.lab.epam.com)
|
|
57
|
-
* @param apiUrl - API URL for sending requests (e.g., http://localhost:PORT - proxy URL with cookie injection)
|
|
58
|
-
* @param version - CLI version
|
|
59
|
-
* @param clientType - Client type identifier
|
|
60
|
-
*/
|
|
61
|
-
export declare function createSSOLifecycleHandler(ssoUrl: string, apiUrl: string, version?: string, clientType?: string): Promise<MetricsLifecycleHandler | null>;
|
|
62
|
-
//# sourceMappingURL=sso.lifecycle-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.lifecycle-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAiB,kBAAkB,EAAoB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5G,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAgC;gBAE3C,MAAM,EAAE,sBAAsB;IAY1C;;;;;OAKG;IACG,gBAAgB,CACpB,QAAQ,EAAE,eAAe,EACzB,MAAM,GAAE,kBAA8B,EACtC,KAAK,CAAC,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC;IAsDhB;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0CtD;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAiCzC"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SSO Metrics Lifecycle Handler
|
|
3
|
-
*
|
|
4
|
-
* SSO-specific service for sending session lifecycle metrics.
|
|
5
|
-
* Uses SSO authentication cookies to send metrics to CodeMie API.
|
|
6
|
-
*
|
|
7
|
-
* Used by agent lifecycle hooks to track:
|
|
8
|
-
* - Session start (with status: started/failed)
|
|
9
|
-
* - Session end (with status: completed/failed/interrupted)
|
|
10
|
-
*
|
|
11
|
-
* IMPORTANT: This is an SSO provider capability.
|
|
12
|
-
* Only works with ai-run-sso provider which provides authentication cookies.
|
|
13
|
-
*/
|
|
14
|
-
import { MetricsSender } from './sso.metrics-sender.js';
|
|
15
|
-
import { logger } from '../../../../../utils/logger.js';
|
|
16
|
-
/**
|
|
17
|
-
* Lifecycle handler for session metrics
|
|
18
|
-
* Decoupled from agent adapter - can be used anywhere
|
|
19
|
-
*/
|
|
20
|
-
export class MetricsLifecycleHandler {
|
|
21
|
-
sender;
|
|
22
|
-
sessionMetadata = null;
|
|
23
|
-
constructor(config) {
|
|
24
|
-
this.sender = new MetricsSender({
|
|
25
|
-
baseUrl: config.baseUrl,
|
|
26
|
-
cookies: config.cookies,
|
|
27
|
-
timeout: 10000,
|
|
28
|
-
retryAttempts: 2,
|
|
29
|
-
version: config.version,
|
|
30
|
-
clientType: config.clientType,
|
|
31
|
-
dryRun: config.dryRun
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Send session start metric
|
|
36
|
-
* @param metadata - Session metadata
|
|
37
|
-
* @param status - Start status (started/failed)
|
|
38
|
-
* @param error - Optional error (required if status=failed)
|
|
39
|
-
*/
|
|
40
|
-
async sendSessionStart(metadata, status = 'started', error) {
|
|
41
|
-
// Store metadata for session end
|
|
42
|
-
this.sessionMetadata = metadata;
|
|
43
|
-
try {
|
|
44
|
-
await this.sender.sendSessionStart({
|
|
45
|
-
sessionId: metadata.sessionId,
|
|
46
|
-
agentName: metadata.agentName,
|
|
47
|
-
provider: metadata.provider,
|
|
48
|
-
project: metadata.project,
|
|
49
|
-
model: metadata.llm_model,
|
|
50
|
-
startTime: metadata.startTime,
|
|
51
|
-
workingDirectory: metadata.workingDirectory
|
|
52
|
-
}, metadata.workingDirectory, status, error);
|
|
53
|
-
logger.info('[MetricsLifecycleHandler] Session start metric sent successfully', { status });
|
|
54
|
-
}
|
|
55
|
-
catch (sendError) {
|
|
56
|
-
const errorMessage = sendError instanceof Error ? sendError.message : String(sendError);
|
|
57
|
-
logger.warn('[MetricsLifecycleHandler] Failed to send session start:', errorMessage);
|
|
58
|
-
// If initial send failed, try to send failed metric
|
|
59
|
-
if (status === 'started') {
|
|
60
|
-
try {
|
|
61
|
-
await this.sender.sendSessionStart({
|
|
62
|
-
sessionId: metadata.sessionId,
|
|
63
|
-
agentName: metadata.agentName,
|
|
64
|
-
provider: metadata.provider,
|
|
65
|
-
project: metadata.project,
|
|
66
|
-
model: metadata.llm_model,
|
|
67
|
-
startTime: metadata.startTime,
|
|
68
|
-
workingDirectory: metadata.workingDirectory
|
|
69
|
-
}, metadata.workingDirectory, 'failed', {
|
|
70
|
-
type: 'metrics_error',
|
|
71
|
-
message: sendError instanceof Error ? sendError.message : String(sendError),
|
|
72
|
-
code: sendError.code
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
catch (fallbackError) {
|
|
76
|
-
const fallbackMessage = fallbackError instanceof Error ? fallbackError.message : String(fallbackError);
|
|
77
|
-
logger.warn('[MetricsLifecycleHandler] Failed to send fallback metric:', fallbackMessage);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Send session end metric
|
|
84
|
-
* @param exitCode - Process exit code
|
|
85
|
-
*/
|
|
86
|
-
async sendSessionEnd(exitCode) {
|
|
87
|
-
if (!this.sessionMetadata) {
|
|
88
|
-
logger.debug('[MetricsLifecycleHandler] No session metadata - skipping session end');
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
// Calculate duration
|
|
93
|
-
const durationMs = Date.now() - this.sessionMetadata.startTime;
|
|
94
|
-
// Determine status from exit code
|
|
95
|
-
const status = exitCode === 0 ? 'completed' :
|
|
96
|
-
exitCode === 130 || exitCode === 143 ? 'interrupted' : // SIGINT/SIGTERM
|
|
97
|
-
'failed';
|
|
98
|
-
await this.sender.sendSessionEnd({
|
|
99
|
-
sessionId: this.sessionMetadata.sessionId,
|
|
100
|
-
agentName: this.sessionMetadata.agentName,
|
|
101
|
-
provider: this.sessionMetadata.provider,
|
|
102
|
-
project: this.sessionMetadata.project,
|
|
103
|
-
model: this.sessionMetadata.llm_model,
|
|
104
|
-
startTime: this.sessionMetadata.startTime,
|
|
105
|
-
workingDirectory: this.sessionMetadata.workingDirectory
|
|
106
|
-
}, this.sessionMetadata.workingDirectory, status, durationMs, status === 'failed' ? {
|
|
107
|
-
type: 'agent_exit',
|
|
108
|
-
message: `Agent exited with code ${exitCode}`,
|
|
109
|
-
code: String(exitCode)
|
|
110
|
-
} : undefined);
|
|
111
|
-
logger.info('[MetricsLifecycleHandler] Session end metric sent successfully', { status, durationMs });
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
115
|
-
logger.warn('[MetricsLifecycleHandler] Failed to send session end:', errorMessage);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Factory function to create lifecycle handler for SSO provider
|
|
121
|
-
* Loads credentials from SSO auth system
|
|
122
|
-
*
|
|
123
|
-
* @param ssoUrl - Original SSO URL for credential lookup (e.g., https://codemie.lab.epam.com)
|
|
124
|
-
* @param apiUrl - API URL for sending requests (e.g., http://localhost:PORT - proxy URL with cookie injection)
|
|
125
|
-
* @param version - CLI version
|
|
126
|
-
* @param clientType - Client type identifier
|
|
127
|
-
*/
|
|
128
|
-
export async function createSSOLifecycleHandler(ssoUrl, apiUrl, version, clientType) {
|
|
129
|
-
try {
|
|
130
|
-
logger.info(`[MetricsLifecycleHandler] Creating handler (ssoUrl=${ssoUrl}, apiUrl=${apiUrl})`);
|
|
131
|
-
const { CodeMieSSO } = await import('../../sso.auth.js');
|
|
132
|
-
const sso = new CodeMieSSO();
|
|
133
|
-
const credentials = await sso.getStoredCredentials(ssoUrl);
|
|
134
|
-
if (!credentials || !credentials.cookies) {
|
|
135
|
-
logger.info(`[MetricsLifecycleHandler] No SSO credentials found for ${ssoUrl}`);
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
logger.info('[MetricsLifecycleHandler] SSO credentials found, building handler...');
|
|
139
|
-
// Build cookie header
|
|
140
|
-
const cookieHeader = Object.entries(credentials.cookies)
|
|
141
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
142
|
-
.join('; ');
|
|
143
|
-
const handler = new MetricsLifecycleHandler({
|
|
144
|
-
baseUrl: apiUrl, // Use proxy URL for API requests (cookies injected by proxy)
|
|
145
|
-
cookies: cookieHeader,
|
|
146
|
-
version,
|
|
147
|
-
clientType
|
|
148
|
-
});
|
|
149
|
-
logger.info('[MetricsLifecycleHandler] Handler created successfully');
|
|
150
|
-
return handler;
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
logger.error('[MetricsLifecycleHandler] Failed to create SSO handler:', error);
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
//# sourceMappingURL=sso.lifecycle-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.lifecycle-handler.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.metrics-aggregator.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAK5E;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,kBAAkB,GAC/B,aAAa,EAAE,CAuCjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.metrics-aggregator.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAqB,EACrB,OAAuB,EACvB,OAAe,EACf,WAAgC;IAEhC,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,MAAM,uBAAuB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAElG,yBAAyB;IACzB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IAExD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;QAE5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,cAAc,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oCAAoC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElI,+BAA+B;IAC/B,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,4CAA4C,MAAM,UAAU,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC;QAEvG,+CAA+C;QAC/C,MAAM,UAAU,GAAG,sBAAsB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAElF,wCAAwC;QACxC,MAAM,MAAM,GAAkB;YAC5B,IAAI,EAAE,aAAa,CAAC,kBAAkB;YACtC,UAAU;SACX,CAAC;QAEF,iDAAiD;QACjD,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,MAAqB,EACrB,OAAuB,EACvB,OAAe,EACf,MAAc;IAEd,oBAAoB;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,gBAAgB;IAChB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,kBAAkB;IAClB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,qCAAqC;IACrC,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,eAAe;IACf,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,iBAAiB;IACjB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,uBAAuB;IACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,SAAS;QACT,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACtC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACxC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QAC9C,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;QAEtD,QAAQ;QACR,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAC7D,CAAC;QAED,cAAc;QACd,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;gBACtE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACtC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;oBAAE,YAAY,EAAE,CAAC;gBACxC,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;oBAAE,aAAa,EAAE,CAAC;gBACxC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;oBAAE,YAAY,EAAE,CAAC;gBAEzC,UAAU,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC;gBACjC,YAAY,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,SAAS;QACT,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,eAAe,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QAC9C,CAAC;QAED,qFAAqF;QACrF,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,SAAS,GAAG,IAAI,CAAC;YAEjB,sCAAsC;YACtC,sEAAsE;YACtE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClE,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACvB,iCAAiC;wBACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC5B,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;wBAC9B,CAAC;wBACD,qCAAqC;wBACrC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC/B,CAAC;gBACD,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEnD,6BAA6B;IAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACxF,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAE3F,sEAAsE;IACtE,MAAM,eAAe,GAAG,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErE,mBAAmB;IACnB,MAAM,UAAU,GAAQ;QACtB,WAAW;QACX,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,aAAa,EAAE,OAAO;QACtB,SAAS,EAAE,YAAY,IAAI,SAAS;QACpC,UAAU,EAAE,OAAO,CAAC,gBAAgB;QACpC,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,MAAM,EAAE,MAAM;QACd,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAEpD,sBAAsB;QACtB,kBAAkB,EAAE,eAAe;QAEnC,gBAAgB;QAChB,kBAAkB,EAAE,UAAU;QAC9B,mBAAmB,EAAE,WAAW;QAChC,6BAA6B,EAAE,cAAc;QAC7C,2BAA2B,EAAE,kBAAkB;QAE/C,eAAe;QACf,gBAAgB,EAAE,cAAc;QAChC,qBAAqB,EAAE,mBAAmB;QAC1C,iBAAiB,EAAE,eAAe;QAElC,yBAAyB;QACzB,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,YAAY;QAC3B,iBAAiB,EAAE,UAAU;QAC7B,mBAAmB,EAAE,YAAY;QAEjC,mBAAmB;QACnB,mBAAmB,EAAE,eAAe;QACpC,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,CAAC,CAAC,2BAA2B;KACrC,CAAC;IAEF,0CAA0C;IAC1C,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAmC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,2BAA2B,CAAC,MAAqB,EAAE,OAAuB;IACjF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sEAAsE;IACtE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3B,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAE7C,2CAA2C;IAC3C,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;IAElD,qEAAqE;IACrE,+BAA+B;IAC/B,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metrics API Client
|
|
3
|
-
*
|
|
4
|
-
* HTTP client for sending metrics to CodeMie API.
|
|
5
|
-
* Features:
|
|
6
|
-
* - Exponential backoff retry
|
|
7
|
-
* - SSO cookie authentication
|
|
8
|
-
* - JSON batch sending
|
|
9
|
-
* - Error classification (retryable vs non-retryable)
|
|
10
|
-
*/
|
|
11
|
-
import type { MetricsApiConfig, MetricsSyncResponse, SessionMetric } from './sso.metrics-types.js';
|
|
12
|
-
export declare class MetricsApiClient {
|
|
13
|
-
private readonly config;
|
|
14
|
-
constructor(config: MetricsApiConfig);
|
|
15
|
-
/**
|
|
16
|
-
* Send single aggregated metric to API (JSON format)
|
|
17
|
-
*/
|
|
18
|
-
sendMetric(metric: SessionMetric): Promise<MetricsSyncResponse>;
|
|
19
|
-
/**
|
|
20
|
-
* Send HTTP request to API
|
|
21
|
-
*/
|
|
22
|
-
private sendRequest;
|
|
23
|
-
/**
|
|
24
|
-
* Check if error is retryable
|
|
25
|
-
*/
|
|
26
|
-
private isRetryable;
|
|
27
|
-
/**
|
|
28
|
-
* Sleep for specified milliseconds
|
|
29
|
-
*/
|
|
30
|
-
private sleep;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=sso.metrics-api-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sso.metrics-api-client.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/metrics/sync/sso.metrics-api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAC,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AAElH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAExC,MAAM,EAAE,gBAAgB;IAYpC;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoCrE;;OAEG;YACW,WAAW;IAgGzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metrics API Client
|
|
3
|
-
*
|
|
4
|
-
* HTTP client for sending metrics to CodeMie API.
|
|
5
|
-
* Features:
|
|
6
|
-
* - Exponential backoff retry
|
|
7
|
-
* - SSO cookie authentication
|
|
8
|
-
* - JSON batch sending
|
|
9
|
-
* - Error classification (retryable vs non-retryable)
|
|
10
|
-
*/
|
|
11
|
-
import { logger } from '../../../../../utils/logger.js';
|
|
12
|
-
import { CODEMIE_ENDPOINTS } from '../../sso.http-client.js';
|
|
13
|
-
export class MetricsApiClient {
|
|
14
|
-
config;
|
|
15
|
-
constructor(config) {
|
|
16
|
-
this.config = {
|
|
17
|
-
baseUrl: config.baseUrl,
|
|
18
|
-
cookies: config.cookies || '',
|
|
19
|
-
timeout: config.timeout || 30000,
|
|
20
|
-
retryAttempts: config.retryAttempts || 3,
|
|
21
|
-
retryDelays: config.retryDelays || [1000, 2000, 5000],
|
|
22
|
-
version: config.version || process.env.CODEMIE_CLI_VERSION || 'unknown',
|
|
23
|
-
clientType: config.clientType || 'codemie-cli'
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Send single aggregated metric to API (JSON format)
|
|
28
|
-
*/
|
|
29
|
-
async sendMetric(metric) {
|
|
30
|
-
let lastError;
|
|
31
|
-
// Retry with exponential backoff
|
|
32
|
-
for (let attempt = 0; attempt <= this.config.retryAttempts; attempt++) {
|
|
33
|
-
try {
|
|
34
|
-
if (attempt > 0) {
|
|
35
|
-
const delay = this.config.retryDelays[attempt - 1] || 5000;
|
|
36
|
-
logger.debug(`[MetricsApiClient] Retry attempt ${attempt} after ${delay}ms`);
|
|
37
|
-
await this.sleep(delay);
|
|
38
|
-
}
|
|
39
|
-
return await this.sendRequest(metric);
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
lastError = error;
|
|
43
|
-
// Better error logging (Error objects don't serialize well)
|
|
44
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
45
|
-
const errorName = error instanceof Error ? error.name : 'Unknown';
|
|
46
|
-
const statusCode = error.statusCode;
|
|
47
|
-
// Check if error is retryable
|
|
48
|
-
if (!this.isRetryable(error)) {
|
|
49
|
-
logger.error(`[MetricsApiClient] Non-retryable error [${errorName}]: ${errorMessage}${statusCode ? ` (HTTP ${statusCode})` : ''}`);
|
|
50
|
-
throw error;
|
|
51
|
-
}
|
|
52
|
-
logger.warn(`[MetricsApiClient] Attempt ${attempt + 1} failed [${errorName}]: ${errorMessage}${statusCode ? ` (HTTP ${statusCode})` : ''}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// All retries exhausted
|
|
56
|
-
throw new Error(`Failed after ${this.config.retryAttempts} retries: ${lastError?.message}`);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Send HTTP request to API
|
|
60
|
-
*/
|
|
61
|
-
async sendRequest(metric) {
|
|
62
|
-
const url = `${this.config.baseUrl}${CODEMIE_ENDPOINTS.METRICS}`;
|
|
63
|
-
// Convert to JSON
|
|
64
|
-
const body = JSON.stringify(metric);
|
|
65
|
-
logger.debug(`[MetricsApiClient] Sending metric to ${url}. Body ${body}`);
|
|
66
|
-
// Create headers (match SSO endpoint headers)
|
|
67
|
-
const headers = {
|
|
68
|
-
'Content-Type': 'application/json',
|
|
69
|
-
'User-Agent': `codemie-cli/${this.config.version}`,
|
|
70
|
-
'X-CodeMie-CLI': `codemie-cli/${this.config.version}`,
|
|
71
|
-
'X-CodeMie-Client': this.config.clientType
|
|
72
|
-
};
|
|
73
|
-
// Add cookies if present (SSO authentication)
|
|
74
|
-
if (this.config.cookies) {
|
|
75
|
-
headers['Cookie'] = this.config.cookies;
|
|
76
|
-
}
|
|
77
|
-
// Send request with timeout
|
|
78
|
-
const controller = new AbortController();
|
|
79
|
-
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
80
|
-
try {
|
|
81
|
-
const response = await fetch(url, {
|
|
82
|
-
method: 'POST',
|
|
83
|
-
headers,
|
|
84
|
-
body,
|
|
85
|
-
signal: controller.signal
|
|
86
|
-
});
|
|
87
|
-
clearTimeout(timeoutId);
|
|
88
|
-
// Parse response - could be success response or error response
|
|
89
|
-
const data = await response.json();
|
|
90
|
-
// Check response status first
|
|
91
|
-
if (!response.ok) {
|
|
92
|
-
// Handle FastAPI ExtendedHTTPException format
|
|
93
|
-
if ('code' in data && 'details' in data) {
|
|
94
|
-
const errorData = data;
|
|
95
|
-
let errorMessage = `API returned ${response.status}: ${errorData.message}`;
|
|
96
|
-
if (errorData.details) {
|
|
97
|
-
errorMessage += `\nDetails: ${errorData.details}`;
|
|
98
|
-
}
|
|
99
|
-
if (errorData.help) {
|
|
100
|
-
errorMessage += `\nHelp: ${errorData.help}`;
|
|
101
|
-
}
|
|
102
|
-
const error = new Error(errorMessage);
|
|
103
|
-
error.statusCode = response.status;
|
|
104
|
-
error.response = data;
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
// Fallback for non-extended error format
|
|
108
|
-
const errorMessage = 'message' in data ? data.message : response.statusText;
|
|
109
|
-
const error = new Error(`API returned ${response.status}: ${errorMessage}`);
|
|
110
|
-
error.statusCode = response.status;
|
|
111
|
-
error.response = data;
|
|
112
|
-
throw error;
|
|
113
|
-
}
|
|
114
|
-
// Successfully got 200 response, check if metric was processed
|
|
115
|
-
const successData = data;
|
|
116
|
-
logger.debug(`[MetricsApiClient] Response from ${url}: success=${successData.success}, message="${successData.message}"`);
|
|
117
|
-
// Check if the API reported failure in the response body (success=false with 200 status)
|
|
118
|
-
if (!successData.success) {
|
|
119
|
-
const error = new Error(`API reported failure: ${successData.message}`);
|
|
120
|
-
error.response = data;
|
|
121
|
-
throw error;
|
|
122
|
-
}
|
|
123
|
-
logger.info(`[MetricsApiClient] Successfully sent metric: ${successData.message}`);
|
|
124
|
-
return successData;
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
clearTimeout(timeoutId);
|
|
128
|
-
if (error.name === 'AbortError') {
|
|
129
|
-
throw new Error(`Request timeout after ${this.config.timeout}ms`);
|
|
130
|
-
}
|
|
131
|
-
throw error;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Check if error is retryable
|
|
136
|
-
*/
|
|
137
|
-
isRetryable(error) {
|
|
138
|
-
const statusCode = error.statusCode;
|
|
139
|
-
// Retryable errors
|
|
140
|
-
if (!statusCode) {
|
|
141
|
-
// Network errors (ECONNREFUSED, ETIMEDOUT, etc.)
|
|
142
|
-
return true;
|
|
143
|
-
}
|
|
144
|
-
// Retry on 5xx and 429 (rate limit)
|
|
145
|
-
if (statusCode >= 500 || statusCode === 429) {
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
// Non-retryable errors (4xx except 429)
|
|
149
|
-
// 401 Unauthorized, 403 Forbidden, 400 Bad Request
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Sleep for specified milliseconds
|
|
154
|
-
*/
|
|
155
|
-
sleep(ms) {
|
|
156
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=sso.metrics-api-client.js.map
|