@design.estate/dees-catalog 5.0.0 → 6.1.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 (22) hide show
  1. package/dist_bundle/bundle.js +526 -134
  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 +7 -2
  4. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +1 -2
  5. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +110 -26
  6. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +5 -0
  7. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +287 -66
  8. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +5 -0
  9. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +91 -3
  10. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +6 -5
  11. package/dist_ts_web/elements/00group-harness/harness.styles.js +23 -4
  12. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +2 -0
  13. package/package.json +1 -1
  14. package/readme.md +6 -4
  15. package/ts_web/00_commitinfo_data.ts +1 -1
  16. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +0 -1
  17. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +101 -25
  18. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +318 -73
  19. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +83 -1
  20. package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +5 -4
  21. package/ts_web/elements/00group-harness/harness.styles.ts +22 -3
  22. package/ts_web/elements/00group-harness/interfaces.ts +2 -0
@@ -173566,6 +173566,7 @@ var markdownStyles = i`
173566
173566
  init_dist_ts26();
173567
173567
  var harnessCardStyles = i`
173568
173568
  .harness-card {
173569
+ position: relative;
173569
173570
  border: 1px solid var(--dees-color-border-subtle);
173570
173571
  border-left: 2px solid var(--dees-color-border-default);
173571
173572
  border-radius: var(--dees-radius-lg);
@@ -173576,6 +173577,14 @@ var harnessCardStyles = i`
173576
173577
  .harness-card.status-running,
173577
173578
  .harness-card.status-pending {
173578
173579
  border-left-color: var(--dees-color-accent-primary);
173580
+ }
173581
+ .harness-card.status-running::before,
173582
+ .harness-card.status-pending::before,
173583
+ .harness-card.outcomeScan::before {
173584
+ content: '';
173585
+ position: absolute;
173586
+ inset: 0;
173587
+ pointer-events: none;
173579
173588
  background:
173580
173589
  linear-gradient(
173581
173590
  105deg,
@@ -173584,9 +173593,13 @@ var harnessCardStyles = i`
173584
173593
  color-mix(in srgb, var(--dees-color-accent-primary) 20%, transparent) 50%,
173585
173594
  color-mix(in srgb, var(--dees-color-accent-primary) 6%, transparent) 55%,
173586
173595
  transparent 60%
173587
- ) 100% 0 / 250% 100% no-repeat,
173588
- var(--dees-color-bg-secondary);
173596
+ ) 100% 0 / 250% 100% no-repeat;
173589
173597
  animation: harness-card-running-scan 2s linear infinite;
173598
+ opacity: 1;
173599
+ transition: opacity 0.18s var(--dees-ease-out);
173600
+ }
173601
+ .harness-card.outcomeScan::before {
173602
+ opacity: 0;
173590
173603
  }
173591
173604
  .harness-card.status-completed {
173592
173605
  border-left-color: var(--dees-color-accent-success);
@@ -173606,13 +173619,19 @@ var harnessCardStyles = i`
173606
173619
  @media (prefers-reduced-motion: reduce) {
173607
173620
  .harness-card.status-running,
173608
173621
  .harness-card.status-pending {
173609
- animation: none;
173610
173622
  background: color-mix(
173611
173623
  in srgb,
173612
173624
  var(--dees-color-accent-primary) 8%,
173613
173625
  var(--dees-color-bg-secondary)
173614
173626
  );
173615
173627
  }
173628
+ .harness-card.status-running::before,
173629
+ .harness-card.status-pending::before,
173630
+ .harness-card.outcomeScan::before {
173631
+ animation: none;
173632
+ opacity: 0;
173633
+ transition: none;
173634
+ }
173616
173635
  }
173617
173636
  `;
173618
173637
  var harnessPillStyles = i`
@@ -174246,7 +174265,6 @@ var demoFunc51 = /* @__PURE__ */ __name(() => b2`
174246
174265
  );
174247
174266
  }
174248
174267
  }}
174249
- @harness-toggle-sidebar=${() => console.log("harness-toggle-sidebar")}
174250
174268
  @harness-scratchpad-save=${(event) => console.log("harness-scratchpad-save", event.detail)}
174251
174269
  @harness-session-intelligence-ask=${(event) => {
174252
174270
  console.log("harness-session-intelligence-ask", event.detail);
@@ -175234,14 +175252,15 @@ var renderTerminal = /* @__PURE__ */ __name((call, helpers) => {
175234
175252
  const output = call.output;
175235
175253
  let stdout = "";
175236
175254
  let stderr = "";
175237
- let exitCode3;
175255
+ let nestedExitCode;
175238
175256
  if (harnessIsRecord(output)) {
175239
175257
  stdout = typeof output.stdout === "string" ? output.stdout : harnessStringifyValue(output.stdout ?? "");
175240
175258
  stderr = typeof output.stderr === "string" ? output.stderr : "";
175241
- exitCode3 = typeof output.exitCode === "number" ? output.exitCode : void 0;
175259
+ nestedExitCode = typeof output.exitCode === "number" ? output.exitCode : void 0;
175242
175260
  } else {
175243
175261
  stdout = harnessStringifyValue(output);
175244
175262
  }
175263
+ const exitCode3 = typeof call.exitCode === "number" ? call.exitCode : nestedExitCode;
175245
175264
  const running = call.status === "pending" || call.status === "running";
175246
175265
  return b2`
175247
175266
  <div class="harness-terminal">
@@ -175250,7 +175269,7 @@ var renderTerminal = /* @__PURE__ */ __name((call, helpers) => {
175250
175269
  ${stderr ? b2`<pre class="harness-terminal-output tone-error">${stripAnsi(stderr)}</pre>` : ""}
175251
175270
  ${call.errorText ? b2`<pre class="harness-terminal-output tone-error">${stripAnsi(call.errorText)}</pre>` : ""}
175252
175271
  ${running && !stdout && !stderr ? b2`<div class="harness-terminal-running"><span class="cursor"></span> running…</div>` : ""}
175253
- ${exitCode3 !== void 0 && exitCode3 !== 0 ? b2`<div class="harness-terminal-exit">exit ${exitCode3}</div>` : ""}
175272
+ ${exitCode3 !== void 0 ? b2`<div class="harness-terminal-exit ${exitCode3 === 0 ? "tone-success" : ""}">exit code ${exitCode3}</div>` : ""}
175254
175273
  </div>
175255
175274
  `;
175256
175275
  }, "renderTerminal");
@@ -175769,9 +175788,9 @@ var DeesHarnessToolFullscreen = _DeesHarnessToolFullscreen;
175769
175788
  init_dist_ts26();
175770
175789
  init_theme();
175771
175790
  init_dees_icon();
175772
- var _returnFlash_dec, _bodyOverflowing_dec, _uncapped_dec, _bodyCapPx_dec, _outputExpanded_dec, _expanded_dec2, _toolRegistry_dec2, _call_dec2, _a80, _DeesHarnessToolCard_decorators, _init81, _call2, _toolRegistry2, _expanded2, _outputExpanded, _bodyCapPx, _uncapped, _bodyOverflowing, _returnFlash;
175791
+ var _outcomeScanTone_dec, _returnFlash_dec, _bodyOverflowing_dec, _uncapped_dec, _bodyCapPx_dec, _outputExpanded_dec, _expanded_dec2, _toolRegistry_dec2, _call_dec2, _a80, _DeesHarnessToolCard_decorators, _init81, _call2, _toolRegistry2, _expanded2, _outputExpanded, _bodyCapPx, _uncapped, _bodyOverflowing, _returnFlash, _outcomeScanTone;
175773
175792
  _DeesHarnessToolCard_decorators = [customElement("dees-harness-tool-card")];
175774
- var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElement, _call_dec2 = [n5({ attribute: false })], _toolRegistry_dec2 = [n5({ attribute: false })], _expanded_dec2 = [r5()], _outputExpanded_dec = [r5()], _bodyCapPx_dec = [n5({ type: Number })], _uncapped_dec = [n5({ type: Boolean })], _bodyOverflowing_dec = [r5()], _returnFlash_dec = [r5()], _a80) {
175793
+ var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElement, _call_dec2 = [n5({ attribute: false })], _toolRegistry_dec2 = [n5({ attribute: false })], _expanded_dec2 = [r5()], _outputExpanded_dec = [r5()], _bodyCapPx_dec = [n5({ type: Number })], _uncapped_dec = [n5({ type: Boolean })], _bodyOverflowing_dec = [r5()], _returnFlash_dec = [r5()], _outcomeScanTone_dec = [r5()], _a80) {
175775
175794
  constructor() {
175776
175795
  super(...arguments);
175777
175796
  __privateAdd(this, _call2, __runInitializers(_init81, 8, this, { id: "", name: "", status: "pending" })), __runInitializers(_init81, 11, this);
@@ -175782,6 +175801,7 @@ var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElemen
175782
175801
  __privateAdd(this, _uncapped, __runInitializers(_init81, 28, this, false)), __runInitializers(_init81, 31, this);
175783
175802
  __privateAdd(this, _bodyOverflowing, __runInitializers(_init81, 32, this, false)), __runInitializers(_init81, 35, this);
175784
175803
  __privateAdd(this, _returnFlash, __runInitializers(_init81, 36, this, false)), __runInitializers(_init81, 39, this);
175804
+ __privateAdd(this, _outcomeScanTone, __runInitializers(_init81, 40, this, null)), __runInitializers(_init81, 43, this);
175785
175805
  __publicField(this, "bodyResizeObserver", null);
175786
175806
  __publicField(this, "observedBodyInner", null);
175787
175807
  __publicField(this, "fullscreenPortal", null);
@@ -175795,6 +175815,7 @@ var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElemen
175795
175815
  this.fullscreenPortal = portal;
175796
175816
  }, "openFullscreen"));
175797
175817
  __publicField(this, "flashFallbackTimeout", null);
175818
+ __publicField(this, "outcomeScanFallbackTimeout", null);
175798
175819
  __publicField(this, "closeFullscreen", /* @__PURE__ */ __name(() => {
175799
175820
  const portal = this.fullscreenPortal;
175800
175821
  if (!portal) return;
@@ -175837,10 +175858,12 @@ var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElemen
175837
175858
  const statusTone = call.isError ? "error" : call.status === "completed" ? "success" : call.status;
175838
175859
  const duration = harnessFormatDuration(call.startedAt, call.finishedAt);
175839
175860
  return b2`
175840
- <div class="harness-card status-${call.isError ? "error" : call.status} ${descriptor.destructive ? "destructive" : ""} ${this.returnFlash ? "returnFlash" : ""}"
175861
+ <div class="harness-card status-${call.isError ? "error" : call.status} ${descriptor.destructive ? "destructive" : ""} ${this.returnFlash ? "returnFlash" : ""} ${this.outcomeScanTone ? `outcomeScan outcomeScan-${this.outcomeScanTone}` : ""}"
175841
175862
  @animationend=${(event) => {
175842
175863
  if (event.animationName === "harness-card-return-flash") {
175843
175864
  this.endReturnFlash();
175865
+ } else if (event.animationName === "harness-tool-outcome-scan") {
175866
+ this.endOutcomeScan();
175844
175867
  }
175845
175868
  }}
175846
175869
  >
@@ -175898,8 +175921,35 @@ var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElemen
175898
175921
  composed: true
175899
175922
  }));
175900
175923
  }
175924
+ startOutcomeScan(toneArg) {
175925
+ if (this.outcomeScanFallbackTimeout) clearTimeout(this.outcomeScanFallbackTimeout);
175926
+ this.outcomeScanTone = toneArg;
175927
+ this.outcomeScanFallbackTimeout = setTimeout(() => this.endOutcomeScan(), 750);
175928
+ }
175929
+ endOutcomeScan() {
175930
+ if (this.outcomeScanFallbackTimeout) {
175931
+ clearTimeout(this.outcomeScanFallbackTimeout);
175932
+ this.outcomeScanFallbackTimeout = null;
175933
+ }
175934
+ this.outcomeScanTone = null;
175935
+ }
175936
+ willUpdate(changedProperties) {
175937
+ super.willUpdate(changedProperties);
175938
+ const previousCall = changedProperties.get("call");
175939
+ if (!previousCall || previousCall.id !== this.call.id) return;
175940
+ const wasActive = previousCall.status === "pending" || previousCall.status === "running";
175941
+ const outcomeTone = this.call.status === "error" || this.call.isError ? "error" : this.call.status === "completed" ? "success" : null;
175942
+ if (wasActive && outcomeTone) {
175943
+ this.startOutcomeScan(outcomeTone);
175944
+ } else if (!outcomeTone && this.outcomeScanTone) {
175945
+ this.endOutcomeScan();
175946
+ }
175947
+ }
175901
175948
  updated(changedProperties) {
175902
175949
  super.updated(changedProperties);
175950
+ if (changedProperties.has("call") && this.fullscreenPortal) {
175951
+ this.fullscreenPortal.call = this.enrichedCall;
175952
+ }
175903
175953
  if (this.uncapped) return;
175904
175954
  const bodyInner = this.shadowRoot?.querySelector(".bodyInner") ?? null;
175905
175955
  if (bodyInner === this.observedBodyInner) return;
@@ -175921,6 +175971,10 @@ var _DeesHarnessToolCard = class _DeesHarnessToolCard extends (_a80 = DeesElemen
175921
175971
  clearTimeout(this.flashFallbackTimeout);
175922
175972
  this.flashFallbackTimeout = null;
175923
175973
  }
175974
+ if (this.outcomeScanFallbackTimeout) {
175975
+ clearTimeout(this.outcomeScanFallbackTimeout);
175976
+ this.outcomeScanFallbackTimeout = null;
175977
+ }
175924
175978
  this.fullscreenPortal?.remove();
175925
175979
  this.fullscreenPortal = null;
175926
175980
  this.bodyResizeObserver?.disconnect();
@@ -176010,6 +176064,7 @@ _bodyCapPx = new WeakMap();
176010
176064
  _uncapped = new WeakMap();
176011
176065
  _bodyOverflowing = new WeakMap();
176012
176066
  _returnFlash = new WeakMap();
176067
+ _outcomeScanTone = new WeakMap();
176013
176068
  __decorateElement(_init81, 4, "call", _call_dec2, _DeesHarnessToolCard, _call2);
176014
176069
  __decorateElement(_init81, 4, "toolRegistry", _toolRegistry_dec2, _DeesHarnessToolCard, _toolRegistry2);
176015
176070
  __decorateElement(_init81, 4, "expanded", _expanded_dec2, _DeesHarnessToolCard, _expanded2);
@@ -176018,6 +176073,7 @@ __decorateElement(_init81, 4, "bodyCapPx", _bodyCapPx_dec, _DeesHarnessToolCard,
176018
176073
  __decorateElement(_init81, 4, "uncapped", _uncapped_dec, _DeesHarnessToolCard, _uncapped);
176019
176074
  __decorateElement(_init81, 4, "bodyOverflowing", _bodyOverflowing_dec, _DeesHarnessToolCard, _bodyOverflowing);
176020
176075
  __decorateElement(_init81, 4, "returnFlash", _returnFlash_dec, _DeesHarnessToolCard, _returnFlash);
176076
+ __decorateElement(_init81, 4, "outcomeScanTone", _outcomeScanTone_dec, _DeesHarnessToolCard, _outcomeScanTone);
176021
176077
  _DeesHarnessToolCard = __decorateElement(_init81, 0, "DeesHarnessToolCard", _DeesHarnessToolCard_decorators, _DeesHarnessToolCard);
176022
176078
  __name(_DeesHarnessToolCard, "DeesHarnessToolCard");
176023
176079
  __publicField(_DeesHarnessToolCard, "demo", demoFunc55);
@@ -176255,6 +176311,10 @@ __publicField(_DeesHarnessToolCard, "styles", [
176255
176311
  font-size: var(--dees-font-caption1-size, 11px);
176256
176312
  }
176257
176313
 
176314
+ .harness-terminal-exit.tone-success {
176315
+ color: var(--dees-color-accent-success);
176316
+ }
176317
+
176258
176318
  .harness-subtask-open {
176259
176319
  justify-self: start;
176260
176320
  display: inline-flex;
@@ -176281,6 +176341,30 @@ __publicField(_DeesHarnessToolCard, "styles", [
176281
176341
  transform-origin: center;
176282
176342
  }
176283
176343
 
176344
+ .harness-card.outcomeScan {
176345
+ --harness-outcome-scan-color: var(--dees-color-accent-success);
176346
+ }
176347
+
176348
+ .harness-card.outcomeScan-error {
176349
+ --harness-outcome-scan-color: var(--dees-color-accent-error);
176350
+ }
176351
+
176352
+ .harness-card.outcomeScan::after {
176353
+ content: '';
176354
+ position: absolute;
176355
+ inset: 0;
176356
+ pointer-events: none;
176357
+ background: linear-gradient(
176358
+ 105deg,
176359
+ transparent 40%,
176360
+ color-mix(in srgb, var(--harness-outcome-scan-color) 3%, transparent) 45%,
176361
+ color-mix(in srgb, var(--harness-outcome-scan-color) 14%, transparent) 50%,
176362
+ color-mix(in srgb, var(--harness-outcome-scan-color) 3%, transparent) 55%,
176363
+ transparent 60%
176364
+ ) 100% 0 / 250% 100% no-repeat;
176365
+ animation: harness-tool-outcome-scan 0.48s linear 0.08s both;
176366
+ }
176367
+
176284
176368
  @keyframes harness-card-return-flash {
176285
176369
  0%, 100% {
176286
176370
  transform: scale(1);
@@ -176290,10 +176374,20 @@ __publicField(_DeesHarnessToolCard, "styles", [
176290
176374
  }
176291
176375
  }
176292
176376
 
176377
+ @keyframes harness-tool-outcome-scan {
176378
+ from { background-position: 100% 0; }
176379
+ to { background-position: 0 0; }
176380
+ }
176381
+
176293
176382
  @media (prefers-reduced-motion: reduce) {
176294
176383
  .harness-card.returnFlash {
176295
176384
  animation: none;
176296
176385
  }
176386
+
176387
+ .harness-card.outcomeScan::after {
176388
+ animation: none;
176389
+ opacity: 0;
176390
+ }
176297
176391
  }
176298
176392
  `
176299
176393
  ]);
@@ -178655,11 +178749,11 @@ var demoFunc62 = /* @__PURE__ */ __name(() => b2`
178655
178749
  init_dist_ts26();
178656
178750
  init_theme();
178657
178751
  init_dees_icon();
178658
- var _intelligenceQuestion_dec, _scratchpadStale_dec, _scratchpadDirty_dec, _scratchpadDraftRevision_dec, _scratchpadDraft_dec, _disabled_dec6, _intelligenceError_dec, _intelligenceBusy_dec, _intelligenceExchanges_dec, _intelligenceEnabled_dec, _scratchpadError_dec, _scratchpadBusy_dec, _scratchpad_dec, _metrics_dec2, _showTasks_dec, _todos_dec2, _a87, _DeesHarnessSessionSidebar_decorators, _init88, _todos2, _showTasks, _metrics2, _scratchpad, _scratchpadBusy, _scratchpadError, _intelligenceEnabled, _intelligenceExchanges, _intelligenceBusy, _intelligenceError, _disabled6, _scratchpadDraft, _scratchpadDraftRevision, _scratchpadDirty, _scratchpadStale, _intelligenceQuestion;
178752
+ var _expandedSection_dec, _intelligenceQuestion_dec, _scratchpadStale_dec, _scratchpadDirty_dec, _scratchpadDraftRevision_dec, _scratchpadDraft_dec, _disabled_dec6, _intelligenceError_dec, _intelligenceBusy_dec, _intelligenceExchanges_dec, _intelligenceEnabled_dec, _scratchpadError_dec, _scratchpadBusy_dec, _scratchpad_dec, _metrics_dec2, _showTasks_dec, _todos_dec2, _a87, _DeesHarnessSessionSidebar_decorators, _init88, _todos2, _showTasks, _metrics2, _scratchpad, _scratchpadBusy, _scratchpadError, _intelligenceEnabled, _intelligenceExchanges, _intelligenceBusy, _intelligenceError, _disabled6, _scratchpadDraft, _scratchpadDraftRevision, _scratchpadDirty, _scratchpadStale, _intelligenceQuestion, _expandedSection;
178659
178753
  var { repeat: repeat5 } = directives_exports;
178660
178754
  var formatTokenCount = /* @__PURE__ */ __name((valueArg) => valueArg.toLocaleString("en-US"), "formatTokenCount");
178661
178755
  _DeesHarnessSessionSidebar_decorators = [customElement("dees-harness-session-sidebar")];
178662
- var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87 = DeesElement, _todos_dec2 = [n5({ attribute: false })], _showTasks_dec = [n5({ type: Boolean })], _metrics_dec2 = [n5({ attribute: false })], _scratchpad_dec = [n5({ attribute: false })], _scratchpadBusy_dec = [n5({ type: Boolean })], _scratchpadError_dec = [n5()], _intelligenceEnabled_dec = [n5({ type: Boolean })], _intelligenceExchanges_dec = [n5({ attribute: false })], _intelligenceBusy_dec = [n5({ type: Boolean })], _intelligenceError_dec = [n5()], _disabled_dec6 = [n5({ type: Boolean })], _scratchpadDraft_dec = [r5()], _scratchpadDraftRevision_dec = [r5()], _scratchpadDirty_dec = [r5()], _scratchpadStale_dec = [r5()], _intelligenceQuestion_dec = [r5()], _a87) {
178756
+ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87 = DeesElement, _todos_dec2 = [n5({ attribute: false })], _showTasks_dec = [n5({ type: Boolean })], _metrics_dec2 = [n5({ attribute: false })], _scratchpad_dec = [n5({ attribute: false })], _scratchpadBusy_dec = [n5({ type: Boolean })], _scratchpadError_dec = [n5()], _intelligenceEnabled_dec = [n5({ type: Boolean })], _intelligenceExchanges_dec = [n5({ attribute: false })], _intelligenceBusy_dec = [n5({ type: Boolean })], _intelligenceError_dec = [n5()], _disabled_dec6 = [n5({ type: Boolean })], _scratchpadDraft_dec = [r5()], _scratchpadDraftRevision_dec = [r5()], _scratchpadDirty_dec = [r5()], _scratchpadStale_dec = [r5()], _intelligenceQuestion_dec = [r5()], _expandedSection_dec = [r5()], _a87) {
178663
178757
  constructor() {
178664
178758
  super(...arguments);
178665
178759
  __privateAdd(this, _todos2, __runInitializers(_init88, 8, this, [])), __runInitializers(_init88, 11, this);
@@ -178678,6 +178772,8 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178678
178772
  __privateAdd(this, _scratchpadDirty, __runInitializers(_init88, 60, this, false)), __runInitializers(_init88, 63, this);
178679
178773
  __privateAdd(this, _scratchpadStale, __runInitializers(_init88, 64, this, false)), __runInitializers(_init88, 67, this);
178680
178774
  __privateAdd(this, _intelligenceQuestion, __runInitializers(_init88, 68, this, "")), __runInitializers(_init88, 71, this);
178775
+ __privateAdd(this, _expandedSection, __runInitializers(_init88, 72, this)), __runInitializers(_init88, 75, this);
178776
+ __publicField(this, "sectionStateInitialized", false);
178681
178777
  __publicField(this, "discardScratchpadDraft", /* @__PURE__ */ __name(() => {
178682
178778
  if (this.scratchpad) this.acceptScratchpad(this.scratchpad);
178683
178779
  }, "discardScratchpadDraft"));
@@ -178712,6 +178808,13 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178712
178808
  }, "askIntelligence"));
178713
178809
  }
178714
178810
  willUpdate(changedPropertiesArg) {
178811
+ const availableSections = this.availableSections;
178812
+ if (!this.sectionStateInitialized && availableSections.length > 0) {
178813
+ this.expandedSection = this.defaultExpandedSection;
178814
+ this.sectionStateInitialized = true;
178815
+ } else if (this.expandedSection !== void 0 && !availableSections.includes(this.expandedSection)) {
178816
+ this.expandedSection = this.defaultExpandedSection;
178817
+ }
178715
178818
  if (!changedPropertiesArg.has("scratchpad")) return;
178716
178819
  const next2 = this.scratchpad;
178717
178820
  if (!next2) {
@@ -178751,13 +178854,60 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178751
178854
  get hasMetrics() {
178752
178855
  return Object.values(this.metrics).some((value2) => value2 !== void 0);
178753
178856
  }
178754
- renderTasks() {
178857
+ get availableSections() {
178858
+ return [
178859
+ ...this.showTasks ? ["tasks"] : [],
178860
+ ...this.hasMetrics ? ["metrics"] : [],
178861
+ ...this.scratchpad ? ["scratchpad"] : [],
178862
+ ...this.intelligenceEnabled ? ["intelligence"] : []
178863
+ ];
178864
+ }
178865
+ get defaultExpandedSection() {
178866
+ if (this.showTasks && this.todos.length > 0) return "tasks";
178867
+ if (this.hasMetrics) return "metrics";
178868
+ if (this.scratchpad) return "scratchpad";
178869
+ if (this.intelligenceEnabled) return "intelligence";
178870
+ return this.showTasks ? "tasks" : void 0;
178871
+ }
178872
+ renderSection(idArg, labelArg, iconArg, contentArg, summaryArg = "") {
178873
+ const expanded = this.expandedSection === idArg;
178874
+ const contentId = `harness-session-section-${idArg}`;
178755
178875
  return b2`
178756
- <section class="section tasksSection">
178757
- <dees-harness-todos heading="Tasks" .todos=${this.todos}></dees-harness-todos>
178876
+ <section class=${`section ${idArg}Section ${expanded ? "expanded" : ""}`}>
178877
+ <button
178878
+ class="sectionHeading"
178879
+ type="button"
178880
+ aria-expanded=${String(expanded)}
178881
+ aria-controls=${contentId}
178882
+ @click=${() => {
178883
+ this.sectionStateInitialized = true;
178884
+ this.expandedSection = expanded ? void 0 : idArg;
178885
+ }}
178886
+ >
178887
+ <dees-icon
178888
+ icon=${expanded ? "lucide:ChevronDown" : "lucide:ChevronRight"}
178889
+ iconSize="13"
178890
+ ></dees-icon>
178891
+ <dees-icon icon=${iconArg} iconSize="13"></dees-icon>
178892
+ <span class="sectionHeadingText">${labelArg}</span>
178893
+ ${summaryArg ? b2`<span class="sectionSummary">${summaryArg}</span>` : ""}
178894
+ </button>
178895
+ <div id=${contentId} class="sectionContent" ?hidden=${!expanded}>
178896
+ ${contentArg}
178897
+ </div>
178758
178898
  </section>
178759
178899
  `;
178760
178900
  }
178901
+ renderTasks() {
178902
+ const completed = this.todos.filter((todo) => todo.status === "completed").length;
178903
+ return this.renderSection(
178904
+ "tasks",
178905
+ "Tasks",
178906
+ "lucide:ListChecks",
178907
+ b2`<dees-harness-todos .todos=${this.todos} .showProgress=${false}></dees-harness-todos>`,
178908
+ this.todos.length > 0 ? `${completed}/${this.todos.length}` : ""
178909
+ );
178910
+ }
178761
178911
  renderMetrics() {
178762
178912
  const metrics2 = this.metrics;
178763
178913
  const percentage = this.contextPercentage;
@@ -178768,12 +178918,11 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178768
178918
  ["Context window", metrics2.maxContextTokens],
178769
178919
  ["Current context", metrics2.currentContextTokens]
178770
178920
  ];
178771
- return b2`
178772
- <section class="section metricsSection">
178773
- <div class="sectionHeading">
178774
- <dees-icon icon="lucide:Gauge" iconSize="13"></dees-icon>
178775
- <span>Tokens</span>
178776
- </div>
178921
+ return this.renderSection(
178922
+ "metrics",
178923
+ "Tokens",
178924
+ "lucide:Gauge",
178925
+ b2`
178777
178926
  <div class="metricList">
178778
178927
  ${rows.map(([label, value2]) => value2 === void 0 ? "" : b2`
178779
178928
  <div class="metricRow">
@@ -178796,37 +178945,32 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178796
178945
  </div>
178797
178946
  `}
178798
178947
  </div>
178799
- </section>
178800
- `;
178948
+ `
178949
+ );
178801
178950
  }
178802
178951
  renderScratchpad() {
178803
178952
  const scratchpad2 = this.scratchpad;
178804
- const updatedBy = scratchpad2.updatedBy === "intelligence" ? "Session Intelligence" : "you";
178805
- return b2`
178806
- <section class="section scratchpadSection">
178807
- <div class="sectionHeading">
178808
- <dees-icon icon="lucide:NotebookPen" iconSize="13"></dees-icon>
178809
- <span>Session Scratchpad</span>
178810
- </div>
178953
+ return this.renderSection(
178954
+ "scratchpad",
178955
+ "Session Scratchpad",
178956
+ "lucide:NotebookPen",
178957
+ b2`
178811
178958
  <textarea
178812
178959
  aria-label="Session scratchpad"
178813
178960
  maxlength="32768"
178814
178961
  .value=${this.scratchpadDraft}
178815
178962
  ?disabled=${this.disabled || this.scratchpadBusy}
178816
178963
  @input=${(event) => {
178817
- this.scratchpadDraft = event.currentTarget.value;
178818
- this.scratchpadDirty = this.scratchpadDraft !== scratchpad2.text;
178819
- }}
178964
+ this.scratchpadDraft = event.currentTarget.value;
178965
+ this.scratchpadDirty = this.scratchpadDraft !== scratchpad2.text;
178966
+ }}
178820
178967
  @keydown=${(event) => {
178821
- if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
178822
- event.preventDefault();
178823
- this.saveScratchpad();
178824
- }
178825
- }}
178968
+ if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
178969
+ event.preventDefault();
178970
+ this.saveScratchpad();
178971
+ }
178972
+ }}
178826
178973
  ></textarea>
178827
- <div class="editorMeta">
178828
- Revision ${scratchpad2.revision}${scratchpad2.updatedAt ? ` \xB7 updated by ${updatedBy} ${new Date(scratchpad2.updatedAt).toLocaleString()}` : ""}
178829
- </div>
178830
178974
  ${this.scratchpadStale ? b2`
178831
178975
  <div class="conflict" role="status">
178832
178976
  A newer revision arrived. Keep this draft on the latest revision or discard it.
@@ -178847,7 +178991,8 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178847
178991
  </div>
178848
178992
  ` : ""}
178849
178993
  ${this.scratchpadError ? b2`<div class="error" role="alert">${this.scratchpadError}</div>` : ""}
178850
- <div class="actions">
178994
+ <div class="scratchpadFooter">
178995
+ <span class="editorMeta">rev. ${scratchpad2.revision}</span>
178851
178996
  <dees-button
178852
178997
  size="sm"
178853
178998
  type="accent"
@@ -178857,56 +179002,60 @@ var _DeesHarnessSessionSidebar = class _DeesHarnessSessionSidebar extends (_a87
178857
179002
  @clicked=${this.saveScratchpad}
178858
179003
  ></dees-button>
178859
179004
  </div>
178860
- </section>
178861
- `;
179005
+ `
179006
+ );
178862
179007
  }
178863
179008
  renderIntelligence() {
178864
- return b2`
178865
- <section class="section intelligenceSection">
178866
- <div class="sectionHeading">
178867
- <dees-icon icon="lucide:Sparkles" iconSize="13"></dees-icon>
178868
- <span>Session Intelligence</span>
179009
+ return this.renderSection(
179010
+ "intelligence",
179011
+ "Session Intelligence",
179012
+ "lucide:Sparkles",
179013
+ b2`
179014
+ <div class="intelligenceHistory" role="log" aria-live="polite">
179015
+ ${this.intelligenceExchanges.length ? b2`
179016
+ <div class="exchangeList">
179017
+ ${repeat5(
179018
+ this.intelligenceExchanges,
179019
+ (exchange) => exchange.id,
179020
+ (exchange) => this.renderExchange(exchange)
179021
+ )}
179022
+ </div>
179023
+ ` : b2`<div class="empty">Ask about this session without interrupting its main work.</div>`}
178869
179024
  </div>
178870
- ${this.intelligenceExchanges.length ? b2`
178871
- <div class="exchangeList" role="log" aria-live="polite">
178872
- ${repeat5(
178873
- this.intelligenceExchanges,
178874
- (exchange) => exchange.id,
178875
- (exchange) => this.renderExchange(exchange)
178876
- )}
179025
+ <div class="intelligenceComposer">
179026
+ <textarea
179027
+ class="intelligenceInput"
179028
+ aria-label="Ask Session Intelligence"
179029
+ placeholder="Ask a parallel question…"
179030
+ maxlength="8192"
179031
+ rows="2"
179032
+ .value=${this.intelligenceQuestion}
179033
+ ?disabled=${this.disabled || this.intelligenceBusy}
179034
+ @input=${(event) => {
179035
+ this.intelligenceQuestion = event.currentTarget.value;
179036
+ }}
179037
+ @keydown=${(event) => {
179038
+ if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
179039
+ event.preventDefault();
179040
+ this.askIntelligence();
179041
+ }
179042
+ }}
179043
+ ></textarea>
179044
+ <div class="intelligenceControls">
179045
+ <span class="hint">Parallel session · Ctrl/⌘ + Enter</span>
179046
+ <dees-button
179047
+ size="sm"
179048
+ type="accent"
179049
+ text="Ask"
179050
+ .status=${this.intelligenceBusy ? "pending" : "normal"}
179051
+ ?disabled=${this.disabled || this.intelligenceBusy || !this.intelligenceQuestion.trim()}
179052
+ @clicked=${this.askIntelligence}
179053
+ ></dees-button>
178877
179054
  </div>
178878
- ` : b2`<div class="empty">Ask about this session without interrupting its main work.</div>`}
178879
- <textarea
178880
- class="intelligenceInput"
178881
- aria-label="Ask Session Intelligence"
178882
- placeholder="Ask a parallel question…"
178883
- maxlength="8192"
178884
- .value=${this.intelligenceQuestion}
178885
- ?disabled=${this.disabled || this.intelligenceBusy}
178886
- @input=${(event) => {
178887
- this.intelligenceQuestion = event.currentTarget.value;
178888
- }}
178889
- @keydown=${(event) => {
178890
- if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
178891
- event.preventDefault();
178892
- this.askIntelligence();
178893
- }
178894
- }}
178895
- ></textarea>
178896
- <div class="hint">Runs separately from the main session. Ctrl/⌘ + Enter to ask.</div>
178897
- ${this.intelligenceError ? b2`<div class="error" role="alert">${this.intelligenceError}</div>` : ""}
178898
- <div class="actions">
178899
- <dees-button
178900
- size="sm"
178901
- type="accent"
178902
- text="Ask"
178903
- .status=${this.intelligenceBusy ? "pending" : "normal"}
178904
- ?disabled=${this.disabled || this.intelligenceBusy || !this.intelligenceQuestion.trim()}
178905
- @clicked=${this.askIntelligence}
178906
- ></dees-button>
179055
+ ${this.intelligenceError ? b2`<div class="error" role="alert">${this.intelligenceError}</div>` : ""}
178907
179056
  </div>
178908
- </section>
178909
- `;
179057
+ `
179058
+ );
178910
179059
  }
178911
179060
  renderExchange(exchangeArg) {
178912
179061
  const answer = exchangeArg.status === "running" ? "Thinking in parallel\u2026" : exchangeArg.status === "error" ? exchangeArg.error || "Session Intelligence failed." : exchangeArg.answer || "";
@@ -178942,6 +179091,7 @@ _scratchpadDraftRevision = new WeakMap();
178942
179091
  _scratchpadDirty = new WeakMap();
178943
179092
  _scratchpadStale = new WeakMap();
178944
179093
  _intelligenceQuestion = new WeakMap();
179094
+ _expandedSection = new WeakMap();
178945
179095
  __decorateElement(_init88, 4, "todos", _todos_dec2, _DeesHarnessSessionSidebar, _todos2);
178946
179096
  __decorateElement(_init88, 4, "showTasks", _showTasks_dec, _DeesHarnessSessionSidebar, _showTasks);
178947
179097
  __decorateElement(_init88, 4, "metrics", _metrics_dec2, _DeesHarnessSessionSidebar, _metrics2);
@@ -178958,6 +179108,7 @@ __decorateElement(_init88, 4, "scratchpadDraftRevision", _scratchpadDraftRevisio
178958
179108
  __decorateElement(_init88, 4, "scratchpadDirty", _scratchpadDirty_dec, _DeesHarnessSessionSidebar, _scratchpadDirty);
178959
179109
  __decorateElement(_init88, 4, "scratchpadStale", _scratchpadStale_dec, _DeesHarnessSessionSidebar, _scratchpadStale);
178960
179110
  __decorateElement(_init88, 4, "intelligenceQuestion", _intelligenceQuestion_dec, _DeesHarnessSessionSidebar, _intelligenceQuestion);
179111
+ __decorateElement(_init88, 4, "expandedSection", _expandedSection_dec, _DeesHarnessSessionSidebar, _expandedSection);
178961
179112
  _DeesHarnessSessionSidebar = __decorateElement(_init88, 0, "DeesHarnessSessionSidebar", _DeesHarnessSessionSidebar_decorators, _DeesHarnessSessionSidebar);
178962
179113
  __name(_DeesHarnessSessionSidebar, "DeesHarnessSessionSidebar");
178963
179114
  __publicField(_DeesHarnessSessionSidebar, "demo", demoFunc62);
@@ -178967,8 +179118,10 @@ __publicField(_DeesHarnessSessionSidebar, "styles", [
178967
179118
  cssManager.defaultStyles,
178968
179119
  i`
178969
179120
  :host {
178970
- display: block;
179121
+ display: flex;
179122
+ flex-direction: column;
178971
179123
  min-width: 0;
179124
+ min-height: 0;
178972
179125
  height: 100%;
178973
179126
  font-family: var(--dees-font-family);
178974
179127
  color: var(--dees-color-text-primary);
@@ -178977,32 +179130,206 @@ __publicField(_DeesHarnessSessionSidebar, "styles", [
178977
179130
  .sidebar {
178978
179131
  display: flex;
178979
179132
  flex-direction: column;
178980
- min-height: 100%;
179133
+ min-height: 0;
179134
+ height: 100%;
179135
+ overflow: hidden;
178981
179136
  }
178982
179137
 
178983
179138
  .section {
178984
- padding: var(--dees-spacing-sm) var(--dees-spacing-md);
179139
+ display: flex;
179140
+ flex: 0 0 auto;
179141
+ flex-direction: column;
179142
+ min-height: 0;
179143
+ overflow: hidden;
178985
179144
  border-bottom: 1px solid var(--dees-color-border-subtle);
178986
179145
  }
178987
179146
 
179147
+ .section.expanded {
179148
+ flex: 1 1 0;
179149
+ }
179150
+
178988
179151
  .section:last-child {
178989
179152
  border-bottom: 0;
178990
179153
  }
178991
179154
 
178992
179155
  .sectionHeading {
178993
179156
  display: flex;
179157
+ flex: 0 0 auto;
178994
179158
  align-items: center;
178995
179159
  gap: var(--dees-spacing-xs);
178996
- margin-bottom: var(--dees-spacing-sm);
179160
+ width: 100%;
179161
+ min-height: 30px;
179162
+ margin: 0;
179163
+ padding: 6px var(--dees-spacing-md) 6px var(--dees-spacing-xs);
179164
+ border: 0;
179165
+ background: var(--dees-color-bg-secondary);
178997
179166
  color: var(--dees-color-text-primary);
179167
+ font-family: inherit;
178998
179168
  font-size: var(--dees-font-control-size-sm, 12px);
178999
179169
  font-weight: 650;
179170
+ text-align: left;
179171
+ cursor: pointer;
179172
+ }
179173
+
179174
+ .sectionHeading:hover {
179175
+ background: var(--dees-color-badge-default-bg);
179176
+ }
179177
+
179178
+ .sectionHeading:focus-visible {
179179
+ position: relative;
179180
+ z-index: 1;
179181
+ outline: 2px solid var(--dees-color-accent-primary);
179182
+ outline-offset: -2px;
179000
179183
  }
179001
179184
 
179002
179185
  .sectionHeading dees-icon {
179186
+ flex: 0 0 auto;
179003
179187
  color: var(--dees-color-text-secondary);
179004
179188
  }
179005
179189
 
179190
+ .sectionHeadingText {
179191
+ min-width: 0;
179192
+ overflow: hidden;
179193
+ text-overflow: ellipsis;
179194
+ white-space: nowrap;
179195
+ }
179196
+
179197
+ .sectionSummary {
179198
+ flex: 0 0 auto;
179199
+ margin-left: auto;
179200
+ color: var(--dees-color-text-muted);
179201
+ font-size: var(--dees-font-caption2-size, 10px);
179202
+ font-variant-numeric: tabular-nums;
179203
+ font-weight: 500;
179204
+ }
179205
+
179206
+ .sectionContent {
179207
+ flex: 1;
179208
+ min-height: 0;
179209
+ overflow-x: hidden;
179210
+ overflow-y: auto;
179211
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
179212
+ scrollbar-width: thin;
179213
+ scrollbar-color: var(--dees-color-scrollbar-thumb) transparent;
179214
+ }
179215
+
179216
+ .sectionContent[hidden] {
179217
+ display: none;
179218
+ }
179219
+
179220
+ .sectionContent dees-harness-todos {
179221
+ min-width: 0;
179222
+ }
179223
+
179224
+ .scratchpadSection .sectionContent:not([hidden]) {
179225
+ display: flex;
179226
+ flex-direction: column;
179227
+ overflow: hidden;
179228
+ padding: 0;
179229
+ }
179230
+
179231
+ .scratchpadSection textarea {
179232
+ flex: 1;
179233
+ min-height: 0;
179234
+ resize: none;
179235
+ overflow-y: auto;
179236
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
179237
+ border: 0;
179238
+ border-radius: 0;
179239
+ background: color-mix(in srgb, var(--dees-color-bg-secondary) 92%, black);
179240
+ color: var(--dees-color-text-secondary);
179241
+ }
179242
+
179243
+ .scratchpadSection textarea:focus-visible {
179244
+ border-color: transparent;
179245
+ background: color-mix(in srgb, var(--dees-color-bg-secondary) 92%, black);
179246
+ box-shadow: none;
179247
+ }
179248
+
179249
+ .scratchpadSection .conflict,
179250
+ .scratchpadSection .error {
179251
+ margin-right: var(--dees-spacing-md);
179252
+ margin-left: var(--dees-spacing-md);
179253
+ }
179254
+
179255
+ .scratchpadFooter {
179256
+ display: flex;
179257
+ flex: 0 0 auto;
179258
+ align-items: center;
179259
+ justify-content: space-between;
179260
+ gap: var(--dees-spacing-sm);
179261
+ padding: var(--dees-spacing-xs) var(--dees-spacing-md) var(--dees-spacing-sm);
179262
+ border-top: 0;
179263
+ background: linear-gradient(
179264
+ to bottom,
179265
+ color-mix(in srgb, var(--dees-color-bg-secondary) 92%, black),
179266
+ var(--dees-color-bg-secondary)
179267
+ );
179268
+ }
179269
+
179270
+ .scratchpadFooter .editorMeta {
179271
+ margin-top: 0;
179272
+ }
179273
+
179274
+ .intelligenceSection .sectionContent:not([hidden]) {
179275
+ display: flex;
179276
+ flex-direction: column;
179277
+ overflow: hidden;
179278
+ padding: 0;
179279
+ }
179280
+
179281
+ .intelligenceHistory {
179282
+ flex: 1;
179283
+ min-height: 0;
179284
+ overflow-x: hidden;
179285
+ overflow-y: auto;
179286
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
179287
+ scrollbar-width: thin;
179288
+ scrollbar-color: var(--dees-color-scrollbar-thumb) transparent;
179289
+ }
179290
+
179291
+ .intelligenceComposer {
179292
+ flex: 0 0 auto;
179293
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md) var(--dees-spacing-md);
179294
+ background: linear-gradient(
179295
+ to bottom,
179296
+ var(--dees-color-bg-primary),
179297
+ var(--dees-color-bg-secondary)
179298
+ );
179299
+ box-shadow: var(--dees-shadow-up-sm);
179300
+ }
179301
+
179302
+ .intelligenceComposer textarea {
179303
+ min-height: 64px;
179304
+ max-height: 160px;
179305
+ resize: none;
179306
+ padding: var(--dees-spacing-sm) 0;
179307
+ border: 0;
179308
+ border-radius: 0;
179309
+ background: transparent;
179310
+ color: var(--dees-color-text-primary);
179311
+ font-family: inherit;
179312
+ font-size: var(--dees-font-control-size, 13px);
179313
+ }
179314
+
179315
+ .intelligenceComposer textarea:focus-visible {
179316
+ border-color: transparent;
179317
+ box-shadow: none;
179318
+ outline: 2px solid color-mix(in srgb, var(--dees-color-accent-primary) 55%, transparent);
179319
+ outline-offset: 2px;
179320
+ }
179321
+
179322
+ .intelligenceControls {
179323
+ display: flex;
179324
+ align-items: center;
179325
+ gap: var(--dees-spacing-sm);
179326
+ }
179327
+
179328
+ .intelligenceControls .hint {
179329
+ flex: 1;
179330
+ min-width: 0;
179331
+ }
179332
+
179006
179333
  .metricList {
179007
179334
  display: grid;
179008
179335
  gap: 6px;
@@ -179265,9 +179592,9 @@ var DeesHarnessUsage = _DeesHarnessUsage;
179265
179592
  init_dist_ts26();
179266
179593
  init_theme();
179267
179594
  init_dees_icon();
179268
- var _toolRegistry_dec5, _modeOptions_dec2, _mode_dec3, _effortOptions_dec2, _reasoningEffort_dec2, _modelOptions_dec2, _model_dec2, _attachments_dec2, _composerValue_dec, _queuedCount_dec2, _busy_dec4, _disabled_dec7, _showTimestamps_dec2, _showRoles_dec2, _showToolbar_dec, _subheading_dec, _heading_dec6, _sessionSidebarOpen_dec, _intelligenceError_dec2, _intelligenceBusy_dec2, _intelligenceExchanges_dec2, _sessionIntelligenceEnabled_dec, _scratchpadError_dec2, _scratchpadBusy_dec2, _scratchpad_dec2, _sessionMetrics_dec, _showSessionSidebar_dec, _showTodosPanel_dec, _todos_dec3, _usage_dec2, _status_dec6, _questions_dec2, _permissions_dec2, _messages_dec2, _a89, _DeesHarnessChat_decorators, _init90, _messages2, _permissions2, _questions2, _status6, _usage2, _todos3, _showTodosPanel, _showSessionSidebar, _sessionMetrics, _scratchpad2, _scratchpadBusy2, _scratchpadError2, _sessionIntelligenceEnabled, _intelligenceExchanges2, _intelligenceBusy2, _intelligenceError2, _sessionSidebarOpen, _heading6, _subheading, _showToolbar, _showRoles2, _showTimestamps2, _disabled7, _busy4, _queuedCount2, _composerValue, _attachments2, _model2, _modelOptions2, _reasoningEffort2, _effortOptions2, _mode3, _modeOptions2, _toolRegistry5;
179595
+ var _toolRegistry_dec5, _modeOptions_dec2, _mode_dec3, _effortOptions_dec2, _reasoningEffort_dec2, _modelOptions_dec2, _model_dec2, _attachments_dec2, _composerValue_dec, _queuedCount_dec2, _busy_dec4, _disabled_dec7, _showTimestamps_dec2, _showRoles_dec2, _showToolbar_dec, _subheading_dec, _heading_dec6, _narrowSessionLayout_dec, _desktopSessionSidebarVisible_dec, _sessionSidebarOpen_dec, _intelligenceError_dec2, _intelligenceBusy_dec2, _intelligenceExchanges_dec2, _sessionIntelligenceEnabled_dec, _scratchpadError_dec2, _scratchpadBusy_dec2, _scratchpad_dec2, _sessionMetrics_dec, _showSessionSidebar_dec, _showTodosPanel_dec, _todos_dec3, _usage_dec2, _status_dec6, _questions_dec2, _permissions_dec2, _messages_dec2, _a89, _DeesHarnessChat_decorators, _init90, _messages2, _permissions2, _questions2, _status6, _usage2, _todos3, _showTodosPanel, _showSessionSidebar, _sessionMetrics, _scratchpad2, _scratchpadBusy2, _scratchpadError2, _sessionIntelligenceEnabled, _intelligenceExchanges2, _intelligenceBusy2, _intelligenceError2, _sessionSidebarOpen, _desktopSessionSidebarVisible, _narrowSessionLayout, _heading6, _subheading, _showToolbar, _showRoles2, _showTimestamps2, _disabled7, _busy4, _queuedCount2, _composerValue, _attachments2, _model2, _modelOptions2, _reasoningEffort2, _effortOptions2, _mode3, _modeOptions2, _toolRegistry5;
179269
179596
  _DeesHarnessChat_decorators = [customElement("dees-harness-chat")];
179270
- var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _messages_dec2 = [n5({ attribute: false })], _permissions_dec2 = [n5({ attribute: false })], _questions_dec2 = [n5({ attribute: false })], _status_dec6 = [n5({ attribute: false })], _usage_dec2 = [n5({ attribute: false })], _todos_dec3 = [n5({ attribute: false })], _showTodosPanel_dec = [n5({ type: Boolean })], _showSessionSidebar_dec = [n5({ type: Boolean })], _sessionMetrics_dec = [n5({ attribute: false })], _scratchpad_dec2 = [n5({ attribute: false })], _scratchpadBusy_dec2 = [n5({ type: Boolean })], _scratchpadError_dec2 = [n5()], _sessionIntelligenceEnabled_dec = [n5({ type: Boolean })], _intelligenceExchanges_dec2 = [n5({ attribute: false })], _intelligenceBusy_dec2 = [n5({ type: Boolean })], _intelligenceError_dec2 = [n5()], _sessionSidebarOpen_dec = [r5()], _heading_dec6 = [n5()], _subheading_dec = [n5()], _showToolbar_dec = [n5({ type: Boolean })], _showRoles_dec2 = [n5({ type: Boolean })], _showTimestamps_dec2 = [n5({ type: Boolean })], _disabled_dec7 = [n5({ type: Boolean })], _busy_dec4 = [n5({ type: Boolean })], _queuedCount_dec2 = [n5({ type: Number })], _composerValue_dec = [n5()], _attachments_dec2 = [n5({ attribute: false })], _model_dec2 = [n5()], _modelOptions_dec2 = [n5({ attribute: false })], _reasoningEffort_dec2 = [n5()], _effortOptions_dec2 = [n5({ attribute: false })], _mode_dec3 = [n5()], _modeOptions_dec2 = [n5({ attribute: false })], _toolRegistry_dec5 = [n5({ attribute: false })], _a89) {
179597
+ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _messages_dec2 = [n5({ attribute: false })], _permissions_dec2 = [n5({ attribute: false })], _questions_dec2 = [n5({ attribute: false })], _status_dec6 = [n5({ attribute: false })], _usage_dec2 = [n5({ attribute: false })], _todos_dec3 = [n5({ attribute: false })], _showTodosPanel_dec = [n5({ type: Boolean })], _showSessionSidebar_dec = [n5({ type: Boolean })], _sessionMetrics_dec = [n5({ attribute: false })], _scratchpad_dec2 = [n5({ attribute: false })], _scratchpadBusy_dec2 = [n5({ type: Boolean })], _scratchpadError_dec2 = [n5()], _sessionIntelligenceEnabled_dec = [n5({ type: Boolean })], _intelligenceExchanges_dec2 = [n5({ attribute: false })], _intelligenceBusy_dec2 = [n5({ type: Boolean })], _intelligenceError_dec2 = [n5()], _sessionSidebarOpen_dec = [r5()], _desktopSessionSidebarVisible_dec = [r5()], _narrowSessionLayout_dec = [r5()], _heading_dec6 = [n5()], _subheading_dec = [n5()], _showToolbar_dec = [n5({ type: Boolean })], _showRoles_dec2 = [n5({ type: Boolean })], _showTimestamps_dec2 = [n5({ type: Boolean })], _disabled_dec7 = [n5({ type: Boolean })], _busy_dec4 = [n5({ type: Boolean })], _queuedCount_dec2 = [n5({ type: Number })], _composerValue_dec = [n5()], _attachments_dec2 = [n5({ attribute: false })], _model_dec2 = [n5()], _modelOptions_dec2 = [n5({ attribute: false })], _reasoningEffort_dec2 = [n5()], _effortOptions_dec2 = [n5({ attribute: false })], _mode_dec3 = [n5()], _modeOptions_dec2 = [n5({ attribute: false })], _toolRegistry_dec5 = [n5({ attribute: false })], _a89) {
179271
179598
  constructor() {
179272
179599
  super(...arguments);
179273
179600
  __privateAdd(this, _messages2, __runInitializers(_init90, 8, this, [])), __runInitializers(_init90, 11, this);
@@ -179287,24 +179614,31 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _mess
179287
179614
  __privateAdd(this, _intelligenceBusy2, __runInitializers(_init90, 64, this, false)), __runInitializers(_init90, 67, this);
179288
179615
  __privateAdd(this, _intelligenceError2, __runInitializers(_init90, 68, this, "")), __runInitializers(_init90, 71, this);
179289
179616
  __privateAdd(this, _sessionSidebarOpen, __runInitializers(_init90, 72, this, false)), __runInitializers(_init90, 75, this);
179290
- __privateAdd(this, _heading6, __runInitializers(_init90, 76, this, "")), __runInitializers(_init90, 79, this);
179291
- __privateAdd(this, _subheading, __runInitializers(_init90, 80, this, "")), __runInitializers(_init90, 83, this);
179292
- __privateAdd(this, _showToolbar, __runInitializers(_init90, 84, this, true)), __runInitializers(_init90, 87, this);
179293
- __privateAdd(this, _showRoles2, __runInitializers(_init90, 88, this, true)), __runInitializers(_init90, 91, this);
179294
- __privateAdd(this, _showTimestamps2, __runInitializers(_init90, 92, this, true)), __runInitializers(_init90, 95, this);
179295
- __privateAdd(this, _disabled7, __runInitializers(_init90, 96, this, false)), __runInitializers(_init90, 99, this);
179296
- __privateAdd(this, _busy4, __runInitializers(_init90, 100, this, false)), __runInitializers(_init90, 103, this);
179297
- __privateAdd(this, _queuedCount2, __runInitializers(_init90, 104, this, 0)), __runInitializers(_init90, 107, this);
179298
- __privateAdd(this, _composerValue, __runInitializers(_init90, 108, this, "")), __runInitializers(_init90, 111, this);
179299
- __privateAdd(this, _attachments2, __runInitializers(_init90, 112, this, [])), __runInitializers(_init90, 115, this);
179300
- __privateAdd(this, _model2, __runInitializers(_init90, 116, this, "")), __runInitializers(_init90, 119, this);
179301
- __privateAdd(this, _modelOptions2, __runInitializers(_init90, 120, this, [])), __runInitializers(_init90, 123, this);
179302
- __privateAdd(this, _reasoningEffort2, __runInitializers(_init90, 124, this, "")), __runInitializers(_init90, 127, this);
179303
- __privateAdd(this, _effortOptions2, __runInitializers(_init90, 128, this, [])), __runInitializers(_init90, 131, this);
179304
- __privateAdd(this, _mode3, __runInitializers(_init90, 132, this, "")), __runInitializers(_init90, 135, this);
179305
- __privateAdd(this, _modeOptions2, __runInitializers(_init90, 136, this, [])), __runInitializers(_init90, 139, this);
179306
- __privateAdd(this, _toolRegistry5, __runInitializers(_init90, 140, this, DeesHarnessToolRegistry.default)), __runInitializers(_init90, 143, this);
179617
+ __privateAdd(this, _desktopSessionSidebarVisible, __runInitializers(_init90, 76, this, true)), __runInitializers(_init90, 79, this);
179618
+ __privateAdd(this, _narrowSessionLayout, __runInitializers(_init90, 80, this, false)), __runInitializers(_init90, 83, this);
179619
+ __publicField(this, "sessionLayoutResizeObserver");
179620
+ __privateAdd(this, _heading6, __runInitializers(_init90, 84, this, "")), __runInitializers(_init90, 87, this);
179621
+ __privateAdd(this, _subheading, __runInitializers(_init90, 88, this, "")), __runInitializers(_init90, 91, this);
179622
+ __privateAdd(this, _showToolbar, __runInitializers(_init90, 92, this, true)), __runInitializers(_init90, 95, this);
179623
+ __privateAdd(this, _showRoles2, __runInitializers(_init90, 96, this, true)), __runInitializers(_init90, 99, this);
179624
+ __privateAdd(this, _showTimestamps2, __runInitializers(_init90, 100, this, true)), __runInitializers(_init90, 103, this);
179625
+ __privateAdd(this, _disabled7, __runInitializers(_init90, 104, this, false)), __runInitializers(_init90, 107, this);
179626
+ __privateAdd(this, _busy4, __runInitializers(_init90, 108, this, false)), __runInitializers(_init90, 111, this);
179627
+ __privateAdd(this, _queuedCount2, __runInitializers(_init90, 112, this, 0)), __runInitializers(_init90, 115, this);
179628
+ __privateAdd(this, _composerValue, __runInitializers(_init90, 116, this, "")), __runInitializers(_init90, 119, this);
179629
+ __privateAdd(this, _attachments2, __runInitializers(_init90, 120, this, [])), __runInitializers(_init90, 123, this);
179630
+ __privateAdd(this, _model2, __runInitializers(_init90, 124, this, "")), __runInitializers(_init90, 127, this);
179631
+ __privateAdd(this, _modelOptions2, __runInitializers(_init90, 128, this, [])), __runInitializers(_init90, 131, this);
179632
+ __privateAdd(this, _reasoningEffort2, __runInitializers(_init90, 132, this, "")), __runInitializers(_init90, 135, this);
179633
+ __privateAdd(this, _effortOptions2, __runInitializers(_init90, 136, this, [])), __runInitializers(_init90, 139, this);
179634
+ __privateAdd(this, _mode3, __runInitializers(_init90, 140, this, "")), __runInitializers(_init90, 143, this);
179635
+ __privateAdd(this, _modeOptions2, __runInitializers(_init90, 144, this, [])), __runInitializers(_init90, 147, this);
179636
+ __privateAdd(this, _toolRegistry5, __runInitializers(_init90, 148, this, DeesHarnessToolRegistry.default)), __runInitializers(_init90, 151, this);
179307
179637
  __publicField(this, "toggleSessionSidebar", /* @__PURE__ */ __name(() => {
179638
+ if (!this.narrowSessionLayout) {
179639
+ this.desktopSessionSidebarVisible = !this.desktopSessionSidebarVisible;
179640
+ return;
179641
+ }
179308
179642
  if (this.sessionSidebarOpen) {
179309
179643
  void this.closeSessionSidebar();
179310
179644
  return;
@@ -179328,6 +179662,29 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _mess
179328
179662
  scrollToBottom(force = false) {
179329
179663
  this.listElement?.scrollToBottom(force);
179330
179664
  }
179665
+ async connectedCallback() {
179666
+ await super.connectedCallback();
179667
+ await this.updateComplete;
179668
+ if (!this.isConnected) return;
179669
+ this.syncSessionLayout(this.getBoundingClientRect().width);
179670
+ this.sessionLayoutResizeObserver?.disconnect();
179671
+ this.sessionLayoutResizeObserver = new ResizeObserver((entries) => {
179672
+ const entry = entries[0];
179673
+ if (entry) this.syncSessionLayout(entry.contentRect.width);
179674
+ });
179675
+ this.sessionLayoutResizeObserver.observe(this);
179676
+ }
179677
+ async disconnectedCallback() {
179678
+ this.sessionLayoutResizeObserver?.disconnect();
179679
+ this.sessionLayoutResizeObserver = void 0;
179680
+ await super.disconnectedCallback();
179681
+ }
179682
+ syncSessionLayout(widthArg) {
179683
+ const narrow = widthArg <= 680;
179684
+ if (narrow === this.narrowSessionLayout) return;
179685
+ this.narrowSessionLayout = narrow;
179686
+ this.sessionSidebarOpen = false;
179687
+ }
179331
179688
  get effectiveTodos() {
179332
179689
  if (this.todos.length) return this.todos;
179333
179690
  for (let index3 = this.messages.length - 1; index3 >= 0; index3--) {
@@ -179360,7 +179717,9 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _mess
179360
179717
  async closeSessionSidebar() {
179361
179718
  this.sessionSidebarOpen = false;
179362
179719
  await this.updateComplete;
179363
- const toggleButton = this.shadowRoot?.querySelector(".sessionPanelToggle");
179720
+ const toggleButton = this.shadowRoot?.querySelector(
179721
+ this.showToolbar ? ".toolbarSessionPanelToggle" : ".sessionPanelToggle"
179722
+ );
179364
179723
  toggleButton?.focus();
179365
179724
  }
179366
179725
  // ----------------------------------------------------------------- render
@@ -179386,7 +179745,7 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _mess
179386
179745
  <span class="composerContextTitle">${this.heading}</span>
179387
179746
  </div>
179388
179747
  ` : ""}
179389
- ${this.hasSessionSidebar ? b2`
179748
+ ${this.hasSessionSidebar && !this.showToolbar ? b2`
179390
179749
  <button
179391
179750
  class="sessionPanelToggle"
179392
179751
  type="button"
@@ -179411,11 +179770,13 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _mess
179411
179770
  ></button>
179412
179771
  <aside
179413
179772
  id="harness-session-panel"
179414
- class=${`todosPanel sessionPanel ${this.sessionSidebarOpen ? "open" : ""}`}
179773
+ class=${`todosPanel sessionPanel ${this.sessionSidebarOpen ? "open" : ""} ${this.desktopSessionSidebarVisible ? "" : "desktopHidden"}`}
179415
179774
  aria-label="Session details"
179775
+ aria-hidden=${String(this.narrowSessionLayout ? !this.sessionSidebarOpen : !this.desktopSessionSidebarVisible)}
179776
+ ?inert=${this.narrowSessionLayout ? !this.sessionSidebarOpen : !this.desktopSessionSidebarVisible}
179416
179777
  tabindex="-1"
179417
179778
  @keydown=${(event) => {
179418
- if (event.key !== "Escape") return;
179779
+ if (event.key !== "Escape" || !this.narrowSessionLayout) return;
179419
179780
  event.preventDefault();
179420
179781
  event.stopPropagation();
179421
179782
  void this.closeSessionSidebar();
@@ -179486,21 +179847,26 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a89 = DeesElement, _mess
179486
179847
  </div>
179487
179848
  <div class="toolbarActions">
179488
179849
  <dees-harness-usage compact .usage=${this.usage}></dees-harness-usage>
179489
- <dees-button
179490
- size="icon"
179491
- type="ghost"
179492
- icon="lucide:PanelLeft"
179493
- text="Toggle chat sidebar"
179494
- title="Toggle chat sidebar"
179495
- @clicked=${() => this.emit("harness-toggle-sidebar")}
179496
- ></dees-button>
179850
+ ${this.hasSessionSidebar ? b2`
179851
+ <button
179852
+ class="toolbarSessionPanelToggle"
179853
+ type="button"
179854
+ aria-label="Toggle session details"
179855
+ title="Toggle session details"
179856
+ aria-expanded=${String(this.narrowSessionLayout ? this.sessionSidebarOpen : this.desktopSessionSidebarVisible)}
179857
+ aria-controls="harness-session-panel"
179858
+ @click=${this.toggleSessionSidebar}
179859
+ >
179860
+ <dees-icon
179861
+ icon=${this.narrowSessionLayout ? this.sessionSidebarOpen ? "lucide:PanelRightClose" : "lucide:PanelRightOpen" : this.desktopSessionSidebarVisible ? "lucide:PanelRightClose" : "lucide:PanelRightOpen"}
179862
+ iconSize="16"
179863
+ ></dees-icon>
179864
+ </button>
179865
+ ` : ""}
179497
179866
  </div>
179498
179867
  </div>
179499
179868
  `;
179500
179869
  }
179501
- emit(name) {
179502
- this.dispatchEvent(new CustomEvent(name, { detail: {}, bubbles: true, composed: true }));
179503
- }
179504
179870
  };
179505
179871
  _init90 = __decoratorStart(_a89);
179506
179872
  _messages2 = new WeakMap();
@@ -179520,6 +179886,8 @@ _intelligenceExchanges2 = new WeakMap();
179520
179886
  _intelligenceBusy2 = new WeakMap();
179521
179887
  _intelligenceError2 = new WeakMap();
179522
179888
  _sessionSidebarOpen = new WeakMap();
179889
+ _desktopSessionSidebarVisible = new WeakMap();
179890
+ _narrowSessionLayout = new WeakMap();
179523
179891
  _heading6 = new WeakMap();
179524
179892
  _subheading = new WeakMap();
179525
179893
  _showToolbar = new WeakMap();
@@ -179554,6 +179922,8 @@ __decorateElement(_init90, 4, "intelligenceExchanges", _intelligenceExchanges_de
179554
179922
  __decorateElement(_init90, 4, "intelligenceBusy", _intelligenceBusy_dec2, _DeesHarnessChat, _intelligenceBusy2);
179555
179923
  __decorateElement(_init90, 4, "intelligenceError", _intelligenceError_dec2, _DeesHarnessChat, _intelligenceError2);
179556
179924
  __decorateElement(_init90, 4, "sessionSidebarOpen", _sessionSidebarOpen_dec, _DeesHarnessChat, _sessionSidebarOpen);
179925
+ __decorateElement(_init90, 4, "desktopSessionSidebarVisible", _desktopSessionSidebarVisible_dec, _DeesHarnessChat, _desktopSessionSidebarVisible);
179926
+ __decorateElement(_init90, 4, "narrowSessionLayout", _narrowSessionLayout_dec, _DeesHarnessChat, _narrowSessionLayout);
179557
179927
  __decorateElement(_init90, 4, "heading", _heading_dec6, _DeesHarnessChat, _heading6);
179558
179928
  __decorateElement(_init90, 4, "subheading", _subheading_dec, _DeesHarnessChat, _subheading);
179559
179929
  __decorateElement(_init90, 4, "showToolbar", _showToolbar_dec, _DeesHarnessChat, _showToolbar);
@@ -179614,21 +179984,32 @@ __publicField(_DeesHarnessChat, "styles", [
179614
179984
  .sessionPanel {
179615
179985
  flex: 0 0 232px;
179616
179986
  min-width: 0;
179617
- overflow-y: auto;
179618
- scrollbar-width: thin;
179619
- scrollbar-color: var(--dees-color-scrollbar-thumb) transparent;
179620
- padding: var(--dees-spacing-sm) var(--dees-spacing-md);
179987
+ min-height: 0;
179988
+ display: flex;
179989
+ flex-direction: column;
179990
+ overflow: hidden;
179991
+ padding: 0;
179621
179992
  border-left: 1px solid var(--dees-color-border-subtle);
179622
179993
  background: var(--dees-color-bg-secondary);
179623
179994
  }
179624
179995
 
179996
+ .sessionPanel.desktopHidden {
179997
+ display: none;
179998
+ }
179999
+
180000
+ .sessionPanel > dees-harness-session-sidebar {
180001
+ flex: 1;
180002
+ min-height: 0;
180003
+ }
180004
+
179625
180005
  .sessionPanelClose,
179626
180006
  .sessionPanelToggle,
179627
180007
  .sessionPanelBackdrop {
179628
180008
  display: none;
179629
180009
  }
179630
180010
 
179631
- .sessionPanelToggle {
180011
+ .sessionPanelToggle,
180012
+ .toolbarSessionPanelToggle {
179632
180013
  box-sizing: border-box;
179633
180014
  width: var(--dees-control-height-lg);
179634
180015
  height: var(--dees-control-height-lg);
@@ -179643,11 +180024,17 @@ __publicField(_DeesHarnessChat, "styles", [
179643
180024
  cursor: pointer;
179644
180025
  }
179645
180026
 
179646
- .sessionPanelToggle:hover {
180027
+ .toolbarSessionPanelToggle {
180028
+ display: flex;
180029
+ }
180030
+
180031
+ .sessionPanelToggle:hover,
180032
+ .toolbarSessionPanelToggle:hover {
179647
180033
  background: var(--dees-color-badge-default-bg);
179648
180034
  }
179649
180035
 
179650
- .sessionPanelToggle:focus-visible {
180036
+ .sessionPanelToggle:focus-visible,
180037
+ .toolbarSessionPanelToggle:focus-visible {
179651
180038
  outline: 2px solid var(--dees-color-accent-primary);
179652
180039
  outline-offset: 2px;
179653
180040
  }
@@ -179658,9 +180045,10 @@ __publicField(_DeesHarnessChat, "styles", [
179658
180045
  .sessionPanel {
179659
180046
  position: absolute;
179660
180047
  inset: 0 0 0 auto;
180048
+ display: flex;
179661
180049
  width: min(320px, calc(100% - 36px));
179662
180050
  max-width: none;
179663
- padding-top: 42px;
180051
+ padding: 42px 0 0;
179664
180052
  border-left-color: var(--dees-color-border-default);
179665
180053
  box-shadow: var(--dees-shadow-lg);
179666
180054
  visibility: hidden;
@@ -179670,6 +180058,10 @@ __publicField(_DeesHarnessChat, "styles", [
179670
180058
  visibility 0s linear var(--dees-transition-default);
179671
180059
  }
179672
180060
 
180061
+ .sessionPanel.desktopHidden {
180062
+ display: flex;
180063
+ }
180064
+
179673
180065
  .sessionPanel.open {
179674
180066
  visibility: visible;
179675
180067
  transform: translateX(0);
@@ -203405,7 +203797,7 @@ init_group_runtime();
203405
203797
  // ts_web/00_commitinfo_data.ts
203406
203798
  var commitinfo = {
203407
203799
  name: "@design.estate/dees-catalog",
203408
- version: "5.0.0",
203800
+ version: "6.1.0",
203409
203801
  description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
203410
203802
  };
203411
203803