@design.estate/dees-catalog 6.7.0 → 6.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +1153 -193
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +2 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +57 -17
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +92 -6
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +921 -49
- package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.d.ts +5 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.js +42 -7
- package/dist_ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.d.ts +6 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.js +53 -14
- package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.d.ts +2 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.js +13 -3
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +31 -13
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +9 -3
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +6 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +135 -13
- package/dist_ts_web/elements/00group-harness/harness.styles.js +16 -13
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +30 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +2 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.js +7 -1
- package/package.json +2 -2
- package/readme.md +4 -2
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +53 -15
- package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +943 -51
- package/ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.ts +37 -8
- package/ts_web/elements/00group-harness/dees-harness-question-card/dees-harness-question-card.ts +40 -12
- package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.ts +6 -2
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +30 -12
- package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +8 -2
- package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +119 -11
- package/ts_web/elements/00group-harness/harness.styles.ts +15 -12
- package/ts_web/elements/00group-harness/interfaces.ts +34 -0
- package/ts_web/elements/00group-harness/toolregistry.ts +7 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '6.
|
|
6
|
+
version: '6.8.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
-
import type { IHarnessMessage, IHarnessUsage, THarnessMessageStreamDelta } from '../interfaces.js';
|
|
2
|
+
import type { IHarnessMessage, IHarnessMessageViewState, IHarnessUsage, THarnessMessageStreamDelta } from '../interfaces.js';
|
|
3
3
|
import { DeesHarnessToolRegistry } from '../toolregistry.js';
|
|
4
4
|
import '../dees-harness-reasoning/dees-harness-reasoning.js';
|
|
5
5
|
import '../dees-harness-tool-card/dees-harness-tool-card.js';
|
|
@@ -31,6 +31,7 @@ export declare class DeesHarnessMessage extends DeesElement {
|
|
|
31
31
|
* firstUpdated — later property changes must not restart the animation.
|
|
32
32
|
*/
|
|
33
33
|
accessor suppressEntry: boolean;
|
|
34
|
+
accessor viewState: IHarnessMessageViewState | undefined;
|
|
34
35
|
accessor renderedMarkdownHtml: string;
|
|
35
36
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
36
37
|
private markdownParseToken;
|
|
@@ -77,6 +77,9 @@ let DeesHarnessMessage = (() => {
|
|
|
77
77
|
let _suppressEntry_decorators;
|
|
78
78
|
let _suppressEntry_initializers = [];
|
|
79
79
|
let _suppressEntry_extraInitializers = [];
|
|
80
|
+
let _viewState_decorators;
|
|
81
|
+
let _viewState_initializers = [];
|
|
82
|
+
let _viewState_extraInitializers = [];
|
|
80
83
|
let _renderedMarkdownHtml_decorators;
|
|
81
84
|
let _renderedMarkdownHtml_initializers = [];
|
|
82
85
|
let _renderedMarkdownHtml_extraInitializers = [];
|
|
@@ -91,6 +94,7 @@ let DeesHarnessMessage = (() => {
|
|
|
91
94
|
_toolRegistry_decorators = [property({ attribute: false })];
|
|
92
95
|
_allowSubtaskStreams_decorators = [property({ type: Boolean })];
|
|
93
96
|
_suppressEntry_decorators = [property({ attribute: false })];
|
|
97
|
+
_viewState_decorators = [property({ attribute: false })];
|
|
94
98
|
_renderedMarkdownHtml_decorators = [state()];
|
|
95
99
|
__esDecorate(this, null, _message_decorators, { kind: "accessor", name: "message", static: false, private: false, access: { has: obj => "message" in obj, get: obj => obj.message, set: (obj, value) => { obj.message = value; } }, metadata: _metadata }, _message_initializers, _message_extraInitializers);
|
|
96
100
|
__esDecorate(this, null, _showRole_decorators, { kind: "accessor", name: "showRole", static: false, private: false, access: { has: obj => "showRole" in obj, get: obj => obj.showRole, set: (obj, value) => { obj.showRole = value; } }, metadata: _metadata }, _showRole_initializers, _showRole_extraInitializers);
|
|
@@ -99,6 +103,7 @@ let DeesHarnessMessage = (() => {
|
|
|
99
103
|
__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);
|
|
100
104
|
__esDecorate(this, null, _allowSubtaskStreams_decorators, { kind: "accessor", name: "allowSubtaskStreams", static: false, private: false, access: { has: obj => "allowSubtaskStreams" in obj, get: obj => obj.allowSubtaskStreams, set: (obj, value) => { obj.allowSubtaskStreams = value; } }, metadata: _metadata }, _allowSubtaskStreams_initializers, _allowSubtaskStreams_extraInitializers);
|
|
101
105
|
__esDecorate(this, null, _suppressEntry_decorators, { kind: "accessor", name: "suppressEntry", static: false, private: false, access: { has: obj => "suppressEntry" in obj, get: obj => obj.suppressEntry, set: (obj, value) => { obj.suppressEntry = value; } }, metadata: _metadata }, _suppressEntry_initializers, _suppressEntry_extraInitializers);
|
|
106
|
+
__esDecorate(this, null, _viewState_decorators, { kind: "accessor", name: "viewState", static: false, private: false, access: { has: obj => "viewState" in obj, get: obj => obj.viewState, set: (obj, value) => { obj.viewState = value; } }, metadata: _metadata }, _viewState_initializers, _viewState_extraInitializers);
|
|
102
107
|
__esDecorate(this, null, _renderedMarkdownHtml_decorators, { kind: "accessor", name: "renderedMarkdownHtml", static: false, private: false, access: { has: obj => "renderedMarkdownHtml" in obj, get: obj => obj.renderedMarkdownHtml, set: (obj, value) => { obj.renderedMarkdownHtml = value; } }, metadata: _metadata }, _renderedMarkdownHtml_initializers, _renderedMarkdownHtml_extraInitializers);
|
|
103
108
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
104
109
|
DeesHarnessMessage = _classThis = _classDescriptor.value;
|
|
@@ -133,7 +138,10 @@ let DeesHarnessMessage = (() => {
|
|
|
133
138
|
*/
|
|
134
139
|
get suppressEntry() { return this.#suppressEntry_accessor_storage; }
|
|
135
140
|
set suppressEntry(value) { this.#suppressEntry_accessor_storage = value; }
|
|
136
|
-
#
|
|
141
|
+
#viewState_accessor_storage = (__runInitializers(this, _suppressEntry_extraInitializers), __runInitializers(this, _viewState_initializers, undefined));
|
|
142
|
+
get viewState() { return this.#viewState_accessor_storage; }
|
|
143
|
+
set viewState(value) { this.#viewState_accessor_storage = value; }
|
|
144
|
+
#renderedMarkdownHtml_accessor_storage = (__runInitializers(this, _viewState_extraInitializers), __runInitializers(this, _renderedMarkdownHtml_initializers, ''));
|
|
137
145
|
get renderedMarkdownHtml() { return this.#renderedMarkdownHtml_accessor_storage; }
|
|
138
146
|
set renderedMarkdownHtml(value) { this.#renderedMarkdownHtml_accessor_storage = value; }
|
|
139
147
|
static styles = [
|
|
@@ -212,35 +220,43 @@ let DeesHarnessMessage = (() => {
|
|
|
212
220
|
background: transparent;
|
|
213
221
|
}
|
|
214
222
|
|
|
215
|
-
.
|
|
216
|
-
content: '';
|
|
223
|
+
.assistantActivityRail {
|
|
217
224
|
position: absolute;
|
|
218
225
|
inset: 0 auto 0 0;
|
|
219
226
|
width: 1px;
|
|
220
|
-
|
|
227
|
+
overflow: hidden;
|
|
221
228
|
pointer-events: none;
|
|
222
229
|
}
|
|
223
230
|
|
|
224
|
-
.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
231
|
+
.assistantActivityRail::before {
|
|
232
|
+
content: '';
|
|
233
|
+
position: absolute;
|
|
234
|
+
inset: 0 auto auto 0;
|
|
235
|
+
width: 100%;
|
|
236
|
+
height: 250%;
|
|
237
|
+
background: linear-gradient(
|
|
238
|
+
to bottom,
|
|
239
|
+
transparent 40%,
|
|
240
|
+
color-mix(in srgb, var(--dees-color-accent-primary) 85%, transparent) 50%,
|
|
241
|
+
transparent 60%
|
|
242
|
+
);
|
|
243
|
+
transform: translate3d(0, -60%, 0);
|
|
244
|
+
will-change: transform;
|
|
232
245
|
animation: assistantActivityScan 2s linear infinite;
|
|
233
246
|
}
|
|
234
247
|
|
|
235
248
|
@keyframes assistantActivityScan {
|
|
236
|
-
from {
|
|
237
|
-
to {
|
|
249
|
+
from { transform: translate3d(0, -60%, 0); }
|
|
250
|
+
to { transform: translate3d(0, 0, 0); }
|
|
238
251
|
}
|
|
239
252
|
|
|
240
253
|
@media (prefers-reduced-motion: reduce) {
|
|
241
|
-
.
|
|
254
|
+
.assistantActivityRail::before {
|
|
242
255
|
animation: none;
|
|
243
256
|
background: color-mix(in srgb, var(--dees-color-accent-primary) 65%, transparent);
|
|
257
|
+
transform: none;
|
|
258
|
+
height: 100%;
|
|
259
|
+
will-change: auto;
|
|
244
260
|
}
|
|
245
261
|
}
|
|
246
262
|
|
|
@@ -488,12 +504,16 @@ let DeesHarnessMessage = (() => {
|
|
|
488
504
|
.call=${message.toolCall}
|
|
489
505
|
.toolRegistry=${this.toolRegistry}
|
|
490
506
|
.allowSubtaskStreams=${this.allowSubtaskStreams}
|
|
507
|
+
.viewState=${this.viewState}
|
|
491
508
|
></dees-harness-tool-card>
|
|
492
509
|
`;
|
|
493
510
|
}
|
|
494
511
|
const roleClass = `role-${message.role}`;
|
|
495
512
|
return html `
|
|
496
513
|
<div class="message ${roleClass} ${message.streaming ? 'streaming' : ''} ${message.error ? 'has-error' : ''}">
|
|
514
|
+
${message.role === 'assistant' && message.streaming
|
|
515
|
+
? html `<span class="assistantActivityRail" aria-hidden="true"></span>`
|
|
516
|
+
: ''}
|
|
497
517
|
${this.showRole || this.showTimestamp || message.model
|
|
498
518
|
? html `
|
|
499
519
|
<div class="roleRow">
|
|
@@ -517,7 +537,10 @@ let DeesHarnessMessage = (() => {
|
|
|
517
537
|
${message.reasoning?.length
|
|
518
538
|
? html `
|
|
519
539
|
<div class="reasoningStack">
|
|
520
|
-
<dees-harness-reasoning
|
|
540
|
+
<dees-harness-reasoning
|
|
541
|
+
.reasoningParts=${message.reasoning}
|
|
542
|
+
.viewState=${this.viewState}
|
|
543
|
+
></dees-harness-reasoning>
|
|
521
544
|
</div>
|
|
522
545
|
`
|
|
523
546
|
: ''}
|
|
@@ -527,6 +550,7 @@ let DeesHarnessMessage = (() => {
|
|
|
527
550
|
.call=${message.toolCall}
|
|
528
551
|
.toolRegistry=${this.toolRegistry}
|
|
529
552
|
.allowSubtaskStreams=${this.allowSubtaskStreams}
|
|
553
|
+
.viewState=${this.viewState}
|
|
530
554
|
></dees-harness-tool-card>`
|
|
531
555
|
: ''}
|
|
532
556
|
${this.renderText()}
|
|
@@ -601,6 +625,17 @@ let DeesHarnessMessage = (() => {
|
|
|
601
625
|
super.updated(changedProperties);
|
|
602
626
|
if (!this.markdownActive || !this.message.text)
|
|
603
627
|
return;
|
|
628
|
+
if (this.viewState?.markdownText === this.message.text
|
|
629
|
+
&& this.viewState.markdownHtml
|
|
630
|
+
&& this.lastParsedText !== this.message.text) {
|
|
631
|
+
this.lastParsedText = this.message.text;
|
|
632
|
+
this.renderedMarkdownHtml = this.viewState.markdownHtml;
|
|
633
|
+
if (!this.message.streaming) {
|
|
634
|
+
await this.updateComplete;
|
|
635
|
+
await this.highlightCodeFences(this.markdownParseToken);
|
|
636
|
+
}
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
604
639
|
if (this.message.text === this.lastParsedText)
|
|
605
640
|
return;
|
|
606
641
|
if (this.message.streaming) {
|
|
@@ -627,6 +662,10 @@ let DeesHarnessMessage = (() => {
|
|
|
627
662
|
return;
|
|
628
663
|
this.lastParsedText = textAtRequest;
|
|
629
664
|
this.renderedMarkdownHtml = htmlResult;
|
|
665
|
+
if (this.viewState) {
|
|
666
|
+
this.viewState.markdownText = textAtRequest;
|
|
667
|
+
this.viewState.markdownHtml = htmlResult;
|
|
668
|
+
}
|
|
630
669
|
if (!this.message.streaming) {
|
|
631
670
|
await this.updateComplete;
|
|
632
671
|
await this.highlightCodeFences(token);
|
|
@@ -660,6 +699,7 @@ let DeesHarnessMessage = (() => {
|
|
|
660
699
|
}
|
|
661
700
|
}
|
|
662
701
|
async disconnectedCallback() {
|
|
702
|
+
this.markdownParseToken += 1;
|
|
663
703
|
if (this.markdownThrottleTimeout) {
|
|
664
704
|
clearTimeout(this.markdownThrottleTimeout);
|
|
665
705
|
this.markdownThrottleTimeout = null;
|
|
@@ -673,4 +713,4 @@ let DeesHarnessMessage = (() => {
|
|
|
673
713
|
return DeesHarnessMessage = _classThis;
|
|
674
714
|
})();
|
|
675
715
|
export { DeesHarnessMessage };
|
|
676
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLW1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1tZXNzYWdlL2RlZXMtaGFybmVzcy1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVEzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8scURBQXFELENBQUM7QUFDN0QsT0FBTyxxREFBcUQsQ0FBQztBQUM3RCxPQUFPLDhDQUE4QyxDQUFDO0FBUXRELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBRXBDOzs7OztHQUtHO0lBRVUsa0JBQWtCOzRCQUQ5QixhQUFhLENBQUMsc0JBQXNCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FBbkIsU0FBUSxXQUFXOzs7O21DQUlo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
|
|
716
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLW1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1tZXNzYWdlL2RlZXMtaGFybmVzcy1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8scURBQXFELENBQUM7QUFDN0QsT0FBTyxxREFBcUQsQ0FBQztBQUM3RCxPQUFPLDhDQUE4QyxDQUFDO0FBUXRELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBRXBDOzs7OztHQUtHO0lBRVUsa0JBQWtCOzRCQUQ5QixhQUFhLENBQUMsc0JBQXNCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FBbkIsU0FBUSxXQUFXOzs7O21D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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
-
import type { IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessStatus, THarnessStreamDelta } from '../interfaces.js';
|
|
2
|
+
import type { IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessStatus, IHarnessTranscriptViewState, THarnessStreamDelta } from '../interfaces.js';
|
|
3
3
|
import { DeesHarnessToolRegistry } from '../toolregistry.js';
|
|
4
4
|
import '../dees-harness-status/dees-harness-status.js';
|
|
5
5
|
import '../dees-harness-permission-card/dees-harness-permission-card.js';
|
|
@@ -11,11 +11,10 @@ declare global {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* Scrollable, streaming-safe message log.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* "jump to latest" chip instead of yanking the scroll position.
|
|
14
|
+
* Scrollable, streaming-safe message log. Short transcripts keep stable keyed
|
|
15
|
+
* DOM; long transcripts mount a bounded, measured window and retain row state
|
|
16
|
+
* by id. `applyDelta()` targets a mounted row or updates its offscreen model.
|
|
17
|
+
* Auto-follow stays at the bottom until the user intentionally scrolls away.
|
|
19
18
|
*/
|
|
20
19
|
export declare class DeesHarnessMessageList extends DeesElement {
|
|
21
20
|
static demo: () => TemplateResult<1>;
|
|
@@ -32,6 +31,7 @@ export declare class DeesHarnessMessageList extends DeesElement {
|
|
|
32
31
|
accessor hideScrollbar: boolean;
|
|
33
32
|
accessor fadeScrollEdges: boolean;
|
|
34
33
|
accessor toolRegistry: DeesHarnessToolRegistry;
|
|
34
|
+
accessor viewState: IHarnessTranscriptViewState | undefined;
|
|
35
35
|
/** Nested transcripts set this false to prevent recursive inline streams. */
|
|
36
36
|
accessor allowSubtaskStreams: boolean;
|
|
37
37
|
accessor showRoles: boolean;
|
|
@@ -45,14 +45,64 @@ export declare class DeesHarnessMessageList extends DeesElement {
|
|
|
45
45
|
private readonly toolGroupIdByMessageId;
|
|
46
46
|
private nextToolGroupId;
|
|
47
47
|
private timelineRenderItems;
|
|
48
|
+
private timelineRegistryRevision;
|
|
49
|
+
private readonly knownContentKeys;
|
|
50
|
+
private currentNewContentKeys;
|
|
51
|
+
private readonly localViewState;
|
|
52
|
+
private readonly measuredVirtualHeights;
|
|
53
|
+
private timelineIndexByKey;
|
|
54
|
+
private virtualOffsets;
|
|
55
|
+
private virtualTotalHeight;
|
|
56
|
+
private virtualStartIndex;
|
|
57
|
+
private virtualEndIndex;
|
|
58
|
+
private retainedVirtualKeys;
|
|
59
|
+
private selectionGestureKeys;
|
|
60
|
+
private selectionGestureActive;
|
|
61
|
+
private selectionGestureStartOwner;
|
|
62
|
+
private selectionGestureCrossesOwners;
|
|
63
|
+
private selectionGestureSnapshot;
|
|
64
|
+
private explicitRetainedVirtualKey;
|
|
65
|
+
private virtualRowResizeObserver;
|
|
66
|
+
private virtualViewportResizeObserver;
|
|
67
|
+
private virtualMeasureFrame;
|
|
68
|
+
private virtualRangeFrame;
|
|
69
|
+
private lastVirtualViewportWidth;
|
|
70
|
+
private pendingVirtualAnchor;
|
|
71
|
+
private pendingFullAnchor;
|
|
72
|
+
private measurementAnchor;
|
|
73
|
+
private pendingVirtualRepin;
|
|
74
|
+
private virtualizationEnabled;
|
|
75
|
+
private virtualizationEnablePending;
|
|
76
|
+
private virtualizationDisablePending;
|
|
77
|
+
private virtualizationActivationFrame;
|
|
78
|
+
private selectionChangeListening;
|
|
48
79
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
49
80
|
/** Messages and requests merged chronologically (stable ids as keys). */
|
|
50
81
|
private get timelineItems();
|
|
51
82
|
private buildTimelineRenderItems;
|
|
52
83
|
willUpdate(changedProperties: Map<PropertyKey, unknown>): void;
|
|
53
84
|
private appendToolRun;
|
|
85
|
+
private rebuildTimeline;
|
|
86
|
+
private pruneViewState;
|
|
87
|
+
private clearTranscriptViewState;
|
|
88
|
+
private syncSubtaskViewState;
|
|
89
|
+
private get virtualizationActive();
|
|
90
|
+
private estimatedVirtualHeight;
|
|
91
|
+
private recomputeVirtualOffsets;
|
|
92
|
+
private setInitialVirtualRange;
|
|
93
|
+
private setVirtualRangeAround;
|
|
94
|
+
private captureFullTimelineMeasurements;
|
|
95
|
+
private captureCurrentAnchor;
|
|
54
96
|
render(): TemplateResult;
|
|
97
|
+
private renderFullTimeline;
|
|
98
|
+
private renderVirtualTimeline;
|
|
99
|
+
private virtualRenderedIndexes;
|
|
100
|
+
private renderTimelineItem;
|
|
55
101
|
private renderMessage;
|
|
102
|
+
private messageViewState;
|
|
103
|
+
private permissionViewState;
|
|
104
|
+
private questionViewState;
|
|
105
|
+
private get effectiveViewState();
|
|
56
106
|
private renderToolGroup;
|
|
57
107
|
/**
|
|
58
108
|
* Routes an incremental update to the affected message. Mutates the
|
|
@@ -77,10 +127,46 @@ export declare class DeesHarnessMessageList extends DeesElement {
|
|
|
77
127
|
private handleUserScrollIntent;
|
|
78
128
|
scrollToBottom(force?: boolean): void;
|
|
79
129
|
private handleScroll;
|
|
130
|
+
private schedulePendingVirtualizationActivation;
|
|
131
|
+
private readonly handleSelectionChange;
|
|
132
|
+
private readonly handlePointerDown;
|
|
133
|
+
private readonly handlePointerUp;
|
|
134
|
+
private readonly handlePointerCancel;
|
|
135
|
+
private readonly handleProtectedStateChange;
|
|
136
|
+
private connectSelectionChangeListener;
|
|
137
|
+
private disconnectSelectionChangeListener;
|
|
80
138
|
updated(changedProperties: Map<string, any>): void;
|
|
81
139
|
firstUpdated(changedProperties: Map<string, any>): void;
|
|
82
140
|
connectedCallback(): Promise<void>;
|
|
83
141
|
private connectContentResizeObserver;
|
|
142
|
+
private connectVirtualObservers;
|
|
143
|
+
private scheduleVirtualMeasurements;
|
|
144
|
+
private measureVirtualRows;
|
|
145
|
+
private captureVirtualAnchor;
|
|
146
|
+
private captureVirtualMetricAnchor;
|
|
147
|
+
private captureVirtualOffsetAnchorAt;
|
|
148
|
+
private restoreVirtualAnchor;
|
|
149
|
+
private restoreFullAnchor;
|
|
150
|
+
private virtualLocalScrollTop;
|
|
151
|
+
private virtualIndexAtOffset;
|
|
152
|
+
private scheduleVirtualRangeUpdate;
|
|
153
|
+
private updateVirtualRange;
|
|
154
|
+
private activeVirtualKeys;
|
|
155
|
+
private activeTimelineKey;
|
|
156
|
+
private activeFocusKey;
|
|
157
|
+
private activeSelectionKeys;
|
|
158
|
+
private mountedShadowRoots;
|
|
159
|
+
private timelineKeyForNode;
|
|
160
|
+
private timelineKeyForEvent;
|
|
161
|
+
private selectionOwnerForEvent;
|
|
162
|
+
private get hasCrossShadowSelectionFallback();
|
|
163
|
+
private captureSelectionSnapshot;
|
|
164
|
+
private selectionMatchesGestureSnapshot;
|
|
165
|
+
private clearSelectionGesture;
|
|
166
|
+
private readonly handleCardRetention;
|
|
167
|
+
private ownedVirtualRow;
|
|
168
|
+
private ownedTimelineElement;
|
|
169
|
+
private disconnectVirtualObservers;
|
|
84
170
|
private repinAfterContentGrowth;
|
|
85
171
|
private handleContentBlockSize;
|
|
86
172
|
private syncScrollEdgeFades;
|