dsh-plugin-lcu 0.1.0 → 0.2.7

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.
package/README.md CHANGED
@@ -38,6 +38,12 @@ Two model-facing tools, exactly as LCU defines them — this plugin does not inv
38
38
  Two host-only tools stay reachable by the plugin and are **never** shown to the model:
39
39
  `turn_ended` (per-turn cleanup) and `js_add_node_module_dir`.
40
40
 
41
+ The plugin adds exactly one tool of its own:
42
+
43
+ | Tool | What it does |
44
+ |---|---|
45
+ | `computer_use_stop` | With no argument, list the applications the runtime currently holds for this session. With `app` set to one of their bundle identifiers, release it. This is LCU's explicit per-app Stop — the same action its Pi adapter surfaces as `/lcu stop` — which clears the host application's "computer use is active" state for an app without ending the session. |
46
+
41
47
  Screenshots arrive as durable images through DSH's attachment store, so a model route that declares
42
48
  image input can actually look at the screen.
43
49
 
@@ -263,6 +269,8 @@ otherwise swallowed silently.
263
269
  | Calls blocked after a turn | The runtime's turn cleanup had not settled; the plugin retries it before the next call and refuses until it does. |
264
270
  | `lcu doctor` reports a socket-path error | The signed helper binds under your home folder and refuses a path over 103 bytes. Use an account with a shorter home path. |
265
271
  | Attach fails with a spawn error | Run `~/.local/share/lcu/current/bin/lcu doctor` directly, then check `command` in the config. |
272
+ | The ChatGPT app still shows computer use on an app | The runtime is still holding it. Ask for `computer_use_stop`, or close the session — the connection owns the runtime process tree and releases it on the way out. |
273
+ | `lcu status` reports `changed_since_install` | The ChatGPT app updated underneath a running session. LCU warns that such a session can run "a mix of old and new files": stop those sessions and restart the harness so everything comes from one app version. |
266
274
 
267
275
  `node scripts/probe-lcu.mjs` talks to LCU with no harness involved and prints the protocol version,
268
276
  server identity, instructions length and the tool list — useful to separate a plugin problem from an
@@ -141,6 +141,17 @@ declare module '@deepseek-ai/dsh-attachment' {
141
141
 
142
142
  export interface AttachmentStore {
143
143
  saveImages(images: readonly SaveImageAttachment[]): Promise<readonly ImageAttachmentRef[]>
144
+ /**
145
+ * Locate a stored image in the harness host filesystem.
146
+ *
147
+ * This is the supported way to hand the model a path it can act on: the
148
+ * object layout under the store root is the backend's business.
149
+ *
150
+ * @param ref - a durable reference this store produced.
151
+ * @returns an absolute host path, or `undefined` when the backend is not
152
+ * host-file-backed.
153
+ */
154
+ imageHostPath(ref: ImageAttachmentRef): string | undefined
144
155
  }
145
156
  }
146
157
 
@@ -280,6 +291,18 @@ declare module '@deepseek-ai/cordis' {
280
291
  event: 'agent/turn-stopping',
281
292
  listener: (payload: { agent: Agent; turn: number; signal: AbortSignal }) => void | Promise<void>,
282
293
  ): () => void
294
+ /**
295
+ * The per-step waterfall. Every turn opens it at step 1, which is where a
296
+ * plugin learns the active turn number; a listener must return `next()`'s
297
+ * decision unchanged.
298
+ */
299
+ on(
300
+ event: 'agent/pre-step',
301
+ listener: (
302
+ payload: { agent: Agent; turn: number; step: number; signal: AbortSignal },
303
+ next: () => Promise<unknown>,
304
+ ) => Promise<unknown>,
305
+ ): () => void
283
306
  /**
284
307
  * The registry re-emits a session's committed preset choice. This fires
285
308
  * AFTER `agent/created`: a new task is created with the deployment default
package/docs/README.zh.md CHANGED
@@ -36,6 +36,12 @@ LCU 从不解包、下载、认证或改写它。
36
36
  另有两个 host-only 工具只对宿主可见、**绝不暴露给模型**:`turn_ended`(每轮清理)与
37
37
  `js_add_node_module_dir`。
38
38
 
39
+ 插件自己**只加一个**工具:
40
+
41
+ | 工具 | 作用 |
42
+ |---|---|
43
+ | `computer_use_stop` | 不带参数时列出运行时当前为本次会话持有的应用;带 `app`(上面列出的 bundle identifier)时释放它。这就是 LCU 的显式按应用 Stop —— 它的 Pi adapter 把它暴露为 `/lcu stop` —— 能在**不结束会话**的前提下清掉宿主应用里"computer use 正在使用"的状态。 |
44
+
39
45
  截图会作为**持久化图片**经 DSH 的 attachment store 送达 —— 所以声明了 image input 的模型路由是真的能"看见"屏幕的。
40
46
 
41
47
  ## 前置条件
@@ -245,6 +251,8 @@ harness 没有当前会话可读的插件日志出口,而失败的 `agent/crea
245
251
  | 一轮之后调用被挡住 | 运行时的一轮清理尚未结束;插件会在下次调用前重试,未成功前拒绝调用。 |
246
252
  | `lcu doctor` 报 socket 路径错误 | 签名助手把 socket 绑在 home 目录下,路径超过 103 字节会被拒。换一个 home 路径更短的账号。 |
247
253
  | attach 报 spawn 失败 | 直接跑 `~/.local/share/lcu/current/bin/lcu doctor`,再检查配置里的 `command`。 |
254
+ | ChatGPT 里仍显示某个应用在用 computer use | 运行时还持有它。让 agent 调 `computer_use_stop`,或直接关掉那个会话 —— 连接持有整棵运行时进程树,关闭时会一并释放。 |
255
+ | `lcu status` 报 `changed_since_install` | ChatGPT 应用在会话运行期间自我更新了。LCU 警告这种会话可能"混用新旧文件":停掉这些会话并重启 harness,让所有东西来自同一个 app 版本。 |
248
256
 
249
257
  `node scripts/probe-lcu.mjs` 不经 harness 直连 LCU,打印协议版本、服务端身份、instructions 长度与工具清单 ——
250
258
  用来把「插件的问题」和「LCU 的问题」分开。
package/lib/connection.js CHANGED
@@ -21,12 +21,41 @@
21
21
  /** Tools the model may see. Everything else is host-only. */
22
22
  export const MODEL_TOOL_NAMES = ['js', 'js_reset'];
23
23
  /** Host-only tools, named so a mistake is loud rather than silent. */
24
+ import { diag } from "./diag.js";
24
25
  export const HOST_ONLY_TOOL_NAMES = ['turn_ended', 'js_add_node_module_dir'];
26
+ /**
27
+ * Build the `_meta` the original runtime reads its session and turn from.
28
+ *
29
+ * Its approvals, per-turn Stop and cleanup are all keyed by these identities.
30
+ * Omitting them makes every call look like the same turn, so a Stop the user
31
+ * issued once, or a cleanup that never ran, then applies to every later turn on
32
+ * the connection. A synthetic pair would be worse than none: the runtime would
33
+ * key its state to a lie. Returns `undefined` unless both identities are real.
34
+ *
35
+ * @param sessionId - the host session, or `undefined` before binding.
36
+ * @param turnId - the active turn, or `undefined` outside one.
37
+ * @param callId - the host's tool-call id, when it has one.
38
+ * @returns the metadata block, or `undefined` when it cannot be truthful.
39
+ */
40
+ export function turnMetadataFor(sessionId, turnId, callId) {
41
+ if (sessionId === undefined || sessionId === '' || turnId === undefined || turnId === '')
42
+ return undefined;
43
+ return {
44
+ 'x-codex-turn-metadata': {
45
+ session_id: sessionId,
46
+ turn_id: turnId,
47
+ ...(callId === undefined || callId === '' ? {} : { call_id: callId }),
48
+ },
49
+ };
50
+ }
25
51
  /** MCP protocol revision this client asks for; the server negotiates. */
26
52
  const PROTOCOL_VERSION = '2025-06-18';
27
53
  /** LCU's own approval timeout: effectively "never expire a pending approval". */
28
54
  const NO_APPROVAL_TIMEOUT_MS = 2 ** 31 - 1;
29
55
  const DEFAULT_CALL_TIMEOUT_MS = 120_000;
56
+ /** The original host's control channel is bounded; 45 s matches LCU's own client. */
57
+ const CONTROL_TIMEOUT_MS = 45_000;
58
+ const CONTROL_RESPONSE_LIMIT = 1024 * 1024;
30
59
  const DEFAULT_TURN_END_TIMEOUT_MS = 120_000;
31
60
  const CONNECT_TIMEOUT_MS = 120_000;
32
61
  /**
@@ -124,6 +153,8 @@ export class LcuConnection {
124
153
  #closed = false;
125
154
  #stderrBuffer = '';
126
155
  #activeCalls = new Set();
156
+ #controlDirectory;
157
+ #controlSocketPath;
127
158
  constructor(options) {
128
159
  this.#options = options;
129
160
  }
@@ -131,6 +162,8 @@ export class LcuConnection {
131
162
  get instructions() {
132
163
  return this.#instructions;
133
164
  }
165
+ /** The host session this connection serves, once bound. */
166
+ sessionId;
134
167
  /** Server identity, for diagnostics. */
135
168
  get serverInfo() {
136
169
  return this.#serverInfo;
@@ -150,11 +183,36 @@ export class LcuConnection {
150
183
  */
151
184
  async connect(signal) {
152
185
  const { spawn } = await import('node:child_process');
186
+ // macOS only: the wrapper inside the runtime exposes an explicit per-app
187
+ // Stop over a private socket, which the host owns and passes down. Without
188
+ // it the only way to release an app is to end the whole connection.
189
+ this.#controlDirectory = undefined;
190
+ this.#controlSocketPath = undefined;
191
+ if (process.platform === 'darwin') {
192
+ try {
193
+ const { mkdtempSync, chmodSync } = await import('node:fs');
194
+ const { tmpdir } = await import('node:os');
195
+ const { join } = await import('node:path');
196
+ const directory = mkdtempSync(join(tmpdir(), 'dsh-lcu-'));
197
+ chmodSync(directory, 0o700);
198
+ this.#controlDirectory = directory;
199
+ this.#controlSocketPath = join(directory, 'c.sock');
200
+ }
201
+ catch {
202
+ this.#controlDirectory = undefined;
203
+ this.#controlSocketPath = undefined;
204
+ }
205
+ }
206
+ const childEnv = { ...process.env, ...this.#options.env };
207
+ if (this.#controlSocketPath === undefined)
208
+ delete childEnv.LCU_MAC_CONTROL_SOCKET;
209
+ else
210
+ childEnv.LCU_MAC_CONTROL_SOCKET = this.#controlSocketPath;
153
211
  let child;
154
212
  try {
155
213
  child = spawn(this.#options.command, [...this.#options.args ?? []], {
156
214
  cwd: this.#options.cwd,
157
- env: { ...process.env, ...this.#options.env },
215
+ env: childEnv,
158
216
  stdio: ['pipe', 'pipe', 'pipe'],
159
217
  });
160
218
  }
@@ -193,7 +251,7 @@ export class LcuConnection {
193
251
  * approval must not look like a hung call.
194
252
  */
195
253
  async callTool(name, args, options = {}) {
196
- const result = await this.#request('tools/call', { name, arguments: args }, options.timeoutMs ?? DEFAULT_CALL_TIMEOUT_MS, 'tools/call', options.signal);
254
+ const result = await this.#request('tools/call', { name, arguments: args, ...this.#turnMetadata(options.turnId, options.callId) }, options.timeoutMs ?? DEFAULT_CALL_TIMEOUT_MS, 'tools/call', options.signal);
197
255
  const content = Array.isArray(result.content) ? result.content : [];
198
256
  return {
199
257
  content,
@@ -209,6 +267,7 @@ export class LcuConnection {
209
267
  * @param event - `Stop`, `Interrupt`, or `SubagentStop`.
210
268
  */
211
269
  async turnEnded(sessionId, turnId, event = 'Stop') {
270
+ this.sessionId = sessionId;
212
271
  if (sessionId === '' || turnId === '') {
213
272
  throw new LcuError('turn_ended', 'turn_ended requires a real session id and turn id');
214
273
  }
@@ -221,24 +280,187 @@ export class LcuConnection {
221
280
  if (failure !== undefined)
222
281
  throw failure;
223
282
  }
224
- /** Close the connection, terminating the child process. */
283
+ /**
284
+ * Close the connection and let the runtime tear itself down.
285
+ *
286
+ * Order matters: the server owns a process tree (the CUA kernel, its trusted
287
+ * worker, the macOS supervisor and the Sky helper), and LCU's supervisor exits
288
+ * when its lifetime socket closes. Closing stdin gives the server that
289
+ * orderly path; signalling first would orphan the tree on a machine that then
290
+ * keeps reporting computer use as active.
291
+ */
292
+ /**
293
+ * The original runtime reads its session and turn from `_meta`, and its
294
+ * approvals, per-turn Stop and cleanup are all keyed by them. Omitting this
295
+ * makes every call look like the same turn: a Stop the user issued once, or a
296
+ * cleanup that never ran, then applies to every later turn on the connection.
297
+ *
298
+ * It is only attached when both identities are real. A synthetic pair would be
299
+ * worse than none, because the runtime would key its state to a lie.
300
+ */
301
+ #turnMetadata(turnId, callId) {
302
+ const meta = turnMetadataFor(this.sessionId, turnId, callId);
303
+ // The runtime latches per-turn state against these identities, so a missing
304
+ // pair is the difference between "a new turn" and "the same stopped turn".
305
+ diag(`call meta: session=${this.sessionId ?? 'none'} turn=${turnId ?? 'none'} sent=${meta === undefined ? 'no' : 'yes'}`);
306
+ return meta === undefined ? {} : { _meta: meta };
307
+ }
308
+ /** Whether this platform and connection expose the explicit per-app Stop. */
309
+ get hasHostControl() {
310
+ return this.#controlSocketPath !== undefined && !this.#closed;
311
+ }
312
+ /**
313
+ * List the applications the runtime currently holds for one turn.
314
+ *
315
+ * @param sessionId - the real host session id.
316
+ * @param turnId - the real host turn id.
317
+ * @returns the active applications, with the names and bundle ids to stop by.
318
+ */
319
+ async controlStatus(sessionId, turnId) {
320
+ let result;
321
+ try {
322
+ result = await this.#controlRequest({ type: 'status', session_id: sessionId, turn_id: turnId });
323
+ }
324
+ catch (error) {
325
+ // Before the runtime has been approved for any app it has no trusted
326
+ // service attached, and a turn it has never seen is not active. Both mean
327
+ // the same thing to a caller: nothing is held, so nothing needs releasing.
328
+ const message = error instanceof Error ? error.message : String(error);
329
+ if (/Trusted macOS control service is not connected|not active in the trusted runtime/i.test(message)) {
330
+ return [];
331
+ }
332
+ throw error;
333
+ }
334
+ const applications = result.computerUse?.activeApplications;
335
+ if (!Array.isArray(applications)) {
336
+ throw new LcuError('turn_ended', 'the original host returned an invalid Computer Use status');
337
+ }
338
+ return applications.flatMap((entry) => {
339
+ if (typeof entry !== 'object' || entry === null)
340
+ return [];
341
+ const { name, bundleIdentifier } = entry;
342
+ if (typeof name !== 'string' || typeof bundleIdentifier !== 'string' || bundleIdentifier === '')
343
+ return [];
344
+ return [{ name, bundleIdentifier }];
345
+ });
346
+ }
347
+ /**
348
+ * Ask the original host to stop using one application for this turn.
349
+ *
350
+ * This is the documented way to release an app without ending the connection;
351
+ * the runtime then rejects further use of it until a later turn.
352
+ *
353
+ * @param sessionId - the real host session id.
354
+ * @param turnId - the real host turn id.
355
+ * @param app - the bundle identifier to stop.
356
+ */
357
+ async controlStop(sessionId, turnId, app) {
358
+ const result = await this.#controlRequest({ type: 'stop', session_id: sessionId, turn_id: turnId, app });
359
+ if (result.accepted !== true || result.applicationId !== app) {
360
+ throw new LcuError('turn_ended', `the original host did not confirm Stop for ${app}`);
361
+ }
362
+ }
363
+ /** Open the control socket, send one newline-delimited request, await its answer. */
364
+ async #controlRequest(request) {
365
+ const socketPath = this.#controlSocketPath;
366
+ if (socketPath === undefined || this.#closed) {
367
+ throw new LcuError('turn_ended', 'the macOS Computer Use control endpoint is unavailable');
368
+ }
369
+ const { createConnection } = await import('node:net');
370
+ return await new Promise((resolve, reject) => {
371
+ let buffer = '';
372
+ let settled = false;
373
+ const finish = (error, value) => {
374
+ if (settled)
375
+ return;
376
+ settled = true;
377
+ clearTimeout(timer);
378
+ socket.destroy();
379
+ if (error !== undefined)
380
+ reject(error);
381
+ else
382
+ resolve(value ?? {});
383
+ };
384
+ const timer = setTimeout(() => { finish(new LcuError('turn_ended', 'the Computer Use control request timed out')); }, CONTROL_TIMEOUT_MS);
385
+ const socket = createConnection(socketPath);
386
+ socket.on('error', (error) => { finish(new LcuError('turn_ended', `control connection failed: ${error.message}`)); });
387
+ socket.on('connect', () => { socket.write(`${JSON.stringify(request)}\n`); });
388
+ socket.on('data', (chunk) => {
389
+ buffer += chunk.toString('utf8');
390
+ if (Buffer.byteLength(buffer, 'utf8') > CONTROL_RESPONSE_LIMIT) {
391
+ finish(new LcuError('turn_ended', 'the Computer Use control response exceeded its size limit'));
392
+ return;
393
+ }
394
+ const newline = buffer.indexOf('\n');
395
+ if (newline < 0)
396
+ return;
397
+ try {
398
+ const response = JSON.parse(buffer.slice(0, newline));
399
+ if (typeof response !== 'object' || response === null || typeof response.ok !== 'boolean') {
400
+ throw new Error('invalid response shape');
401
+ }
402
+ if (response.ok !== true) {
403
+ finish(new LcuError('turn_ended', typeof response.error === 'string' ? response.error : 'the host refused the control request'));
404
+ return;
405
+ }
406
+ const value = typeof response.result === 'object' && response.result !== null
407
+ ? response.result
408
+ : {};
409
+ finish(undefined, value);
410
+ }
411
+ catch (error) {
412
+ finish(new LcuError('turn_ended', `invalid Computer Use control response: ${error instanceof Error ? error.message : String(error)}`));
413
+ }
414
+ });
415
+ socket.on('end', () => { finish(new LcuError('turn_ended', 'the Computer Use control connection ended before a response')); });
416
+ });
417
+ }
418
+ /** Release the private control directory once the child is gone. */
419
+ #removeControlDirectory() {
420
+ const directory = this.#controlDirectory;
421
+ this.#controlDirectory = undefined;
422
+ this.#controlSocketPath = undefined;
423
+ if (directory === undefined)
424
+ return;
425
+ void import('node:fs').then(({ rmSync }) => { rmSync(directory, { recursive: true, force: true }); }).catch(() => { });
426
+ }
225
427
  async close() {
226
428
  this.#closed = true;
227
429
  this.#failAll(new LcuError('spawn', 'connection closed'));
228
430
  const child = this.#child;
229
431
  this.#child = undefined;
230
- if (child === undefined || child.exitCode !== null)
432
+ if (child === undefined || child.exitCode !== null) {
433
+ this.#removeControlDirectory();
434
+ return;
435
+ }
436
+ try {
437
+ child.stdin?.end();
438
+ }
439
+ catch {
440
+ // A already-broken stdin just means we fall through to signalling.
441
+ }
442
+ if (await this.#exited(child, 5_000))
231
443
  return;
232
444
  child.kill('SIGTERM');
233
- await new Promise((resolve) => {
445
+ if (await this.#exited(child, 3_000))
446
+ return;
447
+ child.kill('SIGKILL');
448
+ await this.#exited(child, 2_000);
449
+ }
450
+ /** Resolve `true` once the child has exited, or `false` after `timeoutMs`. */
451
+ #exited(child, timeoutMs) {
452
+ if (child.exitCode !== null || child.signalCode !== null)
453
+ return Promise.resolve(true);
454
+ return new Promise((resolve) => {
234
455
  const timer = setTimeout(() => {
235
- child.kill('SIGKILL');
236
- resolve();
237
- }, 3_000);
238
- child.once('exit', () => {
456
+ child.removeListener('exit', onExit);
457
+ resolve(false);
458
+ }, timeoutMs);
459
+ const onExit = () => {
239
460
  clearTimeout(timer);
240
- resolve();
241
- });
461
+ resolve(true);
462
+ };
463
+ child.once('exit', onExit);
242
464
  });
243
465
  }
244
466
  // -------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -17,6 +17,7 @@ import { homedir } from 'node:os';
17
17
  import { join } from 'node:path';
18
18
  import { approvalValueForLabel, isPreApprovedOrigin, nativeAppApproval, nativeAppApprovalResponse, normalizeOrigins, originApprovalOrigin } from "./approval.js";
19
19
  import { LcuConnection, LcuError, TURN_CLEANUP_TIMEOUT_CODE, resolveElicitation, } from "./connection.js";
20
+ import { randomUUID } from 'node:crypto';
20
21
  import { diag, describe } from "./diag.js";
21
22
  import { isAgentHostApp } from "./host-guard.js";
22
23
  import { registerLcuTools } from "./tool.js";
@@ -24,6 +25,23 @@ export const name = 'lcu';
24
25
  export const inject = ['tools', 'systemPrompt'];
25
26
  /** Where the installer puts the launcher. */
26
27
  const DEFAULT_COMMAND = join(homedir(), '.local/share/lcu/current/bin/lcu');
28
+ /**
29
+ * What this host adds to the server's own instructions.
30
+ *
31
+ * Everything here is a property of this harness, not of the runtime: the server
32
+ * cannot describe a sandbox it does not own. Stating it up front is the
33
+ * difference between a model that copies a stored image with bash and one that
34
+ * spends a turn discovering that `fs.writeFileSync` returns EPERM.
35
+ */
36
+ const LCU_HOST_NOTE = [
37
+ 'Host notes for this environment:',
38
+ '- `js` runs in a sandbox that cannot write files anywhere (writes fail with EPERM, including in the',
39
+ ' temporary directory). Do not try to save with `fs`; it will not work.',
40
+ '- Screenshots are delivered to the harness as images, and every stored image reports its host',
41
+ " filesystem path in the tool result. To put a copy in the workspace, use bash: `cp '<path>' <target>`.",
42
+ '- Anything the sandbox cannot do — writing files, reading the host filesystem — is available through',
43
+ ' the `bash` tool instead.',
44
+ ].join('\n');
27
45
  /** The section order of the injected instructions, after the tool guidance. */
28
46
  const DEFAULT_SECTION_ORDER = 0;
29
47
  /** The message shown for a browser-origin approval. */
@@ -168,6 +186,9 @@ export function apply(ctx, config) {
168
186
  }
169
187
  diag(` attach: connected, server=${describe(connection.serverInfo)} tools=${JSON.stringify(connection.allTools.map((t) => t.name))} instructions=${String(connection.instructions.length)}B`);
170
188
  const state = { connection };
189
+ // The runtime binds approvals and the per-app Stop to a real session and
190
+ // turn, so the connection carries the session identity from the start.
191
+ connection.sessionId = String(agent.id);
171
192
  connections.set(agent, state);
172
193
  // Everything below is agent-scoped: it unwinds when the Agent is disposed.
173
194
  agent.ctx.effect(() => () => {
@@ -176,6 +197,7 @@ export function apply(ctx, config) {
176
197
  });
177
198
  try {
178
199
  registerLcuTools(agent.ctx, connection, ctx, {
200
+ currentTurn: () => state.turnId,
179
201
  beforeCall: async () => {
180
202
  const pending = state.pendingCleanup;
181
203
  if (pending === undefined)
@@ -192,13 +214,16 @@ export function apply(ctx, config) {
192
214
  diag(` attach: TOOL REGISTRATION FAILED: ${error instanceof Error ? `${error.name}: ${error.message}` : String(error)}`);
193
215
  throw error;
194
216
  }
195
- if (connection.instructions !== '') {
196
- agent.ctx.systemPrompt.section({
197
- name: 'lcu-instructions',
198
- order: settings.sectionOrder,
199
- text: connection.instructions,
200
- });
201
- }
217
+ // The server's own pointer, plus what the server cannot know: the sandbox it
218
+ // runs inside here. Without it a model asked to save a screenshot discovers
219
+ // the boundary by probing, one failed call at a time.
220
+ agent.ctx.systemPrompt.section({
221
+ name: 'lcu-instructions',
222
+ order: settings.sectionOrder,
223
+ text: connection.instructions === ''
224
+ ? LCU_HOST_NOTE
225
+ : `${connection.instructions}\n\n${LCU_HOST_NOTE}`,
226
+ });
202
227
  ctx.logger.info(`lcu: ${connection.serverInfo.name ?? 'server'} attached for this session`);
203
228
  }
204
229
  /**
@@ -268,6 +293,18 @@ export function apply(ctx, config) {
268
293
  }
269
294
  diag(` -> attach done, connections=${String(connections.size)}, tools=${JSON.stringify(agent.ctx.tools.schemas(agent).map((t) => t.name).slice(-4))}`);
270
295
  });
296
+ // LCU binds its approvals and its explicit per-app Stop to a real turn, and
297
+ // nothing else hands us the number: the first step of each turn opens the
298
+ // waterfall, so record it there and pass it through untouched.
299
+ ctx.on('agent/pre-step', async ({ agent, turn }, next) => {
300
+ const decision = await next();
301
+ const state = connections.get(agent);
302
+ if (state !== undefined && state.turnNumber !== turn) {
303
+ state.turnNumber = turn;
304
+ state.turnId = randomUUID();
305
+ }
306
+ return decision;
307
+ });
271
308
  // LCU's lifecycle contract: the runtime owns per-turn cleanup (native helper
272
309
  // and Sky contexts on macOS, temporary Chrome tabs), and only the host knows
273
310
  // when a turn really ended.
@@ -277,7 +314,10 @@ export function apply(ctx, config) {
277
314
  if (state === undefined)
278
315
  return;
279
316
  const sessionId = String(agent.id);
280
- const turnId = String(turn);
317
+ // The identity minted for this turn, never the ordinal.
318
+ const turnId = state.turnId;
319
+ if (turnId === undefined)
320
+ return;
281
321
  try {
282
322
  await state.connection.turnEnded(sessionId, turnId, signal.aborted ? 'Interrupt' : 'Stop');
283
323
  state.pendingCleanup = undefined;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/tool.js CHANGED
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { isDeepStrictEqual } from 'node:util';
14
14
  import { MODEL_TOOL_NAMES, LcuError } from "./connection.js";
15
+ import { diag } from "./diag.js";
15
16
  /** Media types the attachment store admits. */
16
17
  const IMAGE_MEDIA_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/gif'];
17
18
  /** Canonical base64: standard alphabet, padded, no embedded whitespace. */
@@ -139,7 +140,7 @@ async function prepareProjection(ctx, exec, content, toolName) {
139
140
  try {
140
141
  const refs = await attachments.saveImages(decoded);
141
142
  const byIndex = new Map(indexes.map((index, offset) => [index, refs[offset]]));
142
- return content.map((block, index) => {
143
+ const projected = content.map((block, index) => {
143
144
  if (!isRecord(block) || block.type !== 'image')
144
145
  return block;
145
146
  const ref = byIndex.get(index);
@@ -147,6 +148,18 @@ async function prepareProjection(ctx, exec, content, toolName) {
147
148
  ? { type: 'text', text: imageDiagnostic(block, 'the attachment store returned no reference') }
148
149
  : { type: 'image', attachment: ref };
149
150
  });
151
+ const paths = refs.flatMap((ref) => {
152
+ try {
153
+ const path = attachments.imageHostPath(ref);
154
+ return typeof path === 'string' && path !== '' ? [path] : [];
155
+ }
156
+ catch {
157
+ // A backend that cannot name a path is not an error; it just gets no note.
158
+ return [];
159
+ }
160
+ });
161
+ const note = storedImageNote(paths);
162
+ return note === undefined ? projected : [...projected, { type: 'text', text: note }];
150
163
  }
151
164
  catch (error) {
152
165
  const reason = error instanceof Error ? error.message : String(error);
@@ -155,6 +168,79 @@ async function prepareProjection(ctx, exec, content, toolName) {
155
168
  : block);
156
169
  }
157
170
  }
171
+ /**
172
+ * Tell the model where a stored screenshot actually is, and what it may do with it.
173
+ *
174
+ * Without this the model has an image it cannot place: the JavaScript sandbox
175
+ * refuses every write (EPERM, even in the temporary directory), so a model asked
176
+ * for a file probes the sandbox blindly — one recorded run spent six calls doing
177
+ * that before copying an object straight out of the store's internal layout by
178
+ * hash, which breaks the moment that layout changes.
179
+ *
180
+ * @param paths - host paths the attachment store resolved, in image order.
181
+ * @returns the note, or `undefined` when no path resolved.
182
+ */
183
+ export function storedImageNote(paths) {
184
+ if (paths.length === 0)
185
+ return undefined;
186
+ const list = paths.map((path) => ` ${path}`).join('\n');
187
+ return `The harness stored ${paths.length === 1 ? 'this image' : 'these images'} on the host filesystem:\n${list}\n`
188
+ + 'The JavaScript sandbox cannot write files (fs writes fail with EPERM), so to place a copy in '
189
+ + 'the workspace use bash, for example: `cp \'<path>\' ./screenshot.jpg`.';
190
+ }
191
+ /**
192
+ * A capture the operating system refused, rather than a runtime bug.
193
+ *
194
+ * macOS reports this as an opaque numeric error, and the model cannot act on a
195
+ * number: it retries, twice, and the user is left with "the screen capture
196
+ * failed". The remedy is a grant in System Settings, so name it.
197
+ */
198
+ const CAPTURE_PERMISSION_PATTERN = /\b-10005\b|screen capture failed|not (?:authorized|permitted) to (?:capture|record|use)/i;
199
+ /**
200
+ * An actionable line for a permission failure, when the text looks like one.
201
+ *
202
+ * @param text - the server's error text.
203
+ * @returns the hint, or `undefined` when the failure is something else.
204
+ */
205
+ export function capturePermissionHint(text) {
206
+ if (!CAPTURE_PERMISSION_PATTERN.test(text))
207
+ return undefined;
208
+ // Two causes look identical from here, and naming only one of them sends the
209
+ // user to check grants that were never the problem.
210
+ return 'macOS refused this capture. Two causes look the same from here:\n'
211
+ + ' 1. The grants are missing: Screen Recording and Accessibility must be enabled for the\n'
212
+ + ' application macOS holds responsible. Check that first, and do not assume it.\n'
213
+ + ' 2. The runtime is not ready yet: a capture attempted within about a minute of the host\n'
214
+ + ' application starting can fail this way while its trusted service comes up.\n'
215
+ + 'If the grants are already enabled, wait a few seconds and retry before concluding anything is\n'
216
+ + 'wrong — retrying is cheap and this failure is often transient.';
217
+ }
218
+ /**
219
+ * The application latching a Stop it cannot clear.
220
+ *
221
+ * A per-application Stop is cleared by the host application's own turn-ended
222
+ * cleanup, and that cleanup talks to the application over Apple Events. macOS
223
+ * refuses those for a hardened-runtime host that lacks the automation
224
+ * entitlement, and refuses to even prompt ("Policy disallows prompt ..."), so the
225
+ * cleanup times out and the Stop sticks across turns and sessions. Nothing the
226
+ * model retries will change that, so say what does.
227
+ */
228
+ const STUCK_STOP_PATTERN = /explicitly stopped by the user for this turn/i;
229
+ /**
230
+ * An actionable line for a Stop the runtime cannot clear.
231
+ *
232
+ * @param text - the server's error text.
233
+ * @returns the hint, or `undefined` when the failure is something else.
234
+ */
235
+ export function stuckStopHint(text) {
236
+ if (!STUCK_STOP_PATTERN.test(text))
237
+ return undefined;
238
+ return 'The host application still has a per-application Stop latched for this app, and its own '
239
+ + 'turn cleanup cannot clear it: that cleanup needs Apple Events, which macOS denies to a '
240
+ + 'hardened-runtime harness and will not even prompt for. Quit and relaunch the ChatGPT '
241
+ + 'application to clear it. Retrying, resetting the JavaScript kernel, and starting a new '
242
+ + 'session will not help; using a different application will.';
243
+ }
158
244
  /**
159
245
  * Build one model-facing tool from a server descriptor.
160
246
  *
@@ -184,7 +270,11 @@ export function createLcuTool(descriptor, connection, ctx, options = {}) {
184
270
  },
185
271
  render(_args, value) {
186
272
  const content = isRecord(value) && Array.isArray(value.content) ? value.content : [];
187
- return [{ type: 'text', text: extractText(content, toolName) }];
273
+ const text = extractText(content, toolName);
274
+ const hint = capturePermissionHint(text) ?? stuckStopHint(text);
275
+ if (hint !== undefined)
276
+ diag(`tools/call ${toolName}: refused (${capturePermissionHint(text) === undefined ? 'latched Stop' : 'capture permission'}); told the model the remedy`);
277
+ return [{ type: 'text', text: hint === undefined ? text : `${text}\n\n${hint}` }];
188
278
  },
189
279
  },
190
280
  async execute(args, exec) {
@@ -194,7 +284,12 @@ export function createLcuTool(descriptor, connection, ctx, options = {}) {
194
284
  // the model misbehaves; an empty object lets the server report the missing
195
285
  // parameter specifically instead of us inventing an error.
196
286
  const callArgs = isRecord(args) ? args : {};
197
- const result = await connection.callTool(toolName, callArgs, { signal: exec.signal });
287
+ const turn = options.currentTurn?.();
288
+ const result = await connection.callTool(toolName, callArgs, {
289
+ signal: exec.signal,
290
+ ...(turn === undefined ? {} : { turnId: turn }),
291
+ ...(exec.callId === undefined || exec.callId === '' ? {} : { callId: exec.callId }),
292
+ });
198
293
  const content = result.content;
199
294
  const text = extractText(content, toolName);
200
295
  // MCP isError becomes a thrown error so the runtime records a failed call.
@@ -240,6 +335,82 @@ export function buildLcuTools(connection, ctx, options = {}) {
240
335
  }
241
336
  return descriptors.map((descriptor) => createLcuTool(descriptor, connection, ctx, options));
242
337
  }
338
+ /**
339
+ * The explicit per-app release, which LCU exposes to a host rather than to the
340
+ * model.
341
+ *
342
+ * LCU's own adapters surface this as a user command (`/lcu stop`), because
343
+ * releasing an app is a user's decision. In DSH the equivalent user action is
344
+ * asking the agent, so this is the one tool this plugin adds on top of the
345
+ * server's contract. Called without `app` it reports what is held.
346
+ *
347
+ * @param connection - the agent's connected runtime.
348
+ * @param currentTurn - resolves the agent's active turn, or `undefined` outside one.
349
+ * @returns a registrable tool definition.
350
+ */
351
+ export function createComputerUseStopTool(connection, currentTurn) {
352
+ const toolName = 'computer_use_stop';
353
+ return {
354
+ name: toolName,
355
+ description: 'List or release the applications the computer-use runtime currently holds for this session. '
356
+ + 'Call it with no arguments to list them, or with `app` set to one of the returned bundle '
357
+ + 'identifiers to stop using it. This is what clears the host application\'s "computer use is '
358
+ + 'active" state for an app without ending the session.',
359
+ // A whole JSON Schema object, exactly as the server's descriptors are
360
+ // carried: the harness rejects anything that is not `type: "object"`.
361
+ parameters: {
362
+ type: 'object',
363
+ properties: {
364
+ app: {
365
+ type: 'string',
366
+ description: 'Bundle identifier from the listing to release. Omit to list instead.',
367
+ },
368
+ },
369
+ additionalProperties: false,
370
+ },
371
+ output: {
372
+ schema: {
373
+ type: 'object',
374
+ properties: {
375
+ activeApplications: { type: 'array', items: {} },
376
+ stopped: {},
377
+ },
378
+ required: ['activeApplications'],
379
+ additionalProperties: false,
380
+ },
381
+ render(_args, value) {
382
+ const record = isRecord(value) ? value : {};
383
+ const apps = Array.isArray(record.activeApplications) ? record.activeApplications : [];
384
+ const lines = apps.length === 0
385
+ ? ['No application is currently held by computer use.']
386
+ : apps.map((app) => `- ${app.name} (${app.bundleIdentifier})`);
387
+ const stopped = typeof record.stopped === 'string' ? [`Stopped: ${record.stopped}`] : [];
388
+ return [{ type: 'text', text: [...stopped, ...lines].join('\n') }];
389
+ },
390
+ },
391
+ async execute(args) {
392
+ const turn = currentTurn();
393
+ if (turn === undefined) {
394
+ throw new Error('no active turn: computer use is released between turns');
395
+ }
396
+ const sessionId = connection.sessionId;
397
+ if (sessionId === undefined)
398
+ throw new Error('this runtime is not bound to a session');
399
+ const requested = isRecord(args) && typeof args.app === 'string' ? args.app : undefined;
400
+ const activeApplications = await connection.controlStatus(sessionId, turn);
401
+ if (requested === undefined)
402
+ return { activeApplications };
403
+ const target = activeApplications.find((app) => app.bundleIdentifier === requested)
404
+ ?? activeApplications.find((app) => app.name === requested);
405
+ if (target === undefined) {
406
+ throw new Error(`computer use is not holding "${requested}"; held: `
407
+ + (activeApplications.map((app) => app.bundleIdentifier).join(', ') || 'nothing'));
408
+ }
409
+ await connection.controlStop(sessionId, turn, target.bundleIdentifier);
410
+ return { activeApplications, stopped: target.bundleIdentifier };
411
+ },
412
+ };
413
+ }
243
414
  /**
244
415
  * Register the model-facing tools in one agent's scope.
245
416
  *
@@ -253,7 +424,11 @@ export function buildLcuTools(connection, ctx, options = {}) {
253
424
  * @returns a disposer that unregisters every tool.
254
425
  */
255
426
  export function registerLcuTools(agentCtx, connection, ctx, options = {}) {
256
- const disposers = buildLcuTools(connection, ctx, options).map((definition) => agentCtx.tools.register(definition));
427
+ const definitions = buildLcuTools(connection, ctx, options);
428
+ if (options.currentTurn !== undefined) {
429
+ definitions.push(createComputerUseStopTool(connection, options.currentTurn));
430
+ }
431
+ const disposers = definitions.map((definition) => agentCtx.tools.register(definition));
257
432
  return () => {
258
433
  for (const dispose of disposers.reverse())
259
434
  dispose();
package/lib/tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
@@ -62,8 +62,22 @@ export type LcuElicitationResponse = {
62
62
  };
63
63
  /** Tools the model may see. Everything else is host-only. */
64
64
  export declare const MODEL_TOOL_NAMES: readonly string[];
65
- /** Host-only tools, named so a mistake is loud rather than silent. */
66
65
  export declare const HOST_ONLY_TOOL_NAMES: readonly string[];
66
+ /**
67
+ * Build the `_meta` the original runtime reads its session and turn from.
68
+ *
69
+ * Its approvals, per-turn Stop and cleanup are all keyed by these identities.
70
+ * Omitting them makes every call look like the same turn, so a Stop the user
71
+ * issued once, or a cleanup that never ran, then applies to every later turn on
72
+ * the connection. A synthetic pair would be worse than none: the runtime would
73
+ * key its state to a lie. Returns `undefined` unless both identities are real.
74
+ *
75
+ * @param sessionId - the host session, or `undefined` before binding.
76
+ * @param turnId - the active turn, or `undefined` outside one.
77
+ * @param callId - the host's tool-call id, when it has one.
78
+ * @returns the metadata block, or `undefined` when it cannot be truthful.
79
+ */
80
+ export declare function turnMetadataFor(sessionId: string | undefined, turnId: string | undefined, callId?: string): Record<string, unknown> | undefined;
67
81
  /** Lifecycle events the server accepts for `turn_ended`. */
68
82
  export type LcuTurnEndEvent = 'Stop' | 'Interrupt' | 'SubagentStop';
69
83
  /** Connection options. */
@@ -138,6 +152,8 @@ export declare class LcuConnection {
138
152
  constructor(options: LcuConnectionOptions);
139
153
  /** The server's `initialize.instructions`, injected into model context. */
140
154
  get instructions(): string;
155
+ /** The host session this connection serves, once bound. */
156
+ sessionId: string | undefined;
141
157
  /** Server identity, for diagnostics. */
142
158
  get serverInfo(): {
143
159
  name?: string;
@@ -163,6 +179,10 @@ export declare class LcuConnection {
163
179
  callTool(name: string, args: Readonly<Record<string, unknown>>, options?: {
164
180
  readonly timeoutMs?: number;
165
181
  readonly signal?: AbortSignal;
182
+ /** The real host turn; the runtime keys per-turn state by it. */
183
+ readonly turnId?: string;
184
+ /** The host's tool-call id, forwarded as `call_id` when available. */
185
+ readonly callId?: string;
166
186
  }): Promise<LcuCallResult>;
167
187
  /**
168
188
  * Tell the server a host turn ended, so its per-turn cleanup runs.
@@ -172,7 +192,30 @@ export declare class LcuConnection {
172
192
  * @param event - `Stop`, `Interrupt`, or `SubagentStop`.
173
193
  */
174
194
  turnEnded(sessionId: string, turnId: string, event?: LcuTurnEndEvent): Promise<void>;
175
- /** Close the connection, terminating the child process. */
195
+ /** Whether this platform and connection expose the explicit per-app Stop. */
196
+ get hasHostControl(): boolean;
197
+ /**
198
+ * List the applications the runtime currently holds for one turn.
199
+ *
200
+ * @param sessionId - the real host session id.
201
+ * @param turnId - the real host turn id.
202
+ * @returns the active applications, with the names and bundle ids to stop by.
203
+ */
204
+ controlStatus(sessionId: string, turnId: string): Promise<readonly {
205
+ name: string;
206
+ bundleIdentifier: string;
207
+ }[]>;
208
+ /**
209
+ * Ask the original host to stop using one application for this turn.
210
+ *
211
+ * This is the documented way to release an app without ending the connection;
212
+ * the runtime then rejects further use of it until a later turn.
213
+ *
214
+ * @param sessionId - the real host session id.
215
+ * @param turnId - the real host turn id.
216
+ * @param app - the bundle identifier to stop.
217
+ */
218
+ controlStop(sessionId: string, turnId: string, app: string): Promise<void>;
176
219
  close(): Promise<void>;
177
220
  }
178
221
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,EAC+C,kBAAkB,EAEvE,MAAM,iBAAiB,CAAA;AAKxB,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB,eAAO,MAAM,MAAM,UAA4B,CAAA;AAQ/C,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA2BD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiQxD;AAYD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,EAC+C,kBAAkB,EAEvE,MAAM,iBAAiB,CAAA;AAOxB,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB,eAAO,MAAM,MAAM,UAA4B,CAAA;AA0B/C,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA2BD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgSxD;AAYD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -53,7 +53,40 @@ export interface LcuToolOptions {
53
53
  * host retries it and refuses the call if it still has not settled.
54
54
  */
55
55
  readonly beforeCall?: () => Promise<void>;
56
+ /**
57
+ * The Agent's active turn identity, so calls carry what the runtime keys its
58
+ * approvals, per-turn Stop and cleanup by. A unique id per turn, never an
59
+ * ordinal: the runtime treats a repeated id as the same, already-ended turn.
60
+ */
61
+ readonly currentTurn?: () => string | undefined;
56
62
  }
63
+ /**
64
+ * Tell the model where a stored screenshot actually is, and what it may do with it.
65
+ *
66
+ * Without this the model has an image it cannot place: the JavaScript sandbox
67
+ * refuses every write (EPERM, even in the temporary directory), so a model asked
68
+ * for a file probes the sandbox blindly — one recorded run spent six calls doing
69
+ * that before copying an object straight out of the store's internal layout by
70
+ * hash, which breaks the moment that layout changes.
71
+ *
72
+ * @param paths - host paths the attachment store resolved, in image order.
73
+ * @returns the note, or `undefined` when no path resolved.
74
+ */
75
+ export declare function storedImageNote(paths: readonly string[]): string | undefined;
76
+ /**
77
+ * An actionable line for a permission failure, when the text looks like one.
78
+ *
79
+ * @param text - the server's error text.
80
+ * @returns the hint, or `undefined` when the failure is something else.
81
+ */
82
+ export declare function capturePermissionHint(text: string): string | undefined;
83
+ /**
84
+ * An actionable line for a Stop the runtime cannot clear.
85
+ *
86
+ * @param text - the server's error text.
87
+ * @returns the hint, or `undefined` when the failure is something else.
88
+ */
89
+ export declare function stuckStopHint(text: string): string | undefined;
57
90
  /**
58
91
  * Build one model-facing tool from a server descriptor.
59
92
  *
@@ -73,6 +106,20 @@ export declare function createLcuTool(descriptor: LcuTool, connection: LcuConnec
73
106
  * @throws {LcuError} when the server does not expose the model tools.
74
107
  */
75
108
  export declare function buildLcuTools(connection: LcuConnection, ctx: Context, options?: LcuToolOptions): ToolDefinition[];
109
+ /**
110
+ * The explicit per-app release, which LCU exposes to a host rather than to the
111
+ * model.
112
+ *
113
+ * LCU's own adapters surface this as a user command (`/lcu stop`), because
114
+ * releasing an app is a user's decision. In DSH the equivalent user action is
115
+ * asking the agent, so this is the one tool this plugin adds on top of the
116
+ * server's contract. Called without `app` it reports what is held.
117
+ *
118
+ * @param connection - the agent's connected runtime.
119
+ * @param currentTurn - resolves the agent's active turn, or `undefined` outside one.
120
+ * @returns a registrable tool definition.
121
+ */
122
+ export declare function createComputerUseStopTool(connection: LcuConnection, currentTurn: () => string | undefined): ToolDefinition;
76
123
  /**
77
124
  * Register the model-facing tools in one agent's scope.
78
125
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAsD,MAAM,wBAAwB,CAAA;AAEhH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAS9E,UAAU,UAAU;IAClB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAQlF;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtE;AAgGD,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,CAuDhB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,EAAE,CAOlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,MAAM,IAAI,CAKZ"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAsD,MAAM,wBAAwB,CAAA;AAEhH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAU9E,UAAU,UAAU;IAClB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAQlF;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtE;AA2GD,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAM5E;AAWD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWtE;AAcD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,CA+DhB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,EAAE,CAOlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,GACpC,cAAc,CA6DhB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,MAAM,IAAI,CASZ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-lcu",
3
- "version": "0.1.0",
3
+ "version": "0.2.7",
4
4
  "description": "Drive the desktop and Chrome from DeepSeek Harness through LCU (Codex computer use, decoupled from the app).",
5
5
  "keywords": [
6
6
  "dsh-plugin",
@@ -68,9 +68,15 @@
68
68
  "@deepseek-ai/dsh-system-prompt": ">=0.0.1-rc.1 <0.3.0"
69
69
  },
70
70
  "peerDependenciesMeta": {
71
- "@deepseek-ai/cordis": { "optional": true },
72
- "@deepseek-ai/dsh-tools": { "optional": true },
73
- "@deepseek-ai/dsh-system-prompt": { "optional": true }
71
+ "@deepseek-ai/cordis": {
72
+ "optional": true
73
+ },
74
+ "@deepseek-ai/dsh-tools": {
75
+ "optional": true
76
+ },
77
+ "@deepseek-ai/dsh-system-prompt": {
78
+ "optional": true
79
+ }
74
80
  },
75
81
  "devDependencies": {
76
82
  "@types/node": "^22.20.5",