@design.estate/dees-catalog 6.0.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist_bundle/bundle.js +3105 -1500
  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 +2 -0
  4. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +484 -8
  5. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +10 -1
  6. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +3 -1
  7. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +24 -4
  8. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +26 -0
  9. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +398 -94
  10. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.d.ts +32 -0
  11. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.d.ts +1 -0
  12. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.js +31 -0
  13. package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.js +297 -0
  14. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +1 -9
  15. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +10 -1
  16. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +181 -2
  17. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +17 -1
  18. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +480 -36
  19. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +28 -24
  20. package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +5 -1
  21. package/dist_ts_web/elements/00group-harness/harness.helpers.js +66 -1
  22. package/dist_ts_web/elements/00group-harness/index.d.ts +1 -0
  23. package/dist_ts_web/elements/00group-harness/index.js +2 -1
  24. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +33 -2
  25. package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +4 -0
  26. package/dist_ts_web/elements/00group-harness/toolregistry.js +8 -1
  27. package/package.json +2 -2
  28. package/readme.hints.md +16 -1
  29. package/readme.md +41 -9
  30. package/readme.playbook.md +8 -4
  31. package/ts_web/00_commitinfo_data.ts +1 -1
  32. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +490 -7
  33. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +9 -0
  34. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +24 -3
  35. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +397 -84
  36. package/ts_web/elements/00group-harness/dees-harness-overflow-text.demo.ts +31 -0
  37. package/ts_web/elements/00group-harness/dees-harness-overflow-text.ts +236 -0
  38. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +0 -8
  39. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +193 -1
  40. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +484 -34
  41. package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +29 -25
  42. package/ts_web/elements/00group-harness/harness.helpers.ts +68 -1
  43. package/ts_web/elements/00group-harness/index.ts +1 -0
  44. package/ts_web/elements/00group-harness/interfaces.ts +38 -2
  45. package/ts_web/elements/00group-harness/toolregistry.ts +12 -0
@@ -1,6 +1,8 @@
1
1
  import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
- import type { IHarnessIntelligenceExchange, IHarnessScratchpad, IHarnessSessionMetrics, IHarnessTodoItem } from '../interfaces.js';
2
+ import type { IHarnessIntelligenceExchange, IHarnessMessage, IHarnessScratchpad, IHarnessSessionMetrics, IHarnessTodoItem } from '../interfaces.js';
3
+ import { DeesHarnessToolRegistry } from '../toolregistry.js';
3
4
  import '../dees-harness-todos/dees-harness-todos.js';
5
+ import '../dees-harness-overflow-text.js';
4
6
  import '../../00group-button/dees-button/dees-button.js';
5
7
  import '../../00group-utility/dees-icon/dees-icon.js';
6
8
  declare global {
@@ -17,6 +19,9 @@ export declare class DeesHarnessSessionSidebar extends DeesElement {
17
19
  static demoGroups: string[];
18
20
  accessor todos: IHarnessTodoItem[];
19
21
  accessor showTasks: boolean;
22
+ /** Top-level tool messages from the host's currently retained transcript window. */
23
+ accessor toolMessages: IHarnessMessage[];
24
+ accessor toolRegistry: DeesHarnessToolRegistry;
20
25
  accessor metrics: IHarnessSessionMetrics;
21
26
  accessor scratchpad: IHarnessScratchpad | undefined;
22
27
  accessor scratchpadBusy: boolean;
@@ -38,10 +43,14 @@ export declare class DeesHarnessSessionSidebar extends DeesElement {
38
43
  get contextPercentage(): number | undefined;
39
44
  render(): TemplateResult;
40
45
  private get hasMetrics();
46
+ private get toolActivityEntries();
41
47
  private get availableSections();
42
48
  private get defaultExpandedSection();
43
49
  private renderSection;
44
50
  private renderTasks;
51
+ private renderToolActivity;
52
+ private renderActivityGroup;
53
+ private renderActivityEntry;
45
54
  private renderMetrics;
46
55
  private renderScratchpad;
47
56
  private renderIntelligence;
@@ -35,7 +35,10 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
35
35
  import { demoFunc } from './dees-harness-session-sidebar.demo.js';
36
36
  import { DeesElement, html, css, customElement, property, state, cssManager, directives, } from '@design.estate/dees-element';
37
37
  import { themeDefaultStyles } from '../../00theme.js';
38
+ import { harnessEffectiveToolStatus, harnessFormatRelativeTime } from '../harness.helpers.js';
39
+ import { DeesHarnessToolRegistry } from '../toolregistry.js';
38
40
  import '../dees-harness-todos/dees-harness-todos.js';
41
+ import '../dees-harness-overflow-text.js';
39
42
  import '../../00group-button/dees-button/dees-button.js';
40
43
  import '../../00group-utility/dees-icon/dees-icon.js';
41
44
  const { repeat } = directives;
@@ -56,6 +59,12 @@ let DeesHarnessSessionSidebar = (() => {
56
59
  let _showTasks_decorators;
57
60
  let _showTasks_initializers = [];
58
61
  let _showTasks_extraInitializers = [];
62
+ let _toolMessages_decorators;
63
+ let _toolMessages_initializers = [];
64
+ let _toolMessages_extraInitializers = [];
65
+ let _toolRegistry_decorators;
66
+ let _toolRegistry_initializers = [];
67
+ let _toolRegistry_extraInitializers = [];
59
68
  let _metrics_decorators;
60
69
  let _metrics_initializers = [];
61
70
  let _metrics_extraInitializers = [];
@@ -107,6 +116,8 @@ let DeesHarnessSessionSidebar = (() => {
107
116
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
108
117
  _todos_decorators = [property({ attribute: false })];
109
118
  _showTasks_decorators = [property({ type: Boolean })];
119
+ _toolMessages_decorators = [property({ attribute: false })];
120
+ _toolRegistry_decorators = [property({ attribute: false })];
110
121
  _metrics_decorators = [property({ attribute: false })];
111
122
  _scratchpad_decorators = [property({ attribute: false })];
112
123
  _scratchpadBusy_decorators = [property({ type: Boolean })];
@@ -124,6 +135,8 @@ let DeesHarnessSessionSidebar = (() => {
124
135
  _expandedSection_decorators = [state()];
125
136
  __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);
126
137
  __esDecorate(this, null, _showTasks_decorators, { kind: "accessor", name: "showTasks", static: false, private: false, access: { has: obj => "showTasks" in obj, get: obj => obj.showTasks, set: (obj, value) => { obj.showTasks = value; } }, metadata: _metadata }, _showTasks_initializers, _showTasks_extraInitializers);
138
+ __esDecorate(this, null, _toolMessages_decorators, { kind: "accessor", name: "toolMessages", static: false, private: false, access: { has: obj => "toolMessages" in obj, get: obj => obj.toolMessages, set: (obj, value) => { obj.toolMessages = value; } }, metadata: _metadata }, _toolMessages_initializers, _toolMessages_extraInitializers);
139
+ __esDecorate(this, null, _toolRegistry_decorators, { kind: "accessor", name: "toolRegistry", static: false, private: false, access: { has: obj => "toolRegistry" in obj, get: obj => obj.toolRegistry, set: (obj, value) => { obj.toolRegistry = value; } }, metadata: _metadata }, _toolRegistry_initializers, _toolRegistry_extraInitializers);
127
140
  __esDecorate(this, null, _metrics_decorators, { kind: "accessor", name: "metrics", static: false, private: false, access: { has: obj => "metrics" in obj, get: obj => obj.metrics, set: (obj, value) => { obj.metrics = value; } }, metadata: _metadata }, _metrics_initializers, _metrics_extraInitializers);
128
141
  __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);
129
142
  __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);
@@ -151,7 +164,14 @@ let DeesHarnessSessionSidebar = (() => {
151
164
  #showTasks_accessor_storage = (__runInitializers(this, _todos_extraInitializers), __runInitializers(this, _showTasks_initializers, true));
152
165
  get showTasks() { return this.#showTasks_accessor_storage; }
153
166
  set showTasks(value) { this.#showTasks_accessor_storage = value; }
154
- #metrics_accessor_storage = (__runInitializers(this, _showTasks_extraInitializers), __runInitializers(this, _metrics_initializers, {}));
167
+ #toolMessages_accessor_storage = (__runInitializers(this, _showTasks_extraInitializers), __runInitializers(this, _toolMessages_initializers, []));
168
+ /** Top-level tool messages from the host's currently retained transcript window. */
169
+ get toolMessages() { return this.#toolMessages_accessor_storage; }
170
+ set toolMessages(value) { this.#toolMessages_accessor_storage = value; }
171
+ #toolRegistry_accessor_storage = (__runInitializers(this, _toolMessages_extraInitializers), __runInitializers(this, _toolRegistry_initializers, DeesHarnessToolRegistry.default));
172
+ get toolRegistry() { return this.#toolRegistry_accessor_storage; }
173
+ set toolRegistry(value) { this.#toolRegistry_accessor_storage = value; }
174
+ #metrics_accessor_storage = (__runInitializers(this, _toolRegistry_extraInitializers), __runInitializers(this, _metrics_initializers, {}));
155
175
  get metrics() { return this.#metrics_accessor_storage; }
156
176
  set metrics(value) { this.#metrics_accessor_storage = value; }
157
177
  #scratchpad_accessor_storage = (__runInitializers(this, _metrics_extraInitializers), __runInitializers(this, _scratchpad_initializers, undefined));
@@ -414,6 +434,103 @@ let DeesHarnessSessionSidebar = (() => {
414
434
  min-width: 0;
415
435
  }
416
436
 
437
+ .activityList,
438
+ .activityGroup {
439
+ display: grid;
440
+ gap: var(--dees-spacing-sm);
441
+ }
442
+
443
+ .activityGroup + .activityGroup {
444
+ margin-top: var(--dees-spacing-md);
445
+ }
446
+
447
+ .activityGroupTitle {
448
+ color: var(--dees-color-text-muted);
449
+ font-size: var(--dees-font-caption2-size, 10px);
450
+ font-weight: 650;
451
+ letter-spacing: 0.04em;
452
+ text-transform: uppercase;
453
+ }
454
+
455
+ .activityItem {
456
+ display: grid;
457
+ grid-template-columns: 22px minmax(0, 1fr);
458
+ gap: var(--dees-spacing-sm);
459
+ align-items: start;
460
+ min-width: 0;
461
+ padding: var(--dees-spacing-xs) 0;
462
+ }
463
+
464
+ .activityIcon {
465
+ display: grid;
466
+ place-items: center;
467
+ width: 22px;
468
+ height: 22px;
469
+ border-radius: var(--dees-radius-md);
470
+ background: var(--dees-color-fill-secondary);
471
+ color: var(--dees-color-text-secondary);
472
+ }
473
+
474
+ .activityItem.status-running .activityIcon,
475
+ .activityItem.status-pending .activityIcon {
476
+ color: var(--dees-color-accent-primary);
477
+ }
478
+
479
+ .activityItem.status-error .activityIcon {
480
+ color: var(--dees-color-accent-error);
481
+ }
482
+
483
+ .activityCopy {
484
+ min-width: 0;
485
+ }
486
+
487
+ .activityTitleRow,
488
+ .activityMeta {
489
+ display: flex;
490
+ align-items: center;
491
+ gap: var(--dees-spacing-xs);
492
+ min-width: 0;
493
+ }
494
+
495
+ .activityTitle {
496
+ min-width: 0;
497
+ flex: 1;
498
+ color: var(--dees-color-text-primary);
499
+ font-size: var(--dees-font-control-size-sm, 12px);
500
+ font-weight: 600;
501
+ }
502
+
503
+ .activityStatus {
504
+ flex: 0 0 auto;
505
+ color: var(--dees-color-text-muted);
506
+ font-size: var(--dees-font-caption2-size, 10px);
507
+ text-transform: capitalize;
508
+ }
509
+
510
+ .activityItem.status-running .activityStatus,
511
+ .activityItem.status-pending .activityStatus {
512
+ color: var(--dees-color-accent-primary);
513
+ }
514
+
515
+ .activityItem.status-error .activityStatus {
516
+ color: var(--dees-color-text-error);
517
+ }
518
+
519
+ .activitySubtitle {
520
+ display: block;
521
+ width: 100%;
522
+ min-width: 0;
523
+ margin-top: 1px;
524
+ color: var(--dees-color-text-secondary);
525
+ font-size: var(--dees-font-caption2-size, 10px);
526
+ }
527
+
528
+ .activityMeta {
529
+ margin-top: 2px;
530
+ color: var(--dees-color-text-muted);
531
+ font-size: var(--dees-font-caption2-size, 10px);
532
+ }
533
+
417
534
  .metricList {
418
535
  display: grid;
419
536
  gap: 6px;
@@ -605,6 +722,7 @@ let DeesHarnessSessionSidebar = (() => {
605
722
  return html `
606
723
  <div class="sidebar">
607
724
  ${this.showTasks ? this.renderTasks() : ''}
725
+ ${this.toolActivityEntries.length ? this.renderToolActivity() : ''}
608
726
  ${this.hasMetrics ? this.renderMetrics() : ''}
609
727
  ${this.scratchpad ? this.renderScratchpad() : ''}
610
728
  ${this.intelligenceEnabled ? this.renderIntelligence() : ''}
@@ -614,9 +732,21 @@ let DeesHarnessSessionSidebar = (() => {
614
732
  get hasMetrics() {
615
733
  return Object.values(this.metrics).some((value) => value !== undefined);
616
734
  }
735
+ get toolActivityEntries() {
736
+ return this.toolMessages
737
+ .filter((message) => Boolean(message.toolCall))
738
+ .map((message) => ({
739
+ key: JSON.stringify([message.id, message.toolCall.id]),
740
+ call: message.toolCall,
741
+ createdAt: message.createdAt ?? message.toolCall.startedAt,
742
+ status: harnessEffectiveToolStatus(message.toolCall),
743
+ }))
744
+ .sort((left, right) => (right.createdAt ?? 0) - (left.createdAt ?? 0));
745
+ }
617
746
  get availableSections() {
618
747
  return [
619
748
  ...(this.showTasks ? ['tasks'] : []),
749
+ ...(this.toolActivityEntries.length ? ['activity'] : []),
620
750
  ...(this.hasMetrics ? ['metrics'] : []),
621
751
  ...(this.scratchpad ? ['scratchpad'] : []),
622
752
  ...(this.intelligenceEnabled ? ['intelligence'] : []),
@@ -625,6 +755,8 @@ let DeesHarnessSessionSidebar = (() => {
625
755
  get defaultExpandedSection() {
626
756
  if (this.showTasks && this.todos.length > 0)
627
757
  return 'tasks';
758
+ if (this.toolActivityEntries.length)
759
+ return 'activity';
628
760
  if (this.hasMetrics)
629
761
  return 'metrics';
630
762
  if (this.scratchpad)
@@ -666,6 +798,53 @@ let DeesHarnessSessionSidebar = (() => {
666
798
  const completed = this.todos.filter((todo) => todo.status === 'completed').length;
667
799
  return this.renderSection('tasks', 'Tasks', 'lucide:ListChecks', html `<dees-harness-todos .todos=${this.todos} .showProgress=${false}></dees-harness-todos>`, this.todos.length > 0 ? `${completed}/${this.todos.length}` : '');
668
800
  }
801
+ renderToolActivity() {
802
+ const entries = this.toolActivityEntries;
803
+ const active = entries.filter((entry) => entry.status === 'pending' || entry.status === 'running');
804
+ const history = entries.filter((entry) => entry.status === 'completed' || entry.status === 'error');
805
+ const summary = active.length
806
+ ? `${active.length} active · ${history.length} past`
807
+ : `${history.length} past`;
808
+ return this.renderSection('activity', 'Tools & Subagents', 'lucide:Wrench', html `
809
+ <div class="activityList">
810
+ ${active.length ? this.renderActivityGroup('Active', active) : ''}
811
+ ${history.length ? this.renderActivityGroup('History', history) : ''}
812
+ </div>
813
+ `, summary);
814
+ }
815
+ renderActivityGroup(labelArg, entriesArg) {
816
+ return html `
817
+ <section class="activityGroup" aria-label=${labelArg}>
818
+ <div class="activityGroupTitle">${labelArg}</div>
819
+ ${repeat(entriesArg, (entry) => entry.key, (entry) => this.renderActivityEntry(entry))}
820
+ </section>
821
+ `;
822
+ }
823
+ renderActivityEntry(entryArg) {
824
+ const descriptor = this.toolRegistry.resolve(entryArg.call);
825
+ const label = typeof descriptor.label === 'function'
826
+ ? descriptor.label(entryArg.call)
827
+ : descriptor.label;
828
+ const subtitle = descriptor.subtitle?.(entryArg.call) ?? '';
829
+ const relativeTime = harnessFormatRelativeTime(entryArg.createdAt);
830
+ return html `
831
+ <article class=${`activityItem status-${entryArg.status}`} data-tool-call-id=${entryArg.call.id}>
832
+ <span class="activityIcon">
833
+ <dees-icon icon=${descriptor.icon} iconSize="13"></dees-icon>
834
+ </span>
835
+ <span class="activityCopy">
836
+ <span class="activityTitleRow">
837
+ <dees-harness-overflow-text class="activityTitle" title=${label}>${label}</dees-harness-overflow-text>
838
+ <span class="activityStatus">${entryArg.status}</span>
839
+ </span>
840
+ ${subtitle
841
+ ? html `<dees-harness-overflow-text class="activitySubtitle" title=${subtitle}>${subtitle}</dees-harness-overflow-text>`
842
+ : ''}
843
+ ${relativeTime ? html `<span class="activityMeta">${relativeTime}</span>` : ''}
844
+ </span>
845
+ </article>
846
+ `;
847
+ }
669
848
  renderMetrics() {
670
849
  const metrics = this.metrics;
671
850
  const percentage = this.contextPercentage;
@@ -867,4 +1046,4 @@ let DeesHarnessSessionSidebar = (() => {
867
1046
  return DeesHarnessSessionSidebar = _classThis;
868
1047
  })();
869
1048
  export { DeesHarnessSessionSidebar };
870
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1zaWRlYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVN0RCxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyw4Q0FBOEMsQ0FBQztBQUV0RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBRTlCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBU3hGOzs7R0FHRztJQUVVLHlCQUF5Qjs0QkFEckMsYUFBYSxDQUFDLDhCQUE4QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUNBQW5CLFNBQVEsV0FBVzs7OztpQ0FJdkQsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3FDQUc5QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7bUNBRzNCLFFBQVEsQ0FBQyxFQUFFLFNBQVMs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
1049
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1zaWRlYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVl0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLDhDQUE4QyxDQUFDO0FBRXRELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFFOUIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQWdCLEVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFnQnhGOzs7R0FHRztJQUVVLHlCQUF5Qjs0QkFEckMsYUFBYSxDQUFDLDhCQUE4QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUNBQW5CLFNB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
@@ -1,7 +1,8 @@
1
1
  import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
- import type { IHarnessToolCall } from '../interfaces.js';
2
+ import type { IHarnessToolCall, THarnessMessageStreamDelta } from '../interfaces.js';
3
3
  import { DeesHarnessToolRegistry } from '../toolregistry.js';
4
4
  import '../dees-harness-content-blocks/dees-harness-content-blocks.js';
5
+ import '../dees-harness-overflow-text.js';
5
6
  import '../../00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js';
6
7
  import './dees-harness-tool-fullscreen.js';
7
8
  import '../../00group-feedback/dees-badge/dees-badge.js';
@@ -22,8 +23,11 @@ export declare class DeesHarnessToolCard extends DeesElement {
22
23
  static demoGroups: string[];
23
24
  accessor call: IHarnessToolCall;
24
25
  accessor toolRegistry: DeesHarnessToolRegistry;
26
+ /** Nested lists disable this to keep inline subtask streams one level deep. */
27
+ accessor allowSubtaskStreams: boolean;
25
28
  accessor expanded: boolean | undefined;
26
29
  accessor outputExpanded: boolean;
30
+ accessor bodyMounted: boolean;
27
31
  /** Body height cap; taller content scrolls in place and offers fullscreen. */
28
32
  accessor bodyCapPx: number;
29
33
  /** Set on the card inside the fullscreen modal: no cap, no maximize bar. */
@@ -34,12 +38,19 @@ export declare class DeesHarnessToolCard extends DeesElement {
34
38
  private bodyResizeObserver;
35
39
  private observedBodyInner;
36
40
  private fullscreenPortal;
41
+ private disclosureFrame;
42
+ private subtaskResultElement;
43
+ private subtaskResultResizeObserver;
37
44
  static styles: import("@design.estate/dees-element").CSSResult[];
38
45
  private get descriptor();
39
46
  /** call with mcp meta derived from the name when the adapter didn't set it */
40
47
  private get enrichedCall();
41
48
  get isOpen(): boolean;
49
+ private get hasSubtaskPreview();
50
+ private get hasLiveSubtaskPreview();
51
+ private get activeSubtaskPreview();
42
52
  render(): TemplateResult;
53
+ private readonly toggleDisclosure;
43
54
  private readonly openFullscreen;
44
55
  private flashFallbackTimeout;
45
56
  private outcomeScanFallbackTimeout;
@@ -49,8 +60,13 @@ export declare class DeesHarnessToolCard extends DeesElement {
49
60
  private endOutcomeScan;
50
61
  willUpdate(changedProperties: Map<PropertyKey, unknown>): void;
51
62
  updated(changedProperties: Map<PropertyKey, unknown>): void;
63
+ private readonly syncSubtaskResultScroll;
64
+ private connectSubtaskResultScroll;
65
+ connectedCallback(): Promise<void>;
52
66
  disconnectedCallback(): Promise<void>;
53
67
  private renderMcpBadges;
54
68
  private renderBody;
69
+ private renderSubtaskAction;
70
+ applySubtaskDelta(delta: THarnessMessageStreamDelta): boolean;
55
71
  private createHelpers;
56
72
  }