@genesislcap/ai-assistant 14.420.0 → 14.421.1
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.
- package/dist/ai-assistant.api.json +4061 -1416
- package/dist/ai-assistant.d.ts +594 -81
- package/dist/dts/channel/ai-activity-channel.d.ts +4 -22
- package/dist/dts/channel/ai-activity-channel.d.ts.map +1 -1
- package/dist/dts/components/ai-driver/ai-driver.d.ts +52 -0
- package/dist/dts/components/ai-driver/ai-driver.d.ts.map +1 -0
- package/dist/dts/components/ai-driver/index.d.ts +2 -0
- package/dist/dts/components/ai-driver/index.d.ts.map +1 -0
- package/dist/dts/components/chat-driver/chat-driver.d.ts +63 -8
- package/dist/dts/components/chat-driver/chat-driver.d.ts.map +1 -1
- package/dist/dts/components/chat-interaction-wrapper/chat-interaction-wrapper.d.ts +3 -3
- package/dist/dts/components/chat-interaction-wrapper/chat-interaction-wrapper.d.ts.map +1 -1
- package/dist/dts/components/chat-markdown/chat-markdown.d.ts +1 -1
- package/dist/dts/components/chat-markdown/chat-markdown.d.ts.map +1 -1
- package/dist/dts/components/halo-overlay.d.ts +13 -1
- package/dist/dts/components/halo-overlay.d.ts.map +1 -1
- package/dist/dts/components/orchestrating-driver/index.d.ts +2 -0
- package/dist/dts/components/orchestrating-driver/index.d.ts.map +1 -0
- package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts +39 -0
- package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts.map +1 -0
- package/dist/dts/components/popout-manager/index.d.ts +2 -0
- package/dist/dts/components/popout-manager/index.d.ts.map +1 -0
- package/dist/dts/components/popout-manager/popout-manager.d.ts +72 -0
- package/dist/dts/components/popout-manager/popout-manager.d.ts.map +1 -0
- package/dist/dts/config/config.d.ts +43 -15
- package/dist/dts/config/config.d.ts.map +1 -1
- package/dist/dts/config/fallback-agents.d.ts +20 -0
- package/dist/dts/config/fallback-agents.d.ts.map +1 -0
- package/dist/dts/config/index.d.ts +1 -0
- package/dist/dts/config/index.d.ts.map +1 -1
- package/dist/dts/index.d.ts +6 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/main/main.d.ts +122 -21
- package/dist/dts/main/main.d.ts.map +1 -1
- package/dist/dts/main/main.styles.d.ts.map +1 -1
- package/dist/dts/main/main.template.d.ts.map +1 -1
- package/dist/dts/main/main.types.d.ts +16 -0
- package/dist/dts/main/main.types.d.ts.map +1 -1
- package/dist/dts/state/ai-assistant-slice.d.ts +38 -0
- package/dist/dts/state/ai-assistant-slice.d.ts.map +1 -0
- package/dist/dts/state/driver-registry.d.ts +22 -0
- package/dist/dts/state/driver-registry.d.ts.map +1 -0
- package/dist/dts/state/session-store.d.ts +37 -0
- package/dist/dts/state/session-store.d.ts.map +1 -0
- package/dist/dts/suggestions/chat-suggestions.d.ts +7 -0
- package/dist/dts/suggestions/chat-suggestions.d.ts.map +1 -0
- package/dist/dts/types/ai-chat-widget.d.ts +3 -2
- package/dist/dts/types/ai-chat-widget.d.ts.map +1 -1
- package/dist/dts/utils/index.d.ts +1 -0
- package/dist/dts/utils/index.d.ts.map +1 -1
- package/dist/dts/utils/tool-fold.d.ts +133 -0
- package/dist/dts/utils/tool-fold.d.ts.map +1 -0
- package/dist/esm/components/ai-driver/ai-driver.js +1 -0
- package/dist/esm/components/ai-driver/index.js +1 -0
- package/dist/esm/components/chat-driver/chat-driver.js +499 -67
- package/dist/esm/components/chat-interaction-wrapper/chat-interaction-wrapper.js +2 -2
- package/dist/esm/components/chat-markdown/chat-markdown.js +1 -1
- package/dist/esm/components/halo-overlay.js +53 -7
- package/dist/esm/components/orchestrating-driver/index.js +1 -0
- package/dist/esm/components/orchestrating-driver/orchestrating-driver.js +247 -0
- package/dist/esm/components/popout-manager/index.js +1 -0
- package/dist/esm/components/popout-manager/popout-manager.js +126 -0
- package/dist/esm/config/fallback-agents.js +26 -0
- package/dist/esm/config/index.js +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/main/main.js +546 -112
- package/dist/esm/main/main.styles.js +200 -4
- package/dist/esm/main/main.template.js +163 -63
- package/dist/esm/state/ai-assistant-slice.js +54 -0
- package/dist/esm/state/driver-registry.js +46 -0
- package/dist/esm/state/session-store.js +39 -0
- package/dist/esm/suggestions/chat-suggestions.js +147 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/tool-fold.js +92 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/migration-FUI-2495.md +339 -0
- package/docs/sub_agent.md +310 -0
- package/package.json +16 -15
- package/src/channel/ai-activity-channel.ts +4 -20
- package/src/components/ai-driver/ai-driver.ts +69 -0
- package/src/components/ai-driver/index.ts +1 -0
- package/src/components/chat-driver/chat-driver.ts +600 -73
- package/src/components/chat-interaction-wrapper/chat-interaction-wrapper.ts +3 -3
- package/src/components/chat-markdown/chat-markdown.ts +1 -1
- package/src/components/halo-overlay.ts +45 -7
- package/src/components/orchestrating-driver/index.ts +1 -0
- package/src/components/orchestrating-driver/orchestrating-driver.ts +328 -0
- package/src/components/popout-manager/index.ts +1 -0
- package/src/components/popout-manager/popout-manager.ts +147 -0
- package/src/config/config.ts +45 -15
- package/src/config/fallback-agents.ts +29 -0
- package/src/config/index.ts +1 -0
- package/src/index.ts +6 -0
- package/src/main/main.styles.ts +200 -4
- package/src/main/main.template.ts +200 -80
- package/src/main/main.ts +567 -94
- package/src/main/main.types.ts +11 -0
- package/src/state/ai-assistant-slice.ts +80 -0
- package/src/state/driver-registry.ts +51 -0
- package/src/state/session-store.ts +56 -0
- package/src/suggestions/chat-suggestions.ts +158 -0
- package/src/types/ai-chat-widget.ts +4 -2
- package/src/utils/index.ts +1 -0
- package/src/utils/tool-fold.ts +181 -0
- package/docs/multi-agent-architecture.md +0 -198
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { FallbackAgentConfig } from './config';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A warm, conversational fallback agent. Acknowledges it can't help directly,
|
|
5
|
+
* explains what the available specialists can do, and invites the user to retry.
|
|
6
|
+
*
|
|
7
|
+
* The system prompt is generated at runtime by `OrchestratingDriver` from the
|
|
8
|
+
* specialist list — no manual authoring required.
|
|
9
|
+
*
|
|
10
|
+
* @beta
|
|
11
|
+
*/
|
|
12
|
+
export const friendlyFallbackAgent: FallbackAgentConfig = {
|
|
13
|
+
name: 'Assistant',
|
|
14
|
+
fallback: true,
|
|
15
|
+
systemPrompt: `You are a warm, friendly assistant. For general conversation like "Hi" or "How are you", you can have a friendly chat. For anything more complex, you cannot directly help, but you can explain what specialists are available. The available specialists are:\n\n{{agents}}\n\nPolitely let the user know what you can help with and invite them to rephrase their request if it is outside your scope.`,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A brief, professional fallback agent. States what is available without
|
|
20
|
+
* elaboration. The `{{agents}}` placeholder is replaced at runtime by
|
|
21
|
+
* `OrchestratingDriver` with the generated specialist list.
|
|
22
|
+
*
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
export const strictFallbackAgent: FallbackAgentConfig = {
|
|
26
|
+
name: 'Assistant',
|
|
27
|
+
fallback: true,
|
|
28
|
+
systemPrompt: `You are a concise assistant. The user's request is outside your scope. Respond with a single short sentence stating what you can assist with. Do not elaborate. The available specialists are: {{agents}}.`,
|
|
29
|
+
};
|
package/src/config/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
export * from './main/main';
|
|
2
2
|
export * from './main/main.types';
|
|
3
3
|
export * from './main/main.template';
|
|
4
|
+
export * from './components/ai-driver';
|
|
4
5
|
export * from './components/chat-driver';
|
|
6
|
+
export * from './components/orchestrating-driver';
|
|
7
|
+
export * from './components/popout-manager';
|
|
5
8
|
export * from './channel/ai-activity-channel';
|
|
6
9
|
export * from './channel/ai-activity-bus';
|
|
7
10
|
export * from './config/config';
|
|
11
|
+
export * from './config/fallback-agents';
|
|
12
|
+
export * from './utils/tool-fold';
|
|
8
13
|
export type { AiChatWidget } from './types/ai-chat-widget';
|
|
14
|
+
export { AiChatMarkdown } from './components/chat-markdown/chat-markdown';
|
package/src/main/main.styles.ts
CHANGED
|
@@ -17,6 +17,7 @@ export const styles = css`
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.chat-wrapper {
|
|
20
|
+
container-type: inline-size;
|
|
20
21
|
position: relative;
|
|
21
22
|
display: flex;
|
|
22
23
|
flex-direction: column;
|
|
@@ -62,22 +63,189 @@ export const styles = css`
|
|
|
62
63
|
font-size: 1.2em;
|
|
63
64
|
}
|
|
64
65
|
|
|
66
|
+
@keyframes settings-slide-in {
|
|
67
|
+
from {
|
|
68
|
+
opacity: 0%;
|
|
69
|
+
transform: translateY(-6px);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
to {
|
|
73
|
+
opacity: 100%;
|
|
74
|
+
transform: translateY(0);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@keyframes settings-slide-out {
|
|
79
|
+
from {
|
|
80
|
+
opacity: 100%;
|
|
81
|
+
transform: translateY(0);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
to {
|
|
85
|
+
opacity: 0%;
|
|
86
|
+
transform: translateY(-6px);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
65
90
|
.settings-panel {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
gap: calc(var(--design-unit) * 4px);
|
|
91
|
+
animation: settings-slide-in 0.2s ease-out;
|
|
92
|
+
display: grid;
|
|
93
|
+
grid-template-columns: 1fr;
|
|
94
|
+
gap: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 4px);
|
|
70
95
|
padding: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 3px);
|
|
71
96
|
border-bottom: 1px solid var(--neutral-stroke-rest);
|
|
72
97
|
background-color: var(--neutral-layer-2);
|
|
73
98
|
}
|
|
74
99
|
|
|
100
|
+
.settings-panel.closing {
|
|
101
|
+
animation: settings-slide-out 0.2s ease-in forwards;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
rapid-multiselect::part(root) {
|
|
105
|
+
min-width: 80px;
|
|
106
|
+
width: 300%;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
rapid-multiselect::part(control),
|
|
110
|
+
.settings-panel > [part='download-button'] {
|
|
111
|
+
width: fit-content;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.settings-panel > [part='toggle-tool-calls'] {
|
|
115
|
+
grid-column: 1;
|
|
116
|
+
grid-row: 1;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.settings-panel > [part='toggle-thinking'] {
|
|
120
|
+
grid-column: 2;
|
|
121
|
+
grid-row: 1;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.settings-panel > [part='toggle-agent-switch'] {
|
|
125
|
+
grid-column: 1;
|
|
126
|
+
grid-row: 2;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.settings-panel > [part='download-button'] {
|
|
130
|
+
grid-column: 2;
|
|
131
|
+
grid-row: 2;
|
|
132
|
+
}
|
|
133
|
+
|
|
75
134
|
.settings-animations {
|
|
76
135
|
display: flex;
|
|
77
136
|
align-items: center;
|
|
78
137
|
gap: calc(var(--design-unit) * 2px);
|
|
79
138
|
}
|
|
80
139
|
|
|
140
|
+
.settings-panel > .settings-animations {
|
|
141
|
+
grid-column: 1/2;
|
|
142
|
+
grid-row: 3;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@container (min-width: 400px) {
|
|
146
|
+
.settings-panel {
|
|
147
|
+
grid-template-columns: auto 1fr;
|
|
148
|
+
align-items: start;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.settings-panel > [part='toggle-tool-calls'] {
|
|
152
|
+
grid-column: 1;
|
|
153
|
+
grid-row: 1;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.settings-panel > [part='toggle-thinking'] {
|
|
157
|
+
grid-column: 1;
|
|
158
|
+
grid-row: 2;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.settings-panel > [part='toggle-agent-switch'] {
|
|
162
|
+
grid-column: 1;
|
|
163
|
+
grid-row: 3;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.settings-panel > [part='download-button'],
|
|
167
|
+
.settings-panel > .settings-animations {
|
|
168
|
+
grid-column: 2;
|
|
169
|
+
justify-self: end;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.settings-panel > [part='download-button'] {
|
|
173
|
+
grid-row: 1;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.settings-panel > .settings-animations {
|
|
177
|
+
grid-row: 2;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@container (min-width: 750px) {
|
|
182
|
+
.settings-panel {
|
|
183
|
+
display: flex;
|
|
184
|
+
flex-wrap: nowrap;
|
|
185
|
+
align-items: center;
|
|
186
|
+
gap: calc(var(--design-unit) * 4px);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.settings-panel > [part='download-button'],
|
|
190
|
+
.settings-panel > .settings-animations {
|
|
191
|
+
justify-self: unset;
|
|
192
|
+
margin-left: auto;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.settings-panel > [part='download-button'] ~ .settings-animations {
|
|
196
|
+
margin-left: 0;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.context-usage {
|
|
201
|
+
animation: settings-slide-in 0.2s ease-out;
|
|
202
|
+
padding: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 3px);
|
|
203
|
+
border-bottom: 1px solid var(--neutral-stroke-rest);
|
|
204
|
+
background-color: var(--neutral-layer-2);
|
|
205
|
+
display: flex;
|
|
206
|
+
flex-direction: column;
|
|
207
|
+
gap: calc(var(--design-unit) * 1px);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.context-usage-header {
|
|
211
|
+
display: flex;
|
|
212
|
+
justify-content: space-between;
|
|
213
|
+
align-items: baseline;
|
|
214
|
+
gap: calc(var(--design-unit) * 2px);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.context-usage-label {
|
|
218
|
+
font-size: 0.85em;
|
|
219
|
+
font-weight: 600;
|
|
220
|
+
color: var(--neutral-foreground-rest);
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.context-usage-tokens {
|
|
225
|
+
font-size: 0.8em;
|
|
226
|
+
color: var(--neutral-foreground-hint, var(--neutral-foreground-rest));
|
|
227
|
+
opacity: 80%;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.context-usage rapid-progress,
|
|
231
|
+
.context-usage [part='context-progress'] {
|
|
232
|
+
width: 100%;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.splash-wrapper {
|
|
236
|
+
position: absolute;
|
|
237
|
+
inset: 0;
|
|
238
|
+
z-index: 10;
|
|
239
|
+
overflow: hidden;
|
|
240
|
+
pointer-events: none;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
::slotted([slot='splash']) {
|
|
244
|
+
display: block;
|
|
245
|
+
width: 100%;
|
|
246
|
+
height: 100%;
|
|
247
|
+
}
|
|
248
|
+
|
|
81
249
|
.messages {
|
|
82
250
|
flex: 1;
|
|
83
251
|
overflow-y: auto;
|
|
@@ -123,6 +291,28 @@ export const styles = css`
|
|
|
123
291
|
}
|
|
124
292
|
}
|
|
125
293
|
|
|
294
|
+
.agent-switch-indicator {
|
|
295
|
+
display: flex;
|
|
296
|
+
align-items: center;
|
|
297
|
+
gap: 8px;
|
|
298
|
+
margin: 8px 0;
|
|
299
|
+
color: var(--neutral-foreground-hint, var(--neutral-foreground-rest));
|
|
300
|
+
opacity: 60%;
|
|
301
|
+
font-size: 0.75em;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.agent-switch-indicator::before,
|
|
305
|
+
.agent-switch-indicator::after {
|
|
306
|
+
content: '';
|
|
307
|
+
flex: 1;
|
|
308
|
+
height: 1px;
|
|
309
|
+
background: currentColor;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.agent-switch-label {
|
|
313
|
+
white-space: nowrap;
|
|
314
|
+
}
|
|
315
|
+
|
|
126
316
|
.message-row {
|
|
127
317
|
display: flex;
|
|
128
318
|
align-items: flex-start;
|
|
@@ -255,6 +445,12 @@ export const styles = css`
|
|
|
255
445
|
font-size: 0.95em;
|
|
256
446
|
}
|
|
257
447
|
|
|
448
|
+
.payload.unknown-tool {
|
|
449
|
+
color: var(--error-color, #f87171);
|
|
450
|
+
border-left: 2px solid color-mix(in srgb, var(--error-color, #f87171) 40%, transparent);
|
|
451
|
+
padding-left: 8px;
|
|
452
|
+
}
|
|
453
|
+
|
|
258
454
|
.input-row {
|
|
259
455
|
display: flex;
|
|
260
456
|
gap: calc(var(--design-unit) * 2px);
|