@yu_robotics/remote-cli 1.6.128 ā 1.6.134
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 +19 -4
- package/dist/client/MessageHandler.d.ts.map +1 -1
- package/dist/client/MessageHandler.js +37 -3
- package/dist/client/MessageHandler.js.map +1 -1
- package/dist/client/TaskRecovery.d.ts.map +1 -1
- package/dist/client/TaskRecovery.js +5 -0
- package/dist/client/TaskRecovery.js.map +1 -1
- package/dist/delegation/DelegatedWorkerSessionStore.d.ts +4 -1
- package/dist/delegation/DelegatedWorkerSessionStore.d.ts.map +1 -1
- package/dist/delegation/DelegatedWorkerSessionStore.js +6 -7
- package/dist/delegation/DelegatedWorkerSessionStore.js.map +1 -1
- package/dist/delegation/DelegatedWorkspaceManager.d.ts +91 -0
- package/dist/delegation/DelegatedWorkspaceManager.d.ts.map +1 -0
- package/dist/delegation/DelegatedWorkspaceManager.js +377 -0
- package/dist/delegation/DelegatedWorkspaceManager.js.map +1 -0
- package/dist/delegation/DelegationManager.d.ts +13 -4
- package/dist/delegation/DelegationManager.d.ts.map +1 -1
- package/dist/delegation/DelegationManager.js +388 -114
- package/dist/delegation/DelegationManager.js.map +1 -1
- package/dist/delegation/DelegationNotice.d.ts.map +1 -1
- package/dist/delegation/DelegationNotice.js +2 -0
- package/dist/delegation/DelegationNotice.js.map +1 -1
- package/dist/delegation/DelegationStore.d.ts +6 -2
- package/dist/delegation/DelegationStore.d.ts.map +1 -1
- package/dist/delegation/DelegationStore.js +12 -5
- package/dist/delegation/DelegationStore.js.map +1 -1
- package/dist/delegation/GitCheckpoint.d.ts +27 -0
- package/dist/delegation/GitCheckpoint.d.ts.map +1 -0
- package/dist/delegation/GitCheckpoint.js +226 -0
- package/dist/delegation/GitCheckpoint.js.map +1 -0
- package/dist/delegation/contract.d.ts +18 -4
- package/dist/delegation/contract.d.ts.map +1 -1
- package/dist/delegation/contract.js +13 -4
- package/dist/delegation/contract.js.map +1 -1
- package/dist/executor/AcpExecutor.d.ts +2 -0
- package/dist/executor/AcpExecutor.d.ts.map +1 -1
- package/dist/executor/AcpExecutor.js +22 -2
- package/dist/executor/AcpExecutor.js.map +1 -1
- package/dist/executor/AgyExecutor.d.ts +1 -0
- package/dist/executor/AgyExecutor.d.ts.map +1 -1
- package/dist/executor/AgyExecutor.js +4 -0
- package/dist/executor/AgyExecutor.js.map +1 -1
- package/dist/executor/ClaudePersistentExecutor.d.ts +2 -0
- package/dist/executor/ClaudePersistentExecutor.d.ts.map +1 -1
- package/dist/executor/ClaudePersistentExecutor.js +19 -0
- package/dist/executor/ClaudePersistentExecutor.js.map +1 -1
- package/dist/executor/CodexAppServerExecutor.d.ts +4 -0
- package/dist/executor/CodexAppServerExecutor.d.ts.map +1 -1
- package/dist/executor/CodexAppServerExecutor.js +32 -0
- package/dist/executor/CodexAppServerExecutor.js.map +1 -1
- package/dist/executor/ExecutionMetadata.d.ts +9 -0
- package/dist/executor/ExecutionMetadata.d.ts.map +1 -0
- package/dist/executor/ExecutionMetadata.js +57 -0
- package/dist/executor/ExecutionMetadata.js.map +1 -0
- package/dist/executor/IExecutor.d.ts +4 -1
- package/dist/executor/IExecutor.d.ts.map +1 -1
- package/dist/executor/PiExecutor.d.ts +3 -0
- package/dist/executor/PiExecutor.d.ts.map +1 -1
- package/dist/executor/PiExecutor.js +36 -0
- package/dist/executor/PiExecutor.js.map +1 -1
- package/dist/maintenance/ReleaseNotes.js +2 -2
- package/dist/maintenance/ReleaseNotes.js.map +1 -1
- package/dist/maintenance/ReleaseOverview.js +1 -1
- package/dist/maintenance/release-notes.json +1 -1
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,9 +20,11 @@ Router 1.6.117 and newer explicitly label standalone background-task notificatio
|
|
|
20
20
|
|
|
21
21
|
## Maintenance Notices
|
|
22
22
|
|
|
23
|
-
From CLI and Router 1.6.127, upgrade notices use concise Chinese summaries from `RELEASE_NOTES_ZH.md`, with one short title and
|
|
23
|
+
From CLI and Router 1.6.127, upgrade notices use concise Chinese summaries from `RELEASE_NOTES_ZH.md`, with one short title and bounded user-visible changes per release. `CHANGELOG.md` remains the English technical record. The CLI build requires matching current-version entries in both documents and bundles both, without online translation or model calls. New Routers show summaries directly and collapse technical details. Earlier maintenance-capable Routers show the summary in their existing collapsed panels; new Routers keep older CLI notes collapsed when no technical-details field is present. Cumulative ranges, silent first adoption, delivery acknowledgements, and protocol version 1 are unchanged.
|
|
24
24
|
|
|
25
|
-
From CLI and Router 1.6.128, upgrade cards group changes by stable feature tags across each device's full pending version range, not just the current detail page. Exact duplicate items are removed within a feature; distinct changes remain available in paged version records. Feature tags are stripped from display Markdown and never shown to users. The overview is bounded to 6 KiB, six features, and 12 items, with explicit omission counts;
|
|
25
|
+
From CLI and Router 1.6.128, upgrade cards group changes by stable feature tags across each device's full pending version range, not just the current detail page. Exact duplicate items are removed within a feature; distinct changes remain available in paged version records. Feature tags are stripped from display Markdown and never shown to users. The overview is bounded to 6 KiB, six features, and 12 items, with explicit omission counts; all bundled summaries and technical records remain in collapsed version details. Older metadata or insufficient overview space falls back to the existing per-version display. The optional overview preserves protocol version 1 and old-peer behavior, without model calls or changes to first adoption, notification progress, or acknowledgements.
|
|
26
|
+
|
|
27
|
+
CLI and Router 1.6.134 consolidate the available 1.6.90-1.6.133 release records and confirmed source history into one stage summary. Upgrade notices for devices with an existing notification baseline show that complete summary, not an exact per-device subset; some changes may have been delivered before. The old version sections in this range are no longer bundled or available through package-backed detail paging, but remain in Git history. Earlier changelog records are unchanged, first adoption stays silent, and subsequent releases resume normal incremental entries. From 1.6.134, each release may contain one to six summary bullets within the unchanged 2 KiB budget. This release changes release documents, package versions, and summary validation only; backend execution and Router behavior are unchanged.
|
|
26
28
|
|
|
27
29
|
From CLI and Router 1.6.123, the first feature-enabled start records a silent version baseline, without sending historical changelogs. Later successful newer starts deliver cumulative bundled release notes, including skipped/offline upgrades, in standalone cards with collapsed Markdown and View more. Downgrades keep the notification baseline; old Routers leave notices pending without changing normal messaging.
|
|
28
30
|
|
|
@@ -229,8 +231,21 @@ is disabled and cross-backend sandbox translation remains unsupported. Saved
|
|
|
229
231
|
sandbox policies are not weakened. `read_only` remains recognized for
|
|
230
232
|
compatibility but is unavailable; discovery reports the rejection reason.
|
|
231
233
|
There is one
|
|
232
|
-
active child per parent and at most three per CLI process, with
|
|
233
|
-
|
|
234
|
+
active child per parent and at most three per CLI process, with bounded time/output.
|
|
235
|
+
From CLI 1.6.129, a request may accept multiple independent tasks before collecting
|
|
236
|
+
results. Followers report `queued`, execute in FIFO order, and may be cancelled
|
|
237
|
+
individually without starting a worker. The cumulative limit is 12 accepted tasks
|
|
238
|
+
per request across continuations, including failures and cancellations. Queue
|
|
239
|
+
waits expire one hour after admission. Confirmed process exit and reusable lane
|
|
240
|
+
metadata are required before the next worker starts; an uncertain exit blocks
|
|
241
|
+
queued siblings. No peer communication or native backend behavior changes are
|
|
242
|
+
included. Other overlapping requests or a new request without an available
|
|
243
|
+
global execution slot are rejected rather than queued. Queue status uses existing
|
|
244
|
+
notice text, with progress cards only for started workers; existing Routers remain
|
|
245
|
+
compatible. Restarting the CLI interrupts retained queued/running records without
|
|
246
|
+
replaying work. Sibling results are not explicitly forwarded; a reused same-backend
|
|
247
|
+
lane retains its own earlier task context. Uncertain startup or cleanup retains
|
|
248
|
+
the occupied global slot until the CLI restarts. Workspace reservations apply to
|
|
234
249
|
delegation-enabled work; opted-out threads keep ordinary workspace access, so
|
|
235
250
|
use separate workspaces for independent writers. See
|
|
236
251
|
[Cross-backend Delegation](../../README.md#cross-backend-delegation) for limits,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../../src/client/MessageHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAgK,MAAM,UAAU,CAAC;AACzM,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAMxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../../src/client/MessageHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAgK,MAAM,UAAU,CAAC;AACzM,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAMxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA8GxD;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA+C;IACzF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IACxE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA4C;IACnF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,+BAA+B,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAoG;IACzI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IACzE,OAAO,CAAC,SAAS,CAAC,CAAY;gBAG5B,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,kBAAkB,EAC9B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,aAAa;IAkBjB,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8EtE,uBAAuB,IAAI,OAAO;IAoBlC,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;YACW,oBAAoB;IA2QlC;;OAEG;YACW,kBAAkB;IAwDhC;;OAEG;YACW,iBAAiB;IAiB/B,OAAO,CAAC,cAAc;IAOtB;;;OAGG;YACW,oBAAoB;IA+blC,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,+BAA+B;IAUvC,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,cAAc;YASR,kBAAkB;YA8ElB,sBAAsB;IAkDpC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,mBAAmB;IAK3B;;;;;;;;;OASG;YACW,eAAe;IA+C7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAkCzB;;OAEG;YACW,mBAAmB;IA0GjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;OAGG;YACW,oBAAoB;IA6MlC;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBlB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAG7C;YAEW,eAAe;IAgC7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;;;;;;;;;;OAaG;YACW,mBAAmB;IAgEjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IA0E/B;;OAEG;YACW,cAAc;YA+Pd,sBAAsB;IAoBpC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAuB9B,iFAAiF;IACjF,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,YAAY;YAUN,cAAc;YAuBd,oBAAoB;IAkHlC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc/B"}
|
|
@@ -29,6 +29,7 @@ const contract_1 = require("../delegation/contract");
|
|
|
29
29
|
const DelegationStatusFormatter_1 = require("../delegation/DelegationStatusFormatter");
|
|
30
30
|
const BackendCommand_1 = require("../utils/BackendCommand");
|
|
31
31
|
const ClaudeStderrFilter_1 = require("../executor/claude/ClaudeStderrFilter");
|
|
32
|
+
const ExecutionMetadata_1 = require("../executor/ExecutionMetadata");
|
|
32
33
|
const EFFORT_BACKENDS = new Set(['codex', 'agy', 'opencode', 'kimi', 'zcode', 'pi', 'dsh']);
|
|
33
34
|
const NATIVE_MODEL_LIST_BACKENDS = new Set(['codex', 'opencode', 'kimi', 'zcode', 'pi', 'dsh']);
|
|
34
35
|
const SLASH_SESSION_BACKENDS = new Set(['opencode', 'kimi', 'zcode', 'pi']);
|
|
@@ -313,6 +314,28 @@ class MessageHandler {
|
|
|
313
314
|
return;
|
|
314
315
|
}
|
|
315
316
|
// Child input belongs to the child executor, even though the parent owns the thread.
|
|
317
|
+
const addressedReply = /^(yes|no)\s+(\S+)$/i.exec(content?.trim() ?? '');
|
|
318
|
+
const addressedApproval = addressedReply ? this.pendingApprovalCards.get(addressedReply[2]) : undefined;
|
|
319
|
+
if (addressedApproval?.delegated && addressedReply) {
|
|
320
|
+
let accepted = false;
|
|
321
|
+
if (addressedApproval.request.threadId === resolvedThreadId && addressedApproval.request.openId === message.openId) {
|
|
322
|
+
const action = addressedReply[1].toLowerCase() === 'yes' ? 'approve' : 'deny';
|
|
323
|
+
try {
|
|
324
|
+
accepted = addressedApproval.executor.respondToApproval?.(addressedReply[2], action) === true;
|
|
325
|
+
}
|
|
326
|
+
catch { /* Never fall through to another executor after a targeted approval fails. */ }
|
|
327
|
+
if (accepted)
|
|
328
|
+
this.resolveApprovalCard(addressedReply[2], action === 'approve' ? 'approved' : 'denied');
|
|
329
|
+
}
|
|
330
|
+
this.sendResponse(messageId, resolvedThreadId, accepted ? { success: true, output: 'Approval response sent.' }
|
|
331
|
+
: { success: false, error: 'The addressed worker approval could not be applied. Check its request ID and owner.' });
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
if (this.delegation.hasAmbiguousInput(resolvedThreadId)) {
|
|
335
|
+
this.sendResponse(messageId, resolvedThreadId, { success: false,
|
|
336
|
+
error: 'Multiple workers are waiting for input. Use the specific approval card or request ID; an unaddressed reply cannot be routed safely.' });
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
316
339
|
const inputExecutor = this.delegation.waitingExecutor(resolvedThreadId) ?? executor;
|
|
317
340
|
if ('isWaitingInput' in inputExecutor && typeof inputExecutor.isWaitingInput === 'function') {
|
|
318
341
|
const ex = inputExecutor;
|
|
@@ -1800,6 +1823,7 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
1800
1823
|
this.sendStreamContext(messageId, threadId, executor);
|
|
1801
1824
|
let delegationScope;
|
|
1802
1825
|
let delegationBridge;
|
|
1826
|
+
let executionMetadata;
|
|
1803
1827
|
const complete = async (success, error) => {
|
|
1804
1828
|
delegationBridge?.activate(undefined);
|
|
1805
1829
|
const retained = !success && delegationScope && !delegationScope.isClosed()
|
|
@@ -1823,7 +1847,7 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
1823
1847
|
}
|
|
1824
1848
|
const responseError = fromQueue && !success
|
|
1825
1849
|
? this.pauseQueueAfterFailure(threadId, error || 'Queued command failed') : error;
|
|
1826
|
-
this.sendResponse(messageId, threadId, { success, error: responseError, threads: this.threadPool.getSummaries() });
|
|
1850
|
+
this.sendResponse(messageId, threadId, { success, error: responseError, threads: this.threadPool.getSummaries(), executionMetadata });
|
|
1827
1851
|
if (fromQueue)
|
|
1828
1852
|
console.log(`[MessageHandler] Finished queued message ${messageId} in thread ${threadId}: success=${success}, remaining=${this.threadQueues.get(threadId)?.length ?? 0}, paused=${this.pausedQueues.has(threadId)}`);
|
|
1829
1853
|
return success;
|
|
@@ -1920,7 +1944,7 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
1920
1944
|
this.sendStreamChunk(messageId, threadId, chunk);
|
|
1921
1945
|
},
|
|
1922
1946
|
onToolUse: (toolUse) => {
|
|
1923
|
-
if (delegationScope && /remote_cli_(list_backends|delegate|result|cancel)$/.test(toolUse.name)) {
|
|
1947
|
+
if (delegationScope && /remote_cli_(list_backends|delegate|result|cancel|integrate)$/.test(toolUse.name)) {
|
|
1924
1948
|
delegationControlTools.add(toolUse.id);
|
|
1925
1949
|
return;
|
|
1926
1950
|
}
|
|
@@ -1991,8 +2015,14 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
1991
2015
|
onToolResult: tool => { if (active && !scope.isClosed())
|
|
1992
2016
|
options.onToolResult?.(tool); },
|
|
1993
2017
|
} : options;
|
|
2018
|
+
const backend = this.threadPool.getBackendKey(threadId);
|
|
2019
|
+
const launchMetadata = (0, ExecutionMetadata_1.captureExecutionMetadata)(executor, backend);
|
|
2020
|
+
executionMetadata = launchMetadata;
|
|
2021
|
+
let capturedMetadata = false;
|
|
1994
2022
|
try {
|
|
1995
2023
|
const result = await executor.execute(prompt, guardedOptions);
|
|
2024
|
+
executionMetadata = (0, ExecutionMetadata_1.mergeReportedExecutionMetadata)(launchMetadata, (0, ExecutionMetadata_1.captureExecutionMetadata)(executor, backend));
|
|
2025
|
+
capturedMetadata = true;
|
|
1996
2026
|
active = false;
|
|
1997
2027
|
delegationBridge?.activate(undefined);
|
|
1998
2028
|
assertCoordinatorActive();
|
|
@@ -2007,6 +2037,8 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
2007
2037
|
return result;
|
|
2008
2038
|
}
|
|
2009
2039
|
finally {
|
|
2040
|
+
if (!capturedMetadata)
|
|
2041
|
+
executionMetadata = (0, ExecutionMetadata_1.mergeReportedExecutionMetadata)(launchMetadata, (0, ExecutionMetadata_1.captureExecutionMetadata)(executor, backend));
|
|
2010
2042
|
active = false;
|
|
2011
2043
|
delegationBridge?.activate(undefined);
|
|
2012
2044
|
if (!finished)
|
|
@@ -2121,7 +2153,8 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
2121
2153
|
const description = request.approval.description;
|
|
2122
2154
|
const longest = (description.match(/`+/g) ?? []).reduce((length, run) => Math.max(length, run.length), 2);
|
|
2123
2155
|
const fence = '`'.repeat(longest + 1);
|
|
2124
|
-
this.sendStreamChunk(request.taskMessageId, request.threadId, `\nš **Approval required**\n\n${fence}\n${description}\n${fence}\n\nReply yes, no${request.approval.canRemember ? ', or remember to save these directories' : ''}
|
|
2156
|
+
this.sendStreamChunk(request.taskMessageId, request.threadId, `\nš **Approval required**\n\n${fence}\n${description}\n${fence}\n\nReply yes, no${request.approval.canRemember ? ', or remember to save these directories' : ''}.${pending.delegated
|
|
2157
|
+
? ` To address this worker explicitly, reply yes ${requestId} or no ${requestId}.` : ''}\n`);
|
|
2125
2158
|
}
|
|
2126
2159
|
resolveApprovalCard(requestId, status) {
|
|
2127
2160
|
const pending = this.pendingApprovalCards.get(requestId);
|
|
@@ -2327,6 +2360,7 @@ You can also use natural language commands to control Claude Code CLI.`,
|
|
|
2327
2360
|
threadId,
|
|
2328
2361
|
threads: result.threads,
|
|
2329
2362
|
queueConfirmation: result.queueConfirmation,
|
|
2363
|
+
...(result.executionMetadata ? { executionMetadata: result.executionMetadata } : {}),
|
|
2330
2364
|
cwd,
|
|
2331
2365
|
timestamp: Date.now(),
|
|
2332
2366
|
});
|