@design.estate/dees-catalog 6.1.0 → 6.3.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 +3161 -1498
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +5 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +484 -8
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +33 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +6 -4
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.js +7 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +67 -6
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +3 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +24 -4
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +26 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +398 -94
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.d.ts +32 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.js +31 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.js +297 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +1 -9
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +10 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +181 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +17 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +476 -36
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +23 -20
- package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +5 -1
- package/dist_ts_web/elements/00group-harness/harness.helpers.js +66 -1
- package/dist_ts_web/elements/00group-harness/index.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/index.js +2 -1
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +39 -2
- package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +4 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.js +8 -1
- package/package.json +2 -2
- package/readme.hints.md +16 -1
- package/readme.md +48 -11
- package/readme.playbook.md +8 -4
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +490 -7
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +22 -0
- package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.ts +6 -0
- package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +64 -5
- package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +24 -3
- package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +397 -84
- package/ts_web/elements/00group-harness/dees-harness-overflow-text.demo.ts +31 -0
- package/ts_web/elements/00group-harness/dees-harness-overflow-text.ts +236 -0
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +0 -8
- package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +193 -1
- package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +480 -34
- package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +24 -21
- package/ts_web/elements/00group-harness/harness.helpers.ts +68 -1
- package/ts_web/elements/00group-harness/index.ts +1 -0
- package/ts_web/elements/00group-harness/interfaces.ts +46 -2
- package/ts_web/elements/00group-harness/toolregistry.ts +12 -0
|
@@ -9,7 +9,11 @@ import {
|
|
|
9
9
|
cssManager,
|
|
10
10
|
} from '@design.estate/dees-element';
|
|
11
11
|
import { themeDefaultStyles } from '../../00theme.js';
|
|
12
|
-
import type {
|
|
12
|
+
import type {
|
|
13
|
+
IHarnessAttachment,
|
|
14
|
+
IHarnessComposerOption,
|
|
15
|
+
IHarnessComposerSendDetail,
|
|
16
|
+
} from '../interfaces.js';
|
|
13
17
|
import {
|
|
14
18
|
harnessFileToBase64,
|
|
15
19
|
harnessFormatBytes,
|
|
@@ -33,16 +37,19 @@ type TDropdownOption = { option: string; key: string };
|
|
|
33
37
|
const toDropdownOptions = (values: string[]): TDropdownOption[] =>
|
|
34
38
|
values.map((value) => ({ option: value, key: value }));
|
|
35
39
|
|
|
40
|
+
const toLabeledDropdownOptions = (values: IHarnessComposerOption[]): TDropdownOption[] =>
|
|
41
|
+
values.map((value) => ({ option: value.label, key: value.value }));
|
|
42
|
+
|
|
36
43
|
/**
|
|
37
44
|
* Prompt composer: autogrow textarea, attachments (picker / paste /
|
|
38
|
-
* drag-drop with per-file and total size limits), optional model
|
|
39
|
-
* reasoning-effort dropdowns. Cmd/Ctrl+Enter sends. While busy, Stop is an
|
|
45
|
+
* drag-drop with per-file and total size limits), optional account, model,
|
|
46
|
+
* and reasoning-effort dropdowns. Cmd/Ctrl+Enter sends. While busy, Stop is an
|
|
40
47
|
* additional button and Send stays available for queueing; an empty prompt
|
|
41
48
|
* with queued messages offers "Steer now".
|
|
42
49
|
*
|
|
43
50
|
* Controlled component: `value` and `attachments` are owned by the host;
|
|
44
51
|
* the composer emits `harness-input`, `harness-attachments-change`,
|
|
45
|
-
* `harness-attachment-error`, `harness-model-change`, `harness-send`,
|
|
52
|
+
* `harness-attachment-error`, `harness-account-change`, `harness-model-change`, `harness-send`,
|
|
46
53
|
* `harness-steer`, and `harness-abort` (all bubbling + composed).
|
|
47
54
|
*/
|
|
48
55
|
@customElement('dees-harness-composer')
|
|
@@ -90,6 +97,12 @@ export class DeesHarnessComposer extends DeesElement {
|
|
|
90
97
|
@property({ type: Number })
|
|
91
98
|
accessor maxTotalAttachmentBytes: number = harnessMaxTotalAttachmentBytes;
|
|
92
99
|
|
|
100
|
+
@property()
|
|
101
|
+
accessor account: string = '';
|
|
102
|
+
|
|
103
|
+
@property({ attribute: false })
|
|
104
|
+
accessor accountOptions: IHarnessComposerOption[] = [];
|
|
105
|
+
|
|
93
106
|
@property()
|
|
94
107
|
accessor model: string = '';
|
|
95
108
|
|
|
@@ -122,6 +135,7 @@ export class DeesHarnessComposer extends DeesElement {
|
|
|
122
135
|
:host {
|
|
123
136
|
display: block;
|
|
124
137
|
font-family: var(--dees-font-family);
|
|
138
|
+
container-type: inline-size;
|
|
125
139
|
}
|
|
126
140
|
|
|
127
141
|
.composer {
|
|
@@ -296,6 +310,12 @@ export class DeesHarnessComposer extends DeesElement {
|
|
|
296
310
|
margin: 0;
|
|
297
311
|
}
|
|
298
312
|
|
|
313
|
+
.accountSelect {
|
|
314
|
+
flex: 0 1 180px;
|
|
315
|
+
width: 180px;
|
|
316
|
+
min-width: 120px;
|
|
317
|
+
}
|
|
318
|
+
|
|
299
319
|
/* Model identifiers are provider-qualified ("anthropic/claude-opus-5"),
|
|
300
320
|
so the control grows into the free space instead of truncating,
|
|
301
321
|
while still shrinking on narrow hosts. */
|
|
@@ -313,6 +333,25 @@ export class DeesHarnessComposer extends DeesElement {
|
|
|
313
333
|
.spacer {
|
|
314
334
|
flex: 1;
|
|
315
335
|
}
|
|
336
|
+
|
|
337
|
+
@container (max-width: 760px) {
|
|
338
|
+
.controlsRow {
|
|
339
|
+
flex-wrap: wrap;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.modelControls {
|
|
343
|
+
order: 3;
|
|
344
|
+
flex: 1 0 100%;
|
|
345
|
+
flex-wrap: wrap;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
.accountSelect,
|
|
349
|
+
.modelSelect {
|
|
350
|
+
flex: 1 1 140px;
|
|
351
|
+
width: auto;
|
|
352
|
+
min-width: 0;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
316
355
|
`,
|
|
317
356
|
];
|
|
318
357
|
|
|
@@ -386,9 +425,28 @@ export class DeesHarnessComposer extends DeesElement {
|
|
|
386
425
|
</div>
|
|
387
426
|
`
|
|
388
427
|
: ''}
|
|
389
|
-
${this.showModelControls && (
|
|
428
|
+
${this.showModelControls && (
|
|
429
|
+
this.accountOptions.length || this.modelOptions.length || this.effortOptions.length
|
|
430
|
+
)
|
|
390
431
|
? html`
|
|
391
432
|
<div class="modelControls">
|
|
433
|
+
${this.accountOptions.length
|
|
434
|
+
? html`
|
|
435
|
+
<dees-input-dropdown
|
|
436
|
+
class="accountSelect"
|
|
437
|
+
.options=${toLabeledDropdownOptions(this.accountOptions)}
|
|
438
|
+
.selectedOption=${this.account
|
|
439
|
+
? toLabeledDropdownOptions(this.accountOptions)
|
|
440
|
+
.find((option) => option.key === this.account) ?? null
|
|
441
|
+
: null}
|
|
442
|
+
.disabled=${this.disabled}
|
|
443
|
+
@selectedOption=${(event: CustomEvent<TDropdownOption>) => {
|
|
444
|
+
this.account = event.detail?.key ?? this.account;
|
|
445
|
+
this.emit('harness-account-change', { account: this.account });
|
|
446
|
+
}}
|
|
447
|
+
></dees-input-dropdown>
|
|
448
|
+
`
|
|
449
|
+
: ''}
|
|
392
450
|
${this.modelOptions.length
|
|
393
451
|
? html`
|
|
394
452
|
<dees-input-dropdown
|
|
@@ -589,6 +647,7 @@ export class DeesHarnessComposer extends DeesElement {
|
|
|
589
647
|
const detail: IHarnessComposerSendDetail = {
|
|
590
648
|
text: this.value,
|
|
591
649
|
attachments: this.attachments,
|
|
650
|
+
account: this.account || undefined,
|
|
592
651
|
model: this.model || undefined,
|
|
593
652
|
reasoningEffort: this.reasoningEffort || undefined,
|
|
594
653
|
};
|
|
@@ -13,7 +13,12 @@ import {
|
|
|
13
13
|
import { themeDefaultStyles } from '../../00theme.js';
|
|
14
14
|
import { syntaxPaletteStyles, syntaxScopeStyles } from '../../00syntax.js';
|
|
15
15
|
import type { HLJSApi } from 'highlight.js';
|
|
16
|
-
import type {
|
|
16
|
+
import type {
|
|
17
|
+
IHarnessAttachment,
|
|
18
|
+
IHarnessMessage,
|
|
19
|
+
IHarnessUsage,
|
|
20
|
+
THarnessMessageStreamDelta,
|
|
21
|
+
} from '../interfaces.js';
|
|
17
22
|
import { DeesHarnessToolRegistry } from '../toolregistry.js';
|
|
18
23
|
import { HarnessMarkdown, markdownStyles } from '../harness.markdown.js';
|
|
19
24
|
import { harnessFormatBytes, harnessFormatClockTime } from '../harness.helpers.js';
|
|
@@ -57,6 +62,9 @@ export class DeesHarnessMessage extends DeesElement {
|
|
|
57
62
|
@property({ attribute: false })
|
|
58
63
|
accessor toolRegistry: DeesHarnessToolRegistry = DeesHarnessToolRegistry.default;
|
|
59
64
|
|
|
65
|
+
@property({ type: Boolean })
|
|
66
|
+
accessor allowSubtaskStreams: boolean = true;
|
|
67
|
+
|
|
60
68
|
/**
|
|
61
69
|
* When true at first render, the entry animation is skipped permanently
|
|
62
70
|
* for this element (initial-batch rendering). Captured once in
|
|
@@ -406,6 +414,11 @@ export class DeesHarnessMessage extends DeesElement {
|
|
|
406
414
|
this.requestUpdate();
|
|
407
415
|
}
|
|
408
416
|
|
|
417
|
+
public applySubtaskDelta(delta: THarnessMessageStreamDelta): boolean {
|
|
418
|
+
const card = this.shadowRoot?.querySelector('dees-harness-tool-card');
|
|
419
|
+
return card?.applySubtaskDelta(delta) ?? false;
|
|
420
|
+
}
|
|
421
|
+
|
|
409
422
|
// ------------------------------------------------------------------ render
|
|
410
423
|
|
|
411
424
|
public render(): TemplateResult {
|
|
@@ -421,7 +434,11 @@ export class DeesHarnessMessage extends DeesElement {
|
|
|
421
434
|
&& !message.attachments?.length
|
|
422
435
|
) {
|
|
423
436
|
return html`
|
|
424
|
-
<dees-harness-tool-card
|
|
437
|
+
<dees-harness-tool-card
|
|
438
|
+
.call=${message.toolCall}
|
|
439
|
+
.toolRegistry=${this.toolRegistry}
|
|
440
|
+
.allowSubtaskStreams=${this.allowSubtaskStreams}
|
|
441
|
+
></dees-harness-tool-card>
|
|
425
442
|
`;
|
|
426
443
|
}
|
|
427
444
|
const roleClass = `role-${message.role}`;
|
|
@@ -456,7 +473,11 @@ export class DeesHarnessMessage extends DeesElement {
|
|
|
456
473
|
: ''}
|
|
457
474
|
${message.attachments?.length ? this.renderAttachments(message.attachments) : ''}
|
|
458
475
|
${message.toolCall
|
|
459
|
-
? html`<dees-harness-tool-card
|
|
476
|
+
? html`<dees-harness-tool-card
|
|
477
|
+
.call=${message.toolCall}
|
|
478
|
+
.toolRegistry=${this.toolRegistry}
|
|
479
|
+
.allowSubtaskStreams=${this.allowSubtaskStreams}
|
|
480
|
+
></dees-harness-tool-card>`
|
|
460
481
|
: ''}
|
|
461
482
|
${this.renderText()}
|
|
462
483
|
${message.error ? html`<div class="errorText">${message.error}</div>` : ''}
|