Skip to content

feat(ai): add CloudGPU memory provider preset - #470

Open
mrhy7176 wants to merge 1 commit into
tickernelz:mainfrom
mrhy7176:feat/cloudgpu-provider
Open

mrhy7176 wants to merge 1 commit into
tickernelz:mainfrom
mrhy7176:feat/cloudgpu-provider

Conversation

@mrhy7176

@mrhy7176 mrhy7176 commented Nov 1, 2026

Copy link
Copy Markdown

Summary

Add an optional CloudGPU memory provider preset using the existing OpenAI Chat Completions transport, following the merged Runcrate preset in #457 (and #420 / #432 before it). CloudGPU serves models such as DeepSeek, GLM and Kimi over an OpenAI-compatible API.

  • memoryProvider: "cloudgpu": endpoint default https://cloudgpu.app/v1, model default deepseek-v4.1-flash, CLOUDGPU_API_KEY fallback, explicit env:// key configuration, and a distinct cloudgpu session tag.
  • Factory, configuration validation, readiness detection, example/template, and all README languages updated.
  • Tests cover authentication, request serialization (tool_choice: "required"), tool response extraction, overrides, environment-key resolution, and rejection of remote-provider changes from project configuration.
  • No defaults change for existing users. Users opt in with their own key (created at https://cloudgpu.app/api/console; API docs at https://cloudgpu.app/api/docs); the docs name the destination for conversation data (https://cloudgpu.app).

Files changed

  • src/services/ai/providers/cloudgpu.ts (new): CloudGPUProvider extends OpenAIChatCompletionProvider, overriding endpoint, default model and session tag
  • src/services/ai/ai-provider-factory.ts, src/services/ai/provider-config.ts, src/services/ai/session/session-types.ts, src/types/index.ts: wiring and types
  • src/config.ts: provider union, CLOUDGPU_API_KEY fallback, readiness check, config template
  • opencode-mem.example.jsonc, README.md, .github/i18n/README.{ar,de,nl,tr,zh}.md: docs
  • tests/cloudgpu-provider.test.ts (new), tests/ai-provider-config.test.ts, tests/config-resolution.test.ts: tests mirroring the Runcrate ones

Test plan

  • Exercised the change locally: not done. This PR was prepared through the GitHub API without a local checkout, so the new tests were written (mirroring the Runcrate tests from feat(ai): add Runcrate memory provider preset #457) but have not been run locally. The default model ID deepseek-v4.1-flash was confirmed against the public catalogue at GET https://cloudgpu.app/v1/models.
  • Known limitations: same as other OpenAI-compatible presets; "forceToolChoice": false is documented for models that reject forced tool calls.

Checklist

  • Branch is based on main (do not open PRs from commits already on main)
  • bun test passes (not run locally; relying on CI)
  • bun run typecheck passes (not run locally; relying on CI)
  • bun run check passes (not run locally; relying on CI)
  • Docs / README updated when behavior or contribution process changes

Disclosure: I work on CloudGPU; this PR was prepared with AI assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant