@scalar/agent-chat 0.12.44 → 0.12.46

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 (224) hide show
  1. package/dist/App.test.d.ts +2 -0
  2. package/dist/App.test.d.ts.map +1 -0
  3. package/dist/App.vue.d.ts +5 -1
  4. package/dist/App.vue.d.ts.map +1 -1
  5. package/dist/App.vue.js +1 -1
  6. package/dist/App.vue.js.map +1 -1
  7. package/dist/{App.vue.script.js → App.vue_vue_type_script_setup_true_lang.js} +3 -1
  8. package/dist/App.vue_vue_type_script_setup_true_lang.js.map +1 -0
  9. package/dist/Chat.vue.d.ts.map +1 -1
  10. package/dist/Chat.vue.js +1 -1
  11. package/dist/Chat.vue.js.map +1 -1
  12. package/dist/{Chat.vue.script.js → Chat.vue_vue_type_script_setup_true_lang.js} +14 -6
  13. package/dist/Chat.vue_vue_type_script_setup_true_lang.js.map +1 -0
  14. package/dist/client-tools/execute-request.js +3 -2
  15. package/dist/client-tools/execute-request.js.map +1 -1
  16. package/dist/components/ActionsDropdown.vue.js +2 -2
  17. package/dist/components/ActionsDropdown.vue.js.map +1 -1
  18. package/dist/components/{ActionsDropdown.vue.script.js → ActionsDropdown.vue_vue_type_script_setup_true_lang.js} +1 -1
  19. package/dist/components/ActionsDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
  20. package/dist/components/ApprovalSection.vue.js +2 -2
  21. package/dist/components/ApprovalSection.vue.js.map +1 -1
  22. package/dist/components/{ApprovalSection.vue.script.js → ApprovalSection.vue_vue_type_script_setup_true_lang.js} +1 -1
  23. package/dist/components/ApprovalSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  24. package/dist/components/AuthenticationProvided.vue.js +1 -1
  25. package/dist/components/AuthenticationProvided.vue.js.map +1 -1
  26. package/dist/components/AuthenticationRequired.vue.js +1 -1
  27. package/dist/components/AuthenticationRequired.vue.js.map +1 -1
  28. package/dist/components/AutosendPaused.vue.js +1 -1
  29. package/dist/components/AutosendPaused.vue.js.map +1 -1
  30. package/dist/components/BuildingRequest.vue.js +1 -1
  31. package/dist/components/BuildingRequest.vue.js.map +1 -1
  32. package/dist/components/ContextItem.vue.js +2 -2
  33. package/dist/components/ContextItem.vue.js.map +1 -1
  34. package/dist/components/{ContextItem.vue.script.js → ContextItem.vue_vue_type_script_setup_true_lang.js} +1 -1
  35. package/dist/components/ContextItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  36. package/dist/components/ErrorMessage.vue.js +2 -2
  37. package/dist/components/ErrorMessage.vue.js.map +1 -1
  38. package/dist/components/{ErrorMessage.vue.script.js → ErrorMessage.vue_vue_type_script_setup_true_lang.js} +1 -1
  39. package/dist/components/ErrorMessage.vue_vue_type_script_setup_true_lang.js.map +1 -0
  40. package/dist/components/FreeMessagesInfoSection.vue.js +2 -2
  41. package/dist/components/FreeMessagesInfoSection.vue.js.map +1 -1
  42. package/dist/components/{FreeMessagesInfoSection.vue.script.js → FreeMessagesInfoSection.vue_vue_type_script_setup_true_lang.js} +1 -1
  43. package/dist/components/FreeMessagesInfoSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  44. package/dist/components/LoadingOpenAPISpecsSummary.vue.js +1 -1
  45. package/dist/components/LoadingOpenAPISpecsSummary.vue.js.map +1 -1
  46. package/dist/components/LoadingSearchOpenAPIOperations.vue.js +1 -1
  47. package/dist/components/LoadingSearchOpenAPIOperations.vue.js.map +1 -1
  48. package/dist/components/Logo.vue.js.map +1 -1
  49. package/dist/components/PaymentSection.vue.js +2 -2
  50. package/dist/components/PaymentSection.vue.js.map +1 -1
  51. package/dist/components/{PaymentSection.vue.script.js → PaymentSection.vue_vue_type_script_setup_true_lang.js} +1 -1
  52. package/dist/components/PaymentSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  53. package/dist/components/RequestApproved.vue.js +1 -1
  54. package/dist/components/RequestApproved.vue.js.map +1 -1
  55. package/dist/components/RequestFailed.vue.js +1 -1
  56. package/dist/components/RequestFailed.vue.js.map +1 -1
  57. package/dist/components/RequestPreview.vue.js +2 -2
  58. package/dist/components/RequestPreview.vue.js.map +1 -1
  59. package/dist/components/{RequestPreview.vue.script.js → RequestPreview.vue_vue_type_script_setup_true_lang.js} +1 -1
  60. package/dist/components/RequestPreview.vue_vue_type_script_setup_true_lang.js.map +1 -0
  61. package/dist/components/RequestRejected.vue.js +1 -1
  62. package/dist/components/RequestRejected.vue.js.map +1 -1
  63. package/dist/components/RequestSuccess.vue.js +1 -1
  64. package/dist/components/RequestSuccess.vue.js.map +1 -1
  65. package/dist/components/ResponseBody/ResponseBody.vue.d.ts +2 -2
  66. package/dist/components/ResponseBody/ResponseBody.vue.js +1 -1
  67. package/dist/components/ResponseBody/ResponseBody.vue.js.map +1 -1
  68. package/dist/components/ResponseBody/{ResponseBody.vue.script.js → ResponseBody.vue_vue_type_script_setup_true_lang.js} +1 -1
  69. package/dist/components/ResponseBody/ResponseBody.vue_vue_type_script_setup_true_lang.js.map +1 -0
  70. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js.map +1 -1
  71. package/dist/components/ResponseBody/ResponseBodyPreview.vue.d.ts +1 -1
  72. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js +2 -2
  73. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js.map +1 -1
  74. package/dist/components/ResponseBody/{ResponseBodyPreview.vue.script.js → ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js} +1 -1
  75. package/dist/components/ResponseBody/ResponseBodyPreview.vue_vue_type_script_setup_true_lang.js.map +1 -0
  76. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js +1 -1
  77. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js.map +1 -1
  78. package/dist/components/ResponseBody/{ResponseBodyRaw.vue.script.js → ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js} +1 -1
  79. package/dist/components/ResponseBody/ResponseBodyRaw.vue_vue_type_script_setup_true_lang.js.map +1 -0
  80. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js +1 -1
  81. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js.map +1 -1
  82. package/dist/components/ResponseBody/{ResponseBodyToggle.vue.script.js → ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js} +1 -1
  83. package/dist/components/ResponseBody/ResponseBodyToggle.vue_vue_type_script_setup_true_lang.js.map +1 -0
  84. package/dist/components/SearchPopover.vue.js +2 -2
  85. package/dist/components/SearchPopover.vue.js.map +1 -1
  86. package/dist/components/{SearchPopover.vue.script.js → SearchPopover.vue_vue_type_script_setup_true_lang.js} +1 -1
  87. package/dist/components/SearchPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
  88. package/dist/components/Selector.vue.js +1 -1
  89. package/dist/components/Selector.vue.js.map +1 -1
  90. package/dist/components/{Selector.vue.script.js → Selector.vue_vue_type_script_setup_true_lang.js} +1 -1
  91. package/dist/components/Selector.vue_vue_type_script_setup_true_lang.js.map +1 -0
  92. package/dist/components/SendingRequest.vue.js +1 -1
  93. package/dist/components/SendingRequest.vue.js.map +1 -1
  94. package/dist/components/ServerSelector.vue.js +1 -1
  95. package/dist/components/ServerSelector.vue.js.map +1 -1
  96. package/dist/components/{ServerSelector.vue.script.js → ServerSelector.vue_vue_type_script_setup_true_lang.js} +1 -1
  97. package/dist/components/ServerSelector.vue_vue_type_script_setup_true_lang.js.map +1 -0
  98. package/dist/components/UploadSection.vue.js +3 -3
  99. package/dist/components/UploadSection.vue.js.map +1 -1
  100. package/dist/components/{UploadSection.vue.script.js → UploadSection.vue_vue_type_script_setup_true_lang.js} +3 -3
  101. package/dist/components/UploadSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  102. package/dist/entities/tools/execute-request.d.ts +1 -1
  103. package/dist/entities/tools/get-openapi-specs-summary.d.ts +3 -2
  104. package/dist/entities/tools/get-openapi-specs-summary.d.ts.map +1 -1
  105. package/dist/entities/tools/get-openapi-specs-summary.js.map +1 -1
  106. package/dist/entities/tools/search-openapi-operations.d.ts +2 -1
  107. package/dist/entities/tools/search-openapi-operations.d.ts.map +1 -1
  108. package/dist/entities/tools/search-openapi-operations.js.map +1 -1
  109. package/dist/helpers/get-search-result-labels.d.ts +3 -0
  110. package/dist/helpers/get-search-result-labels.d.ts.map +1 -0
  111. package/dist/helpers/get-search-result-labels.js +38 -0
  112. package/dist/helpers/get-search-result-labels.js.map +1 -0
  113. package/dist/helpers/get-search-result-labels.test.d.ts +2 -0
  114. package/dist/helpers/get-search-result-labels.test.d.ts.map +1 -0
  115. package/dist/helpers.d.ts +0 -3
  116. package/dist/helpers.d.ts.map +1 -1
  117. package/dist/helpers.js +6 -7
  118. package/dist/helpers.js.map +1 -1
  119. package/dist/hooks/use-agent-key-documents.js +1 -1
  120. package/dist/hooks/use-agent-key-documents.js.map +1 -1
  121. package/dist/hooks/use-upload-tmp-document.d.ts +1 -1
  122. package/dist/hooks/use-upload-tmp-document.d.ts.map +1 -1
  123. package/dist/hooks/use-upload-tmp-document.js +24 -17
  124. package/dist/hooks/use-upload-tmp-document.js.map +1 -1
  125. package/dist/index.js +1 -2
  126. package/dist/package.json +2 -1
  127. package/dist/registry/add-documents-to-store.d.ts.map +1 -1
  128. package/dist/registry/add-documents-to-store.js.map +1 -1
  129. package/dist/state/state.d.ts +6 -2
  130. package/dist/state/state.d.ts.map +1 -1
  131. package/dist/state/state.js +15 -6
  132. package/dist/state/state.js.map +1 -1
  133. package/dist/state/state.test.d.ts +2 -0
  134. package/dist/state/state.test.d.ts.map +1 -0
  135. package/dist/style.css +137 -109
  136. package/dist/views/Catalog/Catalog.vue.js +3 -3
  137. package/dist/views/Catalog/Catalog.vue.js.map +1 -1
  138. package/dist/views/Catalog/{Catalog.vue.script.js → Catalog.vue_vue_type_script_setup_true_lang.js} +1 -1
  139. package/dist/views/Catalog/Catalog.vue_vue_type_script_setup_true_lang.js.map +1 -0
  140. package/dist/views/Chat/Chat.vue.js +2 -2
  141. package/dist/views/Chat/Chat.vue.js.map +1 -1
  142. package/dist/views/Chat/{Chat.vue.script.js → Chat.vue_vue_type_script_setup_true_lang.js} +1 -1
  143. package/dist/views/Chat/Chat.vue_vue_type_script_setup_true_lang.js.map +1 -0
  144. package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts.map +1 -1
  145. package/dist/views/Chat/Messages/AskForAuthentication.vue.js +3 -3
  146. package/dist/views/Chat/Messages/AskForAuthentication.vue.js.map +1 -1
  147. package/dist/views/Chat/Messages/{AskForAuthentication.vue.script.js → AskForAuthentication.vue_vue_type_script_setup_true_lang.js} +45 -36
  148. package/dist/views/Chat/Messages/AskForAuthentication.vue_vue_type_script_setup_true_lang.js.map +1 -0
  149. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts.map +1 -1
  150. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +3 -3
  151. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js.map +1 -1
  152. package/dist/views/Chat/Messages/{ExecuteRequestTool.vue.script.js → ExecuteRequestTool.vue_vue_type_script_setup_true_lang.js} +9 -4
  153. package/dist/views/Chat/Messages/ExecuteRequestTool.vue_vue_type_script_setup_true_lang.js.map +1 -0
  154. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js +1 -1
  155. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js.map +1 -1
  156. package/dist/views/Chat/Messages/{GetOpenAPISpecsSummary.vue.script.js → GetOpenAPISpecsSummary.vue_vue_type_script_setup_true_lang.js} +1 -1
  157. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue_vue_type_script_setup_true_lang.js.map +1 -0
  158. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.d.ts.map +1 -1
  159. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js +3 -3
  160. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js.map +1 -1
  161. package/dist/views/Chat/Messages/{SearchOpenAPIOperationsTool.vue.script.js → SearchOpenAPIOperationsTool.vue_vue_type_script_setup_true_lang.js} +7 -10
  162. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue_vue_type_script_setup_true_lang.js.map +1 -0
  163. package/dist/views/Chat/Messages/Text.vue.js +1 -1
  164. package/dist/views/Chat/Messages/Text.vue.js.map +1 -1
  165. package/dist/views/Chat/Messages/{Text.vue.script.js → Text.vue_vue_type_script_setup_true_lang.js} +1 -1
  166. package/dist/views/Chat/Messages/Text.vue_vue_type_script_setup_true_lang.js.map +1 -0
  167. package/dist/views/Layout.vue.js +2 -2
  168. package/dist/views/Layout.vue.js.map +1 -1
  169. package/dist/views/{Layout.vue.script.js → Layout.vue_vue_type_script_setup_true_lang.js} +1 -1
  170. package/dist/views/Layout.vue_vue_type_script_setup_true_lang.js.map +1 -0
  171. package/dist/views/PromptForm.vue.d.ts.map +1 -1
  172. package/dist/views/PromptForm.vue.js +3 -3
  173. package/dist/views/PromptForm.vue.js.map +1 -1
  174. package/dist/views/{PromptForm.vue.script.js → PromptForm.vue_vue_type_script_setup_true_lang.js} +1 -2
  175. package/dist/views/PromptForm.vue_vue_type_script_setup_true_lang.js.map +1 -0
  176. package/dist/views/Settings/Auth.vue.js +1 -1
  177. package/dist/views/Settings/Auth.vue.js.map +1 -1
  178. package/dist/views/Settings/{Auth.vue.script.js → Auth.vue_vue_type_script_setup_true_lang.js} +1 -1
  179. package/dist/views/Settings/Auth.vue_vue_type_script_setup_true_lang.js.map +1 -0
  180. package/dist/views/Settings/DocSettings.vue.js +2 -2
  181. package/dist/views/Settings/DocSettings.vue.js.map +1 -1
  182. package/dist/views/Settings/{DocSettings.vue.script.js → DocSettings.vue_vue_type_script_setup_true_lang.js} +1 -1
  183. package/dist/views/Settings/DocSettings.vue_vue_type_script_setup_true_lang.js.map +1 -0
  184. package/dist/views/Settings/Settings.vue.d.ts.map +1 -1
  185. package/dist/views/Settings/Settings.vue.js +4 -4
  186. package/dist/views/Settings/Settings.vue.js.map +1 -1
  187. package/dist/views/Settings/{Settings.vue.script.js → Settings.vue_vue_type_script_setup_true_lang.js} +11 -7
  188. package/dist/views/Settings/Settings.vue_vue_type_script_setup_true_lang.js.map +1 -0
  189. package/dist/views/Start.vue.js +3 -3
  190. package/dist/views/Start.vue.js.map +1 -1
  191. package/dist/views/{Start.vue.script.js → Start.vue_vue_type_script_setup_true_lang.js} +2 -2
  192. package/dist/views/Start.vue_vue_type_script_setup_true_lang.js.map +1 -0
  193. package/dist/vue-styles.css +71 -71
  194. package/package.json +23 -22
  195. package/dist/App.vue.script.js.map +0 -1
  196. package/dist/Chat.vue.script.js.map +0 -1
  197. package/dist/components/ActionsDropdown.vue.script.js.map +0 -1
  198. package/dist/components/ApprovalSection.vue.script.js.map +0 -1
  199. package/dist/components/ContextItem.vue.script.js.map +0 -1
  200. package/dist/components/ErrorMessage.vue.script.js.map +0 -1
  201. package/dist/components/FreeMessagesInfoSection.vue.script.js.map +0 -1
  202. package/dist/components/PaymentSection.vue.script.js.map +0 -1
  203. package/dist/components/RequestPreview.vue.script.js.map +0 -1
  204. package/dist/components/ResponseBody/ResponseBody.vue.script.js.map +0 -1
  205. package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js.map +0 -1
  206. package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js.map +0 -1
  207. package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js.map +0 -1
  208. package/dist/components/SearchPopover.vue.script.js.map +0 -1
  209. package/dist/components/Selector.vue.script.js.map +0 -1
  210. package/dist/components/ServerSelector.vue.script.js.map +0 -1
  211. package/dist/components/UploadSection.vue.script.js.map +0 -1
  212. package/dist/views/Catalog/Catalog.vue.script.js.map +0 -1
  213. package/dist/views/Chat/Chat.vue.script.js.map +0 -1
  214. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +0 -1
  215. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js.map +0 -1
  216. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js.map +0 -1
  217. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js.map +0 -1
  218. package/dist/views/Chat/Messages/Text.vue.script.js.map +0 -1
  219. package/dist/views/Layout.vue.script.js.map +0 -1
  220. package/dist/views/PromptForm.vue.script.js.map +0 -1
  221. package/dist/views/Settings/Auth.vue.script.js.map +0 -1
  222. package/dist/views/Settings/DocSettings.vue.script.js.map +0 -1
  223. package/dist/views/Settings/Settings.vue.script.js.map +0 -1
  224. package/dist/views/Start.vue.script.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.js";
2
- import Catalog_vue_vue_type_script_setup_true_lang_default from "./Catalog.vue.script.js";
3
- /* empty css */
4
- /* empty css */
2
+ import Catalog_vue_vue_type_script_setup_true_lang_default from "./Catalog.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ /* empty css */
5
5
  //#region src/views/Catalog/Catalog.vue
6
6
  var Catalog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Catalog_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-18b2aea2"]]);
7
7
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Catalog.vue.js","names":[],"sources":["../../../src/views/Catalog/Catalog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { ScalarModal, type ModalState } from '@scalar/components/modal'\nimport { ScalarSearchInput } from '@scalar/components/search-input'\nimport { computed } from 'vue'\n\nimport { useSearch } from '@/hooks/use-search'\nimport { useState } from '@/state/state'\n\ndefineProps<{\n modal: ModalState\n}>()\n\nconst search = useSearch()\n\nconst state = useState()\n\nconst searchOptions = computed(() =>\n search.results.value\n .filter((r) => {\n return !state.registryDocuments.value.some(\n (d) => d.namespace === r.namespace && d.slug === r.slug,\n )\n })\n .map((result) => ({\n ...result,\n label: result.title,\n id: result.id,\n })),\n)\n</script>\n\n<template>\n <ScalarModal\n class=\"catalogModal\"\n :state=\"modal\">\n <ScalarSearchInput\n autofocus\n class=\"searchInput\"\n :modelValue=\"search.query.value\"\n @update:modelValue=\"(v) => (search.query.value = v ?? '')\" />\n <template v-if=\"searchOptions.length\">\n <div class=\"catalog custom-scroll\">\n <button\n v-for=\"option in searchOptions\"\n :key=\"option.id\"\n class=\"item\"\n type=\"button\"\n @click=\"\n () => {\n state.addDocument(option)\n modal.hide()\n }\n \">\n <div class=\"left\">\n <img\n v-if=\"option.logoUrl\"\n class=\"logo\"\n :src=\"option.logoUrl\" />\n <ScalarIcon\n v-else\n class=\"logo\"\n logo=\"Openapi\" />\n </div>\n\n <div class=\"right\">\n <div class=\"item-top\">\n <span>{{ option.title }}</span>\n\n <span class=\"version\">v{{ option.currentVersion }}</span>\n </div>\n\n <span class=\"description\">\n @{{ option.namespace }}/{{ option.slug }}\n </span>\n </div>\n </button>\n </div>\n </template>\n </ScalarModal>\n</template>\n\n<style>\n.catalogModal .scalar-modal-body {\n display: flex;\n flex-direction: column;\n}\n</style>\n\n<style scoped>\n.searchInput {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg);\n margin-bottom: 10px;\n}\n.catalog {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n overflow-y: scroll;\n font-size: var(--scalar-font-size-3);\n}\n.item {\n display: flex;\n padding: 15px;\n gap: 10px;\n align-items: center;\n background-color: var(--scalar-background-2);\n border-radius: var(--scalar-radius-lg);\n transition: background-color 160ms ease;\n}\n.item:hover {\n background-color: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 40%\n ) !important;\n}\n.left {\n align-items: center;\n}\n.right {\n display: flex;\n flex-direction: column;\n}\n.logo {\n width: 25px;\n}\n.item-top {\n display: flex;\n gap: 10px;\n}\n.version {\n background: var(--scalar-background-3);\n padding: 2px 5px;\n border-radius: var(--scalar-radius);\n font-size: var(--scalar-font-size-5);\n color: var(--scalar-color-3);\n}\n.description {\n color: var(--scalar-color-2);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"Catalog.vue.js","names":["_sfc_main"],"sources":["../../../src/views/Catalog/Catalog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { ScalarModal, type ModalState } from '@scalar/components/modal'\nimport { ScalarSearchInput } from '@scalar/components/search-input'\nimport { computed } from 'vue'\n\nimport { useSearch } from '@/hooks/use-search'\nimport { useState } from '@/state/state'\n\ndefineProps<{\n modal: ModalState\n}>()\n\nconst search = useSearch()\n\nconst state = useState()\n\nconst searchOptions = computed(() =>\n search.results.value\n .filter((r) => {\n return !state.registryDocuments.value.some(\n (d) => d.namespace === r.namespace && d.slug === r.slug,\n )\n })\n .map((result) => ({\n ...result,\n label: result.title,\n id: result.id,\n })),\n)\n</script>\n\n<template>\n <ScalarModal\n class=\"catalogModal\"\n :state=\"modal\">\n <ScalarSearchInput\n autofocus\n class=\"searchInput\"\n :modelValue=\"search.query.value\"\n @update:modelValue=\"(v) => (search.query.value = v ?? '')\" />\n <template v-if=\"searchOptions.length\">\n <div class=\"catalog custom-scroll\">\n <button\n v-for=\"option in searchOptions\"\n :key=\"option.id\"\n class=\"item\"\n type=\"button\"\n @click=\"\n () => {\n state.addDocument(option)\n modal.hide()\n }\n \">\n <div class=\"left\">\n <img\n v-if=\"option.logoUrl\"\n class=\"logo\"\n :src=\"option.logoUrl\" />\n <ScalarIcon\n v-else\n class=\"logo\"\n logo=\"Openapi\" />\n </div>\n\n <div class=\"right\">\n <div class=\"item-top\">\n <span>{{ option.title }}</span>\n\n <span class=\"version\">v{{ option.currentVersion }}</span>\n </div>\n\n <span class=\"description\">\n @{{ option.namespace }}/{{ option.slug }}\n </span>\n </div>\n </button>\n </div>\n </template>\n </ScalarModal>\n</template>\n\n<style>\n.catalogModal .scalar-modal-body {\n display: flex;\n flex-direction: column;\n}\n</style>\n\n<style scoped>\n.searchInput {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg);\n margin-bottom: 10px;\n}\n.catalog {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n overflow-y: scroll;\n font-size: var(--scalar-font-size-3);\n}\n.item {\n display: flex;\n padding: 15px;\n gap: 10px;\n align-items: center;\n background-color: var(--scalar-background-2);\n border-radius: var(--scalar-radius-lg);\n transition: background-color 160ms ease;\n}\n.item:hover {\n background-color: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 40%\n ) !important;\n}\n.left {\n align-items: center;\n}\n.right {\n display: flex;\n flex-direction: column;\n}\n.logo {\n width: 25px;\n}\n.item-top {\n display: flex;\n gap: 10px;\n}\n.version {\n background: var(--scalar-background-3);\n padding: 2px 5px;\n border-radius: var(--scalar-radius);\n font-size: var(--scalar-font-size-5);\n color: var(--scalar-color-3);\n}\n.description {\n color: var(--scalar-color-2);\n}\n</style>\n"],"mappings":""}
@@ -66,4 +66,4 @@ var Catalog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
66
66
  //#endregion
67
67
  export { Catalog_vue_vue_type_script_setup_true_lang_default as default };
68
68
 
69
- //# sourceMappingURL=Catalog.vue.script.js.map
69
+ //# sourceMappingURL=Catalog.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Catalog.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","_withCtx","_createVNode","_createElementBlock","_Fragment","_renderList","_createElementVNode","_toDisplayString","_createCommentVNode"],"sources":["../../../src/views/Catalog/Catalog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { ScalarModal, type ModalState } from '@scalar/components/modal'\nimport { ScalarSearchInput } from '@scalar/components/search-input'\nimport { computed } from 'vue'\n\nimport { useSearch } from '@/hooks/use-search'\nimport { useState } from '@/state/state'\n\ndefineProps<{\n modal: ModalState\n}>()\n\nconst search = useSearch()\n\nconst state = useState()\n\nconst searchOptions = computed(() =>\n search.results.value\n .filter((r) => {\n return !state.registryDocuments.value.some(\n (d) => d.namespace === r.namespace && d.slug === r.slug,\n )\n })\n .map((result) => ({\n ...result,\n label: result.title,\n id: result.id,\n })),\n)\n</script>\n\n<template>\n <ScalarModal\n class=\"catalogModal\"\n :state=\"modal\">\n <ScalarSearchInput\n autofocus\n class=\"searchInput\"\n :modelValue=\"search.query.value\"\n @update:modelValue=\"(v) => (search.query.value = v ?? '')\" />\n <template v-if=\"searchOptions.length\">\n <div class=\"catalog custom-scroll\">\n <button\n v-for=\"option in searchOptions\"\n :key=\"option.id\"\n class=\"item\"\n type=\"button\"\n @click=\"\n () => {\n state.addDocument(option)\n modal.hide()\n }\n \">\n <div class=\"left\">\n <img\n v-if=\"option.logoUrl\"\n class=\"logo\"\n :src=\"option.logoUrl\" />\n <ScalarIcon\n v-else\n class=\"logo\"\n logo=\"Openapi\" />\n </div>\n\n <div class=\"right\">\n <div class=\"item-top\">\n <span>{{ option.title }}</span>\n\n <span class=\"version\">v{{ option.currentVersion }}</span>\n </div>\n\n <span class=\"description\">\n @{{ option.namespace }}/{{ option.slug }}\n </span>\n </div>\n </button>\n </div>\n </template>\n </ScalarModal>\n</template>\n\n<style>\n.catalogModal .scalar-modal-body {\n display: flex;\n flex-direction: column;\n}\n</style>\n\n<style scoped>\n.searchInput {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg);\n margin-bottom: 10px;\n}\n.catalog {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n overflow-y: scroll;\n font-size: var(--scalar-font-size-3);\n}\n.item {\n display: flex;\n padding: 15px;\n gap: 10px;\n align-items: center;\n background-color: var(--scalar-background-2);\n border-radius: var(--scalar-radius-lg);\n transition: background-color 160ms ease;\n}\n.item:hover {\n background-color: color-mix(\n in srgb,\n var(--scalar-background-3),\n transparent 40%\n ) !important;\n}\n.left {\n align-items: center;\n}\n.right {\n display: flex;\n flex-direction: column;\n}\n.logo {\n width: 25px;\n}\n.item-top {\n display: flex;\n gap: 10px;\n}\n.version {\n background: var(--scalar-background-3);\n padding: 2px 5px;\n border-radius: var(--scalar-radius);\n font-size: var(--scalar-font-size-5);\n color: var(--scalar-color-3);\n}\n.description {\n color: var(--scalar-color-2);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAaA,MAAM,SAAS,UAAU;EAEzB,MAAM,QAAQ,SAAS;EAEvB,MAAM,gBAAgB,eACpB,OAAO,QAAQ,MACZ,QAAQ,MAAM;GACb,OAAO,CAAC,MAAM,kBAAkB,MAAM,MACnC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,IACrD;EACF,CAAC,CAAA,CACA,KAAK,YAAY;GAChB,GAAG;GACH,OAAO,OAAO;GACd,IAAI,OAAO;EACb,EAAE,CACN;;GAIE,OAAAA,UAAA,GAAAC,YA8CcC,MAAA,WAAA,GAAA;IA7CZ,OAAM;IACL,OAAO,QAAA;;IACR,SAAAC,cAI+D,CAJ/DC,YAI+DF,MAAA,iBAAA,GAAA;KAH7D,WAAA;KACA,OAAM;KACL,YAAYA,MAAA,MAAA,CAAM,CAAC,MAAM;KACzB,uBAAiB,OAAA,OAAA,OAAA,MAAG,MAAO,MAAA,MAAA,CAAM,CAAC,MAAM,QAAQ,KAAC;I,6BACpC,cAAA,MAAc,UAC5BF,UAAA,GAAAK,mBAmCM,OAnCN,YAmCM,EAlCJL,UAAA,IAAA,GAAAK,mBAiCSC,UAAA,MAAAC,WAhCU,cAAA,QAAV,WAAM;KADf,OAAAP,UAAA,GAAAK,mBAiCS,UAAA;MA/BN,KAAK,OAAO;MACb,OAAM;MACN,MAAK;MACJ,e;OAA0C,MAAA,KAAA,CAAK,CAAC,YAAY,MAAM;OAAgB,QAAA,MAAM,KAAI;;K,IAM7FG,mBASM,OATN,YASM,CAPI,OAAO,WADfR,UAAA,GAAAK,mBAG0B,OAAA;;MADxB,OAAM;MACL,KAAK,OAAO;K,4BACfL,UAAA,GAAAC,YAGmBC,MAAA,UAAA,GAAA;;MADjB,OAAM;MACN,MAAK;K,OAGTM,mBAUM,OAVN,YAUM,CATJA,mBAIM,OAJN,YAIM,CAHJA,mBAA+B,QAAA,MAAAC,gBAAtB,OAAO,KAAK,GAAA,CAAA,GAErBD,mBAAyD,QAAzD,YAAsB,MAACC,gBAAG,OAAO,cAAc,GAAA,CAAA,C,IAGjDD,mBAEO,QAFP,YAA0B,OACvBC,gBAAG,OAAO,SAAS,IAAG,MAACA,gBAAG,OAAO,IAAI,GAAA,CAAA,C"}
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.js";
2
- import Chat_vue_vue_type_script_setup_true_lang_default from "./Chat.vue.script.js";
3
- /* empty css */
2
+ import Chat_vue_vue_type_script_setup_true_lang_default from "./Chat.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/views/Chat/Chat.vue
5
5
  var Chat_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Chat_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-6573ec87"]]);
6
6
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.vue.js","names":[],"sources":["../../../src/views/Chat/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { reactive, toRef } from 'vue'\n\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities/tools/execute-request'\nimport { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '@/entities/tools/get-openapi-specs-summary'\nimport { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '@/entities/tools/search-openapi-operations'\nimport { useState } from '@/state/state'\nimport AskForAuthentication from '@/views/Chat/Messages/AskForAuthentication.vue'\nimport ExecuteRequestTool from '@/views/Chat/Messages/ExecuteRequestTool.vue'\nimport GetOpenAPISpecsSummary from '@/views/Chat/Messages/GetOpenAPISpecsSummary.vue'\nimport SearchOpenAPIOperationsTool from '@/views/Chat/Messages/SearchOpenAPIOperationsTool.vue'\nimport Text from '@/views/Chat/Messages/Text.vue'\nimport PromptForm from '@/views/PromptForm.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n (e: 'uploadApi'): void\n}>()\n\nconst state = useState()\n</script>\n\n<template>\n <div class=\"chat\">\n <template\n v-for=\"message in state.chat.messages\"\n :key=\"message.id\">\n <template v-if=\"message.role === 'user'\">\n <div\n v-for=\"(part, index) in message.parts\"\n :key=\"`${message.id}-${index}`\"\n class=\"userMessage\">\n <p v-if=\"part.type === 'text'\">{{ part.text }}</p>\n </div>\n </template>\n <template v-if=\"message.role === 'assistant'\">\n <div\n v-for=\"(part, index) in message.parts\"\n :key=\"`${message.id}-${index}`\">\n <Text\n v-if=\"part.type === 'text'\"\n :messagePart=\"toRef(part)\" />\n <ExecuteRequestTool\n v-if=\"\n part.type ===\n (`tool-${EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME}` as const)\n \"\n :messagePart=\"toRef(part)\" />\n <SearchOpenAPIOperationsTool\n v-if=\"\n part.type ===\n (`tool-${SEARCH_OPENAPI_OPERATIONS_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n <GetOpenAPISpecsSummary\n v-if=\"\n part.type ===\n (`tool-${SUMMARIZE_OPENAPI_SPECS_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n <AskForAuthentication\n v-if=\"\n part.type ===\n (`tool-${ASK_FOR_AUTHENTICATION_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n </div>\n </template>\n </template>\n <div class=\"spacer\"></div>\n </div>\n <div class=\"formContainer\">\n <PromptForm\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n </div>\n</template>\n\n<style scoped>\n.chat {\n flex: 1;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 24px 0;\n max-width: 744px;\n}\n\n.userMessage {\n padding-top: 6px;\n padding-bottom: 6px;\n padding-inline: 16px;\n border-radius: var(--scalar-radius-3xl);\n background: var(--scalar-background-2);\n width: fit-content;\n max-width: 80%;\n margin-left: auto;\n font-size: 16px;\n line-height: 24px;\n color: var(--scalar-color-1);\n margin-bottom: 12px;\n}\ndiv + .userMessage {\n margin-top: 64px;\n}\n.chat > :deep(div:has(.executeRequestTool)) + div:has(.executeRequestTool) {\n margin-top: -12px;\n}\n.spacer {\n min-height: 280px;\n width: 100%;\n}\n\n.formContainer {\n position: fixed;\n bottom: 20px;\n width: 100%;\n max-width: 744px;\n z-index: 1;\n}\n.chat :deep(.markdown) {\n margin-bottom: 12px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"Chat.vue.js","names":["_sfc_main"],"sources":["../../../src/views/Chat/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { reactive, toRef } from 'vue'\n\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities/tools/execute-request'\nimport { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '@/entities/tools/get-openapi-specs-summary'\nimport { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '@/entities/tools/search-openapi-operations'\nimport { useState } from '@/state/state'\nimport AskForAuthentication from '@/views/Chat/Messages/AskForAuthentication.vue'\nimport ExecuteRequestTool from '@/views/Chat/Messages/ExecuteRequestTool.vue'\nimport GetOpenAPISpecsSummary from '@/views/Chat/Messages/GetOpenAPISpecsSummary.vue'\nimport SearchOpenAPIOperationsTool from '@/views/Chat/Messages/SearchOpenAPIOperationsTool.vue'\nimport Text from '@/views/Chat/Messages/Text.vue'\nimport PromptForm from '@/views/PromptForm.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n (e: 'uploadApi'): void\n}>()\n\nconst state = useState()\n</script>\n\n<template>\n <div class=\"chat\">\n <template\n v-for=\"message in state.chat.messages\"\n :key=\"message.id\">\n <template v-if=\"message.role === 'user'\">\n <div\n v-for=\"(part, index) in message.parts\"\n :key=\"`${message.id}-${index}`\"\n class=\"userMessage\">\n <p v-if=\"part.type === 'text'\">{{ part.text }}</p>\n </div>\n </template>\n <template v-if=\"message.role === 'assistant'\">\n <div\n v-for=\"(part, index) in message.parts\"\n :key=\"`${message.id}-${index}`\">\n <Text\n v-if=\"part.type === 'text'\"\n :messagePart=\"toRef(part)\" />\n <ExecuteRequestTool\n v-if=\"\n part.type ===\n (`tool-${EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME}` as const)\n \"\n :messagePart=\"toRef(part)\" />\n <SearchOpenAPIOperationsTool\n v-if=\"\n part.type ===\n (`tool-${SEARCH_OPENAPI_OPERATIONS_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n <GetOpenAPISpecsSummary\n v-if=\"\n part.type ===\n (`tool-${SUMMARIZE_OPENAPI_SPECS_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n <AskForAuthentication\n v-if=\"\n part.type ===\n (`tool-${ASK_FOR_AUTHENTICATION_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n </div>\n </template>\n </template>\n <div class=\"spacer\"></div>\n </div>\n <div class=\"formContainer\">\n <PromptForm\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n </div>\n</template>\n\n<style scoped>\n.chat {\n flex: 1;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 24px 0;\n max-width: 744px;\n}\n\n.userMessage {\n padding-top: 6px;\n padding-bottom: 6px;\n padding-inline: 16px;\n border-radius: var(--scalar-radius-3xl);\n background: var(--scalar-background-2);\n width: fit-content;\n max-width: 80%;\n margin-left: auto;\n font-size: 16px;\n line-height: 24px;\n color: var(--scalar-color-1);\n margin-bottom: 12px;\n}\ndiv + .userMessage {\n margin-top: 64px;\n}\n.chat > :deep(div:has(.executeRequestTool)) + div:has(.executeRequestTool) {\n margin-top: -12px;\n}\n.spacer {\n min-height: 280px;\n width: 100%;\n}\n\n.formContainer {\n position: fixed;\n bottom: 20px;\n width: 100%;\n max-width: 744px;\n z-index: 1;\n}\n.chat :deep(.markdown) {\n margin-bottom: 12px;\n}\n</style>\n"],"mappings":""}
@@ -64,4 +64,4 @@ var Chat_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
64
64
  //#endregion
65
65
  export { Chat_vue_vue_type_script_setup_true_lang_default as default };
66
66
 
67
- //# sourceMappingURL=Chat.vue.script.js.map
67
+ //# sourceMappingURL=Chat.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_createElementVNode","_renderList","_unref","_toDisplayString","_createCommentVNode","_createBlock","Text","ExecuteRequestTool","SearchOpenAPIOperationsTool","GetOpenAPISpecsSummary","AskForAuthentication","_createVNode","PromptForm"],"sources":["../../../src/views/Chat/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { reactive, toRef } from 'vue'\n\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities/tools/execute-request'\nimport { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '@/entities/tools/get-openapi-specs-summary'\nimport { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '@/entities/tools/search-openapi-operations'\nimport { useState } from '@/state/state'\nimport AskForAuthentication from '@/views/Chat/Messages/AskForAuthentication.vue'\nimport ExecuteRequestTool from '@/views/Chat/Messages/ExecuteRequestTool.vue'\nimport GetOpenAPISpecsSummary from '@/views/Chat/Messages/GetOpenAPISpecsSummary.vue'\nimport SearchOpenAPIOperationsTool from '@/views/Chat/Messages/SearchOpenAPIOperationsTool.vue'\nimport Text from '@/views/Chat/Messages/Text.vue'\nimport PromptForm from '@/views/PromptForm.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n (e: 'uploadApi'): void\n}>()\n\nconst state = useState()\n</script>\n\n<template>\n <div class=\"chat\">\n <template\n v-for=\"message in state.chat.messages\"\n :key=\"message.id\">\n <template v-if=\"message.role === 'user'\">\n <div\n v-for=\"(part, index) in message.parts\"\n :key=\"`${message.id}-${index}`\"\n class=\"userMessage\">\n <p v-if=\"part.type === 'text'\">{{ part.text }}</p>\n </div>\n </template>\n <template v-if=\"message.role === 'assistant'\">\n <div\n v-for=\"(part, index) in message.parts\"\n :key=\"`${message.id}-${index}`\">\n <Text\n v-if=\"part.type === 'text'\"\n :messagePart=\"toRef(part)\" />\n <ExecuteRequestTool\n v-if=\"\n part.type ===\n (`tool-${EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME}` as const)\n \"\n :messagePart=\"toRef(part)\" />\n <SearchOpenAPIOperationsTool\n v-if=\"\n part.type ===\n (`tool-${SEARCH_OPENAPI_OPERATIONS_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n <GetOpenAPISpecsSummary\n v-if=\"\n part.type ===\n (`tool-${SUMMARIZE_OPENAPI_SPECS_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n <AskForAuthentication\n v-if=\"\n part.type ===\n (`tool-${ASK_FOR_AUTHENTICATION_TOOL_NAME}` as const)\n \"\n :message=\"reactive(message)\"\n :messagePart=\"toRef(part)\" />\n </div>\n </template>\n </template>\n <div class=\"spacer\"></div>\n </div>\n <div class=\"formContainer\">\n <PromptForm\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n </div>\n</template>\n\n<style scoped>\n.chat {\n flex: 1;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 24px 0;\n max-width: 744px;\n}\n\n.userMessage {\n padding-top: 6px;\n padding-bottom: 6px;\n padding-inline: 16px;\n border-radius: var(--scalar-radius-3xl);\n background: var(--scalar-background-2);\n width: fit-content;\n max-width: 80%;\n margin-left: auto;\n font-size: 16px;\n line-height: 24px;\n color: var(--scalar-color-1);\n margin-bottom: 12px;\n}\ndiv + .userMessage {\n margin-top: 64px;\n}\n.chat > :deep(div:has(.executeRequestTool)) + div:has(.executeRequestTool) {\n margin-top: -12px;\n}\n.spacer {\n min-height: 280px;\n width: 100%;\n}\n\n.formContainer {\n position: fixed;\n bottom: 20px;\n width: 100%;\n max-width: 744px;\n z-index: 1;\n}\n.chat :deep(.markdown) {\n margin-bottom: 12px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAeA,MAAM,OAAO;EAKb,MAAM,QAAQ,SAAS;;G,wDAIrBG,mBAkDM,OAlDN,YAkDM,EAjDJH,UAAA,IAAA,GAAAC,mBA+CWC,UAAA,MAAAE,WA9CSC,MAAA,KAAA,CAAK,CAAC,KAAK,WAAtB,YAAO;I,mDACR,KAAA,QAAQ,G,IACE,QAAQ,SAAI,UAC1BL,UAAA,IAAA,GAAAC,mBAKMC,UAAA,EAAA,KAAA,EAAA,GAAAE,WAJoB,QAAQ,QAAxB,MAAM,UAAK;KADrB,OAAAJ,UAAA,GAAAC,mBAKM,OAAA;MAHH,KAAG,GAAK,QAAQ,GAAE,GAAI;MACvB,OAAM;K,IACG,KAAK,SAAI,UAAlBD,UAAA,GAAAC,mBAAkD,KAAA,YAAAK,gBAAhB,KAAK,IAAI,GAAA,CAAA,K;I,0CAG/B,QAAQ,SAAI,eAC1BN,UAAA,IAAA,GAAAC,mBAiCMC,UAAA,EAAA,KAAA,EAAA,GAAAE,WAhCoB,QAAQ,QAAxB,MAAM,UAAK;KADrB,OAAAJ,UAAA,GAAAC,mBAiCM,OAAA,EA/BH,KAAG,GAAK,QAAQ,GAAE,GAAI,Q;MAEf,KAAK,SAAI,UADjBD,UAAA,GAAAQ,YAE+BC,cAAA;;OAA5B,aAAa,MAAM,IAAI;;MAEH,KAAK,SAAgC,QAAAJ,MAAAA,iBAAA,OAD5DL,UAAA,GAAAQ,YAK+BE,4BAAA;;OAA5B,aAAa,MAAM,IAAI;;MAEH,KAAK,SAAgC,QAAAL,MAAAA,2BAAA,OAD5DL,UAAA,GAAAQ,YAM+BG,qCAAA;;OAD5B,SAAS,SAAS,OAAO;OACzB,aAAa,MAAM,IAAI;;MAEH,KAAK,SAAgC,QAAAN,MAAAA,yBAAA,OAD5DL,UAAA,GAAAQ,YAM+BI,gCAAA;;OAD5B,SAAS,SAAS,OAAO;OACzB,aAAa,MAAM,IAAI;;MAEH,KAAK,SAAgC,QAAAP,MAAAA,wBAAA,OAD5DL,UAAA,GAAAQ,YAM+BK,8BAAA;;OAD5B,SAAS,SAAS,OAAO;OACzB,aAAa,MAAM,IAAI;;;;G,WAIhC,OAAA,OAAA,OAAA,KAAAV,mBAA0B,OAAA,EAArB,OAAM,SAAQ,GAAA,MAAA,EAAA,E,IAErBA,mBAIM,OAJN,YAIM,CAHJW,YAEmCC,oBAAA;IADhC,UAAM,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;IACZ,aAAS,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,WAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"names":[],"mappings":"AAwLA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACpC,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAIxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAA;AAC1F,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAGpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,gCAAgC,CAAC,CAAC,CACjE,CAAA;CACF,CAAC;AA6LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"AskForAuthentication.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"names":[],"mappings":"AA8LA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACpC,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAIxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAA;AAC1F,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAGpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,gCAAgC,CAAC,CAAC,CACjE,CAAA;CACF,CAAC;AAsMF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,8 +1,8 @@
1
1
  import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
- import AskForAuthentication_vue_vue_type_script_setup_true_lang_default from "./AskForAuthentication.vue.script.js";
3
- /* empty css */
2
+ import AskForAuthentication_vue_vue_type_script_setup_true_lang_default from "./AskForAuthentication.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/views/Chat/Messages/AskForAuthentication.vue
5
- var AskForAuthentication_default = /*#__PURE__*/ _plugin_vue_export_helper_default(AskForAuthentication_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-19cedfcd"]]);
5
+ var AskForAuthentication_default = /*#__PURE__*/ _plugin_vue_export_helper_default(AskForAuthentication_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-508e8718"]]);
6
6
  //#endregion
7
7
  export { AskForAuthentication_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n const doc = workspaceStore.workspace.documents[documentName.value]\n return isOpenApiDocument(doc) ? doc : undefined\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"AskForAuthentication.vue.js","names":["_sfc_main"],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n const doc = workspaceStore.workspace.documents[documentName.value]\n return isOpenApiDocument(doc) ? doc : undefined\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <p\n v-if=\"messagePart.value.state === 'output-error'\"\n class=\"text-c-2 py-3\"\n role=\"status\">\n {{ messagePart.value.errorText }}\n </p>\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":""}
@@ -3,15 +3,20 @@ import { useState } from "../../../state/state.js";
3
3
  import AuthenticationProvided_default from "../../../components/AuthenticationProvided.vue.js";
4
4
  import AuthenticationRequired_default from "../../../components/AuthenticationRequired.vue.js";
5
5
  import Auth_default from "../../Settings/Auth.vue.js";
6
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, unref, withCtx } from "vue";
7
- import { getActiveEnvironment, getSelectedServer, getServers } from "@scalar/workspace-store/request-example";
6
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, withCtx } from "vue";
8
7
  import { isOpenApiDocument } from "@scalar/workspace-store/schemas/type-guards";
8
+ import { getActiveEnvironment, getSelectedServer, getServers } from "@scalar/workspace-store/request-example";
9
9
  import { ScalarButton } from "@scalar/components/button";
10
10
  import { ScalarIconArrowRight } from "@scalar/icons";
11
11
  //#region src/views/Chat/Messages/AskForAuthentication.vue?vue&type=script&setup=true&lang.ts
12
- var _hoisted_1 = { class: "toggleButton" };
13
- var _hoisted_2 = { class: "authContent" };
14
- var _hoisted_3 = { class: "authContentInner" };
12
+ var _hoisted_1 = {
13
+ key: 0,
14
+ class: "text-c-2 py-3",
15
+ role: "status"
16
+ };
17
+ var _hoisted_2 = { class: "toggleButton" };
18
+ var _hoisted_3 = { class: "authContent" };
19
+ var _hoisted_4 = { class: "authContentInner" };
15
20
  var AskForAuthentication_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
16
21
  __name: "AskForAuthentication",
17
22
  props: { messagePart: {} },
@@ -42,40 +47,44 @@ var AskForAuthentication_vue_vue_type_script_setup_true_lang_default = /*@__PURE
42
47
  });
43
48
  }
44
49
  return (_ctx, _cache) => {
45
- return openBlock(), createElementBlock("div", { class: normalizeClass(["askForAuthentication", { open: isAuthenticationExpanded.value }]) }, [createElementVNode("div", _hoisted_1, [
46
- __props.messagePart.value.state === "output-available" ? (openBlock(), createBlock(AuthenticationProvided_default, { key: 0 })) : createCommentVNode("", true),
47
- __props.messagePart.value.state === "input-available" ? (openBlock(), createBlock(AuthenticationRequired_default, { key: 1 })) : createCommentVNode("", true),
48
- __props.messagePart.value.state === "input-available" ? (openBlock(), createBlock(unref(ScalarButton), {
49
- key: 2,
50
- class: "authorizeButton",
51
- size: "xs",
52
- onClick: authorizeClicked
53
- }, {
54
- default: withCtx(() => [_cache[0] || (_cache[0] = createTextVNode(" Authorize ", -1)), createVNode(unref(ScalarIconArrowRight), { weight: "bold" })]),
55
- _: 1
56
- })) : createCommentVNode("", true)
57
- ]), createElementVNode("div", _hoisted_2, [createElementVNode("div", _hoisted_3, [documentName.value && document.value && environment.value && selectedServer.value ? (openBlock(), createBlock(Auth_default, {
58
- key: 0,
59
- authStore: unref(workspaceStore).auth,
60
- document: document.value,
61
- environment: environment.value,
62
- eventBus: unref(eventBus),
63
- name: documentName.value,
64
- options: unref(config),
65
- selectedServer: selectedServer.value
66
- }, null, 8, [
67
- "authStore",
68
- "document",
69
- "environment",
70
- "eventBus",
71
- "name",
72
- "options",
73
- "selectedServer"
74
- ])) : createCommentVNode("", true)])])], 2);
50
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["askForAuthentication", { open: isAuthenticationExpanded.value }]) }, [
51
+ __props.messagePart.value.state === "output-error" ? (openBlock(), createElementBlock("p", _hoisted_1, toDisplayString(__props.messagePart.value.errorText), 1)) : createCommentVNode("", true),
52
+ createElementVNode("div", _hoisted_2, [
53
+ __props.messagePart.value.state === "output-available" ? (openBlock(), createBlock(AuthenticationProvided_default, { key: 0 })) : createCommentVNode("", true),
54
+ __props.messagePart.value.state === "input-available" ? (openBlock(), createBlock(AuthenticationRequired_default, { key: 1 })) : createCommentVNode("", true),
55
+ __props.messagePart.value.state === "input-available" ? (openBlock(), createBlock(unref(ScalarButton), {
56
+ key: 2,
57
+ class: "authorizeButton",
58
+ size: "xs",
59
+ onClick: authorizeClicked
60
+ }, {
61
+ default: withCtx(() => [_cache[0] || (_cache[0] = createTextVNode(" Authorize ", -1)), createVNode(unref(ScalarIconArrowRight), { weight: "bold" })]),
62
+ _: 1
63
+ })) : createCommentVNode("", true)
64
+ ]),
65
+ createElementVNode("div", _hoisted_3, [createElementVNode("div", _hoisted_4, [documentName.value && document.value && environment.value && selectedServer.value ? (openBlock(), createBlock(Auth_default, {
66
+ key: 0,
67
+ authStore: unref(workspaceStore).auth,
68
+ document: document.value,
69
+ environment: environment.value,
70
+ eventBus: unref(eventBus),
71
+ name: documentName.value,
72
+ options: unref(config),
73
+ selectedServer: selectedServer.value
74
+ }, null, 8, [
75
+ "authStore",
76
+ "document",
77
+ "environment",
78
+ "eventBus",
79
+ "name",
80
+ "options",
81
+ "selectedServer"
82
+ ])) : createCommentVNode("", true)])])
83
+ ], 2);
75
84
  };
76
85
  }
77
86
  });
78
87
  //#endregion
79
88
  export { AskForAuthentication_vue_vue_type_script_setup_true_lang_default as default };
80
89
 
81
- //# sourceMappingURL=AskForAuthentication.vue.script.js.map
90
+ //# sourceMappingURL=AskForAuthentication.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AskForAuthentication.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeClass","_toDisplayString","_createCommentVNode","_createElementVNode","_createBlock","AuthenticationProvided","AuthenticationRequired","_unref","_withCtx","_createTextVNode","_createVNode","Auth"],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton } from '@scalar/components/button'\nimport { ScalarIconArrowRight } from '@scalar/icons'\nimport {\n getActiveEnvironment,\n getSelectedServer,\n getServers,\n} from '@scalar/workspace-store/request-example'\nimport { isOpenApiDocument } from '@scalar/workspace-store/schemas/type-guards'\nimport type { ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport AuthenticationProvided from '@/components/AuthenticationProvided.vue'\nimport AuthenticationRequired from '@/components/AuthenticationRequired.vue'\nimport { ASK_FOR_AUTHENTICATION_TOOL_NAME } from '@/entities/tools/ask-for-authentication'\nimport { useState, type Tools } from '@/state/state'\nimport Auth from '@/views/Settings/Auth.vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>>\n >\n}>()\n\nconst { workspaceStore, eventBus, config, chat } = useState()\n\nconst documentName = computed(() => messagePart.value.input?.documentName)\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n const doc = workspaceStore.workspace.documents[documentName.value]\n return isOpenApiDocument(doc) ? doc : undefined\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value).environment\n})\n\nconst selectedServer = computed(() => {\n if (!document.value) {\n return\n }\n\n const servers = getServers(document.value.servers, {\n documentUrl: document.value['x-scalar-original-source-url'],\n })\n\n return getSelectedServer(document.value, null, null, servers)\n})\n\nconst isAuthenticationExpanded = computed(\n () => documentName.value && environment.value && selectedServer.value,\n)\n\nasync function authorizeClicked() {\n await chat.addToolOutput({\n toolCallId: messagePart.value.toolCallId,\n output: 'Authentication provided.',\n tool: ASK_FOR_AUTHENTICATION_TOOL_NAME,\n state: 'output-available',\n })\n}\n</script>\n\n<template>\n <div\n class=\"askForAuthentication\"\n :class=\"{\n open: isAuthenticationExpanded,\n }\">\n <p\n v-if=\"messagePart.value.state === 'output-error'\"\n class=\"text-c-2 py-3\"\n role=\"status\">\n {{ messagePart.value.errorText }}\n </p>\n <div class=\"toggleButton\">\n <AuthenticationProvided\n v-if=\"messagePart.value.state === 'output-available'\" />\n <AuthenticationRequired\n v-if=\"messagePart.value.state === 'input-available'\" />\n <ScalarButton\n v-if=\"messagePart.value.state === 'input-available'\"\n class=\"authorizeButton\"\n size=\"xs\"\n @click=\"authorizeClicked\">\n Authorize\n <ScalarIconArrowRight weight=\"bold\" />\n </ScalarButton>\n </div>\n <div class=\"authContent\">\n <div class=\"authContentInner\">\n <Auth\n v-if=\"documentName && document && environment && selectedServer\"\n :authStore=\"workspaceStore.auth\"\n :document\n :environment\n :eventBus\n :name=\"documentName\"\n :options=\"config\"\n :selectedServer />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.askForAuthentication {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n padding: 0;\n}\n\n.authContent {\n display: grid;\n grid-template-rows: 0fr;\n min-height: 0;\n overflow: hidden;\n transition: grid-template-rows 0.2s ease-out;\n max-width: 520px;\n margin: auto;\n width: 100%;\n}\n.authContentInner :deep(> div) {\n margin: 36px 0 48px 0;\n}\n.authContent :deep(.markdown) {\n margin-bottom: 0 !important;\n}\n.askForAuthentication.open .authContent {\n grid-template-rows: 1fr;\n}\n\n.continueButton {\n align-self: flex-end;\n}\n\n.toggleButton {\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n color: var(--scalar-color-3);\n justify-content: space-between;\n border-radius: var(--scalar-radius-lg);\n}\n\n.authContentInner {\n min-height: 0;\n overflow: hidden;\n}\n\n.authorizeButton {\n background: var(--scalar-color-blue) !important;\n color: white !important;\n margin: 0 !important;\n z-index: 1;\n display: flex;\n gap: 5px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAwBA,MAAM,EAAE,gBAAgB,UAAU,QAAQ,SAAS,SAAS;EAE5D,MAAM,eAAe,eAAe,QAAA,YAAY,MAAM,OAAO,YAAY;EAEzE,MAAM,WAAW,eAAe;GAC9B,IAAI,CAAC,aAAa,OAChB;GAGF,MAAM,MAAM,eAAe,UAAU,UAAU,aAAa;GAC5D,OAAO,kBAAkB,GAAG,IAAI,MAAM,KAAA;EACxC,CAAC;EAED,MAAM,cAAc,eAAe;GACjC,IAAI,CAAC,SAAS,OACZ;GAGF,OAAO,qBAAqB,gBAAgB,SAAS,KAAK,CAAC,CAAC;EAC9D,CAAC;EAED,MAAM,iBAAiB,eAAe;GACpC,IAAI,CAAC,SAAS,OACZ;GAGF,MAAM,UAAU,WAAW,SAAS,MAAM,SAAS,EACjD,aAAa,SAAS,MAAM,gCAC9B,CAAC;GAED,OAAO,kBAAkB,SAAS,OAAO,MAAM,MAAM,OAAO;EAC9D,CAAC;EAED,MAAM,2BAA2B,eACzB,aAAa,SAAS,YAAY,SAAS,eAAe,KAClE;EAEA,eAAe,mBAAmB;GAChC,MAAM,KAAK,cAAc;IACvB,YAAY,QAAA,YAAY,MAAM;IAC9B,QAAQ;IACR,MAAM;IACN,OAAO;GACT,CAAC;EACH;;GAIE,OAAAA,UAAA,GAAAC,mBAsCM,OAAA,EArCJ,OAAKC,eAAA,CAAC,wBAAsB,EACN,MAAA,yBAAA,M;IAId,QAAA,YAAY,MAAM,UAAK,kBAD/BF,UAAA,GAAAC,mBAKI,KALJ,YAKIE,gBADC,QAAA,YAAY,MAAM,SAAS,GAAA,CAAA,K;IAEhCE,mBAaM,OAbN,YAaM;KAXI,QAAA,YAAY,MAAM,UAAK,sBAD/BL,UAAA,GAAAM,YAC0DC,gCAAA,EAAA,KAAA,EAAA,CAAA,K;KAElD,QAAA,YAAY,MAAM,UAAK,qBAD/BP,UAAA,GAAAM,YACyDE,gCAAA,EAAA,KAAA,EAAA,CAAA,K;KAEjD,QAAA,YAAY,MAAM,UAAK,qBAD/BR,UAAA,GAAAM,YAOeG,MAAA,YAAA,GAAA;;MALb,OAAM;MACN,MAAK;MACJ,SAAO;;MAAkB,SAAAC,cAE1B,CAF0B,OAAA,OAAA,OAAA,KAAAC,gBAAA,eAE1B,EAAA,IAAAC,YAAsCH,MAAA,oBAAA,GAAA,EAAhB,QAAO,OAAM,CAAA,C;;;;IAGvCJ,mBAYM,OAZN,YAYM,CAXJA,mBAUM,OAVN,YAUM,CARI,aAAA,SAAgB,SAAA,SAAY,YAAA,SAAe,eAAA,SADnDL,UAAA,GAAAM,YAQoBO,cAAA;;KANjB,WAAWJ,MAAA,cAAA,CAAc,CAAC;KAC1B,UAAA,SAAA;KACA,aAAA,YAAA;KACA,UAAAA,MAAA,QAAA;KACA,MAAM,aAAA;KACN,SAASA,MAAA,MAAA;KACT,gBAAA,eAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteRequestTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/ExecuteRequestTool.vue"],"names":[],"mappings":"AA0EA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAA;AACpC,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAGxC,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAA;AAE7F,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAEpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,qCAAqC,CAAC,CAAC,CACtE,CAAA;CACF,CAAC;AA4EF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ExecuteRequestTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/ExecuteRequestTool.vue"],"names":[],"mappings":"AAgFA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAA;AACpC,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAGxC,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAA;AAE7F,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAEpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,qCAAqC,CAAC,CAAC,CACtE,CAAA;CACF,CAAC;AAqFF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,8 +1,8 @@
1
1
  import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
- import ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default from "./ExecuteRequestTool.vue.script.js";
3
- /* empty css */
2
+ import ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default from "./ExecuteRequestTool.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/views/Chat/Messages/ExecuteRequestTool.vue
5
- var ExecuteRequestTool_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-9025b7d4"]]);
5
+ var ExecuteRequestTool_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-0c85bad4"]]);
6
6
  //#endregion
7
7
  export { ExecuteRequestTool_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteRequestTool.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/ExecuteRequestTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { type ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport RequestPreview from '@/components/RequestPreview.vue'\nimport type { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities/tools/execute-request'\nimport { requestPartRequiresApproval } from '@/hooks/use-chat-approvals'\nimport { useState, type Tools } from '@/state/state'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME>>\n >\n}>()\n\nconst state = useState()\n\nconst requestState = computed(() => {\n if (messagePart.value.state === 'input-streaming') {\n return 'buildingRequest'\n }\n\n if (\n messagePart.value.state === 'approval-responded' &&\n state.chat.status === 'submitted'\n ) {\n return 'sendingRequest'\n }\n\n if (requestPartRequiresApproval(messagePart.value)) {\n return 'requiresApproval'\n }\n\n if (messagePart.value.state === 'output-available') {\n return messagePart.value.output.success\n ? 'requestSucceeded'\n : 'requestFailed'\n }\n\n if (messagePart.value.state === 'output-error') {\n return 'rejected'\n }\n\n return null\n})\n</script>\n\n<template>\n <div class=\"executeRequestTool\">\n <RequestPreview\n v-if=\"requestState\"\n :request=\"messagePart.value.input\"\n :response=\"messagePart.value.output\"\n :state=\"requestState\" />\n </div>\n</template>\n\n<style scoped>\n.executeRequestTool {\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n /* ensures no overlapping border colors when there's two sibling execute request tools */\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ExecuteRequestTool.vue.js","names":["_sfc_main"],"sources":["../../../../src/views/Chat/Messages/ExecuteRequestTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { type ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport RequestPreview from '@/components/RequestPreview.vue'\nimport type { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities/tools/execute-request'\nimport { requestPartRequiresApproval } from '@/hooks/use-chat-approvals'\nimport { useState, type Tools } from '@/state/state'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME>>\n >\n}>()\n\nconst state = useState()\n\nconst requestState = computed(() => {\n if (messagePart.value.state === 'input-streaming') {\n return 'buildingRequest'\n }\n\n if (\n messagePart.value.state === 'approval-responded' &&\n state.chat.status === 'submitted'\n ) {\n return 'sendingRequest'\n }\n\n if (requestPartRequiresApproval(messagePart.value)) {\n return 'requiresApproval'\n }\n\n if (messagePart.value.state === 'output-available') {\n return messagePart.value.output.success\n ? 'requestSucceeded'\n : 'requestFailed'\n }\n\n if (messagePart.value.state === 'output-error') {\n return 'rejected'\n }\n\n return null\n})\n</script>\n\n<template>\n <div class=\"executeRequestTool\">\n <p\n v-if=\"messagePart.value.state === 'output-error'\"\n class=\"text-c-2 py-3\"\n role=\"status\">\n {{ messagePart.value.errorText }}\n </p>\n <RequestPreview\n v-else-if=\"requestState\"\n :request=\"messagePart.value.input\"\n :response=\"messagePart.value.output\"\n :state=\"requestState\" />\n </div>\n</template>\n\n<style scoped>\n.executeRequestTool {\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n /* ensures no overlapping border colors when there's two sibling execute request tools */\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n}\n</style>\n"],"mappings":""}
@@ -1,9 +1,14 @@
1
1
  import { useState } from "../../../state/state.js";
2
2
  import RequestPreview_default from "../../../components/RequestPreview.vue.js";
3
3
  import { requestPartRequiresApproval } from "../../../hooks/use-chat-approvals.js";
4
- import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, openBlock } from "vue";
4
+ import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, openBlock, toDisplayString } from "vue";
5
5
  //#region src/views/Chat/Messages/ExecuteRequestTool.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = { class: "executeRequestTool" };
7
+ var _hoisted_2 = {
8
+ key: 0,
9
+ class: "text-c-2 py-3",
10
+ role: "status"
11
+ };
7
12
  var ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
13
  __name: "ExecuteRequestTool",
9
14
  props: { messagePart: {} },
@@ -18,8 +23,8 @@ var ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
18
23
  return null;
19
24
  });
20
25
  return (_ctx, _cache) => {
21
- return openBlock(), createElementBlock("div", _hoisted_1, [requestState.value ? (openBlock(), createBlock(RequestPreview_default, {
22
- key: 0,
26
+ return openBlock(), createElementBlock("div", _hoisted_1, [__props.messagePart.value.state === "output-error" ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(__props.messagePart.value.errorText), 1)) : requestState.value ? (openBlock(), createBlock(RequestPreview_default, {
27
+ key: 1,
23
28
  request: __props.messagePart.value.input,
24
29
  response: __props.messagePart.value.output,
25
30
  state: requestState.value
@@ -34,4 +39,4 @@ var ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
34
39
  //#endregion
35
40
  export { ExecuteRequestTool_vue_vue_type_script_setup_true_lang_default as default };
36
41
 
37
- //# sourceMappingURL=ExecuteRequestTool.vue.script.js.map
42
+ //# sourceMappingURL=ExecuteRequestTool.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecuteRequestTool.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_toDisplayString","_createBlock","RequestPreview","_createCommentVNode"],"sources":["../../../../src/views/Chat/Messages/ExecuteRequestTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { type ToolUIPart } from 'ai'\nimport { computed, type Ref } from 'vue'\n\nimport RequestPreview from '@/components/RequestPreview.vue'\nimport type { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities/tools/execute-request'\nimport { requestPartRequiresApproval } from '@/hooks/use-chat-approvals'\nimport { useState, type Tools } from '@/state/state'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME>>\n >\n}>()\n\nconst state = useState()\n\nconst requestState = computed(() => {\n if (messagePart.value.state === 'input-streaming') {\n return 'buildingRequest'\n }\n\n if (\n messagePart.value.state === 'approval-responded' &&\n state.chat.status === 'submitted'\n ) {\n return 'sendingRequest'\n }\n\n if (requestPartRequiresApproval(messagePart.value)) {\n return 'requiresApproval'\n }\n\n if (messagePart.value.state === 'output-available') {\n return messagePart.value.output.success\n ? 'requestSucceeded'\n : 'requestFailed'\n }\n\n if (messagePart.value.state === 'output-error') {\n return 'rejected'\n }\n\n return null\n})\n</script>\n\n<template>\n <div class=\"executeRequestTool\">\n <p\n v-if=\"messagePart.value.state === 'output-error'\"\n class=\"text-c-2 py-3\"\n role=\"status\">\n {{ messagePart.value.errorText }}\n </p>\n <RequestPreview\n v-else-if=\"requestState\"\n :request=\"messagePart.value.input\"\n :response=\"messagePart.value.output\"\n :state=\"requestState\" />\n </div>\n</template>\n\n<style scoped>\n.executeRequestTool {\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 12px;\n /* ensures no overlapping border colors when there's two sibling execute request tools */\n box-shadow:\n 0 var(--scalar-border-width) 0 var(--scalar-background-1),\n 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;EAeA,MAAM,QAAQ,SAAS;EAEvB,MAAM,eAAe,eAAe;GAClC,IAAI,QAAA,YAAY,MAAM,UAAU,mBAC9B,OAAO;GAGT,IACE,QAAA,YAAY,MAAM,UAAU,wBAC5B,MAAM,KAAK,WAAW,aAEtB,OAAO;GAGT,IAAI,4BAA4B,QAAA,YAAY,KAAK,GAC/C,OAAO;GAGT,IAAI,QAAA,YAAY,MAAM,UAAU,oBAC9B,OAAO,QAAA,YAAY,MAAM,OAAO,UAC5B,qBACA;GAGN,IAAI,QAAA,YAAY,MAAM,UAAU,gBAC9B,OAAO;GAGT,OAAO;EACT,CAAC;;GAIC,OAAAA,UAAA,GAAAC,mBAYM,OAZN,YAYM,CAVI,QAAA,YAAY,MAAM,UAAK,kBAD/BD,UAAA,GAAAC,mBAKI,KALJ,YAKIC,gBADC,QAAA,YAAY,MAAM,SAAS,GAAA,CAAA,KAGnB,aAAA,SADbF,UAAA,GAAAG,YAI0BC,wBAAA;;IAFvB,SAAS,QAAA,YAAY,MAAM;IAC3B,UAAU,QAAA,YAAY,MAAM;IAC5B,OAAO,aAAA"}
@@ -1,4 +1,4 @@
1
- import GetOpenAPISpecsSummary_vue_vue_type_script_setup_true_lang_default from "./GetOpenAPISpecsSummary.vue.script.js";
1
+ import GetOpenAPISpecsSummary_vue_vue_type_script_setup_true_lang_default from "./GetOpenAPISpecsSummary.vue_vue_type_script_setup_true_lang.js";
2
2
  //#region src/views/Chat/Messages/GetOpenAPISpecsSummary.vue
3
3
  var GetOpenAPISpecsSummary_default = GetOpenAPISpecsSummary_vue_vue_type_script_setup_true_lang_default;
4
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"GetOpenAPISpecsSummary.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/GetOpenAPISpecsSummary.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToolUIPart, UIMessage } from 'ai'\nimport { ref, watch, type Reactive, type Ref } from 'vue'\n\nimport LoadingOpenAPISpecsSummary from '@/components/LoadingOpenAPISpecsSummary.vue'\nimport type { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '@/entities/tools/get-openapi-specs-summary'\nimport { type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof SUMMARIZE_OPENAPI_SPECS_TOOL_NAME>>\n >\n message: Reactive<UIMessage>\n}>()\n\nconst messageFinished = ref(false)\n\nwatch(\n () => message,\n () => {\n const parts = message.parts\n\n const index = parts.findIndex(\n (part) =>\n 'toolCallId' in part &&\n part.toolCallId === messagePart.value.toolCallId,\n )\n\n messageFinished.value = Boolean(parts[index + 1])\n },\n)\n</script>\n\n<template>\n <div v-if=\"!messageFinished\">\n <LoadingOpenAPISpecsSummary />\n </div>\n</template>\n\n<style scoped></style>\n"],"mappings":""}
1
+ {"version":3,"file":"GetOpenAPISpecsSummary.vue.js","names":["_sfc_main"],"sources":["../../../../src/views/Chat/Messages/GetOpenAPISpecsSummary.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToolUIPart, UIMessage } from 'ai'\nimport { ref, watch, type Reactive, type Ref } from 'vue'\n\nimport LoadingOpenAPISpecsSummary from '@/components/LoadingOpenAPISpecsSummary.vue'\nimport type { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '@/entities/tools/get-openapi-specs-summary'\nimport { type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof SUMMARIZE_OPENAPI_SPECS_TOOL_NAME>>\n >\n message: Reactive<UIMessage>\n}>()\n\nconst messageFinished = ref(false)\n\nwatch(\n () => message,\n () => {\n const parts = message.parts\n\n const index = parts.findIndex(\n (part) =>\n 'toolCallId' in part &&\n part.toolCallId === messagePart.value.toolCallId,\n )\n\n messageFinished.value = Boolean(parts[index + 1])\n },\n)\n</script>\n\n<template>\n <div v-if=\"!messageFinished\">\n <LoadingOpenAPISpecsSummary />\n </div>\n</template>\n\n<style scoped></style>\n"],"mappings":""}
@@ -23,4 +23,4 @@ var GetOpenAPISpecsSummary_vue_vue_type_script_setup_true_lang_default = /*@__PU
23
23
  //#endregion
24
24
  export { GetOpenAPISpecsSummary_vue_vue_type_script_setup_true_lang_default as default };
25
25
 
26
- //# sourceMappingURL=GetOpenAPISpecsSummary.vue.script.js.map
26
+ //# sourceMappingURL=GetOpenAPISpecsSummary.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetOpenAPISpecsSummary.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createVNode","LoadingOpenAPISpecsSummary","_createCommentVNode"],"sources":["../../../../src/views/Chat/Messages/GetOpenAPISpecsSummary.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToolUIPart, UIMessage } from 'ai'\nimport { ref, watch, type Reactive, type Ref } from 'vue'\n\nimport LoadingOpenAPISpecsSummary from '@/components/LoadingOpenAPISpecsSummary.vue'\nimport type { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '@/entities/tools/get-openapi-specs-summary'\nimport { type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof SUMMARIZE_OPENAPI_SPECS_TOOL_NAME>>\n >\n message: Reactive<UIMessage>\n}>()\n\nconst messageFinished = ref(false)\n\nwatch(\n () => message,\n () => {\n const parts = message.parts\n\n const index = parts.findIndex(\n (part) =>\n 'toolCallId' in part &&\n part.toolCallId === messagePart.value.toolCallId,\n )\n\n messageFinished.value = Boolean(parts[index + 1])\n },\n)\n</script>\n\n<template>\n <div v-if=\"!messageFinished\">\n <LoadingOpenAPISpecsSummary />\n </div>\n</template>\n\n<style scoped></style>\n"],"mappings":";;;;;;;;;;;EAeA,MAAM,kBAAkB,IAAI,KAAK;EAEjC,YACQ,QAAA,eACA;GACJ,MAAM,QAAQ,QAAA,QAAQ;GAEtB,MAAM,QAAQ,MAAM,WACjB,SACC,gBAAgB,QAChB,KAAK,eAAe,QAAA,YAAY,MAAM,UAC1C;GAEA,gBAAgB,QAAQ,QAAQ,MAAM,QAAQ,EAAE;EAClD,CACF;;GAIc,OAAA,CAAA,gBAAA,SAAZA,UAAA,GAAAC,mBAEM,OAAA,YAAA,CADJC,YAA8BC,kCAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchOpenAPIOperationsTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue"],"names":[],"mappings":"AA6HA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,IAAI,CAAA;AACpD,OAAO,EAAwB,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAInE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAA;AAErG,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAEpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,mCAAmC,CAAC,CAAC,CACpE,CAAA;IACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAC;AA8KF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"SearchOpenAPIOperationsTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue"],"names":[],"mappings":"AAkHA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,IAAI,CAAA;AACpD,OAAO,EAAwB,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAInE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAA;AAErG,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAEpD,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,mCAAmC,CAAC,CAAC,CACpE,CAAA;IACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAC;AAmKF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,8 +1,8 @@
1
1
  import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
- import SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default from "./SearchOpenAPIOperationsTool.vue.script.js";
3
- /* empty css */
2
+ import SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default from "./SearchOpenAPIOperationsTool.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue
5
- var SearchOpenAPIOperationsTool_default = /*#__PURE__*/ _plugin_vue_export_helper_default(SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-cbff70ed"]]);
5
+ var SearchOpenAPIOperationsTool_default = /*#__PURE__*/ _plugin_vue_export_helper_default(SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fa6f5acc"]]);
6
6
  //#endregion
7
7
  export { SearchOpenAPIOperationsTool_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"SearchOpenAPIOperationsTool.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover } from '@scalar/components/popover'\nimport { type ToolUIPart, type UIMessage } from 'ai'\nimport { computed, ref, watch, type Reactive, type Ref } from 'vue'\n\nimport ContextItem from '@/components/ContextItem.vue'\nimport LoadingSearchOpenAPIOperations from '@/components/LoadingSearchOpenAPIOperations.vue'\nimport type { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '@/entities/tools/search-openapi-operations'\nimport { getOperations } from '@/helpers'\nimport { useState, type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof SEARCH_OPENAPI_OPERATIONS_TOOL_NAME>>\n >\n message: Reactive<UIMessage>\n}>()\n\nconst MAX_VISIBLE = 5\n\nconst messageFinished = ref(false)\n\nwatch(\n () => message,\n () => {\n const parts = message.parts\n\n const index = parts.findIndex(\n (part) =>\n 'toolCallId' in part &&\n part.toolCallId === messagePart.value.toolCallId,\n )\n\n messageFinished.value = Boolean(parts[index + 1])\n },\n)\n\nconst operations = computed(() => {\n if (!messagePart.value.output) {\n return\n }\n\n return messagePart.value.output.flatMap((spec) => {\n const title = spec.info?.title\n\n const documentOperations = getOperations(spec)\n\n return documentOperations\n .map(\n (operation) =>\n `${title ? `${title} - ` : ''}${operation.summary ?? ''}`,\n )\n .filter(Boolean)\n })\n})\n\nconst visibleOperations = computed(() =>\n operations.value?.slice(0, MAX_VISIBLE),\n)\nconst hiddenOperations = computed(\n () => operations.value?.slice(MAX_VISIBLE) ?? [],\n)\n\nconst state = useState()\n</script>\n\n<template>\n <div\n v-if=\"\n messagePart.value.state === 'input-available' &&\n state.chat.status === 'streaming'\n \">\n <LoadingSearchOpenAPIOperations />\n </div>\n <div\n v-if=\"operations\"\n class=\"operations\">\n <ContextItem\n v-for=\"operation of visibleOperations\"\n :key=\"operation\"\n :loading=\"!messageFinished\">\n {{ operation }}\n </ContextItem>\n <ScalarPopover\n v-if=\"hiddenOperations.length\"\n placement=\"bottom-start\">\n <ContextItem :loading=\"!messageFinished\">\n +{{ hiddenOperations.length }}\n </ContextItem>\n <template #popover>\n <div class=\"overflowPopover\">\n <ContextItem\n v-for=\"operation of hiddenOperations\"\n :key=\"operation\"\n :loading=\"!messageFinished\">\n {{ operation }}\n </ContextItem>\n </div>\n </template>\n </ScalarPopover>\n </div>\n</template>\n\n<style scoped>\n.operations {\n display: flex;\n gap: 5px;\n align-items: center;\n flex-wrap: wrap;\n margin-bottom: 12px;\n}\n.operations:empty {\n margin-bottom: -12px;\n}\n.overflowPopover {\n display: flex;\n flex-direction: column;\n gap: 5px;\n padding: 8px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"SearchOpenAPIOperationsTool.vue.js","names":["_sfc_main"],"sources":["../../../../src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover } from '@scalar/components/popover'\nimport { type ToolUIPart, type UIMessage } from 'ai'\nimport { computed, ref, watch, type Reactive, type Ref } from 'vue'\n\nimport ContextItem from '@/components/ContextItem.vue'\nimport LoadingSearchOpenAPIOperations from '@/components/LoadingSearchOpenAPIOperations.vue'\nimport type { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '@/entities/tools/search-openapi-operations'\nimport { getSearchResultLabels } from '@/helpers/get-search-result-labels'\nimport { useState, type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof SEARCH_OPENAPI_OPERATIONS_TOOL_NAME>>\n >\n message: Reactive<UIMessage>\n}>()\n\nconst MAX_VISIBLE = 5\n\nconst messageFinished = ref(false)\n\nwatch(\n () => message,\n () => {\n const parts = message.parts\n\n const index = parts.findIndex(\n (part) =>\n 'toolCallId' in part &&\n part.toolCallId === messagePart.value.toolCallId,\n )\n\n messageFinished.value = Boolean(parts[index + 1])\n },\n)\n\nconst operations = computed(() => {\n if (!messagePart.value.output) {\n return\n }\n\n return messagePart.value.output.flatMap(getSearchResultLabels)\n})\n\nconst visibleOperations = computed(() =>\n operations.value?.slice(0, MAX_VISIBLE),\n)\nconst hiddenOperations = computed(\n () => operations.value?.slice(MAX_VISIBLE) ?? [],\n)\n\nconst state = useState()\n</script>\n\n<template>\n <div\n v-if=\"\n messagePart.value.state === 'input-available' &&\n state.chat.status === 'streaming'\n \">\n <LoadingSearchOpenAPIOperations />\n </div>\n <div\n v-if=\"operations\"\n class=\"operations\">\n <ContextItem\n v-for=\"(operation, index) of visibleOperations\"\n :key=\"index\"\n :loading=\"!messageFinished\">\n {{ operation }}\n </ContextItem>\n <ScalarPopover\n v-if=\"hiddenOperations.length\"\n placement=\"bottom-start\">\n <ContextItem :loading=\"!messageFinished\">\n +{{ hiddenOperations.length }}\n </ContextItem>\n <template #popover>\n <div class=\"overflowPopover\">\n <ContextItem\n v-for=\"(operation, index) of hiddenOperations\"\n :key=\"index\"\n :loading=\"!messageFinished\">\n {{ operation }}\n </ContextItem>\n </div>\n </template>\n </ScalarPopover>\n </div>\n</template>\n\n<style scoped>\n.operations {\n display: flex;\n gap: 5px;\n align-items: center;\n flex-wrap: wrap;\n margin-bottom: 12px;\n}\n.operations:empty {\n margin-bottom: -12px;\n}\n.overflowPopover {\n display: flex;\n flex-direction: column;\n gap: 5px;\n padding: 8px;\n}\n</style>\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
- import { getOperations } from "../../../helpers.js";
2
1
  import { useState } from "../../../state/state.js";
3
2
  import ContextItem_default from "../../../components/ContextItem.vue.js";
4
3
  import LoadingSearchOpenAPIOperations_default from "../../../components/LoadingSearchOpenAPIOperations.vue.js";
4
+ import { getSearchResultLabels } from "../../../helpers/get-search-result-labels.js";
5
5
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, renderList, toDisplayString, unref, watch, withCtx } from "vue";
6
6
  import { ScalarPopover } from "@scalar/components/popover";
7
7
  //#region src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue?vue&type=script&setup=true&lang.ts
@@ -27,18 +27,15 @@ var SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default = /*
27
27
  });
28
28
  const operations = computed(() => {
29
29
  if (!__props.messagePart.value.output) return;
30
- return __props.messagePart.value.output.flatMap((spec) => {
31
- const title = spec.info?.title;
32
- return getOperations(spec).map((operation) => `${title ? `${title} - ` : ""}${operation.summary ?? ""}`).filter(Boolean);
33
- });
30
+ return __props.messagePart.value.output.flatMap(getSearchResultLabels);
34
31
  });
35
32
  const visibleOperations = computed(() => operations.value?.slice(0, MAX_VISIBLE));
36
33
  const hiddenOperations = computed(() => operations.value?.slice(MAX_VISIBLE) ?? []);
37
34
  const state = useState();
38
35
  return (_ctx, _cache) => {
39
- return openBlock(), createElementBlock(Fragment, null, [__props.messagePart.value.state === "input-available" && unref(state).chat.status === "streaming" ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(LoadingSearchOpenAPIOperations_default)])) : createCommentVNode("", true), operations.value ? (openBlock(), createElementBlock("div", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleOperations.value, (operation) => {
36
+ return openBlock(), createElementBlock(Fragment, null, [__props.messagePart.value.state === "input-available" && unref(state).chat.status === "streaming" ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(LoadingSearchOpenAPIOperations_default)])) : createCommentVNode("", true), operations.value ? (openBlock(), createElementBlock("div", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleOperations.value, (operation, index) => {
40
37
  return openBlock(), createBlock(ContextItem_default, {
41
- key: operation,
38
+ key: index,
42
39
  loading: !messageFinished.value
43
40
  }, {
44
41
  default: withCtx(() => [createTextVNode(toDisplayString(operation), 1)]),
@@ -48,9 +45,9 @@ var SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default = /*
48
45
  key: 0,
49
46
  placement: "bottom-start"
50
47
  }, {
51
- popover: withCtx(() => [createElementVNode("div", _hoisted_3, [(openBlock(true), createElementBlock(Fragment, null, renderList(hiddenOperations.value, (operation) => {
48
+ popover: withCtx(() => [createElementVNode("div", _hoisted_3, [(openBlock(true), createElementBlock(Fragment, null, renderList(hiddenOperations.value, (operation, index) => {
52
49
  return openBlock(), createBlock(ContextItem_default, {
53
- key: operation,
50
+ key: index,
54
51
  loading: !messageFinished.value
55
52
  }, {
56
53
  default: withCtx(() => [createTextVNode(toDisplayString(operation), 1)]),
@@ -69,4 +66,4 @@ var SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default = /*
69
66
  //#endregion
70
67
  export { SearchOpenAPIOperationsTool_vue_vue_type_script_setup_true_lang_default as default };
71
68
 
72
- //# sourceMappingURL=SearchOpenAPIOperationsTool.vue.script.js.map
69
+ //# sourceMappingURL=SearchOpenAPIOperationsTool.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchOpenAPIOperationsTool.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_unref","_createVNode","LoadingSearchOpenAPIOperations","_createCommentVNode","_renderList","_createBlock","ContextItem","_withCtx","_createTextVNode","_toDisplayString","_createElementVNode"],"sources":["../../../../src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover } from '@scalar/components/popover'\nimport { type ToolUIPart, type UIMessage } from 'ai'\nimport { computed, ref, watch, type Reactive, type Ref } from 'vue'\n\nimport ContextItem from '@/components/ContextItem.vue'\nimport LoadingSearchOpenAPIOperations from '@/components/LoadingSearchOpenAPIOperations.vue'\nimport type { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '@/entities/tools/search-openapi-operations'\nimport { getSearchResultLabels } from '@/helpers/get-search-result-labels'\nimport { useState, type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof SEARCH_OPENAPI_OPERATIONS_TOOL_NAME>>\n >\n message: Reactive<UIMessage>\n}>()\n\nconst MAX_VISIBLE = 5\n\nconst messageFinished = ref(false)\n\nwatch(\n () => message,\n () => {\n const parts = message.parts\n\n const index = parts.findIndex(\n (part) =>\n 'toolCallId' in part &&\n part.toolCallId === messagePart.value.toolCallId,\n )\n\n messageFinished.value = Boolean(parts[index + 1])\n },\n)\n\nconst operations = computed(() => {\n if (!messagePart.value.output) {\n return\n }\n\n return messagePart.value.output.flatMap(getSearchResultLabels)\n})\n\nconst visibleOperations = computed(() =>\n operations.value?.slice(0, MAX_VISIBLE),\n)\nconst hiddenOperations = computed(\n () => operations.value?.slice(MAX_VISIBLE) ?? [],\n)\n\nconst state = useState()\n</script>\n\n<template>\n <div\n v-if=\"\n messagePart.value.state === 'input-available' &&\n state.chat.status === 'streaming'\n \">\n <LoadingSearchOpenAPIOperations />\n </div>\n <div\n v-if=\"operations\"\n class=\"operations\">\n <ContextItem\n v-for=\"(operation, index) of visibleOperations\"\n :key=\"index\"\n :loading=\"!messageFinished\">\n {{ operation }}\n </ContextItem>\n <ScalarPopover\n v-if=\"hiddenOperations.length\"\n placement=\"bottom-start\">\n <ContextItem :loading=\"!messageFinished\">\n +{{ hiddenOperations.length }}\n </ContextItem>\n <template #popover>\n <div class=\"overflowPopover\">\n <ContextItem\n v-for=\"(operation, index) of hiddenOperations\"\n :key=\"index\"\n :loading=\"!messageFinished\">\n {{ operation }}\n </ContextItem>\n </div>\n </template>\n </ScalarPopover>\n </div>\n</template>\n\n<style scoped>\n.operations {\n display: flex;\n gap: 5px;\n align-items: center;\n flex-wrap: wrap;\n margin-bottom: 12px;\n}\n.operations:empty {\n margin-bottom: -12px;\n}\n.overflowPopover {\n display: flex;\n flex-direction: column;\n gap: 5px;\n padding: 8px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;AAkBA,IAAM,cAAc;;;;;;;;EAEpB,MAAM,kBAAkB,IAAI,KAAK;EAEjC,YACQ,QAAA,eACA;GACJ,MAAM,QAAQ,QAAA,QAAQ;GAEtB,MAAM,QAAQ,MAAM,WACjB,SACC,gBAAgB,QAChB,KAAK,eAAe,QAAA,YAAY,MAAM,UAC1C;GAEA,gBAAgB,QAAQ,QAAQ,MAAM,QAAQ,EAAE;EAClD,CACF;EAEA,MAAM,aAAa,eAAe;GAChC,IAAI,CAAC,QAAA,YAAY,MAAM,QACrB;GAGF,OAAO,QAAA,YAAY,MAAM,OAAO,QAAQ,qBAAqB;EAC/D,CAAC;EAED,MAAM,oBAAoB,eACxB,WAAW,OAAO,MAAM,GAAG,WAAW,CACxC;EACA,MAAM,mBAAmB,eACjB,WAAW,OAAO,MAAM,WAAW,KAAK,CAAC,CACjD;EAEA,MAAM,QAAQ,SAAS;;G,wDAKN,QAAA,YAAY,MAAM,UAAK,qBAAgCG,MAAA,KAAA,CAAK,CAAC,KAAK,WAAM,eADvFH,UAAA,GAAAC,mBAMM,OAAA,YAAA,CADJG,YAAkCC,sCAAA,C,oCAG5B,WAAA,SADRL,UAAA,GAAAC,mBA0BM,OA1BN,YA0BM,EAvBJD,UAAA,IAAA,GAAAC,mBAKcC,UAAA,MAAAK,WAJiB,kBAAA,QAArB,WAAW,UAAK;IAD1B,OAAAP,UAAA,GAAAQ,YAKcC,qBAAA;KAHX,KAAK;KACL,SAAO,CAAG,gBAAA;;KACX,SAAAC,cAAe,CAAZC,gBAAAC,gBAAA,SAAS,GAAA,CAAA,C;;;G,WAGN,iBAAA,MAAiB,UADzBZ,UAAA,GAAAQ,YAgBgBL,MAAA,aAAA,GAAA;;IAdd,WAAU;;IAIC,SAAOO,cAQV,CAPNG,mBAOM,OAPN,YAOM,EANJb,UAAA,IAAA,GAAAC,mBAKcC,UAAA,MAAAK,WAJiB,iBAAA,QAArB,WAAW,UAAK;KAD1B,OAAAP,UAAA,GAAAQ,YAKcC,qBAAA;MAHX,KAAK;MACL,SAAO,CAAG,gBAAA;;MACX,SAAAC,cAAe,CAAZC,gBAAAC,gBAAA,SAAS,GAAA,CAAA,C;;;;IATlB,SAAAF,cAEc,CAFdN,YAEcK,qBAAA,EAFA,SAAO,CAAG,gBAAA,M;KAAiB,SAAAC,cACtC,CADsCC,gBAAA,OACtCC,gBAAG,iBAAA,MAAiB,MAAM,GAAA,CAAA,C"}
@@ -1,4 +1,4 @@
1
- import Text_vue_vue_type_script_setup_true_lang_default from "./Text.vue.script.js";
1
+ import Text_vue_vue_type_script_setup_true_lang_default from "./Text.vue_vue_type_script_setup_true_lang.js";
2
2
  //#region src/views/Chat/Messages/Text.vue
3
3
  var Text_default = Text_vue_vue_type_script_setup_true_lang_default;
4
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Text.vue.js","names":[],"sources":["../../../../src/views/Chat/Messages/Text.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { type TextUIPart } from 'ai'\nimport { type Ref } from 'vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<TextUIPart>\n}>()\n</script>\n\n<template>\n <ScalarMarkdown :value=\"messagePart.value.text\" />\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Text.vue.js","names":["_sfc_main"],"sources":["../../../../src/views/Chat/Messages/Text.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { type TextUIPart } from 'ai'\nimport { type Ref } from 'vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<TextUIPart>\n}>()\n</script>\n\n<template>\n <ScalarMarkdown :value=\"messagePart.value.text\" />\n</template>\n"],"mappings":""}
@@ -13,4 +13,4 @@ var Text_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
13
13
  //#endregion
14
14
  export { Text_vue_vue_type_script_setup_true_lang_default as default };
15
15
 
16
- //# sourceMappingURL=Text.vue.script.js.map
16
+ //# sourceMappingURL=Text.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref"],"sources":["../../../../src/views/Chat/Messages/Text.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { type TextUIPart } from 'ai'\nimport { type Ref } from 'vue'\n\nconst { messagePart } = defineProps<{\n messagePart: Ref<TextUIPart>\n}>()\n</script>\n\n<template>\n <ScalarMarkdown :value=\"messagePart.value.text\" />\n</template>\n"],"mappings":";;;;;;;;GAWE,OAAAA,UAAA,GAAAC,YAAkDC,MAAA,cAAA,GAAA,EAAjC,OAAO,QAAA,YAAY,MAAM,K"}
@@ -1,6 +1,6 @@
1
1
  import _plugin_vue_export_helper_default from "../_virtual/_plugin-vue_export-helper.js";
2
- import Layout_vue_vue_type_script_setup_true_lang_default from "./Layout.vue.script.js";
3
- /* empty css */
2
+ import Layout_vue_vue_type_script_setup_true_lang_default from "./Layout.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
4
  //#region src/views/Layout.vue
5
5
  var Layout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Layout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f1eee0af"]]);
6
6
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.vue.js","names":[],"sources":["../../src/views/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useState } from '@/state/state'\nimport Chat from '@/views/Chat/Chat.vue'\nimport Start from '@/views/Start.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n (e: 'uploadApi'): void\n}>()\n\nconst { chat } = useState()\n</script>\n\n<template>\n <div class=\"wrapper\">\n <Chat\n v-if=\"\n chat.messages.length &&\n (chat.messages.length > 1 || chat.status !== 'submitted')\n \"\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n <Start\n v-else\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n width: 100%;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"Layout.vue.js","names":["_sfc_main"],"sources":["../../src/views/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useState } from '@/state/state'\nimport Chat from '@/views/Chat/Chat.vue'\nimport Start from '@/views/Start.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n (e: 'uploadApi'): void\n}>()\n\nconst { chat } = useState()\n</script>\n\n<template>\n <div class=\"wrapper\">\n <Chat\n v-if=\"\n chat.messages.length &&\n (chat.messages.length > 1 || chat.status !== 'submitted')\n \"\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n <Start\n v-else\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n width: 100%;\n}\n</style>\n"],"mappings":""}
@@ -26,4 +26,4 @@ var Layout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
26
26
  //#endregion
27
27
  export { Layout_vue_vue_type_script_setup_true_lang_default as default };
28
28
 
29
- //# sourceMappingURL=Layout.vue.script.js.map
29
+ //# sourceMappingURL=Layout.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_unref","_createBlock","Chat","Start"],"sources":["../../src/views/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useState } from '@/state/state'\nimport Chat from '@/views/Chat/Chat.vue'\nimport Start from '@/views/Start.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n (e: 'uploadApi'): void\n}>()\n\nconst { chat } = useState()\n</script>\n\n<template>\n <div class=\"wrapper\">\n <Chat\n v-if=\"\n chat.messages.length &&\n (chat.messages.length > 1 || chat.status !== 'submitted')\n \"\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n <Start\n v-else\n @submit=\"emit('submit')\"\n @uploadApi=\"emit('uploadApi')\" />\n </div>\n</template>\n\n<style scoped>\n.wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n width: 100%;\n}\n</style>\n"],"mappings":";;;;;;;;;;EAKA,MAAM,OAAO;EAKb,MAAM,EAAE,SAAS,SAAS;;GAIxB,OAAAA,UAAA,GAAAC,mBAYM,OAZN,YAYM,CAVaC,MAAA,IAAA,CAAI,CAAC,SAAS,WAAmBA,MAAA,IAAA,CAAI,CAAC,SAAS,SAAM,KAAQA,MAAA,IAAA,CAAI,CAAC,WAAM,gBADzFF,UAAA,GAAAG,YAMmCC,cAAA;;IADhC,UAAM,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;IACZ,aAAS,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,WAAA;G,OAClBJ,UAAA,GAAAG,YAGmCE,eAAA;;IADhC,UAAM,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;IACZ,aAAS,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,WAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"PromptForm.vue.d.ts","sourceRoot":"","sources":["../../src/views/PromptForm.vue"],"names":[],"mappings":"AA6qBA,iBAAS,WAAW,SAEnB;AAgkBD,QAAA,MAAM,YAAY;;;;;;;;iFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"PromptForm.vue.d.ts","sourceRoot":"","sources":["../../src/views/PromptForm.vue"],"names":[],"mappings":"AAyqBA,iBAAS,WAAW,SAEnB;AA4jBD,QAAA,MAAM,YAAY;;;;;;;;iFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}