@design.estate/dees-catalog 3.92.0 → 3.94.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 (42) hide show
  1. package/dist_bundle/bundle.js +2125 -1392
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +15 -3
  4. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +159 -18
  5. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +126 -49
  6. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +13 -0
  7. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.js +5 -2
  8. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +118 -3
  9. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +25 -3
  10. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +156 -48
  11. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.d.ts +2 -0
  12. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.js +9 -5
  13. package/dist_ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.d.ts +31 -0
  14. package/dist_ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.demo.d.ts +1 -0
  15. package/dist_ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.demo.js +69 -0
  16. package/dist_ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.js +382 -0
  17. package/dist_ts_web/elements/00group-harness/dees-harness-question-card/index.d.ts +1 -0
  18. package/dist_ts_web/elements/00group-harness/dees-harness-question-card/index.js +2 -0
  19. package/dist_ts_web/elements/00group-harness/index.d.ts +1 -0
  20. package/dist_ts_web/elements/00group-harness/index.js +2 -1
  21. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +33 -0
  22. package/dist_ts_web/elements/00group-harness/toolregistry.js +9 -1
  23. package/dist_ts_web/elements/00theme.js +6 -1
  24. package/dist_watch/bundle.js +2126 -1393
  25. package/dist_watch/bundle.js.map +4 -4
  26. package/package.json +1 -1
  27. package/readme.md +14 -4
  28. package/readme.playbook.md +1 -1
  29. package/ts_web/00_commitinfo_data.ts +1 -1
  30. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +168 -21
  31. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +98 -49
  32. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.ts +4 -1
  33. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +99 -0
  34. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +148 -46
  35. package/ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.ts +9 -4
  36. package/ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.demo.ts +70 -0
  37. package/ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.ts +319 -0
  38. package/ts_web/elements/00group-harness/dees-harness-question-card/index.ts +1 -0
  39. package/ts_web/elements/00group-harness/index.ts +1 -0
  40. package/ts_web/elements/00group-harness/interfaces.ts +36 -0
  41. package/ts_web/elements/00group-harness/toolregistry.ts +8 -0
  42. package/ts_web/elements/00theme.ts +7 -0
@@ -64,6 +64,9 @@ let DeesHarnessComposer = (() => {
64
64
  let _placeholder_decorators;
65
65
  let _placeholder_initializers = [];
66
66
  let _placeholder_extraInitializers = [];
67
+ let _docked_decorators;
68
+ let _docked_initializers = [];
69
+ let _docked_extraInitializers = [];
67
70
  let _disabled_decorators;
68
71
  let _disabled_initializers = [];
69
72
  let _disabled_extraInitializers = [];
@@ -94,6 +97,12 @@ let DeesHarnessComposer = (() => {
94
97
  let _effortOptions_decorators;
95
98
  let _effortOptions_initializers = [];
96
99
  let _effortOptions_extraInitializers = [];
100
+ let _mode_decorators;
101
+ let _mode_initializers = [];
102
+ let _mode_extraInitializers = [];
103
+ let _modeOptions_decorators;
104
+ let _modeOptions_initializers = [];
105
+ let _modeOptions_extraInitializers = [];
97
106
  let _showModelControls_decorators;
98
107
  let _showModelControls_initializers = [];
99
108
  let _showModelControls_extraInitializers = [];
@@ -103,6 +112,7 @@ let DeesHarnessComposer = (() => {
103
112
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
104
113
  _value_decorators = [property()];
105
114
  _placeholder_decorators = [property()];
115
+ _docked_decorators = [property({ type: Boolean, reflect: true })];
106
116
  _disabled_decorators = [property({ type: Boolean })];
107
117
  _busy_decorators = [property({ type: Boolean })];
108
118
  _queuedCount_decorators = [property({ type: Number })];
@@ -113,9 +123,12 @@ let DeesHarnessComposer = (() => {
113
123
  _modelOptions_decorators = [property({ attribute: false })];
114
124
  _reasoningEffort_decorators = [property()];
115
125
  _effortOptions_decorators = [property({ attribute: false })];
126
+ _mode_decorators = [property()];
127
+ _modeOptions_decorators = [property({ attribute: false })];
116
128
  _showModelControls_decorators = [property({ type: Boolean })];
117
129
  __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
118
130
  __esDecorate(this, null, _placeholder_decorators, { kind: "accessor", name: "placeholder", static: false, private: false, access: { has: obj => "placeholder" in obj, get: obj => obj.placeholder, set: (obj, value) => { obj.placeholder = value; } }, metadata: _metadata }, _placeholder_initializers, _placeholder_extraInitializers);
131
+ __esDecorate(this, null, _docked_decorators, { kind: "accessor", name: "docked", static: false, private: false, access: { has: obj => "docked" in obj, get: obj => obj.docked, set: (obj, value) => { obj.docked = value; } }, metadata: _metadata }, _docked_initializers, _docked_extraInitializers);
119
132
  __esDecorate(this, null, _disabled_decorators, { kind: "accessor", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
120
133
  __esDecorate(this, null, _busy_decorators, { kind: "accessor", name: "busy", static: false, private: false, access: { has: obj => "busy" in obj, get: obj => obj.busy, set: (obj, value) => { obj.busy = value; } }, metadata: _metadata }, _busy_initializers, _busy_extraInitializers);
121
134
  __esDecorate(this, null, _queuedCount_decorators, { kind: "accessor", name: "queuedCount", static: false, private: false, access: { has: obj => "queuedCount" in obj, get: obj => obj.queuedCount, set: (obj, value) => { obj.queuedCount = value; } }, metadata: _metadata }, _queuedCount_initializers, _queuedCount_extraInitializers);
@@ -126,6 +139,8 @@ let DeesHarnessComposer = (() => {
126
139
  __esDecorate(this, null, _modelOptions_decorators, { kind: "accessor", name: "modelOptions", static: false, private: false, access: { has: obj => "modelOptions" in obj, get: obj => obj.modelOptions, set: (obj, value) => { obj.modelOptions = value; } }, metadata: _metadata }, _modelOptions_initializers, _modelOptions_extraInitializers);
127
140
  __esDecorate(this, null, _reasoningEffort_decorators, { kind: "accessor", name: "reasoningEffort", static: false, private: false, access: { has: obj => "reasoningEffort" in obj, get: obj => obj.reasoningEffort, set: (obj, value) => { obj.reasoningEffort = value; } }, metadata: _metadata }, _reasoningEffort_initializers, _reasoningEffort_extraInitializers);
128
141
  __esDecorate(this, null, _effortOptions_decorators, { kind: "accessor", name: "effortOptions", static: false, private: false, access: { has: obj => "effortOptions" in obj, get: obj => obj.effortOptions, set: (obj, value) => { obj.effortOptions = value; } }, metadata: _metadata }, _effortOptions_initializers, _effortOptions_extraInitializers);
142
+ __esDecorate(this, null, _mode_decorators, { kind: "accessor", name: "mode", static: false, private: false, access: { has: obj => "mode" in obj, get: obj => obj.mode, set: (obj, value) => { obj.mode = value; } }, metadata: _metadata }, _mode_initializers, _mode_extraInitializers);
143
+ __esDecorate(this, null, _modeOptions_decorators, { kind: "accessor", name: "modeOptions", static: false, private: false, access: { has: obj => "modeOptions" in obj, get: obj => obj.modeOptions, set: (obj, value) => { obj.modeOptions = value; } }, metadata: _metadata }, _modeOptions_initializers, _modeOptions_extraInitializers);
129
144
  __esDecorate(this, null, _showModelControls_decorators, { kind: "accessor", name: "showModelControls", static: false, private: false, access: { has: obj => "showModelControls" in obj, get: obj => obj.showModelControls, set: (obj, value) => { obj.showModelControls = value; } }, metadata: _metadata }, _showModelControls_initializers, _showModelControls_extraInitializers);
130
145
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
131
146
  DeesHarnessComposer = _classThis = _classDescriptor.value;
@@ -139,7 +154,16 @@ let DeesHarnessComposer = (() => {
139
154
  #placeholder_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _placeholder_initializers, 'Message the agent — drop or paste files to attach…'));
140
155
  get placeholder() { return this.#placeholder_accessor_storage; }
141
156
  set placeholder(value) { this.#placeholder_accessor_storage = value; }
142
- #disabled_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _disabled_initializers, false));
157
+ #docked_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _docked_initializers, false));
158
+ /**
159
+ * Docked composers sit flush against their container edge-to-edge (a
160
+ * top border instead of the floating card chrome) — used by
161
+ * dees-harness-chat so the bar meets the transcript and the tasks panel
162
+ * without a gap.
163
+ */
164
+ get docked() { return this.#docked_accessor_storage; }
165
+ set docked(value) { this.#docked_accessor_storage = value; }
166
+ #disabled_accessor_storage = (__runInitializers(this, _docked_extraInitializers), __runInitializers(this, _disabled_initializers, false));
143
167
  get disabled() { return this.#disabled_accessor_storage; }
144
168
  set disabled(value) { this.#disabled_accessor_storage = value; }
145
169
  #busy_accessor_storage = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _busy_initializers, false));
@@ -176,7 +200,17 @@ let DeesHarnessComposer = (() => {
176
200
  #effortOptions_accessor_storage = (__runInitializers(this, _reasoningEffort_extraInitializers), __runInitializers(this, _effortOptions_initializers, []));
177
201
  get effortOptions() { return this.#effortOptions_accessor_storage; }
178
202
  set effortOptions(value) { this.#effortOptions_accessor_storage = value; }
179
- #showModelControls_accessor_storage = (__runInitializers(this, _effortOptions_extraInitializers), __runInitializers(this, _showModelControls_initializers, true));
203
+ #mode_accessor_storage = (__runInitializers(this, _effortOptions_extraInitializers), __runInitializers(this, _mode_initializers, ''));
204
+ /**
205
+ * Agent mode switcher (e.g. Planning / Building). Renders a segmented
206
+ * control when modeOptions is set; emits harness-mode-change.
207
+ */
208
+ get mode() { return this.#mode_accessor_storage; }
209
+ set mode(value) { this.#mode_accessor_storage = value; }
210
+ #modeOptions_accessor_storage = (__runInitializers(this, _mode_extraInitializers), __runInitializers(this, _modeOptions_initializers, []));
211
+ get modeOptions() { return this.#modeOptions_accessor_storage; }
212
+ set modeOptions(value) { this.#modeOptions_accessor_storage = value; }
213
+ #showModelControls_accessor_storage = (__runInitializers(this, _modeOptions_extraInitializers), __runInitializers(this, _showModelControls_initializers, true));
180
214
  get showModelControls() { return this.#showModelControls_accessor_storage; }
181
215
  set showModelControls(value) { this.#showModelControls_accessor_storage = value; }
182
216
  static styles = [
@@ -203,6 +237,19 @@ let DeesHarnessComposer = (() => {
203
237
  box-shadow: 0 0 0 3px var(--dees-color-focus-ring);
204
238
  }
205
239
 
240
+ :host([docked]) .composer {
241
+ border: 0;
242
+ border-top: 1px solid var(--dees-color-border-subtle);
243
+ border-radius: 0;
244
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md) var(--dees-spacing-md);
245
+ box-shadow: var(--dees-shadow-up-sm);
246
+ }
247
+
248
+ :host([docked]) .composer.dragOver {
249
+ border-top-color: var(--dees-color-accent-primary);
250
+ box-shadow: inset 0 3px 0 0 var(--dees-color-focus-ring);
251
+ }
252
+
206
253
  .fileInput {
207
254
  display: none;
208
255
  }
@@ -296,6 +343,44 @@ let DeesHarnessComposer = (() => {
296
343
  gap: var(--dees-spacing-sm);
297
344
  }
298
345
 
346
+ /* segmented mode switcher (Planning / Building) */
347
+ .modeSwitch {
348
+ display: inline-flex;
349
+ flex: 0 0 auto;
350
+ padding: 2px;
351
+ border-radius: var(--dees-radius-md);
352
+ corner-shape: var(--dees-corner-shape);
353
+ background: var(--dees-color-fill-secondary);
354
+ }
355
+
356
+ .modeSwitch button {
357
+ height: calc(var(--dees-control-height-sm) - 4px);
358
+ padding: 0 10px;
359
+ border: 0;
360
+ border-radius: calc(var(--dees-radius-md) - 2px);
361
+ corner-shape: var(--dees-corner-shape);
362
+ background: transparent;
363
+ color: var(--dees-color-text-secondary);
364
+ cursor: pointer;
365
+ font-family: inherit;
366
+ font-size: var(--dees-font-control-size-sm, 12px);
367
+ font-weight: 500;
368
+ transition:
369
+ background var(--dees-transition-fast) var(--dees-ease-standard),
370
+ color var(--dees-transition-fast) var(--dees-ease-standard);
371
+ }
372
+
373
+ .modeSwitch button.active {
374
+ background: var(--dees-color-bg-primary);
375
+ color: var(--dees-color-text-primary);
376
+ box-shadow: var(--dees-shadow-xs);
377
+ }
378
+
379
+ .modeSwitch button:disabled {
380
+ cursor: default;
381
+ opacity: 0.55;
382
+ }
383
+
299
384
  .modelControls {
300
385
  display: flex;
301
386
  gap: var(--dees-spacing-xs);
@@ -368,6 +453,27 @@ let DeesHarnessComposer = (() => {
368
453
  >
369
454
  <dees-icon icon="lucide:Paperclip" iconSize="14"></dees-icon>
370
455
  </dees-button>
456
+ ${this.modeOptions.length
457
+ ? html `
458
+ <div class="modeSwitch" role="radiogroup" aria-label="Agent mode">
459
+ ${this.modeOptions.map((option) => html `
460
+ <button
461
+ type="button"
462
+ role="radio"
463
+ aria-checked=${option === this.mode ? 'true' : 'false'}
464
+ class=${option === this.mode ? 'active' : ''}
465
+ ?disabled=${this.disabled}
466
+ @click=${() => {
467
+ if (this.mode === option)
468
+ return;
469
+ this.mode = option;
470
+ this.emit('harness-mode-change', { mode: option });
471
+ }}
472
+ >${option}</button>
473
+ `)}
474
+ </div>
475
+ `
476
+ : ''}
371
477
  ${this.showModelControls && (this.modelOptions.length || this.effortOptions.length)
372
478
  ? html `
373
479
  <div class="modelControls">
@@ -466,6 +572,15 @@ let DeesHarnessComposer = (() => {
466
572
  if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) {
467
573
  event.preventDefault();
468
574
  this.send();
575
+ return;
576
+ }
577
+ // Shift+Tab cycles the agent mode without leaving the prompt
578
+ if (event.key === 'Tab' && event.shiftKey && this.modeOptions.length) {
579
+ event.preventDefault();
580
+ const currentIndex = this.modeOptions.indexOf(this.mode);
581
+ const nextMode = this.modeOptions[(currentIndex + 1) % this.modeOptions.length];
582
+ this.mode = nextMode;
583
+ this.emit('harness-mode-change', { mode: nextMode });
469
584
  }
470
585
  };
471
586
  autogrow() {
@@ -586,4 +701,4 @@ let DeesHarnessComposer = (() => {
586
701
  return DeesHarnessComposer = _classThis;
587
702
  })();
588
703
  export { DeesHarnessComposer };
589
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3MtY29tcG9zZXIvZGVlcy1oYXJuZXNzLWNvbXBvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLDBCQUEwQixHQUMzQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyxnRUFBZ0UsQ0FBQztBQUN4RSxPQUFPLDhDQUE4QyxDQUFDO0FBVXRELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFnQixFQUFxQixFQUFFLENBQ2hFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFekQ7Ozs7Ozs7Ozs7O0dBV0c7SUFFVSxtQkFBbUI7NEJBRC9CLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQUFuQixTQUFRLFdBQVc7Ozs7aUNBSWpE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
704
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3MtY29tcG9zZXIvZGVlcy1oYXJuZXNzLWNvbXBvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLDBCQUEwQixHQUMzQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyxnRUFBZ0UsQ0FBQztBQUN4RSxPQUFPLDhDQUE4QyxDQUFDO0FBVXRELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFnQixFQUFxQixFQUFFLENBQ2hFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFekQ7Ozs7Ozs7Ozs7O0dBV0c7SUFFVSxtQkFBbUI7NEJBRC9CLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQUFuQixTQUFRLFdBQVc7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
@@ -1,7 +1,9 @@
1
1
  import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
- import type { IHarnessMessage, IHarnessStatus, THarnessStreamDelta } from '../interfaces.js';
2
+ import type { IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessStatus, THarnessStreamDelta } from '../interfaces.js';
3
3
  import { DeesHarnessToolRegistry } from '../toolregistry.js';
4
4
  import '../dees-harness-status/dees-harness-status.js';
5
+ import '../dees-harness-permission-card/dees-harness-permission-card.js';
6
+ import '../dees-harness-question-card/dees-harness-question-card.js';
5
7
  import '../../00group-utility/dees-icon/dees-icon.js';
6
8
  declare global {
7
9
  interface HTMLElementTagNameMap {
@@ -20,6 +22,12 @@ export declare class DeesHarnessMessageList extends DeesElement {
20
22
  static demoGroups: string[];
21
23
  accessor messages: IHarnessMessage[];
22
24
  accessor status: IHarnessStatus;
25
+ /** permission requests interleave chronologically with the messages;
26
+ * answered ones stay visible showing their outcome */
27
+ accessor permissions: IHarnessPermissionRequest[];
28
+ accessor permissionsBusy: boolean;
29
+ /** agent questions interleave like permissions; answered ones persist */
30
+ accessor questions: IHarnessQuestionRequest[];
23
31
  accessor autoFollow: boolean;
24
32
  accessor toolRegistry: DeesHarnessToolRegistry;
25
33
  accessor showRoles: boolean;
@@ -29,6 +37,8 @@ export declare class DeesHarnessMessageList extends DeesElement {
29
37
  accessor showJumpChip: boolean;
30
38
  accessor entryAnimationsEnabled: boolean;
31
39
  static styles: import("@design.estate/dees-element").CSSResult[];
40
+ /** messages and permissions merged chronologically (stable ids as keys) */
41
+ private get timelineItems();
32
42
  render(): TemplateResult;
33
43
  /**
34
44
  * Routes an incremental update to the affected message. Mutates the
@@ -39,9 +49,21 @@ export declare class DeesHarnessMessageList extends DeesElement {
39
49
  private messageElement;
40
50
  private get scrollContainer();
41
51
  get isPinnedToBottom(): boolean;
42
- private followFrame;
43
- private settleTimeout;
52
+ private followUntilTs;
53
+ private lastFollowScrollTop;
54
+ private contentResizeObserver;
55
+ /**
56
+ * One-motion follow: while pinned, content changes open a short follow
57
+ * window (entry animation duration plus margin) and a ResizeObserver on
58
+ * the scroll content re-pins the bottom on every layout change — after
59
+ * layout but before paint, so a growing box and the scroll move together
60
+ * in the same frame. Wheel/touch toward the top, or any external upward
61
+ * scroll (deviation guard), ends the window so it never fights the user.
62
+ */
44
63
  private followAfterContentChange;
64
+ private pinIfFollowing;
65
+ private stopFollowing;
66
+ private handleUserScrollIntent;
45
67
  scrollToBottom(force?: boolean): void;
46
68
  private handleScroll;
47
69
  updated(changedProperties: Map<string, any>): void;