#1320

Add DigitalOcean as a routable gateway provider

OpenDanielButler1opened 3mo ago

Deferred to Q1 — 2026-10-26

Not part of the Q4 plan; stays in Backlog for Q1 planning.

Current review — 2026-10-20

Current main contains DigitalOcean catalogue/discovery references but no explicit DigitalOcean inference executor/configuration registration in the gateway paths reviewed. Catalogue additions such as phaseoteam/Phaseo#2047 are not provider enablement. Remaining: implement and contract-test the provider, read current canonical routing/pricing rows and obtain authenticated route evidence before changing readiness. Reverify the August Kimi K3 model/pricing claims against current official/live data during implementation.


Context

DigitalOcean already exists in the data catalog, but it is marked NotReady and is not configured as a routable Phaseo gateway provider.

DigitalOcean's public model catalog now exposes Kimi K3 as kimi-k3 for serverless inference with vision, tool calling, streaming, and structured output. The catalog reports $3.00 per million input tokens, $0.60 per million cached input tokens, and $15.00 per million output tokens.

Scope

  • implement DigitalOcean's OpenAI-compatible inference endpoint as a gateway provider
  • add the required runtime API-key and base-URL bindings without exposing credentials
  • register provider configuration, executor resolution, model discovery, and availability metadata
  • change the provider from NotReady only after a working authenticated route is verified
  • add Kimi K3 using provider model ID kimi-k3 and the live catalog pricing
  • preserve DigitalOcean's serverless capabilities, including vision, tool calling, streaming, and structured output
  • add provider configuration, routing, contract, and AIMock coverage

References

Acceptance criteria

  • a Phaseo request can route to DigitalOcean through the standard text-generation surface
  • authentication and upstream errors are normalized consistently with other OpenAI-compatible providers
  • kimi-k3 is discoverable with correct capabilities and pricing
  • provider and AIMock checks pass

Created with Codex

Activity

10
linear-code[bot]3mo ago
opencode-agent[bot]3mo ago
Issue understanding

This is a feature request to add DigitalOcean as a routable gateway provider in Phaseo. DigitalOcean already exists in the data catalog but is marked NotReady. The task involves implementing DigitalOcean's OpenAI-compatible inference endpoint, adding API-key and base-URL bindings, registering provider configuration/executor resolution/model discovery, adding Kimi K3 model with correct pricing and capabilities, and ensuring provider/AIMock tests pass.

AI Agent Prompt (Copy/Paste)

Add DigitalOcean as a routable gateway provider in Phaseo.

DigitalOcean already exists in the data catalog but is marked `NotReady`. Implement it as an OpenAI-compatible provider following the patterns used by other OpenAI-compatible providers in the codebase.

Key tasks:
1. Find DigitalOcean's entry in `packages/data/catalog/src/data` and understand its current state
2. Examine how other OpenAI-compatible providers are implemented (look at provider configuration, executor resolution, model discovery in `apps/api`)
3. Add DigitalOcean provider configuration with runtime API-key and base-URL bindings (no hardcoded credentials)
4. Register provider configuration, executor resolution, model discovery, and availability metadata
5. Add Kimi K3 model using provider model ID `kimi-k3` with pricing: $3.00/M input, $0.60/M cached input, $15.00/M output
6. Enable capabilities: vision, tool calling, streaming, structured output
7. Add provider configuration, routing, contract, and AIMock test coverage
8. Verify provider and AIMock checks pass

Reference docs:
- https://docs.digitalocean.com/products/inference/details/models/
- https://docs.digitalocean.com/products/inference/details/pricing/

Inspect the codebase to understand existing patterns before implementing. Run `pnpm lint`, `pnpm typecheck`, and relevant tests to verify changes.

Clarifying Questions (Optional)

  • What is the base URL for DigitalOcean's inference API endpoint?
  • Are there any environment variable naming conventions for provider API keys in this codebase (e.g., DIGITALOCEAN_API_KEY)?

opencode session  |  github run

admin added status/stalestatus/stalestatus/stalestatus/stale labels2mo ago
admin removed status/stalestatus/stalestatus/stalestatus/stale labels10d ago