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.
Files changed (57) hide show
  1. package/dist/assets/control-panel.js +254 -125
  2. package/dist/assets/generated/version +1 -1
  3. package/dist/esm/assets/control-panel.js +254 -125
  4. package/dist/esm/assets/generated/version +1 -1
  5. package/dist/esm/managers/ControlPanel.d.ts +4 -1
  6. package/dist/esm/managers/ControlPanel.d.ts.map +1 -1
  7. package/dist/esm/managers/ControlPanel.js +18 -11
  8. package/dist/esm/managers/ControlPanel.js.map +1 -1
  9. package/dist/esm/managers/DonobuFlow.d.ts +2 -0
  10. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  11. package/dist/esm/managers/DonobuFlow.js +122 -34
  12. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  13. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  14. package/dist/esm/managers/DonobuFlowsManager.js +3 -4
  15. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  16. package/dist/esm/managers/InteractionVisualizer.d.ts +2 -0
  17. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  18. package/dist/esm/managers/InteractionVisualizer.js +69 -17
  19. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  20. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  21. package/dist/esm/managers/ToolManager.js +6 -5
  22. package/dist/esm/managers/ToolManager.js.map +1 -1
  23. package/dist/esm/models/InteractableElement.d.ts +15 -10
  24. package/dist/esm/models/InteractableElement.d.ts.map +1 -1
  25. package/dist/esm/models/InteractableElement.js +11 -0
  26. package/dist/esm/models/InteractableElement.js.map +1 -1
  27. package/dist/esm/tools/AcknowledgeUserInstruction.d.ts +35 -0
  28. package/dist/esm/tools/AcknowledgeUserInstruction.d.ts.map +1 -0
  29. package/dist/esm/tools/AcknowledgeUserInstruction.js +40 -0
  30. package/dist/esm/tools/AcknowledgeUserInstruction.js.map +1 -0
  31. package/dist/managers/ControlPanel.d.ts +4 -1
  32. package/dist/managers/ControlPanel.d.ts.map +1 -1
  33. package/dist/managers/ControlPanel.js +18 -11
  34. package/dist/managers/ControlPanel.js.map +1 -1
  35. package/dist/managers/DonobuFlow.d.ts +2 -0
  36. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  37. package/dist/managers/DonobuFlow.js +122 -34
  38. package/dist/managers/DonobuFlow.js.map +1 -1
  39. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  40. package/dist/managers/DonobuFlowsManager.js +3 -4
  41. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  42. package/dist/managers/InteractionVisualizer.d.ts +2 -0
  43. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  44. package/dist/managers/InteractionVisualizer.js +69 -17
  45. package/dist/managers/InteractionVisualizer.js.map +1 -1
  46. package/dist/managers/ToolManager.d.ts.map +1 -1
  47. package/dist/managers/ToolManager.js +6 -5
  48. package/dist/managers/ToolManager.js.map +1 -1
  49. package/dist/models/InteractableElement.d.ts +15 -10
  50. package/dist/models/InteractableElement.d.ts.map +1 -1
  51. package/dist/models/InteractableElement.js +11 -0
  52. package/dist/models/InteractableElement.js.map +1 -1
  53. package/dist/tools/AcknowledgeUserInstruction.d.ts +35 -0
  54. package/dist/tools/AcknowledgeUserInstruction.d.ts.map +1 -0
  55. package/dist/tools/AcknowledgeUserInstruction.js +40 -0
  56. package/dist/tools/AcknowledgeUserInstruction.js.map +1 -0
  57. 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
- :host {
83
- all: initial;
84
- position: fixed;
85
- top: 150px;
86
- right: 20px;
87
- z-index: 2147483647;
88
- width: 300px;
89
- }
90
-
91
- #panel-content,
92
- #panel-content * {
93
- box-sizing: border-box;
94
- margin: 0;
95
- padding: 0;
96
- font-family: Helvetica, Arial, sans-serif;
97
- font-size: 14px;
98
- color: #fff !important;
99
- }
100
-
101
- #donobu-control-panel-title-text {
102
- font-weight: 600 !important;
103
- margin-left: 10px;
104
- }
105
-
106
- #panel-content input[type="text"] {
107
- border: 1px solid #ddd !important;
108
- background-color: #fff !important;
109
- color: #000 !important;
110
- }
111
-
112
- #donobu-play-icon,
113
- #donobu-pause-icon,
114
- #donobu-end-icon {
115
- fill: none !important;
116
- stroke: currentColor !important;
117
- stroke-width: 2 !important;
118
- stroke-linecap: round !important;
119
- stroke-linejoin: round !important;
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
- const instructionsInput = document.createElement('input');
274
- instructionsInput.type = 'text';
275
- instructionsInput.id = 'donobu-instructions-input';
276
- instructionsInput.placeholder = 'Additional instructions...';
277
- const displayArea = document.createElement('div');
278
- displayArea.id = 'donobu-control-panel-display-area';
279
- displayArea.textContent = 'Popup: Monitoring...';
280
- expandableContent.appendChild(instructionsInput);
281
- expandableContent.appendChild(displayArea);
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
- if (hostEl.donobuFlowState === 'PAUSED' && !isTransitioningToEnd) {
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 = `Pause pending (after '${currentActionText}')`;
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
- 1243
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<State | null>;
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;IA4BnE;;;;;;;;;;;;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;IAiDhB,OAAO,CAAC,6BAA6B;IAsBrC,OAAO,CAAC,UAAU;YAOJ,yBAAyB;CAoBxC"}
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 desiredNextState = await page.evaluate(() => {
69
- const tmpState = window.__donobu.nextState;
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
- return tmpState;
73
+ window.__donobu.userMessage = null;
74
+ return { state, userMessage };
72
75
  });
73
- if (desiredNextState) {
74
- return desiredNextState;
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, state) => {
202
- element.donobuFlowState = state;
203
- }, this.flowMetadata.state.toString());
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":"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"}
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":"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"}
1
+ {"version":3,"file":"DonobuFlow.d.ts","sourceRoot":"","sources":["../../../src/managers/DonobuFlow.ts"],"names":[],"mappings":"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"}