@tutti-os/agent-gui 0.0.94 → 0.0.95

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 (153) hide show
  1. package/README.md +48 -32
  2. package/dist/AgentGUI-CwBLYtv-.d.ts +992 -0
  3. package/dist/agent-conversation/index.d.ts +5 -7
  4. package/dist/agent-conversation/index.js +12 -8
  5. package/dist/agent-conversation/index.js.map +1 -1
  6. package/dist/agent-env/index.d.ts +10 -36
  7. package/dist/agent-env/index.js +1 -56
  8. package/dist/agent-env/index.js.map +1 -1
  9. package/dist/agent-gui.d.ts +21 -0
  10. package/dist/agent-gui.js +39 -0
  11. package/dist/agent-message-center/index.d.ts +145 -124
  12. package/dist/agent-message-center/index.js +1374 -1316
  13. package/dist/agent-message-center/index.js.map +1 -1
  14. package/dist/{agentConversationVM-Cl4G0Lln.d.ts → agentConversationVM-C335TR6S.d.ts} +112 -7
  15. package/dist/agentFileMentionContracts-Czvz6YMI.d.ts +107 -0
  16. package/dist/{agentGuiNodeTypes-CAioPXK9.d.ts → agentGuiNodeTypes-DppADPHW.d.ts} +96 -148
  17. package/dist/agentPlanPromptDispatch-C7cCMjve.d.ts +37 -0
  18. package/dist/agents.d.ts +13 -0
  19. package/dist/agents.js +13 -0
  20. package/dist/app/renderer/agentactivity.css +126 -80
  21. package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
  22. package/dist/app/renderer/assets/icons/open-link-lined.svg +4 -0
  23. package/dist/{chunk-P72YLKC6.js → chunk-3R2D4E57.js} +3127 -3398
  24. package/dist/chunk-3R2D4E57.js.map +1 -0
  25. package/dist/chunk-4YG7YK7S.js +23 -0
  26. package/dist/chunk-4YG7YK7S.js.map +1 -0
  27. package/dist/chunk-5X7YDOC6.js +42 -0
  28. package/dist/chunk-5X7YDOC6.js.map +1 -0
  29. package/dist/{chunk-IBIMGLCD.js → chunk-7J4K6WKB.js} +1 -1
  30. package/dist/chunk-7J4K6WKB.js.map +1 -0
  31. package/dist/{chunk-BXVPOGYK.js → chunk-7PFDA2HQ.js} +505 -504
  32. package/dist/chunk-7PFDA2HQ.js.map +1 -0
  33. package/dist/{chunk-AWAIUYG4.js → chunk-7RDD3EWP.js} +513 -555
  34. package/dist/chunk-7RDD3EWP.js.map +1 -0
  35. package/dist/{chunk-UBDPV34P.js → chunk-AOS2VWU6.js} +1355 -1305
  36. package/dist/chunk-AOS2VWU6.js.map +1 -0
  37. package/dist/{chunk-E5FOXRUM.js → chunk-BFNJKTDV.js} +295 -255
  38. package/dist/chunk-BFNJKTDV.js.map +1 -0
  39. package/dist/{chunk-5FE7M42A.js → chunk-BIHBXWK5.js} +2 -2
  40. package/dist/{chunk-7BUYFVRI.js → chunk-C5FV4UGI.js} +2921 -2944
  41. package/dist/chunk-C5FV4UGI.js.map +1 -0
  42. package/dist/{chunk-SCLLP5DO.js → chunk-CRO2MV2Y.js} +36 -46
  43. package/dist/chunk-CRO2MV2Y.js.map +1 -0
  44. package/dist/chunk-FGLQZ6I4.js +9 -0
  45. package/dist/chunk-FGLQZ6I4.js.map +1 -0
  46. package/dist/chunk-H6IQ63DQ.js +14 -0
  47. package/dist/chunk-H6IQ63DQ.js.map +1 -0
  48. package/dist/{chunk-IGY4ASUF.js → chunk-JX2SIXNL.js} +1293 -1702
  49. package/dist/chunk-JX2SIXNL.js.map +1 -0
  50. package/dist/chunk-KAL4XZMA.js +231 -0
  51. package/dist/chunk-KAL4XZMA.js.map +1 -0
  52. package/dist/chunk-KJQERFKX.js +259 -0
  53. package/dist/chunk-KJQERFKX.js.map +1 -0
  54. package/dist/chunk-LQVXBT65.js +491 -0
  55. package/dist/chunk-LQVXBT65.js.map +1 -0
  56. package/dist/{chunk-554VG7ZW.js → chunk-NITOD7WF.js} +2 -2
  57. package/dist/{chunk-7LMJXF4R.js → chunk-NJAZ7LQM.js} +20 -16
  58. package/dist/chunk-NJAZ7LQM.js.map +1 -0
  59. package/dist/chunk-NX3CZJXW.js +25 -0
  60. package/dist/chunk-NX3CZJXW.js.map +1 -0
  61. package/dist/chunk-O6W72SEP.js +93 -0
  62. package/dist/chunk-O6W72SEP.js.map +1 -0
  63. package/dist/chunk-RY6GIO3K.js +31700 -0
  64. package/dist/chunk-RY6GIO3K.js.map +1 -0
  65. package/dist/{chunk-XDV4ZRVK.js → chunk-UGVI47X6.js} +98 -37
  66. package/dist/chunk-UGVI47X6.js.map +1 -0
  67. package/dist/{chunk-XW4CVBUH.js → chunk-UQJPV6HP.js} +18 -11
  68. package/dist/chunk-UQJPV6HP.js.map +1 -0
  69. package/dist/{chunk-GAPTLVII.js → chunk-VF22EG3F.js} +1 -1
  70. package/dist/{chunk-GAPTLVII.js.map → chunk-VF22EG3F.js.map} +1 -1
  71. package/dist/{chunk-45FF4DQU.js → chunk-WEDMAVX2.js} +22 -24
  72. package/dist/chunk-WEDMAVX2.js.map +1 -0
  73. package/dist/{chunk-MATIJPGF.js → chunk-XMO45GKA.js} +531 -401
  74. package/dist/chunk-XMO45GKA.js.map +1 -0
  75. package/dist/{chunk-ZUW4B5AT.js → chunk-YE25HN6T.js} +6 -9
  76. package/dist/chunk-YE25HN6T.js.map +1 -0
  77. package/dist/context-mention-palette/index.d.ts +3 -2
  78. package/dist/context-mention-palette/index.js +19 -14
  79. package/dist/custom-mention.d.ts +44 -0
  80. package/dist/custom-mention.js +17 -0
  81. package/dist/custom-mention.js.map +1 -0
  82. package/dist/dock-icons.d.ts +6 -0
  83. package/dist/dock-icons.js +11 -0
  84. package/dist/dock-icons.js.map +1 -0
  85. package/dist/i18n/index.d.ts +850 -841
  86. package/dist/i18n/index.js +2 -2
  87. package/dist/index.d.ts +52 -1061
  88. package/dist/index.js +72 -35530
  89. package/dist/index.js.map +1 -1
  90. package/dist/mention-search.d.ts +226 -0
  91. package/dist/mention-search.js +29 -0
  92. package/dist/mention-search.js.map +1 -0
  93. package/dist/open-link-lined-JWEKUKME.svg +4 -0
  94. package/dist/provider-icons.d.ts +6 -0
  95. package/dist/provider-icons.js +12 -0
  96. package/dist/provider-icons.js.map +1 -0
  97. package/dist/provider-identity.d.ts +9 -0
  98. package/dist/provider-identity.js +21 -0
  99. package/dist/provider-identity.js.map +1 -0
  100. package/dist/runtime-BBNdWgDU.d.ts +10 -0
  101. package/dist/{types-PLFZ8SBX.d.ts → types-DX2bxgB8.d.ts} +28 -83
  102. package/dist/workbench/contribution.d.ts +32 -40
  103. package/dist/workbench/contribution.js +10 -6
  104. package/dist/workbench/index.d.ts +3 -2
  105. package/dist/workbench/index.js +24 -20
  106. package/dist/workbench/launch.d.ts +2 -5
  107. package/dist/workbench/launch.js +4 -3
  108. package/dist/workbench/providerCatalog.js +2 -1
  109. package/dist/workbench/sessionTitle.d.ts +4 -3
  110. package/dist/workbench/sessionTitle.js +4 -3
  111. package/dist/workbench/state.d.ts +1 -1
  112. package/dist/workbench/state.js +3 -2
  113. package/dist/workbench/types.d.ts +0 -3
  114. package/dist/workbench/types.js +1 -1
  115. package/dist/workspace-agent-generated-files.d.ts +20 -2
  116. package/dist/workspace-agent-generated-files.js +7 -6
  117. package/dist/workspaceAgentActivityListTypes-C7gPWYiA.d.ts +71 -0
  118. package/package.json +63 -26
  119. package/dist/AgentMentionSearchController-DD_WOred.d.ts +0 -241
  120. package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +0 -7
  121. package/dist/chunk-45FF4DQU.js.map +0 -1
  122. package/dist/chunk-4HP6V2YA.js +0 -207
  123. package/dist/chunk-4HP6V2YA.js.map +0 -1
  124. package/dist/chunk-7BUYFVRI.js.map +0 -1
  125. package/dist/chunk-7LMJXF4R.js.map +0 -1
  126. package/dist/chunk-AWAIUYG4.js.map +0 -1
  127. package/dist/chunk-BXVPOGYK.js.map +0 -1
  128. package/dist/chunk-E5FOXRUM.js.map +0 -1
  129. package/dist/chunk-IBIMGLCD.js.map +0 -1
  130. package/dist/chunk-IGY4ASUF.js.map +0 -1
  131. package/dist/chunk-LR4FA5X6.js +0 -368
  132. package/dist/chunk-LR4FA5X6.js.map +0 -1
  133. package/dist/chunk-MATIJPGF.js.map +0 -1
  134. package/dist/chunk-MKHDRIGN.js +0 -71
  135. package/dist/chunk-MKHDRIGN.js.map +0 -1
  136. package/dist/chunk-P72YLKC6.js.map +0 -1
  137. package/dist/chunk-SCLLP5DO.js.map +0 -1
  138. package/dist/chunk-UBDPV34P.js.map +0 -1
  139. package/dist/chunk-VAKFNNKT.js +0 -410
  140. package/dist/chunk-VAKFNNKT.js.map +0 -1
  141. package/dist/chunk-XDV4ZRVK.js.map +0 -1
  142. package/dist/chunk-XW4CVBUH.js.map +0 -1
  143. package/dist/chunk-ZUW4B5AT.js.map +0 -1
  144. package/dist/plan-decision-ops.d.ts +0 -70
  145. package/dist/plan-decision-ops.js +0 -19
  146. package/dist/queued-prompt-runtime.d.ts +0 -115
  147. package/dist/queued-prompt-runtime.js +0 -9
  148. package/dist/workspaceAgentActivityListViewModel-BzV-cf0D.d.ts +0 -340
  149. package/dist/workspaceLinkActions-DS9LWqzI.d.ts +0 -74
  150. /package/dist/{plan-decision-ops.js.map → agent-gui.js.map} +0 -0
  151. /package/dist/{queued-prompt-runtime.js.map → agents.js.map} +0 -0
  152. /package/dist/{chunk-5FE7M42A.js.map → chunk-BIHBXWK5.js.map} +0 -0
  153. /package/dist/{chunk-554VG7ZW.js.map → chunk-NITOD7WF.js.map} +0 -0
@@ -0,0 +1,226 @@
1
+ import { A as AgentContextMentionItem } from './agentFileMentionContracts-Czvz6YMI.js';
2
+ import { AgentContextMentionProvider } from './context-mention-provider.js';
3
+ import { MentionPaletteGroup, MentionPaletteState } from '@tutti-os/ui-rich-text/at-panel';
4
+ import '@tutti-os/ui-rich-text/types';
5
+ import '@tutti-os/workspace-external-core/contracts';
6
+
7
+ type RuntimeDiagnosticsDetailValue = string | number | boolean | null;
8
+
9
+ type AgentMentionProviderDiagnosticStatus = "success" | "timeout" | "error" | "missing";
10
+ interface AgentMentionProviderQueryDiagnostic {
11
+ durationMs: number;
12
+ errorKind?: string;
13
+ providerId: string;
14
+ resultCount: number;
15
+ status: AgentMentionProviderDiagnosticStatus;
16
+ }
17
+ interface AgentMentionSearchDiagnosticLog {
18
+ debounceMs: number;
19
+ durationMs: number;
20
+ errorKind?: string;
21
+ event: "agent_gui.mention_search";
22
+ filter: AgentMentionFilterId;
23
+ groupCount: number;
24
+ itemCount: number;
25
+ mode: "browse" | "results";
26
+ providerResults: AgentMentionProviderQueryDiagnostic[];
27
+ providerTimeoutMs: number;
28
+ queryLength: number;
29
+ requestId: number;
30
+ status: "ready" | "error";
31
+ workspaceId: string;
32
+ }
33
+
34
+ type AgentMentionFilterId = "session" | "file" | "issue" | "agent" | "app";
35
+ type AgentMentionGroupId = "apps" | "agents" | "files" | "opened_files" | "agent_generated_files" | "my_sessions" | "collab_sessions" | "issues";
36
+ type AgentMentionRawGroupId = Exclude<AgentMentionGroupId, "files">;
37
+ type AgentMentionRawGroups = Record<AgentMentionRawGroupId, AgentContextMentionItem[]>;
38
+ type AgentMentionTotalCounts = Partial<Record<AgentMentionGroupId, number>>;
39
+ interface AgentMentionBrowseCategory {
40
+ id: AgentMentionFilterId;
41
+ label: string;
42
+ }
43
+ type AgentMentionGroup = MentionPaletteGroup<AgentContextMentionItem>;
44
+ type AgentMentionSearchState = MentionPaletteState<AgentContextMentionItem>;
45
+ interface AgentMentionSearchControllerOptions {
46
+ contextMentionProviders?: readonly AgentContextMentionProvider[];
47
+ debounceMs?: number;
48
+ fileLimit?: number;
49
+ issueLimit?: number;
50
+ browseCacheTtlMs?: number;
51
+ providerTimeoutMs?: number;
52
+ diagnosticInfoLogger?: (payload: AgentMentionSearchDiagnosticLog) => void;
53
+ diagnosticNow?: () => number;
54
+ diagnosticSlowThresholdMs?: number;
55
+ }
56
+ type AgentMentionSearchListener = (state: AgentMentionSearchState) => void;
57
+ interface AgentMentionLifecycleDiagnosticLog {
58
+ event: "browse.open" | "browse.preload" | "browse.cache" | "browse.fetch.start" | "browse.fetch.dedupe" | "browse.fetch.success" | "browse.fetch.error" | "browse.apply.skipped";
59
+ details: Record<string, RuntimeDiagnosticsDetailValue>;
60
+ }
61
+
62
+ interface AgentMentionBrowseFetchResult {
63
+ providerDiagnostics: AgentMentionProviderQueryDiagnostic[];
64
+ rawGroups: AgentMentionRawGroups;
65
+ totalCounts: AgentMentionTotalCounts;
66
+ }
67
+ interface AgentMentionBrowseCacheEntry extends AgentMentionBrowseFetchResult {
68
+ cachedAt: number;
69
+ }
70
+ type AgentMentionBrowseLoadReason = "open" | "preload";
71
+ declare const MAX_BROWSE_CACHE_ENTRIES = 64;
72
+ declare function resetAgentMentionSearchBrowseCacheForTests(): void;
73
+
74
+ declare class AgentMentionSearchControllerBase {
75
+ protected readonly contextMentionProviders: ReadonlyMap<string, AgentContextMentionProvider>;
76
+ protected readonly debounceMs: number;
77
+ protected readonly fileLimit: number;
78
+ protected readonly issueLimit: number;
79
+ protected readonly browseCacheTtlMs: number;
80
+ protected readonly providerTimeoutMs: number;
81
+ protected readonly diagnosticInfoLogger: (payload: AgentMentionSearchDiagnosticLog) => void;
82
+ protected readonly diagnosticNow: () => number;
83
+ protected readonly diagnosticSlowThresholdMs: number;
84
+ protected readonly listeners: Set<AgentMentionSearchListener>;
85
+ protected readonly expandedCounts: Partial<Record<AgentMentionGroupId, number>>;
86
+ protected readonly totalCounts: AgentMentionTotalCounts;
87
+ protected timer: ReturnType<typeof setTimeout> | null;
88
+ protected preloadCancel: (() => void) | null;
89
+ protected pendingPreloadKey: string | null;
90
+ protected requestId: number;
91
+ protected disposed: boolean;
92
+ protected activeWorkspaceId: string;
93
+ protected currentUserId: string;
94
+ protected currentFilter: AgentMentionFilterId;
95
+ protected currentQuery: string;
96
+ protected currentSessionCwd: string;
97
+ protected currentFileSearchLimit: number;
98
+ protected currentIssueSearchLimit: number;
99
+ protected agentGeneratedBrowsePath: string | null;
100
+ protected rawGroups: AgentMentionRawGroups;
101
+ protected state: AgentMentionSearchState;
102
+ constructor(options: AgentMentionSearchControllerOptions);
103
+ protected startBrowseModeFetch(filter: AgentMentionFilterId): void;
104
+ protected runSearch(input: {
105
+ workspaceId: string;
106
+ currentUserId: string;
107
+ query: string;
108
+ requestId: number;
109
+ filter: AgentMentionFilterId;
110
+ }): Promise<void>;
111
+ protected runBrowseSearch(input: {
112
+ workspaceId: string;
113
+ currentUserId: string;
114
+ requestId: number;
115
+ filter: AgentMentionFilterId;
116
+ sessionCwd: string;
117
+ }): Promise<void>;
118
+ protected fetchBrowseResult(input: {
119
+ workspaceId: string;
120
+ currentUserId: string;
121
+ filter: AgentMentionFilterId;
122
+ sessionCwd: string;
123
+ }): Promise<AgentMentionBrowseFetchResult>;
124
+ protected applyBrowseFetchResult(result: AgentMentionBrowseFetchResult): void;
125
+ protected logBrowseCacheState(input: {
126
+ cacheKey: string;
127
+ cached: {
128
+ entry: AgentMentionBrowseCacheEntry | null;
129
+ isFresh: boolean;
130
+ };
131
+ filter: AgentMentionFilterId;
132
+ reason: AgentMentionBrowseLoadReason;
133
+ workspaceId: string;
134
+ }): void;
135
+ protected logLifecycle(event: AgentMentionLifecycleDiagnosticLog["event"], details: Record<string, RuntimeDiagnosticsDetailValue>): void;
136
+ protected providerIdsForDiagnostics(): string;
137
+ protected queryProviderMentionItemsById(input: {
138
+ diagnostics: AgentMentionProviderQueryDiagnostic[];
139
+ providerId: string;
140
+ workspaceId: string;
141
+ currentUserId: string;
142
+ query: string;
143
+ limit?: number;
144
+ sessionCwd?: string;
145
+ }): Promise<AgentContextMentionItem[]>;
146
+ protected logSearchDiagnostic(input: {
147
+ error?: unknown;
148
+ filter: AgentMentionFilterId;
149
+ groups: readonly AgentMentionGroup[];
150
+ mode: "browse" | "results";
151
+ providerDiagnostics: readonly AgentMentionProviderQueryDiagnostic[];
152
+ query: string;
153
+ requestId: number;
154
+ startedAt: number;
155
+ status: "ready" | "error";
156
+ workspaceId: string;
157
+ }): void;
158
+ protected emitBrowseState(status: "ready" | "loading"): void;
159
+ protected canApply(requestId: number, workspaceId: string, query: string, filter: AgentMentionFilterId): boolean;
160
+ protected clearTimer(): void;
161
+ protected resetExpandedCounts(): void;
162
+ protected resetSearchLimits(): void;
163
+ protected resetRawGroups(): void;
164
+ protected resetAgentGeneratedBrowsePath(): void;
165
+ protected resetTotalCounts(): void;
166
+ protected setState(state: AgentMentionSearchState): void;
167
+ protected groupsFromRawGroups(): AgentMentionGroup[];
168
+ protected browseCacheKey(input: {
169
+ workspaceId: string;
170
+ currentUserId: string;
171
+ filter: AgentMentionFilterId;
172
+ sessionCwd: string;
173
+ }): string;
174
+ protected readBrowseCache(cacheKey: string): {
175
+ entry: AgentMentionBrowseCacheEntry | null;
176
+ isFresh: boolean;
177
+ };
178
+ protected loadBrowseFetchResult(input: {
179
+ workspaceId: string;
180
+ currentUserId: string;
181
+ filter: AgentMentionFilterId;
182
+ sessionCwd: string;
183
+ }, cacheKey: string, reason: AgentMentionBrowseLoadReason): Promise<AgentMentionBrowseFetchResult>;
184
+ protected fetchFilterResult(input: {
185
+ workspaceId: string;
186
+ currentUserId: string;
187
+ query: string;
188
+ filter: AgentMentionFilterId;
189
+ sessionCwd: string;
190
+ includeAgentGeneratedFiles: boolean;
191
+ }): Promise<AgentMentionBrowseFetchResult>;
192
+ }
193
+
194
+ declare class AgentMentionSearchController extends AgentMentionSearchControllerBase {
195
+ subscribe(listener: AgentMentionSearchListener): () => void;
196
+ updateQuery(input: {
197
+ workspaceId: string;
198
+ currentUserId?: string | null;
199
+ query: string;
200
+ sessionCwd?: string | null;
201
+ }): void;
202
+ setFilter(filter: AgentMentionFilterId): void;
203
+ preloadBrowse(input: {
204
+ workspaceId: string;
205
+ currentUserId?: string | null;
206
+ sessionCwd?: string | null;
207
+ filter?: AgentMentionFilterId;
208
+ }): void;
209
+ private runBrowsePreload;
210
+ private cancelPendingPreload;
211
+ enterCategory(category: AgentMentionFilterId): void;
212
+ selectAgentGeneratedMentionItem(item: AgentContextMentionItem): boolean;
213
+ exitAgentGeneratedBrowse(): boolean;
214
+ expandGroup(groupId: AgentMentionGroupId): void;
215
+ close(): void;
216
+ dispose(): void;
217
+ }
218
+ declare function preloadAgentMentionBrowse(input: {
219
+ workspaceId: string;
220
+ currentUserId?: string | null;
221
+ sessionCwd?: string | null;
222
+ contextMentionProviders?: readonly AgentContextMentionProvider[];
223
+ filter?: AgentMentionFilterId;
224
+ }): void;
225
+
226
+ export { type AgentMentionBrowseCategory, type AgentMentionFilterId, type AgentMentionGroup, type AgentMentionGroupId, AgentMentionSearchController, type AgentMentionSearchState, MAX_BROWSE_CACHE_ENTRIES, preloadAgentMentionBrowse, resetAgentMentionSearchBrowseCacheForTests };
@@ -0,0 +1,29 @@
1
+ import {
2
+ AgentMentionSearchController,
3
+ MAX_BROWSE_CACHE_ENTRIES,
4
+ preloadAgentMentionBrowse,
5
+ resetAgentMentionSearchBrowseCacheForTests
6
+ } from "./chunk-JX2SIXNL.js";
7
+ import "./chunk-BFNJKTDV.js";
8
+ import "./chunk-JM24HADP.js";
9
+ import "./chunk-7J4K6WKB.js";
10
+ import "./chunk-GCBDIQDX.js";
11
+ import "./chunk-7PFDA2HQ.js";
12
+ import "./chunk-Y35GDLP2.js";
13
+ import "./chunk-LUGELG5V.js";
14
+ import "./chunk-KAL4XZMA.js";
15
+ import "./chunk-H6IQ63DQ.js";
16
+ import "./chunk-NX3CZJXW.js";
17
+ import "./chunk-BIHBXWK5.js";
18
+ import "./chunk-AOS2VWU6.js";
19
+ import "./chunk-PJP5BUU6.js";
20
+ import "./chunk-5X7YDOC6.js";
21
+ import "./chunk-KJQERFKX.js";
22
+ import "./chunk-UGVI47X6.js";
23
+ export {
24
+ AgentMentionSearchController,
25
+ MAX_BROWSE_CACHE_ENTRIES,
26
+ preloadAgentMentionBrowse,
27
+ resetAgentMentionSearchBrowseCacheForTests
28
+ };
29
+ //# sourceMappingURL=mention-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M14 3H21V10M20 4L10 14" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M19 13V19C19 20.1046 18.1046 21 17 21H5C3.89543 21 3 20.1046 3 19V7C3 5.89543 3.89543 5 5 5H11" stroke="black" stroke-width="2" stroke-linecap="round"/>
4
+ </svg>
@@ -0,0 +1,6 @@
1
+ declare const PROVIDER_ICON_ASSET_VARIANTS: readonly ["manage", "providerRail", "rounded", "sessionColorful", "sessionFlat", "dock"];
2
+ type ProviderIconAssetVariant = (typeof PROVIDER_ICON_ASSET_VARIANTS)[number];
3
+
4
+ declare function resolveProviderIconAsset(iconKey: string | null | undefined, variant: ProviderIconAssetVariant): string | null;
5
+
6
+ export { type ProviderIconAssetVariant, resolveProviderIconAsset };
@@ -0,0 +1,12 @@
1
+ import {
2
+ resolveProviderIconAsset
3
+ } from "./chunk-UGVI47X6.js";
4
+
5
+ // provider-icons.ts
6
+ function resolveProviderIconAsset2(iconKey, variant) {
7
+ return resolveProviderIconAsset(iconKey, variant);
8
+ }
9
+ export {
10
+ resolveProviderIconAsset2 as resolveProviderIconAsset
11
+ };
12
+ //# sourceMappingURL=provider-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../provider-icons.ts"],"sourcesContent":["import { resolveProviderIconAsset as resolveProviderIconAssetInternal } from \"./providerIconAssets.ts\";\nimport type { ProviderIconAssetVariant } from \"./providerIconTypes.ts\";\n\nexport type { ProviderIconAssetVariant } from \"./providerIconTypes.ts\";\n\nexport function resolveProviderIconAsset(\n iconKey: string | null | undefined,\n variant: ProviderIconAssetVariant\n): string | null {\n return resolveProviderIconAssetInternal(iconKey, variant);\n}\n"],"mappings":";;;;;AAKO,SAASA,0BACd,SACA,SACe;AACf,SAAO,yBAAiC,SAAS,OAAO;AAC1D;","names":["resolveProviderIconAsset"]}
@@ -0,0 +1,9 @@
1
+ interface AgentGUIProviderIdentityPresentation {
2
+ providerId: string;
3
+ displayName: string;
4
+ iconKey: string;
5
+ targetId: string;
6
+ }
7
+ declare function resolveAgentGUIProviderIdentity(value: string | null | undefined): AgentGUIProviderIdentityPresentation | null;
8
+
9
+ export { type AgentGUIProviderIdentityPresentation, resolveAgentGUIProviderIdentity };
@@ -0,0 +1,21 @@
1
+ import {
2
+ resolveAgentGUIProviderCatalogIdentity
3
+ } from "./chunk-KJQERFKX.js";
4
+
5
+ // provider-identity.ts
6
+ function resolveAgentGUIProviderIdentity(value) {
7
+ const identity = resolveAgentGUIProviderCatalogIdentity(value);
8
+ if (!identity) {
9
+ return null;
10
+ }
11
+ return {
12
+ providerId: identity.providerId,
13
+ displayName: identity.displayName,
14
+ iconKey: identity.iconKey,
15
+ targetId: identity.target.id
16
+ };
17
+ }
18
+ export {
19
+ resolveAgentGUIProviderIdentity
20
+ };
21
+ //# sourceMappingURL=provider-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../provider-identity.ts"],"sourcesContent":["import { resolveAgentGUIProviderCatalogIdentity } from \"./providerIdentityCatalog.ts\";\n\nexport interface AgentGUIProviderIdentityPresentation {\n providerId: string;\n displayName: string;\n iconKey: string;\n targetId: string;\n}\n\nexport function resolveAgentGUIProviderIdentity(\n value: string | null | undefined\n): AgentGUIProviderIdentityPresentation | null {\n const identity = resolveAgentGUIProviderCatalogIdentity(value);\n if (!identity) {\n return null;\n }\n return {\n providerId: identity.providerId,\n displayName: identity.displayName,\n iconKey: identity.iconKey,\n targetId: identity.target.id\n };\n}\n"],"mappings":";;;;;AASO,SAAS,gCACd,OAC6C;AAC7C,QAAM,WAAW,uCAAuC,KAAK;AAC7D,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,YAAY,SAAS;AAAA,IACrB,aAAa,SAAS;AAAA,IACtB,SAAS,SAAS;AAAA,IAClB,UAAU,SAAS,OAAO;AAAA,EAC5B;AACF;","names":[]}
@@ -0,0 +1,10 @@
1
+ import { I18nParams } from '@tutti-os/ui-i18n-runtime';
2
+
3
+ type AgentGuiI18nLocale = "en" | "zh-CN";
4
+ type TranslateOptions = I18nParams;
5
+ type TranslateFn = (key: string, options?: TranslateOptions) => string;
6
+ declare function translate(key: string, options?: TranslateOptions): string;
7
+ declare function translateInUiLanguage(locale: AgentGuiI18nLocale, key: string, options?: TranslateOptions): string;
8
+ declare function getActiveUiLanguage(): AgentGuiI18nLocale;
9
+
10
+ export { type AgentGuiI18nLocale as A, type TranslateFn as T, type TranslateOptions as a, translateInUiLanguage as b, getActiveUiLanguage as g, translate as t };
@@ -1,4 +1,3 @@
1
- type AgentHostAgentSessionProvider = "claude-code" | "codex" | "tutti-agent" | "cursor" | "nexight" | "hermes" | "opencode" | "openclaw";
2
1
  type AgentHostAgentSessionPermissionModeSemantic = "ask-before-write" | "accept-edits" | "locked-down" | "auto" | "full-access" | "unconfigurable";
3
2
  type AgentHostAgentSessionReasoningEffort = "minimal" | "low" | "medium" | "high" | "xhigh" | string;
4
3
  type AgentHostAgentSessionSpeed = "standard" | "fast" | string;
@@ -22,82 +21,6 @@ interface AgentHostAgentSessionComposerSettings {
22
21
  computerUse?: boolean;
23
22
  permissionModeId?: string | null;
24
23
  }
25
- interface AgentHostAgentSession {
26
- workspaceId: string;
27
- agentSessionId: string;
28
- agentTargetId?: string | null;
29
- provider: AgentHostAgentSessionProvider;
30
- providerSessionId: string;
31
- resumable?: boolean;
32
- cwd?: string;
33
- status: "ready" | "working" | "canceled" | "failed" | "completed" | string;
34
- title?: string;
35
- pinnedAtUnixMs?: number | null;
36
- visible?: boolean;
37
- permissionModeId?: string;
38
- permissionConfig?: AgentHostAgentSessionPermissionConfig;
39
- settings?: AgentHostAgentSessionComposerSettings;
40
- createdAtUnixMs: number;
41
- updatedAtUnixMs: number;
42
- }
43
- interface AgentHostAgentSessionInteractivePrompt {
44
- kind: string;
45
- requestId?: string;
46
- toolName?: string;
47
- status?: string;
48
- input?: Record<string, unknown>;
49
- output?: Record<string, unknown>;
50
- error?: Record<string, unknown>;
51
- metadata?: Record<string, unknown>;
52
- }
53
- interface AgentHostAgentSessionState {
54
- workspaceId: string;
55
- agentSessionId: string;
56
- agentTargetId?: string | null;
57
- provider: AgentHostAgentSessionProvider;
58
- providerSessionId?: string;
59
- resumable?: boolean;
60
- status: AgentHostAgentSession["status"];
61
- turnLifecycle?: AgentHostAgentActivityTurnLifecycle | null;
62
- submitAvailability?: AgentHostAgentActivitySubmitAvailability | null;
63
- permissionModeId?: string;
64
- permissionConfig?: AgentHostAgentSessionPermissionConfig;
65
- settings?: AgentHostAgentSessionComposerSettings;
66
- authState?: string;
67
- runtimeContext?: Record<string, unknown>;
68
- pinnedAtUnixMs?: number | null;
69
- pendingInteractive?: AgentHostAgentSessionInteractivePrompt | null;
70
- updatedAtUnixMs: number;
71
- }
72
- interface AgentHostAgentActivityCompletedCommand {
73
- kind: string;
74
- status: string;
75
- }
76
- interface AgentHostAgentActivityTurnLifecycle {
77
- activeTurnId: string | null;
78
- phase: string;
79
- settling?: boolean;
80
- outcome?: string | null;
81
- completedCommand?: AgentHostAgentActivityCompletedCommand | null;
82
- }
83
- interface AgentHostAgentActivitySubmitAvailability {
84
- state: string;
85
- reason?: string;
86
- }
87
- type AgentHostAgentSessionActivationMode = "new" | "existing";
88
- type AgentHostAgentSessionActivationStatus = "attached" | "already_attached" | "failed";
89
- interface AgentHostActivateAgentSessionResult {
90
- session: AgentHostAgentSession;
91
- activation: {
92
- mode: AgentHostAgentSessionActivationMode;
93
- status: AgentHostAgentSessionActivationStatus;
94
- };
95
- error?: {
96
- code: string;
97
- message: string;
98
- debugMessage?: string;
99
- };
100
- }
101
24
  interface AgentHostUnactivateAgentSessionResult {
102
25
  agentSessionId: string;
103
26
  buffered: boolean;
@@ -118,10 +41,6 @@ interface AgentPromptContentBlock {
118
41
  kind?: string;
119
42
  sizeBytes?: number;
120
43
  }
121
- interface AgentHostUpdateAgentSessionSettingsResult {
122
- agentSessionId: string;
123
- settings: AgentHostAgentSessionComposerSettings;
124
- }
125
44
  interface AgentHostAgentSessionCommand {
126
45
  name: string;
127
46
  description?: string;
@@ -135,7 +54,6 @@ interface AgentGUINodeData {
135
54
  provider: AgentGUIProvider;
136
55
  agentTargetId?: string | null;
137
56
  lastActiveAgentSessionId: string | null;
138
- lastActiveConversationTitle?: string | null;
139
57
  conversationCount?: number | null;
140
58
  conversationRailWidthPx?: number | null;
141
59
  conversationRailCollapsed?: boolean | null;
@@ -171,6 +89,17 @@ interface AgentGUIAgent {
171
89
  availability: AgentGUIAgentAvailability;
172
90
  provider: AgentGUIProvider;
173
91
  }
92
+ type AgentGUIAgentDirectoryStatus = "idle" | "loading" | "ready" | "error";
93
+ interface AgentGUIAgentDirectorySnapshot {
94
+ agents: readonly AgentGUIAgent[];
95
+ capturedAtUnixMs: number | null;
96
+ error: string | null;
97
+ status: AgentGUIAgentDirectoryStatus;
98
+ }
99
+ interface AgentGUIAgentDirectoryPort {
100
+ getSnapshot(): AgentGUIAgentDirectorySnapshot;
101
+ subscribe(listener: () => void): () => void;
102
+ }
174
103
  interface AgentGUIAllAgentsPresentation {
175
104
  iconUrl?: string | null;
176
105
  }
@@ -196,6 +125,22 @@ interface AgentGUIAgentTarget {
196
125
  disabled?: boolean;
197
126
  unavailableReason?: string;
198
127
  }
128
+ interface AgentGUIProviderRailAllPresentation {
129
+ iconUrl?: string | null;
130
+ }
131
+ /**
132
+ * How the provider rail composes the target list.
133
+ * - "catalog" (default): host-provided targets are augmented with the static
134
+ * local provider catalog, disabled placeholders (nexight/hermes/openclaw),
135
+ * and coming-soon markers. When no targets are provided, the full local
136
+ * catalog is shown.
137
+ * - "exact": the rail renders exactly the provided targets — no static catalog
138
+ * fallback, no disabled placeholders, no coming-soon injection. When the list
139
+ * is empty (and not loading) the host-provided empty renderer is shown. Use
140
+ * this when the list is fully orchestrated externally (e.g. shared agents,
141
+ * custom /agents).
142
+ */
143
+ type AgentGUIProviderRailMode = "catalog" | "exact";
199
144
  type AgentGUIProviderReadinessGateStatus = "checking" | "coming_soon" | "not_installed" | "auth_required" | "unavailable";
200
145
  type AgentGUIProviderReadinessGateAction = "install" | "login" | "refresh";
201
146
  interface AgentGUIProviderReadinessGate {
@@ -216,4 +161,4 @@ interface NodeFrame {
216
161
  size: Size;
217
162
  }
218
163
 
219
- export type { AgentGUIAgent as A, NodeFrame as N, Point as P, AgentGUIAgentAvailability as a, AgentGUIAgentAvailabilityAction as b, AgentGUIAgentAvailabilityStatus as c, AgentGUIAgentOwner as d, AgentGUIAgentTarget as e, AgentGUIAllAgentsPresentation as f, AgentGUINodeData as g, AgentGUIProvider as h, AgentGUIProviderReadinessGate as i, AgentHostActivateAgentSessionResult as j, AgentHostAgentSessionCommand as k, AgentHostAgentSessionComposerSettings as l, AgentHostAgentSessionPermissionConfig as m, AgentHostAgentSessionReasoningEffort as n, AgentHostAgentSessionSpeed as o, AgentHostAgentSessionState as p, AgentHostUnactivateAgentSessionResult as q, AgentHostUpdateAgentSessionSettingsResult as r, AgentPromptContentBlock as s, AgentProvider as t };
164
+ export type { AgentGUIAgent as A, NodeFrame as N, Point as P, AgentGUIAgentAvailability as a, AgentGUIAgentAvailabilityAction as b, AgentGUIAgentAvailabilityStatus as c, AgentGUIAgentDirectoryPort as d, AgentGUIAgentDirectorySnapshot as e, AgentGUIAgentDirectoryStatus as f, AgentGUIAgentOwner as g, AgentGUIAgentTarget as h, AgentGUIAgentTargetBadge as i, AgentGUIAgentTargetRef as j, AgentGUIAllAgentsPresentation as k, AgentGUINodeData as l, AgentGUIProvider as m, AgentGUIProviderRailAllPresentation as n, AgentGUIProviderRailMode as o, AgentGUIProviderReadinessGate as p, AgentGUIProviderReadinessGateAction as q, AgentGUIProviderReadinessGateStatus as r, AgentHostAgentSessionCommand as s, AgentHostAgentSessionComposerSettings as t, AgentHostAgentSessionPermissionConfig as u, AgentHostAgentSessionReasoningEffort as v, AgentHostAgentSessionSpeed as w, AgentHostUnactivateAgentSessionResult as x, AgentPromptContentBlock as y, AgentProvider as z };
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
- import { WorkbenchFrame, WorkbenchHostNodeBodyContext, WorkbenchHostLaunchRequest, WorkbenchHostDockEntry, WorkbenchContribution } from '@tutti-os/workbench-surface';
2
+ import { WorkbenchFrame, WorkbenchHostDockEntry, WorkbenchHostLaunchRequest, WorkbenchHostNodeBodyContext, WorkbenchContribution } from '@tutti-os/workbench-surface';
3
3
  import { AgentGuiWorkbenchProvider, AgentGuiWorkbenchState } from './types.js';
4
- import { A as AgentGUIAgent } from '../types-PLFZ8SBX.js';
4
+ import { d as AgentGUIAgentDirectoryPort } from '../types-DX2bxgB8.js';
5
5
 
6
6
  declare const agentGuiWorkbenchDefaultNodeFrame: WorkbenchFrame;
7
7
  declare const agentGuiWorkbenchDefaultUsableWidthRatio = 0.8;
@@ -12,6 +12,34 @@ declare const agentGuiWorkbenchNewWindowCascadeOffset: {
12
12
  y: number;
13
13
  };
14
14
  declare const agentGuiWorkbenchProviderRailWidthPx = 52;
15
+ declare const agentGuiWorkbenchDefaultCopy: AgentGuiWorkbenchContributionCopy;
16
+ type AgentGuiWorkbenchProviderAvailability = Partial<Record<AgentGuiWorkbenchProvider, boolean | "available" | "ready" | "unavailable" | {
17
+ available?: boolean | null;
18
+ status?: string | null;
19
+ } | null | undefined>>;
20
+ interface BuildAgentGuiDockEntriesInput {
21
+ agentDirectory: AgentGUIAgentDirectoryPort;
22
+ defaultProvider?: AgentGuiWorkbenchProvider | null;
23
+ dockIconUrls?: Partial<Record<AgentGuiWorkbenchProvider, string>>;
24
+ label?: string;
25
+ providerAvailability?: AgentGuiWorkbenchProviderAvailability;
26
+ renderPreview?: CreateAgentGuiWorkbenchContributionInput["renderPreview"];
27
+ resolveDockPopupIdentity?: CreateAgentGuiWorkbenchContributionInput["resolveDockPopupIdentity"];
28
+ resolveDockPopupTitle?: CreateAgentGuiWorkbenchContributionInput["resolveDockPopupTitle"];
29
+ sectionId?: string;
30
+ unifiedDockIconUrl?: string;
31
+ }
32
+ declare function buildAgentGuiDockEntries(input: BuildAgentGuiDockEntriesInput): WorkbenchHostDockEntry[];
33
+ declare function resolveAgentGuiUnifiedDockLaunchPayload(input: Pick<BuildAgentGuiDockEntriesInput, "agentDirectory" | "defaultProvider" | "providerAvailability">): {
34
+ provider: AgentGuiWorkbenchProvider;
35
+ agentTargetId?: string;
36
+ };
37
+ declare function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {
38
+ frame: WorkbenchFrame;
39
+ request: Pick<WorkbenchHostLaunchRequest, "layoutConstraints" | "surfaceSize">;
40
+ }): WorkbenchFrame;
41
+ declare function resolveAgentGuiWorkbenchContributionCopy(copy?: AgentGuiWorkbenchContributionCopyOverrides): AgentGuiWorkbenchContributionCopy;
42
+
15
43
  declare const AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT = "tutti:agent-gui-workbench-conversation-rail-toggle";
16
44
  declare const AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT = "tutti:agent-gui-workbench-new-conversation";
17
45
  /**
@@ -44,37 +72,29 @@ interface AgentGuiWorkbenchContributionCopy {
44
72
  restore: string;
45
73
  }
46
74
  type AgentGuiWorkbenchContributionCopyOverrides = Partial<AgentGuiWorkbenchContributionCopy>;
47
- declare const agentGuiWorkbenchDefaultCopy: AgentGuiWorkbenchContributionCopy;
48
75
  interface AgentGuiWorkbenchRenderBodyHelpers {
76
+ agentDirectory: AgentGUIAgentDirectoryPort;
49
77
  nodeTypeId: string;
50
78
  onStateChange(state: AgentGuiWorkbenchState): void;
51
79
  provider: AgentGuiWorkbenchProvider;
52
80
  }
53
81
  interface CreateAgentGuiWorkbenchContributionInput {
82
+ agentDirectory: AgentGUIAgentDirectoryPort;
54
83
  copy?: AgentGuiWorkbenchContributionCopyOverrides;
55
84
  defaultProvider?: AgentGuiWorkbenchProvider | null;
56
- defaultAgentTargetId?: string | null;
57
85
  dockIconUrls?: Partial<Record<AgentGuiWorkbenchProvider, string>>;
58
86
  dockSectionId?: string;
59
87
  frame?: WorkbenchFrame;
60
88
  id?: string;
61
89
  providerAvailability?: AgentGuiWorkbenchProviderAvailability;
62
- agents?: readonly AgentGUIAgent[] | null;
63
- agentsLoading?: boolean;
64
90
  renderBody(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
65
91
  renderPreview?(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
66
92
  renderMinimizedPreview(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
67
93
  resolveDockPopupTitle?: (state: AgentGuiWorkbenchState | null) => string | null;
68
94
  resolveDockPopupIdentity?: (state: AgentGuiWorkbenchState | null) => AgentGuiWorkbenchConversationIdentity | null;
69
- resolveDockLaunchPayload?: (input: {
70
- dockEntryId?: string | null;
71
- payload: unknown;
72
- reason: WorkbenchHostLaunchRequest["reason"];
73
- }) => unknown | null | undefined;
74
95
  onOpenDetachedWindow?: (input: {
75
96
  agentSessionId?: string | null;
76
97
  agentTargetId?: string | null;
77
- agents?: readonly AgentGUIAgent[];
78
98
  provider: AgentGuiWorkbenchProvider;
79
99
  workspaceId: string;
80
100
  }) => void | Promise<void>;
@@ -82,33 +102,5 @@ interface CreateAgentGuiWorkbenchContributionInput {
82
102
  workspaceId: string;
83
103
  }
84
104
  declare function createAgentGuiWorkbenchContribution(input: CreateAgentGuiWorkbenchContributionInput): WorkbenchContribution;
85
- type AgentGuiWorkbenchProviderAvailability = Partial<Record<AgentGuiWorkbenchProvider, boolean | "available" | "ready" | "unavailable" | {
86
- available?: boolean | null;
87
- status?: string | null;
88
- } | null | undefined>>;
89
- interface BuildAgentGuiDockEntriesInput {
90
- defaultProvider?: AgentGuiWorkbenchProvider | null;
91
- defaultAgentTargetId?: string | null;
92
- dockIconUrls?: Partial<Record<AgentGuiWorkbenchProvider, string>>;
93
- label?: string;
94
- providerAvailability?: AgentGuiWorkbenchProviderAvailability;
95
- agentsLoading?: boolean;
96
- renderPreview?: CreateAgentGuiWorkbenchContributionInput["renderPreview"];
97
- resolveDockPopupIdentity?: CreateAgentGuiWorkbenchContributionInput["resolveDockPopupIdentity"];
98
- resolveDockPopupTitle?: CreateAgentGuiWorkbenchContributionInput["resolveDockPopupTitle"];
99
- sectionId?: string;
100
- agents?: readonly AgentGUIAgent[] | null;
101
- unifiedDockIconUrl?: string;
102
- }
103
- declare function buildAgentGuiDockEntries(input: BuildAgentGuiDockEntriesInput): WorkbenchHostDockEntry[];
104
- declare function resolveAgentGuiUnifiedDockLaunchPayload(input: Pick<BuildAgentGuiDockEntriesInput, "defaultProvider" | "defaultAgentTargetId" | "providerAvailability" | "agentsLoading" | "agents">): {
105
- provider: AgentGuiWorkbenchProvider;
106
- agentTargetId?: string;
107
- };
108
- declare function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {
109
- frame: WorkbenchFrame;
110
- request: Pick<WorkbenchHostLaunchRequest, "layoutConstraints" | "surfaceSize">;
111
- }): WorkbenchFrame;
112
- declare function resolveAgentGuiWorkbenchContributionCopy(copy?: AgentGuiWorkbenchContributionCopyOverrides): AgentGuiWorkbenchContributionCopy;
113
105
 
114
106
  export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, AGENT_GUI_WORKBENCH_OPEN_EXTERNAL_IMPORT_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationIdentity, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchNewConversationDetail, type AgentGuiWorkbenchProviderAvailability, type AgentGuiWorkbenchRenderBodyHelpers, type BuildAgentGuiDockEntriesInput, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchCompactVisibleAreaRatio, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, agentGuiWorkbenchDefaultUsableWidthRatio, agentGuiWorkbenchNewWindowCascadeOffset, agentGuiWorkbenchProviderRailWidthPx, buildAgentGuiDockEntries, createAgentGuiWorkbenchContribution, resolveAgentGuiUnifiedDockLaunchPayload, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
@@ -14,12 +14,16 @@ import {
14
14
  resolveAgentGuiUnifiedDockLaunchPayload,
15
15
  resolveAgentGuiWorkbenchContributionCopy,
16
16
  resolveAgentGuiWorkbenchDefaultLaunchFrame
17
- } from "../chunk-AWAIUYG4.js";
18
- import "../chunk-45FF4DQU.js";
19
- import "../chunk-7LMJXF4R.js";
20
- import "../chunk-GAPTLVII.js";
21
- import "../chunk-XW4CVBUH.js";
22
- import "../chunk-XDV4ZRVK.js";
17
+ } from "../chunk-7RDD3EWP.js";
18
+ import "../chunk-NJAZ7LQM.js";
19
+ import "../chunk-WEDMAVX2.js";
20
+ import "../chunk-UQJPV6HP.js";
21
+ import "../chunk-VF22EG3F.js";
22
+ import "../chunk-O6W72SEP.js";
23
+ import "../chunk-4YG7YK7S.js";
24
+ import "../chunk-H6IQ63DQ.js";
25
+ import "../chunk-KJQERFKX.js";
26
+ import "../chunk-UGVI47X6.js";
23
27
  export {
24
28
  AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
25
29
  AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT,
@@ -6,7 +6,7 @@ import { HTMLAttributes, ReactNode } from 'react';
6
6
  import { WorkbenchDisplayMode, WorkbenchHostNodeHeaderWindowActions } from '@tutti-os/workbench-surface';
7
7
  export { AgentGuiSessionTitleFormatOptions, AgentGuiWorkbenchSessionTitleResult, ResolveAgentGuiWorkbenchSessionTitleInput, formatAgentGuiConversationPlainTitle, formatAgentGuiSessionPlainTitle, resolveAgentGuiWorkbenchSessionTitle } from './sessionTitle.js';
8
8
  export { AgentGuiWorkbenchComposerOverrides, AgentGuiWorkbenchNodeState, AgentGuiWorkbenchPrefillPromptPayload, AgentGuiWorkbenchProvider, AgentGuiWorkbenchState, AgentGuiWorkbenchWorkspaceState, agentGuiWorkbenchOpenSessionActivationType, agentGuiWorkbenchPrefillPromptActivationType } from './types.js';
9
- import '../types-PLFZ8SBX.js';
9
+ import '../types-DX2bxgB8.js';
10
10
  import '@tutti-os/agent-activity-core';
11
11
  import '../uiSettings-BQS9r2eo.js';
12
12
 
@@ -39,10 +39,11 @@ interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {
39
39
  onOpenDetachedWindow?: () => void;
40
40
  onToggleConversationRail: (nextCollapsed: boolean) => void;
41
41
  showAppTitle?: boolean;
42
+ showConversationRailToggle?: boolean;
42
43
  showWindowControls?: boolean;
43
44
  title?: string;
44
45
  windowActions?: Pick<WorkbenchHostNodeHeaderWindowActions, "close" | "minimize" | "toggleDisplayMode">;
45
46
  }
46
- declare function AgentGuiWorkbenchHeader({ className, copy, defaultActions: _defaultActions, displayMode, isConversationRailAutoCollapsed, isConversationRailCollapsed, conversationRailWidthPx, conversationIconUrl, conversationIconFallbackUrl, providerRailWidthPx, primaryAccessory, secondaryAccessory, conversationTitle, nodeId, onCreateConversation, onOpenDetachedWindow, onToggleConversationRail, showAppTitle, showWindowControls, title: _title, windowActions, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
47
+ declare function AgentGuiWorkbenchHeader({ className, copy, defaultActions: _defaultActions, displayMode, isConversationRailAutoCollapsed, isConversationRailCollapsed, conversationRailWidthPx, conversationIconUrl, conversationIconFallbackUrl, providerRailWidthPx, primaryAccessory, secondaryAccessory, conversationTitle, nodeId, onCreateConversation, onOpenDetachedWindow, onToggleConversationRail, showAppTitle, showConversationRailToggle, showWindowControls, title: _title, windowActions, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
47
48
 
48
49
  export { AgentGuiWorkbenchHeader, type AgentGuiWorkbenchHeaderCopy, type AgentGuiWorkbenchHeaderProps };