chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import type { AgentDef } from '../types.js';
|
||||
|
||||
/**
|
||||
* OpenCode def (`opencode`, by SST — sst/opencode, npm `opencode-ai`).
|
||||
*
|
||||
* Unlike the `--print`-style CLIs, OpenCode's non-interactive entry is the
|
||||
* `run` SUBCOMMAND, not a flag. `opencode run` takes the message as a
|
||||
* positional arg or on stdin (non-TTY stdin is prepended to the prompt), runs
|
||||
* the session, and exits when idle. We pipe the prompt via stdin.
|
||||
*
|
||||
* Output: default stdout is an event-stream of text (not JSON unless you pass
|
||||
* `--format json`), so plain mode captures it and the extractor reads the
|
||||
* fenced ```html``` block.
|
||||
*
|
||||
* Note: in non-interactive mode OpenCode tightens permissions by default
|
||||
* (question/plan: deny). Our chat-to-HTML flow only needs the model to emit
|
||||
* text + an html block — no file edits — so the default is fine. If a future
|
||||
* mode needs the agent to write files, add `--dangerously-skip-permissions`.
|
||||
*/
|
||||
export const opencode: AgentDef = {
|
||||
id: 'opencode',
|
||||
name: 'OpenCode',
|
||||
bin: 'opencode',
|
||||
versionArgs: ['--version'],
|
||||
buildArgs(_prompt, _ctx) {
|
||||
// `run` is the headless subcommand; prompt arrives via stdin.
|
||||
return ['run'];
|
||||
},
|
||||
streamFormat: 'plain',
|
||||
promptViaStdin: true,
|
||||
installUrl: 'https://opencode.ai/docs',
|
||||
};
|
||||
Reference in New Issue
Block a user