@vibesdotdev/chat 1.0.0-rc.2 → 1.0.0-rc.7

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 (148) hide show
  1. package/dist/client/runtime-client.d.ts.map +1 -1
  2. package/dist/client/runtime-client.js +10 -2
  3. package/dist/client/runtime-client.js.map +1 -1
  4. package/dist/docs/chat.sessions.docs.descriptor.js +2 -2
  5. package/dist/schemas/session-report.d.ts.map +1 -1
  6. package/dist/schemas/session-report.js +10 -9
  7. package/dist/schemas/session-report.js.map +1 -1
  8. package/dist/storage/chat-rooms.storage.d.ts +3 -3
  9. package/dist/storage/chat-rooms.storage.descriptor.d.ts.map +1 -1
  10. package/dist/storage/chat-rooms.storage.descriptor.js +13 -5
  11. package/dist/storage/chat-rooms.storage.descriptor.js.map +1 -1
  12. package/dist/storage/chat-rooms.storage.js +3 -3
  13. package/dist/svelte/ai/ImageGenerationDialog.svelte.d.ts.map +1 -1
  14. package/dist/svelte/augmentations/AddAgentsDialog.svelte.d.ts.map +1 -1
  15. package/dist/svelte/augmentations/ManageAgentsDialog.svelte.d.ts.map +1 -1
  16. package/dist/svelte/augmentations/agent.composer.svelte.d.ts.map +1 -1
  17. package/dist/svelte/augmentations/compaction.composer.svelte.d.ts.map +1 -1
  18. package/dist/svelte/augmentations/folders.composer.svelte.d.ts.map +1 -1
  19. package/dist/svelte/augmentations/models.composer.svelte.d.ts.map +1 -1
  20. package/dist/svelte/augmentations/modes.composer.svelte.d.ts.map +1 -1
  21. package/dist/svelte/augmentations/permissions.composer.svelte.d.ts.map +1 -1
  22. package/dist/svelte/augmentations/response-length.composer.svelte.d.ts.map +1 -1
  23. package/dist/svelte/augmentations/visibility.composer.svelte.d.ts.map +1 -1
  24. package/dist/svelte/augmentations/workspaces.composer.svelte.d.ts.map +1 -1
  25. package/dist/svelte/chat-svelte.vessel.plugin.d.ts +12 -8
  26. package/dist/svelte/chat-svelte.vessel.plugin.d.ts.map +1 -1
  27. package/dist/svelte/chat-svelte.vessel.plugin.js +3 -0
  28. package/dist/svelte/command-palette/chat-source.plugin.d.ts +1 -1
  29. package/dist/svelte/components/ChatBackgroundPanel.svelte.d.ts.map +1 -1
  30. package/dist/svelte/components/ChatExperienceHost.svelte.d.ts.map +1 -1
  31. package/dist/svelte/components/ChatFolderTreeView.svelte.d.ts.map +1 -1
  32. package/dist/svelte/components/ChatLayout.svelte.d.ts.map +1 -1
  33. package/dist/svelte/components/ChatLoader.svelte.d.ts.map +1 -1
  34. package/dist/svelte/components/ChatMessage.svelte.d.ts.map +1 -1
  35. package/dist/svelte/components/ChatMessageAttachments.svelte.d.ts.map +1 -1
  36. package/dist/svelte/components/ChatMessageBubble.svelte.d.ts.map +1 -1
  37. package/dist/svelte/components/ChatMessageContent.svelte.d.ts.map +1 -1
  38. package/dist/svelte/components/ChatMessageReactions.svelte.d.ts.map +1 -1
  39. package/dist/svelte/components/ChatMessageSkeleton.svelte.d.ts.map +1 -1
  40. package/dist/svelte/components/ChatMessageStatusBadge.svelte.d.ts.map +1 -1
  41. package/dist/svelte/components/ChatMessageTimestamp.svelte.d.ts.map +1 -1
  42. package/dist/svelte/components/ChatMessageToolCalls.svelte.d.ts.map +1 -1
  43. package/dist/svelte/components/ChatModeSelector.svelte.d.ts.map +1 -1
  44. package/dist/svelte/components/ChatResponseStopButton.svelte.d.ts.map +1 -1
  45. package/dist/svelte/components/ChatRoom.svelte.d.ts.map +1 -1
  46. package/dist/svelte/components/ChatSessionStatus.svelte.d.ts.map +1 -1
  47. package/dist/svelte/components/ChatToolCallRenderer.svelte.d.ts.map +1 -1
  48. package/dist/svelte/components/ChatWorkspace.svelte.d.ts.map +1 -1
  49. package/dist/svelte/components/ChatWorkspaceContent.svelte +1 -0
  50. package/dist/svelte/components/ChatWorkspaceContent.svelte.d.ts.map +1 -1
  51. package/dist/svelte/components/ImageGenerationToolCard.svelte.d.ts.map +1 -1
  52. package/dist/svelte/components/InboxMixedFeed.svelte.d.ts.map +1 -1
  53. package/dist/svelte/components/InboxSourceConversation.svelte.d.ts.map +1 -1
  54. package/dist/svelte/components/MissingToolCard.svelte.d.ts.map +1 -1
  55. package/dist/svelte/components/ParticipantUserList.svelte.d.ts.map +1 -1
  56. package/dist/svelte/components/RoomStageChatInterface.svelte.d.ts.map +1 -1
  57. package/dist/svelte/components/conversations/ConversationNodes.svelte +36 -17
  58. package/dist/svelte/components/conversations/ConversationNodes.svelte.d.ts +2 -0
  59. package/dist/svelte/components/conversations/ConversationNodes.svelte.d.ts.map +1 -1
  60. package/dist/svelte/components/conversations/ConversationsTree.svelte +127 -0
  61. package/dist/svelte/components/conversations/ConversationsTree.svelte.d.ts.map +1 -1
  62. package/dist/svelte/components/conversations/CreateFolderDialog.svelte.d.ts.map +1 -1
  63. package/dist/svelte/components/index.d.ts +2 -0
  64. package/dist/svelte/components/index.d.ts.map +1 -1
  65. package/dist/svelte/components/index.js +2 -0
  66. package/dist/svelte/components/indicators/ChatConnectionStatus.svelte.d.ts.map +1 -1
  67. package/dist/svelte/components/indicators/NextStepSkeleton.svelte.d.ts.map +1 -1
  68. package/dist/svelte/components/indicators/StreamingIndicator.svelte.d.ts.map +1 -1
  69. package/dist/svelte/components/indicators/TypingIndicator.svelte.d.ts.map +1 -1
  70. package/dist/svelte/components/runtime/MessageSegments.svelte.d.ts.map +1 -1
  71. package/dist/svelte/components/runtime/RuntimeChatActionBar.svelte.d.ts.map +1 -1
  72. package/dist/svelte/components/runtime/RuntimeChatAttachments.svelte.d.ts.map +1 -1
  73. package/dist/svelte/components/runtime/RuntimeChatCommandMenu.svelte.d.ts +1 -1
  74. package/dist/svelte/components/runtime/RuntimeChatCommandMenu.svelte.d.ts.map +1 -1
  75. package/dist/svelte/components/runtime/RuntimeChatComposer.svelte.d.ts.map +1 -1
  76. package/dist/svelte/components/runtime/RuntimeChatDialogHost.svelte.d.ts.map +1 -1
  77. package/dist/svelte/components/runtime/RuntimeChatInput.svelte.d.ts.map +1 -1
  78. package/dist/svelte/components/runtime/RuntimeChatMessageRow.svelte +97 -9
  79. package/dist/svelte/components/runtime/RuntimeChatMessageRow.svelte.d.ts +4 -0
  80. package/dist/svelte/components/runtime/RuntimeChatMessageRow.svelte.d.ts.map +1 -1
  81. package/dist/svelte/components/runtime/RuntimeChatMessages.svelte +34 -3
  82. package/dist/svelte/components/runtime/RuntimeChatMessages.svelte.d.ts +4 -0
  83. package/dist/svelte/components/runtime/RuntimeChatMessages.svelte.d.ts.map +1 -1
  84. package/dist/svelte/components/runtime/RuntimeChatModeControl.svelte.d.ts.map +1 -1
  85. package/dist/svelte/components/runtime/RuntimeChatPermissionControl.svelte.d.ts.map +1 -1
  86. package/dist/svelte/components/surface/ChatApprovalBar.svelte.d.ts.map +1 -1
  87. package/dist/svelte/components/surface/ChatComposerAugmentBar.svelte.d.ts.map +1 -1
  88. package/dist/svelte/components/surface/ChatComposerPanel.svelte.d.ts.map +1 -1
  89. package/dist/svelte/components/surface/ChatConversationPane.svelte +18 -1
  90. package/dist/svelte/components/surface/ChatConversationPane.svelte.d.ts +5 -0
  91. package/dist/svelte/components/surface/ChatConversationPane.svelte.d.ts.map +1 -1
  92. package/dist/svelte/components/surface/ChatConversationSidebar.svelte +66 -24
  93. package/dist/svelte/components/surface/ChatConversationSidebar.svelte.d.ts.map +1 -1
  94. package/dist/svelte/components/surface/ChatConversationSplit.svelte.d.ts.map +1 -1
  95. package/dist/svelte/components/surface/ChatMessageViewport.svelte +12 -2
  96. package/dist/svelte/components/surface/ChatMessageViewport.svelte.d.ts +5 -0
  97. package/dist/svelte/components/surface/ChatMessageViewport.svelte.d.ts.map +1 -1
  98. package/dist/svelte/components/surface/ChatNewConversationEmptyState.svelte.d.ts.map +1 -1
  99. package/dist/svelte/components/surface/ChatParticipantsPanel.svelte.d.ts.map +1 -1
  100. package/dist/svelte/components/surface/ChatRoomHeader.svelte.d.ts.map +1 -1
  101. package/dist/svelte/components/surface/ChatRuntimeLoader.svelte.d.ts.map +1 -1
  102. package/dist/svelte/components/surface/ChatSurfaceBoundary.svelte.d.ts.map +1 -1
  103. package/dist/svelte/components/surface/ChatSurfaceFrame.svelte.d.ts.map +1 -1
  104. package/dist/svelte/components/surface/ChatSurfaceSkeleton.svelte.d.ts.map +1 -1
  105. package/dist/svelte/components/surface/ChatWorkspaceFrame.svelte.d.ts.map +1 -1
  106. package/dist/svelte/components/surface/ChatWorkspaceFrameContent.svelte.d.ts.map +1 -1
  107. package/dist/svelte/components/utils/retry-content.d.ts +25 -0
  108. package/dist/svelte/components/utils/retry-content.d.ts.map +1 -0
  109. package/dist/svelte/components/utils/retry-content.js +21 -0
  110. package/dist/svelte/context/components/ContextBuilder.svelte.d.ts.map +1 -1
  111. package/dist/svelte/context/components/ContextBuilderProviderActions.svelte.d.ts.map +1 -1
  112. package/dist/svelte/context/components/ContextBuilderProviderStatus.svelte.d.ts.map +1 -1
  113. package/dist/svelte/messenger/MessengerConversationTitle.svelte.d.ts.map +1 -1
  114. package/dist/svelte/messenger/MessengerPanel.svelte.d.ts.map +1 -1
  115. package/dist/svelte/messenger/MessengerToggle.svelte +51 -53
  116. package/dist/svelte/messenger/MessengerToggle.svelte.d.ts.map +1 -1
  117. package/dist/svelte/messenger/MessengerWidget.svelte.d.ts.map +1 -1
  118. package/dist/svelte/messenger/messenger-store.svelte.d.ts +1 -1
  119. package/dist/svelte/runtime.d.ts +2 -0
  120. package/dist/svelte/runtime.d.ts.map +1 -1
  121. package/dist/svelte/runtime.js +1 -0
  122. package/dist/svelte/state.svelte.d.ts +53 -53
  123. package/dist/svelte/state.svelte.d.ts.map +1 -1
  124. package/dist/svelte/state.svelte.js +1 -7
  125. package/dist/svelte/stores/chatMessagesStore.svelte.d.ts +7 -7
  126. package/dist/svelte/stores/chatParticipantsStore.svelte.d.ts +2 -2
  127. package/dist/svelte/stores/chatRoomStore.svelte.d.ts +8 -8
  128. package/dist/svelte/stores/chatSessionStore.svelte.d.ts +7 -7
  129. package/dist/svelte/stores/chatStore.svelte.d.ts +1 -1
  130. package/dist/svelte/stores/index.d.ts +1 -0
  131. package/dist/svelte/stores/index.d.ts.map +1 -1
  132. package/dist/svelte/stores/index.js +1 -0
  133. package/dist/svelte/stores/interfaceTypeStore.svelte.d.ts +1 -1
  134. package/dist/svelte/surface-context.d.ts.map +1 -1
  135. package/dist/svelte/surface-context.js +11 -4
  136. package/dist/svelte/tool-widgets/ChatMessageToolCard.svelte.d.ts.map +1 -1
  137. package/dist/svelte/tool-widgets/ChatRoomToolCard.svelte.d.ts.map +1 -1
  138. package/dist/svelte/tool-widgets/ChatSessionReportToolCard.svelte.d.ts.map +1 -1
  139. package/dist/svelte/tools/ManageRoomToolsDialog.svelte.d.ts.map +1 -1
  140. package/dist/svelte/ui/ChatMessagesAction.svelte.d.ts.map +1 -1
  141. package/dist/svelte/ui/ChatMessagesBadge.svelte.d.ts.map +1 -1
  142. package/dist/svelte/ui/ChatMessagesForm.svelte.d.ts.map +1 -1
  143. package/dist/tools/chat-room/schemas.js +6 -6
  144. package/dist/tools/chat-room/schemas.js.map +1 -1
  145. package/dist/tools/session-report/session-report.tool.descriptor.d.ts.map +1 -1
  146. package/dist/tools/session-report/session-report.tool.descriptor.js +5 -4
  147. package/dist/tools/session-report/session-report.tool.descriptor.js.map +1 -1
  148. package/package.json +69 -36
@@ -1 +1 @@
1
- {"version":3,"file":"ChatToolCallRenderer.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ChatToolCallRenderer.svelte.ts"],"names":[],"mappings":"AAGA;;;;OAII;AACJ,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAEjB,MAAM,0CAA0C,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUvD,UAAU,KAAK;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AA4CF,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ChatToolCallRenderer.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ChatToolCallRenderer.svelte"],"names":[],"mappings":"AAGA;;;;OAII;AACJ,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAEjB,MAAM,0CAA0C,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUvD,UAAU,KAAK;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AA4CF,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWorkspace.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ChatWorkspace.svelte.ts"],"names":[],"mappings":"AAqBA,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;UAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ChatWorkspace.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ChatWorkspace.svelte"],"names":[],"mappings":"AAqBA,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;UAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -441,6 +441,7 @@
441
441
  {manageToolsEnabled}
442
442
  {onInvite}
443
443
  {onManageTools}
444
+ currentUserId={chatParticipantsStore.currentUserId}
444
445
  onRoomCreated={() => {
445
446
  noticeState = null;
446
447
  }}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWorkspaceContent.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ChatWorkspaceContent.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAK/C,OAAO,EAA4J,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGpN,OAAO,KAAK,EACV,UAAU,EAGV,MAAM,oCAAoC,CAAC;AAE7C,OAAO,EAAoI,KAAK,oBAAoB,EAAkC,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjQ,KAAK,gBAAgB,GAAI;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yFAAyF;IACzF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvD,uEAAuE;IACvE,eAAe,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACvC,mFAAmF;IACnF,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2FAA2F;IAC3F,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uDAAuD;IACvD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAgaH,QAAA,MAAM,oBAAoB,sDAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ChatWorkspaceContent.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ChatWorkspaceContent.svelte"],"names":[],"mappings":"AAKA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAK/C,OAAO,EAA4J,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGpN,OAAO,KAAK,EACV,UAAU,EAGV,MAAM,oCAAoC,CAAC;AAE7C,OAAO,EAAoI,KAAK,oBAAoB,EAAkC,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjQ,KAAK,gBAAgB,GAAI;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yFAAyF;IACzF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvD,uEAAuE;IACvE,eAAe,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACvC,mFAAmF;IACnF,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2FAA2F;IAC3F,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uDAAuD;IACvD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAgaH,QAAA,MAAM,oBAAoB,sDAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageGenerationToolCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ImageGenerationToolCard.svelte.ts"],"names":[],"mappings":"AAuBC,KAAK,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElF,UAAU,KAAK;IACd,+DAA+D;IAC/D,QAAQ,EAAE;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAoHF,QAAA,MAAM,uBAAuB,2CAAwC,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"ImageGenerationToolCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ImageGenerationToolCard.svelte"],"names":[],"mappings":"AAuBC,KAAK,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElF,UAAU,KAAK;IACd,+DAA+D;IAC/D,QAAQ,EAAE;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAoHF,QAAA,MAAM,uBAAuB,2CAAwC,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InboxMixedFeed.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InboxMixedFeed.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI9D,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AA+CH,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"InboxMixedFeed.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InboxMixedFeed.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI9D,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AA+CH,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InboxSourceConversation.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InboxSourceConversation.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMxE,KAAK,KAAK,GAAG;IACZ,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3E,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/E,CAAC;AA4GH,QAAA,MAAM,uBAAuB,2CAAwC,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"InboxSourceConversation.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/InboxSourceConversation.svelte"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMxE,KAAK,KAAK,GAAG;IACZ,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3E,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/E,CAAC;AA4GH,QAAA,MAAM,uBAAuB,2CAAwC,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MissingToolCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/MissingToolCard.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAkB1F,QAAA,MAAM,eAAe,qDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"MissingToolCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/MissingToolCard.svelte"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAkB1F,QAAA,MAAM,eAAe,qDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantUserList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ParticipantUserList.svelte.ts"],"names":[],"mappings":"AAKC;;;;;;GAMG;AAEH,KAAK,eAAe,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;CACtF,CAAC;AA6DH,QAAA,MAAM,mBAAmB,2CAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ParticipantUserList.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/ParticipantUserList.svelte"],"names":[],"mappings":"AAKC;;;;;;GAMG;AAEH,KAAK,eAAe,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;CACtF,CAAC;AA6DH,QAAA,MAAM,mBAAmB,2CAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RoomStageChatInterface.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/RoomStageChatInterface.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAK/C,OAAO,EAEL,KAAK,kBAAkB,EACvB,MAAM,4BAA4B,CAAC;AAKpC,KAAK,KAAK,GAAG;IACZ,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;IACpD,iFAAiF;IACjF,eAAe,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,sFAAsF;IACtF,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAyGH,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"RoomStageChatInterface.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/RoomStageChatInterface.svelte"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAK/C,OAAO,EAEL,KAAK,kBAAkB,EACvB,MAAM,4BAA4B,CAAC;AAKpC,KAAK,KAAK,GAAG;IACZ,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;IACpD,iFAAiF;IACjF,eAAe,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,sFAAsF;IACtF,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAyGH,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -1,15 +1,19 @@
1
1
  <script lang="ts">
2
2
  import type { Snippet } from 'svelte';
3
+ import type { HTMLAttributes } from 'svelte/elements';
3
4
  import type { SvelteSet } from 'svelte/reactivity';
4
5
  import { Button } from '@vibesdotdev/kit/components/ui/button';
6
+ import * as ContextMenu from '@vibesdotdev/kit/components/ui/context-menu';
5
7
  import { Icon } from '@vibesdotdev/kit/components/icon';
6
8
  import type { TreeNode } from './types.js';
7
- let { nodes, expandedIds, onNodeDrop, nodeContent, nodeIcon, emptyMessage, defaultExpandAll = false, activeRoomId }: {
9
+ let { nodes, expandedIds, onNodeDrop, nodeContent, nodeIcon, contextMenu, emptyMessage, defaultExpandAll = false, activeRoomId }: {
8
10
  nodes: TreeNode[];
9
11
  expandedIds: SvelteSet<string>;
10
12
  onNodeDrop: (dragged: TreeNode, target: TreeNode, position: 'before' | 'after' | 'inside') => void;
11
13
  nodeContent: Snippet<[{ node: TreeNode; isExpanded: boolean; isSelected: boolean; depth: number }]>;
12
14
  nodeIcon: Snippet<[{ node: TreeNode; isExpanded: boolean; isSelected: boolean }]>;
15
+ /** Optional row context menu content. A disabled trigger preserves the native menu. */
16
+ contextMenu?: Snippet<[TreeNode]>;
13
17
  emptyMessage: string;
14
18
  defaultExpandAll?: boolean;
15
19
  activeRoomId?: string | null;
@@ -30,6 +34,29 @@
30
34
  }
31
35
  </script>
32
36
 
37
+ {#snippet row(node: TreeNode, isExpanded: boolean, isSelected: boolean, depth: number, triggerProps: HTMLAttributes<HTMLDivElement>)}
38
+ {@const onTriggerContextMenu = triggerProps.oncontextmenu}
39
+ <div {...triggerProps} oncontextmenu={(event) => {
40
+ event.stopPropagation();
41
+ onTriggerContextMenu?.(event);
42
+ }} class="group flex min-w-0 items-center gap-1 rounded-md" class:bg-accent={isSelected}
43
+ class:ring-2={target?.id === node.id} class:ring-primary={target?.id === node.id}
44
+ role="group" aria-label={node.label} draggable={!node.isContainer || node.data?.kind === 'folder'}
45
+ ondragstart={(event) => { dragged = node; if (event.dataTransfer) { event.dataTransfer.effectAllowed = 'move'; event.dataTransfer.setData('text/plain', node.id); } }}
46
+ ondragend={() => { dragged = null; target = null; }}
47
+ ondragover={(event) => over(event, node)} ondragleave={() => { target = null; }}
48
+ ondrop={(event) => { event.preventDefault(); event.stopPropagation(); if (dragged && target?.id === node.id) onNodeDrop(dragged, node, target.position); dragged = null; target = null; }}>
49
+ {#if node.isContainer}
50
+ <Button variant="ghost" size="icon" aria-label={`${isExpanded ? 'Collapse' : 'Expand'} ${node.label}`} aria-expanded={isExpanded}
51
+ onclick={() => isExpanded ? expandedIds.delete(node.id) : expandedIds.add(node.id)}>
52
+ <Icon icon={isExpanded ? 'lucide:chevron-down' : 'lucide:chevron-right'} class="size-4" />
53
+ </Button>
54
+ {/if}
55
+ {@render nodeIcon({ node, isExpanded, isSelected })}
56
+ {@render nodeContent({ node, isExpanded, isSelected, depth })}
57
+ </div>
58
+ {/snippet}
59
+
33
60
  <nav aria-label="Conversation folders" class="space-y-1">
34
61
  {#if !nodes.length}<p class="p-4 text-sm text-muted-foreground">{emptyMessage}</p>{/if}
35
62
  {@render branch(nodes, 0)}
@@ -40,22 +67,14 @@
40
67
  {@const isExpanded = expandedIds.has(node.id)}
41
68
  {@const isSelected = node.data?.kind === 'room' && node.data.roomId === activeRoomId}
42
69
  <div class="space-y-1">
43
- <div class="group flex min-w-0 items-center gap-1 rounded-md" class:bg-accent={isSelected}
44
- class:ring-2={target?.id === node.id} class:ring-primary={target?.id === node.id}
45
- role="group" aria-label={node.label} draggable={!node.isContainer || node.data?.kind === 'folder'}
46
- ondragstart={(event) => { dragged = node; if (event.dataTransfer) { event.dataTransfer.effectAllowed = 'move'; event.dataTransfer.setData('text/plain', node.id); } }}
47
- ondragend={() => { dragged = null; target = null; }}
48
- ondragover={(event) => over(event, node)} ondragleave={() => { target = null; }}
49
- ondrop={(event) => { event.preventDefault(); event.stopPropagation(); if (dragged && target?.id === node.id) onNodeDrop(dragged, node, target.position); dragged = null; target = null; }}>
50
- {#if node.isContainer}
51
- <Button variant="ghost" size="icon" aria-label={`${isExpanded ? 'Collapse' : 'Expand'} ${node.label}`} aria-expanded={isExpanded}
52
- onclick={() => isExpanded ? expandedIds.delete(node.id) : expandedIds.add(node.id)}>
53
- <Icon icon={isExpanded ? 'lucide:chevron-down' : 'lucide:chevron-right'} class="size-4" />
54
- </Button>
55
- {/if}
56
- {@render nodeIcon({ node, isExpanded, isSelected })}
57
- {@render nodeContent({ node, isExpanded, isSelected, depth })}
58
- </div>
70
+ <ContextMenu.Root>
71
+ <ContextMenu.Trigger disabled={!contextMenu}>
72
+ {#snippet child({ props })}
73
+ {@render row(node, isExpanded, isSelected, depth, props)}
74
+ {/snippet}
75
+ </ContextMenu.Trigger>
76
+ {@render contextMenu?.(node)}
77
+ </ContextMenu.Root>
59
78
  {#if isExpanded && node.children}
60
79
  <div class="ml-4 border-l pl-2">{@render branch(node.children, depth + 1)}</div>
61
80
  {/if}
@@ -16,6 +16,8 @@ type $$ComponentProps = {
16
16
  isExpanded: boolean;
17
17
  isSelected: boolean;
18
18
  }]>;
19
+ /** Optional row context menu content. A disabled trigger preserves the native menu. */
20
+ contextMenu?: Snippet<[TreeNode]>;
19
21
  emptyMessage: string;
20
22
  defaultExpandAll?: boolean;
21
23
  activeRoomId?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationNodes.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/conversations/ConversationNodes.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE1C,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnG,WAAW,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACpG,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAoDH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ConversationNodes.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/conversations/ConversationNodes.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE1C,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnG,WAAW,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACpG,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAClF,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAqEH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -22,6 +22,8 @@
22
22
 
23
23
 
24
24
  import * as Alert from '@vibesdotdev/kit/components/ui/alert';
25
+ import * as ContextMenu from '@vibesdotdev/kit/components/ui/context-menu';
26
+ import type { ContextMenuAction } from '@vibesdotdev/kit/components/ui/context-menu';
25
27
  import { onMount, tick, untrack } from 'svelte';
26
28
  import { SvelteSet } from 'svelte/reactivity';
27
29
  import { Button } from '@vibesdotdev/kit/components/ui/button';
@@ -336,8 +338,132 @@
336
338
  newFolderParentId = parentId;
337
339
  creatingFolder = true;
338
340
  }
341
+
342
+ function conversationMenuActions(node: TreeNode<ConvNode>): ContextMenuAction[] {
343
+ const data = node.data;
344
+ const busy = conversationsStore.busy;
345
+ if (data?.kind === 'folder') {
346
+ return [
347
+ {
348
+ id: 'new-subfolder',
349
+ label: 'New subfolder',
350
+ icon: 'lucide:folder-plus',
351
+ group: 'Folder',
352
+ disabled: busy,
353
+ reason: busy ? 'Conversations are busy.' : undefined,
354
+ run: () => void newFolder(data.folderId)
355
+ },
356
+ {
357
+ id: 'rename-folder',
358
+ label: 'Rename…',
359
+ icon: 'lucide:pencil',
360
+ group: 'Folder',
361
+ disabled: busy,
362
+ reason: busy ? 'Conversations are busy.' : undefined,
363
+ run: () => void startRename('folder', data.folderId, node.label)
364
+ },
365
+ {
366
+ id: 'delete-folder',
367
+ label: 'Delete…',
368
+ icon: 'lucide:trash-2',
369
+ group: 'Folder',
370
+ variant: 'destructive',
371
+ disabled: busy,
372
+ reason: busy ? 'Conversations are busy.' : undefined,
373
+ run: () => {
374
+ deletingFolder = { id: data.folderId, name: node.label };
375
+ }
376
+ }
377
+ ];
378
+ }
379
+
380
+ if (data?.kind === 'room') {
381
+ const folders = conversationsStore.folders.filter((folder) => folder.id !== data.folderId);
382
+ const actions: ContextMenuAction[] = [
383
+ {
384
+ id: 'open-room',
385
+ label: 'Open',
386
+ icon: 'lucide:square-arrow-out-up-right',
387
+ group: 'Conversation',
388
+ run: () => onSelectRoom(data.roomId)
389
+ },
390
+ {
391
+ id: 'rename-room',
392
+ label: 'Rename…',
393
+ icon: 'lucide:pencil',
394
+ group: 'Conversation',
395
+ disabled: busy,
396
+ reason: busy ? 'Conversations are busy.' : undefined,
397
+ run: () => void startRename('room', data.roomId, node.label)
398
+ }
399
+ ];
400
+ if (folders.length > 0) {
401
+ actions.push({
402
+ id: 'move-room',
403
+ label: 'Move to folder',
404
+ icon: 'lucide:folder-input',
405
+ group: 'Conversation',
406
+ disabled: busy,
407
+ reason: busy ? 'Conversations are busy.' : undefined,
408
+ run: () => undefined,
409
+ submenu: folders.map((folder) => ({
410
+ id: `move-room:${folder.id}`,
411
+ label: folder.name,
412
+ run: () => void conversationsStore.moveRoom(data.roomId, data.folderId, folder.id)
413
+ }))
414
+ });
415
+ }
416
+ if (data.folderId) {
417
+ actions.push({
418
+ id: 'remove-from-folder',
419
+ label: 'Remove from folder',
420
+ icon: 'lucide:folder-minus',
421
+ group: 'Conversation',
422
+ disabled: busy,
423
+ reason: busy ? 'Conversations are busy.' : undefined,
424
+ run: () => void conversationsStore.moveRoom(data.roomId, data.folderId, null)
425
+ });
426
+ }
427
+ actions.push({
428
+ id: 'delete-room',
429
+ label: 'Delete…',
430
+ icon: 'lucide:trash-2',
431
+ group: 'Conversation',
432
+ variant: 'destructive',
433
+ disabled: busy,
434
+ reason: busy ? 'Conversations are busy.' : undefined,
435
+ run: () => {
436
+ deletingRoom = { id: data.roomId, title: node.label };
437
+ }
438
+ });
439
+ return actions;
440
+ }
441
+
442
+ return [
443
+ {
444
+ id: 'new-chat',
445
+ label: 'New chat',
446
+ icon: 'lucide:message-square-plus',
447
+ group: 'Create',
448
+ run: () => void runtimeChatStore.openRoom(null)
449
+ },
450
+ {
451
+ id: 'new-folder',
452
+ label: 'New folder…',
453
+ icon: 'lucide:folder-plus',
454
+ group: 'Create',
455
+ run: () => void newFolder(null)
456
+ }
457
+ ];
458
+ }
339
459
  </script>
340
460
 
461
+ {#snippet conversationContextMenu(node: TreeNode<ConvNode>)}
462
+ <ContextMenu.Content class="min-w-56" data-conversation-context-menu>
463
+ <ContextMenu.ActionList label={node.label} actions={conversationMenuActions(node)} />
464
+ </ContextMenu.Content>
465
+ {/snippet}
466
+
341
467
  <div class={className} aria-busy={conversationsStore.busy || conversationsStore.loading}>
342
468
  {#if conversationsStore.error}
343
469
  <Alert.Root variant="destructive">
@@ -438,6 +564,7 @@
438
564
  defaultExpandAll={!compact && conversationsStore.loaded}
439
565
  activeRoomId={runtimeChatStore.activeRoom?.id}
440
566
  onNodeDrop={handleDrop}
567
+ contextMenu={conversationContextMenu}
441
568
  emptyMessage={q ? 'No matches' : 'No conversations yet'}
442
569
  nodeIcon={iconSnippet}
443
570
  nodeContent={contentSnippet}
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationsTree.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/conversations/ConversationsTree.svelte.ts"],"names":[],"mappings":"AAGC,MAAM,WAAW,sBAAsB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAglBF,QAAA,MAAM,iBAAiB;2BArHc,MAAM,GAAG,IAAI;MAqHa,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ConversationsTree.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/conversations/ConversationsTree.svelte"],"names":[],"mappings":"AAGC,MAAM,WAAW,sBAAsB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAgtBF,QAAA,MAAM,iBAAiB;2BA7Oc,MAAM,GAAG,IAAI;MA6Oa,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateFolderDialog.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/conversations/CreateFolderDialog.svelte.ts"],"names":[],"mappings":"AAYC,KAAK,gBAAgB,GAAI;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC;AAmEH,QAAA,MAAM,kBAAkB,0DAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"CreateFolderDialog.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/conversations/CreateFolderDialog.svelte"],"names":[],"mappings":"AAYC,KAAK,gBAAgB,GAAI;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC;AAmEH,QAAA,MAAM,kBAAkB,0DAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -13,6 +13,8 @@ export { default as ChatMessageAttachments } from './ChatMessageAttachments.svel
13
13
  export { default as ChatMessageBubble } from './ChatMessageBubble.svelte';
14
14
  export { default as ChatMessageContent } from './ChatMessageContent.svelte';
15
15
  export { default as ChatMessageReactions } from './ChatMessageReactions.svelte';
16
+ export { default as ConversationsTree } from './conversations/ConversationsTree.svelte';
17
+ export { default as CreateFolderDialog } from './conversations/CreateFolderDialog.svelte';
16
18
  export { default as ChatWorkspace } from './ChatWorkspace.svelte';
17
19
  export { default as ChatExperienceHost } from './ChatExperienceHost.svelte';
18
20
  export { default as RoomStageChatInterface } from './RoomStageChatInterface.svelte';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,4BAA4B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,MAAM,qCAAqC,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export { default as ChatMessageAttachments } from './ChatMessageAttachments.svel
13
13
  export { default as ChatMessageBubble } from './ChatMessageBubble.svelte';
14
14
  export { default as ChatMessageContent } from './ChatMessageContent.svelte';
15
15
  export { default as ChatMessageReactions } from './ChatMessageReactions.svelte';
16
+ export { default as ConversationsTree } from './conversations/ConversationsTree.svelte';
17
+ export { default as CreateFolderDialog } from './conversations/CreateFolderDialog.svelte';
16
18
  export { default as ChatWorkspace } from './ChatWorkspace.svelte';
17
19
  export { default as ChatExperienceHost } from './ChatExperienceHost.svelte';
18
20
  export { default as RoomStageChatInterface } from './RoomStageChatInterface.svelte';
@@ -1 +1 @@
1
- {"version":3,"file":"ChatConnectionStatus.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/ChatConnectionStatus.svelte.ts"],"names":[],"mappings":"AAUC,KAAK,KAAK,GAAG;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA8CH,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ChatConnectionStatus.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/ChatConnectionStatus.svelte"],"names":[],"mappings":"AAUC,KAAK,KAAK,GAAG;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA8CH,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NextStepSkeleton.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/NextStepSkeleton.svelte.ts"],"names":[],"mappings":"AAqCA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,gBAAgB;;kBAA+E,CAAC;AACpF,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"NextStepSkeleton.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/NextStepSkeleton.svelte"],"names":[],"mappings":"AAqCA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,gBAAgB;;kBAA+E,CAAC;AACpF,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingIndicator.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/StreamingIndicator.svelte.ts"],"names":[],"mappings":"AAGC,UAAU,KAAK;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AA6BF,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"StreamingIndicator.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/StreamingIndicator.svelte"],"names":[],"mappings":"AAGC,UAAU,KAAK;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AA6BF,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TypingIndicator.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/TypingIndicator.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,UAAU,KAAK;IACd,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC;AA2CF,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"TypingIndicator.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/indicators/TypingIndicator.svelte"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,UAAU,KAAK;IACd,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC;AA2CF,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSegments.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/MessageSegments.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;OAeI;AACJ,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGtE,KAAK,gBAAgB,GAAI;IACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,kFAAkF;IAClF,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAqDH,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"MessageSegments.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/MessageSegments.svelte"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;OAeI;AACJ,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGtE,KAAK,gBAAgB,GAAI;IACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,kFAAkF;IAClF,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAqDH,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeChatActionBar.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatActionBar.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,gBAAgB,GAAI;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;iEAC6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA2EH,QAAA,MAAM,oBAAoB,sDAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"RuntimeChatActionBar.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatActionBar.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,gBAAgB,GAAI;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;iEAC6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA2EH,QAAA,MAAM,oBAAoB,sDAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeChatAttachments.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatAttachments.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAExF,KAAK,gBAAgB,GAAI;IACxB,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AA6BH,QAAA,MAAM,sBAAsB,sDAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"RuntimeChatAttachments.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatAttachments.svelte"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAExF,KAAK,gBAAgB,GAAI;IACxB,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AA6BH,QAAA,MAAM,sBAAsB,sDAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -9,7 +9,7 @@ type $$ComponentProps = {
9
9
  augmentItems?: RuntimeChatCommandMenuItem[];
10
10
  onSelect?: (value: string, type: 'mention' | 'command' | 'augment') => void;
11
11
  };
12
- declare const RuntimeChatCommandMenu: import("svelte").Component<$$ComponentProps, {}, "type" | "query" | "open">;
12
+ declare const RuntimeChatCommandMenu: import("svelte").Component<$$ComponentProps, {}, "type" | "open" | "query">;
13
13
  type RuntimeChatCommandMenu = ReturnType<typeof RuntimeChatCommandMenu>;
14
14
  export default RuntimeChatCommandMenu;
15
15
  //# sourceMappingURL=RuntimeChatCommandMenu.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeChatCommandMenu.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatCommandMenu.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1F,KAAK,gBAAgB,GAAI;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvC,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5E,CAAC;AAyIH,QAAA,MAAM,sBAAsB,6EAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"RuntimeChatCommandMenu.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatCommandMenu.svelte"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1F,KAAK,gBAAgB,GAAI;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvC,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5E,CAAC;AAyIH,QAAA,MAAM,sBAAsB,6EAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeChatComposer.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatComposer.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,eAAe,EACf,MAAM,uDAAuD,CAAC;AAGhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1F,KAAK,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpF,KAAK,gBAAgB,GAAI;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvC,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE,CAAC;AA8bH,QAAA,MAAM,mBAAmB;;WAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"RuntimeChatComposer.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatComposer.svelte"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,eAAe,EACf,MAAM,uDAAuD,CAAC;AAGhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1F,KAAK,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpF,KAAK,gBAAgB,GAAI;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvC,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE,CAAC;AA8bH,QAAA,MAAM,mBAAmB;;WAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeChatDialogHost.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatDialogHost.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKxC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAKL,KAAK,4BAA4B,EAEjC,MAAM,yBAAyB,CAAC;AAGjC,KAAK,gBAAgB,GAAI;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAwQH,QAAA,MAAM,qBAAqB,kDAAwC,CAAC;AACpE,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtE,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"RuntimeChatDialogHost.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatDialogHost.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKxC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAKL,KAAK,4BAA4B,EAEjC,MAAM,yBAAyB,CAAC;AAGjC,KAAK,gBAAgB,GAAI;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAwQH,QAAA,MAAM,qBAAqB,kDAAwC,CAAC;AACpE,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtE,eAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeChatInput.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatInput.svelte.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQxD,OAAO,EAAqC,KAAK,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAEnI,OAAO,KAAK,EAEV,QAAQ,EACR,mBAAmB,EAGnB,MAAM,oCAAoC,CAAC;AAc7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,MAAM,6BAA6B,CAAC;AAGrC,KAAK,UAAU,GAAG,OAAO,GAAG,gBAAgB,CAAC;AAW7C,KAAK,gBAAgB,GAAI;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AA0jCH,QAAA,MAAM,gBAAgB,mEAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"RuntimeChatInput.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/runtime/RuntimeChatInput.svelte"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQxD,OAAO,EAAqC,KAAK,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAEnI,OAAO,KAAK,EAEV,QAAQ,EACR,mBAAmB,EAGnB,MAAM,oCAAoC,CAAC;AAc7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,MAAM,6BAA6B,CAAC;AAGrC,KAAK,UAAU,GAAG,OAAO,GAAG,gBAAgB,CAAC;AAW7C,KAAK,gBAAgB,GAAI;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AA0jCH,QAAA,MAAM,gBAAgB,mEAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -6,6 +6,8 @@
6
6
  import ChatMessageToolCalls from '../ChatMessageToolCalls.svelte';
7
7
  import { Button } from '@vibesdotdev/kit/components/ui/button';
8
8
  import { Icon } from '@vibesdotdev/kit/components/icon';
9
+ import * as ContextMenu from '@vibesdotdev/kit/components/ui/context-menu';
10
+ import type { ContextMenuAction } from '@vibesdotdev/kit/components/ui/context-menu';
9
11
 
10
12
  import ChatMessageContent from '../ChatMessageContent.svelte';
11
13
  import ChatMessageStatusBadge from '../ChatMessageStatusBadge.svelte';
@@ -25,7 +27,9 @@
25
27
  message,
26
28
  currentUserId = null,
27
29
  onEdit,
28
- onReact
30
+ onReact,
31
+ onRetry,
32
+ onDismiss
29
33
  }: {
30
34
  message: ChatMessage;
31
35
  /** Viewer id — enables the Edit control on the viewer's own user messages. */
@@ -38,6 +42,10 @@
38
42
  * counts a room already has stay visible even before interaction is wired.
39
43
  */
40
44
  onReact?: (messageId: string, type: 'up' | 'down') => void;
45
+ /** Wired by the surface to retry the user turn behind a failed reply. */
46
+ onRetry?: (messageId: string) => void;
47
+ /** Wired by the surface to remove a failed reply from the transcript. */
48
+ onDismiss?: (messageId: string) => void;
41
49
  } = $props();
42
50
 
43
51
  function initials(label: string) {
@@ -105,6 +113,72 @@
105
113
  const canEdit = $derived(
106
114
  message.senderType === 'user' && !!onEdit && !!currentUserId && message.userId === currentUserId
107
115
  );
116
+ const failedTurn = $derived(
117
+ message.senderType === 'agent' && (message.status === 'failed' || failureNotice !== null)
118
+ );
119
+
120
+ async function copyMessage(): Promise<void> {
121
+ await navigator.clipboard.writeText(message.content ?? '');
122
+ }
123
+
124
+ const messageMenuActions = $derived.by<ContextMenuAction[]>(() => {
125
+ const actions: ContextMenuAction[] = [];
126
+ if (message.content?.trim()) {
127
+ actions.push({
128
+ id: 'copy-message',
129
+ label: 'Copy message',
130
+ icon: 'lucide:copy',
131
+ group: 'Copy',
132
+ run: copyMessage
133
+ });
134
+ }
135
+ if (canEdit) {
136
+ actions.push({
137
+ id: 'edit-message',
138
+ label: 'Edit message',
139
+ icon: 'lucide:pencil',
140
+ group: 'Edit',
141
+ run: () => onEdit?.(message.id)
142
+ });
143
+ }
144
+ if (onReact) {
145
+ actions.push(
146
+ {
147
+ id: 'react-up',
148
+ label: 'Thumbs up',
149
+ icon: 'lucide:thumbs-up',
150
+ group: 'React',
151
+ run: () => onReact?.(message.id, 'up')
152
+ },
153
+ {
154
+ id: 'react-down',
155
+ label: 'Thumbs down',
156
+ icon: 'lucide:thumbs-down',
157
+ group: 'React',
158
+ run: () => onReact?.(message.id, 'down')
159
+ }
160
+ );
161
+ }
162
+ if (failedTurn && onRetry) {
163
+ actions.push({
164
+ id: 'retry-response',
165
+ label: 'Retry response',
166
+ icon: 'lucide:refresh-cw',
167
+ group: 'Failed turn',
168
+ run: () => onRetry?.(message.id)
169
+ });
170
+ }
171
+ if (failedTurn && onDismiss) {
172
+ actions.push({
173
+ id: 'dismiss-failed-reply',
174
+ label: 'Dismiss failed reply',
175
+ icon: 'lucide:x',
176
+ group: 'Failed turn',
177
+ run: () => onDismiss?.(message.id)
178
+ });
179
+ }
180
+ return actions;
181
+ });
108
182
 
109
183
  const label = $derived(resolveRuntimeChatSenderLabel(message, chatParticipantsStore));
110
184
  const toolCalls = $derived(
@@ -259,13 +333,17 @@
259
333
  );
260
334
  </script>
261
335
 
262
- <article
263
- class={[
264
- 'grid grid-cols-[2rem_minmax(0,1fr)] gap-3 py-2',
265
- message.senderType === 'system' && 'opacity-80'
266
- ]}
267
- data-message-id={message.id}
268
- >
336
+ <ContextMenu.Root>
337
+ <ContextMenu.Trigger disabled={messageMenuActions.length === 0}>
338
+ {#snippet child({ props })}
339
+ <article
340
+ {...props}
341
+ class={[
342
+ 'grid grid-cols-[2rem_minmax(0,1fr)] gap-3 py-2',
343
+ message.senderType === 'system' && 'opacity-80'
344
+ ]}
345
+ data-message-id={message.id}
346
+ >
269
347
  <div
270
348
  class="grid size-8 place-items-center rounded-full bg-muted text-caption font-bold text-muted-foreground"
271
349
  aria-hidden="true"
@@ -402,4 +480,14 @@
402
480
  </div>
403
481
  {/if}
404
482
  </div>
405
- </article>
483
+ </article>
484
+ {/snippet}
485
+ </ContextMenu.Trigger>
486
+ <ContextMenu.Content class="min-w-56" data-chat-message-menu>
487
+ <ContextMenu.ActionList
488
+ label={label}
489
+ description={failedTurn ? 'Failed reply' : 'Message'}
490
+ actions={messageMenuActions}
491
+ />
492
+ </ContextMenu.Content>
493
+ </ContextMenu.Root>
@@ -11,6 +11,10 @@ type $$ComponentProps = {
11
11
  * counts a room already has stay visible even before interaction is wired.
12
12
  */
13
13
  onReact?: (messageId: string, type: 'up' | 'down') => void;
14
+ /** Wired by the surface to retry the user turn behind a failed reply. */
15
+ onRetry?: (messageId: string) => void;
16
+ /** Wired by the surface to remove a failed reply from the transcript. */
17
+ onDismiss?: (messageId: string) => void;
14
18
  };
15
19
  declare const RuntimeChatMessageRow: import("svelte").Component<$$ComponentProps, {}, "">;
16
20
  type RuntimeChatMessageRow = ReturnType<typeof RuntimeChatMessageRow>;