@tutti-os/agent-gui 0.0.94 → 0.0.96

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 (163) hide show
  1. package/README.md +86 -38
  2. package/dist/AgentGUI-DWdvUV4x.d.ts +1038 -0
  3. package/dist/agent-conversation/index.d.ts +6 -7
  4. package/dist/agent-conversation/index.js +15 -10
  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 +2 -57
  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 +156 -124
  12. package/dist/agent-message-center/index.js +1656 -1463
  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-58IjMU-u.d.ts +108 -0
  16. package/dist/{agentGuiNodeTypes-CAioPXK9.d.ts → agentGuiNodeTypes-B9X4aWfv.d.ts} +123 -163
  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 +276 -83
  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-7BUYFVRI.js → chunk-2HJEOO7W.js} +2931 -2946
  24. package/dist/chunk-2HJEOO7W.js.map +1 -0
  25. package/dist/{chunk-E5FOXRUM.js → chunk-3XXBDYAI.js} +293 -258
  26. package/dist/chunk-3XXBDYAI.js.map +1 -0
  27. package/dist/{chunk-ZUW4B5AT.js → chunk-3Y3F7CS5.js} +21 -32
  28. package/dist/chunk-3Y3F7CS5.js.map +1 -0
  29. package/dist/{chunk-SCLLP5DO.js → chunk-4PQPJ5OY.js} +50 -155
  30. package/dist/chunk-4PQPJ5OY.js.map +1 -0
  31. package/dist/chunk-4YG7YK7S.js +23 -0
  32. package/dist/chunk-4YG7YK7S.js.map +1 -0
  33. package/dist/chunk-5X7YDOC6.js +42 -0
  34. package/dist/chunk-5X7YDOC6.js.map +1 -0
  35. package/dist/{chunk-R2EWECUP.js → chunk-7BXWPI4F.js} +17 -2
  36. package/dist/{chunk-R2EWECUP.js.map → chunk-7BXWPI4F.js.map} +1 -1
  37. package/dist/chunk-AGT7MUTV.js +491 -0
  38. package/dist/chunk-AGT7MUTV.js.map +1 -0
  39. package/dist/chunk-C35SNDVZ.js +96 -0
  40. package/dist/chunk-C35SNDVZ.js.map +1 -0
  41. package/dist/{chunk-5FE7M42A.js → chunk-E4HQUTM3.js} +2 -2
  42. package/dist/chunk-FGLQZ6I4.js +9 -0
  43. package/dist/chunk-FGLQZ6I4.js.map +1 -0
  44. package/dist/chunk-H5F3QSCF.js +25 -0
  45. package/dist/chunk-H5F3QSCF.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-45FF4DQU.js → chunk-IYEXLOUE.js} +22 -27
  49. package/dist/chunk-IYEXLOUE.js.map +1 -0
  50. package/dist/{chunk-P72YLKC6.js → chunk-JKIZA7EJ.js} +3573 -3755
  51. package/dist/chunk-JKIZA7EJ.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-XW4CVBUH.js → chunk-L3GMMGRS.js} +25 -16
  55. package/dist/chunk-L3GMMGRS.js.map +1 -0
  56. package/dist/chunk-MASXZENX.js +231 -0
  57. package/dist/chunk-MASXZENX.js.map +1 -0
  58. package/dist/{chunk-BXVPOGYK.js → chunk-O3Q5SIJH.js} +505 -504
  59. package/dist/chunk-O3Q5SIJH.js.map +1 -0
  60. package/dist/{chunk-554VG7ZW.js → chunk-QVBF5BN5.js} +2 -2
  61. package/dist/{chunk-AWAIUYG4.js → chunk-RE4AXS27.js} +532 -565
  62. package/dist/chunk-RE4AXS27.js.map +1 -0
  63. package/dist/{chunk-7LMJXF4R.js → chunk-TVIGLNNI.js} +20 -16
  64. package/dist/chunk-TVIGLNNI.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-GAPTLVII.js → chunk-UHBCM6RO.js} +1 -1
  68. package/dist/chunk-UHBCM6RO.js.map +1 -0
  69. package/dist/{chunk-UBDPV34P.js → chunk-W6WAGPMD.js} +1385 -1305
  70. package/dist/chunk-W6WAGPMD.js.map +1 -0
  71. package/dist/chunk-WKSFPJHZ.js +33054 -0
  72. package/dist/chunk-WKSFPJHZ.js.map +1 -0
  73. package/dist/{chunk-IGY4ASUF.js → chunk-WMNS4MAQ.js} +1288 -1696
  74. package/dist/chunk-WMNS4MAQ.js.map +1 -0
  75. package/dist/{chunk-MATIJPGF.js → chunk-XPFHJMZP.js} +541 -401
  76. package/dist/chunk-XPFHJMZP.js.map +1 -0
  77. package/dist/chunk-YMXYBG7U.js +12 -0
  78. package/dist/chunk-YMXYBG7U.js.map +1 -0
  79. package/dist/context-mention-palette/index.d.ts +3 -2
  80. package/dist/context-mention-palette/index.js +17 -12
  81. package/dist/custom-mention.d.ts +42 -0
  82. package/dist/custom-mention.js +17 -0
  83. package/dist/custom-mention.js.map +1 -0
  84. package/dist/dock-icons.d.ts +4 -0
  85. package/dist/dock-icons.js +11 -0
  86. package/dist/dock-icons.js.map +1 -0
  87. package/dist/i18n/index.d.ts +880 -841
  88. package/dist/i18n/index.js +2 -2
  89. package/dist/index.d.ts +56 -1063
  90. package/dist/index.js +78 -35532
  91. package/dist/index.js.map +1 -1
  92. package/dist/mention-search.d.ts +226 -0
  93. package/dist/mention-search.js +29 -0
  94. package/dist/mention-search.js.map +1 -0
  95. package/dist/open-link-lined-JWEKUKME.svg +4 -0
  96. package/dist/pastedTextKinds-D-XuInaS.d.ts +4 -0
  97. package/dist/provider-icons.d.ts +6 -0
  98. package/dist/provider-icons.js +12 -0
  99. package/dist/provider-icons.js.map +1 -0
  100. package/dist/provider-identity.d.ts +9 -0
  101. package/dist/provider-identity.js +21 -0
  102. package/dist/provider-identity.js.map +1 -0
  103. package/dist/runtime-BBNdWgDU.d.ts +10 -0
  104. package/dist/startup-shell.d.ts +8 -0
  105. package/dist/startup-shell.js +184 -0
  106. package/dist/startup-shell.js.map +1 -0
  107. package/dist/{types-PLFZ8SBX.d.ts → types-CnT8rNUI.d.ts} +43 -87
  108. package/dist/workbench/contribution.d.ts +34 -41
  109. package/dist/workbench/contribution.js +10 -6
  110. package/dist/workbench/index.d.ts +5 -4
  111. package/dist/workbench/index.js +27 -25
  112. package/dist/workbench/launch.d.ts +4 -7
  113. package/dist/workbench/launch.js +4 -3
  114. package/dist/workbench/providerCatalog.d.ts +2 -2
  115. package/dist/workbench/providerCatalog.js +2 -1
  116. package/dist/workbench/sessionTitle.d.ts +11 -14
  117. package/dist/workbench/sessionTitle.js +6 -7
  118. package/dist/workbench/state.d.ts +1 -1
  119. package/dist/workbench/state.js +3 -2
  120. package/dist/workbench/types.d.ts +2 -4
  121. package/dist/workbench/types.js +1 -1
  122. package/dist/workspace-agent-generated-files.d.ts +20 -2
  123. package/dist/workspace-agent-generated-files.js +6 -5
  124. package/dist/workspaceAgentActivityListTypes-C7gPWYiA.d.ts +71 -0
  125. package/package.json +70 -26
  126. package/dist/AgentMentionSearchController-DD_WOred.d.ts +0 -241
  127. package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +0 -7
  128. package/dist/chunk-45FF4DQU.js.map +0 -1
  129. package/dist/chunk-4HP6V2YA.js +0 -207
  130. package/dist/chunk-4HP6V2YA.js.map +0 -1
  131. package/dist/chunk-7BUYFVRI.js.map +0 -1
  132. package/dist/chunk-7LMJXF4R.js.map +0 -1
  133. package/dist/chunk-AWAIUYG4.js.map +0 -1
  134. package/dist/chunk-BXVPOGYK.js.map +0 -1
  135. package/dist/chunk-E5FOXRUM.js.map +0 -1
  136. package/dist/chunk-GAPTLVII.js.map +0 -1
  137. package/dist/chunk-IBIMGLCD.js +0 -66
  138. package/dist/chunk-IBIMGLCD.js.map +0 -1
  139. package/dist/chunk-IGY4ASUF.js.map +0 -1
  140. package/dist/chunk-LR4FA5X6.js +0 -368
  141. package/dist/chunk-LR4FA5X6.js.map +0 -1
  142. package/dist/chunk-MATIJPGF.js.map +0 -1
  143. package/dist/chunk-MKHDRIGN.js +0 -71
  144. package/dist/chunk-MKHDRIGN.js.map +0 -1
  145. package/dist/chunk-P72YLKC6.js.map +0 -1
  146. package/dist/chunk-SCLLP5DO.js.map +0 -1
  147. package/dist/chunk-UBDPV34P.js.map +0 -1
  148. package/dist/chunk-VAKFNNKT.js +0 -410
  149. package/dist/chunk-VAKFNNKT.js.map +0 -1
  150. package/dist/chunk-XDV4ZRVK.js.map +0 -1
  151. package/dist/chunk-XW4CVBUH.js.map +0 -1
  152. package/dist/chunk-ZUW4B5AT.js.map +0 -1
  153. package/dist/plan-decision-ops.d.ts +0 -70
  154. package/dist/plan-decision-ops.js +0 -19
  155. package/dist/queued-prompt-runtime.d.ts +0 -115
  156. package/dist/queued-prompt-runtime.js +0 -9
  157. package/dist/uiSettings-BQS9r2eo.d.ts +0 -6
  158. package/dist/workspaceAgentActivityListViewModel-BzV-cf0D.d.ts +0 -340
  159. package/dist/workspaceLinkActions-DS9LWqzI.d.ts +0 -74
  160. /package/dist/{plan-decision-ops.js.map → agent-gui.js.map} +0 -0
  161. /package/dist/{queued-prompt-runtime.js.map → agents.js.map} +0 -0
  162. /package/dist/{chunk-5FE7M42A.js.map → chunk-E4HQUTM3.js.map} +0 -0
  163. /package/dist/{chunk-554VG7ZW.js.map → chunk-QVBF5BN5.js.map} +0 -0
@@ -0,0 +1,226 @@
1
+ import { A as AgentContextMentionItem } from './agentFileMentionContracts-58IjMU-u.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-WMNS4MAQ.js";
7
+ import "./chunk-3XXBDYAI.js";
8
+ import "./chunk-O3Q5SIJH.js";
9
+ import "./chunk-Y35GDLP2.js";
10
+ import "./chunk-LUGELG5V.js";
11
+ import "./chunk-JM24HADP.js";
12
+ import "./chunk-YMXYBG7U.js";
13
+ import "./chunk-MASXZENX.js";
14
+ import "./chunk-H5F3QSCF.js";
15
+ import "./chunk-PJP5BUU6.js";
16
+ import "./chunk-H6IQ63DQ.js";
17
+ import "./chunk-GCBDIQDX.js";
18
+ import "./chunk-E4HQUTM3.js";
19
+ import "./chunk-W6WAGPMD.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,4 @@
1
+ declare const AGENT_PASTED_TEXT_BLOCK_KIND = "pasted-text";
2
+ declare const AGENT_PASTED_TEXT_MENTION_KIND = "pasted-text";
3
+
4
+ export { AGENT_PASTED_TEXT_BLOCK_KIND as A, AGENT_PASTED_TEXT_MENTION_KIND as a };
@@ -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 };
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ interface AgentGUIStartupShellProps {
4
+ loadingLabel: string;
5
+ }
6
+ declare function AgentGUIStartupShell({ loadingLabel }: AgentGUIStartupShellProps): ReactNode;
7
+
8
+ export { AgentGUIStartupShell, type AgentGUIStartupShellProps };
@@ -0,0 +1,184 @@
1
+ // AgentGUIStartupShell.tsx
2
+ import { Spinner } from "@tutti-os/ui-system";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ var conversationSkeletonRowSizes = [
5
+ "long",
6
+ "medium",
7
+ "short",
8
+ "long",
9
+ "medium"
10
+ ];
11
+ function AgentGUIStartupShell({
12
+ loadingLabel
13
+ }) {
14
+ return /* @__PURE__ */ jsx(
15
+ "div",
16
+ {
17
+ "aria-busy": "true",
18
+ className: "agent-gui-node__shell h-full min-h-0 min-w-0",
19
+ "data-agent-gui-startup-shell": "body",
20
+ children: /* @__PURE__ */ jsx("div", { className: "agent-gui-node__body", children: /* @__PURE__ */ jsxs(
21
+ "div",
22
+ {
23
+ className: "agent-gui-node__layout",
24
+ style: {
25
+ gridTemplateColumns: "52px 280px minmax(0, 1fr)"
26
+ },
27
+ children: [
28
+ /* @__PURE__ */ jsx("aside", { className: "flex h-full min-h-0 flex-col items-center gap-3 overflow-hidden bg-[var(--background-session-sidepanel)] px-2 pt-12", children: [0, 1, 2].map((index) => /* @__PURE__ */ jsx(
29
+ "span",
30
+ {
31
+ "aria-hidden": "true",
32
+ className: "size-8 shrink-0 rounded-lg bg-[var(--transparency-block)]"
33
+ },
34
+ index
35
+ )) }),
36
+ /* @__PURE__ */ jsxs("aside", { className: "flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-[var(--background-session-sidepanel)] pt-12", children: [
37
+ /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2 px-4 pb-4", children: [
38
+ /* @__PURE__ */ jsx(
39
+ "span",
40
+ {
41
+ "aria-hidden": "true",
42
+ className: "h-8 min-w-0 flex-1 rounded-md bg-[var(--transparency-block)]"
43
+ }
44
+ ),
45
+ /* @__PURE__ */ jsx(
46
+ "span",
47
+ {
48
+ "aria-hidden": "true",
49
+ className: "size-8 shrink-0 rounded-md bg-[var(--transparency-block)]"
50
+ }
51
+ )
52
+ ] }),
53
+ /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-hidden px-4", children: /* @__PURE__ */ jsx("div", { className: "agent-gui-node__conversation-list-skeleton", children: conversationSkeletonRowSizes.map((size, index) => /* @__PURE__ */ jsxs(
54
+ "div",
55
+ {
56
+ className: "agent-gui-node__conversation-list-skeleton-row",
57
+ "data-size": size,
58
+ children: [
59
+ /* @__PURE__ */ jsx("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
60
+ /* @__PURE__ */ jsx("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
61
+ /* @__PURE__ */ jsx("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
62
+ ]
63
+ },
64
+ `${size}-${index}`
65
+ )) }) })
66
+ ] }),
67
+ /* @__PURE__ */ jsx("section", { className: "agent-gui-node__detail-panel", children: /* @__PURE__ */ jsx("div", { className: "agent-gui-node__detail pt-11", children: /* @__PURE__ */ jsx("div", { className: "flex h-full min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsx("div", { className: "agent-gui-node__timeline agent-gui-node__timeline-centered", children: /* @__PURE__ */ jsx(
68
+ "div",
69
+ {
70
+ className: "grid min-w-full grid-cols-[minmax(0,1fr)] gap-6",
71
+ "data-agent-gui-startup-timeline-content": "true",
72
+ children: /* @__PURE__ */ jsx("div", { className: "agent-gui-node__empty-hero", children: /* @__PURE__ */ jsxs("div", { className: "agent-gui-node__empty-hero-body", children: [
73
+ /* @__PURE__ */ jsx(
74
+ "div",
75
+ {
76
+ className: "agent-gui-node__empty-hero-icon-slot",
77
+ "data-carousel-placeholder": true,
78
+ children: /* @__PURE__ */ jsxs(
79
+ "div",
80
+ {
81
+ "aria-hidden": "true",
82
+ className: "flex h-28 w-full items-center justify-center gap-4",
83
+ children: [
84
+ /* @__PURE__ */ jsx("span", { className: "h-16 w-14 -rotate-6 rounded-lg bg-[var(--transparency-block)]" }),
85
+ /* @__PURE__ */ jsx("span", { className: "size-20 rounded-xl bg-[var(--transparency-block)]" }),
86
+ /* @__PURE__ */ jsx("span", { className: "h-16 w-14 rotate-6 rounded-lg bg-[var(--transparency-block)]" })
87
+ ]
88
+ }
89
+ )
90
+ }
91
+ ),
92
+ /* @__PURE__ */ jsx("h2", { className: "agent-gui-node__empty-hero-title", children: /* @__PURE__ */ jsx(
93
+ "span",
94
+ {
95
+ "aria-hidden": "true",
96
+ className: "inline-block h-9 w-[min(440px,80%)] rounded-md bg-[var(--transparency-block)]"
97
+ }
98
+ ) }),
99
+ /* @__PURE__ */ jsxs(
100
+ "div",
101
+ {
102
+ className: "agent-gui-node__composer-hero",
103
+ "data-layout": "hero",
104
+ children: [
105
+ /* @__PURE__ */ jsx("div", { className: "agent-gui-node__composer-input-group agent-gui-node__composer-input-group-hero", children: /* @__PURE__ */ jsxs("div", { className: "agent-gui-node__composer-input-shell agent-gui-node__composer-input-shell-hero", children: [
106
+ /* @__PURE__ */ jsx("div", { className: "agent-gui-node__composer-hero-prompt-input-area", children: /* @__PURE__ */ jsx(
107
+ "textarea",
108
+ {
109
+ "aria-label": loadingLabel,
110
+ className: "h-[46px] min-h-[46px] w-full resize-none border-0 bg-transparent p-0 text-[13px] outline-none",
111
+ disabled: true,
112
+ rows: 2
113
+ }
114
+ ) }),
115
+ /* @__PURE__ */ jsxs(
116
+ "div",
117
+ {
118
+ "aria-hidden": "true",
119
+ className: "agent-gui-node__composer-footer",
120
+ children: [
121
+ /* @__PURE__ */ jsxs("div", { className: "agent-gui-node__composer-footer-left", children: [
122
+ /* @__PURE__ */ jsx("span", { className: "size-7 rounded-md bg-[var(--transparency-block)]" }),
123
+ /* @__PURE__ */ jsx("span", { className: "h-7 w-20 rounded-md bg-[var(--transparency-block)]" })
124
+ ] }),
125
+ /* @__PURE__ */ jsxs("div", { className: "agent-gui-node__composer-footer-right", children: [
126
+ /* @__PURE__ */ jsx("span", { className: "h-7 w-16 rounded-md bg-[var(--transparency-block)]" }),
127
+ /* @__PURE__ */ jsx(
128
+ Spinner,
129
+ {
130
+ className: "text-[var(--text-tertiary)]",
131
+ size: 16
132
+ }
133
+ )
134
+ ] })
135
+ ]
136
+ }
137
+ )
138
+ ] }) }),
139
+ /* @__PURE__ */ jsxs("div", { className: "agent-gui-node__composer-project-row", children: [
140
+ /* @__PURE__ */ jsx(
141
+ "span",
142
+ {
143
+ "aria-hidden": "true",
144
+ className: "h-7 w-28 shrink-0 rounded-md bg-[var(--transparency-block)]"
145
+ }
146
+ ),
147
+ /* @__PURE__ */ jsx("div", { className: "agent-gui-node__composer-prompt-tips", children: /* @__PURE__ */ jsx("span", { className: "agent-gui-node__composer-prompt-tip", children: /* @__PURE__ */ jsx("span", { className: "agent-gui-node__composer-prompt-tip-track", children: /* @__PURE__ */ jsx("span", { className: "agent-gui-node__composer-prompt-tip-item", children: /* @__PURE__ */ jsx(
148
+ "span",
149
+ {
150
+ "aria-hidden": "true",
151
+ className: "inline-block h-2.5 w-56 rounded-full bg-[var(--transparency-block)]"
152
+ }
153
+ ) }) }) }) })
154
+ ] })
155
+ ]
156
+ }
157
+ ),
158
+ /* @__PURE__ */ jsx("div", { className: "agent-gui-node__empty-hero-suggestions", children: /* @__PURE__ */ jsxs(
159
+ "div",
160
+ {
161
+ "aria-hidden": "true",
162
+ className: "agent-gui-node__empty-hero-suggestions-chips",
163
+ children: [
164
+ /* @__PURE__ */ jsx("span", { className: "h-8 w-24 rounded-full bg-[var(--transparency-block)]" }),
165
+ /* @__PURE__ */ jsx("span", { className: "h-8 w-32 rounded-full bg-[var(--transparency-block)]" }),
166
+ /* @__PURE__ */ jsx("span", { className: "h-8 w-30 rounded-full bg-[var(--transparency-block)]" }),
167
+ /* @__PURE__ */ jsx("span", { className: "h-8 w-36 rounded-full bg-[var(--transparency-block)]" }),
168
+ /* @__PURE__ */ jsx("span", { className: "h-8 w-28 rounded-full bg-[var(--transparency-block)]" })
169
+ ]
170
+ }
171
+ ) })
172
+ ] }) })
173
+ }
174
+ ) }) }) }) })
175
+ ]
176
+ }
177
+ ) })
178
+ }
179
+ );
180
+ }
181
+ export {
182
+ AgentGUIStartupShell
183
+ };
184
+ //# sourceMappingURL=startup-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../AgentGUIStartupShell.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Spinner } from \"@tutti-os/ui-system\";\n\nconst conversationSkeletonRowSizes = [\n \"long\",\n \"medium\",\n \"short\",\n \"long\",\n \"medium\"\n] as const;\n\nexport interface AgentGUIStartupShellProps {\n loadingLabel: string;\n}\n\nexport function AgentGUIStartupShell({\n loadingLabel\n}: AgentGUIStartupShellProps): ReactNode {\n return (\n <div\n aria-busy=\"true\"\n className=\"agent-gui-node__shell h-full min-h-0 min-w-0\"\n data-agent-gui-startup-shell=\"body\"\n >\n <div className=\"agent-gui-node__body\">\n <div\n className=\"agent-gui-node__layout\"\n style={{\n gridTemplateColumns: \"52px 280px minmax(0, 1fr)\"\n }}\n >\n <aside className=\"flex h-full min-h-0 flex-col items-center gap-3 overflow-hidden bg-[var(--background-session-sidepanel)] px-2 pt-12\">\n {[0, 1, 2].map((index) => (\n <span\n aria-hidden=\"true\"\n className=\"size-8 shrink-0 rounded-lg bg-[var(--transparency-block)]\"\n key={index}\n />\n ))}\n </aside>\n <aside className=\"flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-[var(--background-session-sidepanel)] pt-12\">\n <div className=\"flex shrink-0 items-center gap-2 px-4 pb-4\">\n <span\n aria-hidden=\"true\"\n className=\"h-8 min-w-0 flex-1 rounded-md bg-[var(--transparency-block)]\"\n />\n <span\n aria-hidden=\"true\"\n className=\"size-8 shrink-0 rounded-md bg-[var(--transparency-block)]\"\n />\n </div>\n <div className=\"min-h-0 flex-1 overflow-hidden px-4\">\n <div className=\"agent-gui-node__conversation-list-skeleton\">\n {conversationSkeletonRowSizes.map((size, index) => (\n <div\n className=\"agent-gui-node__conversation-list-skeleton-row\"\n data-size={size}\n key={`${size}-${index}`}\n >\n <span className=\"agent-gui-node__conversation-list-skeleton-spine\" />\n <span className=\"agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary\" />\n <span className=\"agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary\" />\n </div>\n ))}\n </div>\n </div>\n </aside>\n <section className=\"agent-gui-node__detail-panel\">\n <div className=\"agent-gui-node__detail pt-11\">\n <div className=\"flex h-full min-h-0 flex-1 flex-col\">\n <div className=\"agent-gui-node__timeline agent-gui-node__timeline-centered\">\n <div\n className=\"grid min-w-full grid-cols-[minmax(0,1fr)] gap-6\"\n data-agent-gui-startup-timeline-content=\"true\"\n >\n <div className=\"agent-gui-node__empty-hero\">\n <div className=\"agent-gui-node__empty-hero-body\">\n <div\n className=\"agent-gui-node__empty-hero-icon-slot\"\n data-carousel-placeholder={true}\n >\n <div\n aria-hidden=\"true\"\n className=\"flex h-28 w-full items-center justify-center gap-4\"\n >\n <span className=\"h-16 w-14 -rotate-6 rounded-lg bg-[var(--transparency-block)]\" />\n <span className=\"size-20 rounded-xl bg-[var(--transparency-block)]\" />\n <span className=\"h-16 w-14 rotate-6 rounded-lg bg-[var(--transparency-block)]\" />\n </div>\n </div>\n <h2 className=\"agent-gui-node__empty-hero-title\">\n <span\n aria-hidden=\"true\"\n className=\"inline-block h-9 w-[min(440px,80%)] rounded-md bg-[var(--transparency-block)]\"\n />\n </h2>\n <div\n className=\"agent-gui-node__composer-hero\"\n data-layout=\"hero\"\n >\n <div className=\"agent-gui-node__composer-input-group agent-gui-node__composer-input-group-hero\">\n <div className=\"agent-gui-node__composer-input-shell agent-gui-node__composer-input-shell-hero\">\n <div className=\"agent-gui-node__composer-hero-prompt-input-area\">\n <textarea\n aria-label={loadingLabel}\n className=\"h-[46px] min-h-[46px] w-full resize-none border-0 bg-transparent p-0 text-[13px] outline-none\"\n disabled\n rows={2}\n />\n </div>\n <div\n aria-hidden=\"true\"\n className=\"agent-gui-node__composer-footer\"\n >\n <div className=\"agent-gui-node__composer-footer-left\">\n <span className=\"size-7 rounded-md bg-[var(--transparency-block)]\" />\n <span className=\"h-7 w-20 rounded-md bg-[var(--transparency-block)]\" />\n </div>\n <div className=\"agent-gui-node__composer-footer-right\">\n <span className=\"h-7 w-16 rounded-md bg-[var(--transparency-block)]\" />\n <Spinner\n className=\"text-[var(--text-tertiary)]\"\n size={16}\n />\n </div>\n </div>\n </div>\n </div>\n <div className=\"agent-gui-node__composer-project-row\">\n <span\n aria-hidden=\"true\"\n className=\"h-7 w-28 shrink-0 rounded-md bg-[var(--transparency-block)]\"\n />\n <div className=\"agent-gui-node__composer-prompt-tips\">\n <span className=\"agent-gui-node__composer-prompt-tip\">\n <span className=\"agent-gui-node__composer-prompt-tip-track\">\n <span className=\"agent-gui-node__composer-prompt-tip-item\">\n <span\n aria-hidden=\"true\"\n className=\"inline-block h-2.5 w-56 rounded-full bg-[var(--transparency-block)]\"\n />\n </span>\n </span>\n </span>\n </div>\n </div>\n </div>\n <div className=\"agent-gui-node__empty-hero-suggestions\">\n <div\n aria-hidden=\"true\"\n className=\"agent-gui-node__empty-hero-suggestions-chips\"\n >\n <span className=\"h-8 w-24 rounded-full bg-[var(--transparency-block)]\" />\n <span className=\"h-8 w-32 rounded-full bg-[var(--transparency-block)]\" />\n <span className=\"h-8 w-30 rounded-full bg-[var(--transparency-block)]\" />\n <span className=\"h-8 w-36 rounded-full bg-[var(--transparency-block)]\" />\n <span className=\"h-8 w-28 rounded-full bg-[var(--transparency-block)]\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}