@tutti-os/agent-gui 0.0.132 → 0.0.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.
Files changed (96) hide show
  1. package/README.md +21 -4
  2. package/dist/{AgentRichTextReadonly-PEKCMRPE.js → AgentRichTextReadonly-HCKTNAYO.js} +7 -6
  3. package/dist/agent-conversation/index.d.ts +4 -6
  4. package/dist/agent-conversation/index.js +10 -10
  5. package/dist/agent-env/index.d.ts +10 -27
  6. package/dist/agent-env/index.js +14 -290
  7. package/dist/agent-env/index.js.map +1 -1
  8. package/dist/agent-gui.d.ts +1118 -20
  9. package/dist/agent-gui.js +18 -18
  10. package/dist/agent-message-center/index.d.ts +42 -7
  11. package/dist/agent-message-center/index.js +7 -7
  12. package/dist/{agentConversationVM-BD0-gg6C.d.ts → agentConversationVM-DWEy7jzx.d.ts} +41 -2
  13. package/dist/{agentFileMentionContracts-CWAeuL7S.d.ts → agentFileMentionContracts-B0yQizXB.d.ts} +5 -0
  14. package/dist/{agentGuiNodeTypes-5TL1hyCN.d.ts → agentGuiNodeTypes-DV7KvZRe.d.ts} +10 -26
  15. package/dist/agents.d.ts +1 -1
  16. package/dist/agents.js +1 -1
  17. package/dist/app/renderer/agentactivity.css +7 -0
  18. package/dist/app/renderer/assets/icons/@-lined.svg +1 -8
  19. package/dist/{chunk-PQJXWXTS.js → chunk-25VMCMAQ.js} +4 -4
  20. package/dist/{chunk-T2NICA5D.js → chunk-5WOCGIXJ.js} +7 -1
  21. package/dist/chunk-5WOCGIXJ.js.map +1 -0
  22. package/dist/chunk-DLCZJKCA.js +1 -0
  23. package/dist/chunk-DLCZJKCA.js.map +1 -0
  24. package/dist/{chunk-QQRTUHCH.js → chunk-EU7DCT4F.js} +2 -2
  25. package/dist/chunk-FM42UN2J.js +462 -0
  26. package/dist/chunk-FM42UN2J.js.map +1 -0
  27. package/dist/{chunk-SZOTLVH6.js → chunk-GIYGO2PB.js} +2 -2
  28. package/dist/{chunk-GCQYN7BR.js → chunk-IN3HXYOO.js} +4 -4
  29. package/dist/{chunk-YWHGCKMT.js → chunk-IYZ4GOSN.js} +10 -10
  30. package/dist/chunk-IYZ4GOSN.js.map +1 -0
  31. package/dist/{chunk-JZS4SWFJ.js → chunk-JI5KND3K.js} +60 -56
  32. package/dist/chunk-JI5KND3K.js.map +1 -0
  33. package/dist/{chunk-J4TTEMRW.js → chunk-KWGMK4IZ.js} +4 -4
  34. package/dist/{chunk-NE6H7S5Z.js → chunk-OFJNIQWR.js} +2 -2
  35. package/dist/{chunk-NE6H7S5Z.js.map → chunk-OFJNIQWR.js.map} +1 -1
  36. package/dist/{chunk-UARZZJJB.js → chunk-OI6BYC7P.js} +4 -4
  37. package/dist/{chunk-OBWM2RFE.js → chunk-QPEO4OQS.js} +308 -8
  38. package/dist/chunk-QPEO4OQS.js.map +1 -0
  39. package/dist/{chunk-XNE2ROCP.js → chunk-UA75CGAG.js} +3 -3
  40. package/dist/{chunk-PVTAFUDS.js → chunk-VGS7S7YT.js} +2 -2
  41. package/dist/{chunk-OQR3HXPF.js → chunk-VUNVGEQG.js} +7 -1
  42. package/dist/chunk-VUNVGEQG.js.map +1 -0
  43. package/dist/{chunk-G75CPIVV.js → chunk-Y5HD6XHP.js} +1040 -797
  44. package/dist/chunk-Y5HD6XHP.js.map +1 -0
  45. package/dist/{chunk-KPMQGPYU.js → chunk-ZVYUTXQJ.js} +1 -1
  46. package/dist/chunk-ZVYUTXQJ.js.map +1 -0
  47. package/dist/context-mention-palette/index.d.ts +1 -1
  48. package/dist/context-mention-palette/index.js +8 -7
  49. package/dist/{contribution-yc4CGJmy.d.ts → contribution-CDdwTppn.d.ts} +54 -1
  50. package/dist/custom-mention.d.ts +4 -2
  51. package/dist/custom-mention.js +1 -0
  52. package/dist/i18n/index.d.ts +17 -6
  53. package/dist/i18n/index.js +2 -2
  54. package/dist/index.d.ts +8026 -33
  55. package/dist/index.js +21 -21
  56. package/dist/index.js.map +1 -1
  57. package/dist/mention-search.d.ts +1 -1
  58. package/dist/mention-search.js +6 -5
  59. package/dist/runtime-Dwf44VKc.d.ts +7 -0
  60. package/dist/{types-BicfRVrV.d.ts → types-ee3zJ6Cc.d.ts} +6 -5
  61. package/dist/workbench/browser-element-context/index.d.ts +37 -0
  62. package/dist/workbench/browser-element-context/index.js +750 -0
  63. package/dist/workbench/browser-element-context/index.js.map +1 -0
  64. package/dist/workbench/contribution.d.ts +1 -2
  65. package/dist/workbench/contribution.js +4 -4
  66. package/dist/workbench/index.d.ts +1 -2
  67. package/dist/workbench/index.js +4 -4
  68. package/dist/workbench/sessionTitle.js +2 -2
  69. package/dist/workbench/tool-sidebar/index.d.ts +189 -0
  70. package/dist/workbench/tool-sidebar/index.js +1492 -0
  71. package/dist/workbench/tool-sidebar/index.js.map +1 -0
  72. package/dist/workspace-agent-generated-files.d.ts +12 -1
  73. package/package.json +28 -13
  74. package/dist/AgentGUI-DxypmD7b.d.ts +0 -1080
  75. package/dist/agentPlanPromptDispatch-C7cCMjve.d.ts +0 -37
  76. package/dist/chunk-G75CPIVV.js.map +0 -1
  77. package/dist/chunk-JZS4SWFJ.js.map +0 -1
  78. package/dist/chunk-KPMQGPYU.js.map +0 -1
  79. package/dist/chunk-OBWM2RFE.js.map +0 -1
  80. package/dist/chunk-OQR3HXPF.js.map +0 -1
  81. package/dist/chunk-T2NICA5D.js.map +0 -1
  82. package/dist/chunk-VMQNG2KI.js +0 -178
  83. package/dist/chunk-VMQNG2KI.js.map +0 -1
  84. package/dist/chunk-YWHGCKMT.js.map +0 -1
  85. package/dist/pastedTextKinds-D-XuInaS.d.ts +0 -4
  86. package/dist/runtime-BBNdWgDU.d.ts +0 -10
  87. package/dist/workspaceAgentActivityListTypes-DZfS_HgG.d.ts +0 -48
  88. /package/dist/{AgentRichTextReadonly-PEKCMRPE.js.map → AgentRichTextReadonly-HCKTNAYO.js.map} +0 -0
  89. /package/dist/{chunk-PQJXWXTS.js.map → chunk-25VMCMAQ.js.map} +0 -0
  90. /package/dist/{chunk-QQRTUHCH.js.map → chunk-EU7DCT4F.js.map} +0 -0
  91. /package/dist/{chunk-SZOTLVH6.js.map → chunk-GIYGO2PB.js.map} +0 -0
  92. /package/dist/{chunk-GCQYN7BR.js.map → chunk-IN3HXYOO.js.map} +0 -0
  93. /package/dist/{chunk-J4TTEMRW.js.map → chunk-KWGMK4IZ.js.map} +0 -0
  94. /package/dist/{chunk-UARZZJJB.js.map → chunk-OI6BYC7P.js.map} +0 -0
  95. /package/dist/{chunk-XNE2ROCP.js.map → chunk-UA75CGAG.js.map} +0 -0
  96. /package/dist/{chunk-PVTAFUDS.js.map → chunk-VGS7S7YT.js.map} +0 -0
package/dist/agent-gui.js CHANGED
@@ -1,41 +1,41 @@
1
1
  import {
2
2
  AgentGUI
3
- } from "./chunk-G75CPIVV.js";
3
+ } from "./chunk-Y5HD6XHP.js";
4
4
  import "./chunk-A4WCTHWS.js";
5
- import "./chunk-GCQYN7BR.js";
5
+ import "./chunk-IN3HXYOO.js";
6
6
  import "./chunk-TUWQV2MC.js";
7
7
  import "./chunk-MHOYBRCY.js";
8
- import "./chunk-PVTAFUDS.js";
8
+ import "./chunk-VGS7S7YT.js";
9
9
  import "./chunk-5HIF53K5.js";
10
10
  import "./chunk-R2ZADXRB.js";
11
- import "./chunk-JZS4SWFJ.js";
12
- import "./chunk-XNE2ROCP.js";
13
- import "./chunk-VMQNG2KI.js";
11
+ import "./chunk-JI5KND3K.js";
12
+ import "./chunk-UA75CGAG.js";
13
+ import "./chunk-FM42UN2J.js";
14
14
  import "./chunk-UP3ZDYTN.js";
15
- import "./chunk-UARZZJJB.js";
16
- import "./chunk-T2NICA5D.js";
17
- import "./chunk-FGLQZ6I4.js";
15
+ import "./chunk-OI6BYC7P.js";
16
+ import "./chunk-5WOCGIXJ.js";
18
17
  import "./chunk-DXT4W2SU.js";
19
- import "./chunk-J4TTEMRW.js";
18
+ import "./chunk-KWGMK4IZ.js";
20
19
  import "./chunk-USIFGHT3.js";
21
20
  import "./chunk-XJ34OIEQ.js";
22
21
  import "./chunk-R7AXDQCA.js";
23
- import "./chunk-OBWM2RFE.js";
22
+ import "./chunk-QPEO4OQS.js";
24
23
  import "./chunk-5QPOMKMQ.js";
25
24
  import "./chunk-RMQREVJY.js";
26
- import "./chunk-PQJXWXTS.js";
25
+ import "./chunk-FGLQZ6I4.js";
26
+ import "./chunk-25VMCMAQ.js";
27
27
  import "./chunk-2RQM7PJN.js";
28
- import "./chunk-YWHGCKMT.js";
29
- import "./chunk-KPMQGPYU.js";
30
- import "./chunk-QQRTUHCH.js";
28
+ import "./chunk-IYZ4GOSN.js";
29
+ import "./chunk-ZVYUTXQJ.js";
30
+ import "./chunk-EU7DCT4F.js";
31
31
  import "./chunk-YMXYBG7U.js";
32
- import "./chunk-NE6H7S5Z.js";
32
+ import "./chunk-OFJNIQWR.js";
33
33
  import "./chunk-F5UR6EJG.js";
34
34
  import "./chunk-EDNJMG5T.js";
35
- import "./chunk-SZOTLVH6.js";
35
+ import "./chunk-GIYGO2PB.js";
36
36
  import "./chunk-PJP5BUU6.js";
37
37
  import "./chunk-7KVZPJ3O.js";
38
- import "./chunk-OQR3HXPF.js";
38
+ import "./chunk-VUNVGEQG.js";
39
39
  import "./chunk-MIJXEELH.js";
40
40
  import "./chunk-D2JUDUYY.js";
41
41
  import "./chunk-6CUELYIF.js";
@@ -1,15 +1,18 @@
1
1
  import * as react from 'react';
2
2
  import { JSX, ReactNode, HTMLAttributes } from 'react';
3
3
  import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
4
- import { A as AgentGuiI18nLocale, T as TranslateFn } from '../runtime-BBNdWgDU.js';
5
- import { b as AgentConversationPromptVM, e as WorkspaceLinkAction } from '../agentConversationVM-BD0-gg6C.js';
6
- import { AgentActivityNeedsAttentionItem, WorkspaceAgentConsumerSession, AgentActivitySnapshot, AgentSessionEngineState } from '@tutti-os/agent-activity-core';
4
+ import { A as AgentGuiI18nLocale, T as TranslateFn } from '../runtime-Dwf44VKc.js';
5
+ import { d as WorkspaceAgentActivityStatus, b as AgentConversationPromptVM, g as WorkspaceLinkAction } from '../agentConversationVM-DWEy7jzx.js';
6
+ import { AgentActivityNeedsAttentionItem, AgentSessionEngine, WorkspaceAgentConsumerSession, AgentActivitySnapshot, AgentSessionEngineState } from '@tutti-os/agent-activity-core';
7
7
  export { WorkspaceAgentConsumerCounts, WorkspaceAgentConsumerSession, selectWorkspaceAgentConsumerCounts, selectWorkspaceAgentConsumerSession, selectWorkspaceAgentConsumerSessions } from '@tutti-os/agent-activity-core';
8
- import { a as WorkspaceAgentActivityStatus } from '../workspaceAgentActivityListTypes-DZfS_HgG.js';
9
- export { P as PLAN_IMPLEMENTATION_ACTION_IMPLEMENT, a as PLAN_IMPLEMENTATION_PROMPT, d as dispatchAgentPlanPromptAction, u as useEngineSelector } from '../agentPlanPromptDispatch-C7cCMjve.js';
10
- import { useTranslation } from '../i18n/index.js';
11
8
  import '@tutti-os/workspace-issue-manager/core';
12
9
 
10
+ declare function useTranslation(): {
11
+ i18n: I18nRuntime<string>;
12
+ locale: AgentGuiI18nLocale;
13
+ t: TranslateFn;
14
+ };
15
+
13
16
  type WorkspaceAgentMessageCenterDigestPrimaryKind = "input-required" | "error" | "outcome" | "progress" | "summary";
14
17
  interface WorkspaceAgentMessageCenterDigestPrimary {
15
18
  kind: WorkspaceAgentMessageCenterDigestPrimaryKind;
@@ -427,6 +430,38 @@ declare function approvalOptionDisplayLabel(option: {
427
430
  feedback?: boolean;
428
431
  }): string;
429
432
 
433
+ declare const PLAN_IMPLEMENTATION_PROMPT = "Implement the plan.";
434
+ declare const PLAN_IMPLEMENTATION_ACTION_IMPLEMENT = "implement";
435
+ declare const PLAN_IMPLEMENTATION_ACTION_FEEDBACK = "feedback";
436
+ declare const PLAN_IMPLEMENTATION_ACTION_SKIP = "skip";
437
+
438
+ type AgentPlanPromptAction = typeof PLAN_IMPLEMENTATION_ACTION_IMPLEMENT | typeof PLAN_IMPLEMENTATION_ACTION_FEEDBACK | typeof PLAN_IMPLEMENTATION_ACTION_SKIP;
439
+ declare function dispatchAgentPlanPromptAction(input: {
440
+ action: AgentPlanPromptAction;
441
+ agentSessionId: string;
442
+ engine: AgentSessionEngine;
443
+ feedbackText?: string;
444
+ nowUnixMs?: () => number;
445
+ requestId: string;
446
+ workspaceId: string;
447
+ }): boolean;
448
+
449
+ /**
450
+ * Structural surface the binding needs from an engine instance. Matches
451
+ * AgentSessionEngine from @tutti-os/agent-activity-core, but stays structural
452
+ * so focused tests and future engine slices can bind without the full engine.
453
+ *
454
+ * Contract: `subscribe` and `getSnapshot` must be stable, this-free function
455
+ * references for the lifetime of the instance (the engine factory returns
456
+ * closures, satisfying this by construction). A fresh `subscribe` identity per
457
+ * render would force useSyncExternalStore to resubscribe on every render.
458
+ */
459
+ interface EngineStateStore<TState> {
460
+ getSnapshot(): TState;
461
+ subscribe(listener: (state: TState) => void): () => void;
462
+ }
463
+ declare function useEngineSelector<TState, TSelected>(engine: EngineStateStore<TState>, selector: (state: TState) => TSelected, isEqual?: (a: TSelected, b: TSelected) => boolean): TSelected;
464
+
430
465
  /**
431
466
  * Canonical Message Center entrypoint. Session/turn/interaction truth comes
432
467
  * directly from the engine. Durable messages are presentation input only:
@@ -454,4 +489,4 @@ interface MessageCenterFilterPreferences {
454
489
  declare function readMessageCenterFilterPreferences(): MessageCenterFilterPreferences;
455
490
  declare function writeMessageCenterFilterPreferences(preferences: MessageCenterFilterPreferences): void;
456
491
 
457
- export { AgentInteractivePromptSurface, AgentVerticalScrollArea, type BuildWorkspaceAgentMessageCenterOptions, type MessageCenterAgentUserStack, type MessageCenterFilterPreferences, type MessageCenterGroup, type MessageCenterGroupBy, MessageCenterGroupHeading, MessageCenterIdentityAvatarMark, MessageCenterIdentityAvatarStack, MessageCenterIdentityLabel, MessageCenterOpenChatButton, type MessageCenterProviderOption, type MessageCenterStatusFilter, type MessageCenterStatusOption, type MessageCenterStatusTone, MessageCenterSummary, type MessageCenterTranslate, type PromptToolDetail, type WorkspaceAgentMessageCenterAgentPresentation, WorkspaceAgentMessageCenterAttentionDeck, type WorkspaceAgentMessageCenterAttentionDeckProps, type WorkspaceAgentMessageCenterAttentionDeckRenderCardInput, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterInteractionTarget, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelPresentation, type WorkspaceAgentMessageCenterPanelProps, type WorkspaceAgentMessageCenterPresentation, type WorkspaceAgentMessageCenterPromptStatus, WorkspaceAgentMessageCenterStack, MessageCenterViewMenu as WorkspaceAgentMessageCenterViewMenu, approvalOptionDisplayLabel, buildMessageCenterProviderOptions, buildMessageCenterStatusOptions, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModelFromEngine, getPromptToolDetails, groupMessageCenterItems, isInteractiveMessageCenterItem, isPromptRequestIdTitle, isRecentlyCompletedMessageCenterItem, isWaitingMessageCenterItem, itemMatchesViewFilters, managedAgentRoundedIconUrl, messageCenterAgentUserStackId, messageCenterFiltersStorageKey, messageCenterGroupLabel, messageCenterStackPreviewNodes, messageCenterStackPreviewText, messageCenterStackRenderId, messageCenterStackScrollSyncSegment, messageCenterStatusFilterValue, messageCenterStatusTone, messageCenterStatusToneClass, partitionMessageCenterItemsByAgentUser, readMessageCenterFilterPreferences, resolveMessageCenterNotificationAction, selectMessageCenterAttentionDeckItems, selectWorkspaceAgentMessageCenterPresentation, stabilizeWorkspaceAgentMessageCenterModel, statusFilterSummary, userAvatarPlaceholderUrl, workspaceAgentActivityStatusLabel, workspaceAgentMessageCenterPresentationEqual, workspaceAgentMessageCenterPromptStatus, writeMessageCenterFilterPreferences };
492
+ export { AgentInteractivePromptSurface, AgentVerticalScrollArea, type BuildWorkspaceAgentMessageCenterOptions, type MessageCenterAgentUserStack, type MessageCenterFilterPreferences, type MessageCenterGroup, type MessageCenterGroupBy, MessageCenterGroupHeading, MessageCenterIdentityAvatarMark, MessageCenterIdentityAvatarStack, MessageCenterIdentityLabel, MessageCenterOpenChatButton, type MessageCenterProviderOption, type MessageCenterStatusFilter, type MessageCenterStatusOption, type MessageCenterStatusTone, MessageCenterSummary, type MessageCenterTranslate, PLAN_IMPLEMENTATION_ACTION_IMPLEMENT, PLAN_IMPLEMENTATION_PROMPT, type PromptToolDetail, type WorkspaceAgentMessageCenterAgentPresentation, WorkspaceAgentMessageCenterAttentionDeck, type WorkspaceAgentMessageCenterAttentionDeckProps, type WorkspaceAgentMessageCenterAttentionDeckRenderCardInput, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterInteractionTarget, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelPresentation, type WorkspaceAgentMessageCenterPanelProps, type WorkspaceAgentMessageCenterPresentation, type WorkspaceAgentMessageCenterPromptStatus, WorkspaceAgentMessageCenterStack, MessageCenterViewMenu as WorkspaceAgentMessageCenterViewMenu, approvalOptionDisplayLabel, buildMessageCenterProviderOptions, buildMessageCenterStatusOptions, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModelFromEngine, dispatchAgentPlanPromptAction, getPromptToolDetails, groupMessageCenterItems, isInteractiveMessageCenterItem, isPromptRequestIdTitle, isRecentlyCompletedMessageCenterItem, isWaitingMessageCenterItem, itemMatchesViewFilters, managedAgentRoundedIconUrl, messageCenterAgentUserStackId, messageCenterFiltersStorageKey, messageCenterGroupLabel, messageCenterStackPreviewNodes, messageCenterStackPreviewText, messageCenterStackRenderId, messageCenterStackScrollSyncSegment, messageCenterStatusFilterValue, messageCenterStatusTone, messageCenterStatusToneClass, partitionMessageCenterItemsByAgentUser, readMessageCenterFilterPreferences, resolveMessageCenterNotificationAction, selectMessageCenterAttentionDeckItems, selectWorkspaceAgentMessageCenterPresentation, stabilizeWorkspaceAgentMessageCenterModel, statusFilterSummary, useEngineSelector, userAvatarPlaceholderUrl, workspaceAgentActivityStatusLabel, workspaceAgentMessageCenterPresentationEqual, workspaceAgentMessageCenterPromptStatus, writeMessageCenterFilterPreferences };
@@ -6,7 +6,7 @@ import {
6
6
  dispatchAgentPlanPromptAction,
7
7
  getPromptToolDetails,
8
8
  isPromptRequestIdTitle
9
- } from "../chunk-PQJXWXTS.js";
9
+ } from "../chunk-25VMCMAQ.js";
10
10
  import {
11
11
  useEngineSelector
12
12
  } from "../chunk-2RQM7PJN.js";
@@ -19,20 +19,20 @@ import {
19
19
  isExitPlanSwitchModeInput,
20
20
  normalizeAgentApprovalPurpose,
21
21
  normalizeAskUserQuestions
22
- } from "../chunk-YWHGCKMT.js";
22
+ } from "../chunk-IYZ4GOSN.js";
23
23
  import {
24
24
  cn
25
- } from "../chunk-KPMQGPYU.js";
25
+ } from "../chunk-ZVYUTXQJ.js";
26
26
  import {
27
27
  userAvatarPlaceholderUrl,
28
28
  workspaceAgentActivityStatusLabel
29
- } from "../chunk-QQRTUHCH.js";
29
+ } from "../chunk-EU7DCT4F.js";
30
30
  import {
31
31
  resolveWorkspaceAgentSessionSortTimeUnixMs
32
32
  } from "../chunk-YMXYBG7U.js";
33
33
  import {
34
34
  workspaceAgentProviderLabel
35
- } from "../chunk-NE6H7S5Z.js";
35
+ } from "../chunk-OFJNIQWR.js";
36
36
  import "../chunk-F5UR6EJG.js";
37
37
  import {
38
38
  managedAgentRoundedIconUrl
@@ -41,10 +41,10 @@ import {
41
41
  AgentGuiI18nProvider,
42
42
  getActiveUiLanguage,
43
43
  useTranslation
44
- } from "../chunk-SZOTLVH6.js";
44
+ } from "../chunk-GIYGO2PB.js";
45
45
  import "../chunk-PJP5BUU6.js";
46
46
  import "../chunk-7KVZPJ3O.js";
47
- import "../chunk-OQR3HXPF.js";
47
+ import "../chunk-VUNVGEQG.js";
48
48
  import {
49
49
  normalizeAgentTitleText
50
50
  } from "../chunk-MIJXEELH.js";
@@ -1,5 +1,4 @@
1
1
  import { WorkspaceIssueMentionMode } from '@tutti-os/workspace-issue-manager/core';
2
- import { W as WorkspaceAgentActivityCard, T as ToolCallStatusKind } from './workspaceAgentActivityListTypes-DZfS_HgG.js';
3
2
  import { AgentActivityMessageSemantics, AgentActivitySession, AgentActivityTurn } from '@tutti-os/agent-activity-core';
4
3
 
5
4
  type WorkspaceLinkActionSource = "agent-markdown" | "agent-file-change" | string;
@@ -109,6 +108,46 @@ interface WorkspaceAgentActivityTimelineItem {
109
108
  createdAtUnixMs?: number;
110
109
  }
111
110
 
111
+ type ToolCallStatusKind = "working" | "completed" | "failed" | "canceled" | "waiting";
112
+ interface WorkspaceAgentToolCallDisplay {
113
+ id: string;
114
+ name: string;
115
+ status: string | null;
116
+ statusKind: ToolCallStatusKind | null;
117
+ detail?: string;
118
+ }
119
+
120
+ type WorkspaceAgentLatestActivityStatus = "working" | "waiting" | "idle" | "completed" | "canceled" | "failed";
121
+ interface WorkspaceAgentConversationPreviewLine {
122
+ actorName: string;
123
+ summary: string;
124
+ }
125
+
126
+ type WorkspaceAgentActivityStatus = WorkspaceAgentLatestActivityStatus;
127
+ interface WorkspaceAgentChangedFile {
128
+ path: string;
129
+ label: string;
130
+ }
131
+ interface WorkspaceAgentActivityCard {
132
+ id: string;
133
+ sessionId: string;
134
+ userId: string | null;
135
+ userName: string;
136
+ userAvatarUrl?: string;
137
+ agentProvider: string;
138
+ agentName: string;
139
+ title: string;
140
+ status: WorkspaceAgentActivityStatus;
141
+ latestActivitySummary: string;
142
+ /** User prompt + latest agent reply for task/issue execution cards; room status list uses single-line summary only. */
143
+ conversationPreview?: WorkspaceAgentConversationPreviewLine[];
144
+ latestActivityActorName?: string;
145
+ toolCalls?: WorkspaceAgentToolCallDisplay[];
146
+ changedFiles: WorkspaceAgentChangedFile[];
147
+ sortTimeUnixMs: number;
148
+ readTimeUnixMs?: number;
149
+ }
150
+
112
151
  interface WorkspaceAgentSessionDetailMessage {
113
152
  id: string;
114
153
  body: string;
@@ -518,4 +557,4 @@ interface AgentConversationVM {
518
557
  rows: AgentTranscriptRowVM[];
519
558
  }
520
559
 
521
- export { type AgentApprovalItemVM as A, type BuildWorkspaceAgentSessionDetailInput as B, type WorkspaceAgentActivityTimelineItem as W, type AgentAskUserQuestionVM as a, type AgentConversationPromptVM as b, type AgentConversationVM as c, type WorkspaceAgentSessionDetailViewModel as d, type WorkspaceLinkAction as e, buildWorkspaceAgentSessionDetailViewModel as f };
560
+ export { type AgentApprovalItemVM as A, type BuildWorkspaceAgentSessionDetailInput as B, type WorkspaceAgentActivityCard as W, type AgentAskUserQuestionVM as a, type AgentConversationPromptVM as b, type AgentConversationVM as c, type WorkspaceAgentActivityStatus as d, type WorkspaceAgentActivityTimelineItem as e, type WorkspaceAgentSessionDetailViewModel as f, type WorkspaceLinkAction as g, buildWorkspaceAgentSessionDetailViewModel as h };
@@ -9,11 +9,16 @@ interface AgentMentionFileItem {
9
9
  name: string;
10
10
  entryKind: AgentFileMentionKind;
11
11
  directoryPath: string;
12
+ /** Present only for a regular file attached from the local composer. */
13
+ attachmentId?: string;
14
+ attachmentStatus?: AgentComposerFileMentionStatus;
15
+ attachmentErrorCode?: string;
12
16
  score?: number;
13
17
  thumbnailUrl?: string | null;
14
18
  mentionNavigation?: AgentMentionFileNavigationAction;
15
19
  childCount?: number;
16
20
  }
21
+ type AgentComposerFileMentionStatus = "uploading" | "ready" | "error";
17
22
  interface AgentMentionSessionItem {
18
23
  kind: "session";
19
24
  href: string;
@@ -1,8 +1,7 @@
1
1
  import { AgentActivitySession, AgentActivitySlashCommandPolicy, AgentActivityUsage, CanonicalAgentSession } from '@tutti-os/agent-activity-core';
2
- import { u as AgentHostAgentSessionCommand, v as AgentHostAgentSessionComposerSettings, x as AgentHostAgentSessionReasoningEffort, y as AgentHostAgentSessionSpeed, w as AgentHostAgentSessionPermissionConfig, o as AgentGUIProvider, B as AgentPromptContentBlock, n as AgentGUINodeData, i as AgentGUIAgentTarget, q as AgentGUIProviderRailMode, r as AgentGUIProviderReadinessGate } from './types-BicfRVrV.js';
3
- import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, d as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-BD0-gg6C.js';
2
+ import { j as AgentHostAgentSessionCommand, k as AgentHostAgentSessionComposerSettings, m as AgentHostAgentSessionReasoningEffort, n as AgentHostAgentSessionSpeed, l as AgentHostAgentSessionPermissionConfig, f as AgentGUIProvider, p as AgentPromptContentBlock, e as AgentGUINodeData, b as AgentGUIAgentTarget, h as AgentGUIProviderRailMode, i as AgentGUIProviderReadinessGate } from './types-ee3zJ6Cc.js';
3
+ import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, f as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-DWEy7jzx.js';
4
4
  import { WorkspaceUserProjectService } from '@tutti-os/workspace-user-project/contracts';
5
- import { A as AGENT_PASTED_TEXT_BLOCK_KIND } from './pastedTextKinds-D-XuInaS.js';
6
5
 
7
6
  declare const APP_ERROR_CODES: readonly ["common.invalid_input", "common.approved_path_required", "common.unavailable", "common.unexpected", "session.not_found", "control_surface.unauthorized", "workspace.select_directory_failed", "workspace.select_files_failed", "workspace.ensure_directory_failed", "workspace.import_files_failed", "workspace.read_file_failed", "workspace.write_file_failed", "workspace.export_file_failed", "workspace.copy_path_failed", "workspace.host_unsupported", "workspace.runtime_artifact_unavailable", "runtime.guest_agent_lane_unavailable", "workspace.room_full", "workspace.room_delete_forbidden", "workspace.room_delete_not_found", "filesystem.create_directory_failed", "filesystem.read_file_bytes_failed", "filesystem.read_file_text_failed", "filesystem.write_file_text_failed", "filesystem.copy_entry_failed", "filesystem.move_entry_failed", "filesystem.rename_entry_failed", "filesystem.delete_entry_failed", "filesystem.read_directory_failed", "filesystem.stat_failed", "terminal.spawn_failed", "terminal.write_failed", "terminal.resize_failed", "terminal.close_failed", "terminal.attach_failed", "terminal.detach_failed", "terminal.snapshot_failed", "agent.list_models_failed", "agent.launch_failed", "agent.read_last_message_failed", "agent.provider_session_not_found", "agent.resume_session_not_local", "agent.resume_session_resolve_failed", "agent.settings_require_new_session", "task.suggest_title_failed", "persistence.unavailable", "persistence.quota_exceeded", "persistence.payload_too_large", "persistence.io_failed", "persistence.invalid_state", "persistence.invalid_node_id", "update.get_state_failed", "update.configure_failed", "update.check_failed", "update.download_failed", "update.install_failed", "PACKAGE_DOWNLOAD_INTERRUPTED", "PACKAGE_DOWNLOAD_HTTP_STATUS", "PACKAGE_DOWNLOAD_INVALID", "PACKAGE_DOWNLOAD_DISK_ERROR"];
8
7
  type AppErrorCode = (typeof APP_ERROR_CODES)[number];
@@ -214,10 +213,6 @@ type AgentHostWorkspaceApi = AgentHostRecord & {
214
213
  ensureDirectory: (input: {
215
214
  path: string;
216
215
  }) => AgentHostAsyncResult<void>;
217
- getReferenceForFile?: (file: File) => {
218
- kind: "file" | "folder";
219
- path: string;
220
- };
221
216
  readFile: (input: {
222
217
  path: string;
223
218
  }) => AgentHostAsyncResult<ReadWorkspaceFileResult>;
@@ -249,7 +244,6 @@ interface AgentHostInputApi {
249
244
  workspace: AgentHostWorkspaceApi;
250
245
  workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;
251
246
  }
252
- type AgentHostApi = AgentHostInputApi;
253
247
  type AgentHostAccountApi = AgentHostRecord & {
254
248
  batchGetUserInfo: (input: AgentHostBatchUserInfoInput) => AgentHostAsyncResult<AgentHostBatchUserInfoResult>;
255
249
  ensureProfiles?: (input: any) => AgentHostAsyncResult<any>;
@@ -318,8 +312,6 @@ type AgentHostAgentTargetSetupApi = AgentHostRecord & {
318
312
  agentTargetId: string;
319
313
  }) => AgentHostAgentTargetSetupWatch;
320
314
  };
321
- type AgentProviderProbeListInput = AgentHostListWorkspaceAgentProbesInput;
322
- type AgentProviderProbeListResult = AgentHostWorkspaceAgentProbesResult;
323
315
  interface AgentHostUserProject {
324
316
  id: string;
325
317
  path: string;
@@ -395,21 +387,6 @@ type AgentHostAgentSessionsApi = AgentHostRecord & {
395
387
  unactivate: (input: any) => AgentHostAsyncResult<any>;
396
388
  updateSettings: (input: any) => AgentHostAsyncResult<any>;
397
389
  };
398
- interface AgentHostRuntimeApi {
399
- account?: AgentHostAccountApi;
400
- agentTargetSetup?: AgentHostAgentTargetSetupApi;
401
- clipboard: AgentHostClipboardApi;
402
- debug?: AgentHostDebugApi;
403
- filesystem: AgentHostFilesystemApi;
404
- meta?: AgentHostMetaApi;
405
- onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;
406
- persistence?: AgentHostPersistenceApi;
407
- runtime?: AgentHostEnvironmentApi;
408
- toast?: AgentHostToastApi;
409
- userProjects?: AgentHostUserProjectsApi;
410
- workspace: AgentHostWorkspaceApi;
411
- workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;
412
- }
413
390
 
414
391
  interface AgentMessageMarkdownWorkspaceAppIcon {
415
392
  appId: string;
@@ -503,6 +480,8 @@ interface AgentSlashCommandCapability {
503
480
  }
504
481
  type AgentSlashCommandPolicy = AgentActivitySlashCommandPolicy;
505
482
 
483
+ declare const AGENT_PASTED_TEXT_BLOCK_KIND = "pasted-text";
484
+
506
485
  interface AgentGUISessionChrome {
507
486
  auth: {
508
487
  message: string;
@@ -575,10 +554,15 @@ interface AgentComposerFileBlockBase {
575
554
  mimeType?: string;
576
555
  path?: string;
577
556
  hostPath?: string;
557
+ url?: string;
558
+ uri?: string;
578
559
  assetId?: string;
560
+ uploadStatus?: string;
579
561
  sizeBytes?: number;
580
562
  uploading?: boolean;
581
563
  uploadError?: string;
564
+ uploadErrorCode?: string;
565
+ uploadRetryable?: boolean;
582
566
  }
583
567
  interface AgentComposerRegularFileBlock extends AgentComposerFileBlockBase {
584
568
  kind: "file";
@@ -737,4 +721,4 @@ interface AgentGUINodeViewModel {
737
721
  operations: AgentGUIOperationsViewModel;
738
722
  }
739
723
 
740
- export type { AgentComposerDraft as A, PersistWriteResult as P, ReadWorkspaceAgentReadStateInput as R, WorkspaceAgentReadStateSnapshot as W, AgentComposerDraftFile as a, AgentGUIComposerSettingsVM as b, AgentGUINodeViewModel as c, AgentGUIProviderSkillOption as d, AgentGUIQueueStatus as e, AgentGUIQueuedPromptVM as f, AgentHostAgentTargetAuthenticatedAccount as g, AgentHostAgentTargetSetupSnapshot as h, AgentHostAgentTargetSetupState as i, AgentHostAgentTargetSetupWatch as j, AgentHostApi as k, AgentHostApplyWorkspaceGitPatchInput as l, AgentHostInputApi as m, AgentHostRuntimeApi as n, AgentHostSelectFilesInput as o, AgentHostUserProject as p, AgentMessageMarkdownWorkspaceAppIcon as q, AgentProbeProvider as r, AgentProbeSnapshot as s, AgentProviderProbeListInput as t, AgentProviderProbeListResult as u, AgentSessionCommand as v, AgentSlashCommandCapability as w, AgentUsageQuota as x, AgentUsageSnapshot as y, WriteWorkspaceAgentReadStateInput as z };
724
+ export type { AgentComposerDraft as A, AgentComposerDraftFile as a, AgentGUIComposerSettingsVM as b, AgentGUINodeViewModel as c, AgentGUIProviderSkillOption as d, AgentGUIQueueStatus as e, AgentGUIQueuedPromptVM as f, AgentHostInputApi as g, AgentMessageMarkdownWorkspaceAppIcon as h, AgentProbeSnapshot as i, AgentSessionCommand as j, AgentSlashCommandCapability as k };
package/dist/agents.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as AgentGUIAgent, i as AgentGUIAgentTarget } from './types-BicfRVrV.js';
1
+ import { A as AgentGUIAgent, b as AgentGUIAgentTarget } from './types-ee3zJ6Cc.js';
2
2
 
3
3
  declare function normalizeAgentGUIAgents(agents: readonly AgentGUIAgent[] | null | undefined): AgentGUIAgent[];
4
4
  declare function agentGUIAgentIsReady(agent: AgentGUIAgent): boolean;
package/dist/agents.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  normalizeAgentGUIAgents,
4
4
  projectAgentGUIAgentsToInternalTargets,
5
5
  resolveAgentGUISelectedDirectoryAgent
6
- } from "./chunk-T2NICA5D.js";
6
+ } from "./chunk-5WOCGIXJ.js";
7
7
  export {
8
8
  agentGUIAgentIsReady,
9
9
  normalizeAgentGUIAgents,
@@ -4403,6 +4403,12 @@ aside.workspace-agents-status-panel
4403
4403
  color: var(--folder);
4404
4404
  }
4405
4405
 
4406
+ [data-agent-file-mention="true"][data-agent-mention-kind="file"][data-upload-error="true"].tsh-agent-object-token--file {
4407
+ border-color: color-mix(in srgb, var(--state-danger) 42%, transparent);
4408
+ background: color-mix(in srgb, var(--state-danger) 8%, transparent);
4409
+ color: var(--state-danger);
4410
+ }
4411
+
4406
4412
  [data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-entry-kind="directory"]
4407
4413
  .tsh-agent-object-token__icon {
4408
4414
  mask-image: url("./assets/icons/folder-filled.svg");
@@ -9442,6 +9448,7 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
9442
9448
  width: 32px;
9443
9449
  height: 32px;
9444
9450
  place-items: center;
9451
+ overflow: visible;
9445
9452
  border: 2px solid transparent;
9446
9453
  border-radius: 8px;
9447
9454
  background: transparent;
@@ -1,10 +1,3 @@
1
1
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_3781_26699)">
3
- <path d="M7.12583 1.58392C9.4722 0.485988 12.1212 0.212404 14.6424 0.807557C17.1635 1.4028 19.4098 2.832 21.0174 4.86322C22.6251 6.8946 23.4998 9.40936 23.4998 11.9999V12.9999C23.4998 14.1934 23.0254 15.3377 22.1815 16.1816C21.3376 17.0255 20.1933 17.4999 18.9998 17.4999C17.8064 17.4999 16.6621 17.0255 15.8182 16.1816C15.7795 16.1429 15.743 16.1023 15.7059 16.0624C14.7282 16.9548 13.4279 17.4999 11.9998 17.4999C8.96235 17.4998 6.49985 15.0374 6.49985 11.9999C6.49988 8.96245 8.96238 6.50002 11.9998 6.49994C12.9893 6.49994 13.9174 6.76231 14.7196 7.21966C14.983 6.78835 15.4575 6.49999 15.9998 6.49994C16.8283 6.49994 17.4998 7.17154 17.4998 7.99994V12.9999C17.4998 13.3977 17.6581 13.7792 17.9393 14.0605C18.2206 14.3418 18.6021 14.4999 18.9998 14.4999C19.3977 14.4999 19.7791 14.3418 20.0604 14.0605C20.3417 13.7792 20.4998 13.3978 20.4998 12.9999V11.9999C20.4998 10.0852 19.8532 8.226 18.6649 6.72455C17.4767 5.22339 15.8163 4.1674 13.953 3.72748C12.0895 3.2876 10.1316 3.48925 8.39731 4.30072C6.66317 5.1122 5.25363 6.48575 4.39731 8.19818C3.54101 9.91079 3.2882 11.8629 3.67954 13.7372C4.07089 15.6115 5.08355 17.2994 6.55356 18.5263C8.02356 19.753 9.86517 20.4472 11.7791 20.497C13.6932 20.5467 15.5677 19.9485 17.0995 18.7997C17.7621 18.3027 18.7029 18.437 19.2 19.0995C19.6971 19.7622 19.5629 20.703 18.9002 21.2001C16.8278 22.7545 14.2907 23.5633 11.701 23.496C9.11146 23.4287 6.62054 22.4888 4.63169 20.829C2.64285 19.1692 1.27252 16.8863 0.743013 14.3505C0.213579 11.8148 0.555339 9.17434 1.71372 6.85736C2.87224 4.54031 4.77948 2.68189 7.12583 1.58392ZM11.9998 9.49994C10.6192 9.50002 9.49988 10.6193 9.49985 11.9999C9.49985 13.3806 10.6192 14.4999 11.9998 14.4999C13.3806 14.4999 14.4998 13.3806 14.4998 11.9999C14.4998 10.6193 13.3805 9.49994 11.9998 9.49994Z" fill="black"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_3781_26699">
7
- <rect width="24" height="24" fill="white"/>
8
- </clipPath>
9
- </defs>
2
+ <path d="M7.33754 2.03697C9.58184 0.986806 12.1154 0.724603 14.527 1.29381C16.9386 1.8631 19.0879 3.23075 20.6257 5.17369C22.1632 7.11667 22.9996 9.52209 22.9997 11.9999V12.9999C22.9997 14.0607 22.5779 15.0778 21.8278 15.828C21.0777 16.5781 20.0605 16.9999 18.9997 16.9999C17.9389 16.9998 16.9216 16.578 16.1715 15.828C16.0122 15.6687 15.8687 15.4966 15.7399 15.3153C14.8239 16.3478 13.4885 16.9999 11.9997 16.9999C9.23839 16.9997 6.99965 14.7612 6.99965 11.9999C6.99973 9.23862 9.23844 7.00005 11.9997 6.99986C13.125 6.99986 14.1641 7.37146 14.9997 7.99888C15.0003 7.44723 15.4479 7.00005 15.9997 6.99986C16.5519 6.99986 16.9996 7.44764 16.9997 7.99986V12.9999C16.9997 13.5302 17.2107 14.0389 17.5856 14.4139C17.9606 14.7889 18.4694 14.9998 18.9997 14.9999C19.5301 14.9999 20.0387 14.7889 20.4137 14.4139C20.7888 14.0389 20.9997 13.5303 20.9997 12.9999V11.9999C20.9996 9.97263 20.3153 8.00459 19.0573 6.4149C17.7991 4.82524 16.0401 3.70686 14.067 3.24107C12.094 2.77546 10.0213 2.98932 8.1852 3.84849C6.34918 4.70773 4.85649 6.1614 3.94984 7.97447C3.04319 9.78779 2.77575 11.8551 3.19008 13.8397C3.6045 15.8241 4.67674 17.6111 6.23305 18.91C7.78948 20.2089 9.73975 20.9442 11.7663 20.9969C13.7928 21.0495 15.7783 20.4163 17.4001 19.2001C17.8418 18.8689 18.4681 18.9587 18.7995 19.4003C19.1307 19.8421 19.0411 20.4683 18.5993 20.7997C16.617 22.2863 14.1905 23.0603 11.7135 22.996C9.23674 22.9314 6.85405 22.0327 4.9518 20.4452C3.04947 18.8574 1.73851 16.6735 1.23206 14.2479C0.72574 11.8225 1.05282 9.29706 2.16078 7.08092C3.26889 4.86469 5.09332 3.08721 7.33754 2.03697ZM11.9997 8.99986C10.343 9.00005 8.99973 10.3432 8.99966 11.9999C8.99966 13.6566 10.343 14.9997 11.9997 14.9999C13.6565 14.9999 14.9997 13.6567 14.9997 11.9999C14.9996 10.3431 13.6565 8.99986 11.9997 8.99986Z" fill="black"/>
10
3
  </svg>
@@ -2,17 +2,17 @@ import {
2
2
  AgentGUIConversation_styles_default,
3
3
  MessageSquareMoreIcon,
4
4
  extractAgentMcpToolTarget
5
- } from "./chunk-YWHGCKMT.js";
5
+ } from "./chunk-IYZ4GOSN.js";
6
6
  import {
7
7
  getOptionalAgentHostApi,
8
8
  useOptionalAgentHostApi
9
- } from "./chunk-NE6H7S5Z.js";
9
+ } from "./chunk-OFJNIQWR.js";
10
10
  import {
11
11
  fileChangePathsFromChanges
12
12
  } from "./chunk-F5UR6EJG.js";
13
13
  import {
14
14
  translate
15
- } from "./chunk-SZOTLVH6.js";
15
+ } from "./chunk-GIYGO2PB.js";
16
16
 
17
17
  // shared/agentConversation/planImplementationPresentation.ts
18
18
  var PLAN_IMPLEMENTATION_PROMPT = "Implement the plan.";
@@ -1471,4 +1471,4 @@ export {
1471
1471
  isPromptRequestIdTitle,
1472
1472
  AgentInteractivePromptSurface
1473
1473
  };
1474
- //# sourceMappingURL=chunk-PQJXWXTS.js.map
1474
+ //# sourceMappingURL=chunk-25VMCMAQ.js.map
@@ -6,6 +6,8 @@ function normalizeAgentGUIAgents(agents) {
6
6
  const agentTargetId = agent.agentTargetId.trim();
7
7
  const name = agent.name.trim();
8
8
  const iconUrl = agent.iconUrl.trim();
9
+ const maskIconUrl = agent.maskIconUrl?.trim() ?? "";
10
+ const sidebarIconUrl = agent.sidebarIconUrl?.trim() ?? "";
9
11
  const heroImageUrl = agent.heroImageUrl?.trim() ?? "";
10
12
  if (!agentTargetId || !name || !iconUrl || seenAgentTargetIds.has(agentTargetId)) {
11
13
  continue;
@@ -18,6 +20,8 @@ function normalizeAgentGUIAgents(agents) {
18
20
  agentTargetId,
19
21
  name,
20
22
  iconUrl,
23
+ ...maskIconUrl ? { maskIconUrl } : {},
24
+ ...sidebarIconUrl ? { sidebarIconUrl } : {},
21
25
  ...heroImageUrl ? { heroImageUrl } : {},
22
26
  ...agent.description?.trim() ? { description: agent.description.trim() } : {},
23
27
  ...ownerName || ownerAvatarUrl ? {
@@ -67,6 +71,8 @@ function projectAgentGUIAgentsToInternalTargets(agents) {
67
71
  availability: agent.availability,
68
72
  ...agent.description ? { description: agent.description } : {},
69
73
  iconUrl: agent.iconUrl,
74
+ ...agent.maskIconUrl ? { maskIconUrl: agent.maskIconUrl } : {},
75
+ ...agent.sidebarIconUrl ? { sidebarIconUrl: agent.sidebarIconUrl } : {},
70
76
  ...agent.heroImageUrl ? { heroImageUrl: agent.heroImageUrl } : {},
71
77
  ...agent.owner?.avatarUrl ? {
72
78
  badge: {
@@ -98,4 +104,4 @@ export {
98
104
  resolveAgentGUISelectedDirectoryAgent,
99
105
  projectAgentGUIAgentsToInternalTargets
100
106
  };
101
- //# sourceMappingURL=chunk-T2NICA5D.js.map
107
+ //# sourceMappingURL=chunk-5WOCGIXJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../agents.ts"],"sourcesContent":["import type {\n AgentGUIAgent,\n AgentGUIAgentAvailabilityStatus,\n AgentGUIAgentTarget\n} from \"./types.ts\";\n\nexport function normalizeAgentGUIAgents(\n agents: readonly AgentGUIAgent[] | null | undefined\n): AgentGUIAgent[] {\n const normalized: AgentGUIAgent[] = [];\n const seenAgentTargetIds = new Set<string>();\n for (const agent of agents ?? []) {\n const agentTargetId = agent.agentTargetId.trim();\n const name = agent.name.trim();\n const iconUrl = agent.iconUrl.trim();\n const maskIconUrl = agent.maskIconUrl?.trim() ?? \"\";\n const sidebarIconUrl = agent.sidebarIconUrl?.trim() ?? \"\";\n const heroImageUrl = agent.heroImageUrl?.trim() ?? \"\";\n if (\n !agentTargetId ||\n !name ||\n !iconUrl ||\n seenAgentTargetIds.has(agentTargetId)\n ) {\n continue;\n }\n seenAgentTargetIds.add(agentTargetId);\n const ownerName = agent.owner?.name?.trim() ?? \"\";\n const ownerAvatarUrl = agent.owner?.avatarUrl?.trim() ?? \"\";\n const reason = agent.availability.reason?.trim() ?? \"\";\n normalized.push({\n agentTargetId,\n name,\n iconUrl,\n ...(maskIconUrl ? { maskIconUrl } : {}),\n ...(sidebarIconUrl ? { sidebarIconUrl } : {}),\n ...(heroImageUrl ? { heroImageUrl } : {}),\n ...(agent.description?.trim()\n ? { description: agent.description.trim() }\n : {}),\n ...(ownerName || ownerAvatarUrl\n ? {\n owner: {\n ...(ownerName ? { name: ownerName } : {}),\n ...(ownerAvatarUrl ? { avatarUrl: ownerAvatarUrl } : {})\n }\n }\n : {}),\n ...(agent.ownership === \"self\" || agent.ownership === \"shared\"\n ? { ownership: agent.ownership }\n : {}),\n availability: {\n status: normalizeAgentGUIAgentAvailabilityStatus(\n agent.availability.status\n ),\n ...(reason ? { reason } : {}),\n ...(agent.availability.pendingAction\n ? { pendingAction: agent.availability.pendingAction }\n : {})\n },\n provider: agent.provider,\n ...(agent.setupKind === \"target_runtime\"\n ? { setupKind: \"target_runtime\" as const }\n : {})\n });\n }\n return normalized;\n}\n\nexport function agentGUIAgentIsReady(agent: AgentGUIAgent): boolean {\n return agent.availability.status === \"ready\";\n}\n\nexport function resolveAgentGUISelectedDirectoryAgent(input: {\n agents: readonly AgentGUIAgent[];\n agentTargetId?: string | null;\n defaultAgentTargetId?: string | null;\n}): AgentGUIAgent | null {\n const explicitAgentTargetId =\n input.agentTargetId?.trim() || input.defaultAgentTargetId?.trim() || \"\";\n if (explicitAgentTargetId) {\n return (\n input.agents.find(\n (agent) => agent.agentTargetId === explicitAgentTargetId\n ) ?? null\n );\n }\n return (\n input.agents.find((agent) => agentGUIAgentIsReady(agent)) ??\n input.agents[0] ??\n null\n );\n}\n\n/** Package-internal bridge while the carried node is migrated to agent names. */\nexport function projectAgentGUIAgentsToInternalTargets(\n agents: readonly AgentGUIAgent[]\n): AgentGUIAgentTarget[] {\n return agents.map((agent) => ({\n targetId: agent.agentTargetId,\n agentTargetId: agent.agentTargetId,\n provider: agent.provider,\n ref: {\n kind: \"agent-directory\",\n provider: agent.provider,\n agentTargetId: agent.agentTargetId,\n ...(agent.setupKind ? { setupKind: agent.setupKind } : {})\n },\n label: agent.name,\n availability: agent.availability,\n ...(agent.description ? { description: agent.description } : {}),\n iconUrl: agent.iconUrl,\n ...(agent.maskIconUrl ? { maskIconUrl: agent.maskIconUrl } : {}),\n ...(agent.sidebarIconUrl ? { sidebarIconUrl: agent.sidebarIconUrl } : {}),\n ...(agent.heroImageUrl ? { heroImageUrl: agent.heroImageUrl } : {}),\n ...(agent.owner?.avatarUrl\n ? {\n badge: {\n iconUrl: agent.owner.avatarUrl,\n ...(agent.owner.name ? { label: agent.owner.name } : {})\n }\n }\n : {}),\n ...(agent.owner?.name ? { ownerLabel: agent.owner.name } : {}),\n ...(agent.ownership ? { ownership: agent.ownership } : {}),\n ...(agent.availability.status !== \"ready\" && !agent.setupKind\n ? { disabled: true }\n : {}),\n ...(agent.availability.reason\n ? { unavailableReason: agent.availability.reason }\n : {})\n }));\n}\n\nfunction normalizeAgentGUIAgentAvailabilityStatus(\n status: AgentGUIAgentAvailabilityStatus\n): AgentGUIAgentAvailabilityStatus {\n switch (status) {\n case \"ready\":\n case \"checking\":\n case \"coming_soon\":\n case \"not_installed\":\n case \"auth_required\":\n case \"unavailable\":\n return status;\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-DLCZJKCA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}