@tutti-os/agent-gui 0.0.104 → 0.0.105

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 (81) hide show
  1. package/dist/{AgentGUI-DQ9gVoXh.d.ts → AgentGUI-Do6py-T_.d.ts} +10 -5
  2. package/dist/AgentRichTextReadonly-F6PHC5SX.js +18 -0
  3. package/dist/AgentRichTextReadonly-F6PHC5SX.js.map +1 -0
  4. package/dist/agent-conversation/index.d.ts +3 -3
  5. package/dist/agent-conversation/index.js +11 -7
  6. package/dist/agent-conversation/index.js.map +1 -1
  7. package/dist/agent-gui.d.ts +4 -4
  8. package/dist/agent-gui.js +18 -14
  9. package/dist/agent-message-center/index.d.ts +1 -1
  10. package/dist/agent-message-center/index.js +13 -9
  11. package/dist/agent-message-center/index.js.map +1 -1
  12. package/dist/{agentConversationVM-CkcYM5Wg.d.ts → agentConversationVM-Bf3Zv3iI.d.ts} +9 -1
  13. package/dist/{agentFileMentionContracts-58IjMU-u.d.ts → agentFileMentionContracts-B70VnPWO.d.ts} +2 -0
  14. package/dist/{agentGuiNodeTypes-B9vcvjmR.d.ts → agentGuiNodeTypes-DbgQBiYz.d.ts} +4 -1
  15. package/dist/app/renderer/agentactivity.css +99 -0
  16. package/dist/{chunk-FJ4W2VC5.js → chunk-4ZWV57MF.js} +42 -10
  17. package/dist/chunk-4ZWV57MF.js.map +1 -0
  18. package/dist/{chunk-VAB7EIL5.js → chunk-6R7GHXRQ.js} +12 -6
  19. package/dist/chunk-6R7GHXRQ.js.map +1 -0
  20. package/dist/{chunk-TPV2SV6L.js → chunk-7MPN2JGL.js} +122 -154
  21. package/dist/chunk-7MPN2JGL.js.map +1 -0
  22. package/dist/{chunk-5X7YDOC6.js → chunk-D2JUDUYY.js} +1 -1
  23. package/dist/chunk-D2JUDUYY.js.map +1 -0
  24. package/dist/{chunk-HLVC4NNL.js → chunk-IR2CL2X2.js} +721 -1280
  25. package/dist/chunk-IR2CL2X2.js.map +1 -0
  26. package/dist/{chunk-NOXQOGT5.js → chunk-J2HG7UCP.js} +46 -22
  27. package/dist/chunk-J2HG7UCP.js.map +1 -0
  28. package/dist/{chunk-747L443E.js → chunk-JG7HGKZL.js} +595 -61
  29. package/dist/chunk-JG7HGKZL.js.map +1 -0
  30. package/dist/chunk-KPMQGPYU.js +43 -0
  31. package/dist/chunk-KPMQGPYU.js.map +1 -0
  32. package/dist/{chunk-OFSDOID4.js → chunk-LDZ6C3YV.js} +3 -39
  33. package/dist/chunk-LDZ6C3YV.js.map +1 -0
  34. package/dist/{chunk-7N524ZK7.js → chunk-N3HTEYLZ.js} +1308 -936
  35. package/dist/chunk-N3HTEYLZ.js.map +1 -0
  36. package/dist/{chunk-MUPZPISC.js → chunk-N4WVVCNI.js} +2 -2
  37. package/dist/{chunk-F5LFPORI.js → chunk-OWW7CU4U.js} +2 -2
  38. package/dist/chunk-SN6UYX54.js +42 -0
  39. package/dist/chunk-SN6UYX54.js.map +1 -0
  40. package/dist/{chunk-SKCLZXSW.js → chunk-TKBEVCHG.js} +5 -1
  41. package/dist/chunk-TKBEVCHG.js.map +1 -0
  42. package/dist/chunk-UFIEUC3Y.js +755 -0
  43. package/dist/chunk-UFIEUC3Y.js.map +1 -0
  44. package/dist/{chunk-AKKDP2LI.js → chunk-V5ROOS2O.js} +124 -2
  45. package/dist/chunk-V5ROOS2O.js.map +1 -0
  46. package/dist/chunk-XJ34OIEQ.js +18 -0
  47. package/dist/chunk-XJ34OIEQ.js.map +1 -0
  48. package/dist/{chunk-QI3JAO4J.js → chunk-ZSJBCZUH.js} +54 -7
  49. package/dist/chunk-ZSJBCZUH.js.map +1 -0
  50. package/dist/context-mention-palette/index.d.ts +1 -1
  51. package/dist/context-mention-palette/index.js +10 -8
  52. package/dist/{contribution-CTVBPN0R.d.ts → contribution-C6K5YfJ7.d.ts} +1 -0
  53. package/dist/custom-mention.d.ts +6 -0
  54. package/dist/custom-mention.js +1 -1
  55. package/dist/i18n/index.d.ts +4 -0
  56. package/dist/i18n/index.js +2 -2
  57. package/dist/index.d.ts +6 -6
  58. package/dist/index.js +18 -14
  59. package/dist/index.js.map +1 -1
  60. package/dist/mention-search.d.ts +42 -6
  61. package/dist/mention-search.js +8 -6
  62. package/dist/workbench/contribution.d.ts +1 -1
  63. package/dist/workbench/contribution.js +3 -3
  64. package/dist/workbench/index.d.ts +3 -2
  65. package/dist/workbench/index.js +3 -3
  66. package/dist/workbench/sessionTitle.js +2 -2
  67. package/package.json +12 -12
  68. package/dist/chunk-5X7YDOC6.js.map +0 -1
  69. package/dist/chunk-747L443E.js.map +0 -1
  70. package/dist/chunk-7N524ZK7.js.map +0 -1
  71. package/dist/chunk-AKKDP2LI.js.map +0 -1
  72. package/dist/chunk-FJ4W2VC5.js.map +0 -1
  73. package/dist/chunk-HLVC4NNL.js.map +0 -1
  74. package/dist/chunk-NOXQOGT5.js.map +0 -1
  75. package/dist/chunk-OFSDOID4.js.map +0 -1
  76. package/dist/chunk-QI3JAO4J.js.map +0 -1
  77. package/dist/chunk-SKCLZXSW.js.map +0 -1
  78. package/dist/chunk-TPV2SV6L.js.map +0 -1
  79. package/dist/chunk-VAB7EIL5.js.map +0 -1
  80. /package/dist/{chunk-MUPZPISC.js.map → chunk-N4WVVCNI.js.map} +0 -0
  81. /package/dist/{chunk-F5LFPORI.js.map → chunk-OWW7CU4U.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { A as AgentContextMentionItem } from './agentFileMentionContracts-58IjMU-u.js';
1
+ import { A as AgentContextMentionItem } from './agentFileMentionContracts-B70VnPWO.js';
2
2
  import { AgentContextMentionProvider } from './context-mention-provider.js';
3
3
  import { MentionPaletteGroup, MentionPaletteState } from '@tutti-os/ui-rich-text/at-panel';
4
4
  import { ReferenceProvenanceFilter } from '@tutti-os/workspace-file-reference/contracts';
@@ -33,10 +33,21 @@ interface AgentMentionSearchDiagnosticLog {
33
33
  }
34
34
 
35
35
  type AgentMentionFilterId = "session" | "file" | "issue" | "agent" | "app";
36
- type AgentMentionGroupId = "apps" | "agents" | "files" | "opened_files" | "agent_generated_files" | "my_sessions" | "collab_sessions" | "issues";
37
- type AgentMentionRawGroupId = Exclude<AgentMentionGroupId, "files">;
36
+ type AgentMentionStaticGroupId = "apps" | "agents" | "files" | "opened_files" | "agent_generated_files" | "my_sessions" | "collab_sessions" | "issues";
37
+ type AgentMentionGroupId = AgentMentionStaticGroupId | `issue-topic:${string}`;
38
+ type AgentMentionRawGroupId = Exclude<AgentMentionStaticGroupId, "files">;
38
39
  type AgentMentionRawGroups = Record<AgentMentionRawGroupId, AgentContextMentionItem[]>;
39
40
  type AgentMentionTotalCounts = Partial<Record<AgentMentionGroupId, number>>;
41
+ interface AgentMentionIssueTopicGroup {
42
+ id: `issue-topic:${string}`;
43
+ providerGroupId: string;
44
+ label: string;
45
+ items: AgentContextMentionItem[];
46
+ totalCount: number;
47
+ nextPageToken: string | null;
48
+ loadMoreStatus: "idle" | "loading" | "error";
49
+ loadMoreError: string | null;
50
+ }
40
51
  interface AgentMentionBrowseCategory {
41
52
  id: AgentMentionFilterId;
42
53
  label: string;
@@ -64,6 +75,7 @@ interface AgentMentionBrowseFetchResult {
64
75
  providerDiagnostics: AgentMentionProviderQueryDiagnostic[];
65
76
  rawGroups: AgentMentionRawGroups;
66
77
  totalCounts: AgentMentionTotalCounts;
78
+ issueTopicGroups: AgentMentionIssueTopicGroup[] | null;
67
79
  }
68
80
  interface AgentMentionBrowseCacheEntry extends AgentMentionBrowseFetchResult {
69
81
  cachedAt: number;
@@ -97,6 +109,7 @@ declare class AgentMentionSearchControllerBase {
97
109
  protected preloadCancel: (() => void) | null;
98
110
  protected pendingPreloadKey: string | null;
99
111
  protected requestId: number;
112
+ protected activeRequestAbortController: AbortController | null;
100
113
  protected disposed: boolean;
101
114
  protected activeWorkspaceId: string;
102
115
  protected currentUserId: string;
@@ -108,6 +121,7 @@ declare class AgentMentionSearchControllerBase {
108
121
  protected currentIssueSearchLimit: number;
109
122
  protected agentGeneratedBrowsePath: string | null;
110
123
  protected rawGroups: AgentMentionRawGroups;
124
+ protected issueTopicGroups: AgentMentionIssueTopicGroup[] | null;
111
125
  protected state: AgentMentionSearchState;
112
126
  constructor(options: AgentMentionSearchControllerOptions);
113
127
  protected startBrowseModeFetch(filter: AgentMentionFilterId): void;
@@ -117,6 +131,9 @@ declare class AgentMentionSearchControllerBase {
117
131
  query: string;
118
132
  requestId: number;
119
133
  filter: AgentMentionFilterId;
134
+ provenanceFilter: ReferenceProvenanceFilter | null;
135
+ sessionCwd: string;
136
+ abortSignal?: AbortSignal;
120
137
  }): Promise<void>;
121
138
  protected runBrowseSearch(input: {
122
139
  workspaceId: string;
@@ -124,13 +141,14 @@ declare class AgentMentionSearchControllerBase {
124
141
  requestId: number;
125
142
  filter: AgentMentionFilterId;
126
143
  sessionCwd: string;
144
+ abortSignal: AbortSignal;
127
145
  }): Promise<void>;
128
146
  protected fetchBrowseResult(input: {
129
147
  workspaceId: string;
130
148
  currentUserId: string;
131
149
  filter: AgentMentionFilterId;
132
150
  sessionCwd: string;
133
- }, provenanceFilter?: ReferenceProvenanceFilter | null): Promise<AgentMentionBrowseFetchResult>;
151
+ }, provenanceFilter?: ReferenceProvenanceFilter | null, abortSignal?: AbortSignal): Promise<AgentMentionBrowseFetchResult>;
134
152
  protected applyBrowseFetchResult(result: AgentMentionBrowseFetchResult): void;
135
153
  protected logBrowseCacheState(input: {
136
154
  cacheKey: string;
@@ -153,7 +171,19 @@ declare class AgentMentionSearchControllerBase {
153
171
  limit?: number;
154
172
  sessionCwd?: string;
155
173
  provenanceFilter: ReferenceProvenanceFilter | null;
174
+ abortSignal?: AbortSignal;
156
175
  }): Promise<AgentContextMentionItem[]>;
176
+ protected queryProviderMentionGroupsById(input: {
177
+ diagnostics: AgentMentionProviderQueryDiagnostic[];
178
+ providerId: string;
179
+ workspaceId: string;
180
+ currentUserId: string;
181
+ query: string;
182
+ limit?: number;
183
+ sessionCwd?: string;
184
+ provenanceFilter: ReferenceProvenanceFilter | null;
185
+ abortSignal?: AbortSignal;
186
+ }): Promise<AgentMentionIssueTopicGroup[] | null>;
157
187
  protected logSearchDiagnostic(input: {
158
188
  error?: unknown;
159
189
  filter: AgentMentionFilterId;
@@ -191,7 +221,7 @@ declare class AgentMentionSearchControllerBase {
191
221
  currentUserId: string;
192
222
  filter: AgentMentionFilterId;
193
223
  sessionCwd: string;
194
- }, cacheKey: string, reason: AgentMentionBrowseLoadReason, provenanceFilter?: ReferenceProvenanceFilter | null): Promise<AgentMentionBrowseFetchResult>;
224
+ }, cacheKey: string, reason: AgentMentionBrowseLoadReason, provenanceFilter?: ReferenceProvenanceFilter | null, abortSignal?: AbortSignal): Promise<AgentMentionBrowseFetchResult>;
195
225
  protected fetchFilterResult(input: {
196
226
  workspaceId: string;
197
227
  currentUserId: string;
@@ -199,10 +229,13 @@ declare class AgentMentionSearchControllerBase {
199
229
  filter: AgentMentionFilterId;
200
230
  sessionCwd: string;
201
231
  includeAgentGeneratedFiles: boolean;
202
- }, provenanceFilter?: ReferenceProvenanceFilter | null): Promise<AgentMentionBrowseFetchResult>;
232
+ }, provenanceFilter?: ReferenceProvenanceFilter | null, abortSignal?: AbortSignal): Promise<AgentMentionBrowseFetchResult>;
233
+ protected beginActiveRequest(): AbortSignal;
234
+ protected abortActiveRequest(): void;
203
235
  }
204
236
 
205
237
  declare class AgentMentionSearchController extends AgentMentionSearchControllerBase {
238
+ private readonly issueLoadMoreRequests;
206
239
  setProvenanceFilter(filter: ReferenceProvenanceFilter | null): void;
207
240
  subscribe(listener: AgentMentionSearchListener): () => void;
208
241
  updateQuery(input: {
@@ -226,6 +259,9 @@ declare class AgentMentionSearchController extends AgentMentionSearchControllerB
226
259
  expandGroup(groupId: AgentMentionGroupId): void;
227
260
  close(): void;
228
261
  dispose(): void;
262
+ private loadMoreIssueTopic;
263
+ private emitIssueTopicGroupsState;
264
+ private cancelIssueLoadMoreRequests;
229
265
  }
230
266
  declare function preloadAgentMentionBrowse(input: {
231
267
  workspaceId: string;
@@ -3,20 +3,22 @@ import {
3
3
  MAX_BROWSE_CACHE_ENTRIES,
4
4
  preloadAgentMentionBrowse,
5
5
  resetAgentMentionSearchBrowseCacheForTests
6
- } from "./chunk-747L443E.js";
6
+ } from "./chunk-JG7HGKZL.js";
7
7
  import "./chunk-4YCCATI4.js";
8
- import "./chunk-NOXQOGT5.js";
8
+ import "./chunk-XJ34OIEQ.js";
9
+ import "./chunk-J2HG7UCP.js";
9
10
  import "./chunk-LUGELG5V.js";
10
11
  import "./chunk-JM24HADP.js";
11
12
  import "./chunk-YMXYBG7U.js";
12
- import "./chunk-OFSDOID4.js";
13
+ import "./chunk-LDZ6C3YV.js";
13
14
  import "./chunk-F5UR6EJG.js";
15
+ import "./chunk-SN6UYX54.js";
14
16
  import "./chunk-PJP5BUU6.js";
15
17
  import "./chunk-H6IQ63DQ.js";
16
18
  import "./chunk-MIJXEELH.js";
17
- import "./chunk-F5LFPORI.js";
18
- import "./chunk-SKCLZXSW.js";
19
- import "./chunk-5X7YDOC6.js";
19
+ import "./chunk-OWW7CU4U.js";
20
+ import "./chunk-TKBEVCHG.js";
21
+ import "./chunk-D2JUDUYY.js";
20
22
  import "./chunk-KJQERFKX.js";
21
23
  import "./chunk-UGVI47X6.js";
22
24
  export {
@@ -1,6 +1,6 @@
1
1
  import 'react';
2
2
  import '@tutti-os/agent-activity-core';
3
3
  import '@tutti-os/workbench-surface';
4
- export { A as AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, a as AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, b as AGENT_GUI_WORKBENCH_OPEN_EXTERNAL_IMPORT_EVENT, c as AgentGuiWorkbenchContributionCopy, d as AgentGuiWorkbenchContributionCopyOverrides, e as AgentGuiWorkbenchConversationIdentity, f as AgentGuiWorkbenchConversationRailToggleDetail, g as AgentGuiWorkbenchNewConversationDetail, h as AgentGuiWorkbenchProviderAvailability, i as AgentGuiWorkbenchRenderBodyHelpers, B as BuildAgentGuiDockEntriesInput, C as CreateAgentGuiWorkbenchContributionInput, j as agentGuiWorkbenchCompactVisibleAreaRatio, l as agentGuiWorkbenchDefaultCopy, m as agentGuiWorkbenchDefaultNodeFrame, n as agentGuiWorkbenchDefaultUsableHeightRatio, o as agentGuiWorkbenchDefaultUsableWidthRatio, p as agentGuiWorkbenchNewWindowCascadeOffset, q as agentGuiWorkbenchProviderRailWidthPx, r as buildAgentGuiDockEntries, s as createAgentGuiWorkbenchContribution, t as resolveAgentGuiUnifiedDockLaunchPayload, u as resolveAgentGuiWorkbenchContributionCopy, w as resolveAgentGuiWorkbenchDefaultLaunchFrame } from '../contribution-CTVBPN0R.js';
4
+ export { A as AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, a as AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, b as AGENT_GUI_WORKBENCH_OPEN_EXTERNAL_IMPORT_EVENT, c as AgentGuiWorkbenchContributionCopy, d as AgentGuiWorkbenchContributionCopyOverrides, e as AgentGuiWorkbenchConversationIdentity, f as AgentGuiWorkbenchConversationRailToggleDetail, g as AgentGuiWorkbenchNewConversationDetail, h as AgentGuiWorkbenchProviderAvailability, i as AgentGuiWorkbenchRenderBodyHelpers, B as BuildAgentGuiDockEntriesInput, C as CreateAgentGuiWorkbenchContributionInput, j as agentGuiWorkbenchCompactVisibleAreaRatio, l as agentGuiWorkbenchDefaultCopy, m as agentGuiWorkbenchDefaultNodeFrame, n as agentGuiWorkbenchDefaultUsableHeightRatio, o as agentGuiWorkbenchDefaultUsableWidthRatio, p as agentGuiWorkbenchNewWindowCascadeOffset, q as agentGuiWorkbenchProviderRailWidthPx, r as buildAgentGuiDockEntries, s as createAgentGuiWorkbenchContribution, t as resolveAgentGuiUnifiedDockLaunchPayload, u as resolveAgentGuiWorkbenchContributionCopy, w as resolveAgentGuiWorkbenchDefaultLaunchFrame } from '../contribution-C6K5YfJ7.js';
5
5
  import './types.js';
6
6
  import '../types-CnT8rNUI.js';
@@ -14,8 +14,8 @@ import {
14
14
  resolveAgentGuiUnifiedDockLaunchPayload,
15
15
  resolveAgentGuiWorkbenchContributionCopy,
16
16
  resolveAgentGuiWorkbenchDefaultLaunchFrame
17
- } from "../chunk-QI3JAO4J.js";
18
- import "../chunk-AKKDP2LI.js";
17
+ } from "../chunk-ZSJBCZUH.js";
18
+ import "../chunk-V5ROOS2O.js";
19
19
  import "../chunk-4YVKAPKW.js";
20
20
  import "../chunk-QY22OBJS.js";
21
21
  import "../chunk-L3GMMGRS.js";
@@ -25,7 +25,7 @@ import "../chunk-4YG7YK7S.js";
25
25
  import "../chunk-2RQM7PJN.js";
26
26
  import "../chunk-H6IQ63DQ.js";
27
27
  import "../chunk-MIJXEELH.js";
28
- import "../chunk-SKCLZXSW.js";
28
+ import "../chunk-TKBEVCHG.js";
29
29
  import "../chunk-KJQERFKX.js";
30
30
  import "../chunk-UGVI47X6.js";
31
31
  export {
@@ -1,4 +1,4 @@
1
- export { A as AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, a as AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, c as AgentGuiWorkbenchContributionCopy, d as AgentGuiWorkbenchContributionCopyOverrides, e as AgentGuiWorkbenchConversationIdentity, f as AgentGuiWorkbenchConversationRailToggleDetail, g as AgentGuiWorkbenchNewConversationDetail, h as AgentGuiWorkbenchProviderAvailability, i as AgentGuiWorkbenchRenderBodyHelpers, B as BuildAgentGuiDockEntriesInput, C as CreateAgentGuiWorkbenchContributionInput, k as agentGuiWorkbenchConversationIdentitiesEqual, l as agentGuiWorkbenchDefaultCopy, m as agentGuiWorkbenchDefaultNodeFrame, r as buildAgentGuiDockEntries, s as createAgentGuiWorkbenchContribution, t as resolveAgentGuiUnifiedDockLaunchPayload, u as resolveAgentGuiWorkbenchContributionCopy, v as resolveAgentGuiWorkbenchConversationIdentity } from '../contribution-CTVBPN0R.js';
1
+ export { A as AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, a as AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, c as AgentGuiWorkbenchContributionCopy, d as AgentGuiWorkbenchContributionCopyOverrides, e as AgentGuiWorkbenchConversationIdentity, f as AgentGuiWorkbenchConversationRailToggleDetail, g as AgentGuiWorkbenchNewConversationDetail, h as AgentGuiWorkbenchProviderAvailability, i as AgentGuiWorkbenchRenderBodyHelpers, B as BuildAgentGuiDockEntriesInput, C as CreateAgentGuiWorkbenchContributionInput, k as agentGuiWorkbenchConversationIdentitiesEqual, l as agentGuiWorkbenchDefaultCopy, m as agentGuiWorkbenchDefaultNodeFrame, r as buildAgentGuiDockEntries, s as createAgentGuiWorkbenchContribution, t as resolveAgentGuiUnifiedDockLaunchPayload, u as resolveAgentGuiWorkbenchContributionCopy, v as resolveAgentGuiWorkbenchConversationIdentity } from '../contribution-C6K5YfJ7.js';
2
2
  export { agentGuiWorkbenchComingSoonProviders, agentGuiWorkbenchDefaultDockProviders, agentGuiWorkbenchDockSuppressedProviders, agentGuiWorkbenchProviderLabels, agentGuiWorkbenchProviders, isAgentGuiWorkbenchComingSoonProvider, isAgentGuiWorkbenchDefaultDockProvider, isAgentGuiWorkbenchDockSuppressedProvider, isAgentGuiWorkbenchProvider, normalizeAgentGuiWorkbenchProvider, resolveAgentGuiWorkbenchProviderLabel } from './providerCatalog.js';
3
3
  export { AgentGuiWorkbenchLaunchDescriptor, agentGuiWorkbenchDockEntryId, agentGuiWorkbenchDockIdentityFromIdentifier, agentGuiWorkbenchInstanceId, agentGuiWorkbenchProviderFromIdentifier, agentGuiWorkbenchProviderFromLaunchRequest, agentGuiWorkbenchTypeId, agentGuiWorkbenchUnifiedDockEntryId, createAgentGuiWorkbenchDraftLaunchRequest, createAgentGuiWorkbenchInstanceId, createAgentGuiWorkbenchLaunchDescriptor, createAgentGuiWorkbenchSessionLaunchRequest, resolveAgentGuiWorkbenchLaunchDockEntryId } from './launch.js';
4
4
  export { agentGuiWorkbenchProviderFromInstanceId, areAgentGuiWorkbenchNodeStatesEqual, areAgentGuiWorkbenchStatesEqual, createAgentGuiWorkbenchNodeStateSource, createDefaultAgentGuiWorkbenchNodeState, normalizeAgentGuiWorkbenchNodeState, normalizeAgentGuiWorkbenchState, projectAgentGuiWorkbenchState } from './state.js';
@@ -36,6 +36,7 @@ interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {
36
36
  primaryAccessory?: ReactNode;
37
37
  secondaryAccessory?: ReactNode;
38
38
  conversationTitle?: string | null;
39
+ conversationTitleDisplayPrompt?: string | null;
39
40
  nodeId: string;
40
41
  onCreateConversation?: () => void;
41
42
  onOpenDetachedWindow?: () => void;
@@ -46,6 +47,6 @@ interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {
46
47
  title?: string;
47
48
  windowActions?: Pick<WorkbenchHostNodeHeaderWindowActions, "close" | "minimize" | "toggleDisplayMode">;
48
49
  }
49
- declare function AgentGuiWorkbenchHeader({ className, copy, agentTitle, defaultActions: _defaultActions, displayMode, isConversationRailAutoCollapsed, isConversationRailCollapsed, conversationRailWidthPx, conversationIconUrl, conversationIconFallbackUrl, hasConversation, providerRailWidthPx, primaryAccessory, secondaryAccessory, conversationTitle, nodeId, onCreateConversation, onOpenDetachedWindow, onToggleConversationRail, showAppTitle, showConversationRailToggle, showWindowControls, title: _title, windowActions, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
50
+ declare function AgentGuiWorkbenchHeader({ className, copy, agentTitle, defaultActions: _defaultActions, displayMode, isConversationRailAutoCollapsed, isConversationRailCollapsed, conversationRailWidthPx, conversationIconUrl, conversationIconFallbackUrl, hasConversation, providerRailWidthPx, primaryAccessory, secondaryAccessory, conversationTitle, conversationTitleDisplayPrompt, nodeId, onCreateConversation, onOpenDetachedWindow, onToggleConversationRail, showAppTitle, showConversationRailToggle, showWindowControls, title: _title, windowActions, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
50
51
 
51
52
  export { AgentGuiWorkbenchHeader, type AgentGuiWorkbenchHeaderCopy, type AgentGuiWorkbenchHeaderProps };
@@ -10,11 +10,11 @@ import {
10
10
  resolveAgentGuiUnifiedDockLaunchPayload,
11
11
  resolveAgentGuiWorkbenchContributionCopy,
12
12
  resolveAgentGuiWorkbenchConversationIdentity
13
- } from "../chunk-QI3JAO4J.js";
13
+ } from "../chunk-ZSJBCZUH.js";
14
14
  import {
15
15
  resolveAgentGuiWorkbenchHeaderTitle,
16
16
  resolveAgentGuiWorkbenchSessionTitle
17
- } from "../chunk-AKKDP2LI.js";
17
+ } from "../chunk-V5ROOS2O.js";
18
18
  import {
19
19
  agentGuiWorkbenchProviderFromInstanceId,
20
20
  areAgentGuiWorkbenchNodeStatesEqual,
@@ -61,7 +61,7 @@ import "../chunk-4YG7YK7S.js";
61
61
  import "../chunk-2RQM7PJN.js";
62
62
  import "../chunk-H6IQ63DQ.js";
63
63
  import "../chunk-MIJXEELH.js";
64
- import "../chunk-SKCLZXSW.js";
64
+ import "../chunk-TKBEVCHG.js";
65
65
  import "../chunk-KJQERFKX.js";
66
66
  import "../chunk-UGVI47X6.js";
67
67
  export {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resolveAgentGuiWorkbenchHeaderTitle,
3
3
  resolveAgentGuiWorkbenchSessionTitle
4
- } from "../chunk-AKKDP2LI.js";
4
+ } from "../chunk-V5ROOS2O.js";
5
5
  import "../chunk-MIJXEELH.js";
6
- import "../chunk-SKCLZXSW.js";
6
+ import "../chunk-TKBEVCHG.js";
7
7
  import "../chunk-KJQERFKX.js";
8
8
  export {
9
9
  resolveAgentGuiWorkbenchHeaderTitle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutti-os/agent-gui",
3
- "version": "0.0.104",
3
+ "version": "0.0.105",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -124,17 +124,17 @@
124
124
  "@tiptap/react": "^3.11.1",
125
125
  "@tiptap/starter-kit": "^3.11.1",
126
126
  "@tiptap/suggestion": "^3.11.1",
127
- "@tutti-os/agent-activity-core": "0.0.104",
128
- "@tutti-os/ui-i18n-runtime": "0.0.104",
129
- "@tutti-os/ui-react-hooks": "0.0.104",
130
- "@tutti-os/ui-rich-text": "0.0.104",
131
- "@tutti-os/ui-system": "0.0.104",
132
- "@tutti-os/workbench-surface": "0.0.104",
133
- "@tutti-os/workspace-external-core": "0.0.104",
134
- "@tutti-os/workspace-file-manager": "0.0.104",
135
- "@tutti-os/workspace-file-reference": "0.0.104",
136
- "@tutti-os/workspace-issue-manager": "0.0.104",
137
- "@tutti-os/workspace-user-project": "0.0.104",
127
+ "@tutti-os/agent-activity-core": "0.0.105",
128
+ "@tutti-os/ui-i18n-runtime": "0.0.105",
129
+ "@tutti-os/ui-react-hooks": "0.0.105",
130
+ "@tutti-os/ui-rich-text": "0.0.105",
131
+ "@tutti-os/ui-system": "0.0.105",
132
+ "@tutti-os/workbench-surface": "0.0.105",
133
+ "@tutti-os/workspace-external-core": "0.0.105",
134
+ "@tutti-os/workspace-file-manager": "0.0.105",
135
+ "@tutti-os/workspace-file-reference": "0.0.105",
136
+ "@tutti-os/workspace-issue-manager": "0.0.105",
137
+ "@tutti-os/workspace-user-project": "0.0.105",
138
138
  "clsx": "^2.1.1",
139
139
  "framer-motion": "^12.40.0",
140
140
  "lodash": "^4.17.21",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../shared/agentCustomMentionKinds.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\n// 自定义 mention kind 注册表:让宿主(如 tsh)从外部注册 mention://<kind>/... 链接的\n// 解析与 composer 内 chip 渲染,包内不内置任何具体业务 kind。\n//\n// 管线接点:\n// - 解析:agentFileMentionExtension.parseMentionItemFromHref 命中注册 kind 时产出\n// AgentMentionCustomItem(展示字段由 present() 提取;href 是完整信息源,round-trip 无损)\n// - 渲染:AgentMentionNodeView 对 kind===\"custom\" 调 renderChip(),缺省用包内通用双行卡\n// - 点击:clickable 的 kind 经 resolveWorkspaceMentionLinkAction 上抛\n// open-custom-mention 链接动作(携带原始 href,宿主自行二次解析)\n//\n// 注册时机:宿主渲染进程 bootstrap(早于首个 composer 挂载);模块级单例,重复注册以\n// 后者为准(HMR 友好)。\n\nexport interface AgentCustomMentionIdentity {\n entityId: string;\n label: string;\n scope?: Readonly<Record<string, string>>;\n}\n\nexport interface AgentCustomMentionPresentation {\n /** chip 第一行(缺省用链接 label)。 */\n name: string;\n /** chip 第二行(可选,通用双行卡的次要文案)。 */\n summary?: string;\n /** 所属 workspace(可选;custom kind 的 scope 键由注册方约定)。 */\n workspaceId?: string;\n}\n\nexport interface AgentCustomMentionChipContext {\n href: string;\n name: string;\n summary?: string;\n isEditable: boolean;\n /** 可编辑态的移除按钮,由 NodeView 注入;自定义渲染需自行摆放。 */\n removeAction?: ReactNode;\n}\n\nexport interface AgentCustomMentionKindDefinition {\n /** mention://<kind>/... 的 providerId(URL hostname,小写)。 */\n kind: string;\n /**\n * 从 canonical mention 链接提取展示字段;返回 null 表示链接无效,\n * 退化为普通链接/字面文本。\n */\n present(\n mention: AgentCustomMentionIdentity,\n href: string\n ): AgentCustomMentionPresentation | null;\n /** 自定义 chip 渲染;缺省用包内通用双行卡(name + summary)。 */\n renderChip?(context: AgentCustomMentionChipContext): ReactNode;\n /** 点击是否上抛 open-custom-mention 链接动作;缺省 false(chip 只展示)。 */\n clickable?: boolean;\n}\n\nconst registry = new Map<string, AgentCustomMentionKindDefinition>();\n\n// 包内管线已内置处理的 providerId(agentFileMentionExtension /\n// resolveWorkspaceMentionLinkAction),以及宿主侧沿用的 legacy 短名与内部 kind。\n// 注册表查找在部分链路先于内置分支执行,若放行同名注册会静默劫持内置 mention\n// 的解析——注册发生在宿主 bootstrap,直接抛错 fail-fast。\nconst RESERVED_AGENT_MENTION_PROVIDER_IDS = new Set([\n \"agent-session\",\n \"agent-target\",\n \"custom\",\n \"file\",\n \"issue\",\n \"session\",\n \"task\",\n \"workspace-app\",\n \"workspace-app-factory\",\n \"workspace-issue\",\n \"workspace-reference\"\n]);\n\nexport function registerAgentCustomMentionKind(\n definition: AgentCustomMentionKindDefinition\n): void {\n const kind = definition.kind.trim().toLowerCase();\n if (!kind) {\n throw new Error(\n \"[agent-gui] custom mention kind must be a non-empty provider id\"\n );\n }\n if (RESERVED_AGENT_MENTION_PROVIDER_IDS.has(kind)) {\n throw new Error(\n `[agent-gui] custom mention kind \"${kind}\" collides with a built-in provider id`\n );\n }\n registry.set(kind, definition);\n}\n\nexport function getAgentCustomMentionKind(\n kind: string\n): AgentCustomMentionKindDefinition | undefined {\n return registry.get(kind.trim().toLowerCase());\n}\n\nexport function resetAgentCustomMentionKindsForTests(): void {\n registry.clear();\n}\n"],"mappings":";AAwDA,IAAM,WAAW,oBAAI,IAA8C;AAMnE,IAAM,sCAAsC,oBAAI,IAAI;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,SAAS,+BACd,YACM;AACN,QAAM,OAAO,WAAW,KAAK,KAAK,EAAE,YAAY;AAChD,MAAI,CAAC,MAAM;AACT,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,oCAAoC,IAAI,IAAI,GAAG;AACjD,UAAM,IAAI;AAAA,MACR,oCAAoC,IAAI;AAAA,IAC1C;AAAA,EACF;AACA,WAAS,IAAI,MAAM,UAAU;AAC/B;AAEO,SAAS,0BACd,MAC8C;AAC9C,SAAO,SAAS,IAAI,KAAK,KAAK,EAAE,YAAY,CAAC;AAC/C;AAEO,SAAS,uCAA6C;AAC3D,WAAS,MAAM;AACjB;","names":[]}