@design.estate/dees-catalog 11.0.0 → 11.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.
- package/dist_bundle/bundle.js +114 -17
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +46 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +19 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.js +9 -7
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +14 -5
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +19 -1
- package/dist_ts_web/elements/00group-harness/harness.helpers.js +4 -2
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +4 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.js +10 -6
- package/package.json +1 -1
- package/readme.md +4 -4
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +45 -0
- package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +18 -1
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.ts +8 -6
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +15 -4
- package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +18 -0
- package/ts_web/elements/00group-harness/harness.helpers.ts +3 -1
- package/ts_web/elements/00group-harness/interfaces.ts +4 -0
- package/ts_web/elements/00group-harness/toolregistry.ts +9 -5
package/dist_bundle/bundle.js
CHANGED
|
@@ -168881,7 +168881,7 @@ var harnessTerminalResultSummary = /* @__PURE__ */ __name((callArg) => {
|
|
|
168881
168881
|
const combined = `${stdout}${stdout && stderr ? "\n" : ""}${stderr}`;
|
|
168882
168882
|
const lineCount = combined ? harnessStripAnsi(combined).split("\n").filter((line) => line.trim()).length : 0;
|
|
168883
168883
|
if (lineCount > 0) parts.push(`${lineCount} ${lineCount === 1 ? "line" : "lines"}`);
|
|
168884
|
-
else
|
|
168884
|
+
else parts.push("no output");
|
|
168885
168885
|
const lastLine = harnessLastMeaningfulLine(stderr) || harnessLastMeaningfulLine(stdout);
|
|
168886
168886
|
const prefix = parts.join(" \xB7 ");
|
|
168887
168887
|
if (!lastLine) return prefix;
|
|
@@ -168925,12 +168925,16 @@ var defaultDescriptors = [
|
|
|
168925
168925
|
defaultExpanded: true,
|
|
168926
168926
|
layout: "full-row",
|
|
168927
168927
|
/*
|
|
168928
|
-
*
|
|
168929
|
-
*
|
|
168930
|
-
*
|
|
168931
|
-
*
|
|
168928
|
+
* A finished command collapses unless it reports a failure. A missing exit code is not a
|
|
168929
|
+
* failure — most harnesses never send one — so requiring proof of success kept nearly every
|
|
168930
|
+
* terminal card open and left whole transcripts expanded. A non-zero exit keeps its output on
|
|
168931
|
+
* screen; an error or a stopped command never reaches this rule, because the card keeps those
|
|
168932
|
+
* open on status alone. The user's own expand or collapse still wins over all of it.
|
|
168932
168933
|
*/
|
|
168933
|
-
collapseWhenFinished: /* @__PURE__ */ __name((call) =>
|
|
168934
|
+
collapseWhenFinished: /* @__PURE__ */ __name((call) => {
|
|
168935
|
+
const { exitCode: exitCode3 } = harnessTerminalOutcome(call);
|
|
168936
|
+
return exitCode3 === void 0 || exitCode3 === 0;
|
|
168937
|
+
}, "collapseWhenFinished"),
|
|
168934
168938
|
summary: harnessTerminalResultSummary
|
|
168935
168939
|
},
|
|
168936
168940
|
{
|
|
@@ -169790,6 +169794,51 @@ var toolShowcase = /* @__PURE__ */ __name(() => {
|
|
|
169790
169794
|
startedAt: now3 - 155e3,
|
|
169791
169795
|
finishedAt: now3 - 152e3
|
|
169792
169796
|
}
|
|
169797
|
+
},
|
|
169798
|
+
{
|
|
169799
|
+
id: "demo-t4",
|
|
169800
|
+
role: "assistant",
|
|
169801
|
+
text: "Re-ran the suite to confirm the cache key fix.",
|
|
169802
|
+
createdAt: now3 - 14e4
|
|
169803
|
+
},
|
|
169804
|
+
// A finished command that never reported an exit code: it collapses like any other clean
|
|
169805
|
+
// finish, alone in its row, so it shows the collapsed reading measure.
|
|
169806
|
+
{
|
|
169807
|
+
id: "demo-t5",
|
|
169808
|
+
role: "tool",
|
|
169809
|
+
text: "",
|
|
169810
|
+
createdAt: now3 - 13e4,
|
|
169811
|
+
toolCall: {
|
|
169812
|
+
id: "call-5",
|
|
169813
|
+
name: "run_command",
|
|
169814
|
+
status: "completed",
|
|
169815
|
+
input: { command: "pnpm test --filter sitemap", cwd: "/srv/app" },
|
|
169816
|
+
output: "14 tests passed\n0 failed",
|
|
169817
|
+
startedAt: now3 - 136e3,
|
|
169818
|
+
finishedAt: now3 - 131e3
|
|
169819
|
+
}
|
|
169820
|
+
},
|
|
169821
|
+
{
|
|
169822
|
+
id: "demo-t6",
|
|
169823
|
+
role: "assistant",
|
|
169824
|
+
text: "The lint run is still failing though.",
|
|
169825
|
+
createdAt: now3 - 12e4
|
|
169826
|
+
},
|
|
169827
|
+
// The other half of the rule: a non-zero exit keeps its output on screen and the pane with it.
|
|
169828
|
+
{
|
|
169829
|
+
id: "demo-t7",
|
|
169830
|
+
role: "tool",
|
|
169831
|
+
text: "",
|
|
169832
|
+
createdAt: now3 - 11e4,
|
|
169833
|
+
toolCall: {
|
|
169834
|
+
id: "call-7",
|
|
169835
|
+
name: "run_command",
|
|
169836
|
+
status: "completed",
|
|
169837
|
+
input: { command: "pnpm lint", cwd: "/srv/app" },
|
|
169838
|
+
output: { exitCode: 1, stdout: "", stderr: "sitemap.job.ts:12:3 error Unexpected any" },
|
|
169839
|
+
startedAt: now3 - 116e3,
|
|
169840
|
+
finishedAt: now3 - 111e3
|
|
169841
|
+
}
|
|
169793
169842
|
}
|
|
169794
169843
|
];
|
|
169795
169844
|
}, "toolShowcase");
|
|
@@ -172543,6 +172592,7 @@ ${derivedSubtitle}` : subtitle;
|
|
|
172543
172592
|
}
|
|
172544
172593
|
updated(changedProperties) {
|
|
172545
172594
|
super.updated(changedProperties);
|
|
172595
|
+
this.toggleAttribute("data-collapsed", !this.isOpen);
|
|
172546
172596
|
if (!this.isConnected) return;
|
|
172547
172597
|
this.terminalScrollHydrationFrame ??= requestAnimationFrame(() => {
|
|
172548
172598
|
this.terminalScrollHydrationFrame = null;
|
|
@@ -172877,7 +172927,21 @@ __publicField(_DeesHarnessToolCard, "styles", [
|
|
|
172877
172927
|
:host {
|
|
172878
172928
|
display: block;
|
|
172879
172929
|
container-type: inline-size;
|
|
172930
|
+
margin-inline: auto;
|
|
172931
|
+
max-width: 100%;
|
|
172880
172932
|
font-family: var(--dees-font-family);
|
|
172933
|
+
transition: max-width var(--dees-transition-default) var(--dees-ease-standard);
|
|
172934
|
+
}
|
|
172935
|
+
|
|
172936
|
+
/*
|
|
172937
|
+
* A collapsed card may be held to a narrower measure than its row. The host — not the inner
|
|
172938
|
+
* surface — carries the constraint so the card's own inline-size container keeps measuring
|
|
172939
|
+
* what is actually rendered. The width comes from the context the card sits in: a transcript
|
|
172940
|
+
* row that holds this card alone sets it, a multi-card grid cell leaves it unset, and a
|
|
172941
|
+
* direct host falls back to the full row.
|
|
172942
|
+
*/
|
|
172943
|
+
:host([data-collapsed]) {
|
|
172944
|
+
max-width: var(--dees-harness-collapsed-tool-width, 100%);
|
|
172881
172945
|
}
|
|
172882
172946
|
|
|
172883
172947
|
.harness-card.subtaskPreviewCard {
|
|
@@ -176477,6 +176541,18 @@ __publicField(_DeesHarnessMessageList, "styles", [
|
|
|
176477
176541
|
width: 100%;
|
|
176478
176542
|
}
|
|
176479
176543
|
|
|
176544
|
+
/*
|
|
176545
|
+
* The pane is what an open command or diff needs, not what its one-line collapsed header
|
|
176546
|
+
* needs, so a closed card returns to the reading measure inside its row. Only a row holding
|
|
176547
|
+
* a single card offers it: in a multi-card grid the cell width is the layout, and shrinking
|
|
176548
|
+
* one card would break the row. The card applies this itself — it alone knows whether it is
|
|
176549
|
+
* open — and the measure stays defined here, with the rest of the column rules.
|
|
176550
|
+
*/
|
|
176551
|
+
.stack > [data-tool-layout='full-row'][data-tool-count='1'],
|
|
176552
|
+
.virtualItem[data-tool-layout='full-row'][data-tool-count='1'] {
|
|
176553
|
+
--dees-harness-collapsed-tool-width: min(var(--dees-harness-content-width, 820px), 100%);
|
|
176554
|
+
}
|
|
176555
|
+
|
|
176480
176556
|
/*
|
|
176481
176557
|
* One or two subagents are read like any other content, so they stay on the measure. The
|
|
176482
176558
|
* pane is only worth taking once three or more cards have to sit side by side.
|
|
@@ -176534,8 +176610,13 @@ __publicField(_DeesHarnessMessageList, "styles", [
|
|
|
176534
176610
|
}
|
|
176535
176611
|
}
|
|
176536
176612
|
|
|
176613
|
+
/*
|
|
176614
|
+
* The activity line is the tail of the transcript, not chrome around it, so it sits on the
|
|
176615
|
+
* same measure as the prose rows and starts at their left edge instead of spanning the pane.
|
|
176616
|
+
*/
|
|
176537
176617
|
.statusRow {
|
|
176538
|
-
|
|
176618
|
+
width: min(var(--dees-harness-content-width, 820px), 100%);
|
|
176619
|
+
margin-inline: auto;
|
|
176539
176620
|
}
|
|
176540
176621
|
|
|
176541
176622
|
.empty {
|
|
@@ -179398,13 +179479,13 @@ var stages = {
|
|
|
179398
179479
|
paused: { state: "normal", label: "Paused", description: "Permission was declined. The requested action did not run." }
|
|
179399
179480
|
};
|
|
179400
179481
|
var demoSessions = /* @__PURE__ */ __name(() => [
|
|
179401
|
-
{ title: "Fix sitemap cache key", harness: { id: "codex", name: "Codex" }, stage: "approval" },
|
|
179402
|
-
{ title: "Investigate model rate limits", harness: { id: "opencode", name: "OpenCode" }, stage: "working" },
|
|
179403
|
-
{ title: "Refactor workbench layout", harness: { id: "flexharness", name: "FlexHarness" }, stage: "feedback" },
|
|
179404
|
-
{ title: "Add adaptive code diffs", harness: { id: "codex", name: "Codex" }, stage: "finished" },
|
|
179405
|
-
{ title: "Prepare the catalog release", harness: { id: "opencode", name: "OpenCode" }, stage: "error" },
|
|
179482
|
+
{ title: "Fix sitemap cache key", harness: { id: "codex", name: "Codex" }, projectLabel: "storefront", stage: "approval" },
|
|
179483
|
+
{ title: "Investigate model rate limits", harness: { id: "opencode", name: "OpenCode" }, projectLabel: "gateway", stage: "working" },
|
|
179484
|
+
{ title: "Refactor workbench layout", harness: { id: "flexharness", name: "FlexHarness" }, projectLabel: "storefront", stage: "feedback" },
|
|
179485
|
+
{ title: "Add adaptive code diffs", harness: { id: "codex", name: "Codex" }, projectLabel: "catalog", stage: "finished" },
|
|
179486
|
+
{ title: "Prepare the catalog release", harness: { id: "opencode", name: "OpenCode" }, projectLabel: "catalog", stage: "error" },
|
|
179406
179487
|
{ title: "Improve agent onboarding", harness: { id: "flexharness", name: "FlexHarness" }, stage: "idle" },
|
|
179407
|
-
{ title: "Draft the migration guide", harness: { id: "codex", name: "Codex" }, stage: "starting" }
|
|
179488
|
+
{ title: "Draft the migration guide", harness: { id: "codex", name: "Codex" }, projectLabel: "gateway", stage: "starting" }
|
|
179408
179489
|
].map((session, index3) => ({
|
|
179409
179490
|
...session,
|
|
179410
179491
|
id: `session-${index3}`,
|
|
@@ -179445,6 +179526,7 @@ var demoResources = [
|
|
|
179445
179526
|
title: "Build shell",
|
|
179446
179527
|
icon: "lucide:Terminal",
|
|
179447
179528
|
preview: "pnpm run build",
|
|
179529
|
+
projectLabel: "storefront",
|
|
179448
179530
|
updatedAt: Date.now() - 9e4,
|
|
179449
179531
|
state: "ready"
|
|
179450
179532
|
},
|
|
@@ -179454,6 +179536,7 @@ var demoResources = [
|
|
|
179454
179536
|
title: "Release notes",
|
|
179455
179537
|
icon: "lucide:FileText",
|
|
179456
179538
|
preview: "Catalog migration notes",
|
|
179539
|
+
projectLabel: "catalog",
|
|
179457
179540
|
updatedAt: Date.now() - 18e4
|
|
179458
179541
|
},
|
|
179459
179542
|
{
|
|
@@ -180114,7 +180197,13 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a100 = Dee
|
|
|
180114
180197
|
return [...pinned, ...ordered, ...unknown3];
|
|
180115
180198
|
}
|
|
180116
180199
|
resourceMatchesSearch(resourceArg, queryArg) {
|
|
180117
|
-
return [
|
|
180200
|
+
return [
|
|
180201
|
+
resourceArg.id,
|
|
180202
|
+
resourceArg.kind,
|
|
180203
|
+
resourceArg.title,
|
|
180204
|
+
resourceArg.preview,
|
|
180205
|
+
resourceArg.projectLabel
|
|
180206
|
+
].filter(Boolean).join(" ").toLowerCase().includes(queryArg);
|
|
180118
180207
|
}
|
|
180119
180208
|
sessionMatchesSearch(sessionArg, queryArg) {
|
|
180120
180209
|
return [
|
|
@@ -180123,6 +180212,7 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a100 = Dee
|
|
|
180123
180212
|
sessionArg.id,
|
|
180124
180213
|
sessionArg.harness?.id,
|
|
180125
180214
|
sessionArg.harness?.name,
|
|
180215
|
+
sessionArg.projectLabel,
|
|
180126
180216
|
this.sessionStatusLabel(sessionArg),
|
|
180127
180217
|
this.sessionStateLabel(sessionArg.state ?? "normal")
|
|
180128
180218
|
].filter(Boolean).join(" ").toLowerCase().includes(queryArg);
|
|
@@ -180454,6 +180544,7 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a100 = Dee
|
|
|
180454
180544
|
const detailsId = `session-details-${session.id}`;
|
|
180455
180545
|
const dropIndex = index3 < 0 ? 0 : index3;
|
|
180456
180546
|
const title = session.title || session.id;
|
|
180547
|
+
const projectLabel = session.projectLabel?.trim() ?? "";
|
|
180457
180548
|
return b2`
|
|
180458
180549
|
<article
|
|
180459
180550
|
class="item state-${state4} ${active ? "active" : ""} ${expanded ? "expanded" : ""} ${session.id === this.selectedSessionId ? "selected" : ""} ${sameItem(this.draggingItem, { kind: "session", id: session.id }) ? "dragging" : ""}"
|
|
@@ -180513,6 +180604,10 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a100 = Dee
|
|
|
180513
180604
|
<span class="harnessName" title=${session.harness.name}>${session.harness.name}</span>
|
|
180514
180605
|
<span aria-hidden="true">·</span>
|
|
180515
180606
|
` : ""}
|
|
180607
|
+
${projectLabel ? b2`
|
|
180608
|
+
<span class="projectName" title=${projectLabel}>${projectLabel}</span>
|
|
180609
|
+
<span aria-hidden="true">·</span>
|
|
180610
|
+
` : ""}
|
|
180516
180611
|
<span class="itemTime">${harnessFormatRelativeTime(session.updatedAt ?? session.createdAt)}</span>
|
|
180517
180612
|
</span>
|
|
180518
180613
|
</span>
|
|
@@ -180562,6 +180657,7 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a100 = Dee
|
|
|
180562
180657
|
const contextOpen = resourceArg.id === this.resourceContextResourceId;
|
|
180563
180658
|
const attachedTitle = attachedTarget ? this.itemTitleFor(attachedTarget) : "";
|
|
180564
180659
|
const title = resourceArg.title || resourceArg.id;
|
|
180660
|
+
const projectLabel = resourceArg.projectLabel?.trim() ?? "";
|
|
180565
180661
|
const dropIndex = indexArg < 0 ? 0 : indexArg;
|
|
180566
180662
|
return b2`
|
|
180567
180663
|
<article
|
|
@@ -180614,7 +180710,7 @@ var _DeesHarnessSessionList = class _DeesHarnessSessionList extends (_a100 = Dee
|
|
|
180614
180710
|
<span class="resourceTitle">${title}</span>
|
|
180615
180711
|
${resourceArg.preview ? b2`<span class="resourcePreview">${resourceArg.preview}</span>` : ""}
|
|
180616
180712
|
<span class="resourceMeta">
|
|
180617
|
-
${resourceArg.kind}${resourceArg.state ? ` \xB7 ${resourceArg.state}` : ""}${resourceArg.updatedAt || resourceArg.createdAt ? ` \xB7 ${harnessFormatRelativeTime(resourceArg.updatedAt ?? resourceArg.createdAt)}` : ""}
|
|
180713
|
+
${resourceArg.kind}${projectLabel ? ` \xB7 ${projectLabel}` : ""}${resourceArg.state ? ` \xB7 ${resourceArg.state}` : ""}${resourceArg.updatedAt || resourceArg.createdAt ? ` \xB7 ${harnessFormatRelativeTime(resourceArg.updatedAt ?? resourceArg.createdAt)}` : ""}
|
|
180618
180714
|
</span>
|
|
180619
180715
|
${attachedTarget ? b2`
|
|
180620
180716
|
<span class="resourceAttachment" title=${`Attached to ${attachedTitle}`}>
|
|
@@ -181524,7 +181620,8 @@ __publicField(_DeesHarnessSessionList, "styles", [
|
|
|
181524
181620
|
line-height: 14px;
|
|
181525
181621
|
}
|
|
181526
181622
|
|
|
181527
|
-
.harnessName
|
|
181623
|
+
.harnessName,
|
|
181624
|
+
.projectName {
|
|
181528
181625
|
min-width: 0;
|
|
181529
181626
|
overflow: hidden;
|
|
181530
181627
|
text-overflow: ellipsis;
|
|
@@ -223745,7 +223842,7 @@ init_group_runtime();
|
|
|
223745
223842
|
// ts_web/00_commitinfo_data.ts
|
|
223746
223843
|
var commitinfo = {
|
|
223747
223844
|
name: "@design.estate/dees-catalog",
|
|
223748
|
-
version: "11.
|
|
223845
|
+
version: "11.2.0",
|
|
223749
223846
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
223750
223847
|
};
|
|
223751
223848
|
|