@design.estate/dees-catalog 4.12.0 → 5.0.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 (34) hide show
  1. package/dist_bundle/bundle.js +2322 -1251
  2. package/dist_ts_web/00_commitinfo_data.js +2 -2
  3. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +17 -3
  4. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +291 -78
  5. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +328 -35
  6. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +44 -3
  7. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.js +5 -7
  8. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +5 -2
  9. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +49 -0
  10. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.demo.d.ts +1 -0
  11. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.demo.js +56 -0
  12. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +649 -0
  13. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/index.d.ts +1 -0
  14. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/index.js +2 -0
  15. package/dist_ts_web/elements/00group-harness/harness.markdown.js +3 -1
  16. package/dist_ts_web/elements/00group-harness/harness.styles.js +29 -1
  17. package/dist_ts_web/elements/00group-harness/index.d.ts +1 -0
  18. package/dist_ts_web/elements/00group-harness/index.js +2 -1
  19. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +41 -0
  20. package/package.json +1 -1
  21. package/readme.md +11 -5
  22. package/ts_web/00_commitinfo_data.ts +1 -1
  23. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +278 -79
  24. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +283 -28
  25. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +43 -2
  26. package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.ts +4 -6
  27. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +4 -1
  28. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.demo.ts +67 -0
  29. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +557 -0
  30. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/index.ts +1 -0
  31. package/ts_web/elements/00group-harness/harness.markdown.ts +2 -0
  32. package/ts_web/elements/00group-harness/harness.styles.ts +28 -0
  33. package/ts_web/elements/00group-harness/index.ts +1 -0
  34. package/ts_web/elements/00group-harness/interfaces.ts +48 -0
@@ -33,13 +33,14 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { demoFunc } from './dees-harness-chat.demo.js';
36
- import { DeesElement, html, css, customElement, property, cssManager, } from '@design.estate/dees-element';
36
+ import { DeesElement, html, css, customElement, property, state, cssManager, } from '@design.estate/dees-element';
37
37
  import { themeDefaultStyles } from '../../00theme.js';
38
38
  import { harnessParseTodos } from '../harness.helpers.js';
39
39
  import { DeesHarnessToolRegistry } from '../toolregistry.js';
40
40
  import { DeesHarnessMessageList } from '../dees-harness-message-list/dees-harness-message-list.js';
41
41
  import { DeesHarnessComposer } from '../dees-harness-composer/dees-harness-composer.js';
42
42
  import '../dees-harness-todos/dees-harness-todos.js';
43
+ import '../dees-harness-session-sidebar/dees-harness-session-sidebar.js';
43
44
  import '../dees-harness-usage/dees-harness-usage.js';
44
45
  import '../../00group-button/dees-button/dees-button.js';
45
46
  import '../../00group-utility/dees-icon/dees-icon.js';
@@ -48,8 +49,7 @@ import '../../00group-utility/dees-icon/dees-icon.js';
48
49
  * pinned permission queue, status line, and composer. Owns no business
49
50
  * logic — consumers feed `.messages`/`.permissions`/`.status` (and stream
50
51
  * through `applyDelta()`), and listen for the bubbling harness-* events
51
- * from the children plus `harness-new-session` / `harness-open-sessions`
52
- * from the toolbar.
52
+ * from the children plus `harness-toggle-sidebar` from the toolbar.
53
53
  */
54
54
  let DeesHarnessChat = (() => {
55
55
  let _classDecorators = [customElement('dees-harness-chat')];
@@ -78,6 +78,36 @@ let DeesHarnessChat = (() => {
78
78
  let _showTodosPanel_decorators;
79
79
  let _showTodosPanel_initializers = [];
80
80
  let _showTodosPanel_extraInitializers = [];
81
+ let _showSessionSidebar_decorators;
82
+ let _showSessionSidebar_initializers = [];
83
+ let _showSessionSidebar_extraInitializers = [];
84
+ let _sessionMetrics_decorators;
85
+ let _sessionMetrics_initializers = [];
86
+ let _sessionMetrics_extraInitializers = [];
87
+ let _scratchpad_decorators;
88
+ let _scratchpad_initializers = [];
89
+ let _scratchpad_extraInitializers = [];
90
+ let _scratchpadBusy_decorators;
91
+ let _scratchpadBusy_initializers = [];
92
+ let _scratchpadBusy_extraInitializers = [];
93
+ let _scratchpadError_decorators;
94
+ let _scratchpadError_initializers = [];
95
+ let _scratchpadError_extraInitializers = [];
96
+ let _sessionIntelligenceEnabled_decorators;
97
+ let _sessionIntelligenceEnabled_initializers = [];
98
+ let _sessionIntelligenceEnabled_extraInitializers = [];
99
+ let _intelligenceExchanges_decorators;
100
+ let _intelligenceExchanges_initializers = [];
101
+ let _intelligenceExchanges_extraInitializers = [];
102
+ let _intelligenceBusy_decorators;
103
+ let _intelligenceBusy_initializers = [];
104
+ let _intelligenceBusy_extraInitializers = [];
105
+ let _intelligenceError_decorators;
106
+ let _intelligenceError_initializers = [];
107
+ let _intelligenceError_extraInitializers = [];
108
+ let _sessionSidebarOpen_decorators;
109
+ let _sessionSidebarOpen_initializers = [];
110
+ let _sessionSidebarOpen_extraInitializers = [];
81
111
  let _heading_decorators;
82
112
  let _heading_initializers = [];
83
113
  let _heading_extraInitializers = [];
@@ -140,6 +170,16 @@ let DeesHarnessChat = (() => {
140
170
  _usage_decorators = [property({ attribute: false })];
141
171
  _todos_decorators = [property({ attribute: false })];
142
172
  _showTodosPanel_decorators = [property({ type: Boolean })];
173
+ _showSessionSidebar_decorators = [property({ type: Boolean })];
174
+ _sessionMetrics_decorators = [property({ attribute: false })];
175
+ _scratchpad_decorators = [property({ attribute: false })];
176
+ _scratchpadBusy_decorators = [property({ type: Boolean })];
177
+ _scratchpadError_decorators = [property()];
178
+ _sessionIntelligenceEnabled_decorators = [property({ type: Boolean })];
179
+ _intelligenceExchanges_decorators = [property({ attribute: false })];
180
+ _intelligenceBusy_decorators = [property({ type: Boolean })];
181
+ _intelligenceError_decorators = [property()];
182
+ _sessionSidebarOpen_decorators = [state()];
143
183
  _heading_decorators = [property()];
144
184
  _subheading_decorators = [property()];
145
185
  _showToolbar_decorators = [property({ type: Boolean })];
@@ -164,6 +204,16 @@ let DeesHarnessChat = (() => {
164
204
  __esDecorate(this, null, _usage_decorators, { kind: "accessor", name: "usage", static: false, private: false, access: { has: obj => "usage" in obj, get: obj => obj.usage, set: (obj, value) => { obj.usage = value; } }, metadata: _metadata }, _usage_initializers, _usage_extraInitializers);
165
205
  __esDecorate(this, null, _todos_decorators, { kind: "accessor", name: "todos", static: false, private: false, access: { has: obj => "todos" in obj, get: obj => obj.todos, set: (obj, value) => { obj.todos = value; } }, metadata: _metadata }, _todos_initializers, _todos_extraInitializers);
166
206
  __esDecorate(this, null, _showTodosPanel_decorators, { kind: "accessor", name: "showTodosPanel", static: false, private: false, access: { has: obj => "showTodosPanel" in obj, get: obj => obj.showTodosPanel, set: (obj, value) => { obj.showTodosPanel = value; } }, metadata: _metadata }, _showTodosPanel_initializers, _showTodosPanel_extraInitializers);
207
+ __esDecorate(this, null, _showSessionSidebar_decorators, { kind: "accessor", name: "showSessionSidebar", static: false, private: false, access: { has: obj => "showSessionSidebar" in obj, get: obj => obj.showSessionSidebar, set: (obj, value) => { obj.showSessionSidebar = value; } }, metadata: _metadata }, _showSessionSidebar_initializers, _showSessionSidebar_extraInitializers);
208
+ __esDecorate(this, null, _sessionMetrics_decorators, { kind: "accessor", name: "sessionMetrics", static: false, private: false, access: { has: obj => "sessionMetrics" in obj, get: obj => obj.sessionMetrics, set: (obj, value) => { obj.sessionMetrics = value; } }, metadata: _metadata }, _sessionMetrics_initializers, _sessionMetrics_extraInitializers);
209
+ __esDecorate(this, null, _scratchpad_decorators, { kind: "accessor", name: "scratchpad", static: false, private: false, access: { has: obj => "scratchpad" in obj, get: obj => obj.scratchpad, set: (obj, value) => { obj.scratchpad = value; } }, metadata: _metadata }, _scratchpad_initializers, _scratchpad_extraInitializers);
210
+ __esDecorate(this, null, _scratchpadBusy_decorators, { kind: "accessor", name: "scratchpadBusy", static: false, private: false, access: { has: obj => "scratchpadBusy" in obj, get: obj => obj.scratchpadBusy, set: (obj, value) => { obj.scratchpadBusy = value; } }, metadata: _metadata }, _scratchpadBusy_initializers, _scratchpadBusy_extraInitializers);
211
+ __esDecorate(this, null, _scratchpadError_decorators, { kind: "accessor", name: "scratchpadError", static: false, private: false, access: { has: obj => "scratchpadError" in obj, get: obj => obj.scratchpadError, set: (obj, value) => { obj.scratchpadError = value; } }, metadata: _metadata }, _scratchpadError_initializers, _scratchpadError_extraInitializers);
212
+ __esDecorate(this, null, _sessionIntelligenceEnabled_decorators, { kind: "accessor", name: "sessionIntelligenceEnabled", static: false, private: false, access: { has: obj => "sessionIntelligenceEnabled" in obj, get: obj => obj.sessionIntelligenceEnabled, set: (obj, value) => { obj.sessionIntelligenceEnabled = value; } }, metadata: _metadata }, _sessionIntelligenceEnabled_initializers, _sessionIntelligenceEnabled_extraInitializers);
213
+ __esDecorate(this, null, _intelligenceExchanges_decorators, { kind: "accessor", name: "intelligenceExchanges", static: false, private: false, access: { has: obj => "intelligenceExchanges" in obj, get: obj => obj.intelligenceExchanges, set: (obj, value) => { obj.intelligenceExchanges = value; } }, metadata: _metadata }, _intelligenceExchanges_initializers, _intelligenceExchanges_extraInitializers);
214
+ __esDecorate(this, null, _intelligenceBusy_decorators, { kind: "accessor", name: "intelligenceBusy", static: false, private: false, access: { has: obj => "intelligenceBusy" in obj, get: obj => obj.intelligenceBusy, set: (obj, value) => { obj.intelligenceBusy = value; } }, metadata: _metadata }, _intelligenceBusy_initializers, _intelligenceBusy_extraInitializers);
215
+ __esDecorate(this, null, _intelligenceError_decorators, { kind: "accessor", name: "intelligenceError", static: false, private: false, access: { has: obj => "intelligenceError" in obj, get: obj => obj.intelligenceError, set: (obj, value) => { obj.intelligenceError = value; } }, metadata: _metadata }, _intelligenceError_initializers, _intelligenceError_extraInitializers);
216
+ __esDecorate(this, null, _sessionSidebarOpen_decorators, { kind: "accessor", name: "sessionSidebarOpen", static: false, private: false, access: { has: obj => "sessionSidebarOpen" in obj, get: obj => obj.sessionSidebarOpen, set: (obj, value) => { obj.sessionSidebarOpen = value; } }, metadata: _metadata }, _sessionSidebarOpen_initializers, _sessionSidebarOpen_extraInitializers);
167
217
  __esDecorate(this, null, _heading_decorators, { kind: "accessor", name: "heading", static: false, private: false, access: { has: obj => "heading" in obj, get: obj => obj.heading, set: (obj, value) => { obj.heading = value; } }, metadata: _metadata }, _heading_initializers, _heading_extraInitializers);
168
218
  __esDecorate(this, null, _subheading_decorators, { kind: "accessor", name: "subheading", static: false, private: false, access: { has: obj => "subheading" in obj, get: obj => obj.subheading, set: (obj, value) => { obj.subheading = value; } }, metadata: _metadata }, _subheading_initializers, _subheading_extraInitializers);
169
219
  __esDecorate(this, null, _showToolbar_decorators, { kind: "accessor", name: "showToolbar", static: false, private: false, access: { has: obj => "showToolbar" in obj, get: obj => obj.showToolbar, set: (obj, value) => { obj.showToolbar = value; } }, metadata: _metadata }, _showToolbar_initializers, _showToolbar_extraInitializers);
@@ -214,7 +264,37 @@ let DeesHarnessChat = (() => {
214
264
  #showTodosPanel_accessor_storage = (__runInitializers(this, _todos_extraInitializers), __runInitializers(this, _showTodosPanel_initializers, true));
215
265
  get showTodosPanel() { return this.#showTodosPanel_accessor_storage; }
216
266
  set showTodosPanel(value) { this.#showTodosPanel_accessor_storage = value; }
217
- #heading_accessor_storage = (__runInitializers(this, _showTodosPanel_extraInitializers), __runInitializers(this, _heading_initializers, ''));
267
+ #showSessionSidebar_accessor_storage = (__runInitializers(this, _showTodosPanel_extraInitializers), __runInitializers(this, _showSessionSidebar_initializers, true));
268
+ get showSessionSidebar() { return this.#showSessionSidebar_accessor_storage; }
269
+ set showSessionSidebar(value) { this.#showSessionSidebar_accessor_storage = value; }
270
+ #sessionMetrics_accessor_storage = (__runInitializers(this, _showSessionSidebar_extraInitializers), __runInitializers(this, _sessionMetrics_initializers, {}));
271
+ get sessionMetrics() { return this.#sessionMetrics_accessor_storage; }
272
+ set sessionMetrics(value) { this.#sessionMetrics_accessor_storage = value; }
273
+ #scratchpad_accessor_storage = (__runInitializers(this, _sessionMetrics_extraInitializers), __runInitializers(this, _scratchpad_initializers, undefined));
274
+ get scratchpad() { return this.#scratchpad_accessor_storage; }
275
+ set scratchpad(value) { this.#scratchpad_accessor_storage = value; }
276
+ #scratchpadBusy_accessor_storage = (__runInitializers(this, _scratchpad_extraInitializers), __runInitializers(this, _scratchpadBusy_initializers, false));
277
+ get scratchpadBusy() { return this.#scratchpadBusy_accessor_storage; }
278
+ set scratchpadBusy(value) { this.#scratchpadBusy_accessor_storage = value; }
279
+ #scratchpadError_accessor_storage = (__runInitializers(this, _scratchpadBusy_extraInitializers), __runInitializers(this, _scratchpadError_initializers, ''));
280
+ get scratchpadError() { return this.#scratchpadError_accessor_storage; }
281
+ set scratchpadError(value) { this.#scratchpadError_accessor_storage = value; }
282
+ #sessionIntelligenceEnabled_accessor_storage = (__runInitializers(this, _scratchpadError_extraInitializers), __runInitializers(this, _sessionIntelligenceEnabled_initializers, false));
283
+ get sessionIntelligenceEnabled() { return this.#sessionIntelligenceEnabled_accessor_storage; }
284
+ set sessionIntelligenceEnabled(value) { this.#sessionIntelligenceEnabled_accessor_storage = value; }
285
+ #intelligenceExchanges_accessor_storage = (__runInitializers(this, _sessionIntelligenceEnabled_extraInitializers), __runInitializers(this, _intelligenceExchanges_initializers, []));
286
+ get intelligenceExchanges() { return this.#intelligenceExchanges_accessor_storage; }
287
+ set intelligenceExchanges(value) { this.#intelligenceExchanges_accessor_storage = value; }
288
+ #intelligenceBusy_accessor_storage = (__runInitializers(this, _intelligenceExchanges_extraInitializers), __runInitializers(this, _intelligenceBusy_initializers, false));
289
+ get intelligenceBusy() { return this.#intelligenceBusy_accessor_storage; }
290
+ set intelligenceBusy(value) { this.#intelligenceBusy_accessor_storage = value; }
291
+ #intelligenceError_accessor_storage = (__runInitializers(this, _intelligenceBusy_extraInitializers), __runInitializers(this, _intelligenceError_initializers, ''));
292
+ get intelligenceError() { return this.#intelligenceError_accessor_storage; }
293
+ set intelligenceError(value) { this.#intelligenceError_accessor_storage = value; }
294
+ #sessionSidebarOpen_accessor_storage = (__runInitializers(this, _intelligenceError_extraInitializers), __runInitializers(this, _sessionSidebarOpen_initializers, false));
295
+ get sessionSidebarOpen() { return this.#sessionSidebarOpen_accessor_storage; }
296
+ set sessionSidebarOpen(value) { this.#sessionSidebarOpen_accessor_storage = value; }
297
+ #heading_accessor_storage = (__runInitializers(this, _sessionSidebarOpen_extraInitializers), __runInitializers(this, _heading_initializers, ''));
218
298
  get heading() { return this.#heading_accessor_storage; }
219
299
  set heading(value) { this.#heading_accessor_storage = value; }
220
300
  #subheading_accessor_storage = (__runInitializers(this, _heading_extraInitializers), __runInitializers(this, _subheading_initializers, ''));
@@ -283,6 +363,7 @@ let DeesHarnessChat = (() => {
283
363
  }
284
364
 
285
365
  .chatBody {
366
+ position: relative;
286
367
  flex: 1;
287
368
  min-height: 0;
288
369
  min-width: 0;
@@ -295,7 +376,14 @@ let DeesHarnessChat = (() => {
295
376
  min-width: 0;
296
377
  }
297
378
 
298
- .todosPanel {
379
+ .transcriptColumn {
380
+ flex: 1;
381
+ min-height: 0;
382
+ display: flex;
383
+ flex-direction: column;
384
+ }
385
+
386
+ .sessionPanel {
299
387
  flex: 0 0 232px;
300
388
  min-width: 0;
301
389
  overflow-y: auto;
@@ -306,11 +394,95 @@ let DeesHarnessChat = (() => {
306
394
  background: var(--dees-color-bg-secondary);
307
395
  }
308
396
 
309
- /* narrow hosts (e.g. a sidebar chat) drop the panel; todo tool cards
310
- in the transcript still carry the same information */
311
- @container (max-width: 520px) {
312
- .todosPanel {
313
- display: none;
397
+ .sessionPanelClose,
398
+ .sessionPanelToggle,
399
+ .sessionPanelBackdrop {
400
+ display: none;
401
+ }
402
+
403
+ .sessionPanelToggle {
404
+ box-sizing: border-box;
405
+ width: var(--dees-control-height-lg);
406
+ height: var(--dees-control-height-lg);
407
+ padding: 0;
408
+ align-items: center;
409
+ justify-content: center;
410
+ border: 1px solid transparent;
411
+ border-radius: var(--dees-radius-lg);
412
+ corner-shape: var(--dees-corner-shape);
413
+ background: transparent;
414
+ color: var(--dees-color-text-primary);
415
+ cursor: pointer;
416
+ }
417
+
418
+ .sessionPanelToggle:hover {
419
+ background: var(--dees-color-badge-default-bg);
420
+ }
421
+
422
+ .sessionPanelToggle:focus-visible {
423
+ outline: 2px solid var(--dees-color-accent-primary);
424
+ outline-offset: 2px;
425
+ }
426
+
427
+ /* Narrow hosts keep every session section reachable in an overlay.
428
+ Todo tool cards remain a second transcript-level representation. */
429
+ @container (max-width: 680px) {
430
+ .sessionPanel {
431
+ position: absolute;
432
+ inset: 0 0 0 auto;
433
+ width: min(320px, calc(100% - 36px));
434
+ max-width: none;
435
+ padding-top: 42px;
436
+ border-left-color: var(--dees-color-border-default);
437
+ box-shadow: var(--dees-shadow-lg);
438
+ visibility: hidden;
439
+ transform: translateX(100%);
440
+ transition:
441
+ transform var(--dees-transition-default) var(--dees-ease-out),
442
+ visibility 0s linear var(--dees-transition-default);
443
+ }
444
+
445
+ .sessionPanel.open {
446
+ visibility: visible;
447
+ transform: translateX(0);
448
+ transition-delay: 0s;
449
+ }
450
+
451
+ .sessionPanelClose {
452
+ position: absolute;
453
+ top: 6px;
454
+ right: 8px;
455
+ display: block;
456
+ }
457
+
458
+ .sessionPanelToggle {
459
+ position: absolute;
460
+ top: 8px;
461
+ right: 8px;
462
+ display: flex;
463
+ }
464
+
465
+ .sessionPanelBackdrop {
466
+ position: absolute;
467
+ inset: 0;
468
+ display: block;
469
+ border: 0;
470
+ background: color-mix(in srgb, var(--dees-color-bg-primary) 58%, transparent);
471
+ opacity: 0;
472
+ pointer-events: none;
473
+ transition: opacity var(--dees-transition-default) var(--dees-ease-standard);
474
+ }
475
+
476
+ .sessionPanelBackdrop.open {
477
+ opacity: 1;
478
+ pointer-events: auto;
479
+ }
480
+
481
+ @media (prefers-reduced-motion: reduce) {
482
+ .sessionPanel,
483
+ .sessionPanelBackdrop {
484
+ transition: none;
485
+ }
314
486
  }
315
487
  }
316
488
 
@@ -358,7 +530,7 @@ let DeesHarnessChat = (() => {
358
530
  flex: 0 0 auto;
359
531
  }
360
532
 
361
- .chatBody dees-harness-message-list {
533
+ .transcriptColumn dees-harness-message-list {
362
534
  flex: 1;
363
535
  min-height: 0;
364
536
  }
@@ -371,6 +543,36 @@ let DeesHarnessChat = (() => {
371
543
  position: relative;
372
544
  z-index: 1;
373
545
  }
546
+
547
+ .composerContextBar {
548
+ min-width: 0;
549
+ display: flex;
550
+ align-items: center;
551
+ gap: var(--dees-spacing-xs);
552
+ padding: 5px var(--dees-spacing-md);
553
+ background: var(--dees-color-bg-secondary);
554
+ color: var(--dees-color-text-muted);
555
+ font-size: var(--dees-font-caption2-size, 10px);
556
+ line-height: 1.3;
557
+ }
558
+
559
+ .composerContextBar dees-icon {
560
+ flex: 0 0 auto;
561
+ color: var(--dees-color-text-secondary);
562
+ }
563
+
564
+ .composerContextLabel {
565
+ flex: 0 0 auto;
566
+ }
567
+
568
+ .composerContextTitle {
569
+ min-width: 0;
570
+ overflow: hidden;
571
+ color: var(--dees-color-text-secondary);
572
+ font-weight: 600;
573
+ text-overflow: ellipsis;
574
+ white-space: nowrap;
575
+ }
374
576
  `,
375
577
  ];
376
578
  // ---------------------------------------------------------------- methods
@@ -404,6 +606,14 @@ let DeesHarnessChat = (() => {
404
606
  }
405
607
  return [];
406
608
  }
609
+ get hasSessionSidebar() {
610
+ if (!this.showSessionSidebar)
611
+ return false;
612
+ return ((this.showTodosPanel && this.effectiveTodos.length > 0)
613
+ || Object.values(this.sessionMetrics).some((value) => value !== undefined)
614
+ || this.scratchpad !== undefined
615
+ || this.sessionIntelligenceEnabled);
616
+ }
407
617
  get listElement() {
408
618
  const element = this.shadowRoot?.querySelector('dees-harness-message-list');
409
619
  return element instanceof DeesHarnessMessageList ? element : undefined;
@@ -412,25 +622,110 @@ let DeesHarnessChat = (() => {
412
622
  const element = this.shadowRoot?.querySelector('dees-harness-composer');
413
623
  return element instanceof DeesHarnessComposer ? element : undefined;
414
624
  }
625
+ toggleSessionSidebar = (__runInitializers(this, _toolRegistry_extraInitializers), () => {
626
+ if (this.sessionSidebarOpen) {
627
+ void this.closeSessionSidebar();
628
+ return;
629
+ }
630
+ void this.openSessionSidebar();
631
+ });
632
+ async openSessionSidebar() {
633
+ this.sessionSidebarOpen = true;
634
+ await this.updateComplete;
635
+ const panel = this.shadowRoot?.querySelector('.sessionPanel');
636
+ await new Promise((resolve) => requestAnimationFrame(() => resolve()));
637
+ panel?.focus();
638
+ }
639
+ async closeSessionSidebar() {
640
+ this.sessionSidebarOpen = false;
641
+ await this.updateComplete;
642
+ const toggleButton = this.shadowRoot?.querySelector('.sessionPanelToggle');
643
+ toggleButton?.focus();
644
+ }
415
645
  // ----------------------------------------------------------------- render
416
646
  render() {
417
647
  return html `
418
648
  ${this.showToolbar ? this.renderToolbar() : ''}
419
649
  <div class="chatBody">
420
- <dees-harness-message-list
421
- .messages=${this.messages}
422
- .permissions=${this.permissions}
423
- .permissionsBusy=${this.disabled}
424
- .questions=${this.questions}
425
- .status=${this.status}
426
- .showRoles=${this.showRoles}
427
- .showTimestamps=${this.showTimestamps}
428
- .toolRegistry=${this.toolRegistry}
429
- ></dees-harness-message-list>
430
- ${this.showTodosPanel && this.effectiveTodos.length
650
+ <div class="transcriptColumn">
651
+ <dees-harness-message-list
652
+ .messages=${this.messages}
653
+ .permissions=${this.permissions}
654
+ .permissionsBusy=${this.disabled}
655
+ .questions=${this.questions}
656
+ .status=${this.status}
657
+ .showRoles=${this.showRoles}
658
+ .showTimestamps=${this.showTimestamps}
659
+ .toolRegistry=${this.toolRegistry}
660
+ ></dees-harness-message-list>
661
+ ${this.heading
431
662
  ? html `
432
- <aside class="todosPanel">
433
- <dees-harness-todos heading="Tasks" .todos=${this.effectiveTodos}></dees-harness-todos>
663
+ <div class="composerContextBar" title=${`Replying to ${this.heading}`}>
664
+ <dees-icon icon="lucide:MessageSquare" iconSize="11"></dees-icon>
665
+ <span class="composerContextLabel">Replying to</span>
666
+ <span class="composerContextTitle">${this.heading}</span>
667
+ </div>
668
+ `
669
+ : ''}
670
+ ${this.hasSessionSidebar ? html `
671
+ <button
672
+ class="sessionPanelToggle"
673
+ type="button"
674
+ aria-label="Session details"
675
+ title="Session details"
676
+ aria-expanded=${String(this.sessionSidebarOpen)}
677
+ aria-controls="harness-session-panel"
678
+ @click=${this.toggleSessionSidebar}
679
+ >
680
+ <dees-icon icon="lucide:PanelRight" iconSize="16"></dees-icon>
681
+ </button>
682
+ ` : ''}
683
+ </div>
684
+ ${this.hasSessionSidebar
685
+ ? html `
686
+ <button
687
+ class=${`sessionPanelBackdrop ${this.sessionSidebarOpen ? 'open' : ''}`}
688
+ aria-label="Close session details"
689
+ aria-hidden=${String(!this.sessionSidebarOpen)}
690
+ ?inert=${!this.sessionSidebarOpen}
691
+ tabindex=${this.sessionSidebarOpen ? '0' : '-1'}
692
+ @click=${() => void this.closeSessionSidebar()}
693
+ ></button>
694
+ <aside
695
+ id="harness-session-panel"
696
+ class=${`todosPanel sessionPanel ${this.sessionSidebarOpen ? 'open' : ''}`}
697
+ aria-label="Session details"
698
+ tabindex="-1"
699
+ @keydown=${(event) => {
700
+ if (event.key !== 'Escape')
701
+ return;
702
+ event.preventDefault();
703
+ event.stopPropagation();
704
+ void this.closeSessionSidebar();
705
+ }}
706
+ >
707
+ <dees-button
708
+ class="sessionPanelClose"
709
+ size="icon"
710
+ type="ghost"
711
+ icon="lucide:X"
712
+ text="Close session details"
713
+ title="Close session details"
714
+ @clicked=${() => void this.closeSessionSidebar()}
715
+ ></dees-button>
716
+ <dees-harness-session-sidebar
717
+ .todos=${this.effectiveTodos}
718
+ .showTasks=${this.showTodosPanel}
719
+ .metrics=${this.sessionMetrics}
720
+ .scratchpad=${this.scratchpad}
721
+ .scratchpadBusy=${this.scratchpadBusy}
722
+ .scratchpadError=${this.scratchpadError}
723
+ .intelligenceEnabled=${this.sessionIntelligenceEnabled}
724
+ .intelligenceExchanges=${this.intelligenceExchanges}
725
+ .intelligenceBusy=${this.intelligenceBusy}
726
+ .intelligenceError=${this.intelligenceError}
727
+ .disabled=${this.disabled}
728
+ ></dees-harness-session-sidebar>
434
729
  </aside>
435
730
  `
436
731
  : ''}
@@ -478,12 +773,14 @@ let DeesHarnessChat = (() => {
478
773
  </div>
479
774
  <div class="toolbarActions">
480
775
  <dees-harness-usage compact .usage=${this.usage}></dees-harness-usage>
481
- <dees-button size="sm" type="ghost" title="Conversations" @clicked=${() => this.emit('harness-open-sessions')}>
482
- <dees-icon icon="lucide:History" iconSize="14"></dees-icon>
483
- </dees-button>
484
- <dees-button size="sm" type="ghost" title="New conversation" @clicked=${() => this.emit('harness-new-session')}>
485
- <dees-icon icon="lucide:SquarePen" iconSize="14"></dees-icon>
486
- </dees-button>
776
+ <dees-button
777
+ size="icon"
778
+ type="ghost"
779
+ icon="lucide:PanelLeft"
780
+ text="Toggle chat sidebar"
781
+ title="Toggle chat sidebar"
782
+ @clicked=${() => this.emit('harness-toggle-sidebar')}
783
+ ></dees-button>
487
784
  </div>
488
785
  </div>
489
786
  `;
@@ -491,10 +788,6 @@ let DeesHarnessChat = (() => {
491
788
  emit(name) {
492
789
  this.dispatchEvent(new CustomEvent(name, { detail: {}, bubbles: true, composed: true }));
493
790
  }
494
- constructor() {
495
- super(...arguments);
496
- __runInitializers(this, _toolRegistry_extraInitializers);
497
- }
498
791
  static {
499
792
  __runInitializers(_classThis, _classExtraInitializers);
500
793
  }
@@ -502,4 +795,4 @@ let DeesHarnessChat = (() => {
502
795
  return DeesHarnessChat = _classThis;
503
796
  })();
504
797
  export { DeesHarnessChat };
505
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jaGF0L2RlZXMtaGFybmVzcy1jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFXdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyw4Q0FBOEMsQ0FBQztBQVN0RDs7Ozs7OztHQU9HO0lBRVUsZUFBZTs0QkFEM0IsYUFBYSxDQUFDLG1CQUFtQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OztvQ0FJN0MsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3VDQUc5QixRQUFRLENBQUMsRUFBRSxTQUFT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
798
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jaGF0L2RlZXMtaGFybmVzcy1jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBY3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sNkNBQTZDLENBQUM7QUFDckQsT0FBTyxpRUFBaUUsQ0FBQztBQUN6RSxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyw4Q0FBOEMsQ0FBQztBQVN0RDs7Ozs7O0dBTUc7SUFFVSxlQUFlOzRCQUQzQixhQUFhLENBQUMsbUJBQW1CLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrQkFBbkIsU0FBUSxXQUFXOzs7O29DQUk3QyxRQUFR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