@codemieai/code 0.0.14 → 0.0.16
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 +32 -15
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +6 -6
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +14 -5
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/codemie-code/filters.js +12 -12
- package/dist/agents/codemie-code/filters.js.map +1 -1
- package/dist/agents/codemie-code/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/index.js +3 -1
- package/dist/agents/codemie-code/index.js.map +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.js +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
- package/dist/agents/codemie-code/ui.js +1 -1
- package/dist/agents/codemie-code/ui.js.map +1 -1
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +5 -4
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +1 -5
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +5 -26
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/types.d.ts +5 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +1 -1
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +2 -2
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex.plugin.js +2 -2
- package/dist/agents/plugins/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.js +1 -1
- package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini.plugin.js +1 -1
- package/dist/agents/plugins/gemini.plugin.js.map +1 -1
- package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/adapters/claude.adapter.js +75 -15
- package/dist/analytics/aggregation/adapters/claude.adapter.js.map +1 -1
- package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/adapters/codex.adapter.js +20 -0
- package/dist/analytics/aggregation/adapters/codex.adapter.js.map +1 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +8 -0
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.js +46 -1
- package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +1 -1
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +36 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +52 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +1 -1
- package/dist/analytics/aggregation/core/adapter.interface.d.ts +11 -0
- package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts +20 -0
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/aggregation-utils.js +43 -0
- package/dist/analytics/aggregation/core/aggregation-utils.js.map +1 -1
- package/dist/analytics/aggregation/core/file-utils.d.ts +2 -1
- package/dist/analytics/aggregation/core/file-utils.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/file-utils.js +20 -85
- package/dist/analytics/aggregation/core/file-utils.js.map +1 -1
- package/dist/analytics/aggregation/core/index.d.ts +3 -0
- package/dist/analytics/aggregation/core/index.d.ts.map +1 -1
- package/dist/analytics/aggregation/core/index.js +3 -0
- package/dist/analytics/aggregation/core/index.js.map +1 -1
- package/dist/analytics/aggregation/core/user-prompt-source.d.ts +81 -0
- package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-source.js +69 -0
- package/dist/analytics/aggregation/core/user-prompt-source.js.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +49 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.js +66 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +43 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +56 -0
- package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +1 -0
- package/dist/analytics/aggregation/types.d.ts +20 -0
- package/dist/analytics/aggregation/types.d.ts.map +1 -1
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +3 -11
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/remote-submission/cursor-manager.d.ts +71 -0
- package/dist/analytics/remote-submission/cursor-manager.d.ts.map +1 -0
- package/dist/analytics/remote-submission/cursor-manager.js +204 -0
- package/dist/analytics/remote-submission/cursor-manager.js.map +1 -0
- package/dist/analytics/remote-submission/index.d.ts +12 -0
- package/dist/analytics/remote-submission/index.d.ts.map +1 -0
- package/dist/analytics/remote-submission/index.js +11 -0
- package/dist/analytics/remote-submission/index.js.map +1 -0
- package/dist/analytics/remote-submission/lock-manager.d.ts +71 -0
- package/dist/analytics/remote-submission/lock-manager.d.ts.map +1 -0
- package/dist/analytics/remote-submission/lock-manager.js +238 -0
- package/dist/analytics/remote-submission/lock-manager.js.map +1 -0
- package/dist/analytics/remote-submission/metric-transformer.d.ts +21 -0
- package/dist/analytics/remote-submission/metric-transformer.d.ts.map +1 -0
- package/dist/analytics/remote-submission/metric-transformer.js +82 -0
- package/dist/analytics/remote-submission/metric-transformer.js.map +1 -0
- package/dist/analytics/remote-submission/submitter.d.ts +79 -0
- package/dist/analytics/remote-submission/submitter.d.ts.map +1 -0
- package/dist/analytics/remote-submission/submitter.js +362 -0
- package/dist/analytics/remote-submission/submitter.js.map +1 -0
- package/dist/analytics/remote-submission/types.d.ts +123 -0
- package/dist/analytics/remote-submission/types.d.ts.map +1 -0
- package/dist/analytics/remote-submission/types.js +13 -0
- package/dist/analytics/remote-submission/types.js.map +1 -0
- package/dist/cli/commands/analytics.d.ts.map +1 -1
- package/dist/cli/commands/analytics.js +181 -12
- package/dist/cli/commands/analytics.js.map +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +10 -5
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js +12 -5
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
- package/dist/cli/commands/doctor/formatter.d.ts +1 -1
- package/dist/cli/commands/doctor/formatter.d.ts.map +1 -1
- package/dist/cli/commands/doctor/formatter.js +1 -6
- package/dist/cli/commands/doctor/formatter.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +36 -9
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/doctor/type-adapters.d.ts +18 -0
- package/dist/cli/commands/doctor/type-adapters.d.ts.map +1 -0
- package/dist/cli/commands/doctor/type-adapters.js +75 -0
- package/dist/cli/commands/doctor/type-adapters.js.map +1 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +1 -6
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +0 -5
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/profile.d.ts.map +1 -1
- package/dist/cli/commands/profile.js +109 -63
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +169 -660
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/workflow.js +1 -1
- package/dist/cli/commands/workflow.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/providers/core/base/BaseHealthCheck.d.ts +57 -0
- package/dist/providers/core/base/BaseHealthCheck.d.ts.map +1 -0
- package/dist/providers/core/base/BaseHealthCheck.js +121 -0
- package/dist/providers/core/base/BaseHealthCheck.js.map +1 -0
- package/dist/providers/core/base/BaseModelProxy.d.ts +45 -0
- package/dist/providers/core/base/BaseModelProxy.d.ts.map +1 -0
- package/dist/providers/core/base/BaseModelProxy.js +43 -0
- package/dist/providers/core/base/BaseModelProxy.js.map +1 -0
- package/dist/providers/core/base/http-client.d.ts +57 -0
- package/dist/providers/core/base/http-client.d.ts.map +1 -0
- package/dist/providers/core/base/http-client.js +240 -0
- package/dist/providers/core/base/http-client.js.map +1 -0
- package/dist/providers/core/decorators.d.ts +13 -0
- package/dist/providers/core/decorators.d.ts.map +1 -0
- package/dist/providers/core/decorators.js +15 -0
- package/dist/providers/core/decorators.js.map +1 -0
- package/dist/providers/core/index.d.ts +13 -0
- package/dist/providers/core/index.d.ts.map +1 -0
- package/dist/providers/core/index.js +14 -0
- package/dist/providers/core/index.js.map +1 -0
- package/dist/providers/core/registry.d.ts +66 -0
- package/dist/providers/core/registry.d.ts.map +1 -0
- package/dist/providers/core/registry.js +105 -0
- package/dist/providers/core/registry.js.map +1 -0
- package/dist/providers/core/types.d.ts +285 -0
- package/dist/providers/core/types.d.ts.map +1 -0
- package/dist/providers/core/types.js +7 -0
- package/dist/providers/core/types.js.map +1 -0
- package/dist/providers/index.d.ts +20 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +22 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/integration/setup-ui.d.ts +76 -0
- package/dist/providers/integration/setup-ui.d.ts.map +1 -0
- package/dist/providers/integration/setup-ui.js +141 -0
- package/dist/providers/integration/setup-ui.js.map +1 -0
- package/dist/providers/plugins/litellm/index.d.ts +8 -0
- package/dist/providers/plugins/litellm/index.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/index.js +12 -0
- package/dist/providers/plugins/litellm/index.js.map +1 -0
- package/dist/providers/plugins/litellm/litellm.models.d.ts +27 -0
- package/dist/providers/plugins/litellm/litellm.models.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/litellm.models.js +48 -0
- package/dist/providers/plugins/litellm/litellm.models.js.map +1 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts +8 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.js +52 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -0
- package/dist/providers/plugins/litellm/litellm.template.d.ts +11 -0
- package/dist/providers/plugins/litellm/litellm.template.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/litellm.template.js +59 -0
- package/dist/providers/plugins/litellm/litellm.template.js.map +1 -0
- package/dist/providers/plugins/ollama/index.d.ts +11 -0
- package/dist/providers/plugins/ollama/index.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/index.js +11 -0
- package/dist/providers/plugins/ollama/index.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.health.d.ts +48 -0
- package/dist/providers/plugins/ollama/ollama.health.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.health.js +87 -0
- package/dist/providers/plugins/ollama/ollama.health.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.models.d.ts +47 -0
- package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.models.js +252 -0
- package/dist/providers/plugins/ollama/ollama.models.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts +16 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.js +164 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.template.d.ts +11 -0
- package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.template.js +87 -0
- package/dist/providers/plugins/ollama/ollama.template.js.map +1 -0
- package/dist/providers/plugins/sso/index.d.ts +12 -0
- package/dist/providers/plugins/sso/index.d.ts.map +1 -0
- package/dist/providers/plugins/sso/index.js +12 -0
- package/dist/providers/plugins/sso/index.js.map +1 -0
- package/dist/providers/plugins/sso/sso.auth.d.ts +50 -0
- package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -0
- package/dist/{utils/sso-auth.js → providers/plugins/sso/sso.auth.js} +37 -2
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -0
- package/dist/providers/plugins/sso/sso.health.d.ts +44 -0
- package/dist/providers/plugins/sso/sso.health.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.health.js +178 -0
- package/dist/providers/plugins/sso/sso.health.js.map +1 -0
- package/dist/{utils/codemie-model-fetcher.d.ts → providers/plugins/sso/sso.http-client.d.ts} +16 -5
- package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.http-client.js +187 -0
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -0
- package/dist/providers/plugins/sso/sso.models.d.ts +48 -0
- package/dist/providers/plugins/sso/sso.models.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.models.js +139 -0
- package/dist/providers/plugins/sso/sso.models.js.map +1 -0
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts +16 -0
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.setup-steps.js +145 -0
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -0
- package/dist/providers/plugins/sso/sso.template.d.ts +11 -0
- package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.template.js +35 -0
- package/dist/providers/plugins/sso/sso.template.js.map +1 -0
- package/dist/proxy/errors.d.ts.map +1 -0
- package/dist/proxy/errors.js.map +1 -0
- package/dist/proxy/http-client.d.ts.map +1 -0
- package/dist/{utils/proxy → proxy}/http-client.js +1 -1
- package/dist/proxy/http-client.js.map +1 -0
- package/dist/proxy/plugins/header-injection.plugin.d.ts +16 -0
- package/dist/proxy/plugins/header-injection.plugin.d.ts.map +1 -0
- package/dist/proxy/plugins/header-injection.plugin.js +52 -0
- package/dist/proxy/plugins/header-injection.plugin.js.map +1 -0
- package/dist/proxy/plugins/index.d.ts +18 -0
- package/dist/proxy/plugins/index.d.ts.map +1 -0
- package/dist/proxy/plugins/index.js +28 -0
- package/dist/proxy/plugins/index.js.map +1 -0
- package/dist/proxy/plugins/logging.plugin.d.ts +22 -0
- package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -0
- package/dist/proxy/plugins/logging.plugin.js +92 -0
- package/dist/proxy/plugins/logging.plugin.js.map +1 -0
- package/dist/proxy/plugins/registry.d.ts +50 -0
- package/dist/proxy/plugins/registry.d.ts.map +1 -0
- package/dist/proxy/plugins/registry.js +124 -0
- package/dist/proxy/plugins/registry.js.map +1 -0
- package/dist/proxy/plugins/sso-auth.plugin.d.ts +16 -0
- package/dist/proxy/plugins/sso-auth.plugin.d.ts.map +1 -0
- package/dist/proxy/plugins/sso-auth.plugin.js +35 -0
- package/dist/proxy/plugins/sso-auth.plugin.js.map +1 -0
- package/dist/proxy/plugins/types.d.ts +79 -0
- package/dist/proxy/plugins/types.d.ts.map +1 -0
- package/dist/proxy/plugins/types.js +8 -0
- package/dist/proxy/plugins/types.js.map +1 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/utils/analytics-reader.js +1 -1
- package/dist/utils/analytics-reader.js.map +1 -1
- package/dist/utils/codemie-proxy.d.ts +43 -22
- package/dist/utils/codemie-proxy.d.ts.map +1 -1
- package/dist/utils/codemie-proxy.js +158 -88
- package/dist/utils/codemie-proxy.js.map +1 -1
- package/dist/utils/config-loader.d.ts +5 -6
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +72 -92
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/credential-store.d.ts +1 -1
- package/dist/utils/credential-store.d.ts.map +1 -1
- package/dist/utils/first-time.d.ts +0 -4
- package/dist/utils/first-time.d.ts.map +1 -1
- package/dist/utils/first-time.js +5 -117
- package/dist/utils/first-time.js.map +1 -1
- package/dist/utils/logger.d.ts +31 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +111 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/sanitize.d.ts +28 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +213 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/workflows/installer.d.ts.map +1 -1
- package/dist/workflows/installer.js +3 -4
- package/dist/workflows/installer.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/commands/config.d.ts +0 -3
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -198
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +0 -11
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +0 -192
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +0 -1
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +0 -12
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +0 -12
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +0 -1
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +0 -11
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +0 -97
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +0 -1
- package/dist/cli/commands/doctor/providers/index.d.ts +0 -30
- package/dist/cli/commands/doctor/providers/index.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/index.js +0 -66
- package/dist/cli/commands/doctor/providers/index.js.map +0 -1
- package/dist/cli/commands/env.d.ts +0 -3
- package/dist/cli/commands/env.d.ts.map +0 -1
- package/dist/cli/commands/env.js +0 -19
- package/dist/cli/commands/env.js.map +0 -1
- package/dist/types/sso.d.ts +0 -42
- package/dist/types/sso.d.ts.map +0 -1
- package/dist/types/sso.js +0 -2
- package/dist/types/sso.js.map +0 -1
- package/dist/utils/async-tips.d.ts +0 -64
- package/dist/utils/async-tips.d.ts.map +0 -1
- package/dist/utils/async-tips.js +0 -203
- package/dist/utils/async-tips.js.map +0 -1
- package/dist/utils/codemie-integration-validator.d.ts +0 -18
- package/dist/utils/codemie-integration-validator.d.ts.map +0 -1
- package/dist/utils/codemie-integration-validator.js +0 -119
- package/dist/utils/codemie-integration-validator.js.map +0 -1
- package/dist/utils/codemie-model-fetcher.d.ts.map +0 -1
- package/dist/utils/codemie-model-fetcher.js +0 -242
- package/dist/utils/codemie-model-fetcher.js.map +0 -1
- package/dist/utils/health-checker.d.ts +0 -20
- package/dist/utils/health-checker.d.ts.map +0 -1
- package/dist/utils/health-checker.js +0 -172
- package/dist/utils/health-checker.js.map +0 -1
- package/dist/utils/model-fetcher.d.ts +0 -21
- package/dist/utils/model-fetcher.d.ts.map +0 -1
- package/dist/utils/model-fetcher.js +0 -148
- package/dist/utils/model-fetcher.js.map +0 -1
- package/dist/utils/proxy/errors.d.ts.map +0 -1
- package/dist/utils/proxy/errors.js.map +0 -1
- package/dist/utils/proxy/http-client.d.ts.map +0 -1
- package/dist/utils/proxy/http-client.js.map +0 -1
- package/dist/utils/proxy/interceptors.d.ts +0 -69
- package/dist/utils/proxy/interceptors.d.ts.map +0 -1
- package/dist/utils/proxy/interceptors.js +0 -308
- package/dist/utils/proxy/interceptors.js.map +0 -1
- package/dist/utils/proxy/types.d.ts.map +0 -1
- package/dist/utils/proxy/types.js.map +0 -1
- package/dist/utils/sso-auth.d.ts +0 -15
- package/dist/utils/sso-auth.d.ts.map +0 -1
- package/dist/utils/sso-auth.js.map +0 -1
- package/dist/utils/tips.d.ts +0 -35
- package/dist/utils/tips.d.ts.map +0 -1
- package/dist/utils/tips.js +0 -93
- package/dist/utils/tips.js.map +0 -1
- /package/dist/{utils/proxy → proxy}/errors.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/errors.js +0 -0
- /package/dist/{utils/proxy → proxy}/http-client.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/types.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/types.js +0 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Model Management
|
|
3
|
+
*
|
|
4
|
+
* Combines model discovery and installation for Ollama.
|
|
5
|
+
* Handles both listing installed models and discovering available models.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseModelProxy } from '../../core/base/BaseModelProxy.js';
|
|
8
|
+
import { ProviderRegistry } from '../../core/registry.js';
|
|
9
|
+
import { OllamaTemplate } from './ollama.template.js';
|
|
10
|
+
import { logger } from '../../../utils/logger.js';
|
|
11
|
+
/**
|
|
12
|
+
* Pattern to identify coding model names
|
|
13
|
+
*/
|
|
14
|
+
const CODING_MODEL_PATTERNS = [
|
|
15
|
+
/coder/i,
|
|
16
|
+
/code/i,
|
|
17
|
+
/codellama/i,
|
|
18
|
+
/starcoder/i,
|
|
19
|
+
/wizard.*code/i,
|
|
20
|
+
/magic.*code/i
|
|
21
|
+
];
|
|
22
|
+
/**
|
|
23
|
+
* Check if a model name matches coding patterns
|
|
24
|
+
*/
|
|
25
|
+
function isCodingModel(modelName) {
|
|
26
|
+
return CODING_MODEL_PATTERNS.some(pattern => pattern.test(modelName));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get metadata for a coding model from OllamaTemplate
|
|
30
|
+
*/
|
|
31
|
+
function getCodingModelMetadata(modelId) {
|
|
32
|
+
// Extract base name (without tag)
|
|
33
|
+
const baseName = modelId.split(':')[0];
|
|
34
|
+
// Get metadata from template (single source of truth)
|
|
35
|
+
const metadata = OllamaTemplate.modelMetadata?.[baseName];
|
|
36
|
+
if (metadata) {
|
|
37
|
+
return {
|
|
38
|
+
name: metadata.name,
|
|
39
|
+
description: metadata.description,
|
|
40
|
+
popular: metadata.popular ?? false
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// If not in template but matches coding pattern, mark as coding model
|
|
44
|
+
if (isCodingModel(baseName)) {
|
|
45
|
+
return {
|
|
46
|
+
name: modelId,
|
|
47
|
+
description: 'Code-specialized model',
|
|
48
|
+
popular: false
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Unified Ollama model management
|
|
55
|
+
* Extends BaseModelProxy for common patterns
|
|
56
|
+
*/
|
|
57
|
+
export class OllamaModelProxy extends BaseModelProxy {
|
|
58
|
+
constructor(baseUrl = OllamaTemplate.defaultBaseUrl) {
|
|
59
|
+
super(baseUrl, 300000); // 5 minutes for model operations
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if this proxy supports the given provider
|
|
63
|
+
*/
|
|
64
|
+
supports(provider) {
|
|
65
|
+
return provider === 'ollama';
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Ollama supports model installation
|
|
69
|
+
*/
|
|
70
|
+
supportsInstallation() {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* List installed models
|
|
75
|
+
*/
|
|
76
|
+
async listModels() {
|
|
77
|
+
try {
|
|
78
|
+
const response = await this.client.get(`${this.baseUrl}/api/tags`);
|
|
79
|
+
return response.data.models.map((model) => ({
|
|
80
|
+
id: model.name,
|
|
81
|
+
name: model.name,
|
|
82
|
+
size: model.size,
|
|
83
|
+
metadata: {
|
|
84
|
+
digest: model.digest,
|
|
85
|
+
modified: model.modified_at,
|
|
86
|
+
format: model.details?.format || model.details?.quantization_level || 'unknown'
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
throw new Error(`Failed to list models: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Fetch available models (for setup/discovery)
|
|
96
|
+
* Returns installed coding models if available, otherwise returns recommended models from template
|
|
97
|
+
*/
|
|
98
|
+
async fetchModels(config) {
|
|
99
|
+
try {
|
|
100
|
+
// Use baseUrl from config if provided, otherwise use default
|
|
101
|
+
const baseUrl = config.baseUrl || OllamaTemplate.defaultBaseUrl;
|
|
102
|
+
const proxy = baseUrl === this.baseUrl ? this : new OllamaModelProxy(baseUrl);
|
|
103
|
+
// Try to fetch installed models from Ollama
|
|
104
|
+
const installedModels = await proxy.listModels();
|
|
105
|
+
// If we have installed coding models, return them with enriched metadata
|
|
106
|
+
if (installedModels.length > 0) {
|
|
107
|
+
const codingModels = installedModels
|
|
108
|
+
.filter(m => isCodingModel(m.id))
|
|
109
|
+
.map(m => {
|
|
110
|
+
const metadata = getCodingModelMetadata(m.id);
|
|
111
|
+
return {
|
|
112
|
+
id: m.id,
|
|
113
|
+
name: metadata.name || m.name || m.id,
|
|
114
|
+
description: metadata.description,
|
|
115
|
+
size: m.size,
|
|
116
|
+
popular: metadata.popular || false
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
// Return installed coding models if we have any
|
|
120
|
+
if (codingModels.length > 0) {
|
|
121
|
+
return codingModels;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
logger.debug('Failed to fetch installed Ollama models:', error);
|
|
127
|
+
}
|
|
128
|
+
// Fall back to template's recommended models with metadata from template
|
|
129
|
+
const recommendedModels = OllamaTemplate.recommendedModels.map(modelId => {
|
|
130
|
+
const metadata = OllamaTemplate.modelMetadata?.[modelId];
|
|
131
|
+
return {
|
|
132
|
+
id: modelId,
|
|
133
|
+
name: metadata?.name || modelId,
|
|
134
|
+
description: metadata?.description,
|
|
135
|
+
popular: metadata?.popular ?? true // All recommended models are popular by default
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
return recommendedModels;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Install model with progress tracking
|
|
142
|
+
* Streams real-time progress from Ollama API
|
|
143
|
+
*/
|
|
144
|
+
async installModel(modelName, onProgress) {
|
|
145
|
+
try {
|
|
146
|
+
const response = await fetch(`${this.baseUrl}/api/pull`, {
|
|
147
|
+
method: 'POST',
|
|
148
|
+
headers: {
|
|
149
|
+
'Content-Type': 'application/json',
|
|
150
|
+
},
|
|
151
|
+
body: JSON.stringify({ name: modelName, stream: true }),
|
|
152
|
+
});
|
|
153
|
+
if (!response.ok) {
|
|
154
|
+
throw new Error(`Failed to pull model: ${response.statusText}`);
|
|
155
|
+
}
|
|
156
|
+
if (!response.body) {
|
|
157
|
+
throw new Error('Response body is empty');
|
|
158
|
+
}
|
|
159
|
+
const reader = response.body.getReader();
|
|
160
|
+
const decoder = new TextDecoder();
|
|
161
|
+
let buffer = '';
|
|
162
|
+
while (true) {
|
|
163
|
+
const { done, value } = await reader.read();
|
|
164
|
+
if (done)
|
|
165
|
+
break;
|
|
166
|
+
buffer += decoder.decode(value, { stream: true });
|
|
167
|
+
const lines = buffer.split('\n');
|
|
168
|
+
buffer = lines.pop() || '';
|
|
169
|
+
for (const line of lines) {
|
|
170
|
+
if (!line.trim())
|
|
171
|
+
continue;
|
|
172
|
+
try {
|
|
173
|
+
const data = JSON.parse(line);
|
|
174
|
+
if (onProgress) {
|
|
175
|
+
// Ollama progress format: { status: "pulling manifest", ... }
|
|
176
|
+
// or { status: "downloading", completed: 123, total: 456 }
|
|
177
|
+
if (data.status === 'success' || data.status === 'pulling manifest') {
|
|
178
|
+
onProgress({ status: 'downloading', message: data.status });
|
|
179
|
+
}
|
|
180
|
+
else if (data.completed && data.total) {
|
|
181
|
+
const percent = Math.round((data.completed / data.total) * 100);
|
|
182
|
+
onProgress({
|
|
183
|
+
status: 'downloading',
|
|
184
|
+
progress: percent,
|
|
185
|
+
message: `${data.status || 'Downloading'} (${percent}%)`
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
else if (data.status) {
|
|
189
|
+
onProgress({ status: 'downloading', message: data.status });
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
logger.debug(`Failed to parse progress line for ${modelName}:`, line);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (onProgress) {
|
|
199
|
+
onProgress({ status: 'complete', progress: 100, message: `Successfully pulled ${modelName}` });
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
if (onProgress) {
|
|
204
|
+
onProgress({ status: 'error', message: `Failed to install ${modelName}` });
|
|
205
|
+
}
|
|
206
|
+
throw new Error(`Failed to install model ${modelName}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Remove model
|
|
211
|
+
*/
|
|
212
|
+
async removeModel(modelName) {
|
|
213
|
+
try {
|
|
214
|
+
await this.client.post(`${this.baseUrl}/api/delete`, { name: modelName });
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
throw new Error(`Failed to remove model ${modelName}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get detailed model information
|
|
222
|
+
*/
|
|
223
|
+
async getModelInfo(modelName) {
|
|
224
|
+
try {
|
|
225
|
+
// First check if model exists in list
|
|
226
|
+
const models = await this.listModels();
|
|
227
|
+
const basicInfo = models.find((m) => m.id === modelName);
|
|
228
|
+
if (!basicInfo) {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
// Get detailed info from template if available
|
|
232
|
+
const baseName = modelName.split(':')[0];
|
|
233
|
+
const templateMetadata = OllamaTemplate.modelMetadata?.[baseName];
|
|
234
|
+
if (templateMetadata) {
|
|
235
|
+
return {
|
|
236
|
+
...basicInfo,
|
|
237
|
+
name: templateMetadata.name,
|
|
238
|
+
description: templateMetadata.description,
|
|
239
|
+
popular: templateMetadata.popular,
|
|
240
|
+
contextWindow: templateMetadata.contextWindow
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
return basicInfo;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// Auto-register model proxy
|
|
251
|
+
ProviderRegistry.registerModelProxy('ollama', new OllamaModelProxy());
|
|
252
|
+
//# sourceMappingURL=ollama.models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.models.js","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider Setup Steps
|
|
3
|
+
*
|
|
4
|
+
* Implements setup flow for Ollama (local model provider).
|
|
5
|
+
* Unique features:
|
|
6
|
+
* - Health check (verify Ollama is running)
|
|
7
|
+
* - Model installation support (extra step)
|
|
8
|
+
*/
|
|
9
|
+
import type { ProviderSetupSteps } from '../../core/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Ollama setup steps implementation
|
|
12
|
+
*
|
|
13
|
+
* Handles Ollama-specific setup flow with health checks and model discovery
|
|
14
|
+
*/
|
|
15
|
+
export declare const OllamaSetupSteps: ProviderSetupSteps;
|
|
16
|
+
//# sourceMappingURL=ollama.setup-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.setup-steps.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.setup-steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAK7B;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBA8J9B,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider Setup Steps
|
|
3
|
+
*
|
|
4
|
+
* Implements setup flow for Ollama (local model provider).
|
|
5
|
+
* Unique features:
|
|
6
|
+
* - Health check (verify Ollama is running)
|
|
7
|
+
* - Model installation support (extra step)
|
|
8
|
+
*/
|
|
9
|
+
import { ProviderRegistry } from '../../core/registry.js';
|
|
10
|
+
import { OllamaTemplate } from './ollama.template.js';
|
|
11
|
+
/**
|
|
12
|
+
* Ollama setup steps implementation
|
|
13
|
+
*
|
|
14
|
+
* Handles Ollama-specific setup flow with health checks and model discovery
|
|
15
|
+
*/
|
|
16
|
+
export const OllamaSetupSteps = {
|
|
17
|
+
name: 'ollama',
|
|
18
|
+
/**
|
|
19
|
+
* Get credentials for Ollama
|
|
20
|
+
* Ollama runs locally so no API key needed, just verify it's running
|
|
21
|
+
*/
|
|
22
|
+
async getCredentials() {
|
|
23
|
+
const inquirer = (await import('inquirer')).default;
|
|
24
|
+
const ora = (await import('ora')).default;
|
|
25
|
+
const chalk = (await import('chalk')).default;
|
|
26
|
+
const { OllamaHealthCheck } = await import('./ollama.health.js');
|
|
27
|
+
// Ask for Ollama base URL first (allow pressing Enter for default)
|
|
28
|
+
const { baseUrl } = await inquirer.prompt([
|
|
29
|
+
{
|
|
30
|
+
type: 'input',
|
|
31
|
+
name: 'baseUrl',
|
|
32
|
+
message: 'Ollama base URL:',
|
|
33
|
+
default: OllamaTemplate.defaultBaseUrl,
|
|
34
|
+
validate: (input) => input.trim() !== '' || 'Base URL is required'
|
|
35
|
+
}
|
|
36
|
+
]);
|
|
37
|
+
// Check if Ollama is running at the specified URL
|
|
38
|
+
const healthSpinner = ora('Checking if Ollama is running...').start();
|
|
39
|
+
const healthCheck = new OllamaHealthCheck(baseUrl);
|
|
40
|
+
try {
|
|
41
|
+
const result = await healthCheck.check({
|
|
42
|
+
provider: 'ollama',
|
|
43
|
+
baseUrl,
|
|
44
|
+
apiKey: '',
|
|
45
|
+
model: 'temp',
|
|
46
|
+
timeout: 300
|
|
47
|
+
});
|
|
48
|
+
if (result.status === 'unreachable') {
|
|
49
|
+
healthSpinner.fail(chalk.red('Ollama is not running'));
|
|
50
|
+
console.log(chalk.yellow('\n' + result.remediation + '\n'));
|
|
51
|
+
const { continueAnyway } = await inquirer.prompt([
|
|
52
|
+
{
|
|
53
|
+
type: 'confirm',
|
|
54
|
+
name: 'continueAnyway',
|
|
55
|
+
message: 'Continue with setup anyway?',
|
|
56
|
+
default: false
|
|
57
|
+
}
|
|
58
|
+
]);
|
|
59
|
+
if (!continueAnyway) {
|
|
60
|
+
throw new Error('Setup cancelled - please start Ollama first');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (result.status === 'unhealthy') {
|
|
64
|
+
// Ollama is running but no models installed - that's OK for setup
|
|
65
|
+
healthSpinner.succeed(chalk.green('Ollama is running (no models installed yet)'));
|
|
66
|
+
console.log(chalk.dim(' You can install models after setup completes\n'));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// Healthy - Ollama running with models
|
|
70
|
+
healthSpinner.succeed(chalk.green(result.message));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
healthSpinner.fail(chalk.red('Failed to check Ollama health'));
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
baseUrl,
|
|
79
|
+
apiKey: '' // Ollama doesn't use API keys
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* Fetch available models from Ollama
|
|
84
|
+
*/
|
|
85
|
+
async fetchModels(credentials) {
|
|
86
|
+
const { OllamaModelProxy } = await import('./ollama.models.js');
|
|
87
|
+
const modelProxy = new OllamaModelProxy(credentials.baseUrl);
|
|
88
|
+
try {
|
|
89
|
+
const models = await modelProxy.fetchModels({
|
|
90
|
+
provider: 'ollama',
|
|
91
|
+
baseUrl: credentials.baseUrl,
|
|
92
|
+
apiKey: '',
|
|
93
|
+
model: 'temp',
|
|
94
|
+
timeout: 300
|
|
95
|
+
});
|
|
96
|
+
return models.map(m => m.id);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// If fetch fails, return recommended models
|
|
100
|
+
return OllamaTemplate.recommendedModels;
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
/**
|
|
104
|
+
* Install model if not already installed
|
|
105
|
+
*/
|
|
106
|
+
async installModel(credentials, selectedModel, _availableModels) {
|
|
107
|
+
const ora = (await import('ora')).default;
|
|
108
|
+
const chalk = (await import('chalk')).default;
|
|
109
|
+
const { OllamaModelProxy } = await import('./ollama.models.js');
|
|
110
|
+
const modelProxy = new OllamaModelProxy(credentials.baseUrl);
|
|
111
|
+
// Check if model is actually installed by querying Ollama directly
|
|
112
|
+
let isInstalled = false;
|
|
113
|
+
try {
|
|
114
|
+
const installedModels = await modelProxy.listModels();
|
|
115
|
+
isInstalled = installedModels.some(m => m.id === selectedModel);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// If we can't check, assume not installed
|
|
119
|
+
isInstalled = false;
|
|
120
|
+
}
|
|
121
|
+
if (isInstalled) {
|
|
122
|
+
console.log(chalk.dim(` Model "${selectedModel}" is already installed\n`));
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// Model needs to be installed
|
|
126
|
+
console.log(chalk.cyan(`\n📦 Installing model: ${selectedModel}`));
|
|
127
|
+
console.log(chalk.dim(' This may take several minutes depending on model size...\n'));
|
|
128
|
+
const installSpinner = ora(`Pulling ${selectedModel}...`).start();
|
|
129
|
+
try {
|
|
130
|
+
await modelProxy.installModel(selectedModel, (progress) => {
|
|
131
|
+
if (progress.status === 'downloading') {
|
|
132
|
+
installSpinner.text = progress.message || `Pulling ${selectedModel}...`;
|
|
133
|
+
}
|
|
134
|
+
else if (progress.status === 'complete') {
|
|
135
|
+
installSpinner.succeed(chalk.green(progress.message || `Successfully installed ${selectedModel}`));
|
|
136
|
+
}
|
|
137
|
+
else if (progress.status === 'error') {
|
|
138
|
+
installSpinner.fail(chalk.red(progress.message || `Failed to install ${selectedModel}`));
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
console.log(chalk.green(`✓ Model "${selectedModel}" is ready to use\n`));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
installSpinner.fail(chalk.red('Model installation failed'));
|
|
145
|
+
throw new Error(`Failed to install model: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
/**
|
|
149
|
+
* Build configuration for Ollama
|
|
150
|
+
*/
|
|
151
|
+
buildConfig(credentials, model) {
|
|
152
|
+
return {
|
|
153
|
+
provider: 'ollama',
|
|
154
|
+
baseUrl: credentials.baseUrl,
|
|
155
|
+
apiKey: '', // Ollama doesn't use API keys
|
|
156
|
+
model,
|
|
157
|
+
timeout: 300,
|
|
158
|
+
debug: false
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
// Auto-register setup steps
|
|
163
|
+
ProviderRegistry.registerSetupSteps('ollama', OllamaSetupSteps);
|
|
164
|
+
//# sourceMappingURL=ollama.setup-steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.setup-steps.js","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.setup-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider Template
|
|
3
|
+
*
|
|
4
|
+
* Template definition for Ollama local LLM runtime.
|
|
5
|
+
* Ollama is a popular open-source tool for running LLMs locally.
|
|
6
|
+
*
|
|
7
|
+
* Auto-registers on import via registerProvider().
|
|
8
|
+
*/
|
|
9
|
+
import type { ProviderTemplate } from '../../core/types.js';
|
|
10
|
+
export declare const OllamaTemplate: ProviderTemplate;
|
|
11
|
+
//# sourceMappingURL=ollama.template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.template.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,eAAO,MAAM,cAAc,kBA4EzB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Provider Template
|
|
3
|
+
*
|
|
4
|
+
* Template definition for Ollama local LLM runtime.
|
|
5
|
+
* Ollama is a popular open-source tool for running LLMs locally.
|
|
6
|
+
*
|
|
7
|
+
* Auto-registers on import via registerProvider().
|
|
8
|
+
*/
|
|
9
|
+
import { registerProvider } from '../../core/decorators.js';
|
|
10
|
+
export const OllamaTemplate = registerProvider({
|
|
11
|
+
name: 'ollama',
|
|
12
|
+
displayName: 'Ollama',
|
|
13
|
+
description: 'Popular open-source local LLM runner - optimized for coding with 16GB RAM',
|
|
14
|
+
defaultPort: 11434,
|
|
15
|
+
defaultBaseUrl: 'http://localhost:11434',
|
|
16
|
+
recommendedModels: [
|
|
17
|
+
'qwen2.5-coder',
|
|
18
|
+
'codellama',
|
|
19
|
+
'deepseek-coder-v2'
|
|
20
|
+
],
|
|
21
|
+
modelMetadata: {
|
|
22
|
+
'qwen2.5-coder': {
|
|
23
|
+
name: 'Qwen 2.5 Coder',
|
|
24
|
+
description: 'Excellent for coding tasks (7B, ~5GB)',
|
|
25
|
+
},
|
|
26
|
+
'codellama': {
|
|
27
|
+
name: 'Code Llama',
|
|
28
|
+
description: 'Optimized for code generation (7B, ~3.8GB)',
|
|
29
|
+
},
|
|
30
|
+
'deepseek-coder-v2': {
|
|
31
|
+
name: 'DeepSeek Coder V2',
|
|
32
|
+
description: 'Advanced coding model (16B, ~9GB)',
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
capabilities: ['streaming', 'tools', 'embeddings', 'model-management'],
|
|
36
|
+
supportsModelInstallation: true,
|
|
37
|
+
envMapping: {
|
|
38
|
+
baseUrl: ['OPENAI_BASE_URL'],
|
|
39
|
+
apiKey: ['OPENAI_API_KEY'],
|
|
40
|
+
model: ['OPENAI_MODEL']
|
|
41
|
+
},
|
|
42
|
+
healthCheckEndpoint: '/api/tags',
|
|
43
|
+
setupInstructions: `
|
|
44
|
+
# Ollama Setup Instructions
|
|
45
|
+
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
### macOS
|
|
49
|
+
Download from: https://ollama.com/download/mac
|
|
50
|
+
|
|
51
|
+
### Linux
|
|
52
|
+
\`\`\`bash
|
|
53
|
+
curl -fsSL https://ollama.com/install.sh | sh
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
### Windows
|
|
57
|
+
Download from: https://ollama.com/download
|
|
58
|
+
|
|
59
|
+
## Starting Ollama
|
|
60
|
+
|
|
61
|
+
Ollama runs as a background service after installation.
|
|
62
|
+
|
|
63
|
+
### Verify Running
|
|
64
|
+
\`\`\`bash
|
|
65
|
+
curl http://localhost:11434/api/tags
|
|
66
|
+
\`\`\`
|
|
67
|
+
|
|
68
|
+
### Using CodeMie
|
|
69
|
+
\`\`\`bash
|
|
70
|
+
codemie models install ollama/llama3.2
|
|
71
|
+
codemie models list ollama
|
|
72
|
+
\`\`\`
|
|
73
|
+
|
|
74
|
+
## Recommended Coding Models (16GB RAM Compatible)
|
|
75
|
+
|
|
76
|
+
- **qwen2.5-coder**: Excellent for coding tasks (7B parameters, ~5GB)
|
|
77
|
+
- **codellama**: Optimized for code generation (7B parameters, ~3.8GB)
|
|
78
|
+
- **deepseek-coder-v2**: Advanced coding model (16B parameters, ~9GB)
|
|
79
|
+
|
|
80
|
+
## Documentation
|
|
81
|
+
|
|
82
|
+
- Official website: https://ollama.com
|
|
83
|
+
- Model library: https://ollama.com/library
|
|
84
|
+
- GitHub: https://github.com/ollama/ollama
|
|
85
|
+
`
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=ollama.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.template.js","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAmB;IAC/D,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,2EAA2E;IACxF,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE;QACjB,eAAe;QACf,WAAW;QACX,mBAAmB;KACpB;IACD,aAAa,EAAE;QACb,eAAe,EAAE;YACf,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,uCAAuC;SACrD;QACD,WAAW,EAAE;YACX,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,4CAA4C;SAC1D;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,mCAAmC;SACjD;KACF;IACD,YAAY,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC;IACtE,yBAAyB,EAAE,IAAI;IAC/B,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,KAAK,EAAE,CAAC,cAAc,CAAC;KACxB;IACD,mBAAmB,EAAE,WAAW;IAChC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CpB;CACA,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Provider - Complete Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* All SSO-related code in one place for easy maintenance.
|
|
5
|
+
* Auto-registers with ProviderRegistry on import.
|
|
6
|
+
*/
|
|
7
|
+
export { SSOTemplate } from './sso.template.js';
|
|
8
|
+
export { CodeMieSSO } from './sso.auth.js';
|
|
9
|
+
export { SSOModelProxy } from './sso.models.js';
|
|
10
|
+
export { SSOHealthCheck } from './sso.health.js';
|
|
11
|
+
export { SSOSetupSteps } from './sso.setup-steps.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Provider - Complete Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* All SSO-related code in one place for easy maintenance.
|
|
5
|
+
* Auto-registers with ProviderRegistry on import.
|
|
6
|
+
*/
|
|
7
|
+
export { SSOTemplate } from './sso.template.js';
|
|
8
|
+
export { CodeMieSSO } from './sso.auth.js';
|
|
9
|
+
export { SSOModelProxy } from './sso.models.js';
|
|
10
|
+
export { SSOHealthCheck } from './sso.health.js';
|
|
11
|
+
export { SSOSetupSteps } from './sso.setup-steps.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Authentication Module
|
|
3
|
+
*
|
|
4
|
+
* Handles browser-based SSO authentication for CodeMie provider.
|
|
5
|
+
* Manages credential storage and session lifecycle.
|
|
6
|
+
*/
|
|
7
|
+
import type { SSOAuthConfig, SSOAuthResult, SSOCredentials } from '../../core/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* CodeMie SSO Authentication
|
|
10
|
+
*
|
|
11
|
+
* Provides browser-based SSO authentication for CodeMie provider
|
|
12
|
+
*/
|
|
13
|
+
export declare class CodeMieSSO {
|
|
14
|
+
private server?;
|
|
15
|
+
private callbackResult?;
|
|
16
|
+
private codeMieUrl;
|
|
17
|
+
/**
|
|
18
|
+
* Authenticate via browser SSO
|
|
19
|
+
*/
|
|
20
|
+
authenticate(config: SSOAuthConfig): Promise<SSOAuthResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Get stored SSO credentials
|
|
23
|
+
*/
|
|
24
|
+
getStoredCredentials(): Promise<SSOCredentials | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Clear stored credentials
|
|
27
|
+
*/
|
|
28
|
+
clearStoredCredentials(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Ensure API base URL has correct format
|
|
31
|
+
*/
|
|
32
|
+
private ensureApiBase;
|
|
33
|
+
/**
|
|
34
|
+
* Start local HTTP server for OAuth callback
|
|
35
|
+
*/
|
|
36
|
+
private startLocalServer;
|
|
37
|
+
/**
|
|
38
|
+
* Handle OAuth callback from browser
|
|
39
|
+
*/
|
|
40
|
+
private handleCallback;
|
|
41
|
+
/**
|
|
42
|
+
* Wait for OAuth callback with timeout
|
|
43
|
+
*/
|
|
44
|
+
private waitForCallback;
|
|
45
|
+
/**
|
|
46
|
+
* Cleanup server resources
|
|
47
|
+
*/
|
|
48
|
+
private cleanup;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sso.auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.auth.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGxF;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,UAAU,CAAU;IAE5B;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA0CjE;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAa5D;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7C;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsFxB;;OAEG;YACW,cAAc;IA2D5B;;OAEG;YACW,eAAe;IAmB7B;;OAEG;IACH,OAAO,CAAC,OAAO;CAMhB"}
|