MCPcopy Create free account
hub / github.com/tiann/hapi / OpencodeSession

Class OpencodeSession

cli/src/opencode/session.ts:12–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10};
11
12export class OpencodeSession extends AgentSessionBase<OpencodeMode> {
13 readonly startedBy: 'runner' | 'terminal';
14 readonly startingMode: 'local' | 'remote';
15 localLaunchFailure: LocalLaunchFailure | null = null;
16
17 private hookEventHandlers: Array<(event: OpencodeHookEvent) => void> = [];
18
19 constructor(opts: {
20 api: ApiClient;
21 client: ApiSessionClient;
22 path: string;
23 logPath: string;
24 sessionId: string | null;
25 messageQueue: MessageQueue2<OpencodeMode>;
26 onModeChange: (mode: 'local' | 'remote') => void;
27 mode?: 'local' | 'remote';
28 startedBy: 'runner' | 'terminal';
29 startingMode: 'local' | 'remote';
30 permissionMode?: PermissionMode;
31 modelReasoningEffort?: string | null;
32 }) {
33 super({
34 api: opts.api,
35 client: opts.client,
36 path: opts.path,
37 logPath: opts.logPath,
38 sessionId: opts.sessionId,
39 messageQueue: opts.messageQueue,
40 onModeChange: opts.onModeChange,
41 mode: opts.mode,
42 sessionLabel: 'OpencodeSession',
43 sessionIdLabel: 'OpenCode',
44 applySessionIdToMetadata: (metadata, sessionId) => ({
45 ...metadata,
46 opencodeSessionId: sessionId
47 }),
48 permissionMode: opts.permissionMode,
49 modelReasoningEffort: opts.modelReasoningEffort
50 });
51
52 this.startedBy = opts.startedBy;
53 this.startingMode = opts.startingMode;
54 this.permissionMode = opts.permissionMode;
55 this.modelReasoningEffort = opts.modelReasoningEffort;
56 }
57
58 addHookEventHandler(cb: (event: OpencodeHookEvent) => void): void {
59 this.hookEventHandlers.push(cb);
60 }
61
62 removeHookEventHandler(cb: (event: OpencodeHookEvent) => void): void {
63 const index = this.hookEventHandlers.indexOf(cb);
64 if (index !== -1) {
65 this.hookEventHandlers.splice(index, 1);
66 }
67 }
68
69 emitHookEvent(event: OpencodeHookEvent): void {

Callers

nothing calls this directly

Calls 3

sendAgentMessageMethod · 0.80
sendUserMessageMethod · 0.80
sendSessionEventMethod · 0.80

Tested by

no test coverage detected