@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,174 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Priority: 100 (runs after logging plugin)
|
|
2
|
+
* Metrics Sync Processor (SSO Provider)
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
* - Runs only in SSO mode (ai-run-sso provider)
|
|
7
|
-
* - Background timer (every 5 minutes)
|
|
8
|
-
* - Aggregates pending deltas into single metric
|
|
9
|
-
* - Marks deltas as synced in JSONL
|
|
10
|
-
* - Final sync on proxy shutdown
|
|
4
|
+
* Lightweight processor that syncs metric deltas to CodeMie API.
|
|
11
5
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
6
|
+
* Responsibilities:
|
|
7
|
+
* - Read pending metric deltas from JSONL (written by agent adapters)
|
|
8
|
+
* - Aggregate deltas into metrics grouped by branch
|
|
9
|
+
* - Send metrics to CodeMie API
|
|
10
|
+
* - Mark deltas as 'synced' atomically
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
* KISS: Simple timer-based sync
|
|
12
|
+
* Note: Delta extraction is handled by agent adapters (e.g., Claude's MetricsProcessor)
|
|
17
13
|
*/
|
|
18
|
-
import { logger } from '
|
|
19
|
-
import { MetricsSender } from './
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
name = '
|
|
27
|
-
|
|
28
|
-
priority = 100; // Run after logging (priority 50)
|
|
29
|
-
async createInterceptor(context) {
|
|
30
|
-
// Only create interceptor if we have necessary context
|
|
31
|
-
if (!context.config.sessionId) {
|
|
32
|
-
logger.debug('[SSOMetricsSyncPlugin] Skipping: Session ID not available');
|
|
33
|
-
throw new Error('Session ID not available (metrics sync disabled)');
|
|
34
|
-
}
|
|
35
|
-
if (!context.credentials) {
|
|
36
|
-
logger.debug('[SSOMetricsSyncPlugin] Skipping: SSO credentials not available');
|
|
37
|
-
throw new Error('SSO credentials not available (metrics sync disabled)');
|
|
38
|
-
}
|
|
39
|
-
// Check if metrics sync is enabled (from config or env var)
|
|
40
|
-
const syncEnabled = this.isSyncEnabled(context);
|
|
41
|
-
if (!syncEnabled) {
|
|
42
|
-
logger.debug('[SSOMetricsSyncPlugin] Skipping: Metrics sync disabled by configuration');
|
|
43
|
-
throw new Error('Metrics sync disabled by configuration');
|
|
44
|
-
}
|
|
45
|
-
logger.debug('[SSOMetricsSyncPlugin] Initializing metrics sync');
|
|
46
|
-
// Check if dry-run mode is enabled
|
|
47
|
-
const dryRun = this.isDryRunEnabled(context);
|
|
48
|
-
return new SSOMetricsSyncInterceptor(context.config.sessionId, context.config.targetApiUrl, context.credentials.cookies, context.config.clientType, context.config.version, dryRun);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Check if metrics sync is enabled
|
|
52
|
-
* Priority: ENV > Profile config > Default (true)
|
|
53
|
-
*/
|
|
54
|
-
isSyncEnabled(context) {
|
|
55
|
-
// Check environment variable first
|
|
56
|
-
const envEnabled = process.env.CODEMIE_METRICS_SYNC_ENABLED;
|
|
57
|
-
if (envEnabled !== undefined) {
|
|
58
|
-
return envEnabled === 'true' || envEnabled === '1';
|
|
59
|
-
}
|
|
60
|
-
// Check profile config (if available)
|
|
61
|
-
if (context.profileConfig?.metrics?.sync?.enabled !== undefined) {
|
|
62
|
-
return context.profileConfig.metrics.sync.enabled;
|
|
63
|
-
}
|
|
64
|
-
// Default to enabled for SSO mode
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Check if dry-run mode is enabled
|
|
69
|
-
* Priority: ENV > Profile config > Default (false)
|
|
70
|
-
*/
|
|
71
|
-
isDryRunEnabled(context) {
|
|
72
|
-
// Check environment variable first
|
|
73
|
-
const envDryRun = process.env.CODEMIE_METRICS_DRY_RUN;
|
|
74
|
-
if (envDryRun !== undefined) {
|
|
75
|
-
return envDryRun === 'true' || envDryRun === '1';
|
|
76
|
-
}
|
|
77
|
-
// Check profile config (if available)
|
|
78
|
-
if (context.profileConfig?.metrics?.sync?.dryRun !== undefined) {
|
|
79
|
-
return context.profileConfig.metrics.sync.dryRun;
|
|
80
|
-
}
|
|
81
|
-
// Default to disabled
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
class SSOMetricsSyncInterceptor {
|
|
86
|
-
sessionId;
|
|
87
|
-
name = 'sso-metrics-sync';
|
|
88
|
-
syncTimer;
|
|
14
|
+
import { logger } from '../../../../../../utils/logger.js';
|
|
15
|
+
import { MetricsSender } from './metrics-api-client.js';
|
|
16
|
+
import { aggregateDeltas } from './metrics-aggregator.js';
|
|
17
|
+
import { SessionStore } from '../../../../../../agents/core/session/SessionStore.js';
|
|
18
|
+
import { getSessionMetricsPath } from '../../../../../../agents/core/session/session-config.js';
|
|
19
|
+
import { readJSONL } from '../../utils/jsonl-reader.js';
|
|
20
|
+
import { writeJSONLAtomic } from '../../utils/jsonl-writer.js';
|
|
21
|
+
export class MetricsSyncProcessor {
|
|
22
|
+
name = 'metrics-sync';
|
|
23
|
+
priority = 2; // Run after metrics transformation (priority 1)
|
|
89
24
|
sessionStore = new SessionStore();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
dryRun;
|
|
95
|
-
constructor(sessionId, baseUrl, cookies, clientType, version, dryRun = false) {
|
|
96
|
-
this.sessionId = sessionId;
|
|
97
|
-
// Get version from proxy config (passed from AgentCLI)
|
|
98
|
-
this.version = version || '0.0.0';
|
|
99
|
-
// Set dry-run mode (passed from plugin)
|
|
100
|
-
this.dryRun = dryRun;
|
|
101
|
-
if (this.dryRun) {
|
|
102
|
-
logger.info('[sso-metrics-sync] Dry-run mode enabled - metrics will be logged but not sent');
|
|
103
|
-
}
|
|
104
|
-
// Build cookie header
|
|
105
|
-
const cookieHeader = Object.entries(cookies)
|
|
106
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
107
|
-
.join('; ');
|
|
108
|
-
this.metricsSender = new MetricsSender({
|
|
109
|
-
baseUrl,
|
|
110
|
-
cookies: cookieHeader,
|
|
111
|
-
timeout: 30000,
|
|
112
|
-
retryAttempts: 3,
|
|
113
|
-
version: this.version,
|
|
114
|
-
clientType: clientType || 'codemie-cli',
|
|
115
|
-
dryRun: this.dryRun
|
|
116
|
-
});
|
|
117
|
-
// Get sync interval from env or default to 5 minutes
|
|
118
|
-
this.syncInterval = Number.parseInt(process.env.CODEMIE_METRICS_SYNC_INTERVAL || '300000', 10);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Called when proxy starts - initialize background timer
|
|
122
|
-
*/
|
|
123
|
-
async onProxyStart() {
|
|
124
|
-
const intervalMinutes = Math.round(this.syncInterval / 60000);
|
|
125
|
-
logger.info(`[${this.name}] Metrics collection enabled - syncing every ${intervalMinutes} minute${intervalMinutes !== 1 ? 's' : ''}`);
|
|
126
|
-
// Start background timer
|
|
127
|
-
this.syncTimer = setInterval(() => {
|
|
128
|
-
this.syncMetrics().catch(error => {
|
|
129
|
-
logger.error(`[${this.name}] Sync failed:`, error);
|
|
130
|
-
});
|
|
131
|
-
}, this.syncInterval);
|
|
132
|
-
logger.debug(`[${this.name}] Background timer started`);
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Called when proxy stops - cleanup and final sync
|
|
136
|
-
*/
|
|
137
|
-
async onProxyStop() {
|
|
138
|
-
logger.debug(`[${this.name}] Stopping metrics sync`);
|
|
139
|
-
// Stop timer
|
|
140
|
-
if (this.syncTimer) {
|
|
141
|
-
clearInterval(this.syncTimer);
|
|
142
|
-
this.syncTimer = undefined;
|
|
143
|
-
}
|
|
144
|
-
// Final sync (ensure all pending metrics are sent)
|
|
145
|
-
try {
|
|
146
|
-
await this.syncMetrics();
|
|
147
|
-
logger.info(`[${this.name}] Session metrics saved`);
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
logger.error(`[${this.name}] Final sync failed:`, error);
|
|
151
|
-
}
|
|
25
|
+
isSyncing = false; // Concurrency guard
|
|
26
|
+
shouldProcess(_session) {
|
|
27
|
+
// Always try to process - will check for pending deltas inside
|
|
28
|
+
return true;
|
|
152
29
|
}
|
|
153
|
-
|
|
154
|
-
* Sync metrics to API
|
|
155
|
-
*/
|
|
156
|
-
async syncMetrics() {
|
|
30
|
+
async process(session, context) {
|
|
157
31
|
// Skip if already syncing (prevent concurrent syncs)
|
|
158
32
|
if (this.isSyncing) {
|
|
159
33
|
logger.debug(`[${this.name}] Sync already in progress, skipping`);
|
|
160
|
-
return;
|
|
34
|
+
return { success: true, message: 'Sync in progress' };
|
|
161
35
|
}
|
|
162
36
|
this.isSyncing = true;
|
|
163
37
|
try {
|
|
164
|
-
const metricsFile = getSessionMetricsPath(
|
|
38
|
+
const metricsFile = getSessionMetricsPath(session.sessionId);
|
|
165
39
|
// 1. Read all deltas from JSONL
|
|
166
40
|
const allDeltas = await readJSONL(metricsFile);
|
|
167
41
|
// 2. Filter for pending deltas only
|
|
168
42
|
const pendingDeltas = allDeltas.filter(d => d.syncStatus === 'pending');
|
|
169
43
|
if (pendingDeltas.length === 0) {
|
|
170
|
-
logger.debug(`[${this.name}] No pending deltas to sync`);
|
|
171
|
-
return;
|
|
44
|
+
logger.debug(`[${this.name}] No pending deltas to sync for session ${session.sessionId}`);
|
|
45
|
+
return { success: true, message: 'No pending deltas' };
|
|
172
46
|
}
|
|
173
47
|
logger.info(`[${this.name}] Syncing usage data (${pendingDeltas.length} interaction${pendingDeltas.length !== 1 ? 's' : ''})`);
|
|
174
48
|
// Debug: Log collected deltas
|
|
@@ -215,16 +89,16 @@ class SSOMetricsSyncInterceptor {
|
|
|
215
89
|
})
|
|
216
90
|
});
|
|
217
91
|
// 3. Load session metadata
|
|
218
|
-
const
|
|
219
|
-
if (!
|
|
220
|
-
logger.error(`[${this.name}] Session not found: ${
|
|
221
|
-
return;
|
|
92
|
+
const sessionMetadata = await this.sessionStore.loadSession(session.sessionId);
|
|
93
|
+
if (!sessionMetadata) {
|
|
94
|
+
logger.error(`[${this.name}] Session not found: ${session.sessionId}`);
|
|
95
|
+
return { success: false, message: 'Session metadata not found' };
|
|
222
96
|
}
|
|
223
97
|
// 4. Get agent metrics config for post-processing (lazy-load to avoid circular dependency)
|
|
224
98
|
let agentConfig;
|
|
225
99
|
try {
|
|
226
|
-
const { AgentRegistry } = await import('
|
|
227
|
-
const agent = AgentRegistry.getAgent(
|
|
100
|
+
const { AgentRegistry } = await import('../../../../../../agents/registry.js');
|
|
101
|
+
const agent = AgentRegistry.getAgent(sessionMetadata.agentName);
|
|
228
102
|
agentConfig = agent?.getMetricsConfig();
|
|
229
103
|
}
|
|
230
104
|
catch (error) {
|
|
@@ -232,7 +106,7 @@ class SSOMetricsSyncInterceptor {
|
|
|
232
106
|
agentConfig = undefined;
|
|
233
107
|
}
|
|
234
108
|
// 5. Aggregate pending deltas into metrics grouped by branch
|
|
235
|
-
const metrics = aggregateDeltas(pendingDeltas,
|
|
109
|
+
const metrics = aggregateDeltas(pendingDeltas, sessionMetadata, context.version, agentConfig);
|
|
236
110
|
logger.info(`[${this.name}] Aggregated ${metrics.length} branch-specific metrics from ${pendingDeltas.length} deltas`);
|
|
237
111
|
// Debug: Log aggregated metrics
|
|
238
112
|
for (const metric of metrics) {
|
|
@@ -269,9 +143,20 @@ class SSOMetricsSyncInterceptor {
|
|
|
269
143
|
}
|
|
270
144
|
});
|
|
271
145
|
}
|
|
272
|
-
//
|
|
146
|
+
// 6. Initialize metrics sender
|
|
147
|
+
const metricsSender = new MetricsSender({
|
|
148
|
+
baseUrl: context.apiBaseUrl,
|
|
149
|
+
cookies: context.cookies,
|
|
150
|
+
apiKey: context.apiKey,
|
|
151
|
+
timeout: 30000,
|
|
152
|
+
retryAttempts: 3,
|
|
153
|
+
version: context.version,
|
|
154
|
+
clientType: context.clientType || 'codemie-cli',
|
|
155
|
+
dryRun: context.dryRun
|
|
156
|
+
});
|
|
157
|
+
// 7. Send each branch metric to API (dry-run handled by MetricsSender)
|
|
273
158
|
for (const metric of metrics) {
|
|
274
|
-
const response = await
|
|
159
|
+
const response = await metricsSender.sendSessionMetric(metric);
|
|
275
160
|
if (!response.success) {
|
|
276
161
|
logger.error(`[${this.name}] Sync failed for branch "${metric.attributes.branch}": ${response.message}`);
|
|
277
162
|
// Continue with other branches even if one fails
|
|
@@ -279,7 +164,7 @@ class SSOMetricsSyncInterceptor {
|
|
|
279
164
|
}
|
|
280
165
|
logger.info(`[${this.name}] Successfully synced metric for branch "${metric.attributes.branch}"`);
|
|
281
166
|
}
|
|
282
|
-
//
|
|
167
|
+
// 8. Mark deltas as synced in JSONL (atomic rewrite)
|
|
283
168
|
const syncedAt = Date.now();
|
|
284
169
|
const pendingRecordIds = new Set(pendingDeltas.map(d => d.recordId));
|
|
285
170
|
const updatedDeltas = allDeltas.map(d => pendingRecordIds.has(d.recordId)
|
|
@@ -291,6 +176,39 @@ class SSOMetricsSyncInterceptor {
|
|
|
291
176
|
}
|
|
292
177
|
: d);
|
|
293
178
|
await writeJSONLAtomic(metricsFile, updatedDeltas);
|
|
179
|
+
// 9. Update session metadata to reflect sync state
|
|
180
|
+
try {
|
|
181
|
+
const currentSession = await this.sessionStore.loadSession(session.sessionId);
|
|
182
|
+
if (currentSession) {
|
|
183
|
+
// Ensure sync structure exists
|
|
184
|
+
currentSession.sync ??= {};
|
|
185
|
+
// Initialize metrics sync state if not present
|
|
186
|
+
currentSession.sync.metrics ??= {
|
|
187
|
+
lastProcessedTimestamp: 0,
|
|
188
|
+
processedRecordIds: [],
|
|
189
|
+
attachedUserPromptTexts: [],
|
|
190
|
+
totalDeltas: 0,
|
|
191
|
+
totalSynced: 0,
|
|
192
|
+
totalFailed: 0
|
|
193
|
+
};
|
|
194
|
+
// Add newly synced record IDs to processed records
|
|
195
|
+
const existingRecordIds = new Set(currentSession.sync.metrics.processedRecordIds);
|
|
196
|
+
for (const recordId of pendingRecordIds) {
|
|
197
|
+
existingRecordIds.add(recordId);
|
|
198
|
+
}
|
|
199
|
+
currentSession.sync.metrics.processedRecordIds = Array.from(existingRecordIds);
|
|
200
|
+
// Update sync counters
|
|
201
|
+
currentSession.sync.metrics.totalSynced = currentSession.sync.metrics.totalSynced + pendingDeltas.length;
|
|
202
|
+
// Ensure totalDeltas reflects actual file state
|
|
203
|
+
currentSession.sync.metrics.totalDeltas = updatedDeltas.length;
|
|
204
|
+
await this.sessionStore.saveSession(currentSession);
|
|
205
|
+
logger.debug(`[${this.name}] Updated session metadata: totalSynced=${currentSession.sync.metrics.totalSynced}, totalDeltas=${currentSession.sync.metrics.totalDeltas}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
// Non-critical - log but don't fail the sync
|
|
210
|
+
logger.warn(`[${this.name}] Failed to update session metadata:`, error);
|
|
211
|
+
}
|
|
294
212
|
logger.info(`[${this.name}] Successfully synced ${pendingDeltas.length} deltas across ${metrics.length} branches`);
|
|
295
213
|
// Debug: Log which deltas were marked as synced
|
|
296
214
|
logger.debug(`[${this.name}] Marked deltas as synced:`, {
|
|
@@ -300,14 +218,25 @@ class SSOMetricsSyncInterceptor {
|
|
|
300
218
|
syncedCount: updatedDeltas.filter(d => d.syncStatus === 'synced').length,
|
|
301
219
|
pendingCount: updatedDeltas.filter(d => d.syncStatus === 'pending').length
|
|
302
220
|
});
|
|
221
|
+
return {
|
|
222
|
+
success: true,
|
|
223
|
+
message: `Synced ${pendingDeltas.length} deltas across ${metrics.length} branches`,
|
|
224
|
+
metadata: {
|
|
225
|
+
deltasProcessed: pendingDeltas.length,
|
|
226
|
+
branchCount: metrics.length
|
|
227
|
+
}
|
|
228
|
+
};
|
|
303
229
|
}
|
|
304
230
|
catch (error) {
|
|
305
231
|
logger.error(`[${this.name}] Sync failed:`, error);
|
|
306
|
-
|
|
232
|
+
return {
|
|
233
|
+
success: false,
|
|
234
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
235
|
+
};
|
|
307
236
|
}
|
|
308
237
|
finally {
|
|
309
238
|
this.isSyncing = false;
|
|
310
239
|
}
|
|
311
240
|
}
|
|
312
241
|
}
|
|
313
|
-
//# sourceMappingURL=
|
|
242
|
+
//# sourceMappingURL=metrics-sync-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-sync-processor.js","sourceRoot":"","sources":["../../../../../../../src/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uDAAuD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,cAAc,CAAC;IACtB,QAAQ,GAAG,CAAC,CAAC,CAAC,gDAAgD;IAE/D,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,SAAS,GAAG,KAAK,CAAC,CAAC,oBAAoB;IAE/C,aAAa,CAAC,QAAuB;QACnC,+DAA+D;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB,EAAE,OAA0B;QAC9D,qDAAqD;QACrD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE7D,gCAAgC;YAChC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAc,WAAW,CAAC,CAAC;YAE5D,oCAAoC;YACpC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;YAExE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,2CAA2C,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;YACzD,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,yBAAyB,aAAa,CAAC,MAAM,eAAe,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAE/H,8BAA8B;YAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,6BAA6B,EAAE;gBACvD,KAAK,EAAE,aAAa,CAAC,MAAM;gBAC3B,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC5B,iDAAiD;oBACjD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;oBACvG,IAAI,YAAY,GAAG,CAAC,CAAC;oBACrB,IAAI,YAAY,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;wBACjB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;4BACjD,YAAY,IAAK,MAA+C,CAAC,OAAO,IAAI,CAAC,CAAC;4BAC9E,YAAY,IAAK,MAA+C,CAAC,OAAO,IAAI,CAAC,CAAC;wBAChF,CAAC;oBACH,CAAC;oBAED,kCAAkC;oBAClC,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;oBACvC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9E,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;oBAClE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;oBAChE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;oBAEpE,OAAO;wBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;4BACxC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;4BACrC,CAAC,CAAC,CAAC,CAAC,SAAS;wBACf,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,KAAK,EAAE;4BACL,KAAK,EAAE,UAAU;4BACjB,OAAO,EAAE,YAAY;4BACrB,OAAO,EAAE,YAAY;4BACrB,SAAS,EAAE,CAAC,CAAC,KAAK;yBACnB;wBACD,cAAc,EAAE;4BACd,OAAO,EAAE,QAAQ;4BACjB,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,SAAS;4BAClB,UAAU;4BACV,YAAY;yBACb;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,2BAA2B;YAC3B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,wBAAwB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;YACnE,CAAC;YAED,2FAA2F;YAC3F,IAAI,WAAW,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;gBAC7E,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAChE,WAAW,GAAG,KAAK,EAAE,gBAAgB,EAAE,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,mCAAmC,KAAK,EAAE,CAAC,CAAC;gBACtE,WAAW,GAAG,SAAS,CAAC;YAC1B,CAAC;YAED,6DAA6D;YAC7D,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAE9F,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,gBAAgB,OAAO,CAAC,MAAM,iCAAiC,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC;YAEvH,gCAAgC;YAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,mCAAmC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE;oBACzF,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,UAAU,EAAE;wBACV,WAAW;wBACX,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;wBAC9B,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;wBAC9C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;wBACtC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;wBACxC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;wBACxC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;wBAEhC,qBAAqB;wBACrB,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,kBAAkB;wBAExD,eAAe;wBACf,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,kBAAkB;wBACxD,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,mBAAmB;wBAC1D,6BAA6B,EAAE,MAAM,CAAC,UAAU,CAAC,6BAA6B;wBAC9E,2BAA2B,EAAE,MAAM,CAAC,UAAU,CAAC,2BAA2B;wBAE1E,cAAc;wBACd,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB;wBACpD,qBAAqB,EAAE,MAAM,CAAC,UAAU,CAAC,qBAAqB;wBAC9D,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB;wBAEtD,wBAAwB;wBACxB,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;wBAC9C,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc;wBAChD,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;wBAC9C,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB;wBACtD,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,mBAAmB;wBAE1D,eAAe;wBACf,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,mBAAmB;wBAC1D,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;qBAC/B;iBACF,CAAC,CAAC;YACL,CAAC;YAED,+BAA+B;YAC/B,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;gBACtC,OAAO,EAAE,OAAO,CAAC,UAAU;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,CAAC;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,aAAa;gBAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,uEAAuE;YACvE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAE/D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,6BAA6B,MAAM,CAAC,UAAU,CAAC,MAAM,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzG,iDAAiD;oBACjD,SAAS;gBACX,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,4CAA4C,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACpG,CAAC;YAED,qDAAqD;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAErE,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC9B,CAAC,CAAC;oBACE,GAAG,CAAC;oBACJ,UAAU,EAAE,QAAiB;oBAC7B,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC;oBAChC,QAAQ;iBACT;gBACH,CAAC,CAAC,CAAC,CACN,CAAC;YAEF,MAAM,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAEnD,mDAAmD;YACnD,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC9E,IAAI,cAAc,EAAE,CAAC;oBACnB,+BAA+B;oBAC7B,cAAc,CAAC,IAAI,KAAK,EAAE,CAAC;oBAE7B,+CAA+C;oBAC7C,cAAc,CAAC,IAAI,CAAC,OAAO,KAAK;wBAC5B,sBAAsB,EAAE,CAAC;wBACzB,kBAAkB,EAAE,EAAE;wBACtB,uBAAuB,EAAE,EAAE;wBAC3B,WAAW,EAAE,CAAC;wBACd,WAAW,EAAE,CAAC;wBACd,WAAW,EAAE,CAAC;qBACjB,CAAC;oBAEJ,mDAAmD;oBACnD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBAClF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;wBACxC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC;oBACD,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAE/E,uBAAuB;oBACvB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;oBAEzG,gDAAgD;oBAChD,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;oBAE/D,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBAEpD,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,2CAA2C,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,iBAAiB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC1K,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,6CAA6C;gBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,IAAI,yBAAyB,aAAa,CAAC,MAAM,kBAAkB,OAAO,CAAC,MAAM,WAAW,CACtG,CAAC;YAEF,gDAAgD;YAChD,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,4BAA4B,EAAE;gBACtD,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;gBAC1C,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACvC,iBAAiB,EAAE,aAAa,CAAC,MAAM;gBACvC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,MAAM;gBACxE,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM;aAC3E,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,UAAU,aAAa,CAAC,MAAM,kBAAkB,OAAO,CAAC,MAAM,WAAW;gBAClF,QAAQ,EAAE;oBACR,eAAe,EAAE,aAAa,CAAC,MAAM;oBACrC,WAAW,EAAE,OAAO,CAAC,MAAM;iBAC5B;aACF,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,CAAC;QAEJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -69,10 +69,11 @@ export interface MetricsApiError {
|
|
|
69
69
|
export interface MetricsApiConfig {
|
|
70
70
|
baseUrl: string;
|
|
71
71
|
cookies?: string;
|
|
72
|
+
apiKey?: string;
|
|
72
73
|
timeout?: number;
|
|
73
74
|
retryAttempts?: number;
|
|
74
75
|
retryDelays?: number[];
|
|
75
76
|
version?: string;
|
|
76
77
|
clientType?: string;
|
|
77
78
|
}
|
|
78
|
-
//# sourceMappingURL=
|
|
79
|
+
//# sourceMappingURL=metrics-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-types.d.ts","sourceRoot":"","sources":["../../../../../../../src/providers/plugins/sso/session/processors/metrics/metrics-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6BAA6B,EAAE,MAAM,CAAC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IAGpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-types.js","sourceRoot":"","sources":["../../../../../../../src/providers/plugins/sso/session/processors/metrics/metrics-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSONL Reader Utility
|
|
3
|
+
*
|
|
4
|
+
* Generic JSONL file reading with type safety.
|
|
5
|
+
* Shared by all session processors and adapters.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Read all records from JSONL file.
|
|
9
|
+
*
|
|
10
|
+
* @param filePath - Absolute path to JSONL file
|
|
11
|
+
* @returns Array of parsed records (empty if file doesn't exist)
|
|
12
|
+
* @throws Error if file exists but cannot be read/parsed
|
|
13
|
+
*/
|
|
14
|
+
export declare function readJSONL<T>(filePath: string): Promise<T[]>;
|
|
15
|
+
//# sourceMappingURL=jsonl-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-reader.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/session/utils/jsonl-reader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBjE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSONL Reader Utility
|
|
3
|
+
*
|
|
4
|
+
* Generic JSONL file reading with type safety.
|
|
5
|
+
* Shared by all session processors and adapters.
|
|
6
|
+
*/
|
|
7
|
+
import { readFile } from 'fs/promises';
|
|
8
|
+
import { existsSync } from 'fs';
|
|
9
|
+
import { logger } from '../../../../../utils/logger.js';
|
|
10
|
+
/**
|
|
11
|
+
* Read all records from JSONL file.
|
|
12
|
+
*
|
|
13
|
+
* @param filePath - Absolute path to JSONL file
|
|
14
|
+
* @returns Array of parsed records (empty if file doesn't exist)
|
|
15
|
+
* @throws Error if file exists but cannot be read/parsed
|
|
16
|
+
*/
|
|
17
|
+
export async function readJSONL(filePath) {
|
|
18
|
+
try {
|
|
19
|
+
if (!existsSync(filePath)) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
const content = await readFile(filePath, 'utf8');
|
|
23
|
+
return content
|
|
24
|
+
.split('\n')
|
|
25
|
+
.filter(line => line.trim())
|
|
26
|
+
.map(line => JSON.parse(line));
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
logger.error('[jsonl-reader] Failed to read JSONL:', error);
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=jsonl-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-reader.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/session/utils/jsonl-reader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,QAAgB;IACjD,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,CAAM,CAAC,CAAC;IAExC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSONL Atomic Write Utility
|
|
3
|
+
*
|
|
4
|
+
* Generic JSONL file writing with atomic guarantees.
|
|
5
|
+
* Shared by all session processors and adapters.
|
|
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
|
+
/**
|
|
14
|
+
* Atomically write records to JSONL file.
|
|
15
|
+
*
|
|
16
|
+
* Process:
|
|
17
|
+
* 1. Write to temporary file
|
|
18
|
+
* 2. Fsync to ensure data is on disk
|
|
19
|
+
* 3. Atomic rename to target file
|
|
20
|
+
* 4. Cleanup temp file on error
|
|
21
|
+
*
|
|
22
|
+
* @param filePath - Absolute path to target JSONL file
|
|
23
|
+
* @param records - Array of records to write
|
|
24
|
+
*/
|
|
25
|
+
export declare function writeJSONLAtomic<T>(filePath: string, records: T[]): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=jsonl-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-writer.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/session/utils/jsonl-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* JSONL Atomic Write Utility
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Generic JSONL file writing with atomic guarantees.
|
|
5
|
+
* Shared by all session processors and adapters.
|
|
6
6
|
*
|
|
7
7
|
* Safety guarantees:
|
|
8
8
|
* - Atomic rename ensures no partial writes
|
|
@@ -10,42 +10,26 @@
|
|
|
10
10
|
* - Temp file cleanup on error
|
|
11
11
|
* - No data loss on crash/power failure
|
|
12
12
|
*/
|
|
13
|
-
import { writeFile, rename, unlink,
|
|
13
|
+
import { writeFile, rename, unlink, open } from 'fs/promises';
|
|
14
14
|
import { existsSync } from 'fs';
|
|
15
15
|
import { logger } from '../../../../../utils/logger.js';
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
export async function readJSONL(filePath) {
|
|
20
|
-
try {
|
|
21
|
-
if (!existsSync(filePath)) {
|
|
22
|
-
return [];
|
|
23
|
-
}
|
|
24
|
-
const content = await readFile(filePath, 'utf8');
|
|
25
|
-
return content
|
|
26
|
-
.split('\n')
|
|
27
|
-
.filter(line => line.trim())
|
|
28
|
-
.map(line => JSON.parse(line));
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
logger.error('[jsonl-writer] Failed to read JSONL:', error);
|
|
32
|
-
throw error;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Atomically write deltas to JSONL file
|
|
17
|
+
* Atomically write records to JSONL file.
|
|
37
18
|
*
|
|
38
19
|
* Process:
|
|
39
20
|
* 1. Write to temporary file
|
|
40
21
|
* 2. Fsync to ensure data is on disk
|
|
41
22
|
* 3. Atomic rename to target file
|
|
42
23
|
* 4. Cleanup temp file on error
|
|
24
|
+
*
|
|
25
|
+
* @param filePath - Absolute path to target JSONL file
|
|
26
|
+
* @param records - Array of records to write
|
|
43
27
|
*/
|
|
44
|
-
export async function writeJSONLAtomic(filePath,
|
|
28
|
+
export async function writeJSONLAtomic(filePath, records) {
|
|
45
29
|
const tempPath = `${filePath}.tmp`;
|
|
46
30
|
try {
|
|
47
31
|
// 1. Write to temporary file
|
|
48
|
-
const lines =
|
|
32
|
+
const lines = records.map(r => JSON.stringify(r)).join('\n') + '\n';
|
|
49
33
|
await writeFile(tempPath, lines, 'utf8');
|
|
50
34
|
// 2. Fsync to ensure data is on disk
|
|
51
35
|
const fd = await open(tempPath, 'r+');
|
|
@@ -53,7 +37,7 @@ export async function writeJSONLAtomic(filePath, deltas) {
|
|
|
53
37
|
await fd.close();
|
|
54
38
|
// 3. Atomic rename (overwrites target)
|
|
55
39
|
await rename(tempPath, filePath);
|
|
56
|
-
logger.debug(`[jsonl-writer] Atomically wrote ${
|
|
40
|
+
logger.debug(`[jsonl-writer] Atomically wrote ${records.length} records to ${filePath}`);
|
|
57
41
|
}
|
|
58
42
|
catch (error) {
|
|
59
43
|
// Cleanup temp file on error
|
|
@@ -69,4 +53,4 @@ export async function writeJSONLAtomic(filePath, deltas) {
|
|
|
69
53
|
throw error;
|
|
70
54
|
}
|
|
71
55
|
}
|
|
72
|
-
//# sourceMappingURL=
|
|
56
|
+
//# sourceMappingURL=jsonl-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-writer.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/session/utils/jsonl-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAY;IAEZ,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;IAEnC,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpE,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,OAAO,CAAC,MAAM,eAAe,QAAQ,EAAE,CAAC,CAAC;IAE3F,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso.template.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sso.template.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,eAAO,MAAM,WAAW,kBA+HtB,CAAC"}
|