@codemieai/code 0.0.57 → 0.1.0
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 +165 -19
- package/bin/proxy-daemon.js +10 -0
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +3 -0
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/session/SessionStore.d.ts +4 -0
- package/dist/agents/core/session/SessionStore.d.ts.map +1 -1
- package/dist/agents/core/session/SessionStore.js +40 -1
- package/dist/agents/core/session/SessionStore.js.map +1 -1
- package/dist/agents/core/session/types.d.ts +7 -0
- package/dist/agents/core/session/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +18 -0
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/plugin/commands/README.md +2 -31
- package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +5 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +42 -43
- package/dist/agents/plugins/claude/plugin/commands/codemie-subagents.md +5 -0
- package/dist/agents/plugins/claude/plugin/commands/handoff.md +56 -0
- package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +5 -0
- package/dist/agents/plugins/claude/plugin/hooks/hooks.json +1 -1
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-rewrite.sh +101 -0
- package/dist/agents/plugins/claude/plugin/skills/msgraph/README.md +4 -1
- package/dist/agents/plugins/claude/plugin/skills/msgraph/SKILL.md +27 -8
- package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +63 -3
- package/dist/agents/plugins/claude/plugin/skills/report-issue/SKILL.md +1 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +1 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +32 -20
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +2 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +24 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
- package/dist/assets/demo.gif +0 -0
- package/dist/assets/skills-sh-egress-guard.cjs +166 -0
- package/dist/bin/proxy-daemon.d.ts +2 -0
- package/dist/bin/proxy-daemon.d.ts.map +1 -0
- package/dist/bin/proxy-daemon.js +138 -0
- package/dist/bin/proxy-daemon.js.map +1 -0
- package/dist/cli/commands/assistants/setup/constants.d.ts +1 -25
- package/dist/cli/commands/assistants/setup/constants.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/constants.js +1 -20
- package/dist/cli/commands/assistants/setup/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts +4 -4
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +11 -10
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +4 -4
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +11 -9
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts +4 -18
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +10 -60
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts +0 -8
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +20 -164
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/actions.d.ts +1 -30
- package/dist/cli/commands/assistants/setup/selection/actions.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/actions.js +1 -320
- package/dist/cli/commands/assistants/setup/selection/actions.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/constants.d.ts +3 -65
- package/dist/cli/commands/assistants/setup/selection/constants.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/constants.js +4 -81
- package/dist/cli/commands/assistants/setup/selection/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/index.d.ts +1 -9
- package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/index.js +14 -34
- package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts +1 -19
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +1 -338
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/types.d.ts +7 -23
- package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts +0 -8
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/ui.js +7 -123
- package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +10 -1
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +50 -0
- package/dist/cli/commands/proxy/connectors/desktop.d.ts +65 -0
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -0
- package/dist/cli/commands/proxy/connectors/desktop.js +218 -0
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -0
- package/dist/cli/commands/proxy/daemon-manager.d.ts +35 -0
- package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -0
- package/dist/cli/commands/proxy/daemon-manager.js +107 -0
- package/dist/cli/commands/proxy/daemon-manager.js.map +1 -0
- package/dist/cli/commands/proxy/index.d.ts +3 -0
- package/dist/cli/commands/proxy/index.d.ts.map +1 -0
- package/dist/cli/commands/proxy/index.js +258 -0
- package/dist/cli/commands/proxy/index.js.map +1 -0
- package/dist/cli/commands/proxy/inspect-desktop.d.ts +28 -0
- package/dist/cli/commands/proxy/inspect-desktop.d.ts.map +1 -0
- package/dist/cli/commands/proxy/inspect-desktop.js +134 -0
- package/dist/cli/commands/proxy/inspect-desktop.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +2 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shared/constants.d.ts +15 -0
- package/dist/cli/commands/shared/constants.d.ts.map +1 -0
- package/dist/cli/commands/shared/constants.js +10 -0
- package/dist/cli/commands/shared/constants.js.map +1 -0
- package/dist/cli/commands/shared/helpers.d.ts +12 -0
- package/dist/cli/commands/shared/helpers.d.ts.map +1 -0
- package/dist/cli/commands/shared/helpers.js +54 -0
- package/dist/cli/commands/shared/helpers.js.map +1 -0
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts +6 -0
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -0
- package/dist/cli/commands/shared/prompts/storage-scope.js +84 -0
- package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -0
- package/dist/cli/commands/shared/selection/actions.d.ts +40 -0
- package/dist/cli/commands/shared/selection/actions.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/actions.js +264 -0
- package/dist/cli/commands/shared/selection/actions.js.map +1 -0
- package/dist/cli/commands/shared/selection/constants.d.ts +68 -0
- package/dist/cli/commands/shared/selection/constants.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/constants.js +70 -0
- package/dist/cli/commands/shared/selection/constants.js.map +1 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.d.ts +16 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.js +276 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.js.map +1 -0
- package/dist/cli/commands/shared/selection/types.d.ts +31 -0
- package/dist/cli/commands/shared/selection/types.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/types.js +2 -0
- package/dist/cli/commands/shared/selection/types.js.map +1 -0
- package/dist/cli/commands/shared/selection/ui.d.ts +9 -0
- package/dist/cli/commands/shared/selection/ui.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/ui.js +92 -0
- package/dist/cli/commands/shared/selection/ui.js.map +1 -0
- package/dist/cli/commands/skills/add.d.ts +9 -0
- package/dist/cli/commands/skills/add.d.ts.map +1 -0
- package/dist/cli/commands/skills/add.js +187 -0
- package/dist/cli/commands/skills/add.js.map +1 -0
- package/dist/cli/commands/skills/find.d.ts +17 -0
- package/dist/cli/commands/skills/find.d.ts.map +1 -0
- package/dist/cli/commands/skills/find.js +94 -0
- package/dist/cli/commands/skills/find.js.map +1 -0
- package/dist/cli/commands/skills/index.d.ts +10 -0
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +23 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/commands/skills/lib/agent-detection.d.ts +27 -0
- package/dist/cli/commands/skills/lib/agent-detection.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/agent-detection.js +50 -0
- package/dist/cli/commands/skills/lib/agent-detection.js.map +1 -0
- package/dist/cli/commands/skills/lib/error-classify.d.ts +14 -0
- package/dist/cli/commands/skills/lib/error-classify.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/error-classify.js +64 -0
- package/dist/cli/commands/skills/lib/error-classify.js.map +1 -0
- package/dist/cli/commands/skills/lib/require-auth.d.ts +17 -0
- package/dist/cli/commands/skills/lib/require-auth.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/require-auth.js +44 -0
- package/dist/cli/commands/skills/lib/require-auth.js.map +1 -0
- package/dist/cli/commands/skills/lib/result-render.d.ts +26 -0
- package/dist/cli/commands/skills/lib/result-render.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/result-render.js +77 -0
- package/dist/cli/commands/skills/lib/result-render.js.map +1 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.d.ts +46 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.js +217 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.js.map +1 -0
- package/dist/cli/commands/skills/lib/sanitize.d.ts +17 -0
- package/dist/cli/commands/skills/lib/sanitize.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/sanitize.js +73 -0
- package/dist/cli/commands/skills/lib/sanitize.js.map +1 -0
- package/dist/cli/commands/skills/lib/skills-metrics.d.ts +74 -0
- package/dist/cli/commands/skills/lib/skills-metrics.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/skills-metrics.js +268 -0
- package/dist/cli/commands/skills/lib/skills-metrics.js.map +1 -0
- package/dist/cli/commands/skills/lib/skills-search-client.d.ts +36 -0
- package/dist/cli/commands/skills/lib/skills-search-client.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/skills-search-client.js +147 -0
- package/dist/cli/commands/skills/lib/skills-search-client.js.map +1 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts +10 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.js +33 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.js.map +1 -0
- package/dist/cli/commands/skills/list.d.ts +13 -0
- package/dist/cli/commands/skills/list.d.ts.map +1 -0
- package/dist/cli/commands/skills/list.js +55 -0
- package/dist/cli/commands/skills/list.js.map +1 -0
- package/dist/cli/commands/skills/remove.d.ts +11 -0
- package/dist/cli/commands/skills/remove.d.ts.map +1 -0
- package/dist/cli/commands/skills/remove.js +93 -0
- package/dist/cli/commands/skills/remove.js.map +1 -0
- package/dist/cli/commands/skills/setup/constants.d.ts +2 -0
- package/dist/cli/commands/skills/setup/constants.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/constants.js +2 -0
- package/dist/cli/commands/skills/setup/constants.js.map +1 -0
- package/dist/cli/commands/skills/setup/data.d.ts +28 -0
- package/dist/cli/commands/skills/setup/data.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/data.js +79 -0
- package/dist/cli/commands/skills/setup/data.js.map +1 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts +12 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js +94 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js.map +1 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts +12 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/helpers.js +31 -0
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -0
- package/dist/cli/commands/skills/setup/index.d.ts +5 -0
- package/dist/cli/commands/skills/setup/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/index.js +137 -0
- package/dist/cli/commands/skills/setup/index.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/actions.d.ts +2 -0
- package/dist/cli/commands/skills/setup/selection/actions.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/actions.js +2 -0
- package/dist/cli/commands/skills/setup/selection/actions.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/constants.d.ts +11 -0
- package/dist/cli/commands/skills/setup/selection/constants.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/constants.js +11 -0
- package/dist/cli/commands/skills/setup/selection/constants.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/index.d.ts +13 -0
- package/dist/cli/commands/skills/setup/selection/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/index.js +113 -0
- package/dist/cli/commands/skills/setup/selection/index.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.d.ts +2 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.js +2 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/types.d.ts +13 -0
- package/dist/cli/commands/skills/setup/selection/types.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/types.js +2 -0
- package/dist/cli/commands/skills/setup/selection/types.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/ui.d.ts +3 -0
- package/dist/cli/commands/skills/setup/selection/ui.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/ui.js +68 -0
- package/dist/cli/commands/skills/setup/selection/ui.js.map +1 -0
- package/dist/cli/commands/skills/setup/sync.d.ts +13 -0
- package/dist/cli/commands/skills/setup/sync.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/sync.js +46 -0
- package/dist/cli/commands/skills/setup/sync.js.map +1 -0
- package/dist/cli/commands/skills/update.d.ts +7 -0
- package/dist/cli/commands/skills/update.d.ts.map +1 -0
- package/dist/cli/commands/skills/update.js +71 -0
- package/dist/cli/commands/skills/update.js.map +1 -0
- package/dist/cli/first-time.d.ts.map +1 -1
- package/dist/cli/first-time.js +4 -0
- package/dist/cli/first-time.js.map +1 -1
- package/dist/cli/index.js +14 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +14 -0
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/providers/core/types.d.ts +1 -1
- package/dist/providers/core/types.d.ts.map +1 -1
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.d.ts.map +1 -1
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js +26 -2
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +31 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +148 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts +9 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js +36 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +12 -12
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +15 -15
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +4 -0
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +4 -3
- package/dist/providers/plugins/sso/proxy/sso.proxy.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 +3 -3
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/providers/plugins/sso/sso.models.js +2 -2
- package/dist/providers/plugins/sso/sso.models.js.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js +6 -10
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts +15 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js +117 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts +3 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +138 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.d.ts +4 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.js +53 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts +4 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js +60 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts +4 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js +19 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js.map +1 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +23 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +243 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -0
- package/dist/telemetry/runtime/checkpoints.d.ts +10 -0
- package/dist/telemetry/runtime/checkpoints.d.ts.map +1 -0
- package/dist/telemetry/runtime/checkpoints.js +8 -0
- package/dist/telemetry/runtime/checkpoints.js.map +1 -0
- package/dist/telemetry/runtime/types.d.ts +32 -0
- package/dist/telemetry/runtime/types.d.ts.map +1 -0
- package/dist/telemetry/runtime/types.js +2 -0
- package/dist/telemetry/runtime/types.js.map +1 -0
- package/dist/utils/config.d.ts +14 -3
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +95 -5
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/processes.d.ts +6 -0
- package/dist/utils/processes.d.ts.map +1 -1
- package/dist/utils/processes.js +13 -3
- package/dist/utils/processes.js.map +1 -1
- package/package.json +25 -11
- package/scripts/README.md +15 -1
- package/scripts/copy-plugins.js +5 -0
- package/scripts/prepare-install-artifacts.mjs +66 -0
- package/scripts/sonar/package.json +3 -0
- package/scripts/sonar/run-local-sonar.js +405 -0
- package/scripts/test-desktop-telemetry.js +229 -0
- package/scripts/test-proxy-endpoint.js +173 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-commit.md +0 -31
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-auto-wrapper.sh +0 -81
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts +0 -30
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts.map +0 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.js +0 -111
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.js.map +0 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Send a sample /v1/messages request to the local CodeMie proxy daemon.
|
|
4
|
+
*
|
|
5
|
+
* - Auto-discovers URL and gateway key from ~/.codemie/proxy-daemon.json
|
|
6
|
+
* (override with --url and --gateway-key)
|
|
7
|
+
* - Sends Anthropic-style headers and a tiny payload
|
|
8
|
+
* - Supports both buffered and streaming (SSE) responses
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* node scripts/test-proxy-endpoint.js # auto-discover, non-streaming
|
|
12
|
+
* node scripts/test-proxy-endpoint.js --stream # SSE streaming
|
|
13
|
+
* node scripts/test-proxy-endpoint.js --url http://localhost:4001 --gateway-key codemie-proxy
|
|
14
|
+
* node scripts/test-proxy-endpoint.js --model claude-sonnet-4-5 --message "Hello"
|
|
15
|
+
*/
|
|
16
|
+
import { readFile } from 'node:fs/promises';
|
|
17
|
+
import { join } from 'node:path';
|
|
18
|
+
import { homedir } from 'node:os';
|
|
19
|
+
|
|
20
|
+
const STATE_FILE = process.env.CODEMIE_HOME
|
|
21
|
+
? join(process.env.CODEMIE_HOME, 'proxy-daemon.json')
|
|
22
|
+
: join(homedir(), '.codemie', 'proxy-daemon.json');
|
|
23
|
+
|
|
24
|
+
function printUsage() {
|
|
25
|
+
console.log(`Usage: node scripts/test-proxy-endpoint.js [options]
|
|
26
|
+
|
|
27
|
+
Options:
|
|
28
|
+
--url <base-url> Proxy base URL (default: read from state file)
|
|
29
|
+
--gateway-key <key> Static bearer key (default: read from state file)
|
|
30
|
+
--endpoint <path> Endpoint path (default: /v1/messages)
|
|
31
|
+
--model <id> Model ID (default: claude-sonnet-4-5)
|
|
32
|
+
--message <text> Prompt text (default: "Test proxy endpoint")
|
|
33
|
+
--max-tokens <n> Max tokens (default: 32)
|
|
34
|
+
--stream Use SSE streaming
|
|
35
|
+
--no-anthropic-version Don't send anthropic-version header
|
|
36
|
+
-h, --help Show this help`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function parseArgs(argv) {
|
|
40
|
+
const opts = {
|
|
41
|
+
endpoint: '/v1/messages',
|
|
42
|
+
message: 'Test proxy endpoint',
|
|
43
|
+
model: 'claude-sonnet-4-5',
|
|
44
|
+
maxTokens: 32,
|
|
45
|
+
stream: false,
|
|
46
|
+
sendAnthropicVersion: true,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
50
|
+
const arg = argv[i];
|
|
51
|
+
if (arg === '--help' || arg === '-h') { opts.help = true; return opts; }
|
|
52
|
+
if (arg === '--url') { opts.url = argv[++i]; continue; }
|
|
53
|
+
if (arg === '--gateway-key') { opts.gatewayKey = argv[++i]; continue; }
|
|
54
|
+
if (arg === '--endpoint') { opts.endpoint = argv[++i] || opts.endpoint; continue; }
|
|
55
|
+
if (arg === '--message') { opts.message = argv[++i] || opts.message; continue; }
|
|
56
|
+
if (arg === '--model') { opts.model = argv[++i] || opts.model; continue; }
|
|
57
|
+
if (arg === '--max-tokens') {
|
|
58
|
+
const v = Number.parseInt(argv[++i] || '', 10);
|
|
59
|
+
if (Number.isFinite(v) && v > 0) opts.maxTokens = v;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (arg === '--stream') { opts.stream = true; continue; }
|
|
63
|
+
if (arg === '--no-anthropic-version') { opts.sendAnthropicVersion = false; continue; }
|
|
64
|
+
}
|
|
65
|
+
return opts;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async function loadDaemonState() {
|
|
69
|
+
try {
|
|
70
|
+
const raw = await readFile(STATE_FILE, 'utf-8');
|
|
71
|
+
return JSON.parse(raw);
|
|
72
|
+
} catch {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
async function main() {
|
|
78
|
+
const args = parseArgs(process.argv.slice(2));
|
|
79
|
+
if (args.help) { printUsage(); process.exit(0); }
|
|
80
|
+
|
|
81
|
+
if (!args.url || !args.gatewayKey) {
|
|
82
|
+
const state = await loadDaemonState();
|
|
83
|
+
if (state) {
|
|
84
|
+
args.url ??= state.url;
|
|
85
|
+
args.gatewayKey ??= state.gatewayKey;
|
|
86
|
+
console.log(`[test] Using daemon at ${args.url} (profile: ${state.profile})`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (!args.url) {
|
|
91
|
+
console.error(`No proxy URL. Provide --url or start the daemon: codemie proxy start`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
if (!args.gatewayKey) {
|
|
95
|
+
console.error(`No gateway key. Provide --gateway-key or start the daemon: codemie proxy start`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
let baseUrl;
|
|
100
|
+
try { baseUrl = new URL(args.url); }
|
|
101
|
+
catch { console.error(`Invalid URL: ${args.url}`); process.exit(1); }
|
|
102
|
+
|
|
103
|
+
const endpoint = args.endpoint.startsWith('/') ? args.endpoint : `/${args.endpoint}`;
|
|
104
|
+
const targetUrl = new URL(endpoint, baseUrl);
|
|
105
|
+
|
|
106
|
+
const body = {
|
|
107
|
+
model: args.model,
|
|
108
|
+
messages: [{ role: 'user', content: args.message }],
|
|
109
|
+
max_tokens: args.maxTokens,
|
|
110
|
+
stream: args.stream,
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const headers = {
|
|
114
|
+
'Content-Type': 'application/json',
|
|
115
|
+
Accept: args.stream ? 'text/event-stream' : 'application/json',
|
|
116
|
+
Authorization: `Bearer ${args.gatewayKey}`,
|
|
117
|
+
};
|
|
118
|
+
if (args.sendAnthropicVersion) headers['anthropic-version'] = '2023-06-01';
|
|
119
|
+
|
|
120
|
+
console.log(`[test] POST ${targetUrl.href}`);
|
|
121
|
+
console.log(`[test] Headers: ${JSON.stringify({ ...headers, Authorization: 'Bearer ***' })}`);
|
|
122
|
+
console.log(`[test] Body: ${JSON.stringify(body)}`);
|
|
123
|
+
|
|
124
|
+
const startMs = Date.now();
|
|
125
|
+
let response;
|
|
126
|
+
try {
|
|
127
|
+
response = await fetch(targetUrl, {
|
|
128
|
+
method: 'POST',
|
|
129
|
+
headers,
|
|
130
|
+
body: JSON.stringify(body),
|
|
131
|
+
});
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error(`[test] Request failed: ${error.message}`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const ttfbMs = Date.now() - startMs;
|
|
138
|
+
console.log(`\n[test] Status: ${response.status} ${response.statusText} (TTFB ${ttfbMs}ms)`);
|
|
139
|
+
console.log(`[test] Response headers:`);
|
|
140
|
+
for (const [k, v] of response.headers.entries()) {
|
|
141
|
+
console.log(` ${k}: ${v}`);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (args.stream) {
|
|
145
|
+
if (!response.body) {
|
|
146
|
+
console.error('[test] No response body for streaming');
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
console.log('\n[test] --- SSE stream ---');
|
|
150
|
+
const reader = response.body.getReader();
|
|
151
|
+
const decoder = new TextDecoder();
|
|
152
|
+
let chunkCount = 0;
|
|
153
|
+
let totalBytes = 0;
|
|
154
|
+
while (true) {
|
|
155
|
+
const { value, done } = await reader.read();
|
|
156
|
+
if (done) break;
|
|
157
|
+
chunkCount += 1;
|
|
158
|
+
totalBytes += value.length;
|
|
159
|
+
process.stdout.write(decoder.decode(value, { stream: true }));
|
|
160
|
+
}
|
|
161
|
+
const totalMs = Date.now() - startMs;
|
|
162
|
+
console.log(`\n[test] --- end (${chunkCount} chunks, ${totalBytes} bytes, ${totalMs}ms total) ---`);
|
|
163
|
+
} else {
|
|
164
|
+
const text = await response.text();
|
|
165
|
+
const totalMs = Date.now() - startMs;
|
|
166
|
+
console.log(`\n[test] Body (${text.length} bytes, ${totalMs}ms total):`);
|
|
167
|
+
console.log(text);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (!response.ok) process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
main().catch(err => { console.error(err); process.exit(1); });
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: Bash(git add:*), Bash(git commit:*), Bash(git checkout:*)
|
|
3
|
-
description: Create a git commit (not on main branch)
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Context
|
|
7
|
-
|
|
8
|
-
- Current branch: !`git branch --show-current`
|
|
9
|
-
- Current git status: !`git status`
|
|
10
|
-
- Current git diff (staged and unstaged changes): !`git diff HEAD`
|
|
11
|
-
- Recent commits: !`git log --oneline -5`
|
|
12
|
-
|
|
13
|
-
## Your task
|
|
14
|
-
|
|
15
|
-
Based on the above changes, create a single git commit.
|
|
16
|
-
|
|
17
|
-
**IMPORTANT**: If the current branch is `main` or `master`:
|
|
18
|
-
1. Analyze the changes to determine the type (feat, fix, refactor, etc.)
|
|
19
|
-
2. Suggest a branch name in format `<type>/<short-description>` (e.g., `feat/add-auth-header-support`, `fix/proxy-timeout-issue`)
|
|
20
|
-
3. Ask user to confirm the branch name or provide an alternative
|
|
21
|
-
4. After confirmation, create the branch with `git checkout -b <branch-name>` and proceed with the commit
|
|
22
|
-
|
|
23
|
-
If on a feature branch:
|
|
24
|
-
1. Stage all relevant changes
|
|
25
|
-
2. Create a commit message following commitlint rules:
|
|
26
|
-
- Format: `<type>(<scope>): <subject>` or `<type>: <subject>`
|
|
27
|
-
- Types: feat, fix, docs, style, refactor, perf, test, chore, ci, revert
|
|
28
|
-
- Scopes (optional): cli, agents, providers, config, proxy, workflows, ci, analytics, utils, deps, tests
|
|
29
|
-
- Subject: max 100 characters, lowercase start, no period at end
|
|
30
|
-
|
|
31
|
-
You have the capability to call multiple tools in a single response. Stage and create the commit using a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# RTK Auto-Wrapper Hook
|
|
3
|
-
# Automatically wraps high-verbosity commands with RTK for token optimization
|
|
4
|
-
#
|
|
5
|
-
# Hook: PreToolUse
|
|
6
|
-
# Matcher: Bash
|
|
7
|
-
# Purpose: Intercept bash commands and suggest RTK wrapper if applicable
|
|
8
|
-
#
|
|
9
|
-
# Installation:
|
|
10
|
-
# 1. Copy to .claude/hooks/bash/rtk-auto-wrapper.sh
|
|
11
|
-
# 2. Make executable: chmod +x .claude/hooks/bash/rtk-auto-wrapper.sh
|
|
12
|
-
# 3. Add to settings.json:
|
|
13
|
-
# {
|
|
14
|
-
# "hooks": {
|
|
15
|
-
# "PreToolUse": [{
|
|
16
|
-
# "matcher": "Bash",
|
|
17
|
-
# "hooks": [".claude/hooks/bash/rtk-auto-wrapper.sh"]
|
|
18
|
-
# }]
|
|
19
|
-
# }
|
|
20
|
-
# }
|
|
21
|
-
#
|
|
22
|
-
# Or use `rtk init` for automatic hook setup.
|
|
23
|
-
|
|
24
|
-
# Check if RTK is installed
|
|
25
|
-
if ! command -v rtk &> /dev/null; then
|
|
26
|
-
# RTK not installed, skip silently
|
|
27
|
-
exit 0
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
# Parse tool input to get the bash command
|
|
31
|
-
COMMAND=$(echo "$TOOL_INPUT" | jq -r '.command // empty' 2>/dev/null)
|
|
32
|
-
|
|
33
|
-
if [ -z "$COMMAND" ]; then
|
|
34
|
-
# No command found, continue
|
|
35
|
-
exit 0
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
# Define RTK-optimizable commands with their savings
|
|
39
|
-
declare -A RTK_COMMANDS=(
|
|
40
|
-
["git log"]="92.3"
|
|
41
|
-
["git status"]="76.0"
|
|
42
|
-
["git diff"]="55.9"
|
|
43
|
-
["find"]="76.3"
|
|
44
|
-
["cargo test"]="90.0"
|
|
45
|
-
["cargo build"]="80.0"
|
|
46
|
-
["cargo clippy"]="80.0"
|
|
47
|
-
["pnpm list"]="82.0"
|
|
48
|
-
["pnpm outdated"]="90.0"
|
|
49
|
-
["pnpm test"]="90.0"
|
|
50
|
-
["python pytest"]="90.0"
|
|
51
|
-
["python -m pytest"]="90.0"
|
|
52
|
-
["go test"]="90.0"
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
# Check if command matches RTK-optimizable pattern
|
|
56
|
-
for cmd in "${!RTK_COMMANDS[@]}"; do
|
|
57
|
-
if [[ "$COMMAND" == "$cmd"* ]] && [[ "$COMMAND" != "rtk "* ]]; then
|
|
58
|
-
savings="${RTK_COMMANDS[$cmd]}"
|
|
59
|
-
|
|
60
|
-
# Suggest RTK wrapper
|
|
61
|
-
cat << EOF
|
|
62
|
-
RTK Optimization Available
|
|
63
|
-
|
|
64
|
-
Command: $COMMAND
|
|
65
|
-
Suggested: rtk $COMMAND
|
|
66
|
-
Token Savings: ~${savings}%
|
|
67
|
-
|
|
68
|
-
Using RTK wrapper automatically.
|
|
69
|
-
EOF
|
|
70
|
-
|
|
71
|
-
# Modify command to use RTK
|
|
72
|
-
# Note: This is informational only - actual command modification
|
|
73
|
-
# requires additionalContext return (Claude Code v2.1.9+)
|
|
74
|
-
|
|
75
|
-
# For now, just inform user
|
|
76
|
-
exit 0
|
|
77
|
-
fi
|
|
78
|
-
done
|
|
79
|
-
|
|
80
|
-
# Continue with original command
|
|
81
|
-
exit 0
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Thinking Transformer Plugin
|
|
3
|
-
* Priority: 16 (runs after Request Sanitizer at 15, before header injection at 20)
|
|
4
|
-
*
|
|
5
|
-
* Transforms thinking parameters for Claude models that require the new adaptive
|
|
6
|
-
* thinking API (e.g. claude-opus-4-7).
|
|
7
|
-
*
|
|
8
|
-
* Problem: Claude Code sends `thinking: { type: "enabled", budget_tokens: N }`
|
|
9
|
-
* for Opus models. claude-opus-4-7 rejects this with HTTP 400:
|
|
10
|
-
* "thinking.type.enabled" is not supported for this model. Use
|
|
11
|
-
* "thinking.type.adaptive" and "output_config.effort" instead.
|
|
12
|
-
*
|
|
13
|
-
* Fix: When the request model matches a Claude 4.7+ pattern:
|
|
14
|
-
* - "enabled" → thinking: { type: "adaptive" } + output_config.effort (derived
|
|
15
|
-
* from budget_tokens; only written if not already present)
|
|
16
|
-
* - "disabled" → delete the thinking field entirely (model does not accept this value)
|
|
17
|
-
*
|
|
18
|
-
* Scope: Only enabled for codemie-claude agent (Claude Code via SSO proxy).
|
|
19
|
-
*
|
|
20
|
-
* To add support for a new model: append a pattern to ADAPTIVE_THINKING_MODEL_PATTERNS.
|
|
21
|
-
*/
|
|
22
|
-
import { ProxyPlugin, PluginContext, ProxyInterceptor } from './types.js';
|
|
23
|
-
export declare class ClaudeThinkingTransformerPlugin implements ProxyPlugin {
|
|
24
|
-
id: string;
|
|
25
|
-
name: string;
|
|
26
|
-
version: string;
|
|
27
|
-
priority: number;
|
|
28
|
-
createInterceptor(context: PluginContext): Promise<ProxyInterceptor>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=claude-thinking-transformer.plugin.d.ts.map
|
package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-thinking-transformer.plugin.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiC1E,qBAAa,+BAAgC,YAAW,WAAW;IACjE,EAAE,SAAgD;IAClD,IAAI,SAAiC;IACrC,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAS3E"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Thinking Transformer Plugin
|
|
3
|
-
* Priority: 16 (runs after Request Sanitizer at 15, before header injection at 20)
|
|
4
|
-
*
|
|
5
|
-
* Transforms thinking parameters for Claude models that require the new adaptive
|
|
6
|
-
* thinking API (e.g. claude-opus-4-7).
|
|
7
|
-
*
|
|
8
|
-
* Problem: Claude Code sends `thinking: { type: "enabled", budget_tokens: N }`
|
|
9
|
-
* for Opus models. claude-opus-4-7 rejects this with HTTP 400:
|
|
10
|
-
* "thinking.type.enabled" is not supported for this model. Use
|
|
11
|
-
* "thinking.type.adaptive" and "output_config.effort" instead.
|
|
12
|
-
*
|
|
13
|
-
* Fix: When the request model matches a Claude 4.7+ pattern:
|
|
14
|
-
* - "enabled" → thinking: { type: "adaptive" } + output_config.effort (derived
|
|
15
|
-
* from budget_tokens; only written if not already present)
|
|
16
|
-
* - "disabled" → delete the thinking field entirely (model does not accept this value)
|
|
17
|
-
*
|
|
18
|
-
* Scope: Only enabled for codemie-claude agent (Claude Code via SSO proxy).
|
|
19
|
-
*
|
|
20
|
-
* To add support for a new model: append a pattern to ADAPTIVE_THINKING_MODEL_PATTERNS.
|
|
21
|
-
*/
|
|
22
|
-
import { logger } from '../../../../../utils/logger.js';
|
|
23
|
-
/**
|
|
24
|
-
* Model name patterns that require the adaptive thinking API.
|
|
25
|
-
* Matches claude-opus-4-7, claude-opus-4-7-20250514, and future date-tagged variants.
|
|
26
|
-
* Extend this list as Anthropic migrates additional models — see EPMCDME-11821.
|
|
27
|
-
*/
|
|
28
|
-
const ADAPTIVE_THINKING_MODEL_PATTERNS = [
|
|
29
|
-
/claude-opus-4-[7-9](?:[^0-9]|$)/i, // claude-opus-4-7/8/9 and date-tagged variants (e.g. claude-opus-4-7-20250514); excludes claude-opus-4-70+
|
|
30
|
-
];
|
|
31
|
-
function modelRequiresAdaptiveThinking(modelName) {
|
|
32
|
-
return ADAPTIVE_THINKING_MODEL_PATTERNS.some(p => p.test(modelName));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Map legacy budget_tokens to the closest output_config.effort level.
|
|
36
|
-
*
|
|
37
|
-
* budget_tokens was the maximum token budget for thinking in the old API.
|
|
38
|
-
* effort is a coarser control in the new API: low / medium / high.
|
|
39
|
-
*/
|
|
40
|
-
function budgetTokensToEffort(budgetTokens) {
|
|
41
|
-
const tokens = typeof budgetTokens === 'number' ? budgetTokens : 0;
|
|
42
|
-
if (tokens <= 2048)
|
|
43
|
-
return 'low';
|
|
44
|
-
if (tokens <= 8192)
|
|
45
|
-
return 'medium';
|
|
46
|
-
return 'high';
|
|
47
|
-
}
|
|
48
|
-
/** Agent that sends Claude API requests through the codemie proxy */
|
|
49
|
-
const ALLOWED_AGENT = 'codemie-claude';
|
|
50
|
-
export class ClaudeThinkingTransformerPlugin {
|
|
51
|
-
id = '@codemie/proxy-claude-thinking-transformer';
|
|
52
|
-
name = 'Claude Thinking Transformer';
|
|
53
|
-
version = '1.0.0';
|
|
54
|
-
priority = 16; // After RequestSanitizer (15), before HeaderInjection (20)
|
|
55
|
-
async createInterceptor(context) {
|
|
56
|
-
const clientType = context.config.clientType;
|
|
57
|
-
if (!clientType || clientType !== ALLOWED_AGENT) {
|
|
58
|
-
throw new Error(`Plugin disabled for agent: ${clientType}`);
|
|
59
|
-
}
|
|
60
|
-
// Pass the configured model as a fallback for requests that omit body.model
|
|
61
|
-
const configModel = context.config.model;
|
|
62
|
-
return new ClaudeThinkingTransformerInterceptor(configModel);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
class ClaudeThinkingTransformerInterceptor {
|
|
66
|
-
configModel;
|
|
67
|
-
name = 'claude-thinking-transformer';
|
|
68
|
-
constructor(configModel) {
|
|
69
|
-
this.configModel = configModel;
|
|
70
|
-
}
|
|
71
|
-
async onRequest(context) {
|
|
72
|
-
if (!context.requestBody || !context.headers['content-type']?.includes('application/json')) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const bodyStr = context.requestBody.toString('utf-8');
|
|
77
|
-
const body = JSON.parse(bodyStr);
|
|
78
|
-
const thinkingType = body.thinking?.type;
|
|
79
|
-
if (thinkingType !== 'enabled' && thinkingType !== 'disabled') {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// Resolve model: prefer request body, fall back to proxy config
|
|
83
|
-
const model = (typeof body.model === 'string' && body.model) || this.configModel || '';
|
|
84
|
-
if (!model || !modelRequiresAdaptiveThinking(model)) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (thinkingType === 'enabled') {
|
|
88
|
-
const effort = budgetTokensToEffort(body.thinking.budget_tokens);
|
|
89
|
-
// Replace old thinking object with new adaptive format
|
|
90
|
-
body.thinking = { type: 'adaptive' };
|
|
91
|
-
// Set output_config.effort only if the caller hasn't already specified it
|
|
92
|
-
if (!body.output_config?.effort) {
|
|
93
|
-
body.output_config = { ...(body.output_config ?? {}), effort };
|
|
94
|
-
}
|
|
95
|
-
logger.debug(`[${this.name}] Transformed thinking: "enabled" → "adaptive", effort="${effort}" for model: ${model}`);
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
// thinking.type === 'disabled': model does not accept this value — remove the field
|
|
99
|
-
delete body.thinking;
|
|
100
|
-
logger.debug(`[${this.name}] Removed unsupported thinking.type="disabled" for model: ${model}`);
|
|
101
|
-
}
|
|
102
|
-
const newBodyStr = JSON.stringify(body);
|
|
103
|
-
context.requestBody = Buffer.from(newBodyStr, 'utf-8');
|
|
104
|
-
context.headers['content-length'] = String(context.requestBody.length);
|
|
105
|
-
}
|
|
106
|
-
catch {
|
|
107
|
-
// Not valid JSON or unexpected structure — pass through unchanged
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=claude-thinking-transformer.plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-thinking-transformer.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.ts"],"names":[],"mappings":"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"}
|