@tutti-os/agent-gui 0.0.63 → 0.0.65
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/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +7 -7
- package/dist/agent-env/index.js +2 -1
- package/dist/agent-env/index.js.map +1 -1
- package/dist/agent-message-center/index.js +9 -9
- package/dist/{agentGuiNodeTypes-CC52zXAV.d.ts → agentGuiNodeTypes-CCjzXdTe.d.ts} +4 -1
- package/dist/app/renderer/agentactivity.css +41 -7
- package/dist/app/renderer/assets/icons/agents/agent-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-flat-filled.svg +3 -0
- package/dist/app/renderer/assets/icons/agents/cursor-rounded.png +0 -0
- package/dist/{chunk-IIVHPXAB.js → chunk-2IMBPRKV.js} +1 -1
- package/dist/chunk-2IMBPRKV.js.map +1 -0
- package/dist/{chunk-6MUKWI6Z.js → chunk-6OYLLPPN.js} +167 -113
- package/dist/chunk-6OYLLPPN.js.map +1 -0
- package/dist/{chunk-22L4VWUR.js → chunk-CKCUEHBW.js} +3 -1
- package/dist/chunk-CKCUEHBW.js.map +1 -0
- package/dist/{chunk-NZN43XT5.js → chunk-DL6BMEHI.js} +8 -6
- package/dist/chunk-DL6BMEHI.js.map +1 -0
- package/dist/{chunk-G6UO6JVM.js → chunk-EIPQGFAE.js} +2 -2
- package/dist/{chunk-SGXYVGQT.js → chunk-HKKC2U6J.js} +5 -5
- package/dist/{chunk-SW6JCJCO.js → chunk-IDTB6OID.js} +3 -3
- package/dist/{chunk-5WB3NGIN.js → chunk-LJE2W4EM.js} +27 -2
- package/dist/chunk-LJE2W4EM.js.map +1 -0
- package/dist/{chunk-K4UUEG7X.js → chunk-LQHYHF36.js} +115 -36
- package/dist/chunk-LQHYHF36.js.map +1 -0
- package/dist/{chunk-FRCIPTUD.js → chunk-N4I3TD4G.js} +8 -18
- package/dist/chunk-N4I3TD4G.js.map +1 -0
- package/dist/{chunk-QC642RAG.js → chunk-N7BGNAA2.js} +15 -8
- package/dist/chunk-N7BGNAA2.js.map +1 -0
- package/dist/{chunk-3KS22CG2.js → chunk-P5C3ED3V.js} +5 -4
- package/dist/chunk-P5C3ED3V.js.map +1 -0
- package/dist/{chunk-7P6CUYQT.js → chunk-QULZNKPA.js} +2 -2
- package/dist/{chunk-V4JGVBUN.js → chunk-R2NGSPQS.js} +32 -1
- package/dist/chunk-R2NGSPQS.js.map +1 -0
- package/dist/{chunk-ZUVEBW5T.js → chunk-R7PSPKBD.js} +2 -2
- package/dist/{chunk-4UTWOSHP.js → chunk-UI3YDJTC.js} +43 -5
- package/dist/chunk-UI3YDJTC.js.map +1 -0
- package/dist/{chunk-RO6KQD3J.js → chunk-UWBX3DZK.js} +2 -2
- package/dist/{chunk-CVSCZ3CK.js → chunk-W3Q7B3DV.js} +7 -2
- package/dist/chunk-W3Q7B3DV.js.map +1 -0
- package/dist/{chunk-CA25GD5Q.js → chunk-XLBJHHDX.js} +38 -6
- package/dist/chunk-XLBJHHDX.js.map +1 -0
- package/dist/{chunk-FQQDBBNI.js → chunk-XZPAU7FC.js} +3 -3
- package/dist/context-mention-palette/index.js +8 -8
- package/dist/i18n/index.d.ts +37 -5
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +25 -6
- package/dist/index.js +1093 -425
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +2 -2
- package/dist/{types-DSc2ta3s.d.ts → types-BAPEle8b.d.ts} +3 -3
- package/dist/workbench/contribution.d.ts +10 -3
- package/dist/workbench/contribution.js +10 -8
- package/dist/workbench/index.d.ts +4 -2
- package/dist/workbench/index.js +11 -11
- package/dist/workbench/launch.d.ts +3 -1
- package/dist/workbench/launch.js +3 -3
- package/dist/workbench/providerCatalog.d.ts +2 -2
- package/dist/workbench/providerCatalog.js +1 -1
- package/dist/workbench/sessionTitle.d.ts +1 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +3 -3
- package/dist/workbench/types.d.ts +3 -2
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/chunk-22L4VWUR.js.map +0 -1
- package/dist/chunk-3KS22CG2.js.map +0 -1
- package/dist/chunk-4UTWOSHP.js.map +0 -1
- package/dist/chunk-5WB3NGIN.js.map +0 -1
- package/dist/chunk-6MUKWI6Z.js.map +0 -1
- package/dist/chunk-CA25GD5Q.js.map +0 -1
- package/dist/chunk-CVSCZ3CK.js.map +0 -1
- package/dist/chunk-FRCIPTUD.js.map +0 -1
- package/dist/chunk-IIVHPXAB.js.map +0 -1
- package/dist/chunk-K4UUEG7X.js.map +0 -1
- package/dist/chunk-NZN43XT5.js.map +0 -1
- package/dist/chunk-QC642RAG.js.map +0 -1
- package/dist/chunk-V4JGVBUN.js.map +0 -1
- /package/dist/{chunk-G6UO6JVM.js.map → chunk-EIPQGFAE.js.map} +0 -0
- /package/dist/{chunk-SGXYVGQT.js.map → chunk-HKKC2U6J.js.map} +0 -0
- /package/dist/{chunk-SW6JCJCO.js.map → chunk-IDTB6OID.js.map} +0 -0
- /package/dist/{chunk-7P6CUYQT.js.map → chunk-QULZNKPA.js.map} +0 -0
- /package/dist/{chunk-ZUVEBW5T.js.map → chunk-R7PSPKBD.js.map} +0 -0
- /package/dist/{chunk-RO6KQD3J.js.map → chunk-UWBX3DZK.js.map} +0 -0
- /package/dist/{chunk-FQQDBBNI.js.map → chunk-XZPAU7FC.js.map} +0 -0
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
resolveWorkspaceFilePathCandidate,
|
|
16
16
|
resolveWorkspaceLinkAction,
|
|
17
17
|
useAgentTargetPresentations
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IDTB6OID.js";
|
|
19
19
|
import {
|
|
20
20
|
classifyFailedAgentMessage,
|
|
21
21
|
openAgentEnvPanel,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
formatAgentMentionMarkdown,
|
|
29
29
|
mentionItemToAttrs,
|
|
30
30
|
parseAgentMentionMarkdown
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-XZPAU7FC.js";
|
|
32
32
|
import {
|
|
33
33
|
fileChangeCountFromChanges,
|
|
34
34
|
fileChangeEntriesFromChanges,
|
|
@@ -38,14 +38,14 @@ import {
|
|
|
38
38
|
import {
|
|
39
39
|
getOptionalAgentActivityRuntime,
|
|
40
40
|
useOptionalAgentHostApi
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-N4I3TD4G.js";
|
|
42
42
|
import {
|
|
43
43
|
workspaceAgentProviderLabel
|
|
44
44
|
} from "./chunk-TYGL25EL.js";
|
|
45
45
|
import {
|
|
46
46
|
getActiveUiLanguage,
|
|
47
47
|
translate
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-UWBX3DZK.js";
|
|
49
49
|
|
|
50
50
|
// shared/workspaceAgentTimelineCanonical.ts
|
|
51
51
|
import { isLiveTurnLifecyclePhase } from "@tutti-os/agent-activity-core";
|
|
@@ -228,6 +228,83 @@ function stringRecordValue(record, key) {
|
|
|
228
228
|
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
+
// shared/workspaceAgentToolCallLabels.ts
|
|
232
|
+
var TOOL_ACTIVITY_KIND_TRANSLATION_KEYS = {
|
|
233
|
+
run_command: "agentHost.agentTool.labels.runCommand",
|
|
234
|
+
read_file: "agentHost.agentTool.labels.readFile",
|
|
235
|
+
write_file: "agentHost.agentTool.labels.writeFile",
|
|
236
|
+
edit_file: "agentHost.agentTool.labels.editFile",
|
|
237
|
+
list_files: "agentHost.agentTool.labels.listFiles",
|
|
238
|
+
search_files: "agentHost.agentTool.labels.searchFiles",
|
|
239
|
+
web_search: "agentHost.agentTool.labels.webSearch",
|
|
240
|
+
web_fetch: "agentHost.agentTool.labels.webFetch",
|
|
241
|
+
apply_patch: "agentHost.agentTool.labels.applyPatch",
|
|
242
|
+
use_tool: "agentHost.agentTool.labels.useTool",
|
|
243
|
+
find_files: "agentHost.agentTool.labels.findFiles",
|
|
244
|
+
read_command_output: "agentHost.agentTool.labels.readCommandOutput",
|
|
245
|
+
stop_command: "agentHost.agentTool.labels.stopCommand",
|
|
246
|
+
read_notebook: "agentHost.agentTool.labels.readNotebook",
|
|
247
|
+
edit_notebook: "agentHost.agentTool.labels.editNotebook",
|
|
248
|
+
update_todos: "agentHost.agentTool.labels.updateTodos",
|
|
249
|
+
delegate_agent: "agentHost.agentTool.labels.delegateAgent",
|
|
250
|
+
thinking: "agentHost.agentTool.labels.thinking",
|
|
251
|
+
responding: "agentHost.agentTool.labels.responding",
|
|
252
|
+
notification: "agentHost.agentTool.labels.notification"
|
|
253
|
+
};
|
|
254
|
+
var AGENT_ACTIVITY_KINDS = /* @__PURE__ */ new Set([
|
|
255
|
+
"thinking",
|
|
256
|
+
"responding",
|
|
257
|
+
"notification"
|
|
258
|
+
]);
|
|
259
|
+
var TOOL_NAME_TRANSLATION_KEYS = {
|
|
260
|
+
bash: "agentHost.agentTool.labels.runCommand",
|
|
261
|
+
read: "agentHost.agentTool.labels.readFile",
|
|
262
|
+
write: "agentHost.agentTool.labels.writeFile",
|
|
263
|
+
edit: "agentHost.agentTool.labels.editFile",
|
|
264
|
+
glob: "agentHost.agentTool.labels.findFiles",
|
|
265
|
+
grep: "agentHost.agentTool.labels.searchFiles",
|
|
266
|
+
websearch: "agentHost.agentTool.labels.webSearch",
|
|
267
|
+
webfetch: "agentHost.agentTool.labels.webFetch",
|
|
268
|
+
todowrite: "agentHost.agentTool.labels.updateTodos",
|
|
269
|
+
task: "agentHost.agentTool.labels.delegateAgent",
|
|
270
|
+
currenttask: "agentHost.agentTool.labels.currentIssue",
|
|
271
|
+
agent: "agentHost.agentTool.labels.delegateAgent",
|
|
272
|
+
closeagent: "agentHost.agentTool.labels.closeAgent",
|
|
273
|
+
wait: "agentHost.agentTool.labels.waitAgent"
|
|
274
|
+
};
|
|
275
|
+
function legacyKindToToolName(kind) {
|
|
276
|
+
switch (kind) {
|
|
277
|
+
case "run_command":
|
|
278
|
+
case "read_command_output":
|
|
279
|
+
case "stop_command":
|
|
280
|
+
return "Bash";
|
|
281
|
+
case "read_file":
|
|
282
|
+
case "read_notebook":
|
|
283
|
+
case "list_files":
|
|
284
|
+
return "Read";
|
|
285
|
+
case "write_file":
|
|
286
|
+
return "Write";
|
|
287
|
+
case "edit_file":
|
|
288
|
+
case "edit_notebook":
|
|
289
|
+
case "apply_patch":
|
|
290
|
+
return "Edit";
|
|
291
|
+
case "find_files":
|
|
292
|
+
return "Glob";
|
|
293
|
+
case "search_files":
|
|
294
|
+
return "Grep";
|
|
295
|
+
case "web_search":
|
|
296
|
+
return "WebSearch";
|
|
297
|
+
case "web_fetch":
|
|
298
|
+
return "WebFetch";
|
|
299
|
+
case "update_todos":
|
|
300
|
+
return "TodoWrite";
|
|
301
|
+
case "delegate_agent":
|
|
302
|
+
return "Task";
|
|
303
|
+
default:
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
231
308
|
// shared/workspaceAgentToolCallCanonical.ts
|
|
232
309
|
function resolveCanonicalToolName(toolName) {
|
|
233
310
|
const normalized = normalizeToolNameToken2(toolName);
|
|
@@ -280,9 +357,16 @@ function resolveCanonicalToolName(toolName) {
|
|
|
280
357
|
case "agent":
|
|
281
358
|
return "Agent";
|
|
282
359
|
default:
|
|
283
|
-
return
|
|
360
|
+
return resolveLegacySnakeCaseToolName(toolName);
|
|
284
361
|
}
|
|
285
362
|
}
|
|
363
|
+
function resolveLegacySnakeCaseToolName(toolName) {
|
|
364
|
+
const trimmed = toolName?.trim() ?? "";
|
|
365
|
+
if (!trimmed || !(trimmed in TOOL_ACTIVITY_KIND_TRANSLATION_KEYS)) {
|
|
366
|
+
return null;
|
|
367
|
+
}
|
|
368
|
+
return legacyKindToToolName(trimmed);
|
|
369
|
+
}
|
|
286
370
|
function resolveLiveCanonicalToolName(item, rawPayloadToolName, legacyACPToolName) {
|
|
287
371
|
const itemName = (item.name ?? "").trim();
|
|
288
372
|
if (rawPayloadToolName && looksLikeOpaqueToolCallID(rawPayloadToolName, item)) {
|
|
@@ -383,7 +467,7 @@ function stringPayloadValue(value, key) {
|
|
|
383
467
|
}
|
|
384
468
|
|
|
385
469
|
// shared/workspaceAgentToolCallAgentActivity.ts
|
|
386
|
-
var
|
|
470
|
+
var AGENT_ACTIVITY_KINDS2 = /* @__PURE__ */ new Set([
|
|
387
471
|
"thinking",
|
|
388
472
|
"responding",
|
|
389
473
|
"notification"
|
|
@@ -402,7 +486,7 @@ function isAgentActivityTimelineItem(item) {
|
|
|
402
486
|
stringRecordValue2(metadata, "activity_kind")
|
|
403
487
|
)
|
|
404
488
|
);
|
|
405
|
-
if (
|
|
489
|
+
if (AGENT_ACTIVITY_KINDS2.has(normalizedKind)) {
|
|
406
490
|
return true;
|
|
407
491
|
}
|
|
408
492
|
const normalizedName = (item.name ?? "").trim().toLowerCase().replace(/[.\-\s]+/gu, "_");
|
|
@@ -434,83 +518,6 @@ function firstPresentString2(...values) {
|
|
|
434
518
|
) ?? "";
|
|
435
519
|
}
|
|
436
520
|
|
|
437
|
-
// shared/workspaceAgentToolCallLabels.ts
|
|
438
|
-
var TOOL_ACTIVITY_KIND_TRANSLATION_KEYS = {
|
|
439
|
-
run_command: "agentHost.agentTool.labels.runCommand",
|
|
440
|
-
read_file: "agentHost.agentTool.labels.readFile",
|
|
441
|
-
write_file: "agentHost.agentTool.labels.writeFile",
|
|
442
|
-
edit_file: "agentHost.agentTool.labels.editFile",
|
|
443
|
-
list_files: "agentHost.agentTool.labels.listFiles",
|
|
444
|
-
search_files: "agentHost.agentTool.labels.searchFiles",
|
|
445
|
-
web_search: "agentHost.agentTool.labels.webSearch",
|
|
446
|
-
web_fetch: "agentHost.agentTool.labels.webFetch",
|
|
447
|
-
apply_patch: "agentHost.agentTool.labels.applyPatch",
|
|
448
|
-
use_tool: "agentHost.agentTool.labels.useTool",
|
|
449
|
-
find_files: "agentHost.agentTool.labels.findFiles",
|
|
450
|
-
read_command_output: "agentHost.agentTool.labels.readCommandOutput",
|
|
451
|
-
stop_command: "agentHost.agentTool.labels.stopCommand",
|
|
452
|
-
read_notebook: "agentHost.agentTool.labels.readNotebook",
|
|
453
|
-
edit_notebook: "agentHost.agentTool.labels.editNotebook",
|
|
454
|
-
update_todos: "agentHost.agentTool.labels.updateTodos",
|
|
455
|
-
delegate_agent: "agentHost.agentTool.labels.delegateAgent",
|
|
456
|
-
thinking: "agentHost.agentTool.labels.thinking",
|
|
457
|
-
responding: "agentHost.agentTool.labels.responding",
|
|
458
|
-
notification: "agentHost.agentTool.labels.notification"
|
|
459
|
-
};
|
|
460
|
-
var AGENT_ACTIVITY_KINDS2 = /* @__PURE__ */ new Set([
|
|
461
|
-
"thinking",
|
|
462
|
-
"responding",
|
|
463
|
-
"notification"
|
|
464
|
-
]);
|
|
465
|
-
var TOOL_NAME_TRANSLATION_KEYS = {
|
|
466
|
-
bash: "agentHost.agentTool.labels.runCommand",
|
|
467
|
-
read: "agentHost.agentTool.labels.readFile",
|
|
468
|
-
write: "agentHost.agentTool.labels.writeFile",
|
|
469
|
-
edit: "agentHost.agentTool.labels.editFile",
|
|
470
|
-
glob: "agentHost.agentTool.labels.findFiles",
|
|
471
|
-
grep: "agentHost.agentTool.labels.searchFiles",
|
|
472
|
-
websearch: "agentHost.agentTool.labels.webSearch",
|
|
473
|
-
webfetch: "agentHost.agentTool.labels.webFetch",
|
|
474
|
-
todowrite: "agentHost.agentTool.labels.updateTodos",
|
|
475
|
-
task: "agentHost.agentTool.labels.delegateAgent",
|
|
476
|
-
currenttask: "agentHost.agentTool.labels.currentIssue",
|
|
477
|
-
agent: "agentHost.agentTool.labels.delegateAgent",
|
|
478
|
-
closeagent: "agentHost.agentTool.labels.closeAgent",
|
|
479
|
-
wait: "agentHost.agentTool.labels.waitAgent"
|
|
480
|
-
};
|
|
481
|
-
function legacyKindToToolName(kind) {
|
|
482
|
-
switch (kind) {
|
|
483
|
-
case "run_command":
|
|
484
|
-
case "read_command_output":
|
|
485
|
-
case "stop_command":
|
|
486
|
-
return "Bash";
|
|
487
|
-
case "read_file":
|
|
488
|
-
case "read_notebook":
|
|
489
|
-
case "list_files":
|
|
490
|
-
return "Read";
|
|
491
|
-
case "write_file":
|
|
492
|
-
return "Write";
|
|
493
|
-
case "edit_file":
|
|
494
|
-
case "edit_notebook":
|
|
495
|
-
case "apply_patch":
|
|
496
|
-
return "Edit";
|
|
497
|
-
case "find_files":
|
|
498
|
-
return "Glob";
|
|
499
|
-
case "search_files":
|
|
500
|
-
return "Grep";
|
|
501
|
-
case "web_search":
|
|
502
|
-
return "WebSearch";
|
|
503
|
-
case "web_fetch":
|
|
504
|
-
return "WebFetch";
|
|
505
|
-
case "update_todos":
|
|
506
|
-
return "TodoWrite";
|
|
507
|
-
case "delegate_agent":
|
|
508
|
-
return "Task";
|
|
509
|
-
default:
|
|
510
|
-
return null;
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
|
|
514
521
|
// shared/workspaceAgentToolCallDisplay.ts
|
|
515
522
|
function isWorkspaceAgentToolCallItem(item) {
|
|
516
523
|
const itemType = item.itemType.trim().toLowerCase();
|
|
@@ -626,7 +633,7 @@ function resolveLegacyToolName(item) {
|
|
|
626
633
|
const metadata = recordValue3(item.payload, "metadata");
|
|
627
634
|
const rawKind = stringRecordValue3(item.payload, "activityKind") ?? stringRecordValue3(item.payload, "activity_kind") ?? stringRecordValue3(metadata, "activityKind") ?? stringRecordValue3(metadata, "activity_kind");
|
|
628
635
|
const normalizedKind = normalizeToolToken2(rawKind);
|
|
629
|
-
if (
|
|
636
|
+
if (AGENT_ACTIVITY_KINDS.has(normalizedKind)) {
|
|
630
637
|
return null;
|
|
631
638
|
}
|
|
632
639
|
if (isToolActivityKind(normalizedKind)) {
|
|
@@ -5385,6 +5392,10 @@ function selectPendingApproval(rows) {
|
|
|
5385
5392
|
continue;
|
|
5386
5393
|
}
|
|
5387
5394
|
for (const call of toolCallsFromRow(row).reverse()) {
|
|
5395
|
+
const nestedApproval = pendingApprovalFromNestedTask(call);
|
|
5396
|
+
if (nestedApproval) {
|
|
5397
|
+
return nestedApproval;
|
|
5398
|
+
}
|
|
5388
5399
|
const approval = call.approval ?? fallbackApprovalFromCall(call);
|
|
5389
5400
|
if (approval && normalizeApprovalPendingStatus(
|
|
5390
5401
|
approval.status ?? call.status,
|
|
@@ -5396,41 +5407,81 @@ function selectPendingApproval(rows) {
|
|
|
5396
5407
|
}
|
|
5397
5408
|
return null;
|
|
5398
5409
|
}
|
|
5410
|
+
function pendingApprovalFromNestedTask(call) {
|
|
5411
|
+
if (!call.task) {
|
|
5412
|
+
return null;
|
|
5413
|
+
}
|
|
5414
|
+
for (const step of [...call.task.steps].reverse()) {
|
|
5415
|
+
const stepCall = step.tool;
|
|
5416
|
+
if (!stepCall) {
|
|
5417
|
+
continue;
|
|
5418
|
+
}
|
|
5419
|
+
const nestedApproval = pendingApprovalFromNestedTask(stepCall);
|
|
5420
|
+
if (nestedApproval) {
|
|
5421
|
+
return nestedApproval;
|
|
5422
|
+
}
|
|
5423
|
+
const approval = stepCall.approval ?? fallbackApprovalFromCall(stepCall);
|
|
5424
|
+
if (approval && normalizeApprovalPendingStatus(
|
|
5425
|
+
approval.status ?? stepCall.status,
|
|
5426
|
+
stepCall.statusKind
|
|
5427
|
+
) && !approval.output) {
|
|
5428
|
+
return approval;
|
|
5429
|
+
}
|
|
5430
|
+
}
|
|
5431
|
+
return null;
|
|
5432
|
+
}
|
|
5399
5433
|
function selectPendingInteractivePrompt(rows) {
|
|
5400
5434
|
for (const row of [...rows].reverse()) {
|
|
5401
5435
|
if (row.kind !== "tool-group") {
|
|
5402
5436
|
continue;
|
|
5403
5437
|
}
|
|
5404
5438
|
for (const call of toolCallsFromRow(row).reverse()) {
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
) && call.askUserQuestion.questions.some(
|
|
5409
|
-
(question) => question.answer === null
|
|
5410
|
-
)) {
|
|
5411
|
-
return {
|
|
5412
|
-
kind: "ask-user",
|
|
5413
|
-
requestId: call.askUserQuestion.requestId,
|
|
5414
|
-
title: call.askUserQuestion.title,
|
|
5415
|
-
questions: call.askUserQuestion.questions
|
|
5416
|
-
};
|
|
5417
|
-
}
|
|
5418
|
-
if (call.planMode?.kind === "exit" && normalizeInteractivePendingStatus(
|
|
5419
|
-
call.planMode.status ?? call.status,
|
|
5420
|
-
call.statusKind
|
|
5421
|
-
)) {
|
|
5422
|
-
return {
|
|
5423
|
-
kind: "exit-plan",
|
|
5424
|
-
requestId: call.planMode.requestId ?? call.id.replace(/^call:/, ""),
|
|
5425
|
-
title: call.planMode.title,
|
|
5426
|
-
options: call.planMode.options ?? [],
|
|
5427
|
-
...call.planMode.keepPlanningOptionId ? { keepPlanningOptionId: call.planMode.keepPlanningOptionId } : {}
|
|
5428
|
-
};
|
|
5439
|
+
const prompt = pendingInteractivePromptFromCall(call);
|
|
5440
|
+
if (prompt) {
|
|
5441
|
+
return prompt;
|
|
5429
5442
|
}
|
|
5430
5443
|
}
|
|
5431
5444
|
}
|
|
5432
5445
|
return null;
|
|
5433
5446
|
}
|
|
5447
|
+
function pendingInteractivePromptFromCall(call) {
|
|
5448
|
+
if (call.askUserQuestion && normalizeInteractivePendingStatus(
|
|
5449
|
+
call.askUserQuestion.status ?? call.status,
|
|
5450
|
+
call.statusKind
|
|
5451
|
+
) && call.askUserQuestion.questions.some((question) => question.answer === null)) {
|
|
5452
|
+
return {
|
|
5453
|
+
kind: "ask-user",
|
|
5454
|
+
requestId: call.askUserQuestion.requestId,
|
|
5455
|
+
title: call.askUserQuestion.title,
|
|
5456
|
+
questions: call.askUserQuestion.questions
|
|
5457
|
+
};
|
|
5458
|
+
}
|
|
5459
|
+
if (call.planMode?.kind === "exit" && normalizeInteractivePendingStatus(
|
|
5460
|
+
call.planMode.status ?? call.status,
|
|
5461
|
+
call.statusKind
|
|
5462
|
+
)) {
|
|
5463
|
+
return {
|
|
5464
|
+
kind: "exit-plan",
|
|
5465
|
+
requestId: call.planMode.requestId ?? call.id.replace(/^call:/, ""),
|
|
5466
|
+
title: call.planMode.title,
|
|
5467
|
+
options: call.planMode.options ?? [],
|
|
5468
|
+
...call.planMode.keepPlanningOptionId ? { keepPlanningOptionId: call.planMode.keepPlanningOptionId } : {}
|
|
5469
|
+
};
|
|
5470
|
+
}
|
|
5471
|
+
if (!call.task) {
|
|
5472
|
+
return null;
|
|
5473
|
+
}
|
|
5474
|
+
for (const step of [...call.task.steps].reverse()) {
|
|
5475
|
+
if (!step.tool) {
|
|
5476
|
+
continue;
|
|
5477
|
+
}
|
|
5478
|
+
const prompt = pendingInteractivePromptFromCall(step.tool);
|
|
5479
|
+
if (prompt) {
|
|
5480
|
+
return prompt;
|
|
5481
|
+
}
|
|
5482
|
+
}
|
|
5483
|
+
return null;
|
|
5484
|
+
}
|
|
5434
5485
|
function toolCallsFromRow(row) {
|
|
5435
5486
|
return row.calls.length > 0 ? [...row.calls] : row.entries.flatMap(
|
|
5436
5487
|
(entry) => entry.kind === "tool-call" ? [entry.call] : []
|
|
@@ -10820,7 +10871,7 @@ function fileNameFromPath2(path) {
|
|
|
10820
10871
|
}
|
|
10821
10872
|
function flatLineClassName(kind) {
|
|
10822
10873
|
if (kind === "add") {
|
|
10823
|
-
return "
|
|
10874
|
+
return "grid grid-cols-[48px_minmax(0,1fr)] border-l-[2px] border-l-[var(--state-success)] bg-[color:color-mix(in_srgb,var(--state-success)_10%,transparent)] font-[var(--tsh-font-mono)] text-[11px] leading-6";
|
|
10824
10875
|
}
|
|
10825
10876
|
if (kind === "remove") {
|
|
10826
10877
|
return "grid grid-cols-[48px_minmax(0,1fr)] border-l-[2px] border-l-[var(--state-danger)] bg-[color:color-mix(in_srgb,var(--state-danger)_10%,transparent)] font-[var(--tsh-font-mono)] text-[11px] leading-6";
|
|
@@ -12889,8 +12940,11 @@ function subAgentStatusLabel(status) {
|
|
|
12889
12940
|
return translate("agentHost.agentTool.statusWorking");
|
|
12890
12941
|
}
|
|
12891
12942
|
}
|
|
12943
|
+
function isSubAgentActivelyRunning(subAgent) {
|
|
12944
|
+
return subAgent.status === "running" && !subAgent.queued;
|
|
12945
|
+
}
|
|
12892
12946
|
function useRunningSubAgentNowUnixMs(subAgent) {
|
|
12893
|
-
const shouldTick = subAgent
|
|
12947
|
+
const shouldTick = isSubAgentActivelyRunning(subAgent) && typeof subAgent.startedAtUnixMs === "number";
|
|
12894
12948
|
const [nowUnixMs, setNowUnixMs] = useState14(
|
|
12895
12949
|
() => shouldTick ? Date.now() : null
|
|
12896
12950
|
);
|
|
@@ -12913,7 +12967,7 @@ function subAgentElapsedText(subAgent, runningNowUnixMs) {
|
|
|
12913
12967
|
}
|
|
12914
12968
|
const terminal = subAgent.terminalAtUnixMs;
|
|
12915
12969
|
const latest = subAgent.latestActivityAtUnixMs;
|
|
12916
|
-
const ended = typeof terminal === "number" ? terminal : subAgent
|
|
12970
|
+
const ended = typeof terminal === "number" ? terminal : isSubAgentActivelyRunning(subAgent) && typeof runningNowUnixMs === "number" ? Math.max(latest ?? started, runningNowUnixMs) : latest;
|
|
12917
12971
|
if (typeof ended !== "number" || ended <= started) {
|
|
12918
12972
|
return null;
|
|
12919
12973
|
}
|
|
@@ -15053,4 +15107,4 @@ export {
|
|
|
15053
15107
|
AgentConversationFlow,
|
|
15054
15108
|
useProjectedAgentConversation
|
|
15055
15109
|
};
|
|
15056
|
-
//# sourceMappingURL=chunk-
|
|
15110
|
+
//# sourceMappingURL=chunk-6OYLLPPN.js.map
|