Files

40 lines
1.7 KiB
Markdown

# API — godot-opencode 1.0.0
## Bridge tools (`godot_*`)
| Tool | Bridge method | Purpose |
|---|---|---|
| `godot_editor_state` | `editor_state` | Editor state snapshot |
| `godot_scene_get_hierarchy` | `scene_get_hierarchy` | Scene hierarchy |
| `godot_node_get_properties` | `node_get_properties` | Node properties |
| `godot_session_activate` | `session_activate` | Session switch |
| `godot_capture_viewport` | `capture_viewport` | Viewport PNG (base64), stale fallback past 1000 ms |
| `godot_shader_generate` | `generate_shader` | spatial/canvas-item shader + uniforms |
| `godot_theme_apply_style` | `apply_stylebox` | StyleBoxFlat / font / color overrides |
Companion dispatch adds: `frame_aabb`, `capture_status`,
`inject_uniform`, `list_uniforms`, `inspect_theme`,
`apply_font_override`, plus the Phase ≤4 node/signal/resource set.
## TypeScript modules
- `src/vision/viewport.ts` — `frameAABB`, `isStaleFrame`,
`buildCaptureParams`, `parseCaptureResult`, `executeCaptureViewport`,
`MAIN_LOOP_STALL_MSEC = 1000`.
- `src/studio/shaders.ts` — `generateShader`, `injectUniform`,
`listUniforms`, `buildStyleBoxFlat`, `applyStyleOverride`,
`buildFontOverride`.
- `src/indexer/project.ts` — `parseTscn`, `parseProjectGodot`,
`indexProject(fs)`, `renderArchitectureMap`.
- `src/verify/production.ts` — `runProductionPipeline` (mock-friendly
E2E orchestrator; stages: `devStory, scene, script, signal, hudStyle,
gut, headless, viewport`).
- `src/studio/commands.ts` — `/setup-godot /adr /dev-story /story-done
/gate-check`.
## Status model
`ok | error | unavailable | timeout`, plus pipeline-tolerated
`unavailable-tolerated` (no binary) and `stale-tolerated` (stalled main
loop). Tolerated statuses keep CI green without an engine.