@codemieai/code 0.0.28 → 0.0.30
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 +792 -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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Plugin Installer
|
|
3
|
+
*
|
|
4
|
+
* Handles automatic installation of Claude plugin to user's home directory
|
|
5
|
+
* for SSO provider integration.
|
|
6
|
+
*
|
|
7
|
+
* Extends BaseExtensionInstaller to provide Claude-specific paths.
|
|
8
|
+
* All installation logic is inherited from the base class.
|
|
9
|
+
*
|
|
10
|
+
* @module agents/plugins/claude/plugin-installer
|
|
11
|
+
*/
|
|
12
|
+
import { join, dirname } from 'path';
|
|
13
|
+
import { fileURLToPath } from 'url';
|
|
14
|
+
import { homedir } from 'os';
|
|
15
|
+
import { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
|
|
16
|
+
/**
|
|
17
|
+
* Claude Plugin Installer
|
|
18
|
+
*
|
|
19
|
+
* Installs CodeMie plugin for Claude Code to enable session tracking,
|
|
20
|
+
* metrics collection, and conversation sync.
|
|
21
|
+
*
|
|
22
|
+
* Reduces from 260 lines to ~40 lines by extending BaseExtensionInstaller.
|
|
23
|
+
*/
|
|
24
|
+
export class ClaudePluginInstaller extends BaseExtensionInstaller {
|
|
25
|
+
/**
|
|
26
|
+
* Constructor
|
|
27
|
+
* @param metadata - Agent metadata containing name, displayName, etc.
|
|
28
|
+
*/
|
|
29
|
+
constructor(metadata) {
|
|
30
|
+
super(metadata.name); // Pass agent name to parent
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the source plugin directory path
|
|
34
|
+
* Works in both development and npm package contexts
|
|
35
|
+
*/
|
|
36
|
+
getSourcePath() {
|
|
37
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
38
|
+
const claudePluginDir = dirname(currentFile);
|
|
39
|
+
return join(claudePluginDir, 'plugin');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the target installation directory
|
|
43
|
+
* @returns ~/.codemie/claude-plugin
|
|
44
|
+
*/
|
|
45
|
+
getTargetPath() {
|
|
46
|
+
return join(homedir(), '.codemie', 'claude-plugin');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get the manifest file path (relative to base directory)
|
|
50
|
+
* @returns .claude-plugin/plugin.json
|
|
51
|
+
*/
|
|
52
|
+
getManifestPath() {
|
|
53
|
+
return '.claude-plugin/plugin.json';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get list of critical files that must exist after installation
|
|
57
|
+
* @returns Array of relative file paths
|
|
58
|
+
*/
|
|
59
|
+
getCriticalFiles() {
|
|
60
|
+
return ['.claude-plugin/plugin.json', 'hooks/hooks.json', 'README.md'];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=claude.plugin-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.plugin-installer.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAQxF;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,sBAAsB;IAC/D;;;OAGG;IACH,YAAY,QAAuB;QACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;IACpD,CAAC;IAED;;;OAGG;IACO,aAAa;QACrB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACO,eAAe;QACvB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACxB,OAAO,CAAC,4BAA4B,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AgentMetadata } from '../../core/types.js';
|
|
2
|
+
import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
|
|
3
|
+
import type { SessionAdapter } from '../../core/session/BaseSessionAdapter.js';
|
|
4
|
+
import type { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
|
|
5
|
+
/**
|
|
6
|
+
* Claude Code Plugin Metadata
|
|
7
|
+
*/
|
|
8
|
+
export declare const ClaudePluginMetadata: AgentMetadata;
|
|
9
|
+
/**
|
|
10
|
+
* Claude Code Adapter
|
|
11
|
+
*/
|
|
12
|
+
export declare class ClaudePlugin extends BaseAgentAdapter {
|
|
13
|
+
private sessionAdapter;
|
|
14
|
+
private extensionInstaller;
|
|
15
|
+
constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Get session adapter for this agent (used by unified session sync)
|
|
18
|
+
*/
|
|
19
|
+
getSessionAdapter(): SessionAdapter;
|
|
20
|
+
/**
|
|
21
|
+
* Get extension installer for this agent
|
|
22
|
+
* Returns installer to handle plugin installation
|
|
23
|
+
*/
|
|
24
|
+
getExtensionInstaller(): BaseExtensionInstaller;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=claude.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA0DlC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAyB;;IAUnD;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;;OAGG;IACH,qBAAqB,IAAI,sBAAsB;CAGhD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BaseAgentAdapter } from '
|
|
2
|
-
import {
|
|
1
|
+
import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
|
|
2
|
+
import { ClaudeSessionAdapter } from './claude.session.js';
|
|
3
|
+
import { ClaudePluginInstaller } from './claude.plugin-installer.js';
|
|
3
4
|
/**
|
|
4
5
|
* Claude Code Plugin Metadata
|
|
5
6
|
*/
|
|
@@ -11,9 +12,7 @@ export const ClaudePluginMetadata = {
|
|
|
11
12
|
cliCommand: 'claude',
|
|
12
13
|
// Data paths (used by lifecycle hooks and analytics)
|
|
13
14
|
dataPaths: {
|
|
14
|
-
home: '.claude'
|
|
15
|
-
sessions: 'projects',
|
|
16
|
-
user_prompts: 'history.jsonl' // User prompt history
|
|
15
|
+
home: '.claude'
|
|
17
16
|
},
|
|
18
17
|
envMapping: {
|
|
19
18
|
baseUrl: ['ANTHROPIC_BASE_URL'],
|
|
@@ -58,17 +57,27 @@ export const ClaudePluginMetadata = {
|
|
|
58
57
|
* Claude Code Adapter
|
|
59
58
|
*/
|
|
60
59
|
export class ClaudePlugin extends BaseAgentAdapter {
|
|
61
|
-
|
|
60
|
+
sessionAdapter;
|
|
61
|
+
extensionInstaller;
|
|
62
62
|
constructor() {
|
|
63
63
|
super(ClaudePluginMetadata);
|
|
64
|
-
//
|
|
65
|
-
this.
|
|
64
|
+
// Initialize session adapter with metadata for unified session sync
|
|
65
|
+
this.sessionAdapter = new ClaudeSessionAdapter(ClaudePluginMetadata);
|
|
66
|
+
// Initialize extension installer with metadata (agent name from metadata)
|
|
67
|
+
this.extensionInstaller = new ClaudePluginInstaller(ClaudePluginMetadata);
|
|
66
68
|
}
|
|
67
69
|
/**
|
|
68
|
-
* Get
|
|
70
|
+
* Get session adapter for this agent (used by unified session sync)
|
|
69
71
|
*/
|
|
70
|
-
|
|
71
|
-
return this.
|
|
72
|
+
getSessionAdapter() {
|
|
73
|
+
return this.sessionAdapter;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get extension installer for this agent
|
|
77
|
+
* Returns installer to handle plugin installation
|
|
78
|
+
*/
|
|
79
|
+
getExtensionInstaller() {
|
|
80
|
+
return this.extensionInstaller;
|
|
72
81
|
}
|
|
73
82
|
}
|
|
74
83
|
//# sourceMappingURL=claude.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.plugin.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,2CAA2C;IAExD,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,QAAQ;IAEpB,qDAAqD;IACrD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;KAChB;IAED,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,MAAM,EAAE,CAAC,sBAAsB,CAAC;QAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;KAC3B;IAED,kBAAkB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC;IACxD,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,SAAS,CAAC;IAEpE,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,gBAAgB;KAC7B;IAED,YAAY,EAAE;QACZ,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;SACb;KACF;IAED,mEAAmE;IACnE,aAAa,EAAE;QACb,sBAAsB,EAAE,CAAC,MAAM,CAAC;KACjC;IAED,SAAS,EAAE;QACT,sDAAsD;QACtD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,gDAAgD;YAChD,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,CAAC;gBAChD,GAAG,CAAC,sCAAsC,GAAG,GAAG,CAAC;YACnD,CAAC;YAED,4EAA4E;YAC5E,yEAAyE;YACzE,2CAA2C;YAC3C,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;gBACtC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;YACzC,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IACxC,cAAc,CAAiB;IAC/B,kBAAkB,CAAyB;IAEnD;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,oEAAoE;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QACrE,0EAA0E;QAC1E,IAAI,CAAC,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Session Adapter
|
|
3
|
+
*
|
|
4
|
+
* Parses Claude Code session files from ~/.claude/projects/
|
|
5
|
+
* Extracts metrics and preserves messages for processors.
|
|
6
|
+
*/
|
|
7
|
+
import type { SessionAdapter, ParsedSession, AggregatedResult } from '../../core/session/BaseSessionAdapter.js';
|
|
8
|
+
import type { SessionProcessor, ProcessingContext } from '../../core/session/BaseProcessor.js';
|
|
9
|
+
import type { AgentMetadata } from '../../core/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Claude session adapter implementation.
|
|
12
|
+
* Parses Claude-specific JSONL format into unified ParsedSession.
|
|
13
|
+
* Orchestrates multiple processors that transform messages.
|
|
14
|
+
*
|
|
15
|
+
* ENCAPSULATION: Processors are managed internally, not exposed to plugin.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ClaudeSessionAdapter implements SessionAdapter {
|
|
18
|
+
private readonly metadata;
|
|
19
|
+
readonly agentName = "claude";
|
|
20
|
+
private processors;
|
|
21
|
+
constructor(metadata: AgentMetadata);
|
|
22
|
+
/**
|
|
23
|
+
* Initialize processors for this adapter.
|
|
24
|
+
* INTERNAL: Processors are an implementation detail of the adapter.
|
|
25
|
+
*/
|
|
26
|
+
private initializeProcessors;
|
|
27
|
+
/**
|
|
28
|
+
* Parse Claude session file to unified format.
|
|
29
|
+
* Extracts both raw messages (for conversations) and metrics (for metrics processor).
|
|
30
|
+
* CRITICAL: Discovers and parses ALL sub-agent files to avoid duplicate file reading.
|
|
31
|
+
*/
|
|
32
|
+
parseSessionFile(filePath: string, sessionId: string): Promise<ParsedSession>;
|
|
33
|
+
/**
|
|
34
|
+
* Extract metrics data from Claude messages.
|
|
35
|
+
* Aggregates tokens, tools, and file operations.
|
|
36
|
+
*/
|
|
37
|
+
private extractMetrics;
|
|
38
|
+
/**
|
|
39
|
+
* Find all agent-*.jsonl files in the subagents directory
|
|
40
|
+
* @param sessionFilePath - Path to the main session file
|
|
41
|
+
* @returns Array of sub-agent file info
|
|
42
|
+
*/
|
|
43
|
+
private findSubagentFiles;
|
|
44
|
+
/**
|
|
45
|
+
* Register a processor to run during session processing.
|
|
46
|
+
* Processors are sorted by priority (lower runs first).
|
|
47
|
+
*/
|
|
48
|
+
registerProcessor(processor: SessionProcessor): void;
|
|
49
|
+
/**
|
|
50
|
+
* Process session file with all registered processors.
|
|
51
|
+
* Reads file once, passes ParsedSession to all processors.
|
|
52
|
+
*
|
|
53
|
+
* @param filePath - Path to agent session file
|
|
54
|
+
* @param sessionId - CodeMie session ID
|
|
55
|
+
* @param context - Processing context (for processors that need API access)
|
|
56
|
+
* @returns Aggregated results from all processors
|
|
57
|
+
*/
|
|
58
|
+
processSession(filePath: string, sessionId: string, context: ProcessingContext): Promise<AggregatedResult>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=claude.session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.session.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IAI7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,QAAQ,CAAC,SAAS,YAAY;IAC9B,OAAO,CAAC,UAAU,CAA0B;gBAEf,QAAQ,EAAE,aAAa;IAUpD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2GnF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkGtB;;;;OAIG;YACW,iBAAiB;IAsC/B;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAMpD;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CA+E7B"}
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Session Adapter
|
|
3
|
+
*
|
|
4
|
+
* Parses Claude Code session files from ~/.claude/projects/
|
|
5
|
+
* Extracts metrics and preserves messages for processors.
|
|
6
|
+
*/
|
|
7
|
+
import { join, dirname, basename } from 'path';
|
|
8
|
+
import { existsSync } from 'fs';
|
|
9
|
+
import { readdir } from 'fs/promises';
|
|
10
|
+
import { readJSONL } from '../../core/session/utils/jsonl-reader.js';
|
|
11
|
+
import { logger } from '../../../utils/logger.js';
|
|
12
|
+
import { MetricsProcessor } from './session/processors/claude.metrics-processor.js';
|
|
13
|
+
import { ConversationsProcessor } from './session/processors/claude.conversations-processor.js';
|
|
14
|
+
/**
|
|
15
|
+
* Claude session adapter implementation.
|
|
16
|
+
* Parses Claude-specific JSONL format into unified ParsedSession.
|
|
17
|
+
* Orchestrates multiple processors that transform messages.
|
|
18
|
+
*
|
|
19
|
+
* ENCAPSULATION: Processors are managed internally, not exposed to plugin.
|
|
20
|
+
*/
|
|
21
|
+
export class ClaudeSessionAdapter {
|
|
22
|
+
metadata;
|
|
23
|
+
agentName = 'claude';
|
|
24
|
+
processors = [];
|
|
25
|
+
constructor(metadata) {
|
|
26
|
+
this.metadata = metadata;
|
|
27
|
+
if (!metadata.dataPaths?.home) {
|
|
28
|
+
throw new Error('Agent metadata must provide dataPaths.home');
|
|
29
|
+
}
|
|
30
|
+
// Initialize and register processors internally
|
|
31
|
+
// Processors run in priority order: metrics (1), conversations (2)
|
|
32
|
+
this.initializeProcessors();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize processors for this adapter.
|
|
36
|
+
* INTERNAL: Processors are an implementation detail of the adapter.
|
|
37
|
+
*/
|
|
38
|
+
initializeProcessors() {
|
|
39
|
+
// Register metrics processor (priority 1)
|
|
40
|
+
this.registerProcessor(new MetricsProcessor());
|
|
41
|
+
// Register conversations processor (priority 2)
|
|
42
|
+
this.registerProcessor(new ConversationsProcessor());
|
|
43
|
+
logger.debug(`[claude-adapter] Initialized ${this.processors.length} processors`);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse Claude session file to unified format.
|
|
47
|
+
* Extracts both raw messages (for conversations) and metrics (for metrics processor).
|
|
48
|
+
* CRITICAL: Discovers and parses ALL sub-agent files to avoid duplicate file reading.
|
|
49
|
+
*/
|
|
50
|
+
async parseSessionFile(filePath, sessionId) {
|
|
51
|
+
try {
|
|
52
|
+
// Read main session JSONL file
|
|
53
|
+
const messages = await readJSONL(filePath);
|
|
54
|
+
// Handle empty files gracefully (new sessions, in-progress, corrupted files)
|
|
55
|
+
if (messages.length === 0) {
|
|
56
|
+
logger.debug(`[claude-adapter] Session file is empty: ${filePath}`);
|
|
57
|
+
return {
|
|
58
|
+
sessionId,
|
|
59
|
+
agentName: this.metadata.displayName || 'claude',
|
|
60
|
+
metadata: {
|
|
61
|
+
projectPath: filePath,
|
|
62
|
+
createdAt: undefined,
|
|
63
|
+
updatedAt: undefined
|
|
64
|
+
},
|
|
65
|
+
messages: [],
|
|
66
|
+
metrics: {
|
|
67
|
+
tokens: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
68
|
+
tools: {},
|
|
69
|
+
toolStatus: {},
|
|
70
|
+
fileOperations: []
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Extract timestamps from first/last messages that have them
|
|
75
|
+
let createdAt;
|
|
76
|
+
let updatedAt;
|
|
77
|
+
// Find first message with timestamp
|
|
78
|
+
for (const message of messages) {
|
|
79
|
+
if (message.timestamp) {
|
|
80
|
+
createdAt = message.timestamp;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Find last message with timestamp (iterate backwards)
|
|
85
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
86
|
+
if (messages[i].timestamp) {
|
|
87
|
+
updatedAt = messages[i].timestamp;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Extract metadata from session
|
|
92
|
+
const metadata = {
|
|
93
|
+
projectPath: filePath,
|
|
94
|
+
createdAt,
|
|
95
|
+
updatedAt
|
|
96
|
+
};
|
|
97
|
+
// Extract metrics from messages
|
|
98
|
+
const metrics = this.extractMetrics(messages);
|
|
99
|
+
// CRITICAL: Discover and parse ALL sub-agent files
|
|
100
|
+
const subagentFiles = await this.findSubagentFiles(filePath);
|
|
101
|
+
const subagents = [];
|
|
102
|
+
for (const subagentFile of subagentFiles) {
|
|
103
|
+
try {
|
|
104
|
+
const subagentMessages = await readJSONL(subagentFile.filePath);
|
|
105
|
+
subagents.push({
|
|
106
|
+
agentId: subagentFile.agentId,
|
|
107
|
+
filePath: subagentFile.filePath,
|
|
108
|
+
messages: subagentMessages
|
|
109
|
+
});
|
|
110
|
+
logger.debug(`[claude-adapter] Parsed sub-agent ${subagentFile.agentId}: ${subagentMessages.length} messages`);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
logger.warn(`[claude-adapter] Failed to parse sub-agent file ${subagentFile.filePath}:`, error);
|
|
114
|
+
// Continue with other sub-agents even if one fails
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
logger.debug(`[claude-adapter] Parsed session ${sessionId}: ${messages.length} main messages, ` +
|
|
118
|
+
`${subagents.length} sub-agent${subagents.length !== 1 ? 's' : ''}, ` +
|
|
119
|
+
`${metrics.tokens?.input || 0} input tokens, ${metrics.tokens?.output || 0} output tokens`);
|
|
120
|
+
return {
|
|
121
|
+
sessionId,
|
|
122
|
+
agentName: this.metadata.displayName || 'claude',
|
|
123
|
+
metadata,
|
|
124
|
+
messages, // Preserve raw messages for conversations processor
|
|
125
|
+
subagents: subagents.length > 0 ? subagents : undefined, // Include sub-agents if any
|
|
126
|
+
metrics // Extracted metrics for metrics processor
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
logger.error(`[claude-adapter] Failed to parse session file ${filePath}:`, error);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Extract metrics data from Claude messages.
|
|
136
|
+
* Aggregates tokens, tools, and file operations.
|
|
137
|
+
*/
|
|
138
|
+
extractMetrics(messages) {
|
|
139
|
+
let inputTokens = 0;
|
|
140
|
+
let outputTokens = 0;
|
|
141
|
+
let cacheReadTokens = 0;
|
|
142
|
+
let cacheWriteTokens = 0;
|
|
143
|
+
const toolCounts = {};
|
|
144
|
+
const toolStatus = {};
|
|
145
|
+
const fileOperations = [];
|
|
146
|
+
// Build tool results map (tool_use_id → isError) for status tracking
|
|
147
|
+
const toolResultsMap = new Map();
|
|
148
|
+
// First pass: collect tool results
|
|
149
|
+
for (const msg of messages) {
|
|
150
|
+
if (msg.message?.content && Array.isArray(msg.message.content)) {
|
|
151
|
+
for (const item of msg.message.content) {
|
|
152
|
+
// Map tool_use_id to error status
|
|
153
|
+
if (item.type === 'tool_result' && item.tool_use_id) {
|
|
154
|
+
const isError = item.is_error === true || item.isError === true;
|
|
155
|
+
toolResultsMap.set(item.tool_use_id, isError);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Second pass: aggregate metrics
|
|
161
|
+
for (const msg of messages) {
|
|
162
|
+
// Extract token usage
|
|
163
|
+
if (msg.message?.usage) {
|
|
164
|
+
const usage = msg.message.usage;
|
|
165
|
+
inputTokens += usage.input_tokens || 0;
|
|
166
|
+
outputTokens += usage.output_tokens || 0;
|
|
167
|
+
cacheReadTokens += usage.cache_read_input_tokens || 0;
|
|
168
|
+
cacheWriteTokens += usage.cache_creation_input_tokens || 0;
|
|
169
|
+
}
|
|
170
|
+
// Extract tool usage and status
|
|
171
|
+
if (msg.message?.content && Array.isArray(msg.message.content)) {
|
|
172
|
+
for (const item of msg.message.content) {
|
|
173
|
+
if (item.type === 'tool_use' && item.name && item.id) {
|
|
174
|
+
// Count tool usage
|
|
175
|
+
toolCounts[item.name] = (toolCounts[item.name] || 0) + 1;
|
|
176
|
+
// Initialize status tracking
|
|
177
|
+
if (!toolStatus[item.name]) {
|
|
178
|
+
toolStatus[item.name] = { success: 0, failure: 0 };
|
|
179
|
+
}
|
|
180
|
+
// Track success/failure based on result
|
|
181
|
+
const hasResult = toolResultsMap.has(item.id);
|
|
182
|
+
if (hasResult) {
|
|
183
|
+
const isError = toolResultsMap.get(item.id);
|
|
184
|
+
if (isError) {
|
|
185
|
+
toolStatus[item.name].failure++;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
toolStatus[item.name].success++;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Extract file operations from tool results
|
|
195
|
+
if (msg.toolUseResult?.type) {
|
|
196
|
+
const toolType = msg.toolUseResult.type.toLowerCase();
|
|
197
|
+
const filePath = msg.toolUseResult.file?.filePath;
|
|
198
|
+
if (filePath) {
|
|
199
|
+
if (toolType === 'write') {
|
|
200
|
+
fileOperations.push({ type: 'write', path: filePath });
|
|
201
|
+
}
|
|
202
|
+
else if (toolType === 'edit') {
|
|
203
|
+
fileOperations.push({ type: 'edit', path: filePath });
|
|
204
|
+
}
|
|
205
|
+
else if (toolType === 'delete') {
|
|
206
|
+
fileOperations.push({ type: 'delete', path: filePath });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
tokens: {
|
|
213
|
+
input: inputTokens,
|
|
214
|
+
output: outputTokens,
|
|
215
|
+
cacheRead: cacheReadTokens,
|
|
216
|
+
cacheWrite: cacheWriteTokens
|
|
217
|
+
},
|
|
218
|
+
tools: toolCounts,
|
|
219
|
+
toolStatus,
|
|
220
|
+
fileOperations
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Find all agent-*.jsonl files in the subagents directory
|
|
225
|
+
* @param sessionFilePath - Path to the main session file
|
|
226
|
+
* @returns Array of sub-agent file info
|
|
227
|
+
*/
|
|
228
|
+
async findSubagentFiles(sessionFilePath) {
|
|
229
|
+
try {
|
|
230
|
+
const parentDir = dirname(sessionFilePath);
|
|
231
|
+
const filename = basename(sessionFilePath);
|
|
232
|
+
const sessionId = filename.replace('.jsonl', '');
|
|
233
|
+
// Look in {parentDir}/{sessionId}/subagents/
|
|
234
|
+
const subagentsDir = join(parentDir, sessionId, 'subagents');
|
|
235
|
+
if (!existsSync(subagentsDir)) {
|
|
236
|
+
logger.debug(`[claude-adapter] Subagents directory not found: ${subagentsDir}`);
|
|
237
|
+
return [];
|
|
238
|
+
}
|
|
239
|
+
// Find all agent-*.jsonl files
|
|
240
|
+
const files = await readdir(subagentsDir);
|
|
241
|
+
const agentFiles = files
|
|
242
|
+
.filter(f => f.startsWith('agent-') && f.endsWith('.jsonl'))
|
|
243
|
+
.map(f => ({
|
|
244
|
+
agentId: f.replace('agent-', '').replace('.jsonl', ''),
|
|
245
|
+
filePath: join(subagentsDir, f)
|
|
246
|
+
}));
|
|
247
|
+
logger.debug(`[claude-adapter] Found ${agentFiles.length} sub-agent file${agentFiles.length !== 1 ? 's' : ''} ` +
|
|
248
|
+
`for session ${sessionId}`);
|
|
249
|
+
return agentFiles;
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
logger.debug(`[claude-adapter] Failed to find sub-agent files:`, error);
|
|
253
|
+
return [];
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Register a processor to run during session processing.
|
|
258
|
+
* Processors are sorted by priority (lower runs first).
|
|
259
|
+
*/
|
|
260
|
+
registerProcessor(processor) {
|
|
261
|
+
this.processors.push(processor);
|
|
262
|
+
this.processors.sort((a, b) => a.priority - b.priority);
|
|
263
|
+
logger.debug(`[claude-adapter] Registered processor: ${processor.name} (priority: ${processor.priority})`);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Process session file with all registered processors.
|
|
267
|
+
* Reads file once, passes ParsedSession to all processors.
|
|
268
|
+
*
|
|
269
|
+
* @param filePath - Path to agent session file
|
|
270
|
+
* @param sessionId - CodeMie session ID
|
|
271
|
+
* @param context - Processing context (for processors that need API access)
|
|
272
|
+
* @returns Aggregated results from all processors
|
|
273
|
+
*/
|
|
274
|
+
async processSession(filePath, sessionId, context) {
|
|
275
|
+
try {
|
|
276
|
+
logger.debug(`[claude-adapter] Processing session ${sessionId} with ${this.processors.length} processor${this.processors.length !== 1 ? 's' : ''}`);
|
|
277
|
+
// 1. Parse session file once (includes sub-agent discovery)
|
|
278
|
+
const parsedSession = await this.parseSessionFile(filePath, sessionId);
|
|
279
|
+
// 2. Execute processors in priority order
|
|
280
|
+
const processorResults = {};
|
|
281
|
+
const failedProcessors = [];
|
|
282
|
+
let totalRecords = 0;
|
|
283
|
+
for (const processor of this.processors) {
|
|
284
|
+
try {
|
|
285
|
+
// Check if processor should run
|
|
286
|
+
if (!processor.shouldProcess(parsedSession)) {
|
|
287
|
+
logger.debug(`[claude-adapter] Processor ${processor.name} skipped (shouldProcess returned false)`);
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
logger.debug(`[claude-adapter] Running processor: ${processor.name}`);
|
|
291
|
+
// Execute processor
|
|
292
|
+
const result = await processor.process(parsedSession, context);
|
|
293
|
+
processorResults[processor.name] = {
|
|
294
|
+
success: result.success,
|
|
295
|
+
message: result.message,
|
|
296
|
+
recordsProcessed: result.metadata?.recordsProcessed
|
|
297
|
+
};
|
|
298
|
+
// Track failures
|
|
299
|
+
if (!result.success) {
|
|
300
|
+
failedProcessors.push(processor.name);
|
|
301
|
+
logger.warn(`[claude-adapter] Processor ${processor.name} failed: ${result.message}`);
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
logger.debug(`[claude-adapter] Processor ${processor.name} succeeded: ${result.message}`);
|
|
305
|
+
}
|
|
306
|
+
// Accumulate records
|
|
307
|
+
const recordsProcessed = result.metadata?.recordsProcessed;
|
|
308
|
+
if (typeof recordsProcessed === 'number') {
|
|
309
|
+
totalRecords += recordsProcessed;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
314
|
+
logger.error(`[claude-adapter] Processor ${processor.name} threw error:`, error);
|
|
315
|
+
processorResults[processor.name] = {
|
|
316
|
+
success: false,
|
|
317
|
+
message: errorMessage
|
|
318
|
+
};
|
|
319
|
+
failedProcessors.push(processor.name);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
// 3. Aggregate results
|
|
323
|
+
const result = {
|
|
324
|
+
success: failedProcessors.length === 0,
|
|
325
|
+
processors: processorResults,
|
|
326
|
+
totalRecords,
|
|
327
|
+
failedProcessors
|
|
328
|
+
};
|
|
329
|
+
logger.debug(`[claude-adapter] Processing complete: ${result.success ? 'SUCCESS' : 'FAILED'} ` +
|
|
330
|
+
`(${totalRecords} records, ${failedProcessors.length} failed processors)`);
|
|
331
|
+
return result;
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
logger.error(`[claude-adapter] Session processing failed:`, error);
|
|
335
|
+
throw error;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=claude.session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.session.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"enabled": true,
|
|
3
|
+
"strategy": "hybrid",
|
|
4
|
+
"includes": [
|
|
5
|
+
"claude-templates/**"
|
|
6
|
+
],
|
|
7
|
+
"excludes": [
|
|
8
|
+
"**/*.test.js",
|
|
9
|
+
"**/.DS_Store",
|
|
10
|
+
"**/node_modules/**"
|
|
11
|
+
],
|
|
12
|
+
"targetDir": ".codemie",
|
|
13
|
+
"preserveStructure": true,
|
|
14
|
+
"overwritePolicy": "newer"
|
|
15
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "codemie",
|
|
3
|
+
"description": "Event-driven observability for Claude Code. Captures session events and syncs metrics/conversations to CodeMie platform.",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "AI/Run CodeMie",
|
|
6
|
+
"email": "support@codemieai.com"
|
|
7
|
+
},
|
|
8
|
+
"version": "1.0.0"
|
|
9
|
+
}
|