mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 13:03:46 +00:00
## Summary Fix credential detection bugs and add credential availability status to the API. Consolidate Claude fallback models and add `sonnet` alias. Builds on #109 (OAuth token support). Related issues: - Fixes #117 (Claude, Codex not showing up in gigacode) - Related to #113 (Default agent should be Claude Code) ## Changes ### Credential detection fixes - **`agent-credentials/src/lib.rs`**: Fix `?` operator bug in `extract_claude_credentials` - now continues to next config path if one is missing instead of returning early ### API credential status - **`sandbox-agent/src/router.rs`**: Add `credentialsAvailable` field to `AgentInfo` struct - **`/v1/agents`** endpoint now reports whether each agent has valid credentials ### OpenCode provider improvements - **`sandbox-agent/src/opencode_compat.rs`**: Build `connected` array based on actual credential availability, not just model presence - Check provider-specific credentials for OpenCode groups (e.g., `opencode:anthropic` only connected if Anthropic creds available) - Add logging when credential extraction fails in model cache building ### Fallback model consolidation - Renamed `claude_oauth_fallback_models()` → `claude_fallback_models()` (used for all fallback cases, not just OAuth) - Added `sonnet` to fallback models (confirmed working via headless CLI test) - Added `codex_fallback_models()` for Codex when credentials missing - Added comment explaining aliases work for both API and OAuth users ### Documentation - **`docs/credentials.mdx`**: New reference doc covering credential sources, extraction behavior, and error handling - Documents that extraction failures are silent (not errors) - Documents that agents spawn without credential pre-validation ### Inspector UI - **`AgentsTab.tsx`**: Added credential status pill showing "Authenticated" or "No Credentials" ## Error Handling Philosophy - **Extraction failures are silent**: Missing/malformed config files don't error, just continue to next source - **Agents spawn without credential validation**: No pre-flight auth check; agent's native error surfaces if credentials are missing - **Fallback models for UI**: When credentials missing, show alias-based models so users can still configure sessions ## Validation - Tested Claude Code model aliases via headless CLI: - `claude --model default --print "say hi"` ✓ - `claude --model sonnet --print "say hi"` ✓ - `claude --model haiku --print "say hi"` ✓ - Build passes - TypeScript types regenerated with `credentialsAvailable` field
91 lines
1.6 KiB
JSON
91 lines
1.6 KiB
JSON
{
|
|
"$schema": "https://mintlify.com/docs.json",
|
|
"theme": "willow",
|
|
"name": "Sandbox Agent SDK",
|
|
"appearance": {
|
|
"default": "dark",
|
|
"strict": true
|
|
},
|
|
"colors": {
|
|
"primary": "#ff4f00",
|
|
"light": "#ff4f00",
|
|
"dark": "#ff4f00"
|
|
},
|
|
"favicon": "/favicon.svg",
|
|
"logo": {
|
|
"light": "/logo/light.svg",
|
|
"dark": "/logo/dark.svg"
|
|
},
|
|
"integrations": {
|
|
"posthog": {
|
|
"apiKey": "phc_6kfTNEAVw7rn1LA51cO3D69FefbKupSWFaM7OUgEpEo",
|
|
"apiHost": "https://ph.rivet.gg",
|
|
"sessionRecording": true
|
|
}
|
|
},
|
|
"navbar": {
|
|
"links": [
|
|
{
|
|
"label": "Discord",
|
|
"icon": "discord",
|
|
"href": "https://discord.gg/auCecybynK"
|
|
},
|
|
{
|
|
"label": "GitHub",
|
|
"icon": "github",
|
|
"href": "https://github.com/rivet-dev/sandbox-agent"
|
|
}
|
|
]
|
|
},
|
|
"navigation": {
|
|
"pages": [
|
|
{
|
|
"group": "Getting started",
|
|
"pages": [
|
|
"quickstart",
|
|
"building-chat-ui",
|
|
"manage-sessions",
|
|
"opencode-compatibility"
|
|
]
|
|
},
|
|
{
|
|
"group": "Deploy",
|
|
"pages": [
|
|
"deploy/index",
|
|
"deploy/local",
|
|
"deploy/e2b",
|
|
"deploy/daytona",
|
|
"deploy/vercel",
|
|
"deploy/cloudflare",
|
|
"deploy/docker"
|
|
]
|
|
},
|
|
{
|
|
"group": "SDKs",
|
|
"pages": ["sdks/typescript", "sdks/python"]
|
|
},
|
|
{
|
|
"group": "Reference",
|
|
"pages": [
|
|
"cli",
|
|
"inspector",
|
|
"session-transcript-schema",
|
|
"credentials",
|
|
"gigacode",
|
|
{
|
|
"group": "AI",
|
|
"pages": ["ai/skill", "ai/llms-txt"]
|
|
},
|
|
{
|
|
"group": "Advanced",
|
|
"pages": ["daemon", "cors", "telemetry"]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "HTTP API Reference",
|
|
"openapi": "openapi.json"
|
|
}
|
|
]
|
|
}
|
|
}
|