codekin 0.6.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +6 -3
  2. package/dist/assets/index-CLuQVRRb.css +1 -0
  3. package/dist/assets/index-JVnFWiSw.js +185 -0
  4. package/dist/index.html +2 -2
  5. package/package.json +4 -2
  6. package/server/dist/anthropic-models.d.ts +40 -0
  7. package/server/dist/anthropic-models.js +212 -0
  8. package/server/dist/anthropic-models.js.map +1 -0
  9. package/server/dist/claude-process.d.ts +31 -3
  10. package/server/dist/claude-process.js +126 -9
  11. package/server/dist/claude-process.js.map +1 -1
  12. package/server/dist/codex-process.d.ts +147 -0
  13. package/server/dist/codex-process.js +741 -0
  14. package/server/dist/codex-process.js.map +1 -0
  15. package/server/dist/coding-process.d.ts +16 -4
  16. package/server/dist/coding-process.js +10 -0
  17. package/server/dist/coding-process.js.map +1 -1
  18. package/server/dist/config.d.ts +13 -0
  19. package/server/dist/config.js +18 -0
  20. package/server/dist/config.js.map +1 -1
  21. package/server/dist/opencode-process.d.ts +142 -5
  22. package/server/dist/opencode-process.js +664 -84
  23. package/server/dist/opencode-process.js.map +1 -1
  24. package/server/dist/orchestrator-children.d.ts +53 -6
  25. package/server/dist/orchestrator-children.js +292 -68
  26. package/server/dist/orchestrator-children.js.map +1 -1
  27. package/server/dist/orchestrator-manager.d.ts +10 -0
  28. package/server/dist/orchestrator-manager.js +70 -18
  29. package/server/dist/orchestrator-manager.js.map +1 -1
  30. package/server/dist/orchestrator-monitor.d.ts +7 -1
  31. package/server/dist/orchestrator-monitor.js +49 -19
  32. package/server/dist/orchestrator-monitor.js.map +1 -1
  33. package/server/dist/orchestrator-notify.d.ts +16 -3
  34. package/server/dist/orchestrator-notify.js +22 -7
  35. package/server/dist/orchestrator-notify.js.map +1 -1
  36. package/server/dist/orchestrator-outbox.d.ts +48 -0
  37. package/server/dist/orchestrator-outbox.js +154 -0
  38. package/server/dist/orchestrator-outbox.js.map +1 -0
  39. package/server/dist/orchestrator-session-router.js +40 -1
  40. package/server/dist/orchestrator-session-router.js.map +1 -1
  41. package/server/dist/prompt-router.d.ts +22 -1
  42. package/server/dist/prompt-router.js +94 -11
  43. package/server/dist/prompt-router.js.map +1 -1
  44. package/server/dist/session-archive.js +11 -1
  45. package/server/dist/session-archive.js.map +1 -1
  46. package/server/dist/session-lifecycle.js +36 -0
  47. package/server/dist/session-lifecycle.js.map +1 -1
  48. package/server/dist/session-manager.d.ts +19 -2
  49. package/server/dist/session-manager.js +116 -27
  50. package/server/dist/session-manager.js.map +1 -1
  51. package/server/dist/session-naming.d.ts +4 -0
  52. package/server/dist/session-naming.js +26 -5
  53. package/server/dist/session-naming.js.map +1 -1
  54. package/server/dist/session-routes.js +38 -1
  55. package/server/dist/session-routes.js.map +1 -1
  56. package/server/dist/stepflow-handler.js +2 -2
  57. package/server/dist/stepflow-handler.js.map +1 -1
  58. package/server/dist/tsconfig.tsbuildinfo +1 -1
  59. package/server/dist/types.d.ts +24 -3
  60. package/server/dist/types.js +1 -9
  61. package/server/dist/types.js.map +1 -1
  62. package/server/dist/upload-routes.d.ts +7 -0
  63. package/server/dist/upload-routes.js +53 -24
  64. package/server/dist/upload-routes.js.map +1 -1
  65. package/server/dist/webhook-handler.js +3 -3
  66. package/server/dist/webhook-handler.js.map +1 -1
  67. package/server/dist/workflow-config.d.ts +2 -2
  68. package/server/dist/workflow-engine.d.ts +19 -0
  69. package/server/dist/workflow-engine.js +27 -3
  70. package/server/dist/workflow-engine.js.map +1 -1
  71. package/server/dist/workflow-loader.d.ts +5 -5
  72. package/server/dist/workflow-loader.js +90 -59
  73. package/server/dist/workflow-loader.js.map +1 -1
  74. package/server/dist/ws-message-handler.js +19 -8
  75. package/server/dist/ws-message-handler.js.map +1 -1
  76. package/server/dist/ws-server.js +25 -1
  77. package/server/dist/ws-server.js.map +1 -1
  78. package/dist/assets/index-B0xIzdCK.js +0 -187
  79. package/dist/assets/index-Q2WSVlHo.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-process.js","sourceRoot":"","sources":["../codex-process.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,14 @@
11
11
  */
12
12
  import type { EventEmitter } from 'events';
13
13
  import type { ClaudeProcessEvents } from './claude-process.js';
14
+ import type { TaskItem } from './types.js';
14
15
  /**
15
16
  * Supported AI coding assistant providers.
16
17
  * - 'claude': Claude Code CLI (subprocess, NDJSON on stdin/stdout)
17
18
  * - 'opencode': OpenCode server (HTTP REST + SSE)
19
+ * - 'codex': OpenAI Codex CLI (subprocess, `codex app-server` JSON-RPC on stdin/stdout)
18
20
  */
19
- export type CodingProvider = 'claude' | 'opencode';
21
+ export type CodingProvider = 'claude' | 'opencode' | 'codex';
20
22
  /**
21
23
  * Capabilities that differ between providers. SessionManager and frontend
22
24
  * use this to gate features that aren't universally available.
@@ -60,10 +62,18 @@ export interface CodingProcess extends EventEmitter<ClaudeProcessEvents> {
60
62
  sendRaw(data: string): void;
61
63
  /**
62
64
  * Respond to a permission/control request.
63
- * Claude: writes control_response JSON to stdin.
64
- * OpenCode: POSTs to /permission/:requestId/reply.
65
+ * Claude: writes control_response JSON to stdin ('allow_always' = 'allow').
66
+ * OpenCode: POSTs to /permission/:requestId/reply (once/always/reject).
65
67
  */
66
- sendControlResponse(requestId: string, behavior: 'allow' | 'deny', updatedInput?: Record<string, unknown>, message?: string): void;
68
+ sendControlResponse(requestId: string, behavior: 'allow' | 'deny' | 'allow_always', updatedInput?: Record<string, unknown>, message?: string): void;
69
+ /**
70
+ * Optionally change the permission mode in-place without a restart.
71
+ * Resolves true if the provider acknowledged the change. Providers that
72
+ * don't support runtime mode changes omit this — callers fall back to restart.
73
+ */
74
+ setPermissionMode?(mode: import('./types.js').PermissionMode): Promise<boolean>;
75
+ /** Seed task/todo state from a previous process's last known list (session restore). */
76
+ seedTasks(tasks: TaskItem[]): void;
67
77
  /** Whether the process is currently running and accepting input. */
68
78
  isAlive(): boolean;
69
79
  /** Whether the process is fully initialized and ready to accept messages immediately. */
@@ -81,3 +91,5 @@ export interface CodingProcess extends EventEmitter<ClaudeProcessEvents> {
81
91
  export declare const CLAUDE_CAPABILITIES: ProviderCapabilities;
82
92
  /** Default capabilities for the OpenCode provider. */
83
93
  export declare const OPENCODE_CAPABILITIES: ProviderCapabilities;
94
+ /** Default capabilities for the OpenAI Codex CLI provider. */
95
+ export declare const CODEX_CAPABILITIES: ProviderCapabilities;
@@ -29,4 +29,14 @@ export const OPENCODE_CAPABILITIES = {
29
29
  multiProvider: true,
30
30
  planMode: true,
31
31
  };
32
+ /** Default capabilities for the OpenAI Codex CLI provider. */
33
+ export const CODEX_CAPABILITIES = {
34
+ streaming: true,
35
+ multiTurn: true,
36
+ permissionControl: true,
37
+ toolEvents: true,
38
+ thinkingDisplay: true,
39
+ multiProvider: false,
40
+ planMode: false,
41
+ };
32
42
  //# sourceMappingURL=coding-process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coding-process.js","sourceRoot":"","sources":["../coding-process.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoFH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;CACf,CAAA"}
1
+ {"version":3,"file":"coding-process.js","sourceRoot":"","sources":["../coding-process.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgGH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;CAChB,CAAA"}
@@ -18,6 +18,19 @@ export declare const REPOS_ROOT: string;
18
18
  * is inaccessible, or escapes REPOS_ROOT.
19
19
  */
20
20
  export declare function resolveRepoPathInRoot(repoPath: string): string | null;
21
+ /**
22
+ * Resolve the canonical local repo directory used to group sessions in the
23
+ * sidebar. Repos are cloned owner-namespaced (`REPOS_ROOT/owner/name`, see
24
+ * `localRepoPath` in upload-routes), and manual sessions group under that same
25
+ * path. Automated sessions (webhook, stepflow) must use the owner-namespaced
26
+ * path too — otherwise a flat `REPOS_ROOT/name` groupDir produces a second,
27
+ * duplicate repo node in the sidebar. Falls back to the flat layout for older
28
+ * flat clones that predate owner-namespacing.
29
+ *
30
+ * @param fullName GitHub `owner/name` (e.g. `repository.full_name`).
31
+ * @param repoName Bare repo name (e.g. `repository.name`).
32
+ */
33
+ export declare function resolveRepoGroupDir(fullName: string, repoName: string): string;
21
34
  /** Codekin data directory (sessions, approvals, workflows, etc.). */
22
35
  export declare const DATA_DIR: string;
23
36
  /** Directory for uploaded screenshots / file attachments. */
@@ -70,6 +70,24 @@ export function resolveRepoPathInRoot(repoPath) {
70
70
  return null;
71
71
  return resolved;
72
72
  }
73
+ /**
74
+ * Resolve the canonical local repo directory used to group sessions in the
75
+ * sidebar. Repos are cloned owner-namespaced (`REPOS_ROOT/owner/name`, see
76
+ * `localRepoPath` in upload-routes), and manual sessions group under that same
77
+ * path. Automated sessions (webhook, stepflow) must use the owner-namespaced
78
+ * path too — otherwise a flat `REPOS_ROOT/name` groupDir produces a second,
79
+ * duplicate repo node in the sidebar. Falls back to the flat layout for older
80
+ * flat clones that predate owner-namespacing.
81
+ *
82
+ * @param fullName GitHub `owner/name` (e.g. `repository.full_name`).
83
+ * @param repoName Bare repo name (e.g. `repository.name`).
84
+ */
85
+ export function resolveRepoGroupDir(fullName, repoName) {
86
+ const nested = `${REPOS_ROOT}/${fullName}`;
87
+ if (existsSync(nested))
88
+ return nested;
89
+ return `${REPOS_ROOT}/${repoName}`;
90
+ }
73
91
  /** Codekin data directory (sessions, approvals, workflows, etc.). */
74
92
  export const DATA_DIR = process.env.DATA_DIR || join(homedir(), '.codekin');
75
93
  /** Directory for uploaded screenshots / file attachments. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,43 @@
18
18
  import { EventEmitter } from 'events';
19
19
  import type { ClaudeProcessEvents } from './claude-process.js';
20
20
  import { type CodingProcess, type CodingProvider, type ProviderCapabilities } from './coding-process.js';
21
- import type { PermissionMode } from './types.js';
21
+ import type { PermissionMode, TaskItem } from './types.js';
22
+ /**
23
+ * Codekin environment context appended to OpenCode's agent system prompt via
24
+ * the `system` field on each prompt request. OpenCode APPENDS this to its
25
+ * tuned per-model prompt (verified against OpenCode 1.15) — unlike
26
+ * `agent.*.prompt` config which would REPLACE it. Mirrors the
27
+ * `--append-system-prompt` text used for the Claude path (claude-process.ts).
28
+ */
29
+ export declare const OPENCODE_SYSTEM_CONTEXT: string;
30
+ /** One rule in OpenCode's permission ruleset (last match wins, wildcards on both fields). */
31
+ interface OpenCodePermissionRule {
32
+ permission: string;
33
+ pattern: string;
34
+ action: 'allow' | 'deny' | 'ask';
35
+ }
36
+ /**
37
+ * Map Codekin's PermissionMode to an OpenCode permission ruleset, applied at
38
+ * session creation (and via PATCH on resume). Without this, bypass-mode
39
+ * sessions still hit server-side `ask` states (external_directory, doom_loop)
40
+ * that must round-trip through the UI even though the user opted out.
41
+ * Returns undefined for modes where OpenCode's defaults are appropriate.
42
+ */
43
+ export declare function permissionRulesetFor(mode?: PermissionMode): OpenCodePermissionRule[] | undefined;
44
+ /** An OpenCode command (slash command / skill / MCP prompt) from GET /command. */
45
+ export interface OpenCodeCommandInfo {
46
+ name: string;
47
+ description?: string;
48
+ agent?: string;
49
+ model?: string;
50
+ source?: 'command' | 'mcp' | 'skill';
51
+ template?: string;
52
+ hints?: string[];
53
+ }
54
+ /** Minimum OpenCode version this integration is tested against. */
55
+ export declare const MIN_TESTED_OPENCODE_VERSION = "1.15.0";
56
+ /** Returns true when version `a` is older than version `b` (semver-ish numeric compare). */
57
+ export declare function isVersionOlder(a: string, b: string): boolean;
22
58
  /** OpenCode model info returned from /config/providers. */
23
59
  export interface OpenCodeModelInfo {
24
60
  id: string;
@@ -34,6 +70,11 @@ export declare function fetchOpenCodeModels(workingDir: string): Promise<{
34
70
  models: OpenCodeModelInfo[];
35
71
  defaults: Record<string, string>;
36
72
  }>;
73
+ /**
74
+ * Fetch the list of commands (slash commands, skills, MCP prompts) from the
75
+ * running OpenCode server. Returns an empty array if the server is not running.
76
+ */
77
+ export declare function fetchOpenCodeCommands(workingDir: string): Promise<OpenCodeCommandInfo[]>;
37
78
  /** Stop the shared OpenCode server. */
38
79
  export declare function stopOpenCodeServer(): void;
39
80
  export interface OpenCodeProcessOptions {
@@ -49,6 +90,12 @@ export interface OpenCodeProcessOptions {
49
90
  extraEnv?: Record<string, string>;
50
91
  /** Permission mode — mapped to OpenCode's permission config. */
51
92
  permissionMode?: PermissionMode;
93
+ /**
94
+ * Recent assistant output already shown to the user (concatenated text from
95
+ * the session's output history). Used on resume to avoid re-emitting an
96
+ * assistant message that was already displayed when hydrating missed history.
97
+ */
98
+ recentOutputText?: string;
52
99
  }
53
100
  export declare class OpenCodeProcess extends EventEmitter<ClaudeProcessEvents> implements CodingProcess {
54
101
  readonly provider: CodingProvider;
@@ -61,9 +108,33 @@ export declare class OpenCodeProcess extends EventEmitter<ClaudeProcessEvents> i
61
108
  private abortController;
62
109
  private startupTimer;
63
110
  private permissionMode?;
111
+ /** OpenCode commands available on the server, keyed by name (for /name routing). */
112
+ private commands;
64
113
  private tasks;
65
114
  private turnComplete;
115
+ /** True while a prompt/command turn is running server-side (set on send, cleared on completion). */
116
+ private turnInFlight;
117
+ /** OpenCode child sessions spawned by this session's subagents (task tool). */
118
+ private childSessionIds;
119
+ /** Latest token/cost usage per assistant message ID (message.updated fires repeatedly). */
120
+ private usageByMessage;
121
+ /** Last emitted usage totals, serialized — suppresses duplicate usage events. */
122
+ private lastEmittedUsage;
123
+ /** Messages received while a turn was in flight — sent when the turn completes. */
124
+ private pendingMessages;
125
+ /** Recent already-displayed assistant text (from output history) for resume hydration dedup. */
126
+ private recentOutputText;
66
127
  private taskSeq;
128
+ /**
129
+ * Watchdog that detects turns stalled by a missed completion event.
130
+ * The turn-completion latch (turnComplete) is only released by SSE events
131
+ * (session.idle / message.completed / session.status). If the SSE stream
132
+ * drops and the completion event is lost, the turn would hang forever —
133
+ * the watchdog polls the server's message history to recover.
134
+ */
135
+ private turnWatchdog;
136
+ /** Timestamp of the last SSE event explicitly scoped to this session. */
137
+ private lastSessionEventTime;
67
138
  /** Whether we've received streaming delta events this turn (to avoid double-emitting text). */
68
139
  private receivedDeltas;
69
140
  /** Whether we've already emitted text via message.part.updated (to avoid re-emitting from message.updated). */
@@ -90,6 +161,8 @@ export declare class OpenCodeProcess extends EventEmitter<ClaudeProcessEvents> i
90
161
  /** Connect to the OpenCode server, create a session, and subscribe to SSE events. */
91
162
  start(): void;
92
163
  private initialize;
164
+ /** Fetch the command list from the server (used for slash-command routing). */
165
+ private loadCommands;
93
166
  /** Subscribe to the OpenCode SSE event stream and map events to CodingProcess events. */
94
167
  private subscribeToEvents;
95
168
  /**
@@ -101,28 +174,92 @@ export declare class OpenCodeProcess extends EventEmitter<ClaudeProcessEvents> i
101
174
  private isOwnSession;
102
175
  /** Flush any buffered text deltas that haven't been emitted yet (e.g. turn ended before buffer threshold). */
103
176
  private flushDeltaBuffer;
177
+ /**
178
+ * Mark the current turn as complete: release the latch, flush any buffered
179
+ * text, stop the stall watchdog, and emit the result event. Idempotent.
180
+ */
181
+ private completeTurn;
104
182
  /** Map an OpenCode SSE event to CodingProcess events. */
105
183
  private handleSSEEvent;
106
- /** Reply to an OpenCode permission request via HTTP. */
184
+ /**
185
+ * Accumulate token/cost usage from assistant message.updated info and emit
186
+ * cumulative session totals. message.updated fires repeatedly per message,
187
+ * so usage is keyed by message ID (latest wins) and duplicate totals are
188
+ * suppressed.
189
+ */
190
+ private trackUsage;
191
+ /** Surface a subagent (child session) tool part as tool activity in the main session. */
192
+ private handleChildToolPart;
193
+ /** Start (or restart) the stalled-turn watchdog for an in-flight turn. */
194
+ private startTurnWatchdog;
195
+ private clearTurnWatchdog;
196
+ /**
197
+ * Detect a turn stalled by a missed SSE completion event and recover.
198
+ * If no session-scoped event has arrived recently, poll the server's
199
+ * message history: when the last assistant message is marked completed,
200
+ * the turn finished server-side and we only missed the event — force
201
+ * completion so the session doesn't hang forever.
202
+ *
203
+ * A long-running tool with no event flow is NOT force-completed: the poll
204
+ * only completes the turn when the server itself says the message is done.
205
+ */
206
+ private checkTurnLiveness;
207
+ /**
208
+ * When a turn completed server-side but its SSE events were lost (stream
209
+ * drop), the assistant's response text was never emitted. Recover it from
210
+ * the polled message-history entry so the user isn't left with a silent turn.
211
+ */
212
+ private recoverMissedText;
213
+ /**
214
+ * On resume, recover the tail of the conversation that may have been lost
215
+ * while Codekin was detached (backend crash/restart mid-turn). Fetches the
216
+ * session's message history from OpenCode and re-emits the last assistant
217
+ * message's text — unless it was already displayed (present in the
218
+ * persisted output history passed via recentOutputText).
219
+ */
220
+ private hydrateMissedTail;
221
+ /**
222
+ * Reply to an OpenCode permission request via HTTP, with retries.
223
+ * A dropped reply leaves OpenCode blocked on the permission forever, so
224
+ * failures are retried and ultimately surfaced as a session error instead
225
+ * of being silently swallowed.
226
+ */
227
+ /** Base backoff delay between permission reply retries (overridable in tests). */
228
+ private permissionRetryDelayMs;
107
229
  private replyToPermission;
108
230
  /**
109
231
  * Detect TodoWrite/TaskCreate/TaskUpdate tool calls and emit todo_update events.
110
232
  * Mirrors the task-tracking logic in ClaudeProcess.handleTaskTool().
111
233
  */
112
234
  private handleTaskTool;
235
+ /** Keep taskSeq ahead of any numeric id we have seen, so generated ids never collide. */
236
+ private syncTaskSeq;
237
+ /**
238
+ * Seed task state from a previous process's last known list (session restore).
239
+ * Without this, a restarted process starts with an empty map and TaskUpdate
240
+ * calls referencing pre-restart task ids would otherwise be lost.
241
+ */
242
+ seedTasks(tasks: TaskItem[]): void;
113
243
  /** Send a user message to the OpenCode session. */
114
244
  sendMessage(content: string): void;
115
245
  /** No-op for OpenCode — raw protocol data is Claude-specific. */
116
246
  sendRaw(_: string): void;
117
247
  /**
118
248
  * Respond to a permission/control request.
119
- * Maps Codekin's allow/deny to OpenCode's once/always/reject.
249
+ * Maps Codekin's allow/deny/allow_always to OpenCode's once/reject/always.
250
+ * 'always' makes OpenCode remember the grant server-side, so the same
251
+ * permission won't round-trip through the approval UI again this session.
252
+ */
253
+ sendControlResponse(requestId: string, behavior: 'allow' | 'deny' | 'allow_always'): void;
254
+ /**
255
+ * Stop the OpenCode session and disconnect the SSE stream. If a turn is
256
+ * still running server-side, abort it — otherwise OpenCode keeps generating
257
+ * (and editing files) with nobody attached.
120
258
  */
121
- sendControlResponse(requestId: string, behavior: 'allow' | 'deny'): void;
122
- /** Stop the OpenCode session and disconnect the SSE stream. */
123
259
  stop(): void;
124
260
  isAlive(): boolean;
125
261
  isReady(): boolean;
126
262
  getSessionId(): string;
127
263
  waitForExit(timeoutMs?: number): Promise<void>;
128
264
  }
265
+ export {};