Commit Graph
14 Commits
Author SHA1 Message Date
Huynh Duc Dung 6078de78f2 fix(ui): use preset apiKeyPlaceholder when creating profiles
Fixes profile creation for local providers (llamacpp, ollama) where
apiKey is not required but server validation requires a truthy value.

Changes:
- Set apiKey to preset.apiKeyPlaceholder when selecting a preset
- Use preset.apiKeyPlaceholder as fallback in onSubmit
- Ensures sentinel values (e.g., "llamacpp", "ollama") are sent

Fixes user-reported error when creating llamacpp profile via dashboard.
2026-03-05 12:36:39 +08:00
Huynh Duc Dung 0ca6428554 feat(api): add llama.cpp support as local model provider
- Add llamacpp provider preset to provider-presets.ts
- Add base-llamacpp.settings.json configuration
- Update help-command.ts with ccs llamacpp documentation
- Update UI provider presets for dashboard parity

llama.cpp is a popular C++ inference engine for LLaMA models.
This complements existing Ollama support for local inference.

Usage: ccs llamacpp (requires llama.cpp server on port 8080)

Closes #690
2026-03-05 12:29:49 +08:00
Huynh Duc DungandClaude dc6977d32e fix(api): skip API key prompt for local Ollama using noApiKey flag
Local Ollama doesn't require an API key, but the CLI was still
prompting for one. This adds a `noApiKey` flag to provider presets
to mark providers that don't need authentication.

- Add `noApiKey?: boolean` property to ProviderPreset interface
- Set `noApiKey: true` for local Ollama (no key needed)
- All other presets unchanged (default to requiring API key)
- Skip API key prompt and show info message when noApiKey is true

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 17:34:12 +08:00
Huynh Duc DungandClaude ef2c8bba12 fix(api): skip API key prompt for local Ollama preset
Local Ollama doesn't require an API key, but the CLI was still
prompting for one. This adds a `requiresApiKey` property to provider
presets to control whether the API key step is required.

- Add `requiresApiKey` property to ProviderPreset interface
- Set `requiresApiKey: false` for local Ollama (no key needed)
- Set `requiresApiKey: true` for OpenRouter and Ollama Cloud
- Skip API key prompt and show info message when not required

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 17:21:50 +08:00
Huynh Duc DungandClaude c9604be5e1 docs: add Ollama to Built-in Providers table and usage examples
Update README.md to include:
- Ollama and Ollama Cloud in the Built-in Providers table
- Ollama integration note with setup instructions
- ccs ollama in Basic Commands section
- Ollama example in Parallel Workflows

Ref: https://github.com/kaitranntt/ccs/pull/354

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 17:04:36 +08:00
Huynh Duc DungandClaude bd3be23355 feat: add Ollama provider support
Add support for Ollama as a provider in CCS, enabling users to use
local Ollama models (qwen3-coder, gpt-oss:20b, gpt-oss:120b) and
Ollama Cloud models (glm-4.7:cloud, qwen3-coder:480b).

Changes:
- Add base-ollama.settings.json for local Ollama (localhost:11434)
- Add base-ollama-cloud.settings.json for ollama.com cloud API
- Add 'ollama' and 'ollama-cloud' presets to provider-presets.ts
- Update help documentation in api-command.ts and help-command.ts

Usage:
  ccs api create --preset ollama          # Local Ollama
  ccs api create --preset ollama-cloud    # Ollama Cloud

Ref: https://github.com/kaitranntt/ccs/issues/353

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 16:59:23 +08:00
Huynh Duc DungandClaude a00cf3691e refactor(api-key-validator): extract shared validation logic, remove unnecessary comments
- Extract common validation logic into validateProviderKey() function
- Convert validateGlmKey() and validateMiniMaxKey() to thin wrappers
- Remove 15+ unnecessary inline comments explaining obvious code
- Remove verbose JSDoc that duplicates function signatures
- Reduce file from 236 to 148 lines (37% reduction)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-03 07:54:32 +08:00
Huynh Duc Dung c48f798f3e fix(minimax): restore migrate-command, remove broken migration file, fix validator typo
- Restore src/commands/migrate-command.ts to dev branch state (was truncated)
- Remove src/config/rename-minimax-profile.ts (circular export causing build break)
- Fix mm.settings.json path typo in api-key-validator.ts

Build now passes: bun run typecheck && bun run lint:fix
2026-01-03 07:46:44 +08:00
Huynh Duc Dung 4dace513ea fix(migrate): Add rename-profile flag handling
- Add renameMinimaxProfile import from rename-minimax-profile.ts
- Handle --rename-profile <from> <to> flag in handleMigrateCommand
- Update help text with rename-profile example
- Fix @ts-ignore comment to suppress unused warning
2026-01-02 21:19:22 +08:00
Huynh Duc Dung 267599d09d feat(minimax): Add mm profile and migration support
- Rename profile from minimax to mm for brevity
- Add renameMinimaxProfile() migration function
- Add --rename-profile flag to migrate command
- Update help text with rename-profile example
2026-01-02 21:17:26 +08:00
Huynh Duc Dung 2b549f5b3d refactor(minimax): Rename to 'mm' for brevity
- Rename profile ID: minimax -> mm
- Rename settings file: base-minimax.settings.json -> base-mm.settings.json
- Update all code references
- Remove review_pr.md documentation
- Shorter CLI command: ccs mm instead of ccs minimax

Rationale:
- 'mm' is more concise (2 chars vs 7 chars)
- Matches 'glm', 'kimi' short naming pattern
- Improves UX for frequent switching
2026-01-02 20:38:52 +08:00
Huynh Duc Dung 5d34bd6ec2 docs(minimax): Update review_pr.md with fix status
- Mark Issue 1 as FIXED (model name casing)
- Mark Issue 2 as FIXED (placeholder added)
- Update review summary with completion status
- Ready for merge
2026-01-02 20:32:29 +08:00
Huynh Duc Dung 46e09950e8 fix(minimax): Add MiniMax placeholder to DEFAULT_PLACEHOLDERS
- Add 'YOUR_MINIMAX_API_KEY_HERE' for consistency
- Ensures placeholder detection works correctly
- Aligns with other provider patterns (GLM, Kimi)
2026-01-02 20:31:27 +08:00
Huynh Duc Dung bd5c9a0033 feat(minimax): Add full MiniMax M2.1 support
- Add MiniMax settings template (config/base-minimax.settings.json)
- Add MiniMax pricing (3 models: M2.1, M2.1-lightning, M2)
- Add validateMiniMaxKey() pre-flight validator
- Integrate MiniMax validation in main CLI flow
- Fix model name casing: M2.1-lightning (lowercase l)

Implementation follows GLM pattern:
- Anthropic-compatible API (no proxy needed)
- Pre-flight validation with health check
- Fail-open on network errors
- Actionable error messages
2026-01-02 20:27:52 +08:00