@design.estate/dees-catalog 6.8.1 → 6.9.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.
@@ -179350,6 +179350,10 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
179350
179350
  __publicField(this, "lastVirtualViewportWidth", 0);
179351
179351
  __publicField(this, "pendingVirtualAnchor");
179352
179352
  __publicField(this, "pendingFullAnchor");
179353
+ __publicField(this, "activeFullAnchor");
179354
+ __publicField(this, "fullAnchorRestoreGeneration", 0);
179355
+ __publicField(this, "fullAnchorRestoreFrame", null);
179356
+ __publicField(this, "fullAnchorRestoreSecondFrame", null);
179353
179357
  __publicField(this, "measurementAnchor");
179354
179358
  __publicField(this, "pendingVirtualRepin", false);
179355
179359
  __publicField(this, "virtualizationEnabled", false);
@@ -179383,9 +179387,18 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
179383
179387
  if (event.composedPath().some(
179384
179388
  (candidate) => candidate instanceof _DeesHarnessMessageList && candidate !== this
179385
179389
  )) return;
179386
- if (event.type === "wheel" && event.deltaY >= 0) return;
179387
- if (event.type === "keydown" && !["ArrowUp", "PageUp", "Home"].includes(event.key)) return;
179390
+ if (event.type === "wheel") {
179391
+ this.cancelFullAnchorRestore();
179392
+ if (event.deltaY >= 0) return;
179393
+ }
179394
+ if (event.type === "keydown" && !["ArrowUp", "PageUp", "Home"].includes(event.key)) {
179395
+ if (["ArrowDown", "PageDown", "End", " "].includes(event.key)) {
179396
+ this.cancelFullAnchorRestore();
179397
+ }
179398
+ return;
179399
+ }
179388
179400
  if (event.type === "pointerdown" && event.target !== this.scrollContainer) return;
179401
+ this.cancelFullAnchorRestore();
179389
179402
  this.userUnpinned = true;
179390
179403
  this.measurementAnchor = void 0;
179391
179404
  }, "handleUserScrollIntent"));
@@ -179555,16 +179568,15 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
179555
179568
  rebuildTimeline() {
179556
179569
  const container = this.scrollContainer;
179557
179570
  const preserveAnchor = this.userUnpinned || !this.autoFollow;
179558
- const anchor = container && preserveAnchor ? this.captureCurrentAnchor(container) : void 0;
179571
+ const anchor = container && preserveAnchor ? this.activeFullAnchor ?? this.captureCurrentAnchor(container) : void 0;
179572
+ const anchorContentBoundaryKey = anchor ? this.lastContentKeyForTimelineItem(anchor.key) : void 0;
179573
+ this.cancelFullAnchorRestore();
179559
179574
  const nextItems = this.buildTimelineRenderItems();
179560
179575
  const retainedKeys = new Set(nextItems.map((item) => item.key));
179561
- const contentKeys = [
179562
- ...this.messages.map((message2) => `message:${message2.id}`),
179563
- ...this.permissions.map((request) => `permission:${request.id}`),
179564
- ...this.questions.map((request) => `question:${request.id}`)
179565
- ];
179576
+ const contentKeys = nextItems.flatMap((item) => this.contentKeysForTimelineItem(item));
179577
+ const anchorContentBoundaryIndex = anchorContentBoundaryKey ? contentKeys.indexOf(anchorContentBoundaryKey) : -1;
179566
179578
  this.currentNewContentKeys = new Set(
179567
- contentKeys.filter((key2) => !this.knownContentKeys.has(key2))
179579
+ contentKeys.filter((key2, index3) => !this.knownContentKeys.has(key2) && (anchorContentBoundaryIndex < 0 || index3 > anchorContentBoundaryIndex))
179568
179580
  );
179569
179581
  this.knownContentKeys.clear();
179570
179582
  for (const key2 of contentKeys) this.knownContentKeys.add(key2);
@@ -179641,6 +179653,14 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
179641
179653
  this.setInitialVirtualRange();
179642
179654
  }
179643
179655
  }
179656
+ contentKeysForTimelineItem(itemArg) {
179657
+ return itemArg.kind === "tool-group" ? itemArg.messages.map((item) => item.key) : [itemArg.key];
179658
+ }
179659
+ lastContentKeyForTimelineItem(keyArg) {
179660
+ const item = this.timelineRenderItems.find((candidate) => candidate.key === keyArg);
179661
+ if (!item) return void 0;
179662
+ return item.kind === "tool-group" ? item.messages.at(-1)?.key : item.key;
179663
+ }
179644
179664
  pruneViewState(stateArg, messageIdsArg, permissionIdsArg, questionIdsArg) {
179645
179665
  const messageIds = new Set(messageIdsArg);
179646
179666
  const permissionIds = new Set(permissionIdsArg);
@@ -179998,6 +180018,7 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
179998
180018
  const container = this.scrollContainer;
179999
180019
  if (!container) return;
180000
180020
  if (force) {
180021
+ this.cancelFullAnchorRestore();
180001
180022
  this.userUnpinned = false;
180002
180023
  this.measurementAnchor = void 0;
180003
180024
  }
@@ -180072,7 +180093,7 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
180072
180093
  } else {
180073
180094
  this.disconnectVirtualObservers();
180074
180095
  if (this.pendingFullAnchor) {
180075
- this.restoreFullAnchor(this.scrollContainer, this.pendingFullAnchor);
180096
+ this.scheduleFullAnchorRestore(this.scrollContainer, this.pendingFullAnchor);
180076
180097
  this.pendingFullAnchor = void 0;
180077
180098
  }
180078
180099
  }
@@ -180220,6 +180241,37 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
180220
180241
  if (!element4) return;
180221
180242
  containerArg.scrollTop += element4.getBoundingClientRect().top - containerArg.getBoundingClientRect().top + anchorArg.offset;
180222
180243
  }
180244
+ scheduleFullAnchorRestore(containerArg, anchorArg) {
180245
+ this.cancelFullAnchorRestore();
180246
+ const generation = this.fullAnchorRestoreGeneration;
180247
+ this.activeFullAnchor = anchorArg;
180248
+ const restore = /* @__PURE__ */ __name(() => {
180249
+ if (generation !== this.fullAnchorRestoreGeneration || !this.isConnected || this.scrollContainer !== containerArg) return false;
180250
+ this.restoreFullAnchor(containerArg, anchorArg);
180251
+ return true;
180252
+ }, "restore");
180253
+ restore();
180254
+ queueMicrotask(() => {
180255
+ if (!restore()) return;
180256
+ this.fullAnchorRestoreFrame = requestAnimationFrame(() => {
180257
+ this.fullAnchorRestoreFrame = null;
180258
+ if (!restore()) return;
180259
+ this.fullAnchorRestoreSecondFrame = requestAnimationFrame(() => {
180260
+ this.fullAnchorRestoreSecondFrame = null;
180261
+ if (!restore()) return;
180262
+ this.activeFullAnchor = void 0;
180263
+ });
180264
+ });
180265
+ });
180266
+ }
180267
+ cancelFullAnchorRestore() {
180268
+ this.fullAnchorRestoreGeneration += 1;
180269
+ if (this.fullAnchorRestoreFrame !== null) cancelAnimationFrame(this.fullAnchorRestoreFrame);
180270
+ if (this.fullAnchorRestoreSecondFrame !== null) cancelAnimationFrame(this.fullAnchorRestoreSecondFrame);
180271
+ this.fullAnchorRestoreFrame = null;
180272
+ this.fullAnchorRestoreSecondFrame = null;
180273
+ this.activeFullAnchor = void 0;
180274
+ }
180223
180275
  virtualLocalScrollTop(containerArg) {
180224
180276
  const stack = this.shadowRoot?.querySelector(".virtualStack");
180225
180277
  return Math.max(0, containerArg.scrollTop - (stack?.offsetTop ?? 0));
@@ -180425,6 +180477,7 @@ var _DeesHarnessMessageList = class _DeesHarnessMessageList extends (_a86 = Dees
180425
180477
  }
180426
180478
  async disconnectedCallback() {
180427
180479
  this.disconnectSelectionChangeListener();
180480
+ this.cancelFullAnchorRestore();
180428
180481
  if (this.followFrame !== null) cancelAnimationFrame(this.followFrame);
180429
180482
  if (this.followSecondFrame !== null) cancelAnimationFrame(this.followSecondFrame);
180430
180483
  if (this.entryFrame !== null) cancelAnimationFrame(this.entryFrame);
@@ -180758,11 +180811,12 @@ var demoFunc62 = /* @__PURE__ */ __name(() => b2`
180758
180811
  init_dist_ts26();
180759
180812
  init_theme();
180760
180813
  init_dees_icon();
180761
- var _showModelControls_dec, _modeOptions_dec, _mode_dec2, _effortOptions_dec, _reasoningEffort_dec, _modelOptions_dec, _model_dec, _accountOptions_dec, _account_dec, _maxAttachmentCount_dec, _maxTotalAttachmentBytes_dec, _maxAttachmentBytes_dec, _attachments_dec, _queuedCount_dec, _busy_dec3, _disabled_dec5, _docked_dec, _placeholder_dec6, _value_dec17, _a87, _DeesHarnessComposer_decorators, _init88, _value17, _placeholder6, _docked, _disabled5, _busy3, _queuedCount, _attachments, _maxAttachmentBytes, _maxTotalAttachmentBytes, _maxAttachmentCount, _account, _accountOptions, _model, _modelOptions, _reasoningEffort, _effortOptions, _mode2, _modeOptions, _showModelControls;
180814
+ var _showModelControls_dec, _modeOptions_dec, _mode_dec2, _effortOptions_dec, _reasoningEffort_dec, _modelOptions_dec, _model_dec, _accountOptions_dec, _account_dec, _maxAttachmentCount_dec, _maxTotalAttachmentBytes_dec, _maxAttachmentBytes_dec, _promptFocused_dec, _suggestionsDismissed_dec, _activeSuggestionIndex_dec, _suggestions_dec2, _attachments_dec, _queuedCount_dec, _busy_dec3, _disabled_dec5, _docked_dec, _placeholder_dec6, _value_dec17, _a87, _DeesHarnessComposer_decorators, _init88, _value17, _placeholder6, _docked, _disabled5, _busy3, _queuedCount, _attachments, _suggestions2, _activeSuggestionIndex, _suggestionsDismissed, _promptFocused, _maxAttachmentBytes, _maxTotalAttachmentBytes, _maxAttachmentCount, _account, _accountOptions, _model, _modelOptions, _reasoningEffort, _effortOptions, _mode2, _modeOptions, _showModelControls;
180762
180815
  var toDropdownOptions = /* @__PURE__ */ __name((values) => values.map((value2) => ({ option: value2, key: value2 })), "toDropdownOptions");
180763
180816
  var toLabeledDropdownOptions = /* @__PURE__ */ __name((values) => values.map((value2) => ({ option: value2.label, key: value2.value })), "toLabeledDropdownOptions");
180817
+ var nextSuggestionListId = 0;
180764
180818
  _DeesHarnessComposer_decorators = [customElement("dees-harness-composer")];
180765
- var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElement, _value_dec17 = [n5()], _placeholder_dec6 = [n5()], _docked_dec = [n5({ type: Boolean, reflect: true })], _disabled_dec5 = [n5({ type: Boolean })], _busy_dec3 = [n5({ type: Boolean })], _queuedCount_dec = [n5({ type: Number })], _attachments_dec = [n5({ attribute: false })], _maxAttachmentBytes_dec = [n5({ type: Number })], _maxTotalAttachmentBytes_dec = [n5({ type: Number })], _maxAttachmentCount_dec = [n5({ type: Number })], _account_dec = [n5()], _accountOptions_dec = [n5({ attribute: false })], _model_dec = [n5()], _modelOptions_dec = [n5({ attribute: false })], _reasoningEffort_dec = [n5()], _effortOptions_dec = [n5({ attribute: false })], _mode_dec2 = [n5()], _modeOptions_dec = [n5({ attribute: false })], _showModelControls_dec = [n5({ type: Boolean })], _a87) {
180819
+ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElement, _value_dec17 = [n5()], _placeholder_dec6 = [n5()], _docked_dec = [n5({ type: Boolean, reflect: true })], _disabled_dec5 = [n5({ type: Boolean })], _busy_dec3 = [n5({ type: Boolean })], _queuedCount_dec = [n5({ type: Number })], _attachments_dec = [n5({ attribute: false })], _suggestions_dec2 = [n5({ attribute: false })], _activeSuggestionIndex_dec = [r5()], _suggestionsDismissed_dec = [r5()], _promptFocused_dec = [r5()], _maxAttachmentBytes_dec = [n5({ type: Number })], _maxTotalAttachmentBytes_dec = [n5({ type: Number })], _maxAttachmentCount_dec = [n5({ type: Number })], _account_dec = [n5()], _accountOptions_dec = [n5({ attribute: false })], _model_dec = [n5()], _modelOptions_dec = [n5({ attribute: false })], _reasoningEffort_dec = [n5()], _effortOptions_dec = [n5({ attribute: false })], _mode_dec2 = [n5()], _modeOptions_dec = [n5({ attribute: false })], _showModelControls_dec = [n5({ type: Boolean })], _a87) {
180766
180820
  constructor() {
180767
180821
  super(...arguments);
180768
180822
  __privateAdd(this, _value17, __runInitializers(_init88, 8, this, "")), __runInitializers(_init88, 11, this);
@@ -180772,30 +180826,62 @@ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElemen
180772
180826
  __privateAdd(this, _busy3, __runInitializers(_init88, 24, this, false)), __runInitializers(_init88, 27, this);
180773
180827
  __privateAdd(this, _queuedCount, __runInitializers(_init88, 28, this, 0)), __runInitializers(_init88, 31, this);
180774
180828
  __privateAdd(this, _attachments, __runInitializers(_init88, 32, this, [])), __runInitializers(_init88, 35, this);
180775
- __privateAdd(this, _maxAttachmentBytes, __runInitializers(_init88, 36, this, harnessMaxAttachmentBytes)), __runInitializers(_init88, 39, this);
180776
- __privateAdd(this, _maxTotalAttachmentBytes, __runInitializers(_init88, 40, this, harnessMaxTotalAttachmentBytes)), __runInitializers(_init88, 43, this);
180777
- __privateAdd(this, _maxAttachmentCount, __runInitializers(_init88, 44, this, Number.POSITIVE_INFINITY)), __runInitializers(_init88, 47, this);
180778
- __privateAdd(this, _account, __runInitializers(_init88, 48, this, "")), __runInitializers(_init88, 51, this);
180779
- __privateAdd(this, _accountOptions, __runInitializers(_init88, 52, this, [])), __runInitializers(_init88, 55, this);
180780
- __privateAdd(this, _model, __runInitializers(_init88, 56, this, "")), __runInitializers(_init88, 59, this);
180781
- __privateAdd(this, _modelOptions, __runInitializers(_init88, 60, this, [])), __runInitializers(_init88, 63, this);
180782
- __privateAdd(this, _reasoningEffort, __runInitializers(_init88, 64, this, "")), __runInitializers(_init88, 67, this);
180783
- __privateAdd(this, _effortOptions, __runInitializers(_init88, 68, this, [])), __runInitializers(_init88, 71, this);
180784
- __privateAdd(this, _mode2, __runInitializers(_init88, 72, this, "")), __runInitializers(_init88, 75, this);
180785
- __privateAdd(this, _modeOptions, __runInitializers(_init88, 76, this, [])), __runInitializers(_init88, 79, this);
180786
- __privateAdd(this, _showModelControls, __runInitializers(_init88, 80, this, true)), __runInitializers(_init88, 83, this);
180829
+ __privateAdd(this, _suggestions2, __runInitializers(_init88, 36, this, [])), __runInitializers(_init88, 39, this);
180830
+ __privateAdd(this, _activeSuggestionIndex, __runInitializers(_init88, 40, this, -1)), __runInitializers(_init88, 43, this);
180831
+ __privateAdd(this, _suggestionsDismissed, __runInitializers(_init88, 44, this, false)), __runInitializers(_init88, 47, this);
180832
+ __privateAdd(this, _promptFocused, __runInitializers(_init88, 48, this, false)), __runInitializers(_init88, 51, this);
180833
+ __publicField(this, "composing", false);
180834
+ __publicField(this, "suggestionListId", `dees-harness-composer-suggestions-${++nextSuggestionListId}`);
180835
+ __privateAdd(this, _maxAttachmentBytes, __runInitializers(_init88, 52, this, harnessMaxAttachmentBytes)), __runInitializers(_init88, 55, this);
180836
+ __privateAdd(this, _maxTotalAttachmentBytes, __runInitializers(_init88, 56, this, harnessMaxTotalAttachmentBytes)), __runInitializers(_init88, 59, this);
180837
+ __privateAdd(this, _maxAttachmentCount, __runInitializers(_init88, 60, this, Number.POSITIVE_INFINITY)), __runInitializers(_init88, 63, this);
180838
+ __privateAdd(this, _account, __runInitializers(_init88, 64, this, "")), __runInitializers(_init88, 67, this);
180839
+ __privateAdd(this, _accountOptions, __runInitializers(_init88, 68, this, [])), __runInitializers(_init88, 71, this);
180840
+ __privateAdd(this, _model, __runInitializers(_init88, 72, this, "")), __runInitializers(_init88, 75, this);
180841
+ __privateAdd(this, _modelOptions, __runInitializers(_init88, 76, this, [])), __runInitializers(_init88, 79, this);
180842
+ __privateAdd(this, _reasoningEffort, __runInitializers(_init88, 80, this, "")), __runInitializers(_init88, 83, this);
180843
+ __privateAdd(this, _effortOptions, __runInitializers(_init88, 84, this, [])), __runInitializers(_init88, 87, this);
180844
+ __privateAdd(this, _mode2, __runInitializers(_init88, 88, this, "")), __runInitializers(_init88, 91, this);
180845
+ __privateAdd(this, _modeOptions, __runInitializers(_init88, 92, this, [])), __runInitializers(_init88, 95, this);
180846
+ __privateAdd(this, _showModelControls, __runInitializers(_init88, 96, this, true)), __runInitializers(_init88, 99, this);
180787
180847
  // ------------------------------------------------------------------ input
180788
180848
  __publicField(this, "handleTextInput", /* @__PURE__ */ __name((event) => {
180789
180849
  this.value = event.currentTarget.value;
180850
+ this.resetSuggestionInteraction();
180790
180851
  this.emitInput(this.value);
180791
180852
  this.autogrow();
180792
180853
  }, "handleTextInput"));
180793
180854
  __publicField(this, "handleKeydown", /* @__PURE__ */ __name((event) => {
180855
+ if (event.isComposing || this.composing) return;
180794
180856
  if (event.key === "Enter" && (event.metaKey || event.ctrlKey)) {
180795
180857
  event.preventDefault();
180796
180858
  this.send();
180797
180859
  return;
180798
180860
  }
180861
+ if (this.suggestionsVisible) {
180862
+ if (event.key === "Escape") {
180863
+ event.preventDefault();
180864
+ this.suggestionsDismissed = true;
180865
+ return;
180866
+ }
180867
+ if (!event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {
180868
+ if (event.key === "ArrowDown") {
180869
+ event.preventDefault();
180870
+ this.moveActiveSuggestion(1);
180871
+ return;
180872
+ }
180873
+ if (event.key === "ArrowUp") {
180874
+ event.preventDefault();
180875
+ this.moveActiveSuggestion(-1);
180876
+ return;
180877
+ }
180878
+ if (event.key === "Enter") {
180879
+ event.preventDefault();
180880
+ void this.selectSuggestion(this.activeSuggestionIndex);
180881
+ return;
180882
+ }
180883
+ }
180884
+ }
180799
180885
  if (event.key === "Tab" && event.shiftKey && this.modeOptions.length) {
180800
180886
  event.preventDefault();
180801
180887
  const currentIndex = this.modeOptions.indexOf(this.mode);
@@ -180804,6 +180890,21 @@ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElemen
180804
180890
  this.emit("harness-mode-change", { mode: nextMode });
180805
180891
  }
180806
180892
  }, "handleKeydown"));
180893
+ __publicField(this, "handleCompositionStart", /* @__PURE__ */ __name(() => {
180894
+ this.composing = true;
180895
+ }, "handleCompositionStart"));
180896
+ __publicField(this, "handleCompositionEnd", /* @__PURE__ */ __name(() => {
180897
+ this.composing = false;
180898
+ }, "handleCompositionEnd"));
180899
+ __publicField(this, "handlePromptFocus", /* @__PURE__ */ __name(() => {
180900
+ this.promptFocused = true;
180901
+ }, "handlePromptFocus"));
180902
+ __publicField(this, "handlePromptBlur", /* @__PURE__ */ __name(() => {
180903
+ this.promptFocused = false;
180904
+ }, "handlePromptBlur"));
180905
+ __publicField(this, "handleSuggestionPointerDown", /* @__PURE__ */ __name((event) => {
180906
+ event.preventDefault();
180907
+ }, "handleSuggestionPointerDown"));
180807
180908
  // ------------------------------------------------------------ attachments
180808
180909
  __publicField(this, "handleFileInputChange", /* @__PURE__ */ __name((event) => {
180809
180910
  const input = event.currentTarget;
@@ -180839,17 +180940,28 @@ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElemen
180839
180940
  }
180840
180941
  clear() {
180841
180942
  this.value = "";
180943
+ this.resetSuggestionInteraction();
180842
180944
  this.emitInput("");
180843
180945
  this.autogrow();
180844
180946
  }
180947
+ willUpdate(changedProperties) {
180948
+ super.willUpdate(changedProperties);
180949
+ if (changedProperties.has("suggestions")) this.resetSuggestionInteraction();
180950
+ }
180951
+ updated(changedProperties) {
180952
+ super.updated(changedProperties);
180953
+ this.syncTextareaSuggestionAria();
180954
+ }
180845
180955
  render() {
180846
180956
  return b2`
180847
- <div
180848
- class="composer"
180849
- @dragover=${this.handleDragOver}
180850
- @dragleave=${this.handleDragLeave}
180851
- @drop=${this.handleDrop}
180852
- >
180957
+ <div class="composerShell">
180958
+ ${this.suggestionsVisible ? this.renderSuggestions() : ""}
180959
+ <div
180960
+ class="composer"
180961
+ @dragover=${this.handleDragOver}
180962
+ @dragleave=${this.handleDragLeave}
180963
+ @drop=${this.handleDrop}
180964
+ >
180853
180965
  <input
180854
180966
  class="fileInput"
180855
180967
  type="file"
@@ -180863,11 +180975,16 @@ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElemen
180863
180975
  ` : ""}
180864
180976
  <textarea
180865
180977
  .value=${this.value}
180978
+ aria-label="Message"
180866
180979
  placeholder=${this.placeholder}
180867
180980
  ?disabled=${this.disabled}
180868
180981
  rows="1"
180869
180982
  @input=${this.handleTextInput}
180870
180983
  @keydown=${this.handleKeydown}
180984
+ @focus=${this.handlePromptFocus}
180985
+ @blur=${this.handlePromptBlur}
180986
+ @compositionstart=${this.handleCompositionStart}
180987
+ @compositionend=${this.handleCompositionEnd}
180871
180988
  @paste=${this.handlePaste}
180872
180989
  ></textarea>
180873
180990
  <div class="controlsRow">
@@ -180957,10 +181074,38 @@ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElemen
180957
181074
  Send
180958
181075
  </dees-button>
180959
181076
  `}
181077
+ </div>
180960
181078
  </div>
180961
181079
  </div>
180962
181080
  `;
180963
181081
  }
181082
+ renderSuggestions() {
181083
+ return b2`
181084
+ <ul
181085
+ id=${this.suggestionListId}
181086
+ class="suggestionList"
181087
+ role="listbox"
181088
+ aria-label="Suggestions"
181089
+ @pointerdown=${this.handleSuggestionPointerDown}
181090
+ >
181091
+ ${this.suggestions.map((suggestion, index3) => b2`
181092
+ <li
181093
+ id=${this.suggestionOptionId(index3)}
181094
+ class=${`suggestionOption ${index3 === this.activeSuggestionIndex ? "active" : ""}`}
181095
+ role="option"
181096
+ aria-selected=${String(index3 === this.activeSuggestionIndex)}
181097
+ @pointerenter=${() => {
181098
+ this.activeSuggestionIndex = index3;
181099
+ }}
181100
+ @click=${() => void this.selectSuggestion(index3)}
181101
+ >
181102
+ <span class="suggestionLabel">${suggestion.label}</span>
181103
+ ${suggestion.description ? b2`<span class="suggestionDescription">${suggestion.description}</span>` : ""}
181104
+ </li>
181105
+ `)}
181106
+ </ul>
181107
+ `;
181108
+ }
180964
181109
  renderChip(attachment) {
180965
181110
  const imageUrl = attachment.kind === "image" && attachment.dataBase64 ? `data:${attachment.mediaType};base64,${attachment.dataBase64}` : "";
180966
181111
  return b2`
@@ -180981,6 +181126,75 @@ var _DeesHarnessComposer = class _DeesHarnessComposer extends (_a87 = DeesElemen
180981
181126
  </span>
180982
181127
  `;
180983
181128
  }
181129
+ resetSuggestionInteraction() {
181130
+ this.activeSuggestionIndex = this.suggestions.length ? 0 : -1;
181131
+ this.suggestionsDismissed = false;
181132
+ }
181133
+ get suggestionsVisible() {
181134
+ return this.promptFocused && !this.disabled && !this.suggestionsDismissed && this.suggestions.length > 0;
181135
+ }
181136
+ suggestionOptionId(indexArg) {
181137
+ return `${this.suggestionListId}-option-${indexArg}`;
181138
+ }
181139
+ syncTextareaSuggestionAria() {
181140
+ const textarea = this.shadowRoot?.querySelector("textarea");
181141
+ if (!textarea) return;
181142
+ const suggestionsAvailable = !this.disabled && this.suggestions.length > 0;
181143
+ if (suggestionsAvailable) {
181144
+ textarea.setAttribute("aria-autocomplete", "list");
181145
+ textarea.setAttribute("aria-haspopup", "listbox");
181146
+ } else {
181147
+ textarea.removeAttribute("aria-autocomplete");
181148
+ textarea.removeAttribute("aria-haspopup");
181149
+ }
181150
+ if (this.suggestionsVisible) {
181151
+ textarea.setAttribute("aria-controls", this.suggestionListId);
181152
+ } else {
181153
+ textarea.removeAttribute("aria-controls");
181154
+ }
181155
+ if (this.suggestionsVisible && this.activeSuggestionIndex >= 0 && this.activeSuggestionIndex < this.suggestions.length) {
181156
+ textarea.setAttribute(
181157
+ "aria-activedescendant",
181158
+ this.suggestionOptionId(this.activeSuggestionIndex)
181159
+ );
181160
+ } else {
181161
+ textarea.removeAttribute("aria-activedescendant");
181162
+ }
181163
+ }
181164
+ moveActiveSuggestion(offsetArg) {
181165
+ if (!this.suggestions.length) return;
181166
+ this.activeSuggestionIndex = this.activeSuggestionIndex < 0 ? offsetArg === 1 ? 0 : this.suggestions.length - 1 : (this.activeSuggestionIndex + offsetArg + this.suggestions.length) % this.suggestions.length;
181167
+ void this.scrollActiveSuggestionIntoView();
181168
+ }
181169
+ async scrollActiveSuggestionIntoView() {
181170
+ await this.updateComplete;
181171
+ const list5 = this.shadowRoot?.getElementById(this.suggestionListId);
181172
+ const option2 = this.shadowRoot?.getElementById(
181173
+ this.suggestionOptionId(this.activeSuggestionIndex)
181174
+ );
181175
+ if (!list5 || !option2) return;
181176
+ const optionTop = option2.offsetTop;
181177
+ const optionBottom = optionTop + option2.offsetHeight;
181178
+ if (optionTop < list5.scrollTop) {
181179
+ list5.scrollTop = optionTop;
181180
+ } else if (optionBottom > list5.scrollTop + list5.clientHeight) {
181181
+ list5.scrollTop = optionBottom - list5.clientHeight;
181182
+ }
181183
+ }
181184
+ async selectSuggestion(indexArg) {
181185
+ if (this.disabled) return;
181186
+ const suggestion = this.suggestions[indexArg];
181187
+ if (!suggestion) return;
181188
+ this.value = suggestion.value;
181189
+ this.suggestionsDismissed = true;
181190
+ this.emitInput(this.value);
181191
+ await this.updateComplete;
181192
+ const textarea = this.shadowRoot?.querySelector("textarea");
181193
+ if (!textarea) return;
181194
+ textarea.focus();
181195
+ textarea.setSelectionRange(this.value.length, this.value.length);
181196
+ this.autogrow();
181197
+ }
180984
181198
  autogrow() {
180985
181199
  const textarea = this.shadowRoot?.querySelector("textarea");
180986
181200
  if (!textarea) return;
@@ -181073,6 +181287,10 @@ _disabled5 = new WeakMap();
181073
181287
  _busy3 = new WeakMap();
181074
181288
  _queuedCount = new WeakMap();
181075
181289
  _attachments = new WeakMap();
181290
+ _suggestions2 = new WeakMap();
181291
+ _activeSuggestionIndex = new WeakMap();
181292
+ _suggestionsDismissed = new WeakMap();
181293
+ _promptFocused = new WeakMap();
181076
181294
  _maxAttachmentBytes = new WeakMap();
181077
181295
  _maxTotalAttachmentBytes = new WeakMap();
181078
181296
  _maxAttachmentCount = new WeakMap();
@@ -181092,6 +181310,10 @@ __decorateElement(_init88, 4, "disabled", _disabled_dec5, _DeesHarnessComposer,
181092
181310
  __decorateElement(_init88, 4, "busy", _busy_dec3, _DeesHarnessComposer, _busy3);
181093
181311
  __decorateElement(_init88, 4, "queuedCount", _queuedCount_dec, _DeesHarnessComposer, _queuedCount);
181094
181312
  __decorateElement(_init88, 4, "attachments", _attachments_dec, _DeesHarnessComposer, _attachments);
181313
+ __decorateElement(_init88, 4, "suggestions", _suggestions_dec2, _DeesHarnessComposer, _suggestions2);
181314
+ __decorateElement(_init88, 4, "activeSuggestionIndex", _activeSuggestionIndex_dec, _DeesHarnessComposer, _activeSuggestionIndex);
181315
+ __decorateElement(_init88, 4, "suggestionsDismissed", _suggestionsDismissed_dec, _DeesHarnessComposer, _suggestionsDismissed);
181316
+ __decorateElement(_init88, 4, "promptFocused", _promptFocused_dec, _DeesHarnessComposer, _promptFocused);
181095
181317
  __decorateElement(_init88, 4, "maxAttachmentBytes", _maxAttachmentBytes_dec, _DeesHarnessComposer, _maxAttachmentBytes);
181096
181318
  __decorateElement(_init88, 4, "maxTotalAttachmentBytes", _maxTotalAttachmentBytes_dec, _DeesHarnessComposer, _maxTotalAttachmentBytes);
181097
181319
  __decorateElement(_init88, 4, "maxAttachmentCount", _maxAttachmentCount_dec, _DeesHarnessComposer, _maxAttachmentCount);
@@ -181118,6 +181340,69 @@ __publicField(_DeesHarnessComposer, "styles", [
181118
181340
  container-type: inline-size;
181119
181341
  }
181120
181342
 
181343
+ .composerShell {
181344
+ position: relative;
181345
+ min-width: 0;
181346
+ }
181347
+
181348
+ .suggestionList {
181349
+ position: absolute;
181350
+ z-index: 2;
181351
+ inset-inline: 0;
181352
+ bottom: calc(100% + var(--dees-spacing-xs));
181353
+ box-sizing: border-box;
181354
+ max-height: min(240px, 35dvh);
181355
+ margin: 0;
181356
+ padding: var(--dees-spacing-xs);
181357
+ overflow-x: hidden;
181358
+ overflow-y: auto;
181359
+ overscroll-behavior: contain;
181360
+ list-style: none;
181361
+ border: 1px solid var(--dees-color-border-subtle);
181362
+ border-radius: var(--dees-radius-xl);
181363
+ corner-shape: var(--dees-corner-shape);
181364
+ background: var(--dees-color-bg-primary);
181365
+ box-shadow: var(--dees-shadow-up-sm);
181366
+ }
181367
+
181368
+ .suggestionOption {
181369
+ display: grid;
181370
+ align-content: center;
181371
+ box-sizing: border-box;
181372
+ min-width: 0;
181373
+ min-height: 44px;
181374
+ padding: var(--dees-spacing-xs) var(--dees-spacing-sm);
181375
+ border-radius: var(--dees-radius-lg);
181376
+ corner-shape: var(--dees-corner-shape);
181377
+ color: var(--dees-color-text-primary);
181378
+ cursor: pointer;
181379
+ touch-action: manipulation;
181380
+ }
181381
+
181382
+ .suggestionOption:hover,
181383
+ .suggestionOption.active {
181384
+ background: var(--dees-color-fill-secondary);
181385
+ }
181386
+
181387
+ .suggestionLabel {
181388
+ min-width: 0;
181389
+ overflow: hidden;
181390
+ font-size: var(--dees-font-control-size, 13px);
181391
+ font-weight: 600;
181392
+ line-height: 1.35;
181393
+ text-overflow: ellipsis;
181394
+ white-space: nowrap;
181395
+ }
181396
+
181397
+ .suggestionDescription {
181398
+ min-width: 0;
181399
+ margin-top: 2px;
181400
+ color: var(--dees-color-text-secondary);
181401
+ font-size: var(--dees-font-caption1-size, 11px);
181402
+ line-height: 1.35;
181403
+ overflow-wrap: anywhere;
181404
+ }
181405
+
181121
181406
  .composer {
181122
181407
  display: grid;
181123
181408
  gap: var(--dees-spacing-sm);
@@ -182412,9 +182697,9 @@ var DeesHarnessUsage = _DeesHarnessUsage;
182412
182697
  init_dist_ts26();
182413
182698
  init_theme();
182414
182699
  init_dees_icon();
182415
- var _toolRegistry_dec6, _modeOptions_dec2, _mode_dec3, _effortOptions_dec2, _reasoningEffort_dec2, _modelOptions_dec2, _model_dec2, _accountOptions_dec2, _account_dec2, _maxTotalAttachmentBytes_dec2, _maxAttachmentBytes_dec2, _maxAttachmentCount_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, _a90, _DeesHarnessChat_decorators, _init91, _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, _maxAttachmentCount2, _maxAttachmentBytes2, _maxTotalAttachmentBytes2, _account2, _accountOptions2, _model2, _modelOptions2, _reasoningEffort2, _effortOptions2, _mode3, _modeOptions2, _toolRegistry6;
182700
+ var _toolRegistry_dec6, _modeOptions_dec2, _mode_dec3, _effortOptions_dec2, _reasoningEffort_dec2, _modelOptions_dec2, _model_dec2, _accountOptions_dec2, _account_dec2, _maxTotalAttachmentBytes_dec2, _maxAttachmentBytes_dec2, _maxAttachmentCount_dec2, _suggestions_dec3, _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, _a90, _DeesHarnessChat_decorators, _init91, _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, _suggestions3, _maxAttachmentCount2, _maxAttachmentBytes2, _maxTotalAttachmentBytes2, _account2, _accountOptions2, _model2, _modelOptions2, _reasoningEffort2, _effortOptions2, _mode3, _modeOptions2, _toolRegistry6;
182416
182701
  _DeesHarnessChat_decorators = [customElement("dees-harness-chat")];
182417
- var _DeesHarnessChat = class _DeesHarnessChat extends (_a90 = 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 })], _maxAttachmentCount_dec2 = [n5({ type: Number })], _maxAttachmentBytes_dec2 = [n5({ type: Number })], _maxTotalAttachmentBytes_dec2 = [n5({ type: Number })], _account_dec2 = [n5()], _accountOptions_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_dec6 = [n5({ attribute: false })], _a90) {
182702
+ var _DeesHarnessChat = class _DeesHarnessChat extends (_a90 = 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 })], _suggestions_dec3 = [n5({ attribute: false })], _maxAttachmentCount_dec2 = [n5({ type: Number })], _maxAttachmentBytes_dec2 = [n5({ type: Number })], _maxTotalAttachmentBytes_dec2 = [n5({ type: Number })], _account_dec2 = [n5()], _accountOptions_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_dec6 = [n5({ attribute: false })], _a90) {
182418
182703
  constructor() {
182419
182704
  super(...arguments);
182420
182705
  __privateAdd(this, _messages2, __runInitializers(_init91, 8, this, [])), __runInitializers(_init91, 11, this);
@@ -182447,18 +182732,19 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a90 = DeesElement, _mess
182447
182732
  __privateAdd(this, _queuedCount2, __runInitializers(_init91, 112, this, 0)), __runInitializers(_init91, 115, this);
182448
182733
  __privateAdd(this, _composerValue, __runInitializers(_init91, 116, this, "")), __runInitializers(_init91, 119, this);
182449
182734
  __privateAdd(this, _attachments2, __runInitializers(_init91, 120, this, [])), __runInitializers(_init91, 123, this);
182450
- __privateAdd(this, _maxAttachmentCount2, __runInitializers(_init91, 124, this, Number.POSITIVE_INFINITY)), __runInitializers(_init91, 127, this);
182451
- __privateAdd(this, _maxAttachmentBytes2, __runInitializers(_init91, 128, this, harnessMaxAttachmentBytes)), __runInitializers(_init91, 131, this);
182452
- __privateAdd(this, _maxTotalAttachmentBytes2, __runInitializers(_init91, 132, this, harnessMaxTotalAttachmentBytes)), __runInitializers(_init91, 135, this);
182453
- __privateAdd(this, _account2, __runInitializers(_init91, 136, this, "")), __runInitializers(_init91, 139, this);
182454
- __privateAdd(this, _accountOptions2, __runInitializers(_init91, 140, this, [])), __runInitializers(_init91, 143, this);
182455
- __privateAdd(this, _model2, __runInitializers(_init91, 144, this, "")), __runInitializers(_init91, 147, this);
182456
- __privateAdd(this, _modelOptions2, __runInitializers(_init91, 148, this, [])), __runInitializers(_init91, 151, this);
182457
- __privateAdd(this, _reasoningEffort2, __runInitializers(_init91, 152, this, "")), __runInitializers(_init91, 155, this);
182458
- __privateAdd(this, _effortOptions2, __runInitializers(_init91, 156, this, [])), __runInitializers(_init91, 159, this);
182459
- __privateAdd(this, _mode3, __runInitializers(_init91, 160, this, "")), __runInitializers(_init91, 163, this);
182460
- __privateAdd(this, _modeOptions2, __runInitializers(_init91, 164, this, [])), __runInitializers(_init91, 167, this);
182461
- __privateAdd(this, _toolRegistry6, __runInitializers(_init91, 168, this, DeesHarnessToolRegistry.default)), __runInitializers(_init91, 171, this);
182735
+ __privateAdd(this, _suggestions3, __runInitializers(_init91, 124, this, [])), __runInitializers(_init91, 127, this);
182736
+ __privateAdd(this, _maxAttachmentCount2, __runInitializers(_init91, 128, this, Number.POSITIVE_INFINITY)), __runInitializers(_init91, 131, this);
182737
+ __privateAdd(this, _maxAttachmentBytes2, __runInitializers(_init91, 132, this, harnessMaxAttachmentBytes)), __runInitializers(_init91, 135, this);
182738
+ __privateAdd(this, _maxTotalAttachmentBytes2, __runInitializers(_init91, 136, this, harnessMaxTotalAttachmentBytes)), __runInitializers(_init91, 139, this);
182739
+ __privateAdd(this, _account2, __runInitializers(_init91, 140, this, "")), __runInitializers(_init91, 143, this);
182740
+ __privateAdd(this, _accountOptions2, __runInitializers(_init91, 144, this, [])), __runInitializers(_init91, 147, this);
182741
+ __privateAdd(this, _model2, __runInitializers(_init91, 148, this, "")), __runInitializers(_init91, 151, this);
182742
+ __privateAdd(this, _modelOptions2, __runInitializers(_init91, 152, this, [])), __runInitializers(_init91, 155, this);
182743
+ __privateAdd(this, _reasoningEffort2, __runInitializers(_init91, 156, this, "")), __runInitializers(_init91, 159, this);
182744
+ __privateAdd(this, _effortOptions2, __runInitializers(_init91, 160, this, [])), __runInitializers(_init91, 163, this);
182745
+ __privateAdd(this, _mode3, __runInitializers(_init91, 164, this, "")), __runInitializers(_init91, 167, this);
182746
+ __privateAdd(this, _modeOptions2, __runInitializers(_init91, 168, this, [])), __runInitializers(_init91, 171, this);
182747
+ __privateAdd(this, _toolRegistry6, __runInitializers(_init91, 172, this, DeesHarnessToolRegistry.default)), __runInitializers(_init91, 175, this);
182462
182748
  __publicField(this, "toggleSessionSidebar", /* @__PURE__ */ __name(() => {
182463
182749
  if (!this.narrowSessionLayout) {
182464
182750
  this.desktopSessionSidebarVisible = !this.desktopSessionSidebarVisible;
@@ -182644,6 +182930,7 @@ var _DeesHarnessChat = class _DeesHarnessChat extends (_a90 = DeesElement, _mess
182644
182930
  docked
182645
182931
  .value=${this.composerValue}
182646
182932
  .attachments=${this.attachments}
182933
+ .suggestions=${this.suggestions}
182647
182934
  .maxAttachmentCount=${this.maxAttachmentCount}
182648
182935
  .maxAttachmentBytes=${this.maxAttachmentBytes}
182649
182936
  .maxTotalAttachmentBytes=${this.maxTotalAttachmentBytes}
@@ -182738,6 +183025,7 @@ _busy4 = new WeakMap();
182738
183025
  _queuedCount2 = new WeakMap();
182739
183026
  _composerValue = new WeakMap();
182740
183027
  _attachments2 = new WeakMap();
183028
+ _suggestions3 = new WeakMap();
182741
183029
  _maxAttachmentCount2 = new WeakMap();
182742
183030
  _maxAttachmentBytes2 = new WeakMap();
182743
183031
  _maxTotalAttachmentBytes2 = new WeakMap();
@@ -182779,6 +183067,7 @@ __decorateElement(_init91, 4, "busy", _busy_dec4, _DeesHarnessChat, _busy4);
182779
183067
  __decorateElement(_init91, 4, "queuedCount", _queuedCount_dec2, _DeesHarnessChat, _queuedCount2);
182780
183068
  __decorateElement(_init91, 4, "composerValue", _composerValue_dec, _DeesHarnessChat, _composerValue);
182781
183069
  __decorateElement(_init91, 4, "attachments", _attachments_dec2, _DeesHarnessChat, _attachments2);
183070
+ __decorateElement(_init91, 4, "suggestions", _suggestions_dec3, _DeesHarnessChat, _suggestions3);
182782
183071
  __decorateElement(_init91, 4, "maxAttachmentCount", _maxAttachmentCount_dec2, _DeesHarnessChat, _maxAttachmentCount2);
182783
183072
  __decorateElement(_init91, 4, "maxAttachmentBytes", _maxAttachmentBytes_dec2, _DeesHarnessChat, _maxAttachmentBytes2);
182784
183073
  __decorateElement(_init91, 4, "maxTotalAttachmentBytes", _maxTotalAttachmentBytes_dec2, _DeesHarnessChat, _maxTotalAttachmentBytes2);
@@ -207460,7 +207749,7 @@ init_group_runtime();
207460
207749
  // ts_web/00_commitinfo_data.ts
207461
207750
  var commitinfo = {
207462
207751
  name: "@design.estate/dees-catalog",
207463
- version: "6.8.1",
207752
+ version: "6.9.0",
207464
207753
  description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
207465
207754
  };
207466
207755
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '6.8.1',
6
+ version: '6.9.0',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
@@ -1,5 +1,5 @@
1
1
  import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
- import type { IHarnessAttachment, IHarnessComposerOption, IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessIntelligenceExchange, IHarnessScratchpad, IHarnessSessionMetrics, IHarnessStatus, IHarnessTodoItem, IHarnessUsage, THarnessStreamDelta } from '../interfaces.js';
2
+ import type { IHarnessAttachment, IHarnessComposerOption, IHarnessComposerSuggestion, IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessIntelligenceExchange, IHarnessScratchpad, IHarnessSessionMetrics, IHarnessStatus, IHarnessTodoItem, IHarnessUsage, THarnessStreamDelta } from '../interfaces.js';
3
3
  import { DeesHarnessToolRegistry } from '../toolregistry.js';
4
4
  import '../dees-harness-todos/dees-harness-todos.js';
5
5
  import '../dees-harness-session-sidebar/dees-harness-session-sidebar.js';
@@ -58,6 +58,7 @@ export declare class DeesHarnessChat extends DeesElement {
58
58
  accessor queuedCount: number;
59
59
  accessor composerValue: string;
60
60
  accessor attachments: IHarnessAttachment[];
61
+ accessor suggestions: IHarnessComposerSuggestion[];
61
62
  accessor maxAttachmentCount: number;
62
63
  accessor maxAttachmentBytes: number;
63
64
  accessor maxTotalAttachmentBytes: number;