Repository navigation
feat(ai): add Standard Compute memory provider preset - #502
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The key-only Standard Compute configuration leaves runtime provider fields undefined, causing auto-capture, profile learning, and dreaming to skip the provider.
1 open issue
What changed in this PR
Adds an opt-in Standard Compute memory provider using the existing OpenAI Chat Completions transport, following the CloudGPU and Runcrate presets without changing existing defaults.
Changes:
- Adds provider defaults, factory registration, session tagging, and configuration support.
- Adds tests for authentication, request serialization, response extraction, and configuration handling.
- Documents setup, data transmission, and tool-choice troubleshooting across all README languages.
| File | Description |
|---|---|
tests/standardcompute-provider.test.ts |
Tests provider behavior and factory registration. |
tests/config-resolution.test.ts |
Tests environment-key fallback and project configuration restrictions. |
tests/ai-provider-config.test.ts |
Tests minimal configuration and API-key requirements. |
src/types/index.ts |
Extends the provider type union. |
src/services/ai/session/session-types.ts |
Adds the Standard Compute session provider type. |
src/services/ai/providers/standardcompute.ts |
Implements endpoint, model, and session-tag defaults. |
src/services/ai/provider-config.ts |
Recognizes Standard Compute as a preset provider. |
src/services/ai/ai-provider-factory.ts |
Registers and lists the new provider. |
src/config.ts |
Adds configuration types, key fallback, readiness handling, and template guidance. |
README.md |
Documents setup, data destination, and troubleshooting. |
opencode-mem.example.jsonc |
Adds commented configuration examples. |
.github/i18n/README.zh.md |
Adds Chinese provider documentation. |
.github/i18n/README.tr.md |
Adds Turkish provider documentation. |
.github/i18n/README.nl.md |
Adds Dutch provider documentation. |
.github/i18n/README.de.md |
Adds German provider documentation. |
.github/i18n/README.ar.md |
Adds Arabic provider documentation. |
Review effort: Balanced
| config.memoryProvider === "runcrate" || | ||
| config.memoryProvider === "cloudgpu" | ||
| config.memoryProvider === "cloudgpu" || | ||
| config.memoryProvider === "standardcompute" |
There was a problem hiding this comment.
Fixed in d3b2413: preset endpoint/model defaults are now resolved into runtime CONFIG for all key-only presets (including standardcompute), so auto-capture / dreaming / profile learning see memoryModel + memoryApiUrl. Shared defaults live in memory-provider-presets.ts.
|
On the Copilot finding: it's real, but it isn't specific to this preset. Every key-only preset follows the same path, including
This PR keeps the existing preset behavior rather than changing it for one provider. The existing Happy to do either, whichever you prefer:
|
Key-only preset configs were marked ready but left memoryModel/memoryApiUrl undefined, so auto-capture, dreaming, and profile learning skipped the external channel. Materialize shared preset defaults during config build.
|
Pushed a follow-up fix for the Copilot finding: key-only presets now materialize their default |

Summary
Add an optional Standard Compute memory provider preset using the existing OpenAI Chat Completions transport, following the merged CloudGPU preset in #470 (and Runcrate in #457 before it). Standard Compute is an OpenAI-compatible gateway whose routed
StandardComputemodel id sends each request to the cheapest capable model.memoryProvider: "standardcompute": endpoint defaulthttps://api.stdcmpt.com/v1, model defaultStandardCompute,STANDARDCOMPUTE_API_KEYfallback, explicitenv://key configuration, and a distinctstandardcomputesession tag.tool_choice: "required"), tool response extraction, overrides, environment-key resolution, and rejection of remote-provider changes from project configuration.https://api.stdcmpt.com).Files changed
src/services/ai/providers/standardcompute.ts(new):StandardComputeProviderextendsOpenAIChatCompletionProvider, overriding endpoint, default model and session tagsrc/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 typessrc/config.ts: provider union,STANDARDCOMPUTE_API_KEYfallback, readiness check, config templateopencode-mem.example.jsonc,README.md,.github/i18n/README.{ar,de,nl,tr,zh}.md: docstests/standardcompute-provider.test.ts(new),tests/ai-provider-config.test.ts,tests/config-resolution.test.ts: tests mirroring the CloudGPU onesTest plan
StandardComputewas confirmed against the public catalogue atGET https://api.stdcmpt.com/v1/models."forceToolChoice": falseis documented for models that reject forced tool calls.Checklist
main(do not open PRs from commits already onmain)bun testpasses (not run locally; relying on CI)bun run typecheckpasses (not run locally; relying on CI)bun run checkpasses (not run locally; relying on CI)Disclosure: I work on Standard Compute; this PR was prepared with AI assistance.
🤖 Generated with Claude Code