feat(v2): add permission mode passthrough and fix agent stop-on-close

- Add permission_mode field to AgentQueryOptions (Rust, sidecar, bridge)
  flowing from controller through sidecar to SDK; defaults to
  bypassPermissions, supports default mode
- Fix AgentPane onDestroy bug: remove stopAgent() from onDestroy (fires
  on layout remounts), move stop-on-close to TilingGrid onClose handler
- Bundle SDK into sidecar via esbuild (remove --external flag)
This commit is contained in:
Hibryda 2026-03-06 23:33:51 +01:00
parent af0eb362e6
commit d5eb08ed42
7 changed files with 26 additions and 14 deletions

View file

@ -27,6 +27,7 @@ interface QueryMessage {
maxTurns?: number;
maxBudgetUsd?: number;
resumeSessionId?: string;
permissionMode?: string;
}
interface StopMessage {
@ -51,7 +52,7 @@ function handleMessage(msg: Record<string, unknown>) {
}
async function handleQuery(msg: QueryMessage) {
const { sessionId, prompt, cwd, maxTurns, maxBudgetUsd, resumeSessionId } = msg;
const { sessionId, prompt, cwd, maxTurns, maxBudgetUsd, resumeSessionId, permissionMode } = msg;
if (sessions.has(sessionId)) {
send({ type: "error", sessionId, message: "Session already running" });
@ -84,8 +85,8 @@ async function handleQuery(msg: QueryMessage) {
"Bash", "Read", "Write", "Edit", "Glob", "Grep",
"WebSearch", "WebFetch", "TodoWrite", "NotebookEdit",
],
permissionMode: "bypassPermissions",
allowDangerouslySkipPermissions: true,
permissionMode: (permissionMode ?? "bypassPermissions") as "bypassPermissions" | "default",
allowDangerouslySkipPermissions: (permissionMode ?? "bypassPermissions") === "bypassPermissions",
},
});