@tutti-os/agent-gui 0.0.233 → 0.0.235

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +49 -0
  2. package/dist/{AgentRichTextReadonly-U3XUJYCW.js → AgentRichTextReadonly-CCELQPHE.js} +5 -5
  3. package/dist/agent-conversation/index.d.ts +17 -4
  4. package/dist/agent-conversation/index.js +13 -9
  5. package/dist/agent-conversation/index.js.map +1 -1
  6. package/dist/agent-gui.d.ts +19 -3
  7. package/dist/agent-gui.js +22 -16
  8. package/dist/agent-message-center/index.d.ts +1 -1
  9. package/dist/agent-message-center/index.js +10 -7
  10. package/dist/agent-message-center/index.js.map +1 -1
  11. package/dist/{agentGuiNodeTypes-DW7T--Y8.d.ts → agentGuiNodeTypes-Dgl7kQHA.d.ts} +2 -2
  12. package/dist/agents.d.ts +1 -1
  13. package/dist/app/renderer/agentactivity.css +17 -0
  14. package/dist/{chunk-M6WEFXPL.js → chunk-2MCNNB2P.js} +2 -24
  15. package/dist/chunk-2MCNNB2P.js.map +1 -0
  16. package/dist/{chunk-CQFT3MI5.js → chunk-3YYI6RXA.js} +7 -5
  17. package/dist/{chunk-CQFT3MI5.js.map → chunk-3YYI6RXA.js.map} +1 -1
  18. package/dist/{chunk-EDP4D42H.js → chunk-45KN5Z5F.js} +877 -871
  19. package/dist/chunk-45KN5Z5F.js.map +1 -0
  20. package/dist/{chunk-T57ZZWTC.js → chunk-4HAG3FOY.js} +2 -2
  21. package/dist/{chunk-ZBI6R46N.js → chunk-5DN5N2XS.js} +2 -2
  22. package/dist/{chunk-BCBB4HOV.js → chunk-634MNSI5.js} +2 -2
  23. package/dist/chunk-A4KKC324.js +4768 -0
  24. package/dist/chunk-A4KKC324.js.map +1 -0
  25. package/dist/chunk-ALAGL6VL.js +48 -0
  26. package/dist/chunk-ALAGL6VL.js.map +1 -0
  27. package/dist/{chunk-2STAUA73.js → chunk-AYTUAZE3.js} +5 -2
  28. package/dist/chunk-AYTUAZE3.js.map +1 -0
  29. package/dist/{chunk-SWO67UWQ.js → chunk-CZOZBUIM.js} +7 -7
  30. package/dist/{chunk-SWO67UWQ.js.map → chunk-CZOZBUIM.js.map} +1 -1
  31. package/dist/{chunk-2L2LVSOD.js → chunk-EHNPHZE4.js} +881 -5812
  32. package/dist/chunk-EHNPHZE4.js.map +1 -0
  33. package/dist/{chunk-N5356722.js → chunk-EKQ7UX2B.js} +13 -319
  34. package/dist/chunk-EKQ7UX2B.js.map +1 -0
  35. package/dist/{chunk-ZXEICU6J.js → chunk-KK7YXPTS.js} +3 -1
  36. package/dist/chunk-KK7YXPTS.js.map +1 -0
  37. package/dist/{chunk-WGCDSA7P.js → chunk-MBM7PJIF.js} +27 -506
  38. package/dist/chunk-MBM7PJIF.js.map +1 -0
  39. package/dist/chunk-RMC2MGL4.js +557 -0
  40. package/dist/chunk-RMC2MGL4.js.map +1 -0
  41. package/dist/{chunk-JA6XAKKE.js → chunk-TWF6JXPC.js} +2 -2
  42. package/dist/{chunk-7AYFKNLD.js → chunk-TWMV6YTX.js} +4 -4
  43. package/dist/chunk-VV3YIU5W.js +25 -0
  44. package/dist/chunk-VV3YIU5W.js.map +1 -0
  45. package/dist/{chunk-GLVENTN6.js → chunk-WXLO33YP.js} +2 -2
  46. package/dist/chunk-XWPHTXEM.js +529 -0
  47. package/dist/chunk-XWPHTXEM.js.map +1 -0
  48. package/dist/chunk-YEXRTXTE.js +315 -0
  49. package/dist/chunk-YEXRTXTE.js.map +1 -0
  50. package/dist/{chunk-WMJDOMG6.js → chunk-ZELGKLW5.js} +4 -4
  51. package/dist/composer-projection.d.ts +37 -0
  52. package/dist/composer-projection.js +21 -0
  53. package/dist/composer-projection.js.map +1 -0
  54. package/dist/context-mention-palette/index.js +9 -7
  55. package/dist/conversation-projection.d.ts +551 -0
  56. package/dist/conversation-projection.js +42 -0
  57. package/dist/conversation-projection.js.map +1 -0
  58. package/dist/conversation-rail-projection.js +3 -3
  59. package/dist/i18n/index.d.ts +2 -0
  60. package/dist/i18n/index.js +2 -2
  61. package/dist/index.d.ts +32 -13
  62. package/dist/index.js +22 -16
  63. package/dist/index.js.map +1 -1
  64. package/dist/mention-search.js +7 -5
  65. package/dist/{types-CHAMK2g7.d.ts → types-DtXXsISB.d.ts} +1 -1
  66. package/dist/workbench/contribution.js +4 -4
  67. package/dist/workbench/index.js +4 -4
  68. package/dist/workbench/sessionTitle.js +3 -3
  69. package/dist/workspace-agent-generated-files.d.ts +1 -12
  70. package/dist/workspaceAgentActivityListTypes-BUKNyMbh.d.ts +48 -0
  71. package/dist/{workspaceLinkActions-CzsbvGmC.d.ts → workspaceLinkActions-DxyzMy10.d.ts} +13 -12
  72. package/package.json +29 -15
  73. package/dist/chunk-2L2LVSOD.js.map +0 -1
  74. package/dist/chunk-2STAUA73.js.map +0 -1
  75. package/dist/chunk-EDP4D42H.js.map +0 -1
  76. package/dist/chunk-M6WEFXPL.js.map +0 -1
  77. package/dist/chunk-N5356722.js.map +0 -1
  78. package/dist/chunk-WGCDSA7P.js.map +0 -1
  79. package/dist/chunk-ZXEICU6J.js.map +0 -1
  80. /package/dist/{AgentRichTextReadonly-U3XUJYCW.js.map → AgentRichTextReadonly-CCELQPHE.js.map} +0 -0
  81. /package/dist/{chunk-T57ZZWTC.js.map → chunk-4HAG3FOY.js.map} +0 -0
  82. /package/dist/{chunk-ZBI6R46N.js.map → chunk-5DN5N2XS.js.map} +0 -0
  83. /package/dist/{chunk-BCBB4HOV.js.map → chunk-634MNSI5.js.map} +0 -0
  84. /package/dist/{chunk-JA6XAKKE.js.map → chunk-TWF6JXPC.js.map} +0 -0
  85. /package/dist/{chunk-7AYFKNLD.js.map → chunk-TWMV6YTX.js.map} +0 -0
  86. /package/dist/{chunk-GLVENTN6.js.map → chunk-WXLO33YP.js.map} +0 -0
  87. /package/dist/{chunk-WMJDOMG6.js.map → chunk-ZELGKLW5.js.map} +0 -0
@@ -0,0 +1,551 @@
1
+ import { AgentActivityMessageSemantics, AgentActivitySession, AgentActivityGoalControlAction, AgentActivityTurn, AgentActivitySnapshot, AgentActivityInteraction } from '@tutti-os/agent-activity-core';
2
+ import { W as WorkspaceAgentActivityCard, T as ToolCallStatusKind } from './workspaceAgentActivityListTypes-BUKNyMbh.js';
3
+
4
+ interface WorkspaceAgentActivityFileChange {
5
+ path: string;
6
+ change?: "added" | "modified" | "deleted" | "moved" | string;
7
+ tools?: string[];
8
+ }
9
+ interface WorkspaceAgentActivityFileChanges {
10
+ coverage?: string;
11
+ files?: WorkspaceAgentActivityFileChange[];
12
+ }
13
+ interface WorkspaceAgentActivityTimelineItem {
14
+ id: number;
15
+ workspaceId?: string;
16
+ agentSessionId: string;
17
+ seq?: number;
18
+ turnId?: string;
19
+ eventSource?: string;
20
+ eventId: string;
21
+ actorType: string;
22
+ actorId: string;
23
+ itemType: "message" | "call" | "event" | "error" | "lifecycle" | string;
24
+ role?: string;
25
+ callType?: "tool" | "skill" | "subagent" | "approval" | "workflow" | string;
26
+ callId?: string;
27
+ name?: string;
28
+ status?: string | null;
29
+ messageSemantics?: AgentActivityMessageSemantics;
30
+ content?: string;
31
+ payload?: Record<string, unknown> & {
32
+ content?: unknown;
33
+ text?: unknown;
34
+ fileChanges?: WorkspaceAgentActivityFileChanges;
35
+ };
36
+ occurredAtUnixMs?: number;
37
+ createdAtUnixMs?: number;
38
+ }
39
+
40
+ interface WorkspaceAgentSessionDetailMessage {
41
+ id: string;
42
+ body: string;
43
+ status?: string | null;
44
+ statusKind?: ToolCallStatusKind | null;
45
+ turnId?: string;
46
+ occurredAtUnixMs?: number | null;
47
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
48
+ visibleError?: {
49
+ code: string | null;
50
+ phase: string | null;
51
+ provider: string | null;
52
+ detail: string | null;
53
+ retryable: boolean | null;
54
+ } | null;
55
+ systemNotice?: {
56
+ noticeKind: string | null;
57
+ severity: string | null;
58
+ source?: string | null;
59
+ command?: AgentActivityMessageSemantics["noticeCommand"] | null;
60
+ commandStatus?: AgentActivityMessageSemantics["noticeCommandStatus"] | null;
61
+ title: string | null;
62
+ detail: string | null;
63
+ retryable: boolean | null;
64
+ } | null;
65
+ }
66
+ interface WorkspaceAgentSessionDetailThinking {
67
+ id: string;
68
+ body: string;
69
+ statusKind?: ToolCallStatusKind | null;
70
+ turnId?: string;
71
+ occurredAtUnixMs?: number | null;
72
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
73
+ }
74
+ interface WorkspaceAgentSessionDetailGoalControl {
75
+ id: string;
76
+ action: AgentActivityGoalControlAction;
77
+ body: string;
78
+ occurredAtUnixMs?: number | null;
79
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
80
+ }
81
+ interface WorkspaceAgentSessionDetailToolCall {
82
+ id: string;
83
+ name: string;
84
+ toolName: string | null;
85
+ callType: string | null;
86
+ status: string | null;
87
+ statusKind: ToolCallStatusKind | null;
88
+ summary: string;
89
+ payload: Record<string, unknown> | null;
90
+ turnId?: string;
91
+ compactSummary?: string | null;
92
+ occurredAtUnixMs?: number | null;
93
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
94
+ }
95
+ type WorkspaceAgentSessionDetailToolGroupEntry = {
96
+ kind: "thinking";
97
+ thinking: WorkspaceAgentSessionDetailThinking;
98
+ } | {
99
+ kind: "tool-call";
100
+ call: WorkspaceAgentSessionDetailToolCall;
101
+ };
102
+ type WorkspaceAgentSessionDetailAgentItem = {
103
+ kind: "message";
104
+ message: WorkspaceAgentSessionDetailMessage;
105
+ } | {
106
+ kind: "thinking";
107
+ thinking: WorkspaceAgentSessionDetailThinking;
108
+ } | {
109
+ kind: "tool-calls";
110
+ id: string;
111
+ toolCalls: WorkspaceAgentSessionDetailToolCall[];
112
+ toolCallCount: number;
113
+ hasFailedToolCall: boolean;
114
+ summary?: string | null;
115
+ groupEntries?: WorkspaceAgentSessionDetailToolGroupEntry[];
116
+ };
117
+ interface WorkspaceAgentSessionDetailTurn {
118
+ id: string;
119
+ userMessage: WorkspaceAgentSessionDetailMessage | null;
120
+ userMessages: WorkspaceAgentSessionDetailMessage[];
121
+ agentMessages: WorkspaceAgentSessionDetailMessage[];
122
+ toolCalls: WorkspaceAgentSessionDetailToolCall[];
123
+ toolCallCount: number;
124
+ hasFailedToolCall: boolean;
125
+ rawAgentItems?: WorkspaceAgentSessionDetailAgentItem[];
126
+ agentItems: WorkspaceAgentSessionDetailAgentItem[];
127
+ }
128
+ interface WorkspaceAgentSessionDetailViewModel {
129
+ activity: WorkspaceAgentActivityCard;
130
+ session: AgentActivitySession;
131
+ cwd: string;
132
+ workspaceRoot: string | null;
133
+ goalControls?: WorkspaceAgentSessionDetailGoalControl[];
134
+ turns: WorkspaceAgentSessionDetailTurn[];
135
+ sessionTurns?: readonly AgentActivityTurn[];
136
+ showProcessingIndicator?: boolean;
137
+ }
138
+
139
+ type AgentApprovalPurpose = "edit-files";
140
+
141
+ interface AgentApprovalOptionVM {
142
+ id: string;
143
+ label: string;
144
+ kind: string;
145
+ description?: string;
146
+ }
147
+ interface AgentApprovalItemVM {
148
+ kind: "approval";
149
+ id: string;
150
+ turnId: string;
151
+ requestId: string;
152
+ callId: string;
153
+ approvalPurpose?: AgentApprovalPurpose;
154
+ title: string;
155
+ toolName: string | null;
156
+ status: string | null;
157
+ input: Record<string, unknown> | null;
158
+ options: AgentApprovalOptionVM[];
159
+ output?: Record<string, unknown> | null;
160
+ occurredAtUnixMs: number | null;
161
+ }
162
+
163
+ interface AgentAskUserQuestionOptionVM {
164
+ label: string;
165
+ description: string;
166
+ }
167
+ interface AgentAskUserQuestionVM {
168
+ id: string;
169
+ header: string;
170
+ question: string;
171
+ options: AgentAskUserQuestionOptionVM[];
172
+ multiSelect: boolean;
173
+ answer?: string | string[] | null;
174
+ }
175
+ interface AgentAskUserQuestionItemVM {
176
+ kind: "ask-user";
177
+ id: string;
178
+ turnId: string;
179
+ requestId: string;
180
+ title: string;
181
+ status: string | null;
182
+ questions: AgentAskUserQuestionVM[];
183
+ occurredAtUnixMs: number | null;
184
+ }
185
+
186
+ interface AgentGeneratedImageRowVM {
187
+ kind: "generated-image";
188
+ id: string;
189
+ turnId: string;
190
+ sourceCallId: string;
191
+ uri: string;
192
+ mimeType: string | null;
193
+ prompt: string | null;
194
+ occurredAtUnixMs: number | null;
195
+ }
196
+
197
+ interface AgentGoalControlRowVM {
198
+ kind: "goal-control";
199
+ id: string;
200
+ turnId: null;
201
+ action: AgentActivityGoalControlAction;
202
+ body: string;
203
+ occurredAtUnixMs: number | null;
204
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
205
+ }
206
+
207
+ type AgentTranscriptPresentationKind = "content" | "specific-progress" | "turn-boundary";
208
+
209
+ interface AgentCollaborationUsageVM {
210
+ inputTokens: number;
211
+ outputTokens: number;
212
+ }
213
+ /**
214
+ * Typed projection of one durable "collaboration" timeline message (the
215
+ * daemon projects each collaboration run into the source session transcript
216
+ * with messageId `collab:<runId>`; status transitions update the same message
217
+ * in place). Pure data — rendering and adoption actions live in
218
+ * `AgentCollaborationRow`.
219
+ */
220
+ interface AgentCollaborationVM {
221
+ kind: "collaboration";
222
+ runId: string;
223
+ /** Session identity of the source transcript row, for adoption commands. */
224
+ workspaceId: string | null;
225
+ agentSessionId: string | null;
226
+ mode: "consult" | "fork" | "delegate" | "handoff" | (string & {});
227
+ status: "running" | "completed" | "failed" | "canceled" | (string & {});
228
+ triggerSource: "user" | "agent" | "policy" | (string & {});
229
+ triggerReason: string | null;
230
+ targetSessionId: string | null;
231
+ targetAgentTargetId: string | null;
232
+ modelPlanId: string | null;
233
+ /** Optional display name when the daemon payload carries it. */
234
+ modelPlanName: string | null;
235
+ model: string | null;
236
+ contextScope: string | null;
237
+ resultText: string | null;
238
+ failureReason: string | null;
239
+ durationMs: number | null;
240
+ usage: AgentCollaborationUsageVM | null;
241
+ adoption: "pending" | "adopted" | "rejected" | "not_applicable" | (string & {});
242
+ }
243
+
244
+ type AgentPlanModeKind = "enter" | "exit";
245
+ interface AgentPlanModeItemVM {
246
+ itemKind: "plan-mode";
247
+ id: string;
248
+ turnId: string;
249
+ requestId?: string;
250
+ kind: AgentPlanModeKind;
251
+ title: string;
252
+ plan?: string | null;
253
+ status: string | null;
254
+ filePath?: string | null;
255
+ options?: AgentApprovalOptionVM[];
256
+ keepPlanningOptionId?: string;
257
+ occurredAtUnixMs: number | null;
258
+ }
259
+
260
+ type AgentTaskSubAgentStatus = "running" | "completed" | "failed" | "canceled";
261
+ type AgentTaskSubAgentActivityKind = "message" | "reasoning" | "tool";
262
+ interface AgentTaskSubAgentActivityVM {
263
+ kind: AgentTaskSubAgentActivityKind;
264
+ text: string;
265
+ atUnixMs: number | null;
266
+ }
267
+ interface AgentTaskSubAgentVM {
268
+ childSessionId: string;
269
+ parentToolCallId: string;
270
+ status: AgentTaskSubAgentStatus;
271
+ name: string | null;
272
+ task: string | null;
273
+ laneIndex: number;
274
+ laneCount: number;
275
+ latestActivity: string | null;
276
+ latestActivityKind: AgentTaskSubAgentActivityKind | null;
277
+ activityLog: readonly AgentTaskSubAgentActivityVM[];
278
+ activityOmittedCount: number;
279
+ queued?: boolean;
280
+ failureDetail: string | null;
281
+ startedAtUnixMs: number | null;
282
+ latestActivityAtUnixMs: number | null;
283
+ terminalAtUnixMs: number | null;
284
+ childSessions: readonly AgentTaskSubAgentVM[];
285
+ }
286
+ interface AgentTaskStepVM {
287
+ id: string;
288
+ turnId: string;
289
+ name: string;
290
+ toolName: string | null;
291
+ status: string | null;
292
+ summary: string;
293
+ payload: Record<string, unknown> | null;
294
+ tool: AgentToolCallVM | null;
295
+ occurredAtUnixMs: number | null;
296
+ }
297
+ interface AgentTaskItemVM {
298
+ kind: "task";
299
+ id: string;
300
+ turnId: string;
301
+ title: string;
302
+ status: string | null;
303
+ prompt?: string | null;
304
+ delegateSessionId?: string | null;
305
+ steps: AgentTaskStepVM[];
306
+ subAgents?: AgentTaskSubAgentVM[];
307
+ result?: string | null;
308
+ resultMarkdown?: string | null;
309
+ durationMs?: number | null;
310
+ occurredAtUnixMs: number | null;
311
+ }
312
+
313
+ type AgentToolRendererKind = "default" | "approval" | "plan-enter" | "plan-exit" | "ask-user" | "task" | "read" | "write" | "edit" | "bash" | "search" | "web-search" | "web-fetch" | "image-generation" | "todo-write" | "tool-search" | "skill" | "mcp";
314
+ interface AgentToolCallVM {
315
+ kind: "tool-call";
316
+ id: string;
317
+ turnId: string;
318
+ name: string;
319
+ toolName: string | null;
320
+ callType: string | null;
321
+ status: string | null;
322
+ statusKind: ToolCallStatusKind | null;
323
+ summary: string;
324
+ compactSummary: string | null;
325
+ payload: Record<string, unknown> | null;
326
+ toolState: Record<string, unknown> | null;
327
+ input: Record<string, unknown> | null;
328
+ output: Record<string, unknown> | null;
329
+ error: Record<string, unknown> | null;
330
+ metadata: Record<string, unknown> | null;
331
+ content: unknown[] | null;
332
+ locations: unknown[] | null;
333
+ rendererKind: AgentToolRendererKind;
334
+ approval: AgentApprovalItemVM | null;
335
+ planMode: AgentPlanModeItemVM | null;
336
+ askUserQuestion: AgentAskUserQuestionItemVM | null;
337
+ task: AgentTaskItemVM | null;
338
+ occurredAtUnixMs: number | null;
339
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
340
+ }
341
+
342
+ type AgentToolGroupEntryVM = {
343
+ kind: "thinking";
344
+ thinking: AgentThinkingContentVM;
345
+ } | {
346
+ kind: "tool-call";
347
+ call: AgentToolCallVM;
348
+ };
349
+ interface AgentToolGroupRowVM {
350
+ kind: "tool-group";
351
+ id: string;
352
+ expansionKey?: string;
353
+ turnId: string;
354
+ grouped: boolean;
355
+ calls: AgentToolCallVM[];
356
+ summary?: string | null;
357
+ entries: AgentToolGroupEntryVM[];
358
+ occurredAtUnixMs: number | null;
359
+ }
360
+
361
+ interface AgentMessageContentVM {
362
+ kind: "message-content";
363
+ id: string;
364
+ turnId: string;
365
+ body: string;
366
+ presentationKind: AgentTranscriptPresentationKind;
367
+ copyText?: string | null;
368
+ statusKind?: ToolCallStatusKind | null;
369
+ contentKind?: "text" | "image-grid" | "plan" | "collaboration";
370
+ isTurnFinalText?: true;
371
+ /** Typed payload for `contentKind: "collaboration"` rows. */
372
+ collaboration?: AgentCollaborationVM | null;
373
+ images?: AgentMessageImageVM[];
374
+ occurredAtUnixMs: number | null;
375
+ visibleError?: {
376
+ code: string | null;
377
+ phase: string | null;
378
+ provider: string | null;
379
+ detail: string | null;
380
+ retryable: boolean | null;
381
+ } | null;
382
+ systemNotice?: {
383
+ noticeKind: string | null;
384
+ severity: string | null;
385
+ source?: string | null;
386
+ command?: AgentActivityMessageSemantics["noticeCommand"] | null;
387
+ commandStatus?: AgentActivityMessageSemantics["noticeCommandStatus"] | null;
388
+ title: string | null;
389
+ detail: string | null;
390
+ retryable: boolean | null;
391
+ } | null;
392
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
393
+ }
394
+ interface AgentMessageImageVM {
395
+ id: string;
396
+ workspaceId?: string | null;
397
+ agentSessionId: string;
398
+ attachmentId?: string | null;
399
+ mimeType: string;
400
+ name?: string | null;
401
+ data?: string | null;
402
+ url?: string | null;
403
+ path?: string | null;
404
+ }
405
+ interface AgentThinkingContentVM {
406
+ kind: "thinking-content";
407
+ id: string;
408
+ turnId: string;
409
+ body: string;
410
+ statusKind?: ToolCallStatusKind | null;
411
+ occurredAtUnixMs: number | null;
412
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
413
+ }
414
+ interface AgentMessageRowVM {
415
+ kind: "message";
416
+ id: string;
417
+ turnId: string;
418
+ speaker: "user" | "assistant";
419
+ messages: AgentMessageContentVM[];
420
+ thinking: AgentThinkingContentVM[];
421
+ /**
422
+ * Tool-group rows that happened right before this message and are rendered
423
+ * inside this message's block (under the participant header, above the
424
+ * content) instead of as standalone transcript rows. Populated only for the
425
+ * participant-header presentation (e.g. the Agent board session detail).
426
+ */
427
+ leadingToolRows?: AgentToolGroupRowVM[];
428
+ occurredAtUnixMs: number | null;
429
+ }
430
+
431
+ interface AgentProcessingRowVM {
432
+ kind: "processing";
433
+ id: string;
434
+ turnId: string | null;
435
+ label?: string | null;
436
+ occurredAtUnixMs: number | null;
437
+ }
438
+
439
+ interface AgentTurnSummaryFileVM {
440
+ label: string;
441
+ path: string;
442
+ fileName: string;
443
+ directory: string | null;
444
+ changeType: "modified" | "created" | "deleted";
445
+ toolName: string | null;
446
+ messageId: string;
447
+ unifiedDiff?: string | null;
448
+ oldString?: string | null;
449
+ newString?: string | null;
450
+ content?: string | null;
451
+ occurredAtUnixMs: number | null;
452
+ }
453
+ interface AgentTurnSummaryPatchChangeVM {
454
+ path: string;
455
+ changeType: "modified" | "created" | "deleted";
456
+ unifiedDiff?: string | null;
457
+ oldString?: string | null;
458
+ newString?: string | null;
459
+ content?: string | null;
460
+ }
461
+ interface AgentTurnSummaryPatchBatchVM {
462
+ cwd: string | null;
463
+ toolCallId: string;
464
+ changes: AgentTurnSummaryPatchChangeVM[];
465
+ }
466
+ interface AgentTurnSummaryRowVM {
467
+ kind: "turn-summary";
468
+ id: string;
469
+ turnId: string;
470
+ files: AgentTurnSummaryFileVM[];
471
+ patchBatches?: AgentTurnSummaryPatchBatchVM[];
472
+ fileCount: number;
473
+ modifiedCount: number;
474
+ createdCount: number;
475
+ occurredAtUnixMs: number | null;
476
+ }
477
+
478
+ type AgentTranscriptRowVM = AgentGeneratedImageRowVM | AgentGoalControlRowVM | AgentMessageRowVM | AgentToolGroupRowVM | AgentTurnSummaryRowVM | AgentProcessingRowVM;
479
+
480
+ type AgentConversationPromptVM = AgentApprovalItemVM | {
481
+ kind: "ask-user";
482
+ requestId: string;
483
+ title: string;
484
+ questions: AgentAskUserQuestionVM[];
485
+ } | {
486
+ kind: "exit-plan";
487
+ requestId: string;
488
+ title: string;
489
+ options: AgentApprovalOptionVM[];
490
+ keepPlanningOptionId?: string;
491
+ } | {
492
+ kind: "plan-implementation";
493
+ requestId: string;
494
+ title: string;
495
+ };
496
+ interface AgentConversationVM {
497
+ activity: WorkspaceAgentActivityCard;
498
+ workspaceRoot: string | null;
499
+ sourceDetail: WorkspaceAgentSessionDetailViewModel;
500
+ rows: AgentTranscriptRowVM[];
501
+ }
502
+
503
+ interface AgentConversationProjectionOptions {
504
+ avoidGroupingEdits?: boolean;
505
+ }
506
+ declare function reconcileProjectedAgentConversationVM(previous: AgentConversationVM | null | undefined, next: AgentConversationVM): AgentConversationVM;
507
+
508
+ interface ProjectAgentActivitySessionConversationInput {
509
+ activitySnapshot: AgentActivitySnapshot;
510
+ agentSessionId: string;
511
+ sessionTurns?: readonly AgentActivityTurn[];
512
+ workspaceRoot?: string | null;
513
+ }
514
+ declare function projectAgentActivitySessionToConversationVM({ activitySnapshot, agentSessionId, sessionTurns, workspaceRoot }: ProjectAgentActivitySessionConversationInput): AgentConversationVM | null;
515
+
516
+ type WorkspaceLinkActionSource = "agent-markdown" | "agent-file-change" | string;
517
+ interface OpenWorkspaceUrlLinkAction {
518
+ type: "open-url";
519
+ url: string;
520
+ source: WorkspaceLinkActionSource;
521
+ }
522
+ interface OpenAgentSessionLinkAction {
523
+ type: "open-agent-session";
524
+ workspaceId: string;
525
+ agentSessionId: string;
526
+ agentTargetId?: string | null;
527
+ source: WorkspaceLinkActionSource;
528
+ }
529
+
530
+ type AgentConversationNavigationAction = OpenAgentSessionLinkAction | OpenWorkspaceUrlLinkAction;
531
+ /**
532
+ * Cross-renderer baseline for conversation links.
533
+ *
534
+ * Workspace files, local assets, apps, issues, and custom mentions remain host
535
+ * capabilities. Alternate renderers can share URL and Session navigation
536
+ * without importing those host policies.
537
+ */
538
+ declare function resolveAgentConversationNavigationAction({ href, source }: {
539
+ href: string;
540
+ source: WorkspaceLinkActionSource;
541
+ }): AgentConversationNavigationAction | null;
542
+
543
+ type ApprovalPrompt = Extract<AgentConversationPromptVM, {
544
+ kind: "approval";
545
+ }>;
546
+ type InteractivePrompt = Exclude<AgentConversationPromptVM, ApprovalPrompt | {
547
+ kind: "plan-implementation";
548
+ }>;
549
+ declare function projectAgentConversationPromptFromInteraction(interaction: AgentActivityInteraction): ApprovalPrompt | InteractivePrompt | null;
550
+
551
+ export { type AgentConversationNavigationAction, type AgentConversationProjectionOptions, type AgentConversationPromptVM, type AgentConversationVM, type ProjectAgentActivitySessionConversationInput, projectAgentActivitySessionToConversationVM, projectAgentConversationPromptFromInteraction, reconcileProjectedAgentConversationVM, resolveAgentConversationNavigationAction };
@@ -0,0 +1,42 @@
1
+ import {
2
+ projectAgentActivitySessionToConversationVM,
3
+ projectAgentConversationPromptFromInteraction
4
+ } from "./chunk-RMC2MGL4.js";
5
+ import {
6
+ reconcileProjectedAgentConversationVM
7
+ } from "./chunk-A4KKC324.js";
8
+ import {
9
+ resolveAgentSessionMentionLinkAction,
10
+ resolveWorkspaceUrlLinkAction
11
+ } from "./chunk-XWPHTXEM.js";
12
+ import "./chunk-YEXRTXTE.js";
13
+ import "./chunk-VMPA46ET.js";
14
+ import "./chunk-YMXYBG7U.js";
15
+ import "./chunk-XJ34OIEQ.js";
16
+ import "./chunk-JDVP33S5.js";
17
+ import "./chunk-VV3YIU5W.js";
18
+ import "./chunk-F5UR6EJG.js";
19
+ import "./chunk-WXLO33YP.js";
20
+ import "./chunk-MIJXEELH.js";
21
+ import "./chunk-KK7YXPTS.js";
22
+ import "./chunk-FGLQZ6I4.js";
23
+ import "./chunk-O433KXLK.js";
24
+
25
+ // shared/agentConversation/actions/agentConversationNavigationActions.ts
26
+ function resolveAgentConversationNavigationAction({
27
+ href,
28
+ source
29
+ }) {
30
+ const mention = resolveAgentSessionMentionLinkAction({ href, source });
31
+ if (mention) {
32
+ return mention;
33
+ }
34
+ return resolveWorkspaceUrlLinkAction({ url: href, source });
35
+ }
36
+ export {
37
+ projectAgentActivitySessionToConversationVM,
38
+ projectAgentConversationPromptFromInteraction,
39
+ reconcileProjectedAgentConversationVM,
40
+ resolveAgentConversationNavigationAction
41
+ };
42
+ //# sourceMappingURL=conversation-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../shared/agentConversation/actions/agentConversationNavigationActions.ts"],"sourcesContent":["import {\n resolveAgentSessionMentionLinkAction,\n resolveWorkspaceUrlLinkAction,\n type OpenAgentSessionLinkAction,\n type OpenWorkspaceUrlLinkAction,\n type WorkspaceLinkActionSource\n} from \"../../../actions/portableWorkspaceNavigationActions\";\n\nexport type AgentConversationNavigationAction =\n | OpenAgentSessionLinkAction\n | OpenWorkspaceUrlLinkAction;\n\n/**\n * Cross-renderer baseline for conversation links.\n *\n * Workspace files, local assets, apps, issues, and custom mentions remain host\n * capabilities. Alternate renderers can share URL and Session navigation\n * without importing those host policies.\n */\nexport function resolveAgentConversationNavigationAction({\n href,\n source\n}: {\n href: string;\n source: WorkspaceLinkActionSource;\n}): AgentConversationNavigationAction | null {\n const mention = resolveAgentSessionMentionLinkAction({ href, source });\n if (mention) {\n return mention;\n }\n return resolveWorkspaceUrlLinkAction({ url: href, source });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,yCAAyC;AAAA,EACvD;AAAA,EACA;AACF,GAG6C;AAC3C,QAAM,UAAU,qCAAqC,EAAE,MAAM,OAAO,CAAC;AACrE,MAAI,SAAS;AACX,WAAO;AAAA,EACT;AACA,SAAO,8BAA8B,EAAE,KAAK,MAAM,OAAO,CAAC;AAC5D;","names":[]}
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  projectCanonicalAgentGUIConversationSummaries,
3
3
  projectCanonicalAgentGUIConversationSummariesFromState
4
- } from "./chunk-ZBI6R46N.js";
5
- import "./chunk-JA6XAKKE.js";
4
+ } from "./chunk-5DN5N2XS.js";
5
+ import "./chunk-TWF6JXPC.js";
6
6
  import "./chunk-YMXYBG7U.js";
7
7
  import "./chunk-MIJXEELH.js";
8
- import "./chunk-ZXEICU6J.js";
8
+ import "./chunk-KK7YXPTS.js";
9
9
  import "./chunk-O433KXLK.js";
10
10
  export {
11
11
  projectCanonicalAgentGUIConversationSummaries,
@@ -840,6 +840,7 @@ declare const agentGuiI18nResources: {
840
840
  readonly collapseTurnWork: "Collapse task details";
841
841
  readonly agentTargetRequired: "Select an available agent target before starting a session.";
842
842
  readonly sessionActivationFailed: "The agent session could not be started.";
843
+ readonly sessionNoLongerAvailable: "The previous agent session is no longer available.";
843
844
  readonly promptImagesUnsupported: "This agent does not support image input with the current model.";
844
845
  readonly conversationFilterCodex: "Codex";
845
846
  readonly conversationFilterClaudeCode: "Claude Code";
@@ -3627,6 +3628,7 @@ declare const agentGuiI18nResources: {
3627
3628
  readonly collapseTurnWork: "收起任务详情";
3628
3629
  readonly agentTargetRequired: "请先选择可用的 Agent 目标。";
3629
3630
  readonly sessionActivationFailed: "Agent 会话启动失败。";
3631
+ readonly sessionNoLongerAvailable: "之前的 Agent 会话已不可用";
3630
3632
  readonly promptImagesUnsupported: "当前模型不支持图片输入。";
3631
3633
  readonly conversationFilterCodex: "Codex";
3632
3634
  readonly conversationFilterClaudeCode: "Claude Code";
@@ -6,8 +6,8 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-GLVENTN6.js";
10
- import "../chunk-ZXEICU6J.js";
9
+ } from "../chunk-WXLO33YP.js";
10
+ import "../chunk-KK7YXPTS.js";
11
11
  export {
12
12
  AgentGuiI18nProvider,
13
13
  agentGuiI18nModule,