@tutti-os/agent-gui 0.0.11 → 0.0.13

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 (76) hide show
  1. package/dist/agent-conversation/index.d.ts +5 -52
  2. package/dist/agent-conversation/index.js +4 -3
  3. package/dist/agent-conversation/index.js.map +1 -1
  4. package/dist/agent-message-center/index.d.ts +15 -5
  5. package/dist/agent-message-center/index.js +49 -28
  6. package/dist/agent-message-center/index.js.map +1 -1
  7. package/dist/{agentConversationVM-BtHYOTgv.d.ts → agentConversationVM-BVe64P2E.d.ts} +1 -1
  8. package/dist/app/renderer/agentactivity.css +136 -134
  9. package/dist/app/renderer/assets/icons/agents/manage-agent-tutti.png +0 -0
  10. package/dist/app/renderer/assets/icons/agents/tutti-doc-rounded.png +0 -0
  11. package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png +0 -0
  12. package/dist/chunk-3YZX5EUC.js +1993 -0
  13. package/dist/chunk-3YZX5EUC.js.map +1 -0
  14. package/dist/{chunk-QU4F2RSS.js → chunk-ASAZDEQE.js} +7 -7
  15. package/dist/chunk-ASAZDEQE.js.map +1 -0
  16. package/dist/{chunk-B7K776UD.js → chunk-FSTZDNRM.js} +51 -3
  17. package/dist/chunk-FSTZDNRM.js.map +1 -0
  18. package/dist/{chunk-ZEFETOTS.js → chunk-GZHQPPK2.js} +718 -2010
  19. package/dist/chunk-GZHQPPK2.js.map +1 -0
  20. package/dist/{chunk-CGBRAWTD.js → chunk-HSXDSFKB.js} +10 -1123
  21. package/dist/chunk-HSXDSFKB.js.map +1 -0
  22. package/dist/{chunk-ITMKZRCT.js → chunk-KEKPOVQD.js} +15 -8
  23. package/dist/chunk-KEKPOVQD.js.map +1 -0
  24. package/dist/{chunk-4ASBZ4X7.js → chunk-MTFSQWZ6.js} +2 -2
  25. package/dist/chunk-MU2LODEV.js +1211 -0
  26. package/dist/chunk-MU2LODEV.js.map +1 -0
  27. package/dist/{chunk-R5Q2UDDH.js → chunk-Q75AK47T.js} +2 -2
  28. package/dist/{chunk-QTZALZIV.js → chunk-RLPVFX7V.js} +140 -58
  29. package/dist/chunk-RLPVFX7V.js.map +1 -0
  30. package/dist/chunk-VDNMTW2E.js +9 -0
  31. package/dist/chunk-VDNMTW2E.js.map +1 -0
  32. package/dist/chunk-WME2V26J.js +1124 -0
  33. package/dist/chunk-WME2V26J.js.map +1 -0
  34. package/dist/chunk-YXSO4ITT.js +10 -0
  35. package/dist/chunk-YXSO4ITT.js.map +1 -0
  36. package/dist/{chunk-3735XYFZ.js → chunk-ZO3SZCIX.js} +54 -3
  37. package/dist/chunk-ZO3SZCIX.js.map +1 -0
  38. package/dist/context-mention-palette/index.d.ts +203 -0
  39. package/dist/context-mention-palette/index.js +30 -0
  40. package/dist/context-mention-provider.d.ts +51 -0
  41. package/dist/context-mention-provider.js +7 -0
  42. package/dist/context-mention-provider.js.map +1 -0
  43. package/dist/i18n/index.d.ts +50 -2
  44. package/dist/i18n/index.js +1 -1
  45. package/dist/index.d.ts +33 -6
  46. package/dist/index.js +3466 -4473
  47. package/dist/index.js.map +1 -1
  48. package/dist/plan-decision-ops.d.ts +2 -2
  49. package/dist/workbench/contribution.js +5 -5
  50. package/dist/workbench/index.d.ts +2 -2
  51. package/dist/workbench/index.js +10 -6
  52. package/dist/workbench/launch.d.ts +19 -2
  53. package/dist/workbench/launch.js +7 -2
  54. package/dist/workbench/types.d.ts +6 -1
  55. package/dist/workbench/types.js +5 -3
  56. package/dist/workspace-agent-generated-files.d.ts +1 -1
  57. package/dist/workspace-agent-generated-files.js +2 -2
  58. package/dist/{workspaceAgentActivityListViewModel-BLLYGuFO.d.ts → workspaceAgentActivityListViewModel-BK_J3aNX.d.ts} +8 -5
  59. package/dist/{workspaceLinkActions-Bwa-phu8.d.ts → workspaceLinkActions-BlLN8Pvz.d.ts} +7 -1
  60. package/package.json +24 -15
  61. package/dist/agent-rich-text-at-provider.d.ts +0 -63
  62. package/dist/agent-rich-text-at-provider.js +0 -7
  63. package/dist/chunk-3735XYFZ.js.map +0 -1
  64. package/dist/chunk-6AZ2KF6R.js +0 -7
  65. package/dist/chunk-6AZ2KF6R.js.map +0 -1
  66. package/dist/chunk-77HBKGHF.js +0 -13
  67. package/dist/chunk-77HBKGHF.js.map +0 -1
  68. package/dist/chunk-B7K776UD.js.map +0 -1
  69. package/dist/chunk-CGBRAWTD.js.map +0 -1
  70. package/dist/chunk-ITMKZRCT.js.map +0 -1
  71. package/dist/chunk-QTZALZIV.js.map +0 -1
  72. package/dist/chunk-QU4F2RSS.js.map +0 -1
  73. package/dist/chunk-ZEFETOTS.js.map +0 -1
  74. /package/dist/{chunk-4ASBZ4X7.js.map → chunk-MTFSQWZ6.js.map} +0 -0
  75. /package/dist/{chunk-R5Q2UDDH.js.map → chunk-Q75AK47T.js.map} +0 -0
  76. /package/dist/{agent-rich-text-at-provider.js.map → context-mention-palette/index.js.map} +0 -0
@@ -1,60 +1,13 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, JSX } from 'react';
3
- import { WorkspaceIssueMentionMode } from '@tutti-os/workspace-issue-manager/core';
3
+ import { W as WorkspaceLinkAction } from '../workspaceLinkActions-BlLN8Pvz.js';
4
4
  import { A as AgentMessageMarkdownWorkspaceAppIcon } from '../AgentMessageMarkdown-DeYPURtF.js';
5
- import { a as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-BtHYOTgv.js';
6
- export { B as BuildWorkspaceAgentSessionDetailInput, b as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-BtHYOTgv.js';
7
- export { W as WorkspaceAgentActivityCard, n as WorkspaceAgentActivitySession, p as WorkspaceAgentActivityTimelineItem } from '../workspaceAgentActivityListViewModel-BLLYGuFO.js';
5
+ import { a as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-BVe64P2E.js';
6
+ export { B as BuildWorkspaceAgentSessionDetailInput, b as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-BVe64P2E.js';
7
+ export { W as WorkspaceAgentActivityCard, n as WorkspaceAgentActivitySession, p as WorkspaceAgentActivityTimelineItem } from '../workspaceAgentActivityListViewModel-BK_J3aNX.js';
8
+ import '@tutti-os/workspace-issue-manager/core';
8
9
  import '@tutti-os/agent-activity-core';
9
10
 
10
- type WorkspaceLinkActionSource = "agent-markdown" | "agent-file-change" | string;
11
- interface OpenWorkspaceFileLinkAction {
12
- type: "open-workspace-file";
13
- path: string;
14
- directoryPath: string;
15
- workspaceRoot: string;
16
- source: WorkspaceLinkActionSource;
17
- prefetchedDirectoryListing?: WorkspaceFileLinkDirectoryListing | null;
18
- }
19
- interface WorkspaceFileLinkDirectoryEntry {
20
- path: string;
21
- name: string;
22
- kind: "file" | "directory" | "unknown";
23
- hasChildren: boolean | null;
24
- sizeBytes: number | null;
25
- mtimeMs: number | null;
26
- }
27
- interface WorkspaceFileLinkDirectoryListing {
28
- workspaceId: string;
29
- root: string;
30
- directoryPath: string;
31
- entries: WorkspaceFileLinkDirectoryEntry[];
32
- }
33
- interface OpenWorkspaceUrlLinkAction {
34
- type: "open-url";
35
- url: string;
36
- source: WorkspaceLinkActionSource;
37
- }
38
- interface OpenAgentSessionLinkAction {
39
- type: "open-agent-session";
40
- workspaceId: string;
41
- agentSessionId: string;
42
- provider?: string | null;
43
- source: WorkspaceLinkActionSource;
44
- }
45
- interface OpenWorkspaceIssueLinkAction {
46
- type: "open-workspace-issue";
47
- workspaceId: string;
48
- issueId: string | null;
49
- mode?: WorkspaceIssueMentionMode;
50
- outputDir?: string | null;
51
- runId?: string | null;
52
- taskId?: string | null;
53
- topicId?: string | null;
54
- source: WorkspaceLinkActionSource;
55
- }
56
- type WorkspaceLinkAction = OpenWorkspaceFileLinkAction | OpenWorkspaceUrlLinkAction | OpenAgentSessionLinkAction | OpenWorkspaceIssueLinkAction;
57
-
58
11
  interface AgentGUIProviderSkillOption {
59
12
  name: string;
60
13
  trigger: string;
@@ -6,13 +6,14 @@ import {
6
6
  projectAgentConversationVM,
7
7
  reconcileProjectedAgentConversationVM,
8
8
  useProjectedAgentConversation
9
- } from "../chunk-ZEFETOTS.js";
9
+ } from "../chunk-GZHQPPK2.js";
10
+ import "../chunk-RLPVFX7V.js";
11
+ import "../chunk-MU2LODEV.js";
10
12
  import "../chunk-XJ34OIEQ.js";
11
- import "../chunk-QTZALZIV.js";
12
13
  import "../chunk-TYGL25EL.js";
13
14
  import {
14
15
  translate
15
- } from "../chunk-B7K776UD.js";
16
+ } from "../chunk-FSTZDNRM.js";
16
17
  import "../chunk-LUGELG5V.js";
17
18
  import "../chunk-PJP5BUU6.js";
18
19
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../shared/WorkspaceAgentSessionDetail.tsx"],"sourcesContent":["import { useMemo, type JSX } from \"react\";\nimport type { WorkspaceLinkAction } from \"../contexts/workspace/presentation/renderer/actions/workspaceLinkActions\";\nimport { translate } from \"../i18n/index\";\nimport { AgentConversationFlow } from \"./agentConversation/components/AgentConversationFlow\";\nimport { useProjectedAgentConversation } from \"./agentConversation/projection/useProjectedAgentConversation\";\nimport type { WorkspaceAgentSessionDetailViewModel } from \"./workspaceAgentSessionDetailViewModel\";\n\ninterface WorkspaceAgentSessionDetailProps {\n detail: WorkspaceAgentSessionDetailViewModel;\n avoidGroupingEdits?: boolean;\n isLoading: boolean;\n timelineItemCount: number;\n onLinkAction?: (action: WorkspaceLinkAction) => void;\n toolCallsLabel: (count: number) => string;\n thinkingLabel?: string;\n loadingLabel?: string;\n rawTimelineJsonLabel?: string;\n showRawTimelineJson?: boolean;\n}\n\nexport function WorkspaceAgentSessionDetail({\n detail,\n avoidGroupingEdits = false,\n isLoading,\n timelineItemCount,\n onLinkAction,\n toolCallsLabel,\n thinkingLabel = translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n loadingLabel = translate(\"common.loading\"),\n rawTimelineJsonLabel,\n showRawTimelineJson = false\n}: WorkspaceAgentSessionDetailProps): JSX.Element {\n const conversation = useProjectedAgentConversation({\n detail,\n avoidGroupingEdits\n });\n const showLoadingSkeleton =\n detail.turns.length === 0 &&\n (isLoading ||\n detail.activity.status === \"waiting\" ||\n detail.activity.status === \"working\");\n const emptySummary =\n detail.activity.latestActivitySummary ||\n (timelineItemCount > 0\n ? translate(\"agentHost.workspaceAgentSessionDetailEmptyWithTimeline\")\n : translate(\"agentHost.workspaceAgentSessionDetailEmptyNoTimeline\"));\n const flowLabels = useMemo(\n () => ({\n thinkingLabel,\n toolCallsLabel,\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\"),\n rawTimelineJson: rawTimelineJsonLabel\n }),\n [rawTimelineJsonLabel, thinkingLabel, toolCallsLabel]\n );\n const emptyState = useMemo(\n () => (\n <div className=\"workspace-agents-status-panel__detail-empty\">\n {emptySummary}\n </div>\n ),\n [emptySummary]\n );\n\n return (\n <div className=\"workspace-agents-status-panel__detail\">\n <AgentConversationFlow\n conversation={detail.turns.length > 0 ? conversation : null}\n isLoading={showLoadingSkeleton}\n loadingLabel={loadingLabel}\n empty={emptyState}\n onLinkAction={onLinkAction}\n showRawTimelineJson={showRawTimelineJson}\n labels={flowLabels}\n />\n </div>\n );\n}\n\nexport function WorkspaceAgentSessionDetailSkeleton({\n loading = true,\n loadingLabel = translate(\"common.loading\")\n}: {\n loading?: boolean;\n loadingLabel?: string;\n}): JSX.Element {\n const flowLabels = useMemo(\n () => ({\n thinkingLabel: translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n toolCallsLabel: (count: number) =>\n translate(\"agentHost.workspaceAgentSessionDetailToolCalls\", { count }),\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\")\n }),\n []\n );\n\n if (!loading) {\n return <></>;\n }\n\n return (\n <div\n className=\"workspace-agents-status-panel__detail-skeleton\"\n data-testid=\"workspace-agents-status-panel-detail-skeleton\"\n role=\"status\"\n aria-busy=\"true\"\n aria-label={loadingLabel}\n >\n <AgentConversationFlow\n conversation={null}\n isLoading\n loadingLabel={loadingLabel}\n loadingTestId=\"workspace-agents-status-panel-detail-skeleton\"\n empty={null}\n labels={flowLabels}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAS,eAAyB;AA0D5B,SAyCK,UAzCL;AAtCC,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,UAAU,+CAA+C;AAAA,EACzE,eAAe,UAAU,gBAAgB;AAAA,EACzC;AAAA,EACA,sBAAsB;AACxB,GAAkD;AAChD,QAAM,eAAe,8BAA8B;AAAA,IACjD;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,sBACJ,OAAO,MAAM,WAAW,MACvB,aACC,OAAO,SAAS,WAAW,aAC3B,OAAO,SAAS,WAAW;AAC/B,QAAM,eACJ,OAAO,SAAS,0BACf,oBAAoB,IACjB,UAAU,wDAAwD,IAClE,UAAU,sDAAsD;AACtE,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,YAAY,UAAU,+BAA+B;AAAA,MACrD,aAAa,UAAU,gCAAgC;AAAA,MACvD,iBAAiB;AAAA,IACnB;AAAA,IACA,CAAC,sBAAsB,eAAe,cAAc;AAAA,EACtD;AACA,QAAM,aAAa;AAAA,IACjB,MACE,oBAAC,SAAI,WAAU,+CACZ,wBACH;AAAA,IAEF,CAAC,YAAY;AAAA,EACf;AAEA,SACE,oBAAC,SAAI,WAAU,yCACb;AAAA,IAAC;AAAA;AAAA,MACC,cAAc,OAAO,MAAM,SAAS,IAAI,eAAe;AAAA,MACvD,WAAW;AAAA,MACX;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,QAAQ;AAAA;AAAA,EACV,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../shared/WorkspaceAgentSessionDetail.tsx"],"sourcesContent":["import { useMemo, type JSX } from \"react\";\nimport type { WorkspaceLinkAction } from \"../contexts/workspace/presentation/renderer/actions/workspaceLinkActions\";\nimport { translate } from \"../i18n/index\";\nimport { AgentConversationFlow } from \"./agentConversation/components/AgentConversationFlow\";\nimport { useProjectedAgentConversation } from \"./agentConversation/projection/useProjectedAgentConversation\";\nimport type { WorkspaceAgentSessionDetailViewModel } from \"./workspaceAgentSessionDetailViewModel\";\n\ninterface WorkspaceAgentSessionDetailProps {\n detail: WorkspaceAgentSessionDetailViewModel;\n avoidGroupingEdits?: boolean;\n isLoading: boolean;\n timelineItemCount: number;\n onLinkAction?: (action: WorkspaceLinkAction) => void;\n toolCallsLabel: (count: number) => string;\n thinkingLabel?: string;\n loadingLabel?: string;\n rawTimelineJsonLabel?: string;\n showRawTimelineJson?: boolean;\n}\n\nexport function WorkspaceAgentSessionDetail({\n detail,\n avoidGroupingEdits = false,\n isLoading,\n timelineItemCount,\n onLinkAction,\n toolCallsLabel,\n thinkingLabel = translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n loadingLabel = translate(\"common.loading\"),\n rawTimelineJsonLabel,\n showRawTimelineJson = false\n}: WorkspaceAgentSessionDetailProps): JSX.Element {\n const conversation = useProjectedAgentConversation({\n detail,\n avoidGroupingEdits\n });\n const showLoadingSkeleton =\n detail.turns.length === 0 &&\n (isLoading ||\n detail.activity.status === \"waiting\" ||\n detail.activity.status === \"working\");\n const emptySummary =\n detail.activity.latestActivitySummary ||\n (timelineItemCount > 0\n ? translate(\"agentHost.workspaceAgentSessionDetailEmptyWithTimeline\")\n : translate(\"agentHost.workspaceAgentSessionDetailEmptyNoTimeline\"));\n const flowLabels = useMemo(\n () => ({\n thinkingLabel,\n toolCallsLabel,\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\"),\n rawTimelineJson: rawTimelineJsonLabel\n }),\n [rawTimelineJsonLabel, thinkingLabel, toolCallsLabel]\n );\n const emptyState = useMemo(\n () => (\n <div className=\"workspace-agents-status-panel__detail-empty\">\n {emptySummary}\n </div>\n ),\n [emptySummary]\n );\n\n return (\n <div className=\"workspace-agents-status-panel__detail\">\n <AgentConversationFlow\n conversation={detail.turns.length > 0 ? conversation : null}\n isLoading={showLoadingSkeleton}\n loadingLabel={loadingLabel}\n empty={emptyState}\n onLinkAction={onLinkAction}\n showRawTimelineJson={showRawTimelineJson}\n labels={flowLabels}\n />\n </div>\n );\n}\n\nexport function WorkspaceAgentSessionDetailSkeleton({\n loading = true,\n loadingLabel = translate(\"common.loading\")\n}: {\n loading?: boolean;\n loadingLabel?: string;\n}): JSX.Element {\n const flowLabels = useMemo(\n () => ({\n thinkingLabel: translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n toolCallsLabel: (count: number) =>\n translate(\"agentHost.workspaceAgentSessionDetailToolCalls\", { count }),\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\")\n }),\n []\n );\n\n if (!loading) {\n return <></>;\n }\n\n return (\n <div\n className=\"workspace-agents-status-panel__detail-skeleton\"\n data-testid=\"workspace-agents-status-panel-detail-skeleton\"\n role=\"status\"\n aria-busy=\"true\"\n aria-label={loadingLabel}\n >\n <AgentConversationFlow\n conversation={null}\n isLoading\n loadingLabel={loadingLabel}\n loadingTestId=\"workspace-agents-status-panel-detail-skeleton\"\n empty={null}\n labels={flowLabels}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,eAAyB;AA0D5B,SAyCK,UAzCL;AAtCC,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,UAAU,+CAA+C;AAAA,EACzE,eAAe,UAAU,gBAAgB;AAAA,EACzC;AAAA,EACA,sBAAsB;AACxB,GAAkD;AAChD,QAAM,eAAe,8BAA8B;AAAA,IACjD;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,sBACJ,OAAO,MAAM,WAAW,MACvB,aACC,OAAO,SAAS,WAAW,aAC3B,OAAO,SAAS,WAAW;AAC/B,QAAM,eACJ,OAAO,SAAS,0BACf,oBAAoB,IACjB,UAAU,wDAAwD,IAClE,UAAU,sDAAsD;AACtE,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,YAAY,UAAU,+BAA+B;AAAA,MACrD,aAAa,UAAU,gCAAgC;AAAA,MACvD,iBAAiB;AAAA,IACnB;AAAA,IACA,CAAC,sBAAsB,eAAe,cAAc;AAAA,EACtD;AACA,QAAM,aAAa;AAAA,IACjB,MACE,oBAAC,SAAI,WAAU,+CACZ,wBACH;AAAA,IAEF,CAAC,YAAY;AAAA,EACf;AAEA,SACE,oBAAC,SAAI,WAAU,yCACb;AAAA,IAAC;AAAA;AAAA,MACC,cAAc,OAAO,MAAM,SAAS,IAAI,eAAe;AAAA,MACvD,WAAW;AAAA,MACX;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,QAAQ;AAAA;AAAA,EACV,GACF;AAEJ;","names":[]}
@@ -1,11 +1,11 @@
1
1
  import * as react from 'react';
2
2
  import { JSX } from 'react';
3
3
  import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
4
- import { useTranslation, AgentGuiI18nLocale } from '../i18n/index.js';
5
- import { W as WorkspaceLinkAction } from '../workspaceLinkActions-Bwa-phu8.js';
4
+ import { useTranslation, AgentGuiI18nLocale, TranslateFn } from '../i18n/index.js';
5
+ import { W as WorkspaceLinkAction } from '../workspaceLinkActions-BlLN8Pvz.js';
6
6
  import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot } from '@tutti-os/agent-activity-core';
7
- import { A as AgentConversationPromptVM } from '../agentConversationVM-BtHYOTgv.js';
8
- import { o as WorkspaceAgentActivityStatus } from '../workspaceAgentActivityListViewModel-BLLYGuFO.js';
7
+ import { A as AgentConversationPromptVM } from '../agentConversationVM-BVe64P2E.js';
8
+ import { o as WorkspaceAgentActivityStatus } from '../workspaceAgentActivityListViewModel-BK_J3aNX.js';
9
9
  export { PLAN_IMPLEMENTATION_ACTION_IMPLEMENT, PLAN_IMPLEMENTATION_PROMPT } from '../plan-decision-ops.js';
10
10
  import '@tutti-os/workspace-issue-manager/core';
11
11
 
@@ -199,6 +199,16 @@ declare function AgentInteractivePromptSurface({ prompt, variant, edgeGlow, embe
199
199
 
200
200
  declare function managedAgentRoundedIconUrl(provider: string | undefined): string;
201
201
 
202
+ /**
203
+ * Bundled placeholder avatar shown for users without an avatar URL. Centralized
204
+ * here so every surface (the agent composer mention palette, the message-center
205
+ * card, and the desktop seam that enriches issue-manager session mentions)
206
+ * resolves the SAME asset URL without duplicating the asset import.
207
+ */
208
+ declare const userAvatarPlaceholderUrl: string;
209
+
210
+ declare function workspaceAgentActivityStatusLabel(status: WorkspaceAgentActivityStatus | string, t?: TranslateFn): string;
211
+
202
212
  interface PromptToolDetail {
203
213
  kind: "command" | "mcp" | "path" | "query";
204
214
  value: string;
@@ -215,4 +225,4 @@ declare function approvalOptionDisplayLabel(option: {
215
225
  feedback?: boolean;
216
226
  }): string;
217
227
 
218
- export { AgentInteractivePromptSurface, type BuildWorkspaceAgentMessageCenterOptions, type PromptToolDetail, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelProps, approvalOptionDisplayLabel, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModel, getPromptToolDetails, isPromptRequestIdTitle, isWaitingMessageCenterItem, managedAgentRoundedIconUrl };
228
+ export { AgentInteractivePromptSurface, type BuildWorkspaceAgentMessageCenterOptions, type PromptToolDetail, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelProps, approvalOptionDisplayLabel, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModel, getPromptToolDetails, isPromptRequestIdTitle, isWaitingMessageCenterItem, managedAgentRoundedIconUrl, userAvatarPlaceholderUrl, workspaceAgentActivityStatusLabel };
@@ -2,22 +2,30 @@ import {
2
2
  AgentInteractivePromptSurface,
3
3
  approvalOptionDisplayLabel,
4
4
  getPromptToolDetails,
5
- isPromptRequestIdTitle,
6
- managedAgentRoundedIconUrl,
7
- user_avatar_placeholder_default,
8
- workspaceAgentActivityStatusLabel
9
- } from "../chunk-CGBRAWTD.js";
10
- import "../chunk-4ASBZ4X7.js";
5
+ isPromptRequestIdTitle
6
+ } from "../chunk-WME2V26J.js";
11
7
  import {
12
- resolveWorkspaceAgentSessionSortTimeUnixMs
13
- } from "../chunk-IBIMGLCD.js";
8
+ PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
9
+ PLAN_IMPLEMENTATION_PROMPT,
10
+ latestPlanTurnId,
11
+ planImplementationPromptFromPlanTurn
12
+ } from "../chunk-MKHDRIGN.js";
14
13
  import {
15
14
  AgentMessageMarkdown,
16
15
  CustomScrollArea,
17
16
  cn,
18
17
  extractAgentMcpToolTarget,
19
18
  normalizeAskUserQuestions
20
- } from "../chunk-QTZALZIV.js";
19
+ } from "../chunk-RLPVFX7V.js";
20
+ import {
21
+ managedAgentRoundedIconUrl,
22
+ userAvatarPlaceholderUrl,
23
+ workspaceAgentActivityStatusLabel
24
+ } from "../chunk-HSXDSFKB.js";
25
+ import "../chunk-MTFSQWZ6.js";
26
+ import {
27
+ resolveWorkspaceAgentSessionSortTimeUnixMs
28
+ } from "../chunk-IBIMGLCD.js";
21
29
  import {
22
30
  workspaceAgentProviderLabel
23
31
  } from "../chunk-TYGL25EL.js";
@@ -27,14 +35,8 @@ import {
27
35
  import {
28
36
  AgentGuiI18nProvider,
29
37
  useTranslation
30
- } from "../chunk-B7K776UD.js";
38
+ } from "../chunk-FSTZDNRM.js";
31
39
  import "../chunk-PJP5BUU6.js";
32
- import {
33
- PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
34
- PLAN_IMPLEMENTATION_PROMPT,
35
- latestPlanTurnId,
36
- planImplementationPromptFromPlanTurn
37
- } from "../chunk-MKHDRIGN.js";
38
40
 
39
41
  // agent-message-center/WorkspaceAgentMessageCenterPanel.tsx
40
42
  import {
@@ -218,6 +220,7 @@ function meaningfulMessageSummary(message) {
218
220
  function messageSummaryCandidates(message) {
219
221
  const explicitCandidates = [
220
222
  summaryCandidate("payload.summary", message.payload.summary),
223
+ summaryCandidate("payload.displayPrompt", message.payload.displayPrompt),
221
224
  summaryCandidate("payload.text", message.payload.text),
222
225
  summaryCandidate("payload.content", message.payload.content),
223
226
  summaryCandidate("payload.message", message.payload.message),
@@ -892,6 +895,7 @@ function includesAny2(value, needles) {
892
895
  function messageSummary(message) {
893
896
  return firstNonEmptyString2(
894
897
  stringValue2(message.payload.summary),
898
+ stringValue2(message.payload.displayPrompt),
895
899
  stringValue2(message.payload.text),
896
900
  stringValue2(message.payload.content),
897
901
  stringValue2(message.payload.message),
@@ -1527,7 +1531,7 @@ function MessageCenterIdentityAvatarStack({
1527
1531
  "use memo";
1528
1532
  const [userAvatarFailed, setUserAvatarFailed] = useState(false);
1529
1533
  const userAvatarUrl = rawUserAvatarUrl?.trim() ?? "";
1530
- const userImageUrl = userAvatarUrl.length > 0 && !userAvatarFailed ? userAvatarUrl : user_avatar_placeholder_default;
1534
+ const userImageUrl = userAvatarUrl.length > 0 && !userAvatarFailed ? userAvatarUrl : userAvatarPlaceholderUrl;
1531
1535
  useEffect(() => {
1532
1536
  setUserAvatarFailed(false);
1533
1537
  }, [userAvatarUrl]);
@@ -2131,34 +2135,40 @@ function MessageCenterViewMenu({
2131
2135
  ),
2132
2136
  /* @__PURE__ */ jsx4(DropdownMenuSeparator, {}),
2133
2137
  /* @__PURE__ */ jsx4(DropdownMenuLabel, { children: t("agentHost.workspaceAgentMessageCenterFilterStatus") }),
2134
- /* @__PURE__ */ jsx4(DropdownMenuGroup, { children: statusOptions.map((option) => /* @__PURE__ */ jsxs3(
2138
+ /* @__PURE__ */ jsx4(DropdownMenuGroup, { children: statusOptions.map((option) => /* @__PURE__ */ jsx4(
2135
2139
  DropdownMenuCheckboxItem,
2136
2140
  {
2137
2141
  "aria-label": `${option.label} ${option.count}`,
2138
2142
  checked: statusFilters === null || statusFilters.has(option.value),
2139
2143
  onCheckedChange: () => onStatusToggle(option.value),
2140
2144
  onSelect: (event) => event.preventDefault(),
2141
- children: [
2142
- /* @__PURE__ */ jsx4("span", { className: "min-w-0 flex-1 truncate", children: option.label }),
2143
- /* @__PURE__ */ jsx4("span", { className: "ml-auto text-[11px] text-[var(--text-tertiary)]", children: option.count })
2144
- ]
2145
+ children: /* @__PURE__ */ jsx4(
2146
+ MessageCenterOptionWithCount,
2147
+ {
2148
+ count: option.count,
2149
+ label: option.label
2150
+ }
2151
+ )
2145
2152
  },
2146
2153
  option.value
2147
2154
  )) }),
2148
2155
  providerOptions.length > 0 ? /* @__PURE__ */ jsxs3(Fragment, { children: [
2149
2156
  /* @__PURE__ */ jsx4(DropdownMenuSeparator, {}),
2150
2157
  /* @__PURE__ */ jsx4(DropdownMenuLabel, { children: t("agentHost.workspaceAgentMessageCenterFilterAgent") }),
2151
- /* @__PURE__ */ jsx4(DropdownMenuGroup, { children: providerOptions.map((option) => /* @__PURE__ */ jsxs3(
2158
+ /* @__PURE__ */ jsx4(DropdownMenuGroup, { children: providerOptions.map((option) => /* @__PURE__ */ jsx4(
2152
2159
  DropdownMenuCheckboxItem,
2153
2160
  {
2154
2161
  "aria-label": `${option.label} ${option.count}`,
2155
2162
  checked: providerFilters === null || providerFilters.has(option.value),
2156
2163
  onCheckedChange: () => onProviderToggle(option.value),
2157
2164
  onSelect: (event) => event.preventDefault(),
2158
- children: [
2159
- /* @__PURE__ */ jsx4("span", { className: "min-w-0 flex-1 truncate", children: option.label }),
2160
- /* @__PURE__ */ jsx4("span", { className: "ml-auto text-[11px] text-[var(--text-tertiary)]", children: option.count })
2161
- ]
2165
+ children: /* @__PURE__ */ jsx4(
2166
+ MessageCenterOptionWithCount,
2167
+ {
2168
+ count: option.count,
2169
+ label: option.label
2170
+ }
2171
+ )
2162
2172
  },
2163
2173
  option.value
2164
2174
  )) })
@@ -2170,6 +2180,15 @@ function MessageCenterViewMenu({
2170
2180
  )
2171
2181
  ] });
2172
2182
  }
2183
+ function MessageCenterOptionWithCount({
2184
+ count,
2185
+ label
2186
+ }) {
2187
+ return /* @__PURE__ */ jsxs3("span", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
2188
+ /* @__PURE__ */ jsx4("span", { className: "min-w-0 flex-1 truncate", children: label }),
2189
+ /* @__PURE__ */ jsx4("span", { className: "shrink-0 tabular-nums text-[11px] text-[var(--text-tertiary)]", children: count })
2190
+ ] });
2191
+ }
2173
2192
 
2174
2193
  // agent-message-center/WorkspaceAgentMessageCenterPanel.tsx
2175
2194
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
@@ -2678,6 +2697,8 @@ export {
2678
2697
  getPromptToolDetails,
2679
2698
  isPromptRequestIdTitle,
2680
2699
  isWaitingMessageCenterItem,
2681
- managedAgentRoundedIconUrl
2700
+ managedAgentRoundedIconUrl,
2701
+ userAvatarPlaceholderUrl,
2702
+ workspaceAgentActivityStatusLabel
2682
2703
  };
2683
2704
  //# sourceMappingURL=index.js.map