@sudodevstudio/astro-ai 0.1.0
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/LICENSE +21 -0
- package/README.md +114 -0
- package/dist/agent/agent-fallback.d.ts +50 -0
- package/dist/agent/agent-fallback.d.ts.map +1 -0
- package/dist/agent/agent-fallback.js +31 -0
- package/dist/agent/agent-fallback.js.map +1 -0
- package/dist/agent/cli-agent-fallback.d.ts +79 -0
- package/dist/agent/cli-agent-fallback.d.ts.map +1 -0
- package/dist/agent/cli-agent-fallback.js +1056 -0
- package/dist/agent/cli-agent-fallback.js.map +1 -0
- package/dist/integration/index.d.ts +28 -0
- package/dist/integration/index.d.ts.map +1 -0
- package/dist/integration/index.js +389 -0
- package/dist/integration/index.js.map +1 -0
- package/dist/resolver/astro-resolver.d.ts +28 -0
- package/dist/resolver/astro-resolver.d.ts.map +1 -0
- package/dist/resolver/astro-resolver.js +835 -0
- package/dist/resolver/astro-resolver.js.map +1 -0
- package/dist/resolver/types.d.ts +39 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +2 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/shared/protocol.d.ts +150 -0
- package/dist/shared/protocol.d.ts.map +1 -0
- package/dist/shared/protocol.js +28 -0
- package/dist/shared/protocol.js.map +1 -0
- package/dist/shared/selection-context.d.ts +75 -0
- package/dist/shared/selection-context.d.ts.map +1 -0
- package/dist/shared/selection-context.js +2 -0
- package/dist/shared/selection-context.js.map +1 -0
- package/dist/shared/visual-components.d.ts +15 -0
- package/dist/shared/visual-components.d.ts.map +1 -0
- package/dist/shared/visual-components.js +2 -0
- package/dist/shared/visual-components.js.map +1 -0
- package/dist/toolbar/action-model.d.ts +20 -0
- package/dist/toolbar/action-model.d.ts.map +1 -0
- package/dist/toolbar/action-model.js +49 -0
- package/dist/toolbar/action-model.js.map +1 -0
- package/dist/toolbar/app.d.ts +3 -0
- package/dist/toolbar/app.d.ts.map +1 -0
- package/dist/toolbar/app.js +274 -0
- package/dist/toolbar/app.js.map +1 -0
- package/dist/toolbar/chat-drawer.d.ts +111 -0
- package/dist/toolbar/chat-drawer.d.ts.map +1 -0
- package/dist/toolbar/chat-drawer.js +1575 -0
- package/dist/toolbar/chat-drawer.js.map +1 -0
- package/dist/toolbar/chat-windows.d.ts +62 -0
- package/dist/toolbar/chat-windows.d.ts.map +1 -0
- package/dist/toolbar/chat-windows.js +287 -0
- package/dist/toolbar/chat-windows.js.map +1 -0
- package/dist/toolbar/contextual-actions.d.ts +24 -0
- package/dist/toolbar/contextual-actions.d.ts.map +1 -0
- package/dist/toolbar/contextual-actions.js +371 -0
- package/dist/toolbar/contextual-actions.js.map +1 -0
- package/dist/toolbar/diagnostic-actions.d.ts +22 -0
- package/dist/toolbar/diagnostic-actions.d.ts.map +1 -0
- package/dist/toolbar/diagnostic-actions.js +127 -0
- package/dist/toolbar/diagnostic-actions.js.map +1 -0
- package/dist/toolbar/layers.d.ts +26 -0
- package/dist/toolbar/layers.d.ts.map +1 -0
- package/dist/toolbar/layers.js +31 -0
- package/dist/toolbar/layers.js.map +1 -0
- package/dist/toolbar/overlay.d.ts +40 -0
- package/dist/toolbar/overlay.d.ts.map +1 -0
- package/dist/toolbar/overlay.js +619 -0
- package/dist/toolbar/overlay.js.map +1 -0
- package/dist/visual/capability-resolver.d.ts +11 -0
- package/dist/visual/capability-resolver.d.ts.map +1 -0
- package/dist/visual/capability-resolver.js +69 -0
- package/dist/visual/capability-resolver.js.map +1 -0
- package/dist/visual/command-engine.d.ts +10 -0
- package/dist/visual/command-engine.d.ts.map +1 -0
- package/dist/visual/command-engine.js +199 -0
- package/dist/visual/command-engine.js.map +1 -0
- package/dist/visual/commands.d.ts +36 -0
- package/dist/visual/commands.d.ts.map +1 -0
- package/dist/visual/commands.js +2 -0
- package/dist/visual/commands.js.map +1 -0
- package/dist/visual/patch-transactions.d.ts +57 -0
- package/dist/visual/patch-transactions.d.ts.map +1 -0
- package/dist/visual/patch-transactions.js +259 -0
- package/dist/visual/patch-transactions.js.map +1 -0
- package/dist/vite/build-ai-plugin.d.ts +11 -0
- package/dist/vite/build-ai-plugin.d.ts.map +1 -0
- package/dist/vite/build-ai-plugin.js +45 -0
- package/dist/vite/build-ai-plugin.js.map +1 -0
- package/package.json +85 -0
- package/src/agent/agent-fallback.ts +95 -0
- package/src/agent/cli-agent-fallback.ts +1382 -0
- package/src/integration/index.ts +475 -0
- package/src/resolver/astro-resolver.ts +1024 -0
- package/src/resolver/types.ts +47 -0
- package/src/shared/protocol.ts +181 -0
- package/src/shared/selection-context.ts +91 -0
- package/src/shared/visual-components.ts +16 -0
- package/src/toolbar/action-model.ts +67 -0
- package/src/toolbar/app.ts +294 -0
- package/src/toolbar/chat-drawer.ts +1742 -0
- package/src/toolbar/chat-windows.ts +331 -0
- package/src/toolbar/contextual-actions.ts +401 -0
- package/src/toolbar/diagnostic-actions.ts +151 -0
- package/src/toolbar/layers.ts +32 -0
- package/src/toolbar/overlay.ts +638 -0
- package/src/visual/capability-resolver.ts +83 -0
- package/src/visual/command-engine.ts +250 -0
- package/src/visual/commands.ts +37 -0
- package/src/visual/patch-transactions.ts +270 -0
- package/src/vite/build-ai-plugin.ts +46 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { defineToolbarApp } from 'astro/toolbar';
|
|
2
|
+
import { CLIENT_EVENTS, PROTOCOL_VERSION, SERVER_EVENTS, } from '../shared/protocol.js';
|
|
3
|
+
import { createChatDrawerStyle } from './chat-drawer.js';
|
|
4
|
+
import { ChatWindowManager } from './chat-windows.js';
|
|
5
|
+
import { DiagnosticActionBridge } from './diagnostic-actions.js';
|
|
6
|
+
import { SelectionOverlay } from './overlay.js';
|
|
7
|
+
const APP_OPEN_KEY = 'astro-ai:app-open';
|
|
8
|
+
export default defineToolbarApp({
|
|
9
|
+
init(canvas, app, server) {
|
|
10
|
+
let disposed = false;
|
|
11
|
+
let restoringOpenState = readSession(APP_OPEN_KEY) === 'true';
|
|
12
|
+
const pendingInspectRequests = new Map();
|
|
13
|
+
let insertionZonesRequestId;
|
|
14
|
+
let overlay;
|
|
15
|
+
const windows = new ChatWindowManager({
|
|
16
|
+
onSubmit({ requestId, sessionId, instruction, mode, attachments, locked, files, externalContext }) {
|
|
17
|
+
server.send(CLIENT_EVENTS.agentInstruction, {
|
|
18
|
+
requestId,
|
|
19
|
+
sessionId,
|
|
20
|
+
instruction,
|
|
21
|
+
mode,
|
|
22
|
+
...(attachments === undefined
|
|
23
|
+
? {}
|
|
24
|
+
: {
|
|
25
|
+
attachments: attachments.map(({ nodeId, route }) => ({ nodeId, route })),
|
|
26
|
+
}),
|
|
27
|
+
...(locked === true ? { locked: true } : {}),
|
|
28
|
+
...(files === undefined ? {} : { files }),
|
|
29
|
+
...(externalContext === undefined ? {} : { externalContext }),
|
|
30
|
+
});
|
|
31
|
+
windows.noticeFor(sessionId, 'AI agent operation started…');
|
|
32
|
+
},
|
|
33
|
+
onCancel(requestId) {
|
|
34
|
+
server.send(CLIENT_EVENTS.agentCancel, { requestId });
|
|
35
|
+
},
|
|
36
|
+
onUndo() {
|
|
37
|
+
windows.broadcastNotice('Undoing the last source transaction…');
|
|
38
|
+
server.send(CLIENT_EVENTS.undo, { requestId: createRequestId() });
|
|
39
|
+
},
|
|
40
|
+
onRedo() {
|
|
41
|
+
windows.broadcastNotice('Redoing the source transaction…');
|
|
42
|
+
server.send(CLIENT_EVENTS.redo, { requestId: createRequestId() });
|
|
43
|
+
},
|
|
44
|
+
onSessionClose(sessionId) {
|
|
45
|
+
server.send(CLIENT_EVENTS.sessionClose, { sessionId });
|
|
46
|
+
},
|
|
47
|
+
onEmpty() {
|
|
48
|
+
app.toggleState({ state: false });
|
|
49
|
+
},
|
|
50
|
+
onSelectionPaused(paused) {
|
|
51
|
+
if (paused) {
|
|
52
|
+
overlay.disable();
|
|
53
|
+
windows.broadcastNotice('Selection mode paused while every chat is minimized.');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
overlay.enable();
|
|
57
|
+
overlay.start();
|
|
58
|
+
windows.broadcastNotice('Click to select · Shift-click to add · drag to marquee');
|
|
59
|
+
requestInsertionZones();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
overlay = new SelectionOverlay({
|
|
64
|
+
onInspect(nodeId) {
|
|
65
|
+
const requestId = createRequestId();
|
|
66
|
+
pendingInspectRequests.set(requestId, nodeId);
|
|
67
|
+
windows.broadcastNotice('Resolving source capabilities…');
|
|
68
|
+
server.send(CLIENT_EVENTS.inspect, {
|
|
69
|
+
requestId,
|
|
70
|
+
nodeId,
|
|
71
|
+
route: window.location.pathname,
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
onActiveChange() { },
|
|
75
|
+
onCommand(command) {
|
|
76
|
+
execute(command);
|
|
77
|
+
},
|
|
78
|
+
onAskAI(contexts, elements) {
|
|
79
|
+
windows.openWithSelections(contexts, elements);
|
|
80
|
+
},
|
|
81
|
+
onClear() {
|
|
82
|
+
windows.broadcastNotice('Click to select · Shift-click to add · drag to marquee');
|
|
83
|
+
},
|
|
84
|
+
onSelectionChange(contexts, elements) {
|
|
85
|
+
windows.setCurrentSelections(contexts, elements);
|
|
86
|
+
if (contexts.length > 1) {
|
|
87
|
+
windows.broadcastNotice(`${contexts.length} source-backed elements selected.`);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
onSelectionAnchorChange(rect) {
|
|
91
|
+
windows.setSelectionAnchor(rect);
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
const diagnosticActions = new DiagnosticActionBridge({
|
|
95
|
+
onFix(context) {
|
|
96
|
+
overlay.clearSelection();
|
|
97
|
+
app.toggleState({ state: true });
|
|
98
|
+
window.setTimeout(() => windows.openWithExternalContext(context), 0);
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
const drawerStyle = createChatDrawerStyle();
|
|
102
|
+
canvas.replaceChildren(drawerStyle, windows.element);
|
|
103
|
+
windows.hideAll(false);
|
|
104
|
+
/**
|
|
105
|
+
* Astro's app canvas rewrites its own shadow root in `connectedCallback`,
|
|
106
|
+
* and a client-side navigation re-appends the toolbar to the swapped body,
|
|
107
|
+
* which reconnects the canvas and throws away everything rendered into it.
|
|
108
|
+
* The chat windows survive as objects, so they only need remounting.
|
|
109
|
+
*/
|
|
110
|
+
function ensureMounted() {
|
|
111
|
+
if (windows.element.parentNode === canvas)
|
|
112
|
+
return;
|
|
113
|
+
canvas.append(drawerStyle, windows.element);
|
|
114
|
+
}
|
|
115
|
+
app.onToggled(({ state }) => {
|
|
116
|
+
writeSession(APP_OPEN_KEY, String(state));
|
|
117
|
+
if (state) {
|
|
118
|
+
ensureMounted();
|
|
119
|
+
overlay.enable();
|
|
120
|
+
overlay.start();
|
|
121
|
+
// Astro re-applies app status when the toolbar reconnects after a
|
|
122
|
+
// navigation. That is a re-assert, not the user opening the app, so it
|
|
123
|
+
// must not steal focus or expand a window they deliberately collapsed.
|
|
124
|
+
const opening = !restoringOpenState && !windows.visible;
|
|
125
|
+
windows.openAll(opening, true, opening);
|
|
126
|
+
windows.broadcastNotice('Click to select · Shift-click to add · drag to marquee');
|
|
127
|
+
requestInsertionZones();
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
overlay.disable();
|
|
131
|
+
windows.hideAll();
|
|
132
|
+
}
|
|
133
|
+
restoringOpenState = false;
|
|
134
|
+
});
|
|
135
|
+
server.on(SERVER_EVENTS.ready, ({ protocolVersion, history, agent }) => {
|
|
136
|
+
if (disposed || protocolVersion !== PROTOCOL_VERSION)
|
|
137
|
+
return;
|
|
138
|
+
windows.setProvider(agent);
|
|
139
|
+
windows.setHistory(history);
|
|
140
|
+
requestInsertionZones();
|
|
141
|
+
if (agent.provider !== 'none' && !agent.authenticated) {
|
|
142
|
+
windows.broadcastNotice(agent.message, true);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
server.on(SERVER_EVENTS.selection, ({ requestId, context }) => {
|
|
146
|
+
if (disposed || !pendingInspectRequests.delete(requestId))
|
|
147
|
+
return;
|
|
148
|
+
overlay.setSelection(context);
|
|
149
|
+
windows.broadcastNotice('Source-backed selection resolved locally.');
|
|
150
|
+
});
|
|
151
|
+
server.on(SERVER_EVENTS.insertionZones, ({ requestId, zones }) => {
|
|
152
|
+
if (disposed || requestId !== insertionZonesRequestId)
|
|
153
|
+
return;
|
|
154
|
+
insertionZonesRequestId = undefined;
|
|
155
|
+
overlay.setInsertionZones(zones);
|
|
156
|
+
});
|
|
157
|
+
server.on(SERVER_EVENTS.operation, ({ transaction, history }) => {
|
|
158
|
+
if (disposed)
|
|
159
|
+
return;
|
|
160
|
+
windows.setHistory(history);
|
|
161
|
+
windows.broadcastNotice(`${humanize(transaction.kind)} applied; Vite HMR is updating the page.`);
|
|
162
|
+
requestInsertionZones();
|
|
163
|
+
if (transaction.kind === 'reorder-sibling')
|
|
164
|
+
overlay.clearSelection();
|
|
165
|
+
});
|
|
166
|
+
server.on(SERVER_EVENTS.history, (history) => {
|
|
167
|
+
if (!disposed)
|
|
168
|
+
windows.setHistory(history);
|
|
169
|
+
});
|
|
170
|
+
server.on(SERVER_EVENTS.error, ({ requestId, message, fallbackEligible }) => {
|
|
171
|
+
if (disposed)
|
|
172
|
+
return;
|
|
173
|
+
if (requestId !== undefined) {
|
|
174
|
+
const nodeId = pendingInspectRequests.get(requestId);
|
|
175
|
+
pendingInspectRequests.delete(requestId);
|
|
176
|
+
if (nodeId !== undefined)
|
|
177
|
+
overlay.rejectSelection(nodeId);
|
|
178
|
+
}
|
|
179
|
+
windows.broadcastNotice(fallbackEligible ? `${message} Ask AI or open the source to continue.` : message, true);
|
|
180
|
+
});
|
|
181
|
+
server.on(SERVER_EVENTS.agentEvent, (event) => {
|
|
182
|
+
if (disposed)
|
|
183
|
+
return;
|
|
184
|
+
// Progress belongs to the window that started the run; a sibling window
|
|
185
|
+
// must not report a run it never made.
|
|
186
|
+
const drawer = windows.handleAgentEvent(event);
|
|
187
|
+
drawer?.setNotice(event.state === 'completion'
|
|
188
|
+
? event.transaction === undefined
|
|
189
|
+
? 'AI response completed without changing source.'
|
|
190
|
+
: 'AI changes applied. Undo is available.'
|
|
191
|
+
: event.state === 'failure'
|
|
192
|
+
? 'The AI run failed. Review the message for details.'
|
|
193
|
+
: `AI agent · ${humanize(event.state)}…`, event.state === 'failure');
|
|
194
|
+
});
|
|
195
|
+
server.send(CLIENT_EVENTS.ready, {
|
|
196
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
197
|
+
route: window.location.pathname,
|
|
198
|
+
pendingAgentRequestIds: windows.pendingRequestIds(),
|
|
199
|
+
activeSessionIds: windows.sessionIds(),
|
|
200
|
+
});
|
|
201
|
+
if (readSession(APP_OPEN_KEY) === 'true') {
|
|
202
|
+
window.setTimeout(() => app.toggleState({ state: true }), 0);
|
|
203
|
+
}
|
|
204
|
+
// A client-side navigation swaps the document body and moves the toolbar
|
|
205
|
+
// into it. Every selection and node id then refers to a page that is gone,
|
|
206
|
+
// and the view transition can leave the chat windows hidden behind its
|
|
207
|
+
// snapshot, so the editor re-establishes itself against the new page.
|
|
208
|
+
const onNavigation = () => {
|
|
209
|
+
if (disposed)
|
|
210
|
+
return;
|
|
211
|
+
ensureMounted();
|
|
212
|
+
overlay.clearSelection();
|
|
213
|
+
windows.handleNavigation();
|
|
214
|
+
if (windows.visible || readSession(APP_OPEN_KEY) === 'true') {
|
|
215
|
+
overlay.enable();
|
|
216
|
+
overlay.start();
|
|
217
|
+
windows.openAll(false, true, false);
|
|
218
|
+
}
|
|
219
|
+
requestInsertionZones();
|
|
220
|
+
};
|
|
221
|
+
document.addEventListener('astro:after-swap', onNavigation);
|
|
222
|
+
document.addEventListener('astro:page-load', onNavigation);
|
|
223
|
+
window.addEventListener('popstate', onNavigation);
|
|
224
|
+
const cleanup = () => {
|
|
225
|
+
if (disposed)
|
|
226
|
+
return;
|
|
227
|
+
disposed = true;
|
|
228
|
+
document.removeEventListener('astro:after-swap', onNavigation);
|
|
229
|
+
document.removeEventListener('astro:page-load', onNavigation);
|
|
230
|
+
window.removeEventListener('popstate', onNavigation);
|
|
231
|
+
overlay.destroy();
|
|
232
|
+
diagnosticActions.destroy();
|
|
233
|
+
windows.destroy();
|
|
234
|
+
};
|
|
235
|
+
import.meta.hot?.dispose(cleanup);
|
|
236
|
+
function execute(command) {
|
|
237
|
+
windows.broadcastNotice('Applying a deterministic source transformation…');
|
|
238
|
+
server.send(CLIENT_EVENTS.execute, {
|
|
239
|
+
requestId: createRequestId(),
|
|
240
|
+
command,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
function requestInsertionZones() {
|
|
244
|
+
insertionZonesRequestId = createRequestId();
|
|
245
|
+
server.send(CLIENT_EVENTS.insertionZones, {
|
|
246
|
+
requestId: insertionZonesRequestId,
|
|
247
|
+
route: window.location.pathname,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
function createRequestId() {
|
|
253
|
+
return crypto.randomUUID();
|
|
254
|
+
}
|
|
255
|
+
function humanize(kind) {
|
|
256
|
+
return kind.replaceAll('-', ' ');
|
|
257
|
+
}
|
|
258
|
+
function readSession(key) {
|
|
259
|
+
try {
|
|
260
|
+
return sessionStorage.getItem(key);
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
function writeSession(key, value) {
|
|
267
|
+
try {
|
|
268
|
+
sessionStorage.setItem(key, value);
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
// The editor remains usable if session storage is restricted.
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/toolbar/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,GASd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,eAAe,gBAAgB,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM;QACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,kBAAkB,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;QAC9D,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzD,IAAI,uBAA2C,CAAC;QAChD,IAAI,OAAyB,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;YACpC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBAC/F,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;oBAC1C,SAAS;oBACT,SAAS;oBACT,WAAW;oBACX,IAAI;oBACJ,GAAG,CAAC,WAAW,KAAK,SAAS;wBAC3B,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;yBACzE,CAAC;oBACN,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;oBACzC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;iBAC9D,CAAC,CAAC;gBACH,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;YAC9D,CAAC;YACD,QAAQ,CAAC,SAAS;gBAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM;gBACJ,OAAO,CAAC,eAAe,CAAC,sCAAsC,CAAC,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,MAAM;gBACJ,OAAO,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,cAAc,CAAC,SAAS;gBACtB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO;gBACL,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,iBAAiB,CAAC,MAAM;gBACtB,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,CAAC,eAAe,CAAC,sDAAsD,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,CAAC,eAAe,CAAC,wDAAwD,CAAC,CAAC;oBAClF,qBAAqB,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,IAAI,gBAAgB,CAAC;YAC7B,SAAS,CAAC,MAAM;gBACd,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;gBACpC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;oBACjC,SAAS;oBACT,MAAM;oBACN,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;iBAChC,CAAC,CAAC;YACL,CAAC;YACD,cAAc,KAAI,CAAC;YACnB,SAAS,CAAC,OAAO;gBACf,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,QAAQ,EAAE,QAAQ;gBACxB,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,OAAO;gBACL,OAAO,CAAC,eAAe,CAAC,wDAAwD,CAAC,CAAC;YACpF,CAAC;YACD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;gBAClC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,MAAM,mCAAmC,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YACD,uBAAuB,CAAC,IAAI;gBAC1B,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,sBAAsB,CAAC;YACnD,KAAK,CAAC,OAAO;gBACX,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAC;QAC5C,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEvB;;;;;WAKG;QACH,SAAS,aAAa;YACpB,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM;gBAAE,OAAO;YAClD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1B,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,kEAAkE;gBAClE,uEAAuE;gBACvE,uEAAuE;gBACvE,MAAM,OAAO,GAAG,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACxD,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,CAAC,eAAe,CAAC,wDAAwD,CAAC,CAAC;gBAClF,qBAAqB,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;YACD,kBAAkB,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAqB,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;YACzF,IAAI,QAAQ,IAAI,eAAe,KAAK,gBAAgB;gBAAE,OAAO;YAC7D,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,qBAAqB,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBACtD,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAA2B,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YACtF,IAAI,QAAQ,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC;gBAAE,OAAO;YAClE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,eAAe,CAAC,2CAA2C,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAgC,aAAa,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9F,IAAI,QAAQ,IAAI,SAAS,KAAK,uBAAuB;gBAAE,OAAO;YAC9D,uBAAuB,GAAG,SAAS,CAAC;YACpC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAA4B,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACzF,IAAI,QAAQ;gBAAE,OAAO;YACrB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACjG,qBAAqB,EAAE,CAAC;YACxB,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB;gBAAE,OAAO,CAAC,cAAc,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAwB,aAAa,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;YAClE,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAA2B,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACpG,IAAI,QAAQ;gBAAE,OAAO;YACrB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACrD,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,CAAC,eAAe,CACrB,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,yCAAyC,CAAC,CAAC,CAAC,OAAO,EAChF,IAAI,CACL,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAsB,aAAa,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,IAAI,QAAQ;gBAAE,OAAO;YACrB,wEAAwE;YACxE,uCAAuC;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,EAAE,SAAS,CACf,KAAK,CAAC,KAAK,KAAK,YAAY;gBAC1B,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;oBAC/B,CAAC,CAAC,gDAAgD;oBAClD,CAAC,CAAC,wCAAwC;gBAC5C,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;oBACzB,CAAC,CAAC,oDAAoD;oBACtD,CAAC,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAC5C,KAAK,CAAC,KAAK,KAAK,SAAS,CAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAqB,aAAa,CAAC,KAAK,EAAE;YACnD,eAAe,EAAE,gBAAgB;YACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;YAC/B,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,EAAE;YACnD,gBAAgB,EAAE,OAAO,CAAC,UAAU,EAAE;SACvC,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,YAAY,CAAC,KAAK,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,IAAI,QAAQ;gBAAE,OAAO;YACrB,aAAa,EAAE,CAAC;YAChB,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC5D,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,qBAAqB,EAAE,CAAC;QAC1B,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAC5D,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;YAC/D,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACrD,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAElC,SAAS,OAAO,CAAC,OAAmC;YAClD,OAAO,CAAC,eAAe,CAAC,iDAAiD,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBACjC,SAAS,EAAE,eAAe,EAAE;gBAC5B,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,SAAS,qBAAqB;YAC5B,uBAAuB,GAAG,eAAe,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;gBACxC,SAAS,EAAE,uBAAuB;gBAClC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,eAAe;IACtB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,KAAa;IAC9C,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { AgentExternalContext, AgentFileAttachment, AgentOperationEvent, AgentRequestMode, ServerReadyMessage } from '../shared/protocol.js';
|
|
2
|
+
import type { SelectionContext } from '../shared/selection-context.js';
|
|
3
|
+
import { type SelectionAttachment } from './action-model.js';
|
|
4
|
+
export type AgentSubmit = {
|
|
5
|
+
requestId: string;
|
|
6
|
+
sessionId: string;
|
|
7
|
+
instruction: string;
|
|
8
|
+
mode: AgentRequestMode;
|
|
9
|
+
attachments?: SelectionAttachment[];
|
|
10
|
+
locked?: boolean;
|
|
11
|
+
files?: AgentFileAttachment[];
|
|
12
|
+
externalContext?: AgentExternalContext;
|
|
13
|
+
};
|
|
14
|
+
export type ChatDrawerCallbacks = {
|
|
15
|
+
onSubmit(request: AgentSubmit): void;
|
|
16
|
+
onCancel(requestId: string): void;
|
|
17
|
+
onUndo(): void;
|
|
18
|
+
onRedo(): void;
|
|
19
|
+
/** Closes this chat window only. */
|
|
20
|
+
onClose(): void;
|
|
21
|
+
onNewWindow?(): void;
|
|
22
|
+
onRename?(title: string): void;
|
|
23
|
+
onFocus?(): void;
|
|
24
|
+
onMinimizedChange?(minimized: boolean): void;
|
|
25
|
+
};
|
|
26
|
+
export type ChatDrawerOptions = {
|
|
27
|
+
sessionId: string;
|
|
28
|
+
title: string;
|
|
29
|
+
/** Cascade offset applied when this window has no saved position. */
|
|
30
|
+
index?: number;
|
|
31
|
+
};
|
|
32
|
+
type SelectionAnchor = Pick<DOMRect, 'left' | 'right' | 'top' | 'bottom' | 'width' | 'height'>;
|
|
33
|
+
type ChatWindowPosition = {
|
|
34
|
+
left: number;
|
|
35
|
+
top: number;
|
|
36
|
+
};
|
|
37
|
+
type ChatWindowSize = {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
};
|
|
41
|
+
type ReadableFile = Pick<File, 'name' | 'size' | 'type' | 'text'> & {
|
|
42
|
+
arrayBuffer?(): Promise<ArrayBuffer>;
|
|
43
|
+
};
|
|
44
|
+
export declare class ChatDrawer {
|
|
45
|
+
#private;
|
|
46
|
+
readonly element: HTMLElement;
|
|
47
|
+
readonly sessionId: string;
|
|
48
|
+
constructor(callbacks: ChatDrawerCallbacks, options: ChatDrawerOptions);
|
|
49
|
+
get title(): string;
|
|
50
|
+
get minimized(): boolean;
|
|
51
|
+
rename(title: string): void;
|
|
52
|
+
/** Raises this window above its siblings. */
|
|
53
|
+
setFocused(focused: boolean, zIndex?: number): void;
|
|
54
|
+
/** Drops every persisted key for this window so a closed chat leaves nothing behind. */
|
|
55
|
+
clearStoredState(): void;
|
|
56
|
+
setProvider(provider: ServerReadyMessage['agent']): void;
|
|
57
|
+
pendingRequestIds(): string[];
|
|
58
|
+
attachFiles(files: ReadonlyArray<ReadableFile>): Promise<void>;
|
|
59
|
+
setCurrentSelections(contexts: SelectionContext[], elements?: readonly HTMLElement[]): void;
|
|
60
|
+
setSelectionAnchor(rect?: SelectionAnchor): void;
|
|
61
|
+
setHistory(history: ServerReadyMessage['history']): void;
|
|
62
|
+
setNotice(message: string, error?: boolean): void;
|
|
63
|
+
openWithSelections(contexts: SelectionContext[], elements?: readonly HTMLElement[]): void;
|
|
64
|
+
openWithExternalContext(context: AgentExternalContext): void;
|
|
65
|
+
/**
|
|
66
|
+
* Handles a client-side navigation. The page's DOM was replaced, so every
|
|
67
|
+
* node id this window held now points at an element that no longer exists,
|
|
68
|
+
* and the view transition can leave the window itself stale or hidden.
|
|
69
|
+
*/
|
|
70
|
+
handleNavigation(): void;
|
|
71
|
+
open(focus?: boolean, persist?: boolean, expand?: boolean): void;
|
|
72
|
+
hide(persist?: boolean): void;
|
|
73
|
+
toggleCollapsed(): void;
|
|
74
|
+
handleAgentEvent(event: AgentOperationEvent): void;
|
|
75
|
+
destroy(): void;
|
|
76
|
+
/** Re-measures the connector after the page geometry may have changed. */
|
|
77
|
+
refreshConnector(): void;
|
|
78
|
+
}
|
|
79
|
+
export declare function isSendShortcut(event: Pick<KeyboardEvent, 'key' | 'shiftKey' | 'isComposing'>): boolean;
|
|
80
|
+
export declare function chatWindowCollapseControl(minimized: boolean): {
|
|
81
|
+
symbol: '✦' | '−';
|
|
82
|
+
label: 'Expand chat window' | 'Collapse chat window';
|
|
83
|
+
expanded: boolean;
|
|
84
|
+
};
|
|
85
|
+
export declare function constrainChatWindowPosition(position: ChatWindowPosition, size: ChatWindowSize, viewport: ChatWindowSize, margin?: number): ChatWindowPosition;
|
|
86
|
+
export declare function createChatDrawerStyle(): HTMLStyleElement;
|
|
87
|
+
export type AgentMarkdownBlock = {
|
|
88
|
+
kind: 'paragraph';
|
|
89
|
+
text: string;
|
|
90
|
+
} | {
|
|
91
|
+
kind: 'code';
|
|
92
|
+
text: string;
|
|
93
|
+
language?: string;
|
|
94
|
+
} | {
|
|
95
|
+
kind: 'list';
|
|
96
|
+
items: string[];
|
|
97
|
+
};
|
|
98
|
+
/** Small, injection-safe markdown subset for CLI explanations. */
|
|
99
|
+
export declare function parseAgentMarkdown(source: string): AgentMarkdownBlock[];
|
|
100
|
+
/**
|
|
101
|
+
* Never throws. This decides the margin used to pull a window back on screen,
|
|
102
|
+
* and an exception there would leave the window stranded out of view, so a
|
|
103
|
+
* host without matchMedia falls back to the desktop margin.
|
|
104
|
+
*/
|
|
105
|
+
/** True when any part of the box is inside the viewport. */
|
|
106
|
+
export declare function intersectsViewport(rect: Pick<DOMRect, 'left' | 'right' | 'top' | 'bottom'>, viewport?: {
|
|
107
|
+
width: number;
|
|
108
|
+
height: number;
|
|
109
|
+
}): boolean;
|
|
110
|
+
export {};
|
|
111
|
+
//# sourceMappingURL=chat-drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-drawer.d.ts","sourceRoot":"","sources":["../../src/toolbar/chat-drawer.ts"],"names":[],"mappings":"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"}
|