@codemieai/code 0.0.27 → 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 +9 -11
- package/bin/agent-executor.js +1 -1
- package/dist/agents/codemie-code/agent.js +1 -1
- package/dist/agents/codemie-code/config.d.ts +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +3 -4
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/codemie-code/index.js +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.js +2 -2
- package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
- package/dist/agents/codemie-code/tools/index.js +1 -1
- package/dist/agents/codemie-code/tools/index.js.map +1 -1
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +6 -10
- 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 +80 -72
- 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/codemie-code.plugin.js +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/cli/commands/analytics/data-loader.js +3 -3
- package/dist/cli/commands/analytics/data-loader.js.map +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/AIConfigCheck.js +1 -1
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
- package/dist/cli/commands/doctor/checks/AwsCliCheck.js +1 -1
- package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -1
- package/dist/cli/commands/doctor/checks/NpmCheck.js +1 -1
- package/dist/cli/commands/doctor/checks/NpmCheck.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 +91 -32
- package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
- package/dist/cli/commands/doctor/checks/UvCheck.js +1 -1
- package/dist/cli/commands/doctor/checks/UvCheck.js.map +1 -1
- package/dist/cli/commands/doctor/types.d.ts +1 -1
- package/dist/cli/commands/doctor/types.d.ts.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/profile/auth.js +1 -1
- package/dist/cli/commands/profile/auth.js.map +1 -1
- package/dist/{utils/profile-display.d.ts → cli/commands/profile/display.d.ts} +3 -3
- package/dist/cli/commands/profile/display.d.ts.map +1 -0
- package/dist/{utils/profile-display.js → cli/commands/profile/display.js} +2 -2
- package/dist/cli/commands/profile/display.js.map +1 -0
- package/dist/cli/commands/profile/index.js +2 -2
- package/dist/cli/commands/profile/index.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +4 -5
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +291 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/version.js +1 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/{utils → cli}/first-time.d.ts +4 -0
- package/dist/cli/first-time.d.ts.map +1 -0
- package/dist/{utils → cli}/first-time.js +27 -14
- package/dist/cli/first-time.js.map +1 -0
- package/dist/cli/index.js +6 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/env/manager.d.ts.map +1 -1
- package/dist/env/manager.js +3 -4
- package/dist/env/manager.js.map +1 -1
- package/dist/frameworks/core/BaseFrameworkAdapter.js +1 -1
- package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -1
- package/dist/frameworks/core/types.d.ts +1 -1
- package/dist/frameworks/plugins/bmad.plugin.js +2 -2
- package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
- package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
- package/dist/frameworks/plugins/speckit.plugin.js +2 -3
- package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations/001-config-rename.migration.d.ts.map +1 -1
- package/dist/migrations/001-config-rename.migration.js +2 -2
- package/dist/migrations/001-config-rename.migration.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/migrations/tracker.d.ts.map +1 -1
- package/dist/migrations/tracker.js +2 -2
- package/dist/migrations/tracker.js.map +1 -1
- package/dist/providers/core/base/http-client.js +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 +3 -1
- 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.auth.js +1 -1
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.template.js +71 -43
- package/dist/providers/plugins/sso/sso.template.js.map +1 -1
- package/dist/utils/{config-loader.d.ts → config.d.ts} +6 -1
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/{config-loader.js → config.js} +30 -4
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/errors.d.ts +89 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +340 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/exec.d.ts +6 -0
- package/dist/utils/exec.d.ts.map +1 -1
- package/dist/utils/exec.js +6 -0
- package/dist/utils/exec.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 +15 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/{json-parser.d.ts → parsers.d.ts} +1 -1
- package/dist/utils/parsers.d.ts.map +1 -0
- package/dist/utils/{json-parser.js → parsers.js} +1 -1
- package/dist/utils/parsers.js.map +1 -0
- package/dist/utils/{path-utils.d.ts → paths.d.ts} +77 -12
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/{path-utils.js → paths.js} +103 -12
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/{npm.d.ts → processes.d.ts} +44 -7
- package/dist/utils/processes.d.ts.map +1 -0
- package/dist/utils/{npm.js → processes.js} +129 -10
- package/dist/utils/processes.js.map +1 -0
- package/dist/utils/profile.d.ts +1 -16
- package/dist/utils/profile.d.ts.map +1 -1
- package/dist/utils/profile.js +1 -27
- package/dist/utils/profile.js.map +1 -1
- package/dist/utils/security.d.ts +62 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +396 -0
- package/dist/utils/security.js.map +1 -0
- package/package.json +11 -11
- 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 -95
- 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.plugin.d.ts +0 -17
- package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
- package/dist/agents/plugins/codex.plugin.js +0 -386
- 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
- package/dist/utils/config-loader.d.ts.map +0 -1
- package/dist/utils/config-loader.js.map +0 -1
- package/dist/utils/credential-store.d.ts +0 -22
- package/dist/utils/credential-store.d.ts.map +0 -1
- package/dist/utils/credential-store.js +0 -165
- package/dist/utils/credential-store.js.map +0 -1
- package/dist/utils/dirname.d.ts +0 -7
- package/dist/utils/dirname.d.ts.map +0 -1
- package/dist/utils/dirname.js +0 -11
- package/dist/utils/dirname.js.map +0 -1
- package/dist/utils/error-context.d.ts +0 -90
- package/dist/utils/error-context.d.ts.map +0 -1
- package/dist/utils/error-context.js +0 -338
- package/dist/utils/error-context.js.map +0 -1
- package/dist/utils/first-time.d.ts.map +0 -1
- package/dist/utils/first-time.js.map +0 -1
- package/dist/utils/git.d.ts +0 -13
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -37
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/installation-id.d.ts +0 -10
- package/dist/utils/installation-id.d.ts.map +0 -1
- package/dist/utils/installation-id.js +0 -30
- package/dist/utils/installation-id.js.map +0 -1
- package/dist/utils/json-parser.d.ts.map +0 -1
- package/dist/utils/json-parser.js.map +0 -1
- package/dist/utils/npm.d.ts.map +0 -1
- package/dist/utils/npm.js.map +0 -1
- package/dist/utils/path-utils.d.ts.map +0 -1
- package/dist/utils/path-utils.js.map +0 -1
- package/dist/utils/profile-display.d.ts.map +0 -1
- package/dist/utils/profile-display.js.map +0 -1
- package/dist/utils/sanitize.d.ts +0 -28
- package/dist/utils/sanitize.d.ts.map +0 -1
- package/dist/utils/sanitize.js +0 -212
- package/dist/utils/sanitize.js.map +0 -1
- package/dist/utils/which.d.ts +0 -20
- package/dist/utils/which.d.ts.map +0 -1
- package/dist/utils/which.js +0 -54
- package/dist/utils/which.js.map +0 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Metrics Processor
|
|
3
|
+
*
|
|
4
|
+
* Transforms Gemini session messages into metric deltas.
|
|
5
|
+
*
|
|
6
|
+
* Key differences from Claude:
|
|
7
|
+
* - Messages have direct `type` field ('user' | 'gemini'), not nested `message.role`
|
|
8
|
+
* - Content is a string, not an array of content blocks
|
|
9
|
+
* - Tokens are in `tokens` object with 5 fields: input, output, cached, thoughts, tool
|
|
10
|
+
* - Tool calls are self-contained in `toolCalls` array (not separate tool_use/tool_result messages)
|
|
11
|
+
*/
|
|
12
|
+
import { logger } from '../../../../../utils/logger.js';
|
|
13
|
+
import { extractFormat, detectLanguage } from '../../../../../utils/file-operations.js';
|
|
14
|
+
export class GeminiMetricsProcessor {
|
|
15
|
+
name = 'gemini-metrics';
|
|
16
|
+
priority = 1; // Run first
|
|
17
|
+
shouldProcess(session) {
|
|
18
|
+
return session.messages && session.messages.length > 0;
|
|
19
|
+
}
|
|
20
|
+
async process(session, context) {
|
|
21
|
+
try {
|
|
22
|
+
return await this.processMessages(session, context);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
logger.error(`[${this.name}] Processing failed:`, error);
|
|
26
|
+
return {
|
|
27
|
+
success: false,
|
|
28
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Transform ParsedSession.messages to deltas and write to JSONL
|
|
34
|
+
*/
|
|
35
|
+
async processMessages(session, _context) {
|
|
36
|
+
try {
|
|
37
|
+
logger.info(`[${this.name}] Transforming ${session.messages.length} messages to deltas`);
|
|
38
|
+
const deltas = this.transformMessagesToDeltas(session);
|
|
39
|
+
if (deltas.length === 0) {
|
|
40
|
+
logger.debug(`[${this.name}] No deltas generated from messages`);
|
|
41
|
+
return { success: true, message: 'No deltas generated', metadata: { recordsProcessed: 0 } };
|
|
42
|
+
}
|
|
43
|
+
const { MetricsWriter } = await import('../../../../../providers/plugins/sso/session/processors/metrics/MetricsWriter.js');
|
|
44
|
+
const writer = new MetricsWriter(session.sessionId);
|
|
45
|
+
for (const delta of deltas) {
|
|
46
|
+
await writer.appendDelta(delta);
|
|
47
|
+
}
|
|
48
|
+
logger.info(`[${this.name}] Generated and wrote ${deltas.length} deltas`);
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
message: `Generated ${deltas.length} deltas`,
|
|
52
|
+
metadata: { recordsProcessed: deltas.length }
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
logger.error(`[${this.name}] Failed to process messages:`, error);
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Transform Gemini messages to deltas
|
|
65
|
+
*/
|
|
66
|
+
transformMessagesToDeltas(session) {
|
|
67
|
+
const deltas = [];
|
|
68
|
+
const messages = session.messages;
|
|
69
|
+
// Track user prompts for attaching to assistant responses
|
|
70
|
+
let lastUserPrompt = null;
|
|
71
|
+
for (const msg of messages) {
|
|
72
|
+
// Track user prompts
|
|
73
|
+
if (msg.type === 'user') {
|
|
74
|
+
lastUserPrompt = msg.content;
|
|
75
|
+
continue; // User messages don't generate deltas
|
|
76
|
+
}
|
|
77
|
+
// Process assistant (gemini) messages
|
|
78
|
+
if (msg.type === 'gemini') {
|
|
79
|
+
const delta = {
|
|
80
|
+
recordId: msg.id, // Use message ID as recordId
|
|
81
|
+
sessionId: session.sessionId,
|
|
82
|
+
agentSessionId: session.agentSessionId || session.sessionId, // Fall back to CodeMie sessionId if no agent session
|
|
83
|
+
timestamp: new Date(msg.timestamp).getTime(),
|
|
84
|
+
gitBranch: undefined, // Gemini doesn't track git branch per message
|
|
85
|
+
// Token usage (from msg.tokens)
|
|
86
|
+
tokens: {
|
|
87
|
+
input: msg.tokens?.input || 0,
|
|
88
|
+
output: msg.tokens?.output || 0,
|
|
89
|
+
cacheRead: msg.tokens?.cached || 0, // Gemini's 'cached' maps to 'cacheRead'
|
|
90
|
+
cacheCreation: 0 // Not available in Gemini
|
|
91
|
+
},
|
|
92
|
+
// Required field - initialize as empty, populate if tools exist
|
|
93
|
+
tools: {}
|
|
94
|
+
};
|
|
95
|
+
// Add model if available (as array)
|
|
96
|
+
if (msg.model) {
|
|
97
|
+
delta.models = [msg.model];
|
|
98
|
+
}
|
|
99
|
+
// Extract tool usage from toolCalls
|
|
100
|
+
if (msg.toolCalls && msg.toolCalls.length > 0) {
|
|
101
|
+
const toolStatus = {};
|
|
102
|
+
const fileOperations = [];
|
|
103
|
+
for (const tool of msg.toolCalls) {
|
|
104
|
+
// Count tool usage (populate directly on delta.tools)
|
|
105
|
+
delta.tools[tool.name] = (delta.tools[tool.name] || 0) + 1;
|
|
106
|
+
// Track success/failure
|
|
107
|
+
if (!toolStatus[tool.name]) {
|
|
108
|
+
toolStatus[tool.name] = { success: 0, failure: 0 };
|
|
109
|
+
}
|
|
110
|
+
if (tool.status === 'success') {
|
|
111
|
+
toolStatus[tool.name].success++;
|
|
112
|
+
// Extract file operations for successful tool calls
|
|
113
|
+
const fileOp = this.extractFileOperation(tool.name, tool.args, tool.result);
|
|
114
|
+
if (fileOp) {
|
|
115
|
+
fileOperations.push(fileOp);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else if (tool.status === 'error') {
|
|
119
|
+
toolStatus[tool.name].failure++;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Add toolStatus if we have any
|
|
123
|
+
if (Object.keys(toolStatus).length > 0) {
|
|
124
|
+
delta.toolStatus = toolStatus;
|
|
125
|
+
}
|
|
126
|
+
// Add file operations if we have any
|
|
127
|
+
if (fileOperations.length > 0) {
|
|
128
|
+
delta.fileOperations = fileOperations;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Attach user prompt if available
|
|
132
|
+
if (lastUserPrompt) {
|
|
133
|
+
delta.userPrompts = [{
|
|
134
|
+
count: 1,
|
|
135
|
+
text: lastUserPrompt
|
|
136
|
+
}];
|
|
137
|
+
}
|
|
138
|
+
deltas.push(delta);
|
|
139
|
+
// Clear last user prompt after attaching
|
|
140
|
+
lastUserPrompt = null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return deltas;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Extract file operation from Gemini tool call
|
|
147
|
+
*/
|
|
148
|
+
extractFileOperation(toolName, args, result) {
|
|
149
|
+
const typeMap = {
|
|
150
|
+
'write_file': 'write',
|
|
151
|
+
'Write': 'write',
|
|
152
|
+
'replace': 'edit',
|
|
153
|
+
'edit_file': 'edit',
|
|
154
|
+
'Edit': 'edit',
|
|
155
|
+
'read_file': 'read',
|
|
156
|
+
'Read': 'read',
|
|
157
|
+
'delete_file': 'delete'
|
|
158
|
+
};
|
|
159
|
+
const type = typeMap[toolName];
|
|
160
|
+
if (!type)
|
|
161
|
+
return undefined;
|
|
162
|
+
const fileOp = { type };
|
|
163
|
+
const filePath = args.file_path;
|
|
164
|
+
if (filePath) {
|
|
165
|
+
fileOp.path = filePath;
|
|
166
|
+
fileOp.format = extractFormat(filePath);
|
|
167
|
+
fileOp.language = detectLanguage(filePath);
|
|
168
|
+
}
|
|
169
|
+
// Calculate line counts from tool arguments
|
|
170
|
+
if (toolName === 'write_file' || toolName === 'Write') {
|
|
171
|
+
const content = args.content;
|
|
172
|
+
if (content) {
|
|
173
|
+
const lines = content.split('\n');
|
|
174
|
+
fileOp.linesAdded = lines.length;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// For edit operations, try to extract line counts from result
|
|
178
|
+
// Note: Gemini result structure may vary, add defensive checks
|
|
179
|
+
if ((toolName === 'replace' || toolName === 'edit_file' || toolName === 'Edit') && result) {
|
|
180
|
+
const output = result[0]?.functionResponse?.response?.output;
|
|
181
|
+
if (typeof output === 'object' && output !== null) {
|
|
182
|
+
if (output.linesAdded !== undefined) {
|
|
183
|
+
fileOp.linesAdded = output.linesAdded;
|
|
184
|
+
}
|
|
185
|
+
if (output.linesRemoved !== undefined) {
|
|
186
|
+
fileOp.linesRemoved = output.linesRemoved;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return fileOp;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=gemini.metrics-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.metrics-processor.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/processors/gemini.metrics-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AA8BxF,MAAM,OAAO,sBAAsB;IACxB,IAAI,GAAG,gBAAgB,CAAC;IACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,YAAY;IAEnC,aAAa,CAAC,OAAsB;QAClC,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB,EAAE,OAA0B;QAC9D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,OAAsB,EACtB,QAA2B;QAE3B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,kBAAkB,OAAO,CAAC,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;YAEzF,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,qCAAqC,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9F,CAAC;YAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,kFAAkF,CAAC,CAAC;YAC3H,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,yBAAyB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YAE1E,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,aAAa,MAAM,CAAC,MAAM,SAAS;gBAC5C,QAAQ,EAAE,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;aAC9C,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,OAAsB;QACtD,MAAM,MAAM,GAA4D,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA2B,CAAC;QAErD,0DAA0D;QAC1D,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,qBAAqB;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC7B,SAAS,CAAC,sCAAsC;YAClD,CAAC;YAED,sCAAsC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAqD;oBAC9D,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAG,6BAA6B;oBAChD,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,cAAc,EAAG,OAAe,CAAC,cAAc,IAAI,OAAO,CAAC,SAAS,EAAG,qDAAqD;oBAC5H,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;oBAC5C,SAAS,EAAE,SAAS,EAAG,8CAA8C;oBAErE,gCAAgC;oBAChC,MAAM,EAAE;wBACN,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC;wBAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;wBAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAG,wCAAwC;wBAC7E,aAAa,EAAE,CAAC,CAAE,0BAA0B;qBAC7C;oBAED,gEAAgE;oBAChE,KAAK,EAAE,EAAE;iBACV,CAAC;gBAEF,oCAAoC;gBACpC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACb,KAAa,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAED,oCAAoC;gBACpC,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,MAAM,UAAU,GAAyD,EAAE,CAAC;oBAC5E,MAAM,cAAc,GAOf,EAAE,CAAC;oBAER,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBACjC,sDAAsD;wBACtD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;wBAE3D,wBAAwB;wBACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;wBACrD,CAAC;wBAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;4BAC9B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;4BAEhC,oDAAoD;4BACpD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC5E,IAAI,MAAM,EAAE,CAAC;gCACX,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC9B,CAAC;wBACH,CAAC;6BAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;4BACnC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;wBAClC,CAAC;oBACH,CAAC;oBAED,gCAAgC;oBAChC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,KAAa,CAAC,UAAU,GAAG,UAAU,CAAC;oBACzC,CAAC;oBAED,qCAAqC;oBACrC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,KAAa,CAAC,cAAc,GAAG,cAAc,CAAC;oBACjD,CAAC;gBACH,CAAC;gBAED,kCAAkC;gBAClC,IAAI,cAAc,EAAE,CAAC;oBAClB,KAAa,CAAC,WAAW,GAAG,CAAC;4BAC5B,KAAK,EAAE,CAAC;4BACR,IAAI,EAAE,cAAc;yBACrB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEnB,yCAAyC;gBACzC,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,QAAgB,EAChB,IAA6B,EAC7B,MAAc;QAEd,MAAM,OAAO,GAA2B;YACtC,YAAY,EAAE,OAAO;YACrB,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,QAAQ;SACxB,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,MAAM,MAAM,GAAQ,EAAE,IAAI,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAA+B,CAAC;QAEtD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,4CAA4C;QAC5C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YACnC,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,+DAA+D;QAC/D,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC7D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACxC,CAAC;gBACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token aggregation for Gemini conversations
|
|
3
|
+
*
|
|
4
|
+
* Aggregates token usage across multiple Gemini messages in a single turn.
|
|
5
|
+
*
|
|
6
|
+
* Gemini Token Mapping:
|
|
7
|
+
* - input_tokens: msg[0].tokens.input (first gemini message)
|
|
8
|
+
* - output_tokens: SUM(all msg.tokens.output)
|
|
9
|
+
* - cache_read_input_tokens: msg[last].tokens.cached
|
|
10
|
+
* - cache_creation_input_tokens: 0 (not tracked by Gemini)
|
|
11
|
+
*/
|
|
12
|
+
import type { GeminiMessage } from './turn-detector.js';
|
|
13
|
+
export interface TokenUsage {
|
|
14
|
+
input_tokens: number;
|
|
15
|
+
output_tokens: number;
|
|
16
|
+
cache_read_input_tokens: number;
|
|
17
|
+
cache_creation_input_tokens: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Aggregates token usage from multiple Gemini messages in a turn
|
|
21
|
+
*
|
|
22
|
+
* @param geminiMessages - All Gemini messages in the turn
|
|
23
|
+
* @returns Aggregated token usage
|
|
24
|
+
*/
|
|
25
|
+
export declare function aggregateTokens(geminiMessages: GeminiMessage[]): TokenUsage;
|
|
26
|
+
//# sourceMappingURL=token-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-aggregator.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/utils/token-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,UAAU,CAyB3E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token aggregation for Gemini conversations
|
|
3
|
+
*
|
|
4
|
+
* Aggregates token usage across multiple Gemini messages in a single turn.
|
|
5
|
+
*
|
|
6
|
+
* Gemini Token Mapping:
|
|
7
|
+
* - input_tokens: msg[0].tokens.input (first gemini message)
|
|
8
|
+
* - output_tokens: SUM(all msg.tokens.output)
|
|
9
|
+
* - cache_read_input_tokens: msg[last].tokens.cached
|
|
10
|
+
* - cache_creation_input_tokens: 0 (not tracked by Gemini)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Aggregates token usage from multiple Gemini messages in a turn
|
|
14
|
+
*
|
|
15
|
+
* @param geminiMessages - All Gemini messages in the turn
|
|
16
|
+
* @returns Aggregated token usage
|
|
17
|
+
*/
|
|
18
|
+
export function aggregateTokens(geminiMessages) {
|
|
19
|
+
if (geminiMessages.length === 0) {
|
|
20
|
+
return {
|
|
21
|
+
input_tokens: 0,
|
|
22
|
+
output_tokens: 0,
|
|
23
|
+
cache_read_input_tokens: 0,
|
|
24
|
+
cache_creation_input_tokens: 0
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const first = geminiMessages[0];
|
|
28
|
+
const last = geminiMessages[geminiMessages.length - 1];
|
|
29
|
+
// Sum output tokens across all messages
|
|
30
|
+
const totalOutput = geminiMessages.reduce((sum, msg) => sum + (msg.tokens?.output || 0), 0);
|
|
31
|
+
return {
|
|
32
|
+
input_tokens: first.tokens?.input || 0,
|
|
33
|
+
output_tokens: totalOutput,
|
|
34
|
+
cache_read_input_tokens: last.tokens?.cached || 0,
|
|
35
|
+
cache_creation_input_tokens: 0 // Not tracked by Gemini
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=token-aggregator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-aggregator.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/utils/token-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,cAA+B;IAC7D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,uBAAuB,EAAE,CAAC;YAC1B,2BAA2B,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvD,wCAAwC;IACxC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,EAC7C,CAAC,CACF,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC;QACtC,aAAa,EAAE,WAAW;QAC1B,uBAAuB,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACjD,2BAA2B,EAAE,CAAC,CAAC,wBAAwB;KACxD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool call extraction for Gemini conversations
|
|
3
|
+
*
|
|
4
|
+
* Extracts tool calls from Gemini's nested structure and transforms them
|
|
5
|
+
* into the standard thought format used by conversation history.
|
|
6
|
+
*
|
|
7
|
+
* Gemini Tool Structure:
|
|
8
|
+
* toolCall.result[0].functionResponse.response.output
|
|
9
|
+
*/
|
|
10
|
+
import type { GeminiMessage } from './turn-detector.js';
|
|
11
|
+
export interface ToolThought {
|
|
12
|
+
id: string;
|
|
13
|
+
metadata: {
|
|
14
|
+
timestamp: string;
|
|
15
|
+
displayName?: string;
|
|
16
|
+
};
|
|
17
|
+
in_progress: boolean;
|
|
18
|
+
input_text: string;
|
|
19
|
+
message: string;
|
|
20
|
+
author_type: 'Tool';
|
|
21
|
+
author_name: string;
|
|
22
|
+
output_format: 'text';
|
|
23
|
+
error: boolean;
|
|
24
|
+
children: unknown[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extracts tool thoughts from Gemini messages in a turn
|
|
28
|
+
*
|
|
29
|
+
* @param geminiMessages - All Gemini messages in the turn
|
|
30
|
+
* @returns Array of tool thoughts in standard format
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractToolThoughts(geminiMessages: GeminiMessage[]): ToolThought[];
|
|
33
|
+
//# sourceMappingURL=tool-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-aggregator.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/utils/tool-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAsBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE,CA4BlF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool call extraction for Gemini conversations
|
|
3
|
+
*
|
|
4
|
+
* Extracts tool calls from Gemini's nested structure and transforms them
|
|
5
|
+
* into the standard thought format used by conversation history.
|
|
6
|
+
*
|
|
7
|
+
* Gemini Tool Structure:
|
|
8
|
+
* toolCall.result[0].functionResponse.response.output
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Extracts the result from a tool call's nested structure
|
|
12
|
+
*
|
|
13
|
+
* @param toolCall - Gemini tool call with nested result
|
|
14
|
+
* @returns Extracted result as string
|
|
15
|
+
*/
|
|
16
|
+
function extractToolResult(toolCall) {
|
|
17
|
+
const output = toolCall.result?.[0]?.functionResponse?.response?.output;
|
|
18
|
+
if (typeof output === 'string') {
|
|
19
|
+
return output;
|
|
20
|
+
}
|
|
21
|
+
if (typeof output === 'object' && output !== null) {
|
|
22
|
+
return JSON.stringify(output, null, 2);
|
|
23
|
+
}
|
|
24
|
+
return ''; // No result available
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extracts tool thoughts from Gemini messages in a turn
|
|
28
|
+
*
|
|
29
|
+
* @param geminiMessages - All Gemini messages in the turn
|
|
30
|
+
* @returns Array of tool thoughts in standard format
|
|
31
|
+
*/
|
|
32
|
+
export function extractToolThoughts(geminiMessages) {
|
|
33
|
+
const thoughts = [];
|
|
34
|
+
for (const msg of geminiMessages) {
|
|
35
|
+
if (!msg.toolCalls || msg.toolCalls.length === 0) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
for (const toolCall of msg.toolCalls) {
|
|
39
|
+
thoughts.push({
|
|
40
|
+
id: toolCall.id,
|
|
41
|
+
metadata: {
|
|
42
|
+
timestamp: toolCall.timestamp,
|
|
43
|
+
displayName: toolCall.displayName
|
|
44
|
+
},
|
|
45
|
+
in_progress: false,
|
|
46
|
+
input_text: JSON.stringify(toolCall.args),
|
|
47
|
+
message: extractToolResult(toolCall),
|
|
48
|
+
author_type: 'Tool',
|
|
49
|
+
author_name: toolCall.name,
|
|
50
|
+
output_format: 'text',
|
|
51
|
+
error: toolCall.status === 'error',
|
|
52
|
+
children: []
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return thoughts;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=tool-aggregator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-aggregator.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/utils/tool-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAwB;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC;IAExE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,EAAE,CAAC,CAAC,sBAAsB;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,cAA+B;IACjE,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,QAAQ,EAAE;oBACR,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;iBAClC;gBACD,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC;gBACpC,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,QAAQ,CAAC,IAAI;gBAC1B,aAAa,EAAE,MAAM;gBACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,OAAO;gBAClC,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn detection for Gemini conversations
|
|
3
|
+
*
|
|
4
|
+
* Detects turn boundaries in Gemini message history:
|
|
5
|
+
* - Turn starts with: type === 'user'
|
|
6
|
+
* - Turn ends at: next 'user' OR 'error'/'info'/'warning' OR EOF
|
|
7
|
+
*/
|
|
8
|
+
export interface GeminiMessage {
|
|
9
|
+
id: string;
|
|
10
|
+
type: 'user' | 'gemini' | 'error' | 'info' | 'warning';
|
|
11
|
+
timestamp: string;
|
|
12
|
+
content: string;
|
|
13
|
+
toolCalls?: GeminiToolCall[];
|
|
14
|
+
tokens?: {
|
|
15
|
+
input: number;
|
|
16
|
+
output: number;
|
|
17
|
+
cached: number;
|
|
18
|
+
thoughts: number;
|
|
19
|
+
tool: number;
|
|
20
|
+
};
|
|
21
|
+
model?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface GeminiToolCall {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
args: Record<string, unknown>;
|
|
27
|
+
result?: Array<{
|
|
28
|
+
functionResponse?: {
|
|
29
|
+
response?: {
|
|
30
|
+
output?: string | Record<string, unknown>;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}>;
|
|
34
|
+
status: 'success' | 'error';
|
|
35
|
+
timestamp: string;
|
|
36
|
+
displayName?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface TurnBoundary {
|
|
39
|
+
startIndex: number;
|
|
40
|
+
endIndex: number;
|
|
41
|
+
userMessage: GeminiMessage;
|
|
42
|
+
geminiMessages: GeminiMessage[];
|
|
43
|
+
systemMessages: GeminiMessage[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Detects turn boundaries in Gemini message history
|
|
47
|
+
*
|
|
48
|
+
* Algorithm:
|
|
49
|
+
* 1. Iterate through messages
|
|
50
|
+
* 2. When encountering 'user' message:
|
|
51
|
+
* - Close previous turn (if exists)
|
|
52
|
+
* - Start new turn
|
|
53
|
+
* 3. When encountering system message:
|
|
54
|
+
* - Close current turn (if exists)
|
|
55
|
+
* - Don't start new turn (system messages are standalone)
|
|
56
|
+
* 4. At EOF, close any open turn
|
|
57
|
+
*
|
|
58
|
+
* @param messages - Array of Gemini messages
|
|
59
|
+
* @returns Array of turn boundaries
|
|
60
|
+
*/
|
|
61
|
+
export declare function detectTurns(messages: GeminiMessage[]): TurnBoundary[];
|
|
62
|
+
/**
|
|
63
|
+
* Filters messages to only include those after the last synced message
|
|
64
|
+
*
|
|
65
|
+
* @param messages - All messages
|
|
66
|
+
* @param lastSyncedId - ID of last processed message (null for first sync)
|
|
67
|
+
* @returns Messages that haven't been processed yet
|
|
68
|
+
*/
|
|
69
|
+
export declare function filterNewMessages(messages: GeminiMessage[], lastSyncedId: string | null): GeminiMessage[];
|
|
70
|
+
//# sourceMappingURL=turn-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-detector.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/utils/turn-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,gBAAgB,CAAC,EAAE;YACjB,QAAQ,CAAC,EAAE;gBACT,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAC3C,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IACH,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,aAAa,CAAC;IAC3B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CA6BrE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,aAAa,EAAE,CAajB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn detection for Gemini conversations
|
|
3
|
+
*
|
|
4
|
+
* Detects turn boundaries in Gemini message history:
|
|
5
|
+
* - Turn starts with: type === 'user'
|
|
6
|
+
* - Turn ends at: next 'user' OR 'error'/'info'/'warning' OR EOF
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Checks if a message is a system message (error, info, warning)
|
|
10
|
+
*/
|
|
11
|
+
function isSystemMessage(msg) {
|
|
12
|
+
return msg.type === 'error' || msg.type === 'info' || msg.type === 'warning';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Extracts a single turn from a range of messages
|
|
16
|
+
*/
|
|
17
|
+
function extractTurn(messages, startIndex, endIndex) {
|
|
18
|
+
const turnMessages = messages.slice(startIndex, endIndex + 1);
|
|
19
|
+
return {
|
|
20
|
+
startIndex,
|
|
21
|
+
endIndex,
|
|
22
|
+
userMessage: turnMessages[0], // Must be user
|
|
23
|
+
geminiMessages: turnMessages.filter(m => m.type === 'gemini'),
|
|
24
|
+
systemMessages: turnMessages.filter(m => isSystemMessage(m))
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Detects turn boundaries in Gemini message history
|
|
29
|
+
*
|
|
30
|
+
* Algorithm:
|
|
31
|
+
* 1. Iterate through messages
|
|
32
|
+
* 2. When encountering 'user' message:
|
|
33
|
+
* - Close previous turn (if exists)
|
|
34
|
+
* - Start new turn
|
|
35
|
+
* 3. When encountering system message:
|
|
36
|
+
* - Close current turn (if exists)
|
|
37
|
+
* - Don't start new turn (system messages are standalone)
|
|
38
|
+
* 4. At EOF, close any open turn
|
|
39
|
+
*
|
|
40
|
+
* @param messages - Array of Gemini messages
|
|
41
|
+
* @returns Array of turn boundaries
|
|
42
|
+
*/
|
|
43
|
+
export function detectTurns(messages) {
|
|
44
|
+
const turns = [];
|
|
45
|
+
let currentTurnStart = null;
|
|
46
|
+
for (let i = 0; i < messages.length; i++) {
|
|
47
|
+
const msg = messages[i];
|
|
48
|
+
// Turn start: user message
|
|
49
|
+
if (msg.type === 'user') {
|
|
50
|
+
// Close previous turn if exists
|
|
51
|
+
if (currentTurnStart !== null) {
|
|
52
|
+
turns.push(extractTurn(messages, currentTurnStart, i - 1));
|
|
53
|
+
}
|
|
54
|
+
currentTurnStart = i;
|
|
55
|
+
}
|
|
56
|
+
// Turn end: system message
|
|
57
|
+
if (isSystemMessage(msg) && currentTurnStart !== null) {
|
|
58
|
+
turns.push(extractTurn(messages, currentTurnStart, i));
|
|
59
|
+
currentTurnStart = null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Close final turn if exists
|
|
63
|
+
if (currentTurnStart !== null) {
|
|
64
|
+
turns.push(extractTurn(messages, currentTurnStart, messages.length - 1));
|
|
65
|
+
}
|
|
66
|
+
return turns;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Filters messages to only include those after the last synced message
|
|
70
|
+
*
|
|
71
|
+
* @param messages - All messages
|
|
72
|
+
* @param lastSyncedId - ID of last processed message (null for first sync)
|
|
73
|
+
* @returns Messages that haven't been processed yet
|
|
74
|
+
*/
|
|
75
|
+
export function filterNewMessages(messages, lastSyncedId) {
|
|
76
|
+
if (!lastSyncedId) {
|
|
77
|
+
return messages; // First sync, process all
|
|
78
|
+
}
|
|
79
|
+
const lastSyncedIndex = messages.findIndex(m => m.id === lastSyncedId);
|
|
80
|
+
if (lastSyncedIndex === -1) {
|
|
81
|
+
// Last synced message not found, process all (with warning logged by caller)
|
|
82
|
+
return messages;
|
|
83
|
+
}
|
|
84
|
+
return messages.slice(lastSyncedIndex + 1);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=turn-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-detector.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/gemini/session/utils/turn-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0CH;;GAEG;AACH,SAAS,eAAe,CAAC,GAAkB;IACzC,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,QAAyB,EAAE,UAAkB,EAAE,QAAgB;IAClF,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,UAAU;QACV,QAAQ;QACR,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe;QAC7C,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC7D,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,QAAyB;IACnD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,2BAA2B;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,gCAAgC;YAChC,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,2BAA2B;QAC3B,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAyB,EACzB,YAA2B;IAE3B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,CAAC,0BAA0B;IAC7C,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IAEvE,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,6EAA6E;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -6,8 +6,13 @@ export { BUILTIN_AGENT_NAME } from './plugins/codemie-code.plugin.js';
|
|
|
6
6
|
* Uses plugin-based architecture for easy extensibility
|
|
7
7
|
*/
|
|
8
8
|
export declare class AgentRegistry {
|
|
9
|
-
private static adapters;
|
|
10
|
-
private static analyticsAdapters;
|
|
9
|
+
private static readonly adapters;
|
|
10
|
+
private static readonly analyticsAdapters;
|
|
11
|
+
private static initialized;
|
|
12
|
+
/**
|
|
13
|
+
* Lazy initialization - registers all plugins on first access
|
|
14
|
+
*/
|
|
15
|
+
private static initialize;
|
|
11
16
|
/**
|
|
12
17
|
* Register a plugin and its analytics adapter (if available)
|
|
13
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;IAC1F,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAYzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKvD,MAAM,CAAC,YAAY,IAAI,YAAY,EAAE;IAKrC,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;WAKnB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAW1D;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAKhF;;OAEG;IACH,MAAM,CAAC,uBAAuB,IAAI,qBAAqB,EAAE;CAI1D"}
|
package/dist/agents/registry.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { ClaudePlugin } from './plugins/claude.plugin.js';
|
|
2
|
-
import { CodexPlugin } from './plugins/codex.plugin.js';
|
|
1
|
+
import { ClaudePlugin } from './plugins/claude/claude.plugin.js';
|
|
3
2
|
import { CodeMieCodePlugin } from './plugins/codemie-code.plugin.js';
|
|
4
|
-
import { GeminiPlugin } from './plugins/gemini.plugin.js';
|
|
5
|
-
import { DeepAgentsPlugin } from './plugins/deepagents.plugin.js';
|
|
3
|
+
import { GeminiPlugin } from './plugins/gemini/gemini.plugin.js';
|
|
6
4
|
export { BUILTIN_AGENT_NAME } from './plugins/codemie-code.plugin.js';
|
|
7
5
|
/**
|
|
8
6
|
* Central registry for all agents
|
|
@@ -11,13 +9,18 @@ export { BUILTIN_AGENT_NAME } from './plugins/codemie-code.plugin.js';
|
|
|
11
9
|
export class AgentRegistry {
|
|
12
10
|
static adapters = new Map();
|
|
13
11
|
static analyticsAdapters = new Map();
|
|
14
|
-
static
|
|
15
|
-
|
|
12
|
+
static initialized = false;
|
|
13
|
+
/**
|
|
14
|
+
* Lazy initialization - registers all plugins on first access
|
|
15
|
+
*/
|
|
16
|
+
static initialize() {
|
|
17
|
+
if (AgentRegistry.initialized) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
16
20
|
AgentRegistry.registerPlugin(new CodeMieCodePlugin());
|
|
17
21
|
AgentRegistry.registerPlugin(new ClaudePlugin());
|
|
18
|
-
AgentRegistry.registerPlugin(new CodexPlugin());
|
|
19
22
|
AgentRegistry.registerPlugin(new GeminiPlugin());
|
|
20
|
-
AgentRegistry.
|
|
23
|
+
AgentRegistry.initialized = true;
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
26
|
* Register a plugin and its analytics adapter (if available)
|
|
@@ -31,15 +34,19 @@ export class AgentRegistry {
|
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
static getAgent(name) {
|
|
37
|
+
AgentRegistry.initialize();
|
|
34
38
|
return AgentRegistry.adapters.get(name);
|
|
35
39
|
}
|
|
36
40
|
static getAllAgents() {
|
|
41
|
+
AgentRegistry.initialize();
|
|
37
42
|
return Array.from(AgentRegistry.adapters.values());
|
|
38
43
|
}
|
|
39
44
|
static getAgentNames() {
|
|
45
|
+
AgentRegistry.initialize();
|
|
40
46
|
return Array.from(AgentRegistry.adapters.keys());
|
|
41
47
|
}
|
|
42
48
|
static async getInstalledAgents() {
|
|
49
|
+
AgentRegistry.initialize();
|
|
43
50
|
const agents = [];
|
|
44
51
|
for (const adapter of AgentRegistry.adapters.values()) {
|
|
45
52
|
if (await adapter.isInstalled()) {
|
|
@@ -52,12 +59,14 @@ export class AgentRegistry {
|
|
|
52
59
|
* Get analytics adapter for a specific agent
|
|
53
60
|
*/
|
|
54
61
|
static getAnalyticsAdapter(agentName) {
|
|
62
|
+
AgentRegistry.initialize();
|
|
55
63
|
return AgentRegistry.analyticsAdapters.get(agentName);
|
|
56
64
|
}
|
|
57
65
|
/**
|
|
58
66
|
* Get all registered analytics adapters
|
|
59
67
|
*/
|
|
60
68
|
static getAllAnalyticsAdapters() {
|
|
69
|
+
AgentRegistry.initialize();
|
|
61
70
|
return Array.from(AgentRegistry.analyticsAdapters.values());
|
|
62
71
|
}
|
|
63
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAU,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAChE,MAAM,CAAU,iBAAiB,GAAuC,IAAI,GAAG,EAAE,CAAC;IAClF,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAEnC;;OAEG;IACK,MAAM,CAAC,UAAU;QACvB,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,aAAa,CAAC,cAAc,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QACtD,aAAa,CAAC,cAAc,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QACjD,aAAa,CAAC,cAAc,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAEjD,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,MAAoB;QAChD,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEhD,0DAA0D;QAC1D,MAAM,QAAQ,GAAI,MAAc,CAAC,QAAQ,CAAC;QAC1C,IAAI,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YAC/B,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB;QAC7B,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAiB;QAC1C,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB;QAC5B,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC"}
|