@corenel/editor 0.1.0 → 0.2.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/dist/dock/PanelChooser.d.ts.map +1 -1
- package/dist/dock/PanelChooser.js +6 -6
- package/dist/dock/PanelChooser.js.map +1 -1
- package/dist/dock/PanelFrame.d.ts +13 -7
- package/dist/dock/PanelFrame.d.ts.map +1 -1
- package/dist/dock/PanelFrame.js +16 -41
- package/dist/dock/PanelFrame.js.map +1 -1
- package/dist/dock/PanelHost.d.ts.map +1 -1
- package/dist/dock/PanelHost.js +95 -26
- package/dist/dock/PanelHost.js.map +1 -1
- package/dist/dock/layouts.d.ts.map +1 -1
- package/dist/dock/layouts.js +2 -4
- package/dist/dock/layouts.js.map +1 -1
- package/dist/dock/tree.d.ts.map +1 -1
- package/dist/dock/tree.js +8 -1
- package/dist/dock/tree.js.map +1 -1
- package/dist/dock/types.d.ts +1 -1
- package/dist/dock/types.d.ts.map +1 -1
- package/dist/dock/types.js +1 -1
- package/dist/dock/types.js.map +1 -1
- package/dist/dock/use-layout.d.ts +3 -0
- package/dist/dock/use-layout.d.ts.map +1 -1
- package/dist/dock/use-layout.js.map +1 -1
- package/dist/inlineAssist.d.ts +22 -2
- package/dist/inlineAssist.d.ts.map +1 -1
- package/dist/inlineAssist.js +242 -24
- package/dist/inlineAssist.js.map +1 -1
- package/dist/panels/UsageButton.d.ts.map +1 -1
- package/dist/panels/UsageButton.js +3 -4
- package/dist/panels/UsageButton.js.map +1 -1
- package/dist/workflowModel.d.ts +23 -0
- package/dist/workflowModel.d.ts.map +1 -1
- package/dist/workflowModel.js +17 -1
- package/dist/workflowModel.js.map +1 -1
- package/package.json +32 -41
package/dist/inlineAssist.js
CHANGED
|
@@ -7,16 +7,33 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Wiring (host): in the Monaco onMount, call installInlineAssist(editor, monaco, ports).
|
|
9
9
|
*/
|
|
10
|
+
/** Inject the keyframes the panel uses (spinner, entrance) once per document. */
|
|
11
|
+
function ensureInlineAssistStyles() {
|
|
12
|
+
const ID = 'corenel-inline-assist-styles';
|
|
13
|
+
if (typeof document === 'undefined' || document.getElementById(ID))
|
|
14
|
+
return;
|
|
15
|
+
const s = document.createElement('style');
|
|
16
|
+
s.id = ID;
|
|
17
|
+
s.textContent =
|
|
18
|
+
'@keyframes corenel-ia-spin{to{transform:rotate(360deg)}}' +
|
|
19
|
+
// Emerge from the + button: small + low at the bottom-left origin, then scale/rise out.
|
|
20
|
+
'@keyframes corenel-ia-in{from{opacity:0;transform:translateY(12px) scale(.82)}60%{opacity:1}to{opacity:1;transform:none}}';
|
|
21
|
+
document.head.appendChild(s);
|
|
22
|
+
}
|
|
10
23
|
/** Attach the inline assistant to a Monaco editor. Returns a dispose function. */
|
|
11
24
|
export function installInlineAssist(editor, monaco, ports) {
|
|
12
25
|
const name = ports.name || 'Corenel';
|
|
13
26
|
const PREF = monaco.editor.ContentWidgetPositionPreference;
|
|
27
|
+
ensureInlineAssistStyles();
|
|
14
28
|
let open = false;
|
|
15
29
|
let streaming = false;
|
|
16
30
|
let anchor = null;
|
|
17
31
|
let insertPos = null;
|
|
18
32
|
let abort = null;
|
|
19
33
|
let docDown = null;
|
|
34
|
+
// The selection captured WHEN THE PANEL OPENS — reading it at submit time is too
|
|
35
|
+
// late (focus has moved to the input and the editor selection is gone).
|
|
36
|
+
let selectionAtOpen = null;
|
|
20
37
|
// --- widget DOM ---
|
|
21
38
|
const root = document.createElement('div');
|
|
22
39
|
root.className = 'corenel-inline-assist';
|
|
@@ -33,6 +50,7 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
33
50
|
'color:#fff', 'font-size:11px', 'font-weight:700', 'letter-spacing:0.01em',
|
|
34
51
|
'box-shadow:0 1px 6px color-mix(in srgb, var(--brand-blue,#3b82f6) 45%, transparent)',
|
|
35
52
|
'opacity:0.35', // faint until hovered, so it stays out of the way
|
|
53
|
+
'margin-left:5px', // nudge clear of the caret/glyph it anchors to
|
|
36
54
|
'transition:background .12s,box-shadow .12s,opacity .12s',
|
|
37
55
|
].join(';');
|
|
38
56
|
// Collapsed: just a (+). The label reveals on hover (set in the events below).
|
|
@@ -43,27 +61,108 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
43
61
|
pipLabel.textContent = `Ask ${name}`;
|
|
44
62
|
pipLabel.style.cssText = 'display:none;color:#fff;white-space:nowrap;';
|
|
45
63
|
pip.append(pipMark, pipLabel);
|
|
64
|
+
// Touch devices have no hover, so the faint collapsed pip is invisible + the 20px
|
|
65
|
+
// target is too small. On a coarse pointer, render it as a full-opacity labeled
|
|
66
|
+
// pill with a ~32px tap target from the start (the hover handlers below never fire).
|
|
67
|
+
const coarsePointer = typeof matchMedia !== 'undefined' && matchMedia('(pointer: coarse)').matches;
|
|
68
|
+
if (coarsePointer) {
|
|
69
|
+
pip.style.opacity = '1';
|
|
70
|
+
pip.style.width = 'auto';
|
|
71
|
+
pip.style.minHeight = '32px';
|
|
72
|
+
pip.style.padding = '0 12px 0 9px';
|
|
73
|
+
pipLabel.style.display = 'inline';
|
|
74
|
+
}
|
|
46
75
|
const panel = document.createElement('div');
|
|
47
76
|
panel.style.cssText = [
|
|
48
|
-
'display:none', 'flex-direction:column', 'gap:
|
|
49
|
-
'border-radius:
|
|
50
|
-
'
|
|
77
|
+
'display:none', 'flex-direction:column', 'gap:9px', 'width:360px', 'max-width:calc(100vw - 24px)', 'padding:11px 12px 12px',
|
|
78
|
+
'box-sizing:border-box', 'border-radius:12px', 'border:1px solid var(--border-default,#444)',
|
|
79
|
+
'background:linear-gradient(180deg, color-mix(in srgb, var(--brand-blue,#3b82f6) 6%, var(--surface-1,#1e1e1e)), var(--surface-1,#1e1e1e))',
|
|
80
|
+
'box-shadow:0 14px 44px rgba(0,0,0,.45), 0 0 0 1px color-mix(in srgb, var(--brand-blue,#3b82f6) 18%, transparent)',
|
|
81
|
+
// Anchored above the line: its bottom-left corner sits at the cursor column (where
|
|
82
|
+
// the + pip was), so the entrance grows out of the + button rather than floating in.
|
|
83
|
+
'transform-origin:bottom left',
|
|
84
|
+
// Nudge it down toward the cursor line so it reads as attached to the + (relative
|
|
85
|
+
// offset, not a transform, so it stacks with the drag transform + entrance anim).
|
|
86
|
+
'position:relative', 'top:45px',
|
|
51
87
|
].join(';');
|
|
88
|
+
const ICON_X = '<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"><path d="M6 6l12 12M18 6L6 18"/></svg>';
|
|
89
|
+
const ICON_GRIP = '<svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor"><circle cx="9" cy="6" r="1.4"/><circle cx="15" cy="6" r="1.4"/><circle cx="9" cy="12" r="1.4"/><circle cx="15" cy="12" r="1.4"/><circle cx="9" cy="18" r="1.4"/><circle cx="15" cy="18" r="1.4"/></svg>';
|
|
90
|
+
const ICON_SEND = '<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7"/></svg>';
|
|
91
|
+
const ICON_STOP = '<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><rect x="5" y="5" width="14" height="14" rx="2.5"/></svg>';
|
|
92
|
+
/** A small ghost icon button (close). */
|
|
93
|
+
const iconBtn = (svg, title) => {
|
|
94
|
+
const b = document.createElement('button');
|
|
95
|
+
b.type = 'button';
|
|
96
|
+
b.title = title;
|
|
97
|
+
b.innerHTML = svg;
|
|
98
|
+
b.style.cssText = 'display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:var(--text-tertiary,#888);cursor:pointer;transition:background .1s,color .1s;';
|
|
99
|
+
b.onmouseenter = () => { b.style.background = 'var(--surface-2,#252525)'; b.style.color = 'var(--text-primary,#eee)'; };
|
|
100
|
+
b.onmouseleave = () => { b.style.background = 'transparent'; b.style.color = 'var(--text-tertiary,#888)'; };
|
|
101
|
+
return b;
|
|
102
|
+
};
|
|
103
|
+
// Header doubles as the DRAG HANDLE so the panel can be moved off text you're reading.
|
|
52
104
|
const header = document.createElement('div');
|
|
53
|
-
header.style.cssText = 'display:flex;align-items:center;gap:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
105
|
+
header.style.cssText = 'display:flex;align-items:center;gap:7px;cursor:move;touch-action:none;user-select:none;color:var(--text-secondary,#bbb);font-size:11.5px;font-weight:700;';
|
|
106
|
+
const headTitle = document.createElement('div');
|
|
107
|
+
headTitle.style.cssText = 'display:flex;align-items:center;gap:6px;flex:1;min-width:0;';
|
|
108
|
+
headTitle.innerHTML = `${ports.brandSvg || '<span style="color:var(--brand-blue,#3b82f6);font-size:13px">✦</span>'}<span>Ask ${name}</span>`;
|
|
109
|
+
const grip = document.createElement('span');
|
|
110
|
+
grip.innerHTML = ICON_GRIP;
|
|
111
|
+
grip.style.cssText = 'display:inline-flex;color:var(--text-disabled,#666);';
|
|
112
|
+
grip.title = 'Drag to move';
|
|
113
|
+
const closeBtn = iconBtn(ICON_X, 'Close (Esc)');
|
|
114
|
+
closeBtn.onclick = () => { close(); editor.focus(); };
|
|
115
|
+
header.append(headTitle, grip, closeBtn);
|
|
116
|
+
// The composer ("chatbox") at the BOTTOM: a rounded container holding an
|
|
117
|
+
// auto-growing textarea + the send/stop button — the Composer's input language,
|
|
118
|
+
// reimplemented in vanilla DOM (the React Composer can't mount in a Monaco widget).
|
|
119
|
+
const chatbox = document.createElement('div');
|
|
120
|
+
chatbox.style.cssText = [
|
|
121
|
+
'display:flex', 'align-items:flex-end', 'gap:7px', 'padding:6px 6px 6px 11px',
|
|
122
|
+
'border-radius:11px', 'border:1px solid var(--border-default,#444)', 'background:var(--surface-2,#252525)',
|
|
123
|
+
'transition:border-color .12s,box-shadow .12s',
|
|
124
|
+
].join(';');
|
|
125
|
+
const input = document.createElement('textarea');
|
|
126
|
+
input.rows = 1;
|
|
57
127
|
input.placeholder = `Ask ${name} to help you write…`;
|
|
58
128
|
input.style.cssText = [
|
|
59
|
-
'width:
|
|
60
|
-
'
|
|
61
|
-
'
|
|
129
|
+
'flex:1', 'min-width:0', 'box-sizing:border-box', 'resize:none', 'border:0', 'outline:none', 'background:transparent',
|
|
130
|
+
'color:var(--text-primary,#eee)', 'font-size:13px', 'font-family:inherit', 'line-height:1.45',
|
|
131
|
+
'max-height:120px', 'overflow-y:auto', 'padding:6px 0',
|
|
132
|
+
].join(';');
|
|
133
|
+
input.onfocus = () => { chatbox.style.borderColor = 'var(--brand-blue,#3b82f6)'; chatbox.style.boxShadow = '0 0 0 3px color-mix(in srgb,var(--brand-blue,#3b82f6) 16%,transparent)'; };
|
|
134
|
+
input.onblur = () => { chatbox.style.borderColor = 'var(--border-default,#444)'; chatbox.style.boxShadow = 'none'; };
|
|
135
|
+
// Grow with content (resting 1 line, up to the cap, then scroll).
|
|
136
|
+
const autoGrow = () => { input.style.height = 'auto'; input.style.height = `${Math.min(input.scrollHeight, 120)}px`; };
|
|
137
|
+
input.oninput = autoGrow;
|
|
138
|
+
const sendBtn = document.createElement('button');
|
|
139
|
+
sendBtn.type = 'button';
|
|
140
|
+
sendBtn.title = 'Send';
|
|
141
|
+
sendBtn.innerHTML = ICON_SEND;
|
|
142
|
+
sendBtn.style.cssText = [
|
|
143
|
+
'display:inline-flex', 'align-items:center', 'justify-content:center', 'width:30px', 'height:30px', 'flex-shrink:0',
|
|
144
|
+
'border:0', 'border-radius:8px', 'background:var(--grad-brand,var(--brand-blue,#3b82f6))', 'color:#fff', 'cursor:pointer',
|
|
145
|
+
'box-shadow:0 1px 7px color-mix(in srgb,var(--brand-blue,#3b82f6) 40%,transparent)', 'transition:filter .12s',
|
|
62
146
|
].join(';');
|
|
147
|
+
sendBtn.onmouseenter = () => { sendBtn.style.filter = 'brightness(1.08)'; };
|
|
148
|
+
sendBtn.onmouseleave = () => { sendBtn.style.filter = 'none'; };
|
|
149
|
+
sendBtn.onclick = () => { if (streaming) {
|
|
150
|
+
abort?.abort();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
void ask(input.value);
|
|
154
|
+
} };
|
|
155
|
+
chatbox.append(input, sendBtn);
|
|
63
156
|
const chips = document.createElement('div');
|
|
64
157
|
chips.style.cssText = 'display:flex;flex-direction:column;gap:5px;';
|
|
158
|
+
// Working state: a spinner + text (the send button flips to a Stop square too).
|
|
65
159
|
const status = document.createElement('div');
|
|
66
|
-
status.style.cssText = 'display:none;align-items:center;gap:
|
|
160
|
+
status.style.cssText = 'display:none;align-items:center;gap:8px;color:var(--text-tertiary,#888);font-size:11.5px;';
|
|
161
|
+
const spinner = document.createElement('span');
|
|
162
|
+
spinner.style.cssText = 'width:12px;height:12px;flex-shrink:0;border-radius:50%;border:2px solid color-mix(in srgb,var(--brand-blue,#3b82f6) 28%,transparent);border-top-color:var(--brand-blue,#3b82f6);animation:corenel-ia-spin .7s linear infinite;';
|
|
163
|
+
const statusText = document.createElement('span');
|
|
164
|
+
statusText.style.cssText = 'min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;';
|
|
165
|
+
status.append(spinner, statusText);
|
|
67
166
|
// Sign-in CTA shown when a use is blocked by the access gate (free limit reached).
|
|
68
167
|
const signinBtn = document.createElement('button');
|
|
69
168
|
signinBtn.type = 'button';
|
|
@@ -76,8 +175,37 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
76
175
|
signinBtn.onclick = () => { ports.signIn?.(); close(); };
|
|
77
176
|
signinBtn.onmouseenter = () => { signinBtn.style.filter = 'brightness(1.1)'; };
|
|
78
177
|
signinBtn.onmouseleave = () => { signinBtn.style.filter = 'none'; };
|
|
79
|
-
|
|
178
|
+
// Flipped layout: suggestions on top, the chatbox composer pinned to the bottom.
|
|
179
|
+
panel.append(header, chips, status, chatbox, signinBtn);
|
|
80
180
|
root.append(pip, panel);
|
|
181
|
+
// --- drag (header handle) ---
|
|
182
|
+
let dragging = false;
|
|
183
|
+
const dragOffset = { x: 0, y: 0 };
|
|
184
|
+
let dragFrom = { x: 0, y: 0, ox: 0, oy: 0 };
|
|
185
|
+
header.onpointerdown = (e) => {
|
|
186
|
+
if (e.target.closest('button'))
|
|
187
|
+
return; // don't drag from the close button
|
|
188
|
+
dragging = true;
|
|
189
|
+
dragFrom = { x: e.clientX, y: e.clientY, ox: dragOffset.x, oy: dragOffset.y };
|
|
190
|
+
try {
|
|
191
|
+
header.setPointerCapture(e.pointerId);
|
|
192
|
+
}
|
|
193
|
+
catch { /* older engines */ }
|
|
194
|
+
e.preventDefault();
|
|
195
|
+
};
|
|
196
|
+
header.onpointermove = (e) => {
|
|
197
|
+
if (!dragging)
|
|
198
|
+
return;
|
|
199
|
+
dragOffset.x = dragFrom.ox + (e.clientX - dragFrom.x);
|
|
200
|
+
dragOffset.y = dragFrom.oy + (e.clientY - dragFrom.y);
|
|
201
|
+
panel.style.transform = `translate(${dragOffset.x}px, ${dragOffset.y}px)`;
|
|
202
|
+
};
|
|
203
|
+
const endDrag = (e) => { dragging = false; try {
|
|
204
|
+
header.releasePointerCapture(e.pointerId);
|
|
205
|
+
}
|
|
206
|
+
catch { /* ignore */ } };
|
|
207
|
+
header.onpointerup = endDrag;
|
|
208
|
+
header.onpointercancel = endDrag;
|
|
81
209
|
const chipStyle = [
|
|
82
210
|
'text-align:left', 'padding:6px 9px', 'border-radius:7px', 'cursor:pointer',
|
|
83
211
|
'border:1px solid var(--border-subtle,#3a3a3a)', 'background:var(--surface-2,#252525)',
|
|
@@ -88,7 +216,12 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
88
216
|
const CHIP_BG_HOVER = 'color-mix(in srgb, var(--brand-blue,#3b82f6) 14%, var(--surface-2,#252525))';
|
|
89
217
|
const CHIP_BORDER = 'var(--border-subtle,#3a3a3a)';
|
|
90
218
|
const CHIP_BORDER_HOVER = 'color-mix(in srgb, var(--brand-blue,#3b82f6) 45%, var(--border-subtle,#3a3a3a))';
|
|
219
|
+
// How far the panel is pulled toward the cursor line (so it reads as attached to
|
|
220
|
+
// the + pip). Applied in the direction Monaco actually placed it (see afterRender).
|
|
221
|
+
const PANEL_OFFSET = 45;
|
|
91
222
|
const widget = {
|
|
223
|
+
// Overflow the editor so the offset panel isn't clipped at a border.
|
|
224
|
+
allowEditorOverflow: true,
|
|
92
225
|
getId: () => 'corenel.inlineAssist',
|
|
93
226
|
getDomNode: () => root,
|
|
94
227
|
getPosition: () => {
|
|
@@ -98,18 +231,40 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
98
231
|
// Collapsed pip sits inline AT the cursor (EXACT); the open panel floats above.
|
|
99
232
|
return { position: p, preference: open ? [PREF.ABOVE, PREF.BELOW] : [PREF.EXACT, PREF.ABOVE] };
|
|
100
233
|
},
|
|
234
|
+
// Monaco flips the panel below the line (near the top border) and clamps it at the
|
|
235
|
+
// edges — pull it toward the cursor in WHICHEVER direction it landed, and grow from
|
|
236
|
+
// the matching corner, so the offset is never applied the wrong way.
|
|
237
|
+
afterRender: (pos) => {
|
|
238
|
+
// Null = Monaco didn't place it this cycle — keep the current (reset-on-open)
|
|
239
|
+
// offset rather than forcing the above-case, which would be wrong for a flip.
|
|
240
|
+
if (!open || pos == null)
|
|
241
|
+
return;
|
|
242
|
+
const below = pos === PREF.BELOW;
|
|
243
|
+
panel.style.top = `${below ? -PANEL_OFFSET : PANEL_OFFSET}px`;
|
|
244
|
+
panel.style.transformOrigin = below ? 'top left' : 'bottom left';
|
|
245
|
+
},
|
|
101
246
|
};
|
|
102
247
|
// --- visibility (pip) ---
|
|
103
248
|
function lineIsBlank(line) {
|
|
104
249
|
const model = editor.getModel();
|
|
105
250
|
return !model || model.getLineContent(line).trim() === '';
|
|
106
251
|
}
|
|
252
|
+
function hasSelection() {
|
|
253
|
+
const s = editor.getSelection();
|
|
254
|
+
return !!s && !(s.startLineNumber === s.endLineNumber && s.startColumn === s.endColumn);
|
|
255
|
+
}
|
|
107
256
|
function pipShouldShow() {
|
|
108
257
|
if (open)
|
|
109
258
|
return false;
|
|
110
259
|
const mode = ports.getMode();
|
|
111
260
|
if (mode === 'hide')
|
|
112
261
|
return false;
|
|
262
|
+
// Never show the pip while a selection is active. As a content widget anchored at
|
|
263
|
+
// the caret, its appearance/layout races the first selection-replacing keystroke
|
|
264
|
+
// and swallows it. Editing a selection stays available via Ctrl+I, which snapshots
|
|
265
|
+
// the selection when the panel opens.
|
|
266
|
+
if (hasSelection())
|
|
267
|
+
return false;
|
|
113
268
|
const p = editor.getPosition();
|
|
114
269
|
if (!p)
|
|
115
270
|
return false;
|
|
@@ -122,9 +277,15 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
122
277
|
}
|
|
123
278
|
// --- ask + insert ---
|
|
124
279
|
function setStatus(text, busy) {
|
|
125
|
-
status.style.display = text ? 'flex' : 'none';
|
|
126
|
-
status.textContent = text;
|
|
127
280
|
streaming = busy;
|
|
281
|
+
statusText.textContent = text;
|
|
282
|
+
status.style.display = text ? 'flex' : 'none';
|
|
283
|
+
spinner.style.display = busy ? 'inline-block' : 'none';
|
|
284
|
+
// The send button becomes a Stop button while a request is in flight, and the
|
|
285
|
+
// chips step aside so the working state reads clearly.
|
|
286
|
+
sendBtn.innerHTML = busy ? ICON_STOP : ICON_SEND;
|
|
287
|
+
sendBtn.title = busy ? 'Stop' : 'Send';
|
|
288
|
+
chips.style.display = busy ? 'none' : 'flex';
|
|
128
289
|
}
|
|
129
290
|
function insertDelta(text) {
|
|
130
291
|
if (!insertPos)
|
|
@@ -148,6 +309,9 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
148
309
|
const start = anchor || editor.getPosition();
|
|
149
310
|
if (!model || !start || !request.trim() || streaming)
|
|
150
311
|
return;
|
|
312
|
+
// Claim the slot SYNCHRONOUSLY so a second send during the async access check can't
|
|
313
|
+
// re-enter and start a concurrent run (orphaning the first's abort + double-writing).
|
|
314
|
+
streaming = true;
|
|
151
315
|
// Access gate (a feature guard — free-quota then sign-in). Block before spending.
|
|
152
316
|
const access = await ports.checkAccess?.();
|
|
153
317
|
if (access && !access.allowed) {
|
|
@@ -155,19 +319,42 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
155
319
|
return;
|
|
156
320
|
}
|
|
157
321
|
signinBtn.style.display = 'none';
|
|
158
|
-
|
|
322
|
+
// A non-empty selection (when enabled) is the span being edited. We leave it in
|
|
323
|
+
// place while the model works and pass it as context; only once the FULL reply is
|
|
324
|
+
// back do we swap the span for it in ONE atomic, undoable edit. So a bad reply,
|
|
325
|
+
// an error, or a cancel never corrupts the original — and the model produces the
|
|
326
|
+
// complete replacement rather than us blanking the text and rebuilding it live.
|
|
327
|
+
const selRange = (ports.includeSelection?.() !== false && selectionAtOpen
|
|
328
|
+
&& !(selectionAtOpen.startLineNumber === selectionAtOpen.endLineNumber && selectionAtOpen.startColumn === selectionAtOpen.endColumn))
|
|
329
|
+
? selectionAtOpen : null;
|
|
330
|
+
const selection = selRange ? model.getValueInRange(selRange) : '';
|
|
331
|
+
// Cursor asks stream inline (insertPos drives insertDelta); selection asks buffer
|
|
332
|
+
// and replace at the end (no insertPos, so deltas don't write to the document).
|
|
333
|
+
insertPos = selRange ? null : { ...start };
|
|
159
334
|
abort = new AbortController();
|
|
160
335
|
setStatus(`${name} is writing…`, true);
|
|
161
336
|
input.disabled = true;
|
|
162
337
|
try {
|
|
163
|
-
await ports.ask({ request, docText: model.getValue(), line: start.lineNumber, column: start.column }, abort.signal, (d) =>
|
|
164
|
-
|
|
338
|
+
const full = await ports.ask({ request, docText: model.getValue(), line: start.lineNumber, column: start.column, selection }, abort.signal, (d) => { if (!selRange)
|
|
339
|
+
insertDelta(d); });
|
|
340
|
+
if (selRange) {
|
|
341
|
+
if (full.trim()) {
|
|
342
|
+
editor.executeEdits('corenel-inline', [{ range: selRange, text: full, forceMoveMarkers: true }]);
|
|
343
|
+
const parts = full.split('\n');
|
|
344
|
+
editor.setPosition(parts.length === 1
|
|
345
|
+
? { lineNumber: selRange.startLineNumber, column: selRange.startColumn + full.length }
|
|
346
|
+
: { lineNumber: selRange.startLineNumber + parts.length - 1, column: parts[parts.length - 1].length + 1 });
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else if (insertPos) {
|
|
165
350
|
editor.setPosition(insertPos);
|
|
166
351
|
}
|
|
167
352
|
close();
|
|
168
353
|
editor.focus();
|
|
169
354
|
}
|
|
170
355
|
catch (e) {
|
|
356
|
+
// Selection asks only edit on success, so the original is untouched here. Cursor
|
|
357
|
+
// asks keep whatever already streamed in (unchanged behavior).
|
|
171
358
|
setStatus(abort?.signal.aborted ? 'Stopped.' : `Error: ${e?.message || e}`, false);
|
|
172
359
|
}
|
|
173
360
|
finally {
|
|
@@ -196,19 +383,37 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
196
383
|
anchor = editor.getPosition();
|
|
197
384
|
if (!anchor)
|
|
198
385
|
return;
|
|
386
|
+
// Snapshot the selection now, before focus leaves the editor for the panel input.
|
|
387
|
+
selectionAtOpen = editor.getSelection();
|
|
199
388
|
open = true;
|
|
200
389
|
input.value = '';
|
|
390
|
+
input.style.height = 'auto'; // reset the auto-grown textarea to its resting height
|
|
201
391
|
setStatus('', false);
|
|
202
392
|
signinBtn.style.display = 'none';
|
|
393
|
+
// Reset any prior drag offset + placement offset (a previous open may have been
|
|
394
|
+
// flipped BELOW, leaving top:-45), then play the entrance each time it opens.
|
|
395
|
+
dragOffset.x = 0;
|
|
396
|
+
dragOffset.y = 0;
|
|
397
|
+
panel.style.transform = '';
|
|
398
|
+
panel.style.top = `${PANEL_OFFSET}px`;
|
|
399
|
+
panel.style.transformOrigin = 'bottom left';
|
|
400
|
+
// No fill-mode: after the entrance, transform reverts to the inline value so the
|
|
401
|
+
// drag handler can move the panel (a `forwards`/`both` fill would pin it). The
|
|
402
|
+
// ease-out curve makes it shoot out of the + and settle.
|
|
403
|
+
panel.style.animation = 'corenel-ia-in .2s cubic-bezier(.16,1,.3,1)';
|
|
203
404
|
rebuildChips();
|
|
204
405
|
render();
|
|
406
|
+
// Focus synchronously inside the opening gesture so iOS raises the keyboard
|
|
407
|
+
// (a deferred focus loses the user-gesture and the keyboard never shows); the
|
|
408
|
+
// timeout is a desktop fallback if the sync focus doesn't take before layout.
|
|
409
|
+
input.focus();
|
|
205
410
|
setTimeout(() => input.focus(), 0);
|
|
206
411
|
// Click anywhere outside the panel dismisses it (capture phase so it fires
|
|
207
412
|
// before other handlers). The opening click already passed, so this won't
|
|
208
413
|
// self-close.
|
|
209
414
|
docDown = (e) => { if (!root.contains(e.target))
|
|
210
415
|
close(); };
|
|
211
|
-
document.addEventListener('
|
|
416
|
+
document.addEventListener('pointerdown', docDown, true);
|
|
212
417
|
}
|
|
213
418
|
function close() {
|
|
214
419
|
open = false;
|
|
@@ -217,15 +422,25 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
217
422
|
}
|
|
218
423
|
setStatus('', false);
|
|
219
424
|
anchor = null;
|
|
425
|
+
selectionAtOpen = null;
|
|
426
|
+
panel.style.transform = '';
|
|
427
|
+
panel.style.animation = '';
|
|
220
428
|
if (docDown) {
|
|
221
|
-
document.removeEventListener('
|
|
429
|
+
document.removeEventListener('pointerdown', docDown, true);
|
|
222
430
|
docDown = null;
|
|
223
431
|
}
|
|
224
432
|
render();
|
|
225
433
|
}
|
|
226
434
|
// --- events ---
|
|
227
|
-
|
|
228
|
-
|
|
435
|
+
// Open on pointerup so a touch TAP works (not just a mouse click); pointerdown
|
|
436
|
+
// claims the gesture (preventDefault + stopPropagation) so Monaco's editor touch
|
|
437
|
+
// layer doesn't scroll/blur and swallow it. Enter/Space open it for keyboard users.
|
|
438
|
+
pip.onpointerdown = (e) => { e.preventDefault(); e.stopPropagation(); };
|
|
439
|
+
pip.onpointerup = (e) => { e.preventDefault(); e.stopPropagation(); openPanel(); };
|
|
440
|
+
pip.onkeydown = (e) => { if (e.key === 'Enter' || e.key === ' ') {
|
|
441
|
+
e.preventDefault();
|
|
442
|
+
openPanel();
|
|
443
|
+
} };
|
|
229
444
|
pip.onmouseenter = () => {
|
|
230
445
|
pipLabel.style.display = 'inline';
|
|
231
446
|
pip.style.opacity = '1';
|
|
@@ -235,6 +450,8 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
235
450
|
editor.layoutContentWidget(widget);
|
|
236
451
|
};
|
|
237
452
|
pip.onmouseleave = () => {
|
|
453
|
+
if (coarsePointer)
|
|
454
|
+
return; // touch: stay a full-opacity labeled pill
|
|
238
455
|
pipLabel.style.display = 'none';
|
|
239
456
|
pip.style.opacity = '0.35';
|
|
240
457
|
pip.style.width = '20px';
|
|
@@ -243,8 +460,9 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
243
460
|
editor.layoutContentWidget(widget);
|
|
244
461
|
};
|
|
245
462
|
input.onkeydown = (e) => {
|
|
246
|
-
e.stopPropagation(); // keep Monaco shortcuts out of the
|
|
247
|
-
|
|
463
|
+
e.stopPropagation(); // keep Monaco shortcuts out of the textarea
|
|
464
|
+
// Enter sends; Shift/Cmd/Ctrl+Enter inserts a newline (a real chatbox).
|
|
465
|
+
if (e.key === 'Enter' && !e.shiftKey && !e.metaKey && !e.ctrlKey) {
|
|
248
466
|
e.preventDefault();
|
|
249
467
|
void ask(input.value);
|
|
250
468
|
}
|
|
@@ -263,7 +481,7 @@ export function installInlineAssist(editor, monaco, ports) {
|
|
|
263
481
|
return () => {
|
|
264
482
|
abort?.abort();
|
|
265
483
|
if (docDown)
|
|
266
|
-
document.removeEventListener('
|
|
484
|
+
document.removeEventListener('pointerdown', docDown, true);
|
|
267
485
|
d1.dispose();
|
|
268
486
|
d2.dispose();
|
|
269
487
|
editor.removeContentWidget(widget);
|
package/dist/inlineAssist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inlineAssist.js","sourceRoot":"","sources":["../inlineAssist.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inlineAssist.js","sourceRoot":"","sources":["../inlineAssist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageButton.d.ts","sourceRoot":"","sources":["../../panels/UsageButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"UsageButton.d.ts","sourceRoot":"","sources":["../../panels/UsageButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D;;;4DAG4D;AAC5D,wBAAgB,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,qBAwCrE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useRef, useEffect } from 'react';
|
|
3
|
+
import { useEscape } from '@corenel/ui-kit/useEscape';
|
|
3
4
|
import { useUsage, fmtCost, fmtTok, clearUsage } from '@corenel/ui-kit/usage';
|
|
4
5
|
import { IcTrash } from '@corenel/ui-kit/icons';
|
|
5
6
|
/** The prompt-token estimate, doubling as the entry point to usage history.
|
|
@@ -10,16 +11,14 @@ export function UsageButton({ promptTokens }) {
|
|
|
10
11
|
const [open, setOpen] = useState(false);
|
|
11
12
|
const { records, session, lifetime } = useUsage();
|
|
12
13
|
const ref = useRef(null);
|
|
14
|
+
useEscape(open, () => setOpen(false));
|
|
13
15
|
useEffect(() => {
|
|
14
16
|
if (!open)
|
|
15
17
|
return;
|
|
16
18
|
const onDoc = (e) => { if (ref.current && !ref.current.contains(e.target))
|
|
17
19
|
setOpen(false); };
|
|
18
|
-
const onEsc = (e) => { if (e.key === 'Escape')
|
|
19
|
-
setOpen(false); };
|
|
20
20
|
document.addEventListener('mousedown', onDoc);
|
|
21
|
-
document.
|
|
22
|
-
return () => { document.removeEventListener('mousedown', onDoc); document.removeEventListener('keydown', onEsc); };
|
|
21
|
+
return () => { document.removeEventListener('mousedown', onDoc); };
|
|
23
22
|
}, [open]);
|
|
24
23
|
return (_jsxs("div", { ref: ref, style: { position: 'relative' }, children: [_jsxs("button", { style: us.btn(open), onClick: () => setOpen((o) => !o), title: "Prompt token estimate \u00B7 click for usage", "aria-haspopup": "dialog", "aria-expanded": open, children: [_jsxs("span", { style: us.est, children: ["~", promptTokens.toLocaleString(), " tok"] }), _jsx("span", { style: us.cost, children: fmtCost(session.cost) })] }), open && (_jsxs("div", { style: us.menu, role: "dialog", "aria-label": "Usage", children: [_jsxs("div", { style: us.totals, children: [_jsxs("span", { children: ["session ", fmtTok(session.inTok), " in \u00B7 ", fmtTok(session.outTok), " out \u00B7 ", session.runs, " run", session.runs === 1 ? '' : 's'] }), _jsxs("span", { children: ["lifetime ", fmtCost(lifetime.cost), " \u00B7 ", lifetime.runs] })] }), _jsxs("div", { style: us.list, children: [records.length === 0 && _jsx("div", { style: us.empty, children: "No runs yet." }), records.slice(0, 50).map((r) => (_jsxs("div", { style: us.row, children: [_jsx("span", { style: us.model, children: r.modelLabel }), _jsxs("span", { style: us.tok, children: ["in ", r.inEst != null ? `${fmtTok(r.inEst)}→` : '', fmtTok(r.inTok), " \u00B7 out ", fmtTok(r.outTok)] }), _jsx("span", { style: us.rowCost, children: fmtCost(r.cost) })] }, r.id)))] }), records.length > 0 && _jsxs("button", { style: us.clear, onClick: () => clearUsage(), children: [_jsx(IcTrash, { size: 11 }), " Clear history"] })] }))] }));
|
|
25
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageButton.js","sourceRoot":"","sources":["../../panels/UsageButton.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD;;;4DAG4D;AAC5D,MAAM,UAAU,WAAW,CAAC,EAAE,YAAY,EAA4B;IACpE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,CAAC,CAAa,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,
|
|
1
|
+
{"version":3,"file":"UsageButton.js","sourceRoot":"","sources":["../../panels/UsageButton.tsx"],"names":[],"mappings":"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"}
|
package/dist/workflowModel.d.ts
CHANGED
|
@@ -45,9 +45,30 @@ export type WfEvent = {
|
|
|
45
45
|
id: string;
|
|
46
46
|
message: string;
|
|
47
47
|
guardrail?: GuardrailStepInfo;
|
|
48
|
+
}
|
|
49
|
+
/** Mechanical degrade applied to the remaining frontier (no LLM): models swapped
|
|
50
|
+
* cheaper and/or optional nodes dropped. */
|
|
51
|
+
| {
|
|
52
|
+
type: 'degrade';
|
|
53
|
+
downgraded: {
|
|
54
|
+
id: string;
|
|
55
|
+
model: string;
|
|
56
|
+
}[];
|
|
57
|
+
dropped: string[];
|
|
58
|
+
reason: string;
|
|
59
|
+
}
|
|
60
|
+
/** A live re-plan round-trip: the orchestrator was handed budget state to re-fit
|
|
61
|
+
* the remaining work. */
|
|
62
|
+
| {
|
|
63
|
+
type: 'replan';
|
|
64
|
+
reason: string;
|
|
65
|
+
spent: number;
|
|
66
|
+
limit: number;
|
|
67
|
+
kind: 'usd' | 'tokens' | 'ms';
|
|
48
68
|
} | {
|
|
49
69
|
type: 'done';
|
|
50
70
|
finalOutput: string;
|
|
71
|
+
stopped?: 'budget';
|
|
51
72
|
} | {
|
|
52
73
|
type: 'error';
|
|
53
74
|
message: string;
|
|
@@ -105,6 +126,8 @@ export interface WorkflowRun {
|
|
|
105
126
|
error?: string;
|
|
106
127
|
/** Wall-clock start (ms epoch), used to compute totalMs on completion. */
|
|
107
128
|
startedAt: number;
|
|
129
|
+
/** Set when the run was hard-stopped before natural completion. */
|
|
130
|
+
stopped?: 'budget';
|
|
108
131
|
}
|
|
109
132
|
export declare function emptyRun(startedAt: number): WorkflowRun;
|
|
110
133
|
/** Fold one event into the run, returning a new run (steps array + touched step
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflowModel.d.ts","sourceRoot":"","sources":["../workflowModel.ts"],"names":[],"mappings":"AAQA;2DAC2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,yEAAyE;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACrE;;;;;qDAKqD;GACnD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAAE;AAClH;;4BAE4B;GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5F;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"workflowModel.d.ts","sourceRoot":"","sources":["../workflowModel.ts"],"names":[],"mappings":"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"}
|