Commit graph

29 commits

Author SHA1 Message Date
NathanFlurry
4201bd204b
chore: simplify cloudflare compatibility (#191) 2026-02-23 19:31:54 +00:00
NicholasKissel
e134012955 feat(inspector): improve session UI, skills dropdown, and visual polish (#179)
- Add delete button on ended sessions (visible on hover)
- Darken ended sessions with opacity and "ended" pill badge
- Sort ended sessions to bottom of list
- Add token usage pill in chat header
- Disable input when session ended
- Add Official Skills dropdown with SDK and Rivet presets
- Format session IDs shorter with full ID on hover
- Add arrow icon to "Configure persistence" link
- Add agent logo SVGs
2026-02-13 05:54:53 +00:00
Nathan Flurry
94353f7696 chore: fix bad merge 2026-02-11 07:57:02 -08:00
NathanFlurry
e72eb9f611
acp spec (#155) 2026-02-11 14:47:41 +00:00
NathanFlurry
4c8d93e077
docs: add mcp and skill session config (#106) 2026-02-09 10:13:25 +00:00
Nathan Flurry
91cac052b8 fix: add native turn lifecycle and stabilize opencode session flow 2026-02-07 20:24:21 -08:00
Nathan Flurry
63625ee48f fix: wire gigacode --yolo through opencode session permissionMode 2026-02-07 03:08:07 -08:00
NathanFlurry
c54f83e1a6
fix: credential detection and provider auth status (#120)
## 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
2026-02-07 07:56:06 +00:00
Nathan Flurry
b74539172b
feat: model list (#96) 2026-02-06 02:59:23 -08:00
Topper Bowers
7378abee46
linux-arm64 support (#63)
docker on osx runs as linux-arm64 and there's no build for that. TBH, this is completely vibe coded but I did manually but I did look through this and seems right to me.
2026-02-04 23:36:23 -08:00
Jordan Coeyman
cc5a9e0d73
docs: add Cloudflare Sandbox SDK deployment guide (#57)
* docs: add Cloudflare Sandbox SDK deployment guide

- Add docs/deploy/cloudflare.mdx with full deployment guide
- Add examples/cloudflare/ with working Worker code
- Update docs navigation to include Cloudflare option
- Update deploy index page with Cloudflare card

The example shows how to run sandbox-agent inside a Cloudflare Sandbox
with exposed ports for API access.

Co-authored-by: Shelley <shelley@exe.dev>

* fix: guard server startup to avoid port conflicts

Add health check before starting sandbox-agent to prevent 'address already
in use' errors on subsequent requests. The isServerRunning() function probes
the health endpoint to determine if setup should be skipped.

Co-authored-by: Shelley <shelley@exe.dev>

* fix: default cloudflare/sandbox:0.7.0 (latest does not exist)

* feat(cloudflare): add React frontend and improve deployment docs

- Add React + Vite frontend for Cloudflare example with sandbox-agent SDK
- Update ensureRunning to poll health endpoint instead of fixed wait
- Fix SDK fetch binding issue (globalThis.fetch.bind)
- Update docs with .dev.vars format warning and container caching tip
- Use containerFetch proxy pattern for reliable local dev

---------

Co-authored-by: Shelley <shelley@exe.dev>
Co-authored-by: Nathan Flurry <git@nathanflurry.com>
Co-authored-by: Nathan Flurry <developer@nathanflurry.com>
2026-02-03 02:15:34 -08:00
Nathan Flurry
02bb992b11
fix: fix bun install bug (#62)
* fix: fix bun install bug

* refactor: consolidate executable check into assertExecutable helper

- Add assertExecutable() to cli-shared that checks and attempts chmod
- Simplify CLI and SDK spawn code to use the shared helper
- Fix cli-shared package.json exports (.js not .mjs)
- Add global install instructions to SDK error message

* chore(release): update version to 0.1.6-rc.1

* fix: add cli-shared package to Dockerfiles

* chore(release): update version to 0.1.6-rc.1

* fix: add cli-shared publishing to release workflow

* chore(release): update version to 0.1.6-rc.1

* fix: handle already-exists error during crate publish

* chore(release): update version to 0.1.6-rc.1
2026-02-02 21:12:41 -08:00
Nathan Flurry
e3c030f66d
fix: correct inspector package name in Dockerfiles and add .dockerignore (#50)
* chore: remove inspect.sandboxagent.dev in favor of /ui/

* chore: add 404 page

* fix: correct inspector package name in Dockerfiles and add .dockerignore

- Change @anthropic-ai/sdk-inspector to @sandbox-agent/inspector in all Dockerfiles
- Add .dockerignore to exclude target/, node_modules/, etc from Docker context

The wrong package name caused pnpm install --filter to match nothing, so the
inspector frontend was never built, resulting in binaries without the /ui/ endpoint.

* chore: cargo fmt

* chore(release): update version to 0.1.4-rc.7
2026-02-01 23:03:51 -08:00
Nathan Flurry
0faa608822 fix: use sandbox-agent CLI for credential extraction in tests and add delay for permission approval 2026-01-29 07:39:07 -08:00
Nathan Flurry
c7d6482fd4
feat: add structured stderr output for error diagnostics (#29)
Add StderrOutput schema with head/tail/truncated/total_lines fields to
provide better error diagnostics when agent processes fail.
2026-01-29 07:18:56 -08:00
Nathan Flurry
6aa591bd91 chore: sync workspace changes 2026-01-28 01:13:50 -08:00
Nathan Flurry
50b5289e47 feat: show mock agent hint bubble in empty state 2026-01-27 21:32:56 -08:00
Nathan Flurry
962512a0db feat: add end session button to chat header 2026-01-27 21:03:33 -08:00
Nathan Flurry
f67b6fc4b1 wip inspector 2026-01-27 19:26:13 -08:00
Nathan Flurry
d5e2a27a5f fix: add ServerStatus and ServerStatusInfo to OpenAPI schemas 2026-01-27 17:16:55 -08:00
Nathan Flurry
34d4f3693e feat: add turn streaming and inspector updates 2026-01-27 06:18:43 -08:00
Nathan Flurry
bf58891edf chore: sync workspace changes 2026-01-27 05:06:33 -08:00
Nathan Flurry
f5d1a6383d feat: sync universal schema and sdk updates 2026-01-27 02:52:25 -08:00
Nathan Flurry
4083baa1c1 chore: sync workspace changes 2026-01-26 22:29:10 -08:00
Nathan Flurry
011ca27287 feat: expand api snapshots and schema tooling 2026-01-26 00:13:17 -08:00
Nathan Flurry
71ab40388c refactor: rename engine/ to server/ 2026-01-25 14:14:58 -08:00
Nathan Flurry
ab2c1c2b62 docs: restore project goals and scope to README 2026-01-25 04:06:25 -08:00
Nathan Flurry
1fcae6ed76 feat: refresh web console theme 2026-01-25 03:33:34 -08:00
Nathan Flurry
f92ecd9b9a chore: sync workspace changes 2026-01-25 01:57:16 -08:00