ds-harness-remote 0.5.10 → 0.5.11

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 (109) hide show
  1. package/dist/acp/adapters/claude-process.js +1 -1
  2. package/dist/acp/adapters/claude-process.js.map +1 -1
  3. package/dist/acp/adapters/cursor-process.d.ts +3 -0
  4. package/dist/acp/adapters/cursor-process.d.ts.map +1 -1
  5. package/dist/acp/adapters/cursor-process.js +55 -1
  6. package/dist/acp/adapters/cursor-process.js.map +1 -1
  7. package/dist/acp/adapters/isolated-process.d.ts +45 -0
  8. package/dist/acp/adapters/isolated-process.d.ts.map +1 -0
  9. package/dist/acp/adapters/isolated-process.js +299 -0
  10. package/dist/acp/adapters/isolated-process.js.map +1 -0
  11. package/dist/acp/adapters/opencode-native-api.d.ts +16 -0
  12. package/dist/acp/adapters/opencode-native-api.d.ts.map +1 -0
  13. package/dist/acp/adapters/opencode-native-api.js +103 -0
  14. package/dist/acp/adapters/opencode-native-api.js.map +1 -0
  15. package/dist/acp/adapters/opencode-process.d.ts +21 -2
  16. package/dist/acp/adapters/opencode-process.d.ts.map +1 -1
  17. package/dist/acp/adapters/opencode-process.js +223 -12
  18. package/dist/acp/adapters/opencode-process.js.map +1 -1
  19. package/dist/acp/adapters/pi-process.d.ts +3 -40
  20. package/dist/acp/adapters/pi-process.d.ts.map +1 -1
  21. package/dist/acp/adapters/pi-process.js +3 -408
  22. package/dist/acp/adapters/pi-process.js.map +1 -1
  23. package/dist/acp/adapters/session-models.d.ts +33 -0
  24. package/dist/acp/adapters/session-models.d.ts.map +1 -0
  25. package/dist/acp/adapters/session-models.js +78 -0
  26. package/dist/acp/adapters/session-models.js.map +1 -0
  27. package/dist/acp/gateway.d.ts +3 -1
  28. package/dist/acp/gateway.d.ts.map +1 -1
  29. package/dist/acp/gateway.js +120 -18
  30. package/dist/acp/gateway.js.map +1 -1
  31. package/dist/acp/history-events.d.ts +8 -0
  32. package/dist/acp/history-events.d.ts.map +1 -0
  33. package/dist/acp/history-events.js +119 -0
  34. package/dist/acp/history-events.js.map +1 -0
  35. package/dist/acp/method-policy.d.ts +26 -16
  36. package/dist/acp/method-policy.d.ts.map +1 -1
  37. package/dist/acp/method-policy.js +6 -5
  38. package/dist/acp/method-policy.js.map +1 -1
  39. package/dist/acp/peer-bridge.d.ts +3 -2
  40. package/dist/acp/peer-bridge.d.ts.map +1 -1
  41. package/dist/acp/peer-bridge.js +4 -0
  42. package/dist/acp/peer-bridge.js.map +1 -1
  43. package/dist/acp/virtual-catalog.d.ts +5 -5
  44. package/dist/acp/virtual-catalog.d.ts.map +1 -1
  45. package/dist/acp/virtual-catalog.js +8 -21
  46. package/dist/acp/virtual-catalog.js.map +1 -1
  47. package/dist/acp/virtual-contract.d.ts +13 -6
  48. package/dist/acp/virtual-contract.d.ts.map +1 -1
  49. package/dist/acp/virtual-contract.js +3 -3
  50. package/dist/acp/virtual-contract.js.map +1 -1
  51. package/dist/acp/virtual-event-carrier.d.ts +1 -0
  52. package/dist/acp/virtual-event-carrier.d.ts.map +1 -1
  53. package/dist/acp/virtual-event-carrier.js +1 -1
  54. package/dist/acp/virtual-event-carrier.js.map +1 -1
  55. package/dist/acp/virtual-harness.d.ts +8 -3
  56. package/dist/acp/virtual-harness.d.ts.map +1 -1
  57. package/dist/acp/virtual-harness.js +128 -60
  58. package/dist/acp/virtual-harness.js.map +1 -1
  59. package/dist/acp/virtual-live.d.ts +3 -2
  60. package/dist/acp/virtual-live.d.ts.map +1 -1
  61. package/dist/acp/virtual-live.js +5 -4
  62. package/dist/acp/virtual-live.js.map +1 -1
  63. package/dist/acp/workspace-tools.js +1 -1
  64. package/dist/acp/workspace-tools.js.map +1 -1
  65. package/dist/client/navigation.js +1 -1
  66. package/dist/client/navigation.js.map +1 -1
  67. package/dist/client/settings.js +1 -1
  68. package/dist/client/settings.js.map +1 -1
  69. package/dist/client/shell.d.ts.map +1 -1
  70. package/dist/client/shell.js +3 -2
  71. package/dist/client/shell.js.map +1 -1
  72. package/dist/client/types.d.ts +3 -2
  73. package/dist/client/types.d.ts.map +1 -1
  74. package/dist/client/workspaces.d.ts.map +1 -1
  75. package/dist/client/workspaces.js +130 -48
  76. package/dist/client/workspaces.js.map +1 -1
  77. package/dist/client-capabilities.d.ts.map +1 -1
  78. package/dist/client-capabilities.js +3 -1
  79. package/dist/client-capabilities.js.map +1 -1
  80. package/dist/client-control.d.ts +3 -3
  81. package/dist/client-control.d.ts.map +1 -1
  82. package/dist/client-control.js +23 -3
  83. package/dist/client-control.js.map +1 -1
  84. package/dist/client-locale.d.ts +8 -4
  85. package/dist/client-locale.d.ts.map +1 -1
  86. package/dist/client-locale.js +16 -8
  87. package/dist/client-locale.js.map +1 -1
  88. package/dist/client-runtime-contract.d.ts +2 -1
  89. package/dist/client-runtime-contract.d.ts.map +1 -1
  90. package/dist/client-runtime-contract.js.map +1 -1
  91. package/dist/client-runtime.d.ts +3 -3
  92. package/dist/client-runtime.d.ts.map +1 -1
  93. package/dist/client-runtime.js.map +1 -1
  94. package/dist/client.github.js +115 -57
  95. package/dist/client.js +115 -57
  96. package/dist/client.js.map +1 -1
  97. package/dist/codex/method-policy.d.ts +2 -2
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +2406 -1787
  100. package/dist/index.js.map +4 -4
  101. package/dist/remote-typert-gateway.js +42 -1
  102. package/dist/remote-typert-gateway.js.map +1 -1
  103. package/dist/service.d.ts.map +1 -1
  104. package/dist/service.js +11 -1
  105. package/dist/service.js.map +1 -1
  106. package/dist/version.d.ts +1 -1
  107. package/dist/version.js +1 -1
  108. package/dsh-plugin.json +1 -1
  109. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ /** The native HTTP listener belongs to the same Host-local `opencode acp` process. */
2
+ export declare class OpencodeNativeApi {
3
+ private readonly origin;
4
+ private readonly request;
5
+ readonly password: string;
6
+ private readonly shutdown;
7
+ constructor(origin: string, request?: typeof fetch);
8
+ isArchived(sessionId: string, cwd: string): Promise<boolean>;
9
+ archive(sessionId: string, cwd: string): Promise<void>;
10
+ close(): void;
11
+ private session;
12
+ }
13
+ export declare function opencodeLoopbackPort(): Promise<number>;
14
+ /** Explicit flags override user network defaults, including mDNS's public bind. */
15
+ export declare function opencodePrivateArgs(args: readonly string[], port: number): string[];
16
+ //# sourceMappingURL=opencode-native-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-native-api.d.ts","sourceRoot":"","sources":["../../../src/acp/adapters/opencode-native-api.ts"],"names":[],"mappings":"AAOA,sFAAsF;AACtF,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFrE,QAAQ,CAAC,QAAQ,SAAkC;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;gBACpB,MAAM,EAAE,MAAM,EAAmB,OAAO,GAAE,OAAO,KAAa;IAIrF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,KAAK,IAAI,IAAI;YAEC,OAAO;CAgCtB;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAO5D;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnF"}
@@ -0,0 +1,103 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { createServer } from 'node:net';
3
+ import { realpath } from 'node:fs/promises';
4
+ import { RpcError } from '../../safe-error.js';
5
+ const MAX_RESPONSE_BYTES = 64 * 1024;
6
+ /** The native HTTP listener belongs to the same Host-local `opencode acp` process. */
7
+ export class OpencodeNativeApi {
8
+ origin;
9
+ request;
10
+ password = randomBytes(32).toString('hex');
11
+ shutdown = new AbortController();
12
+ constructor(origin, request = fetch) {
13
+ this.origin = origin;
14
+ this.request = request;
15
+ if (!/^http:\/\/127\.0\.0\.1:[1-9][0-9]{0,4}$/.test(origin) || Number(new URL(origin).port) > 65535)
16
+ throw unavailable();
17
+ }
18
+ async isArchived(sessionId, cwd) {
19
+ const session = await this.session('GET', sessionId, cwd);
20
+ return typeof session.time.archived === 'number' && Number.isFinite(session.time.archived);
21
+ }
22
+ async archive(sessionId, cwd) {
23
+ if (await this.isArchived(sessionId, cwd))
24
+ return;
25
+ const session = await this.session('PATCH', sessionId, cwd);
26
+ if (typeof session.time.archived !== 'number' || !Number.isFinite(session.time.archived))
27
+ throw unavailable();
28
+ }
29
+ close() { this.shutdown.abort(); }
30
+ async session(method, sessionId, cwd) {
31
+ if (!/^[A-Za-z0-9_-]{1,256}$/.test(sessionId))
32
+ throw new RpcError('INVALID_MESSAGE', 'The OpenCode session ID is invalid.');
33
+ try {
34
+ const url = new URL(`/session/${encodeURIComponent(sessionId)}`, this.origin);
35
+ url.searchParams.set('directory', cwd);
36
+ const response = await this.request(url, {
37
+ method, redirect: 'error', signal: AbortSignal.any([this.shutdown.signal, AbortSignal.timeout(20_000)]),
38
+ headers: { authorization: `Basic ${Buffer.from(`opencode:${this.password}`).toString('base64')}`, 'content-type': 'application/json' },
39
+ ...(method === 'PATCH' ? { body: JSON.stringify({ time: { archived: Date.now() } }) } : {}),
40
+ });
41
+ if (!response.ok) {
42
+ await response.body?.cancel();
43
+ throw unavailable();
44
+ }
45
+ const reader = response.body?.getReader();
46
+ if (!reader)
47
+ throw unavailable();
48
+ const chunks = [];
49
+ let bytes = 0;
50
+ try {
51
+ for (;;) {
52
+ const chunk = await reader.read();
53
+ if (chunk.done)
54
+ break;
55
+ bytes += chunk.value.byteLength;
56
+ if (bytes > MAX_RESPONSE_BYTES)
57
+ throw unavailable();
58
+ chunks.push(chunk.value);
59
+ }
60
+ }
61
+ finally {
62
+ await reader.cancel().catch(() => undefined);
63
+ }
64
+ const result = JSON.parse(Buffer.concat(chunks).toString('utf8'));
65
+ if (!result || result.id !== sessionId || typeof result.directory !== 'string' || !result.time || typeof result.time !== 'object'
66
+ || await realpath(result.directory) !== cwd)
67
+ throw unavailable();
68
+ return result;
69
+ }
70
+ catch {
71
+ throw unavailable();
72
+ }
73
+ }
74
+ }
75
+ export async function opencodeLoopbackPort() {
76
+ const server = createServer();
77
+ await new Promise((resolve, reject) => { server.once('error', reject); server.listen(0, '127.0.0.1', () => resolve()); });
78
+ const address = server.address();
79
+ await new Promise((resolve, reject) => server.close(error => error ? reject(error) : resolve()));
80
+ if (!address || typeof address === 'string')
81
+ throw unavailable();
82
+ return address.port;
83
+ }
84
+ /** Explicit flags override user network defaults, including mDNS's public bind. */
85
+ export function opencodePrivateArgs(args, port) {
86
+ if (args.includes('--'))
87
+ throw unavailable();
88
+ const kept = [];
89
+ for (let i = 0; i < args.length; i++) {
90
+ const arg = args[i];
91
+ if (/^--(?:port|hostname|mdns|no-mdns)(?:=|$)/.test(arg)) {
92
+ if ((arg === '--port' || arg === '--hostname') || (arg === '--mdns' && /^(true|false)$/.test(args[i + 1] ?? '')))
93
+ i++;
94
+ }
95
+ else
96
+ kept.push(arg);
97
+ }
98
+ return [...kept, `--hostname=127.0.0.1`, `--port=${port}`, '--mdns=false'];
99
+ }
100
+ function unavailable() {
101
+ return new RpcError('OPENCODE_ARCHIVE_UNAVAILABLE', 'OpenCode did not confirm the archive operation. Check the Host OpenCode version and retry after refreshing its session list.');
102
+ }
103
+ //# sourceMappingURL=opencode-native-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-native-api.js","sourceRoot":"","sources":["../../../src/acp/adapters/opencode-native-api.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,8 @@ export declare class OpencodeAcpError extends Error {
30
30
  export declare class OpencodeAcpClient implements CursorAcpLike {
31
31
  private readonly binary;
32
32
  private readonly logger?;
33
- private readonly spawnAcp;
33
+ private readonly spawnAcp?;
34
+ private readonly options;
34
35
  private process?;
35
36
  private nextId;
36
37
  private readonly pending;
@@ -42,13 +43,31 @@ export declare class OpencodeAcpClient implements CursorAcpLike {
42
43
  private closed;
43
44
  private failureNotified;
44
45
  private startPromise?;
45
- constructor(binary?: string, logger?: SafeLogger | undefined, spawnAcp?: SpawnOpencodeAcp, options?: {
46
+ private historyBusy;
47
+ private nativeApi?;
48
+ private readonly archivedSessions;
49
+ private readonly archivingSessions;
50
+ constructor(binary?: string, logger?: SafeLogger | undefined, spawnAcp?: SpawnOpencodeAcp | undefined, options?: {
46
51
  args?: string[];
47
52
  cwd?: string;
53
+ historyReader?: boolean;
48
54
  });
49
55
  start(): Promise<void>;
50
56
  isReady(): boolean;
57
+ isSessionArchived(sessionId: string, cwd: string): Promise<boolean>;
58
+ archiveSession(sessionId: string, cwd: string): Promise<void>;
59
+ /**
60
+ * Replay a saved session in one temporary ACP process so a history read never
61
+ * interrupts a live turn. OpenCode emits the transcript as `session/update`
62
+ * notifications before `session/load` resolves.
63
+ */
64
+ history(sessionId: string, cwd: string): Promise<unknown[]>;
65
+ private readonly models;
66
+ private readonly loads;
67
+ private readonly busy;
51
68
  call(method: string, params: unknown, timeoutMs?: number): Promise<unknown>;
69
+ private loadSession;
70
+ private publish;
52
71
  respond(id: string | number, result: unknown): Promise<void>;
53
72
  respondError(id: string | number, code: number, message: string): Promise<void>;
54
73
  onInbound(handler: OpencodeAcpInboundHandler): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-process.d.ts","sourceRoot":"","sources":["../../../src/acp/adapters/opencode-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-process.d.ts","sourceRoot":"","sources":["../../../src/acp/adapters/opencode-process.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { Buffer } from 'node:buffer';
3
+ import { realpath } from 'node:fs/promises';
3
4
  import { PLUGIN_VERSION } from '../../version.js';
5
+ import { acpHistoryEvents } from '../history-events.js';
6
+ import { AcpSessionModelState } from './session-models.js';
7
+ import { OpencodeNativeApi, opencodeLoopbackPort, opencodePrivateArgs } from './opencode-native-api.js';
4
8
  const ACP_REQUEST_TIMEOUT_MS = 60_000;
5
9
  /** Full agent turns (tools + streaming) routinely exceed the short RPC budget. */
6
10
  const ACP_PROMPT_TIMEOUT_MS = 10 * 60_000;
@@ -23,6 +27,7 @@ export class OpencodeAcpClient {
23
27
  binary;
24
28
  logger;
25
29
  spawnAcp;
30
+ options;
26
31
  process;
27
32
  nextId = 1;
28
33
  pending = new Map();
@@ -34,15 +39,15 @@ export class OpencodeAcpClient {
34
39
  closed = false;
35
40
  failureNotified = false;
36
41
  startPromise;
37
- constructor(binary = 'opencode', logger, spawnAcp = binary => spawn(binary, options.args ?? ['acp'], {
38
- cwd: options.cwd,
39
- stdio: ['pipe', 'pipe', 'pipe'],
40
- windowsHide: true,
41
- env: process.env,
42
- }), options = {}) {
42
+ historyBusy = false;
43
+ nativeApi;
44
+ archivedSessions = new Set();
45
+ archivingSessions = new Set();
46
+ constructor(binary = 'opencode', logger, spawnAcp, options = {}) {
43
47
  this.binary = binary;
44
48
  this.logger = logger;
45
49
  this.spawnAcp = spawnAcp;
50
+ this.options = options;
46
51
  }
47
52
  start() {
48
53
  if (this.closed)
@@ -53,12 +58,189 @@ export class OpencodeAcpClient {
53
58
  return this.startPromise;
54
59
  }
55
60
  isReady() { return this.ready; }
61
+ async isSessionArchived(sessionId, cwd) {
62
+ if (!this.nativeApi)
63
+ return this.archivedSessions.has(sessionId);
64
+ const archived = await this.nativeApi.isArchived(sessionId, cwd);
65
+ if (archived)
66
+ this.archivedSessions.add(sessionId);
67
+ else
68
+ this.archivedSessions.delete(sessionId);
69
+ return archived;
70
+ }
71
+ async archiveSession(sessionId, cwd) {
72
+ if (!this.ready || !this.nativeApi)
73
+ throw new OpencodeAcpError('OPENCODE_ARCHIVE_UNAVAILABLE', 'The Host OpenCode native API is unavailable.');
74
+ if (this.busy.has(sessionId) || this.loads.has(sessionId) || this.archivingSessions.has(sessionId))
75
+ throw new OpencodeAcpError('PROMPT_IN_PROGRESS', 'Stop the OpenCode reply before archiving.');
76
+ this.archivingSessions.add(sessionId);
77
+ try {
78
+ await this.nativeApi.archive(sessionId, cwd);
79
+ this.archivedSessions.add(sessionId);
80
+ }
81
+ finally {
82
+ this.archivingSessions.delete(sessionId);
83
+ }
84
+ }
85
+ /**
86
+ * Replay a saved session in one temporary ACP process so a history read never
87
+ * interrupts a live turn. OpenCode emits the transcript as `session/update`
88
+ * notifications before `session/load` resolves.
89
+ */
90
+ async history(sessionId, cwd) {
91
+ if (this.closed)
92
+ throw new OpencodeAcpError('OPENCODE_CLOSED', 'The OpenCode domain is closed.');
93
+ if (this.historyBusy)
94
+ throw new OpencodeAcpError('OPENCODE_HISTORY_BUSY', 'An OpenCode history read is already in progress.');
95
+ this.historyBusy = true;
96
+ const client = new OpencodeAcpClient(this.binary, this.logger, undefined, { ...this.options, historyReader: true });
97
+ const updates = [];
98
+ let bytes = 0;
99
+ let count = 0;
100
+ let overflow = false;
101
+ const unsubscribe = client.onInbound(message => {
102
+ // A history reader has no authority to run tools or wait for approval.
103
+ if (message.kind === 'request') {
104
+ void client.respondError(message.id, -32601, 'History reader does not support requests.').catch(() => undefined);
105
+ return;
106
+ }
107
+ if (message.method !== 'session/update'
108
+ || message.params?.sessionId !== sessionId
109
+ || overflow)
110
+ return;
111
+ count++;
112
+ bytes += Buffer.byteLength(JSON.stringify(message));
113
+ if (bytes > 8 * 1024 * 1024 || count > 10_000)
114
+ overflow = true;
115
+ else
116
+ updates.push(message);
117
+ });
118
+ try {
119
+ await client.start();
120
+ await client.call('session/load', { sessionId, cwd, mcpServers: [] });
121
+ if (overflow)
122
+ throw new OpencodeAcpError('OPENCODE_HISTORY_TOO_LARGE', 'OpenCode history exceeds the transfer limit.');
123
+ return acpHistoryEvents(updates, sessionId, 'opencode');
124
+ }
125
+ finally {
126
+ unsubscribe();
127
+ await client.close().catch(() => undefined);
128
+ this.historyBusy = false;
129
+ }
130
+ }
131
+ models = new Map();
132
+ loads = new Map();
133
+ busy = new Set();
56
134
  async call(method, params, timeoutMs) {
57
135
  if (!this.ready)
58
136
  throw new OpencodeAcpError('OPENCODE_UNAVAILABLE', 'OpenCode ACP is not ready.');
59
- const budget = timeoutMs
60
- ?? (method === 'session/prompt' ? ACP_PROMPT_TIMEOUT_MS : ACP_REQUEST_TIMEOUT_MS);
61
- return this.request(method, params, budget);
137
+ const p = isRecord(params) ? params : {};
138
+ const id = typeof p.sessionId === 'string' ? p.sessionId : undefined;
139
+ if (id && this.archivingSessions.has(id))
140
+ throw new OpencodeAcpError('ACP_SESSION_BUSY', 'The OpenCode session is being archived.');
141
+ if (id && this.archivedSessions.has(id) && ['session/load', 'session/prompt', 'dsh/selectModel'].includes(method))
142
+ throw new OpencodeAcpError('ACP_SESSION_ARCHIVED', 'This OpenCode session is archived.');
143
+ const budget = timeoutMs ?? (method === 'session/prompt' ? ACP_PROMPT_TIMEOUT_MS : ACP_REQUEST_TIMEOUT_MS);
144
+ if (method === 'session/load' && id) {
145
+ // Re-reading models must never replay history into an active conversation.
146
+ if (this.models.has(id))
147
+ return { sessionId: id };
148
+ const pending = this.loads.get(id);
149
+ if (pending)
150
+ return pending;
151
+ const load = Promise.resolve().then(() => this.loadSession(method, params, budget, id));
152
+ this.loads.set(id, load);
153
+ try {
154
+ return await load;
155
+ }
156
+ finally {
157
+ this.loads.delete(id);
158
+ }
159
+ }
160
+ if (method === 'session/new')
161
+ return this.loadSession(method, params, budget);
162
+ if (method === 'dsh/sessionModels' || method === 'dsh/selectModel') {
163
+ const models = id ? this.models.get(id) : undefined;
164
+ if (!models)
165
+ throw new OpencodeAcpError('ACP_SESSION_NOT_LOADED', 'Load the OpenCode session before selecting its model.');
166
+ if (method === 'dsh/sessionModels')
167
+ return models.catalog();
168
+ if (this.busy.has(id))
169
+ throw new OpencodeAcpError('PROMPT_IN_PROGRESS', 'Stop the OpenCode reply before changing its model.');
170
+ this.busy.add(id);
171
+ try {
172
+ const result = await models.select(id, p.model, p.reasoningEffort, (method, params) => this.request(method, params, budget));
173
+ this.publish({ kind: 'notification', method: 'session/update', params: { sessionId: id,
174
+ update: { sessionUpdate: 'model_selection', selected: result.selected } } });
175
+ return result;
176
+ }
177
+ finally {
178
+ this.busy.delete(id);
179
+ }
180
+ }
181
+ if (method === 'session/prompt' && id) {
182
+ if (this.busy.has(id))
183
+ throw new OpencodeAcpError('PROMPT_IN_PROGRESS', 'The OpenCode session is busy.');
184
+ this.busy.add(id);
185
+ try {
186
+ return await this.request(method, params, budget);
187
+ }
188
+ finally {
189
+ this.busy.delete(id);
190
+ }
191
+ }
192
+ const result = await this.request(method, params, budget);
193
+ const nativeApi = this.nativeApi;
194
+ if (method === 'session/list' && nativeApi && isRecord(result) && Array.isArray(result.sessions)) {
195
+ // ACP list may return archived native records, including after a restart.
196
+ // Recheck every item against OpenCode; process-local caches are insufficient.
197
+ if (result.sessions.length > 1000)
198
+ throw new OpencodeAcpError('INVALID_MESSAGE', 'The OpenCode catalog page is too large.');
199
+ const items = result.sessions;
200
+ const archivedItems = new Map();
201
+ let next = 0;
202
+ await Promise.all(Array.from({ length: Math.min(4, items.length) }, async () => {
203
+ for (;;) {
204
+ const index = next++;
205
+ if (index >= items.length)
206
+ return;
207
+ const item = items[index];
208
+ if (!isRecord(item) || typeof item.sessionId !== 'string' || typeof item.cwd !== 'string')
209
+ continue;
210
+ const cwd = await realpath(item.cwd).catch(() => undefined);
211
+ if (!cwd)
212
+ continue;
213
+ const archived = await nativeApi.isArchived(item.sessionId, cwd);
214
+ if (archived)
215
+ this.archivedSessions.add(item.sessionId);
216
+ else
217
+ this.archivedSessions.delete(item.sessionId);
218
+ archivedItems.set(index, archived);
219
+ }
220
+ }));
221
+ // The gateway retains authority for archived history, but excludes these
222
+ // entries from its public/default catalog.
223
+ const sessions = items.flatMap((item, index) => archivedItems.has(index)
224
+ ? [{ ...item, archived: archivedItems.get(index) }] : []);
225
+ return { ...result, sessions };
226
+ }
227
+ return result;
228
+ }
229
+ async loadSession(method, params, budget, sessionId) {
230
+ const result = await this.request(method, params, budget);
231
+ const returnedId = isRecord(result) && typeof result.sessionId === 'string' ? result.sessionId : undefined;
232
+ const id = sessionId ?? returnedId;
233
+ if (!this.ready || !id || (sessionId && returnedId && returnedId !== sessionId)) {
234
+ throw new OpencodeAcpError('ACP_INVALID_SESSION', 'OpenCode returned an invalid session.');
235
+ }
236
+ const models = new AcpSessionModelState('opencode');
237
+ models.update(result);
238
+ this.models.set(id, models);
239
+ return result;
240
+ }
241
+ publish(message) {
242
+ for (const handler of this.inboundHandlers)
243
+ handler(message);
62
244
  }
63
245
  async respond(id, result) {
64
246
  this.write({ jsonrpc: '2.0', id, result });
@@ -79,6 +261,8 @@ export class OpencodeAcpClient {
79
261
  return;
80
262
  this.closed = true;
81
263
  this.ready = false;
264
+ this.models.clear();
265
+ this.nativeApi?.close();
82
266
  this.failPending(new OpencodeAcpError('OPENCODE_CLOSED', 'OpenCode ACP was closed.'));
83
267
  const child = this.process;
84
268
  this.process = undefined;
@@ -101,7 +285,19 @@ export class OpencodeAcpClient {
101
285
  if (this.process !== undefined) {
102
286
  throw new OpencodeAcpError('OPENCODE_STARTING', 'OpenCode ACP is already starting.');
103
287
  }
104
- const child = this.spawnAcp(this.binary);
288
+ let child;
289
+ if (this.spawnAcp)
290
+ child = this.spawnAcp(this.binary);
291
+ else {
292
+ const port = await opencodeLoopbackPort();
293
+ if (this.closed)
294
+ throw new OpencodeAcpError('OPENCODE_CLOSED', 'OpenCode ACP was closed.');
295
+ this.nativeApi = new OpencodeNativeApi(`http://127.0.0.1:${port}`);
296
+ child = spawn(this.binary, opencodePrivateArgs(this.options.args ?? ['acp'], port), {
297
+ cwd: this.options.cwd, stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true,
298
+ env: { ...process.env, OPENCODE_SERVER_USERNAME: 'opencode', OPENCODE_SERVER_PASSWORD: this.nativeApi.password },
299
+ });
300
+ }
105
301
  this.process = child;
106
302
  this.failureNotified = false;
107
303
  this.stdoutBuffer = Buffer.alloc(0);
@@ -116,6 +312,9 @@ export class OpencodeAcpClient {
116
312
  return;
117
313
  this.process = undefined;
118
314
  this.ready = false;
315
+ this.nativeApi?.close();
316
+ this.nativeApi = undefined;
317
+ this.models.clear();
119
318
  this.failPending(new OpencodeAcpError('OPENCODE_ACP_EXITED', 'OpenCode ACP exited unexpectedly.'));
120
319
  if (!this.closed) {
121
320
  this.logger?.warn('OpenCode ACP exited', {
@@ -222,11 +421,23 @@ export class OpencodeAcpClient {
222
421
  && (typeof value.id === 'string' || typeof value.id === 'number')
223
422
  ? { kind: 'request', id: value.id, method: value.method, params }
224
423
  : { kind: 'notification', method: value.method, params };
225
- for (const handler of this.inboundHandlers)
226
- handler(inbound);
424
+ if (inbound.kind === 'request' && isRecord(params) && typeof params.sessionId === 'string' && this.loads.has(params.sessionId)) {
425
+ void this.respondError(inbound.id, -32600, 'OpenCode session is not loaded.').catch(() => undefined);
426
+ return;
427
+ }
428
+ if (inbound.kind === 'notification' && inbound.method === 'session/update' && isRecord(params) && typeof params.sessionId === 'string') {
429
+ this.models.get(params.sessionId)?.update(params.update);
430
+ // session/load replays belong to the separate history reader, not live UI.
431
+ if (this.loads.has(params.sessionId) && !this.options.historyReader)
432
+ return;
433
+ }
434
+ this.publish(inbound);
227
435
  }
228
436
  handleProcessFailure(code, cause) {
437
+ this.nativeApi?.close();
438
+ this.nativeApi = undefined;
229
439
  this.ready = false;
440
+ this.models.clear();
230
441
  this.failPending(new OpencodeAcpError(code, 'OpenCode ACP communication failed.', { cause }));
231
442
  const child = this.process;
232
443
  this.process = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-process.js","sourceRoot":"","sources":["../../../src/acp/adapters/opencode-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-process.js","sourceRoot":"","sources":["../../../src/acp/adapters/opencode-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEvG,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,kFAAkF;AAClF,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAA;AACzC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACnC,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAC5C,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAA;AA8BzC,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACpB;IAArB,YAAqB,IAAY,EAAE,OAAe,EAAE,OAAsB;QACxE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QADJ,SAAI,GAAJ,IAAI,CAAQ;QAE/B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAkBT;IACA;IACA;IACA;IApBX,OAAO,CAAiC;IACxC,MAAM,GAAG,CAAC,CAAA;IACD,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;IACpD,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAA;IACtD,mBAAmB,GAAG,IAAI,GAAG,EAAiC,CAAA;IACvE,YAAY,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvD,WAAW,GAAG,CAAC,CAAA;IACf,KAAK,GAAG,KAAK,CAAA;IACb,MAAM,GAAG,KAAK,CAAA;IACd,eAAe,GAAG,KAAK,CAAA;IACvB,YAAY,CAAgB;IAC5B,WAAW,GAAG,KAAK,CAAA;IACnB,SAAS,CAAoB;IACpB,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;IAEtD,YACmB,SAAiB,UAAU,EAC3B,MAAmB,EACnB,QAA2B,EAC3B,UAAsE,EAAE;QAHxE,WAAM,GAAN,MAAM,CAAqB;QAC3B,WAAM,GAAN,MAAM,CAAa;QACnB,aAAQ,GAAR,QAAQ,CAAmB;QAC3B,YAAO,GAAP,OAAO,CAAiE;IACxF,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC,CAAA;QACjH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QACxC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA,CAAC,CAAC,CAAC,CAAA;QACvF,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,OAAO,KAAc,OAAO,IAAI,CAAC,KAAK,CAAA,CAAC,CAAC;IAExC,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,GAAW;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAChE,IAAI,QAAQ;YAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;;YAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC5C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,GAAW;QACjD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,EAAE,8CAA8C,CAAC,CAAA;QAC9I,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,2CAA2C,CAAC,CAAA;QACjM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAC5C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtC,CAAC;gBAAS,CAAC;YAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,GAAW;QAC1C,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAA;QAChG,IAAI,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,kDAAkD,CAAC,CAAA;QAC7H,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACnH,MAAM,OAAO,GAAuB,EAAE,CAAA;QACtC,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC7C,uEAAuE;YACvE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,KAAK,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,2CAA2C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAChH,OAAM;YACR,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB;mBACjC,OAAO,CAAC,MAAwC,EAAE,SAAS,KAAK,SAAS;mBAC1E,QAAQ;gBAAE,OAAM;YACrB,KAAK,EAAE,CAAA;YACP,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YACnD,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,MAAM;gBAAE,QAAQ,GAAG,IAAI,CAAA;;gBACzD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACpB,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;YACrE,IAAI,QAAQ;gBAAE,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,8CAA8C,CAAC,CAAA;YACtH,OAAO,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACzD,CAAC;gBAAS,CAAC;YACT,WAAW,EAAE,CAAA;YACb,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QAC1B,CAAC;IACH,CAAC;IAEgB,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAA;IAChD,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAA;IAC3C,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAEzC,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,MAAe,EAAE,SAAkB;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,gBAAgB,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAA;QACjG,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,yCAAyC,CAAC,CAAA;QACnI,IAAI,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,gBAAgB,CAAC,sBAAsB,EAAE,oCAAoC,CAAC,CAAA;QAC3M,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAA;QAC1G,IAAI,MAAM,KAAK,cAAc,IAAI,EAAE,EAAE,CAAC;YACpC,2EAA2E;YAC3E,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAA;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;YACvF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACxB,IAAI,CAAC;gBAAC,OAAO,MAAM,IAAI,CAAA;YAAC,CAAC;oBAAS,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,KAAK,aAAa;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC7E,IAAI,MAAM,KAAK,mBAAmB,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnD,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,EAAE,uDAAuD,CAAC,CAAA;YAC1H,IAAI,MAAM,KAAK,mBAAmB;gBAAE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;YAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,oDAAoD,CAAC,CAAA;YAC9H,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,CAAA;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;gBAC7H,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE;wBACpF,MAAM,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC9E,OAAO,MAAM,CAAA;YACf,CAAC;oBAAS,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAG,CAAC,CAAA;YAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,KAAK,gBAAgB,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,+BAA+B,CAAC,CAAA;YACxG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjB,IAAI,CAAC;gBAAC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAAC,CAAC;oBAAS,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAAC,CAAC;QAC5F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,MAAM,KAAK,cAAc,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjG,0EAA0E;YAC1E,8EAA8E;YAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI;gBAAE,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,yCAAyC,CAAC,CAAA;YAC3H,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC7B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAA;YAChD,IAAI,IAAI,GAAG,CAAC,CAAA;YACZ,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC7E,SAAS,CAAC;oBACR,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;oBACpB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;wBAAE,OAAM;oBACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;oBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;wBAAE,SAAQ;oBACnG,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;oBAC3D,IAAI,CAAC,GAAG;wBAAE,SAAQ;oBAClB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;oBAChE,IAAI,QAAQ;wBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;wBAClD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBACjD,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC,CAAA;YACH,yEAAyE;YACzE,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;gBACtE,CAAC,CAAC,CAAC,EAAE,GAAI,IAAgC,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACzF,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAA;QAChC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,MAAe,EAAE,MAAc,EAAE,SAAkB;QAC3F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1G,MAAM,EAAE,GAAG,SAAS,IAAI,UAAU,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,IAAI,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,uCAAuC,CAAC,CAAA;QAC5F,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,OAAO,CAAC,OAAyB;QACvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAmB,EAAE,MAAe;QAChD,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAmB,EAAE,IAAY,EAAE,OAAe;QACnE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,SAAS,CAAC,OAAkC;QAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,aAAa,CAAC,OAAsC;QAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACrC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC,CAAA;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM;YAAE,OAAM;QAC1E,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACrB,OAAO,EAAE,CAAA;YACX,CAAC,EAAE,KAAK,CAAC,CAAA;YACT,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;YACf,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;YACF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,gBAAgB,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,CAAA;QACtF,CAAC;QACD,IAAI,KAAqC,CAAA;QACzC,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAChD,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAA;YACzC,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAA;YAC1F,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;YAClE,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE;gBAClF,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI;gBACzE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,wBAAwB,EAAE,UAAU,EAAE,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;aACjH,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QACpB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC,CAAC,CAAA;QACtF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACpG,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3F,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;gBAAE,OAAM;YAClC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAA;YACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,CAAC,CAAA;YAClG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE;oBACvC,IAAI,EAAE,IAAI,IAAI,MAAM;oBACpB,MAAM,EAAE,MAAM,IAAI,MAAM;oBACxB,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAA;gBACF,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC/B,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE;oBAClB,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;oBACjD,QAAQ,EAAE,KAAK;iBAChB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,cAAc;iBACxB;aACF,EAAE,oBAAoB,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACrB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,MAAM,KAAK,CAAA;YAClD,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,qCAAqC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACnH,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,MAAc,EAAE,MAAe,EAAE,SAAiB;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACvB,MAAM,CAAC,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,iCAAiC,CAAC,CAAC,CAAA;YAC7F,CAAC,EAAE,SAAS,CAAC,CAAA;YACb,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YACpC,OAAO,EAAE,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAA;QAC3F,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,OAAgB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1E,MAAM,IAAI,gBAAgB,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,CAAA;QACtF,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;QACtG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,CACvB,6BAA6B,EAC7B,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAC9D,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7C,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;YAC3D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC1C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,IAAI,KAAc,CAAA;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,EAAE,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;YACvG,OAAM;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,EAAE,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAA;YAC7G,OAAM;QACR,CAAC;QACD,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9G,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC1C,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClD,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACjG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;YACD,OAAM;QACR,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;YAAE,OAAM;QACtG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACjC,uFAAuF;QACvF,MAAM,OAAO,GAAqB,KAAK,CAAC,MAAM,KAAK,gBAAgB;eAC9D,CAAC,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC;YACjE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;YACjE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;QAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/H,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACpG,OAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACxD,2EAA2E;YAC3E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa;gBAAE,OAAM;QAC7E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,KAAY;QACrD,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,mCAAmC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAM;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;IAEO,WAAW,CAAC,EAAmB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACvB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,WAAW,CAAC,KAAY;QAC9B,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAChF,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,oCAAoC,CAAA;IACtG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzF,OAAO,qCAAqC,CAAA;IAC9C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,kCAAkC,CAAA;IAClF,OAAO,oCAAoC,CAAA;AAC7C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
@@ -1,42 +1,5 @@
1
- import { type CursorAcpLike, type CursorAcpInboundHandler, type CursorAcpUnavailableHandler } from './cursor-process.js';
2
- import type { SafeLogger } from '../../logging.js';
3
- /** pi itself is NOT ACP. Each session uses the published pi-acp wrapper. */
4
- export declare class PiAcpClient implements CursorAcpLike {
5
- private readonly binary;
6
- private readonly logger?;
7
- private readonly options;
8
- private readonly factory;
9
- private catalog?;
10
- private readonly clients;
11
- private readonly starting;
12
- private readonly inbound;
13
- private readonly unavailable;
14
- private closed;
15
- private readonly all;
16
- private readonly callbacks;
17
- private nextCallback;
18
- private readonly configurations;
19
- private readonly busy;
20
- private readonly loading;
21
- private historyBusy;
22
- constructor(binary: string, logger?: SafeLogger | undefined, options?: {
23
- args?: string[];
24
- cwd?: string;
25
- }, factory?: () => CursorAcpLike);
26
- start(): Promise<void>;
27
- isReady(): boolean;
28
- private create;
29
- call(method: string, params: unknown, timeoutMs?: number): Promise<unknown>;
30
- private callOnce;
31
- private updateConfiguration;
32
- private models;
33
- /** A separate wrapper prevents history reads from interrupting active sessions. */
34
- history(sessionId: string, cwd: string): Promise<unknown[]>;
35
- respond(id: string | number, result: unknown): Promise<void>;
36
- respondError(id: string | number, code: number, message: string): Promise<void>;
37
- onInbound(handler: CursorAcpInboundHandler): () => void;
38
- onUnavailable(handler: CursorAcpUnavailableHandler): () => void;
39
- private dispose;
40
- close(): Promise<void>;
1
+ import { IsolatedAcpClient } from './isolated-process.js';
2
+ /** Pi itself is not ACP; use the published pi-acp wrapper. */
3
+ export declare class PiAcpClient extends IsolatedAcpClient {
41
4
  }
42
5
  //# sourceMappingURL=pi-process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-process.d.ts","sourceRoot":"","sources":["../../../src/acp/adapters/pi-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,aAAa,EAAyB,KAAK,uBAAuB,EAAE,KAAK,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAChL,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGlD,4EAA4E;AAC5E,qBAAa,WAAY,YAAW,aAAa;IAcnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAf1B,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoE;IAC9F,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IACxE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,WAAW,CAAQ;gBACE,MAAM,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,UAAU,YAAA,EAC9D,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,EAC/C,OAAO,GAAE,MAAM,aACuC;IAEnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,IAAI,OAAO;YACJ,MAAM;IAad,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAWnE,QAAQ;IAsFtB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,MAAM;IASd,mFAAmF;IAC7E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAwB3D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrF,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,IAAI;IACvD,aAAa,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,IAAI;YACjD,OAAO;IAKf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
1
+ {"version":3,"file":"pi-process.d.ts","sourceRoot":"","sources":["../../../src/acp/adapters/pi-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,8DAA8D;AAC9D,qBAAa,WAAY,SAAQ,iBAAiB;CAAG"}