donobu 2.21.0 → 2.22.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/assets/control-panel.js +254 -125
- package/dist/assets/generated/version +1 -1
- package/dist/esm/assets/control-panel.js +254 -125
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/managers/ControlPanel.d.ts +4 -1
- package/dist/esm/managers/ControlPanel.d.ts.map +1 -1
- package/dist/esm/managers/ControlPanel.js +18 -11
- package/dist/esm/managers/ControlPanel.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +2 -0
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +122 -34
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +3 -4
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts +2 -0
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.js +69 -17
- package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +6 -5
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/InteractableElement.d.ts +15 -10
- package/dist/esm/models/InteractableElement.d.ts.map +1 -1
- package/dist/esm/models/InteractableElement.js +11 -0
- package/dist/esm/models/InteractableElement.js.map +1 -1
- package/dist/esm/tools/AcknowledgeUserInstruction.d.ts +35 -0
- package/dist/esm/tools/AcknowledgeUserInstruction.d.ts.map +1 -0
- package/dist/esm/tools/AcknowledgeUserInstruction.js +40 -0
- package/dist/esm/tools/AcknowledgeUserInstruction.js.map +1 -0
- package/dist/managers/ControlPanel.d.ts +4 -1
- package/dist/managers/ControlPanel.d.ts.map +1 -1
- package/dist/managers/ControlPanel.js +18 -11
- package/dist/managers/ControlPanel.js.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +2 -0
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +122 -34
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +3 -4
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/InteractionVisualizer.d.ts +2 -0
- package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.js +69 -17
- package/dist/managers/InteractionVisualizer.js.map +1 -1
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +6 -5
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/InteractableElement.d.ts +15 -10
- package/dist/models/InteractableElement.d.ts.map +1 -1
- package/dist/models/InteractableElement.js +11 -0
- package/dist/models/InteractableElement.js.map +1 -1
- package/dist/tools/AcknowledgeUserInstruction.d.ts +35 -0
- package/dist/tools/AcknowledgeUserInstruction.d.ts.map +1 -0
- package/dist/tools/AcknowledgeUserInstruction.js +40 -0
- package/dist/tools/AcknowledgeUserInstruction.js.map +1 -0
- package/package.json +1 -1
|
@@ -10,6 +10,15 @@
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
if (!window.__donobu.userMessage) {
|
|
14
|
+
Object.defineProperty(window.__donobu, 'userMessage', {
|
|
15
|
+
value: null,
|
|
16
|
+
enumerable: false,
|
|
17
|
+
writable: true,
|
|
18
|
+
configurable: false,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
13
22
|
if (!window.__donobu.controlPanelRegistered) {
|
|
14
23
|
Object.defineProperty(window.__donobu, 'controlPanelRegistered', {
|
|
15
24
|
value: true,
|
|
@@ -79,104 +88,142 @@
|
|
|
79
88
|
// Global styles
|
|
80
89
|
const styleEl = document.createElement('style');
|
|
81
90
|
styleEl.textContent = `
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
91
|
+
:host {
|
|
92
|
+
all: initial;
|
|
93
|
+
position: fixed;
|
|
94
|
+
top: 150px;
|
|
95
|
+
right: 20px;
|
|
96
|
+
z-index: 2147483647;
|
|
97
|
+
width: 300px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
#panel-content,
|
|
101
|
+
#panel-content * {
|
|
102
|
+
box-sizing: border-box;
|
|
103
|
+
margin: 0;
|
|
104
|
+
padding: 0;
|
|
105
|
+
font-family: Helvetica, Arial, sans-serif;
|
|
106
|
+
font-size: 14px;
|
|
107
|
+
color: #fff !important;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
#donobu-control-panel-title-text {
|
|
111
|
+
font-weight: 600 !important;
|
|
112
|
+
margin-left: 10px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
#panel-content input[type="text"] {
|
|
116
|
+
border: 1px solid #ddd !important;
|
|
117
|
+
background-color: #fff !important;
|
|
118
|
+
color: #000 !important;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
#donobu-play-icon,
|
|
122
|
+
#donobu-pause-icon,
|
|
123
|
+
#donobu-end-icon {
|
|
124
|
+
fill: none !important;
|
|
125
|
+
stroke: currentColor !important;
|
|
126
|
+
stroke-width: 2 !important;
|
|
127
|
+
stroke-linecap: round !important;
|
|
128
|
+
stroke-linejoin: round !important;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
#panel-content {
|
|
132
|
+
background-color: rgba(6,8,7,0.9);
|
|
133
|
+
border: 3px solid rgba(251,188,5, 0.9);
|
|
134
|
+
border-radius: 8px;
|
|
135
|
+
box-shadow: 0 4px 8px rgba(0,0,0,0.8);
|
|
136
|
+
cursor: move;
|
|
137
|
+
width: 100%;
|
|
138
|
+
overflow: hidden;
|
|
139
|
+
/* Add smooth transition for height changes */
|
|
140
|
+
transition: all 0.3s ease-in-out;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.donobu-hidden {
|
|
144
|
+
opacity: 0 !important;
|
|
145
|
+
pointer-events: none !important;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* Enhanced expandable content with smooth animations */
|
|
149
|
+
#donobu-control-panel-expandable-content {
|
|
150
|
+
padding: 0 15px; /* Remove top/bottom padding initially */
|
|
151
|
+
max-height: 0;
|
|
152
|
+
overflow: hidden;
|
|
153
|
+
opacity: 0;
|
|
154
|
+
/* Smooth transitions for max-height, opacity, and padding */
|
|
155
|
+
transition: max-height 0.3s ease-in-out,
|
|
156
|
+
opacity 0.3s ease-in-out,
|
|
157
|
+
padding 0.3s ease-in-out;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* When expanded */
|
|
161
|
+
#donobu-control-panel-expandable-content.expanded {
|
|
162
|
+
max-height: 300px; /* Adjust based on your content */
|
|
163
|
+
opacity: 1;
|
|
164
|
+
padding: 15px; /* Full padding when expanded */
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.navbar {
|
|
168
|
+
display: flex;
|
|
169
|
+
align-items: center;
|
|
170
|
+
justify-content: space-between;
|
|
171
|
+
padding: 15px;
|
|
172
|
+
font-weight: 600;
|
|
173
|
+
background-color: rgba(6,8,7,0.9);
|
|
174
|
+
border-bottom: 1px solid rgba(251,188,5, 0.5);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.icon-btn {
|
|
178
|
+
margin-right: 8px;
|
|
179
|
+
display: flex;
|
|
180
|
+
cursor: pointer;
|
|
181
|
+
opacity: 0.5;
|
|
182
|
+
transition: opacity 0.2s ease-in-out;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
#panel-content textarea {
|
|
186
|
+
border: 1px solid #ddd !important;
|
|
187
|
+
background-color: #fff !important;
|
|
188
|
+
color: #000 !important;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
#panel-content textarea::placeholder {
|
|
192
|
+
color: #666 !important;
|
|
193
|
+
opacity: 1 !important;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.icon-container {
|
|
197
|
+
display: flex;
|
|
198
|
+
align-items: center;
|
|
199
|
+
margin-right: 5px;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* Smooth transition for user message section */
|
|
203
|
+
#donobu-user-message-section {
|
|
204
|
+
margin-bottom: 10px;
|
|
205
|
+
opacity: 0;
|
|
206
|
+
transform: translateY(-10px);
|
|
207
|
+
transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
#donobu-user-message-section.visible {
|
|
211
|
+
opacity: 1;
|
|
212
|
+
transform: translateY(0);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* Enhanced textarea with smooth focus transitions */
|
|
216
|
+
#donobu-user-message-input {
|
|
217
|
+
transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
#donobu-user-message-input:focus {
|
|
221
|
+
border-color: rgba(251,188,5, 0.8) !important;
|
|
222
|
+
box-shadow: 0 0 0 2px rgba(251,188,5, 0.2) !important;
|
|
223
|
+
outline: none !important;
|
|
224
|
+
}
|
|
225
|
+
`;
|
|
121
226
|
|
|
122
|
-
#donobu-control-panel-display-area {
|
|
123
|
-
color: #fff !important;
|
|
124
|
-
margin-top: 10px;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
#panel-content {
|
|
128
|
-
background-color: rgba(6,8,7,0.9);
|
|
129
|
-
border: 3px solid rgba(251,188,5, 0.9);
|
|
130
|
-
border-radius: 8px;
|
|
131
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.8);
|
|
132
|
-
transition: height 0.3s ease;
|
|
133
|
-
cursor: move;
|
|
134
|
-
width: 100%;
|
|
135
|
-
overflow: hidden;
|
|
136
|
-
}
|
|
137
|
-
.donobu-hidden {
|
|
138
|
-
opacity: 0 !important;
|
|
139
|
-
pointer-events: none !important;
|
|
140
|
-
}
|
|
141
|
-
#donobu-control-panel-expandable-content {
|
|
142
|
-
display: none;
|
|
143
|
-
padding: 15px;
|
|
144
|
-
max-height: 300px;
|
|
145
|
-
overflow-y: auto;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
.navbar {
|
|
149
|
-
display: flex;
|
|
150
|
-
align-items: center;
|
|
151
|
-
justify-content: space-between;
|
|
152
|
-
padding: 15px;
|
|
153
|
-
font-weight: 600;
|
|
154
|
-
background-color: rgba(6,8,7,0.9);
|
|
155
|
-
border-bottom: 1px solid rgba(251,188,5, 0.5);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.icon-btn {
|
|
159
|
-
margin-right: 8px;
|
|
160
|
-
display: flex;
|
|
161
|
-
cursor: pointer;
|
|
162
|
-
opacity: 0.5;
|
|
163
|
-
transition: opacity 0.2s ease-in-out;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
#donobu-instructions-input {
|
|
167
|
-
width: 100%;
|
|
168
|
-
margin-bottom: 10px;
|
|
169
|
-
padding: 8px;
|
|
170
|
-
border: 1px solid #ddd;
|
|
171
|
-
border-radius: 4px;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.icon-container {
|
|
175
|
-
display: flex;
|
|
176
|
-
align-items: center;
|
|
177
|
-
margin-right: 5px;
|
|
178
|
-
}
|
|
179
|
-
`;
|
|
180
227
|
shadow.appendChild(styleEl);
|
|
181
228
|
|
|
182
229
|
// Main panel container
|
|
@@ -270,15 +317,28 @@
|
|
|
270
317
|
// Expandable content
|
|
271
318
|
const expandableContent = document.createElement('div');
|
|
272
319
|
expandableContent.id = 'donobu-control-panel-expandable-content';
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
320
|
+
|
|
321
|
+
// User message input section (initially hidden)
|
|
322
|
+
const userMessageSection = document.createElement('div');
|
|
323
|
+
userMessageSection.id = 'donobu-user-message-section';
|
|
324
|
+
userMessageSection.style.display = 'none';
|
|
325
|
+
userMessageSection.style.marginBottom = '10px';
|
|
326
|
+
|
|
327
|
+
const userMessageInput = document.createElement('textarea');
|
|
328
|
+
userMessageInput.id = 'donobu-user-message-input';
|
|
329
|
+
userMessageInput.placeholder =
|
|
330
|
+
'Additional instructions...\n(Press Enter or Resume to submit)';
|
|
331
|
+
userMessageInput.style.width = '100%';
|
|
332
|
+
userMessageInput.style.height = '60px';
|
|
333
|
+
userMessageInput.style.padding = '8px';
|
|
334
|
+
userMessageInput.style.border = '1px solid #ddd';
|
|
335
|
+
userMessageInput.style.borderRadius = '4px';
|
|
336
|
+
userMessageInput.style.resize = 'vertical';
|
|
337
|
+
userMessageInput.style.fontFamily = 'inherit';
|
|
338
|
+
userMessageInput.style.fontSize = '12px';
|
|
339
|
+
|
|
340
|
+
userMessageSection.appendChild(userMessageInput);
|
|
341
|
+
expandableContent.appendChild(userMessageSection);
|
|
282
342
|
|
|
283
343
|
// Attach everything
|
|
284
344
|
panelContent.appendChild(navbar);
|
|
@@ -297,12 +357,84 @@
|
|
|
297
357
|
btn.style.cursor = active ? 'pointer' : 'default';
|
|
298
358
|
}
|
|
299
359
|
|
|
360
|
+
// Helper function to handle resume logic (shared by play button and Enter key)
|
|
361
|
+
function handleResume() {
|
|
362
|
+
if (hostEl.donobuFlowState === 'PAUSED' && !isTransitioningToEnd) {
|
|
363
|
+
// Capture the user message if present
|
|
364
|
+
const userMessageInput = shadow.getElementById(
|
|
365
|
+
'donobu-user-message-input',
|
|
366
|
+
);
|
|
367
|
+
const userMessage = userMessageInput
|
|
368
|
+
? userMessageInput.value.trim()
|
|
369
|
+
: '';
|
|
370
|
+
hostEl.donobuFlowState = 'RESUMING';
|
|
371
|
+
isTransitioningToPause = false;
|
|
372
|
+
titleText.textContent = 'Resuming...';
|
|
373
|
+
window.__donobu.nextState = 'RESUMING';
|
|
374
|
+
window.__donobu.userMessage = userMessage || null;
|
|
375
|
+
// Clear the input after capturing
|
|
376
|
+
if (userMessageInput) {
|
|
377
|
+
userMessageInput.value = '';
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
updateButtonStates();
|
|
381
|
+
return true; // Indicate that resume was handled
|
|
382
|
+
}
|
|
383
|
+
return false; // Indicate that resume was not applicable
|
|
384
|
+
}
|
|
385
|
+
|
|
300
386
|
function updateButtonStates() {
|
|
301
387
|
if (!document.contains(hostEl)) {
|
|
302
388
|
document.body.appendChild(hostEl);
|
|
303
389
|
}
|
|
304
390
|
|
|
305
391
|
const currentState = hostEl.donobuFlowState;
|
|
392
|
+
const runMode = hostEl.donobuRunMode || 'AUTONOMOUS';
|
|
393
|
+
const userMessageSection = shadow.getElementById(
|
|
394
|
+
'donobu-user-message-section',
|
|
395
|
+
);
|
|
396
|
+
|
|
397
|
+
// Show user input if:
|
|
398
|
+
// 1. Currently paused and in autonomous mode, OR
|
|
399
|
+
// 2. Transitioning to pause (eager expansion)
|
|
400
|
+
const shouldShowUserInput =
|
|
401
|
+
(currentState === 'PAUSED' && runMode === 'AUTONOMOUS') ||
|
|
402
|
+
isTransitioningToPause;
|
|
403
|
+
|
|
404
|
+
if (userMessageSection) {
|
|
405
|
+
// Smooth show/hide user input section
|
|
406
|
+
if (shouldShowUserInput) {
|
|
407
|
+
// Show and expand the panel
|
|
408
|
+
expandableContent.classList.add('expanded');
|
|
409
|
+
// Small delay to ensure the expandable content animation starts first
|
|
410
|
+
setTimeout(() => {
|
|
411
|
+
userMessageSection.style.display = 'block';
|
|
412
|
+
// Trigger reflow, then add visible class for smooth transition
|
|
413
|
+
userMessageSection.offsetHeight;
|
|
414
|
+
userMessageSection.classList.add('visible');
|
|
415
|
+
// Auto-focus the textarea when it becomes visible and we're actually paused
|
|
416
|
+
// (not just transitioning)
|
|
417
|
+
if (currentState === 'PAUSED') {
|
|
418
|
+
const textarea = shadow.getElementById(
|
|
419
|
+
'donobu-user-message-input',
|
|
420
|
+
);
|
|
421
|
+
if (textarea) {
|
|
422
|
+
textarea.focus();
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}, 100);
|
|
426
|
+
} else {
|
|
427
|
+
// Hide user input section first
|
|
428
|
+
userMessageSection.classList.remove('visible');
|
|
429
|
+
|
|
430
|
+
// After the user section animation, collapse the panel
|
|
431
|
+
setTimeout(() => {
|
|
432
|
+
userMessageSection.style.display = 'none';
|
|
433
|
+
expandableContent.classList.remove('expanded');
|
|
434
|
+
}, 300); // Match the CSS transition duration
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
306
438
|
// This block handles the visual state while waiting for the backend.
|
|
307
439
|
// We check if the final state has arrived. If it has NOT, we show the
|
|
308
440
|
// "transitioning" UI and then `return` to wait for the next update.
|
|
@@ -389,13 +521,7 @@
|
|
|
389
521
|
// --- Button event listeners ---
|
|
390
522
|
|
|
391
523
|
playButton.addEventListener('click', () => {
|
|
392
|
-
|
|
393
|
-
hostEl.donobuFlowState = 'RESUMING';
|
|
394
|
-
isTransitioningToPause = false;
|
|
395
|
-
titleText.textContent = 'Resuming...';
|
|
396
|
-
window.__donobu.nextState = 'RESUMING';
|
|
397
|
-
updateButtonStates();
|
|
398
|
-
}
|
|
524
|
+
handleResume();
|
|
399
525
|
});
|
|
400
526
|
|
|
401
527
|
// PAUSE button: signals user wants to pause
|
|
@@ -404,16 +530,10 @@
|
|
|
404
530
|
const isPauseActive = pauseButton.style.opacity === '1';
|
|
405
531
|
if (isPauseActive && !isTransitioningToPause && !isTransitioningToEnd) {
|
|
406
532
|
isTransitioningToPause = true;
|
|
407
|
-
|
|
408
|
-
// Grab the current action's text BEFORE overwriting it.
|
|
409
|
-
const currentActionText = titleText.textContent;
|
|
410
|
-
|
|
411
533
|
// Provide immediate, informative feedback to the user.
|
|
412
|
-
titleText.textContent = `
|
|
413
|
-
|
|
534
|
+
titleText.textContent = `Pausing...`;
|
|
414
535
|
// Expose next state so external script can pick it up
|
|
415
536
|
window.__donobu.nextState = 'PAUSED';
|
|
416
|
-
|
|
417
537
|
// Manually update button states for immediate feedback
|
|
418
538
|
updateButtonStates();
|
|
419
539
|
}
|
|
@@ -424,18 +544,27 @@
|
|
|
424
544
|
const isEndActive = endButton.style.opacity === '1';
|
|
425
545
|
if (isEndActive && !isTransitioningToEnd) {
|
|
426
546
|
isTransitioningToEnd = true;
|
|
427
|
-
|
|
428
|
-
const currentActionText = titleText.textContent;
|
|
429
|
-
titleText.textContent = `Quit pending (after '${currentActionText}')`;
|
|
430
|
-
|
|
547
|
+
titleText.textContent = `Quitting...`;
|
|
431
548
|
// Expose next state
|
|
432
549
|
window.__donobu.nextState = 'SUCCESS';
|
|
433
|
-
|
|
434
550
|
// Manually update button states for immediate feedback
|
|
435
551
|
updateButtonStates();
|
|
436
552
|
}
|
|
437
553
|
});
|
|
438
554
|
|
|
555
|
+
// Add Enter key listener to the textarea
|
|
556
|
+
userMessageInput.addEventListener('keydown', (e) => {
|
|
557
|
+
// Handle Enter key (but not Shift+Enter, which should create new lines)
|
|
558
|
+
if (e.key === 'Enter' && !e.shiftKey) {
|
|
559
|
+
e.preventDefault(); // Prevent default textarea behavior
|
|
560
|
+
|
|
561
|
+
// Only trigger resume if we're in a paused state
|
|
562
|
+
if (handleResume()) {
|
|
563
|
+
// Resume was successful, the handleResume function took care of everything
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
});
|
|
567
|
+
|
|
439
568
|
// --- Drag-and-drop logic ---
|
|
440
569
|
let isDragging = false;
|
|
441
570
|
let offsetX = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1248
|
|
@@ -62,7 +62,10 @@ export declare class ControlPanel {
|
|
|
62
62
|
* flowMetadata.state = State.PAUSED;
|
|
63
63
|
* }
|
|
64
64
|
*/
|
|
65
|
-
popNextDesiredState(page: Page): Promise<
|
|
65
|
+
popNextDesiredState(page: Page): Promise<{
|
|
66
|
+
state: State | null;
|
|
67
|
+
userMessage: string | null;
|
|
68
|
+
}>;
|
|
66
69
|
/**
|
|
67
70
|
* Hides the control panel on all pages in the browser context.
|
|
68
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAO7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAY;IAqBJ,OAAO,CAAC,QAAQ,CAAC,YAAY;IApBhD,gBAAuB,WAAW,SAEhC;IAEF;;;;;OAKG;IACH,gBAAuB,+BAA+B,0BAC7B;IAEzB;;;OAGG;IACH,gBAAuB,wCAAwC,qCAC3B;gBAEA,YAAY,EAAE,YAAY;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAO7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAY;IAqBJ,OAAO,CAAC,QAAQ,CAAC,YAAY;IApBhD,gBAAuB,WAAW,SAEhC;IAEF;;;;;OAKG;IACH,gBAAuB,+BAA+B,0BAC7B;IAEzB;;;OAGG;IACH,gBAAuB,wCAAwC,qCAC3B;gBAEA,YAAY,EAAE,YAAY;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QACpD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IAgCF;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BhE;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CACjB,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAwDhB,OAAO,CAAC,6BAA6B;IAsBrC,OAAO,CAAC,UAAU;YAOJ,yBAAyB;CAoBxC"}
|
|
@@ -61,18 +61,22 @@ class ControlPanel {
|
|
|
61
61
|
*/
|
|
62
62
|
async popNextDesiredState(page) {
|
|
63
63
|
if (!this.flowMetadata.isControlPanelEnabled) {
|
|
64
|
-
return null;
|
|
64
|
+
return { state: null, userMessage: null };
|
|
65
65
|
}
|
|
66
66
|
await this.ensureControlPanelIsSetup(page.context());
|
|
67
67
|
try {
|
|
68
|
-
const
|
|
69
|
-
const
|
|
68
|
+
const result = await page.evaluate(() => {
|
|
69
|
+
const state = window.__donobu.nextState;
|
|
70
|
+
const userMessage = window.__donobu.userMessage || null;
|
|
71
|
+
// Clear both values after reading
|
|
70
72
|
window.__donobu.nextState = null;
|
|
71
|
-
|
|
73
|
+
window.__donobu.userMessage = null;
|
|
74
|
+
return { state, userMessage };
|
|
72
75
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
return {
|
|
77
|
+
state: result.state,
|
|
78
|
+
userMessage: result.userMessage,
|
|
79
|
+
};
|
|
76
80
|
}
|
|
77
81
|
catch (error) {
|
|
78
82
|
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
@@ -82,7 +86,6 @@ class ControlPanel {
|
|
|
82
86
|
throw error;
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
|
-
return null;
|
|
86
89
|
}
|
|
87
90
|
/**
|
|
88
91
|
* Hides the control panel on all pages in the browser context.
|
|
@@ -198,9 +201,13 @@ class ControlPanel {
|
|
|
198
201
|
try {
|
|
199
202
|
const controlPanel = page.locator(controlPanelQuerySelector).first();
|
|
200
203
|
if ((await controlPanel.count()) === 1) {
|
|
201
|
-
await controlPanel.evaluate((element,
|
|
202
|
-
element.donobuFlowState = state;
|
|
203
|
-
|
|
204
|
+
await controlPanel.evaluate((element, data) => {
|
|
205
|
+
element.donobuFlowState = data.state;
|
|
206
|
+
element.donobuRunMode = data.runMode;
|
|
207
|
+
}, {
|
|
208
|
+
state: this.flowMetadata.state.toString(),
|
|
209
|
+
runMode: this.flowMetadata.runMode,
|
|
210
|
+
});
|
|
204
211
|
if (headline) {
|
|
205
212
|
const controlPanelHeadline = page
|
|
206
213
|
.locator(controlPanelHeadlineQuerySelector)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":";;;;;;AAEA,4CAA4C;AAC5C,2EAAwE;AACxE,8DAA2D;AAC3D,kDAA+C;AAC/C,gDAAwB;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,YAAY;IAqBvB,YAAoC,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,mBAAmB,CAAC,IAAU;
|
|
1
|
+
{"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ export declare class DonobuFlow {
|
|
|
35
35
|
readonly focusedPage: FocusedPage;
|
|
36
36
|
readonly metadata: FlowMetadata;
|
|
37
37
|
private static readonly MAIN_MESSAGE_ELEMENT_LIST_MARKER;
|
|
38
|
+
static readonly USER_INTERRUPT_MARKER = "[User interruption while flow was paused, this MUST be acknowledged]";
|
|
38
39
|
static readonly MAX_IMAGE_BYTES_FOR_LLM: number;
|
|
39
40
|
readonly pageInspector: PageInspector;
|
|
40
41
|
readonly controlPanel: ControlPanel;
|
|
@@ -153,6 +154,7 @@ export declare class DonobuFlow {
|
|
|
153
154
|
private updateTokenCounts;
|
|
154
155
|
private static createSystemMessageForOverallObjective;
|
|
155
156
|
private static createMainUserMessage;
|
|
157
|
+
private interruptWithUserInstruction;
|
|
156
158
|
/**
|
|
157
159
|
* Returns a size-optimized GPT message history by stripping images and text
|
|
158
160
|
* from old messages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuFlow.d.ts","sourceRoot":"","sources":["../../../src/managers/DonobuFlow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAU,IAAI,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,UAAU,EAEV,uBAAuB,EAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAmBpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"DonobuFlow.d.ts","sourceRoot":"","sources":["../../../src/managers/DonobuFlow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAU,IAAI,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,UAAU,EAEV,uBAAuB,EAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAmBpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;GAGG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,eAAe,EAAE,QAAQ,EAAE,EAC3B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAkElC;AAED;;;GAGG;AACH,qBAAa,UAAU;aAUH,YAAY,EAAE,kBAAkB;aAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;aAC/B,cAAc,EAAE,cAAc;aAC9B,WAAW,EAAE,gBAAgB;aAC7B,SAAS,EAAE,SAAS,GAAG,IAAI;aAC3B,WAAW,EAAE,WAAW;aACxB,qBAAqB,EAAE,qBAAqB;aAC5C,iBAAiB,EAAE,gBAAgB,EAAE;aACrC,gBAAgB,EAAE,QAAQ,EAAE;aAC5B,WAAW,EAAE,UAAU,EAAE;aACzB,WAAW,EAAE,WAAW;aACxB,QAAQ,EAAE,YAAY;IApBxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAC8C;IACtG,gBAAuB,qBAAqB,0EAC6B;IACzE,gBAAuB,uBAAuB,SAAmB;IACjE,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,YAAY,EAAE,YAAY,CAAC;gBAGzB,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,qBAAqB,EAC5C,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,gBAAgB,EAAE,QAAQ,EAAE,EAC5B,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY;IAMxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACU,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IA2D3D;;;;OAIG;YACW,mBAAmB;IAkBjC;;;OAGG;YACW,sBAAsB;IAepC;;;OAGG;YACW,qBAAqB;IASnC;;OAEG;YACW,UAAU;IAuBxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;YA+B3B,QAAQ;YA2OR,uBAAuB;IAMrC;;;;OAIG;YACW,eAAe;YAsHf,4BAA4B;YAc5B,2BAA2B;IAsBzC;;;;;;;;;;;;;OAaG;YACW,gBAAgB;IAqC9B;;OAEG;YACW,WAAW;IAIzB;;;OAGG;YACW,cAAc;YAuBd,eAAe;YAwHf,0BAA0B;YAqB1B,6BAA6B;YAY7B,QAAQ;YAgBR,UAAU;YAIV,QAAQ;YAQR,SAAS;IAQvB,OAAO,CAAC,yCAAyC;YAkFnC,4BAA4B;IAkK1C;;;OAGG;YACW,iBAAiB;IAoC/B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM,CAAC,sCAAsC;IA0HrD,OAAO,CAAC,MAAM,CAAC,qBAAqB;YAyBtB,4BAA4B;IAoC1C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;CAuHhD"}
|