@tutti-os/agent-gui 0.0.56 → 0.0.57

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 (50) hide show
  1. package/dist/@-lined-14px-64O2KKB4.svg +3 -0
  2. package/dist/agent-conversation/index.d.ts +2 -2
  3. package/dist/agent-conversation/index.js +5 -5
  4. package/dist/agent-message-center/index.js +7 -7
  5. package/dist/{agentGuiNodeTypes-DCnsaqJr.d.ts → agentGuiNodeTypes-BRU6P22B.d.ts} +2 -1
  6. package/dist/app/renderer/agentactivity.css +48 -3
  7. package/dist/app/renderer/assets/icons/@-lined-14px.svg +3 -0
  8. package/dist/{chunk-6QFURP4M.js → chunk-2VHP7KQ5.js} +2 -2
  9. package/dist/{chunk-54CMFCHF.js → chunk-33LWYV6O.js} +31 -1
  10. package/dist/chunk-33LWYV6O.js.map +1 -0
  11. package/dist/{chunk-X4C4HD6E.js → chunk-DZ76JPCV.js} +103 -9
  12. package/dist/chunk-DZ76JPCV.js.map +1 -0
  13. package/dist/{chunk-4URDQNBP.js → chunk-HFZOXSSQ.js} +2 -2
  14. package/dist/{chunk-PQYSB2WC.js → chunk-IMZBRUP3.js} +4 -4
  15. package/dist/{chunk-752VTG4P.js → chunk-KOR6UVUJ.js} +4 -4
  16. package/dist/{chunk-MXDPRBS6.js → chunk-N37A5CJH.js} +2 -2
  17. package/dist/{chunk-SITURZG6.js → chunk-QFHR527D.js} +2 -2
  18. package/dist/{chunk-EVVIWZLX.js → chunk-RGVVHF7Q.js} +2 -2
  19. package/dist/{chunk-PQYMG6PQ.js → chunk-SZ7JGCS3.js} +2 -2
  20. package/dist/{chunk-5PGMLZ4W.js → chunk-Z3AAQQFD.js} +2 -2
  21. package/dist/context-mention-palette/index.js +6 -6
  22. package/dist/i18n/index.d.ts +30 -0
  23. package/dist/i18n/index.js +2 -2
  24. package/dist/index.d.ts +7 -4
  25. package/dist/index.js +315 -74
  26. package/dist/index.js.map +1 -1
  27. package/dist/queued-prompt-runtime.d.ts +2 -2
  28. package/dist/{types-B2m7UcBb.d.ts → types-BsHvTjIZ.d.ts} +8 -1
  29. package/dist/workbench/contribution.d.ts +1 -1
  30. package/dist/workbench/index.d.ts +1 -1
  31. package/dist/workbench/index.js +3 -3
  32. package/dist/workbench/launch.d.ts +1 -1
  33. package/dist/workbench/providerCatalog.d.ts +1 -1
  34. package/dist/workbench/sessionTitle.d.ts +1 -1
  35. package/dist/workbench/sessionTitle.js +3 -3
  36. package/dist/workbench/state.d.ts +1 -1
  37. package/dist/workbench/types.d.ts +1 -1
  38. package/dist/workspace-agent-generated-files.js +3 -3
  39. package/package.json +12 -12
  40. package/dist/chunk-54CMFCHF.js.map +0 -1
  41. package/dist/chunk-X4C4HD6E.js.map +0 -1
  42. /package/dist/{chunk-6QFURP4M.js.map → chunk-2VHP7KQ5.js.map} +0 -0
  43. /package/dist/{chunk-4URDQNBP.js.map → chunk-HFZOXSSQ.js.map} +0 -0
  44. /package/dist/{chunk-PQYSB2WC.js.map → chunk-IMZBRUP3.js.map} +0 -0
  45. /package/dist/{chunk-752VTG4P.js.map → chunk-KOR6UVUJ.js.map} +0 -0
  46. /package/dist/{chunk-MXDPRBS6.js.map → chunk-N37A5CJH.js.map} +0 -0
  47. /package/dist/{chunk-SITURZG6.js.map → chunk-QFHR527D.js.map} +0 -0
  48. /package/dist/{chunk-EVVIWZLX.js.map → chunk-RGVVHF7Q.js.map} +0 -0
  49. /package/dist/{chunk-PQYMG6PQ.js.map → chunk-SZ7JGCS3.js.map} +0 -0
  50. /package/dist/{chunk-5PGMLZ4W.js.map → chunk-Z3AAQQFD.js.map} +0 -0
@@ -15,7 +15,7 @@ import {
15
15
  resolveWorkspaceFilePathCandidate,
16
16
  resolveWorkspaceLinkAction,
17
17
  useAgentTargetPresentations
18
- } from "./chunk-6QFURP4M.js";
18
+ } from "./chunk-2VHP7KQ5.js";
19
19
  import {
20
20
  AGENT_RICH_TEXT_CARET_ANCHOR,
21
21
  attrsToMentionItem,
@@ -23,7 +23,7 @@ import {
23
23
  formatAgentMentionMarkdown,
24
24
  mentionItemToAttrs,
25
25
  parseAgentMentionMarkdown
26
- } from "./chunk-MXDPRBS6.js";
26
+ } from "./chunk-N37A5CJH.js";
27
27
  import {
28
28
  fileChangeCountFromChanges,
29
29
  fileChangeEntriesFromChanges,
@@ -40,7 +40,7 @@ import {
40
40
  import {
41
41
  getActiveUiLanguage,
42
42
  translate
43
- } from "./chunk-5PGMLZ4W.js";
43
+ } from "./chunk-Z3AAQQFD.js";
44
44
 
45
45
  // shared/imageGenerationTool.ts
46
46
  var KNOWN_IMAGE_GENERATION_TOOL_NAMES = /* @__PURE__ */ new Set([
@@ -14110,8 +14110,12 @@ var AGENT_TRANSCRIPT_TURN_GAP_PX = 12;
14110
14110
  var AGENT_TRANSCRIPT_FALLBACK_TURN_COUNT = 3;
14111
14111
  var AGENT_MESSAGE_LOCATOR_PANEL_FADE_MS = 160;
14112
14112
  var AGENT_MESSAGE_LOCATOR_ITEM_SPACING_PX = 30;
14113
- var AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX = 18;
14113
+ var AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX = 36;
14114
14114
  var AGENT_MESSAGE_LOCATOR_BOTTOM_SAFE_INSET_MAX_PX = 48;
14115
+ var AGENT_MESSAGE_LOCATOR_NATIVE_SMOOTH_MAX_DISTANCE_PX = 720;
14116
+ var AGENT_MESSAGE_LOCATOR_FAST_SCROLL_SPEED_PX_PER_MS = 8;
14117
+ var AGENT_MESSAGE_LOCATOR_FAST_SCROLL_MIN_DURATION_MS = 120;
14118
+ var agentMessageLocatorScrollAnimations = /* @__PURE__ */ new WeakMap();
14115
14119
  function transcriptLabelsEqual(previous, next) {
14116
14120
  return previous === next || previous.thinkingLabel === next.thinkingLabel && previous.processing === next.processing && previous.turnSummary === next.turnSummary && previous.rawTimelineJson === next.rawTimelineJson && previous.userMessageLocator === next.userMessageLocator && previous.toolCallsLabel === next.toolCallsLabel;
14117
14121
  }
@@ -14213,10 +14217,10 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
14213
14217
  if (!renderedRow) {
14214
14218
  return false;
14215
14219
  }
14216
- renderedRow.scrollIntoView({
14217
- block: "center",
14218
- behavior: "smooth"
14219
- });
14220
+ scrollTranscriptRowIntoView(
14221
+ renderedRow,
14222
+ scrollParent ?? findMessageLocatorScrollParent(renderedRow)
14223
+ );
14220
14224
  return true;
14221
14225
  };
14222
14226
  if (scrollToRenderedRow()) {
@@ -14531,6 +14535,33 @@ function AgentMessageLocatorRail({
14531
14535
  markItemRead(item.key);
14532
14536
  onLocate(item);
14533
14537
  };
14538
+ const itemFromPointerEvent = (event) => {
14539
+ const viewport = locatorViewportRef.current;
14540
+ if (!viewport) {
14541
+ return null;
14542
+ }
14543
+ const rect = viewport.getBoundingClientRect();
14544
+ const pointerY = event.clientY - rect.top + viewport.scrollTop;
14545
+ const index = Math.round(
14546
+ (pointerY - AGENT_MESSAGE_LOCATOR_HIT_SIZE_PX / 2) / AGENT_MESSAGE_LOCATOR_ITEM_SPACING_PX
14547
+ );
14548
+ return items[Math.max(0, Math.min(items.length - 1, index))] ?? null;
14549
+ };
14550
+ const handleViewportClick = (event) => {
14551
+ if (event.target?.closest("button")) {
14552
+ return;
14553
+ }
14554
+ const item = itemFromPointerEvent(event);
14555
+ if (item) {
14556
+ handleLocateItem(item);
14557
+ }
14558
+ };
14559
+ const handleViewportMouseMove = (event) => {
14560
+ const item = itemFromPointerEvent(event);
14561
+ if (item) {
14562
+ setActiveKey(item.key);
14563
+ }
14564
+ };
14534
14565
  const openPanel = () => {
14535
14566
  if (closePanelTimeoutRef.current !== null) {
14536
14567
  window.clearTimeout(closePanelTimeoutRef.current);
@@ -14589,6 +14620,8 @@ function AgentMessageLocatorRail({
14589
14620
  ref: locatorViewportRef,
14590
14621
  className: "agent-gui-message-locator__viewport",
14591
14622
  "data-testid": "agent-message-locator-viewport",
14623
+ onClick: handleViewportClick,
14624
+ onMouseMove: handleViewportMouseMove,
14592
14625
  children: /* @__PURE__ */ jsxs44(
14593
14626
  "div",
14594
14627
  {
@@ -14681,6 +14714,67 @@ function scrollMessageLocatorViewportToIndex(viewport, selectedIndex, viewportHe
14681
14714
  viewport.scrollTop = Math.max(0, selectedBottom - viewportHeight + padding);
14682
14715
  }
14683
14716
  }
14717
+ function scrollTranscriptRowIntoView(row, scrollParent) {
14718
+ if (!scrollParent) {
14719
+ row.scrollIntoView({
14720
+ block: "center",
14721
+ behavior: "smooth"
14722
+ });
14723
+ return;
14724
+ }
14725
+ const targetScrollTop = targetScrollTopForTranscriptRow(row, scrollParent);
14726
+ const distance = Math.abs(targetScrollTop - scrollParent.scrollTop);
14727
+ if (distance <= AGENT_MESSAGE_LOCATOR_NATIVE_SMOOTH_MAX_DISTANCE_PX) {
14728
+ row.scrollIntoView({
14729
+ block: "center",
14730
+ behavior: "smooth"
14731
+ });
14732
+ return;
14733
+ }
14734
+ animateMessageLocatorScroll(scrollParent, targetScrollTop, distance);
14735
+ }
14736
+ function targetScrollTopForTranscriptRow(row, scrollParent) {
14737
+ const rowRect = row.getBoundingClientRect();
14738
+ const scrollParentRect = scrollParent.getBoundingClientRect();
14739
+ const visibleFrame = readMessageLocatorVisibleFrame(scrollParent);
14740
+ const rowCenter = rowRect.top - scrollParentRect.top + scrollParent.scrollTop + rowRect.height / 2;
14741
+ const maxScrollTop = Math.max(
14742
+ 0,
14743
+ scrollParent.scrollHeight - scrollParent.clientHeight
14744
+ );
14745
+ const targetScrollTop = rowCenter - visibleFrame.topOffsetPx - visibleFrame.heightPx / 2;
14746
+ return Math.min(maxScrollTop, Math.max(0, targetScrollTop));
14747
+ }
14748
+ function animateMessageLocatorScroll(scrollParent, targetScrollTop, distance) {
14749
+ const previousAnimation = agentMessageLocatorScrollAnimations.get(scrollParent);
14750
+ if (previousAnimation !== void 0) {
14751
+ window.cancelAnimationFrame(previousAnimation);
14752
+ }
14753
+ const startScrollTop = scrollParent.scrollTop;
14754
+ const delta = targetScrollTop - startScrollTop;
14755
+ const durationMs = Math.max(
14756
+ AGENT_MESSAGE_LOCATOR_FAST_SCROLL_MIN_DURATION_MS,
14757
+ distance / AGENT_MESSAGE_LOCATOR_FAST_SCROLL_SPEED_PX_PER_MS
14758
+ );
14759
+ const startedAt = performance.now();
14760
+ const step = (now) => {
14761
+ const progress = Math.min(1, (now - startedAt) / durationMs);
14762
+ scrollParent.scrollTop = startScrollTop + delta * progress;
14763
+ if (progress >= 1) {
14764
+ scrollParent.scrollTop = targetScrollTop;
14765
+ agentMessageLocatorScrollAnimations.delete(scrollParent);
14766
+ return;
14767
+ }
14768
+ agentMessageLocatorScrollAnimations.set(
14769
+ scrollParent,
14770
+ window.requestAnimationFrame(step)
14771
+ );
14772
+ };
14773
+ agentMessageLocatorScrollAnimations.set(
14774
+ scrollParent,
14775
+ window.requestAnimationFrame(step)
14776
+ );
14777
+ }
14684
14778
  function readMessageLocatorVisibleFrame(scrollParent) {
14685
14779
  const style = window.getComputedStyle(scrollParent);
14686
14780
  const topOffsetPx = parseCssPx(style.scrollPaddingTop);
@@ -14956,4 +15050,4 @@ export {
14956
15050
  AgentConversationFlow,
14957
15051
  useProjectedAgentConversation
14958
15052
  };
14959
- //# sourceMappingURL=chunk-X4C4HD6E.js.map
15053
+ //# sourceMappingURL=chunk-DZ76JPCV.js.map