@scalar/agent-chat 0.9.13 → 0.9.15

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 (89) hide show
  1. package/dist/App.vue.d.ts +2 -0
  2. package/dist/App.vue.d.ts.map +1 -1
  3. package/dist/App.vue.js.map +1 -1
  4. package/dist/App.vue.script.js +2 -0
  5. package/dist/App.vue.script.js.map +1 -1
  6. package/dist/api.d.ts +1 -3
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/api.js +30 -31
  9. package/dist/api.js.map +1 -1
  10. package/dist/client-tools/execute-request.d.ts +1 -10
  11. package/dist/client-tools/execute-request.d.ts.map +1 -1
  12. package/dist/client-tools/execute-request.js +30 -45
  13. package/dist/client-tools/execute-request.js.map +1 -1
  14. package/dist/components/ContextItem.vue.d.ts.map +1 -1
  15. package/dist/components/ContextItem.vue.js +1 -1
  16. package/dist/components/ContextItem.vue.js.map +1 -1
  17. package/dist/components/ContextItem.vue.script.js +5 -5
  18. package/dist/components/ContextItem.vue.script.js.map +1 -1
  19. package/dist/components/{LoadingMiniOpenAPIDoc.vue.d.ts → LoadingSearchOpenAPIOperations.vue.d.ts} +1 -1
  20. package/dist/components/LoadingSearchOpenAPIOperations.vue.d.ts.map +1 -0
  21. package/dist/components/{LoadingMiniOpenAPIDoc.vue.js → LoadingSearchOpenAPIOperations.vue.js} +4 -4
  22. package/dist/components/LoadingSearchOpenAPIOperations.vue.js.map +1 -0
  23. package/dist/entities/index.d.ts +3 -3
  24. package/dist/entities/index.d.ts.map +1 -1
  25. package/dist/entities/index.js +7 -7
  26. package/dist/entities/tools/ask-for-authentication.d.ts +1 -0
  27. package/dist/entities/tools/ask-for-authentication.d.ts.map +1 -1
  28. package/dist/entities/tools/ask-for-authentication.js +4 -1
  29. package/dist/entities/tools/ask-for-authentication.js.map +1 -1
  30. package/dist/entities/tools/execute-request.d.ts +1 -0
  31. package/dist/entities/tools/execute-request.d.ts.map +1 -1
  32. package/dist/entities/tools/execute-request.js +2 -1
  33. package/dist/entities/tools/execute-request.js.map +1 -1
  34. package/dist/entities/tools/get-openapi-specs-summary.d.ts +12 -0
  35. package/dist/entities/tools/get-openapi-specs-summary.d.ts.map +1 -0
  36. package/dist/entities/tools/get-openapi-specs-summary.js +6 -0
  37. package/dist/entities/tools/get-openapi-specs-summary.js.map +1 -0
  38. package/dist/entities/tools/search-openapi-operations.d.ts +9 -0
  39. package/dist/entities/tools/search-openapi-operations.d.ts.map +1 -0
  40. package/dist/entities/tools/search-openapi-operations.js +7 -0
  41. package/dist/entities/tools/search-openapi-operations.js.map +1 -0
  42. package/dist/hooks/use-upload-tmp-document.js +1 -1
  43. package/dist/hooks/use-upload-tmp-document.js.map +1 -1
  44. package/dist/package.json +1 -2
  45. package/dist/state/state.d.ts +9 -7
  46. package/dist/state/state.d.ts.map +1 -1
  47. package/dist/state/state.js +32 -36
  48. package/dist/state/state.js.map +1 -1
  49. package/dist/style.css +1 -1
  50. package/dist/views/Chat/Chat.vue.d.ts.map +1 -1
  51. package/dist/views/Chat/Chat.vue.js +1 -1
  52. package/dist/views/Chat/Chat.vue.js.map +1 -1
  53. package/dist/views/Chat/Chat.vue.script.js +8 -8
  54. package/dist/views/Chat/Chat.vue.script.js.map +1 -1
  55. package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts.map +1 -1
  56. package/dist/views/Chat/Messages/AskForAuthentication.vue.js +1 -1
  57. package/dist/views/Chat/Messages/AskForAuthentication.vue.js.map +1 -1
  58. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js +38 -44
  59. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +1 -1
  60. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts +2 -2
  61. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts.map +1 -1
  62. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js.map +1 -1
  63. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js.map +1 -1
  64. package/dist/views/Chat/Messages/{GetMiniOpenAPIDocTool.vue.d.ts → SearchOpenAPIOperationsTool.vue.d.ts} +3 -3
  65. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.d.ts.map +1 -0
  66. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js +9 -0
  67. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js.map +1 -0
  68. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js +57 -0
  69. package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js.map +1 -0
  70. package/package.json +7 -8
  71. package/dist/components/LoadingMiniOpenAPIDoc.vue.d.ts.map +0 -1
  72. package/dist/components/LoadingMiniOpenAPIDoc.vue.js.map +0 -1
  73. package/dist/entities/tools/constants.d.ts +0 -2
  74. package/dist/entities/tools/constants.d.ts.map +0 -1
  75. package/dist/entities/tools/constants.js +0 -6
  76. package/dist/entities/tools/constants.js.map +0 -1
  77. package/dist/entities/tools/get-mini-openapi-spec.d.ts +0 -12
  78. package/dist/entities/tools/get-mini-openapi-spec.d.ts.map +0 -1
  79. package/dist/entities/tools/get-mini-openapi-spec.js +0 -7
  80. package/dist/entities/tools/get-mini-openapi-spec.js.map +0 -1
  81. package/dist/entities/tools/get-openapi-spec-summary.d.ts +0 -10
  82. package/dist/entities/tools/get-openapi-spec-summary.d.ts.map +0 -1
  83. package/dist/entities/tools/get-openapi-spec-summary.js +0 -6
  84. package/dist/entities/tools/get-openapi-spec-summary.js.map +0 -1
  85. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts.map +0 -1
  86. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js +0 -9
  87. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js.map +0 -1
  88. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js +0 -39
  89. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.vue.js","names":[],"sources":["../../../src/views/Chat/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToolUIPart } from 'ai'\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 { GET_MINI_OPENAPI_SPEC_TOOL_NAME } from '@/entities/tools/get-mini-openapi-spec'\nimport { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME } from '@/entities/tools/get-openapi-spec-summary'\nimport { useState, type Tools } from '@/state/state'\nimport AskForAuthentication from '@/views/Chat/Messages/AskForAuthentication.vue'\nimport ExecuteRequestTool from '@/views/Chat/Messages/ExecuteRequestTool.vue'\nimport GetMiniOpenAPIDocTool from '@/views/Chat/Messages/GetMiniOpenAPIDocTool.vue'\nimport GetOpenAPISpecsSummary from '@/views/Chat/Messages/GetOpenAPISpecsSummary.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=\"part.type.endsWith(EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME>\n >,\n )\n \" />\n <GetMiniOpenAPIDocTool\n v-if=\"part.type.endsWith(GET_MINI_OPENAPI_SPEC_TOOL_NAME)\"\n :message=\"reactive(message)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof GET_MINI_OPENAPI_SPEC_TOOL_NAME>\n >,\n )\n \" />\n <GetOpenAPISpecsSummary\n v-if=\"part.type.endsWith(GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME)\"\n :message=\"reactive(message)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME>\n >,\n )\n \" />\n <AskForAuthentication\n v-if=\"part.type.endsWith(ASK_FOR_AUTHENTICATION_TOOL_NAME)\"\n :message=\"reactive(message)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>\n >,\n )\n \" />\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: 18px;\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":[],"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: 18px;\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,12 +1,12 @@
1
1
  import "../../entities/tools/ask-for-authentication.js";
2
2
  import "../../entities/tools/execute-request.js";
3
- import "../../entities/tools/get-mini-openapi-spec.js";
4
- import "../../entities/tools/get-openapi-spec-summary.js";
3
+ import "../../entities/tools/get-openapi-specs-summary.js";
4
+ import "../../entities/tools/search-openapi-operations.js";
5
5
  import { useState as e } from "../../state/state.js";
6
6
  import t from "./Messages/AskForAuthentication.vue.js";
7
7
  import n from "./Messages/ExecuteRequestTool.vue.js";
8
- import r from "./Messages/GetMiniOpenAPIDocTool.vue.js";
9
- import i from "./Messages/GetOpenAPISpecsSummary.vue.js";
8
+ import r from "./Messages/GetOpenAPISpecsSummary.vue.js";
9
+ import i from "./Messages/SearchOpenAPIOperationsTool.vue.js";
10
10
  import a from "./Messages/Text.vue.js";
11
11
  import o from "../PromptForm.vue.js";
12
12
  import { Fragment as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createVNode as f, defineComponent as p, openBlock as m, reactive as h, renderList as g, toDisplayString as _, toRef as v, unref as y } from "vue";
@@ -24,21 +24,21 @@ var b = { class: "chat" }, x = { key: 0 }, S = { class: "formContainer" }, C = /
24
24
  key: 0,
25
25
  messagePart: v(o)
26
26
  }, null, 8, ["messagePart"])) : l("", !0),
27
- o.type.endsWith(y("execute-request")) ? (m(), c(n, {
27
+ o.type === `tool-${y("execute-request")}` ? (m(), c(n, {
28
28
  key: 1,
29
29
  messagePart: v(o)
30
30
  }, null, 8, ["messagePart"])) : l("", !0),
31
- o.type.endsWith(y("get-mini-openapi-spec")) ? (m(), c(r, {
31
+ o.type === `tool-${y("search-openapi-operations")}` ? (m(), c(i, {
32
32
  key: 2,
33
33
  message: h(e),
34
34
  messagePart: v(o)
35
35
  }, null, 8, ["message", "messagePart"])) : l("", !0),
36
- o.type.endsWith(y("get-openapi-specs-summary")) ? (m(), c(i, {
36
+ o.type === `tool-${y("summarize-openapi-specs")}` ? (m(), c(r, {
37
37
  key: 3,
38
38
  message: h(e),
39
39
  messagePart: v(o)
40
40
  }, null, 8, ["message", "messagePart"])) : l("", !0),
41
- o.type.endsWith(y("ask-for-authentication")) ? (m(), c(t, {
41
+ o.type === `tool-${y("ask-for-authentication")}` ? (m(), c(t, {
42
42
  key: 4,
43
43
  message: h(e),
44
44
  messagePart: v(o)
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.vue.script.js","names":[],"sources":["../../../src/views/Chat/Chat.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToolUIPart } from 'ai'\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 { GET_MINI_OPENAPI_SPEC_TOOL_NAME } from '@/entities/tools/get-mini-openapi-spec'\nimport { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME } from '@/entities/tools/get-openapi-spec-summary'\nimport { useState, type Tools } from '@/state/state'\nimport AskForAuthentication from '@/views/Chat/Messages/AskForAuthentication.vue'\nimport ExecuteRequestTool from '@/views/Chat/Messages/ExecuteRequestTool.vue'\nimport GetMiniOpenAPIDocTool from '@/views/Chat/Messages/GetMiniOpenAPIDocTool.vue'\nimport GetOpenAPISpecsSummary from '@/views/Chat/Messages/GetOpenAPISpecsSummary.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=\"part.type.endsWith(EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME>\n >,\n )\n \" />\n <GetMiniOpenAPIDocTool\n v-if=\"part.type.endsWith(GET_MINI_OPENAPI_SPEC_TOOL_NAME)\"\n :message=\"reactive(message)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof GET_MINI_OPENAPI_SPEC_TOOL_NAME>\n >,\n )\n \" />\n <GetOpenAPISpecsSummary\n v-if=\"part.type.endsWith(GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME)\"\n :message=\"reactive(message)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME>\n >,\n )\n \" />\n <AskForAuthentication\n v-if=\"part.type.endsWith(ASK_FOR_AUTHENTICATION_TOOL_NAME)\"\n :message=\"reactive(message)\"\n :messagePart=\"\n toRef(\n part as ToolUIPart<\n Pick<Tools, typeof ASK_FOR_AUTHENTICATION_TOOL_NAME>\n >,\n )\n \" />\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: 18px;\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":";;;;;;;;;;;;;;;;;EAgBA,IAAM,IAAO,GAKP,IAAQ,GAAS;qCAIrB,EA8DM,OA9DN,GA8DM,EAAA,EAAA,GAAA,EA7DJ,EA2DW,GAAA,MAAA,EA1DS,EAAA,EAAK,CAAC,KAAK,WAAtB,wBACD,EAAQ,IAAA,EAAA,CACE,EAAQ,SAAI,UAAA,EAAA,GAAA,EAC1B,EAKM,GAAA,EAAA,KAAA,GAAA,EAAA,EAJoB,EAAQ,QAAxB,GAAM,YADhB,EAKM,OAAA;GAHH,KAAG,GAAK,EAAQ,GAAE,GAAI;GACvB,OAAM;MACG,EAAK,SAAI,UAAA,GAAA,EAAlB,EAAkD,KAAA,GAAA,EAAhB,EAAK,KAAI,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA,uBAG/B,EAAQ,SAAI,eAAA,EAAA,GAAA,EAC1B,EA6CM,GAAA,EAAA,KAAA,GAAA,EAAA,EA5CoB,EAAQ,QAAxB,GAAM,YADhB,EA6CM,OAAA,EA3CH,KAAG,GAAK,EAAQ,GAAE,GAAI,KAAA,EAAA;GAEf,EAAK,SAAI,UAAA,GAAA,EADjB,EAE+B,GAAA;;IAA5B,aAAa,EAAM,EAAI;;GAElB,EAAK,KAAK,SAAS,EAAA,kBAAqC,CAAA,IAAA,GAAA,EADhE,EAQM,GAAA;;IANH,aAA4B,EAAuB,EAAA;;GAQ9C,EAAK,KAAK,SAAS,EAAA,wBAA+B,CAAA,IAAA,GAAA,EAD1D,EASM,GAAA;;IAPH,SAAS,EAAS,EAAO;IACzB,aAA4B,EAAuB,EAAA;;GAQ9C,EAAK,KAAK,SAAS,EAAA,4BAAmC,CAAA,IAAA,GAAA,EAD9D,EASM,GAAA;;IAPH,SAAS,EAAS,EAAO;IACzB,aAA4B,EAAuB,EAAA;;GAQ9C,EAAK,KAAK,SAAS,EAAA,yBAAgC,CAAA,IAAA,GAAA,EAD3D,EASM,GAAA;;IAPH,SAAS,EAAS,EAAO;IACzB,aAA4B,EAAuB,EAAA;;mDAU5D,EAA0B,OAAA,EAArB,OAAM,UAAQ,EAAA,MAAA,GAAA,CAAA,CAAA,EAErB,EAIM,OAJN,GAIM,CAHJ,EAEmC,GAAA;GADhC,UAAM,AAAA,EAAA,QAAA,MAAE,EAAI,SAAA;GACZ,aAAS,AAAA,EAAA,QAAA,MAAE,EAAI,YAAA"}
1
+ {"version":3,"file":"Chat.vue.script.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: 18px;\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,IAAM,IAAO,GAKP,IAAQ,GAAS;qCAIrB,EAkDM,OAlDN,GAkDM,EAAA,EAAA,GAAA,EAjDJ,EA+CW,GAAA,MAAA,EA9CS,EAAA,EAAK,CAAC,KAAK,WAAtB,wBACD,EAAQ,IAAA,EAAA,CACE,EAAQ,SAAI,UAAA,EAAA,GAAA,EAC1B,EAKM,GAAA,EAAA,KAAA,GAAA,EAAA,EAJoB,EAAQ,QAAxB,GAAM,YADhB,EAKM,OAAA;GAHH,KAAG,GAAK,EAAQ,GAAE,GAAI;GACvB,OAAM;MACG,EAAK,SAAI,UAAA,GAAA,EAAlB,EAAkD,KAAA,GAAA,EAAhB,EAAK,KAAI,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA,uBAG/B,EAAQ,SAAI,eAAA,EAAA,GAAA,EAC1B,EAiCM,GAAA,EAAA,KAAA,GAAA,EAAA,EAhCoB,EAAQ,QAAxB,GAAM,YADhB,EAiCM,OAAA,EA/BH,KAAG,GAAK,EAAQ,GAAE,GAAI,KAAA,EAAA;GAEf,EAAK,SAAI,UAAA,GAAA,EADjB,EAE+B,GAAA;;IAA5B,aAAa,EAAM,EAAI;;GAEH,EAAK,SAAA,QAAgC,EAAA,kBAAqC,MAAA,GAAA,EADjG,EAK+B,GAAA;;IAA5B,aAAa,EAAM,EAAI;;GAEH,EAAK,SAAA,QAAgC,EAAA,4BAAmC,MAAA,GAAA,EAD/F,EAM+B,GAAA;;IAD5B,SAAS,EAAS,EAAO;IACzB,aAAa,EAAM,EAAI;;GAEH,EAAK,SAAA,QAAgC,EAAA,0BAAiC,MAAA,GAAA,EAD7F,EAM+B,GAAA;;IAD5B,SAAS,EAAS,EAAO;IACzB,aAAa,EAAM,EAAI;;GAEH,EAAK,SAAA,QAAgC,EAAA,yBAAgC,MAAA,GAAA,EAD5F,EAM+B,GAAA;;IAD5B,SAAS,EAAS,EAAO;IACzB,aAAa,EAAM,EAAI;;mDAIhC,EAA0B,OAAA,EAArB,OAAM,UAAQ,EAAA,MAAA,GAAA,CAAA,CAAA,EAErB,EAIM,OAJN,GAIM,CAHJ,EAEmC,GAAA;GADhC,UAAM,AAAA,EAAA,QAAA,MAAE,EAAI,SAAA;GACZ,aAAS,AAAA,EAAA,QAAA,MAAE,EAAI,YAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"names":[],"mappings":"AAiMA,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;AAG1F,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;AA2MF,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":"AA+KA,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;AA2LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import e from "../../../_virtual/_plugin-vue_export-helper.js";
2
2
  import t from "./AskForAuthentication.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/views/Chat/Messages/AskForAuthentication.vue
5
- var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-8af07610"]]);
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-6fbfc976"]]);
6
6
  //#endregion
7
7
  export { n 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 { getSelectedServer } from '@scalar/api-client/v2/features/operation'\nimport { getActiveEnvironment, getServers } from '@scalar/api-client/v2/helpers'\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\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 { TOOL_NAMESPACE_SLUG_DELIMITER } from '@/entities/tools/constants'\nimport { createDocumentName } from '@/registry/create-document-name'\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(() => {\n if (\n !messagePart.value.input?.uniqueIdentifier ||\n messagePart.value.state !== 'input-available'\n ) {\n return\n }\n\n const [namespace, slug] = messagePart.value.input.uniqueIdentifier.split(\n TOOL_NAMESPACE_SLUG_DELIMITER,\n )\n if (!namespace || !slug) {\n return\n }\n\n return createDocumentName(namespace, slug)\n})\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n return workspaceStore.workspace.documents[documentName.value]\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value)\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(servers, document.value['x-scalar-selected-server'])\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":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { getSelectedServer } from '@scalar/api-client/v2/features/operation'\nimport { getActiveEnvironment, getServers } from '@scalar/api-client/v2/helpers'\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\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 return workspaceStore.workspace.documents[documentName.value]\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value)\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(servers, document.value['x-scalar-selected-server'])\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,60 +1,54 @@
1
1
  import { ASK_FOR_AUTHENTICATION_TOOL_NAME as e } from "../../../entities/tools/ask-for-authentication.js";
2
- import "../../../entities/tools/constants.js";
3
- import { createDocumentName as t } from "../../../registry/create-document-name.js";
4
- import { useState as n } from "../../../state/state.js";
5
- import r from "../../../components/AuthenticationProvided.vue.js";
6
- import i from "../../../components/AuthenticationRequired.vue.js";
7
- import a from "../../Settings/Auth.vue.js";
8
- import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, openBlock as h, unref as g, withCtx as _ } from "vue";
9
- import { ScalarButton as v } from "@scalar/components";
10
- import { getSelectedServer as y } from "@scalar/api-client/v2/features/operation";
11
- import { getActiveEnvironment as b, getServers as x } from "@scalar/api-client/v2/helpers";
12
- import { ScalarIconArrowRight as S } from "@scalar/icons";
2
+ import { useState as t } from "../../../state/state.js";
3
+ import n from "../../../components/AuthenticationProvided.vue.js";
4
+ import r from "../../../components/AuthenticationRequired.vue.js";
5
+ import i from "../../Settings/Auth.vue.js";
6
+ import { computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, normalizeClass as p, openBlock as m, unref as h, withCtx as g } from "vue";
7
+ import { ScalarButton as _ } from "@scalar/components";
8
+ import { getSelectedServer as v } from "@scalar/api-client/v2/features/operation";
9
+ import { getActiveEnvironment as y, getServers as b } from "@scalar/api-client/v2/helpers";
10
+ import { ScalarIconArrowRight as x } from "@scalar/icons";
13
11
  //#region src/views/Chat/Messages/AskForAuthentication.vue?vue&type=script&setup=true&lang.ts
14
- var C = { class: "toggleButton" }, w = { class: "authContent" }, T = { class: "authContentInner" }, E = /* @__PURE__ */ p({
12
+ var S = { class: "toggleButton" }, C = { class: "authContent" }, w = { class: "authContentInner" }, T = /* @__PURE__ */ f({
15
13
  __name: "AskForAuthentication",
16
14
  props: { messagePart: {} },
17
- setup(p) {
18
- let { workspaceStore: E, eventBus: D, config: O, chat: k } = n(), A = o(() => {
19
- if (!p.messagePart.value.input?.uniqueIdentifier || p.messagePart.value.state !== "input-available") return;
20
- let [e, n] = p.messagePart.value.input.uniqueIdentifier.split("---");
21
- if (!(!e || !n)) return t(e, n);
22
- }), j = o(() => {
23
- if (A.value) return E.workspace.documents[A.value];
24
- }), M = o(() => {
25
- if (j.value) return b(E, j.value);
26
- }), N = o(() => {
27
- if (j.value) return y(x(j.value.servers, { documentUrl: j.value["x-scalar-original-source-url"] }), j.value["x-scalar-selected-server"]);
28
- }), P = o(() => A.value && M.value && N.value);
29
- async function F() {
30
- await k.addToolOutput({
31
- toolCallId: p.messagePart.value.toolCallId,
15
+ setup(f) {
16
+ let { workspaceStore: T, eventBus: E, config: D, chat: O } = t(), k = a(() => f.messagePart.value.input?.documentName), A = a(() => {
17
+ if (k.value) return T.workspace.documents[k.value];
18
+ }), j = a(() => {
19
+ if (A.value) return y(T, A.value);
20
+ }), M = a(() => {
21
+ if (A.value) return v(b(A.value.servers, { documentUrl: A.value["x-scalar-original-source-url"] }), A.value["x-scalar-selected-server"]);
22
+ }), N = a(() => k.value && j.value && M.value);
23
+ async function P() {
24
+ await O.addToolOutput({
25
+ toolCallId: f.messagePart.value.toolCallId,
32
26
  output: "Authentication provided.",
33
27
  tool: e,
34
28
  state: "output-available"
35
29
  });
36
30
  }
37
- return (e, t) => (h(), l("div", { class: m(["askForAuthentication", { open: P.value }]) }, [u("div", C, [
38
- p.messagePart.value.state === "output-available" ? (h(), s(r, { key: 0 })) : c("", !0),
39
- p.messagePart.value.state === "input-available" ? (h(), s(i, { key: 1 })) : c("", !0),
40
- p.messagePart.value.state === "input-available" ? (h(), s(g(v), {
31
+ return (e, t) => (m(), c("div", { class: p(["askForAuthentication", { open: N.value }]) }, [l("div", S, [
32
+ f.messagePart.value.state === "output-available" ? (m(), o(n, { key: 0 })) : s("", !0),
33
+ f.messagePart.value.state === "input-available" ? (m(), o(r, { key: 1 })) : s("", !0),
34
+ f.messagePart.value.state === "input-available" ? (m(), o(h(_), {
41
35
  key: 2,
42
36
  class: "authorizeButton",
43
37
  size: "xs",
44
- onClick: F
38
+ onClick: P
45
39
  }, {
46
- default: _(() => [t[0] ||= d(" Authorize ", -1), f(g(S), { weight: "bold" })]),
40
+ default: g(() => [t[0] ||= u(" Authorize ", -1), d(h(x), { weight: "bold" })]),
47
41
  _: 1
48
- })) : c("", !0)
49
- ]), u("div", w, [u("div", T, [A.value && j.value && M.value && N.value ? (h(), s(a, {
42
+ })) : s("", !0)
43
+ ]), l("div", C, [l("div", w, [k.value && A.value && j.value && M.value ? (m(), o(i, {
50
44
  key: 0,
51
- authStore: g(E).auth,
52
- document: j.value,
53
- environment: M.value,
54
- eventBus: g(D),
55
- name: A.value,
56
- options: g(O),
57
- selectedServer: N.value
45
+ authStore: h(T).auth,
46
+ document: A.value,
47
+ environment: j.value,
48
+ eventBus: h(E),
49
+ name: k.value,
50
+ options: h(D),
51
+ selectedServer: M.value
58
52
  }, null, 8, [
59
53
  "authStore",
60
54
  "document",
@@ -63,10 +57,10 @@ var C = { class: "toggleButton" }, w = { class: "authContent" }, T = { class: "a
63
57
  "name",
64
58
  "options",
65
59
  "selectedServer"
66
- ])) : c("", !0)])])], 2));
60
+ ])) : s("", !0)])])], 2));
67
61
  }
68
62
  });
69
63
  //#endregion
70
- export { E as default };
64
+ export { T as default };
71
65
 
72
66
  //# sourceMappingURL=AskForAuthentication.vue.script.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AskForAuthentication.vue.script.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { getSelectedServer } from '@scalar/api-client/v2/features/operation'\nimport { getActiveEnvironment, getServers } from '@scalar/api-client/v2/helpers'\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\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 { TOOL_NAMESPACE_SLUG_DELIMITER } from '@/entities/tools/constants'\nimport { createDocumentName } from '@/registry/create-document-name'\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(() => {\n if (\n !messagePart.value.input?.uniqueIdentifier ||\n messagePart.value.state !== 'input-available'\n ) {\n return\n }\n\n const [namespace, slug] = messagePart.value.input.uniqueIdentifier.split(\n TOOL_NAMESPACE_SLUG_DELIMITER,\n )\n if (!namespace || !slug) {\n return\n }\n\n return createDocumentName(namespace, slug)\n})\n\nconst document = computed(() => {\n if (!documentName.value) {\n return\n }\n\n return workspaceStore.workspace.documents[documentName.value]\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value)\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(servers, document.value['x-scalar-selected-server'])\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":";;;;;;;;;;;;;;;;;EAsBA,IAAM,EAAE,mBAAgB,aAAU,WAAQ,YAAS,GAAS,EAEtD,IAAe,QAAe;AAClC,OACE,CAAC,EAAA,YAAY,MAAM,OAAO,oBAC1B,EAAA,YAAY,MAAM,UAAU,kBAE5B;GAGF,IAAM,CAAC,GAAW,KAAQ,EAAA,YAAY,MAAM,MAAM,iBAAiB,MAAA,MAEnE;AACI,UAAC,KAAa,CAAC,GAInB,QAAO,EAAmB,GAAW,EAAI;IAC1C,EAEK,IAAW,QAAe;AACzB,SAAa,MAIlB,QAAO,EAAe,UAAU,UAAU,EAAa;IACxD,EAEK,IAAc,QAAe;AAC5B,SAAS,MAId,QAAO,EAAqB,GAAgB,EAAS,MAAK;IAC3D,EAEK,IAAiB,QAAe;AAC/B,SAAS,MAQd,QAAO,EAJS,EAAW,EAAS,MAAM,SAAS,EACjD,aAAa,EAAS,MAAM,iCAC7B,CAAA,EAEiC,EAAS,MAAM,4BAA2B;IAC7E,EAEK,IAA2B,QACzB,EAAa,SAAS,EAAY,SAAS,EAAe,MAClE;EAEA,eAAe,IAAmB;AAChC,SAAM,EAAK,cAAc;IACvB,YAAY,EAAA,YAAY,MAAM;IAC9B,QAAQ;IACR,MAAM;IACN,OAAO;IACR,CAAA;;yBAKD,EAgCM,OAAA,EA/BJ,OAAK,EAAA,CAAC,wBAAsB,EAAA,MACN,EAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAGtB,EAaM,OAbN,GAaM;GAXI,EAAA,YAAY,MAAM,UAAK,sBAAA,GAAA,EAD/B,EAC0D,GAAA,EAAA,KAAA,GAAA,CAAA,IAAA,EAAA,IAAA,GAAA;GAElD,EAAA,YAAY,MAAM,UAAK,qBAAA,GAAA,EAD/B,EACyD,GAAA,EAAA,KAAA,GAAA,CAAA,IAAA,EAAA,IAAA,GAAA;GAEjD,EAAA,YAAY,MAAM,UAAK,qBAAA,GAAA,EAD/B,EAOe,EAAA,EAAA,EAAA;;IALb,OAAM;IACN,MAAK;IACJ,SAAO;;qBAER,CAAA,AAAA,EAAA,OAAA,EAF0B,eAE1B,GAAA,EAAA,EAAsC,EAAA,EAAA,EAAA,EAAhB,QAAO,QAAM,CAAA,CAAA,CAAA;;;MAGvC,EAYM,OAZN,GAYM,CAXJ,EAUM,OAVN,GAUM,CARI,EAAA,SAAgB,EAAA,SAAY,EAAA,SAAe,EAAA,SAAA,GAAA,EADnD,EAQoB,GAAA;;GANjB,WAAW,EAAA,EAAc,CAAC;GAC1B,UAAA,EAAA;GACA,aAAA,EAAA;GACA,UAAA,EAAA,EAAQ;GACR,MAAM,EAAA;GACN,SAAS,EAAA,EAAM;GACf,gBAAA,EAAA"}
1
+ {"version":3,"file":"AskForAuthentication.vue.script.js","names":[],"sources":["../../../../src/views/Chat/Messages/AskForAuthentication.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { getSelectedServer } from '@scalar/api-client/v2/features/operation'\nimport { getActiveEnvironment, getServers } from '@scalar/api-client/v2/helpers'\nimport { ScalarButton } from '@scalar/components'\nimport { ScalarIconArrowRight } from '@scalar/icons'\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 return workspaceStore.workspace.documents[documentName.value]\n})\n\nconst environment = computed(() => {\n if (!document.value) {\n return\n }\n\n return getActiveEnvironment(workspaceStore, document.value)\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(servers, document.value['x-scalar-selected-server'])\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":";;;;;;;;;;;;;;;EAoBA,IAAM,EAAE,mBAAgB,aAAU,WAAQ,YAAS,GAAS,EAEtD,IAAe,QAAe,EAAA,YAAY,MAAM,OAAO,aAAY,EAEnE,IAAW,QAAe;AACzB,SAAa,MAIlB,QAAO,EAAe,UAAU,UAAU,EAAa;IACxD,EAEK,IAAc,QAAe;AAC5B,SAAS,MAId,QAAO,EAAqB,GAAgB,EAAS,MAAK;IAC3D,EAEK,IAAiB,QAAe;AAC/B,SAAS,MAQd,QAAO,EAJS,EAAW,EAAS,MAAM,SAAS,EACjD,aAAa,EAAS,MAAM,iCAC7B,CAAA,EAEiC,EAAS,MAAM,4BAA2B;IAC7E,EAEK,IAA2B,QACzB,EAAa,SAAS,EAAY,SAAS,EAAe,MAClE;EAEA,eAAe,IAAmB;AAChC,SAAM,EAAK,cAAc;IACvB,YAAY,EAAA,YAAY,MAAM;IAC9B,QAAQ;IACR,MAAM;IACN,OAAO;IACR,CAAA;;yBAKD,EAgCM,OAAA,EA/BJ,OAAK,EAAA,CAAC,wBAAsB,EAAA,MACN,EAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAGtB,EAaM,OAbN,GAaM;GAXI,EAAA,YAAY,MAAM,UAAK,sBAAA,GAAA,EAD/B,EAC0D,GAAA,EAAA,KAAA,GAAA,CAAA,IAAA,EAAA,IAAA,GAAA;GAElD,EAAA,YAAY,MAAM,UAAK,qBAAA,GAAA,EAD/B,EACyD,GAAA,EAAA,KAAA,GAAA,CAAA,IAAA,EAAA,IAAA,GAAA;GAEjD,EAAA,YAAY,MAAM,UAAK,qBAAA,GAAA,EAD/B,EAOe,EAAA,EAAA,EAAA;;IALb,OAAM;IACN,MAAK;IACJ,SAAO;;qBAER,CAAA,AAAA,EAAA,OAAA,EAF0B,eAE1B,GAAA,EAAA,EAAsC,EAAA,EAAA,EAAA,EAAhB,QAAO,QAAM,CAAA,CAAA,CAAA;;;MAGvC,EAYM,OAZN,GAYM,CAXJ,EAUM,OAVN,GAUM,CARI,EAAA,SAAgB,EAAA,SAAY,EAAA,SAAe,EAAA,SAAA,GAAA,EADnD,EAQoB,GAAA;;GANjB,WAAW,EAAA,EAAc,CAAC;GAC1B,UAAA,EAAA;GACA,aAAA,EAAA;GACA,UAAA,EAAA,EAAQ;GACR,MAAM,EAAA;GACN,SAAS,EAAA,EAAM;GACf,gBAAA,EAAA"}
@@ -1,9 +1,9 @@
1
1
  import type { ToolUIPart, UIMessage } from 'ai';
2
2
  import { type Reactive, type Ref } from 'vue';
3
- import type { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME } from '../../../entities/tools/get-openapi-spec-summary.js';
3
+ import type { SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '../../../entities/tools/get-openapi-specs-summary.js';
4
4
  import { type Tools } from '../../../state/state.js';
5
5
  type __VLS_Props = {
6
- messagePart: Ref<ToolUIPart<Pick<Tools, typeof GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME>>>;
6
+ messagePart: Ref<ToolUIPart<Pick<Tools, typeof SUMMARIZE_OPENAPI_SPECS_TOOL_NAME>>>;
7
7
  message: Reactive<UIMessage>;
8
8
  };
9
9
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"GetOpenAPISpecsSummary.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/GetOpenAPISpecsSummary.vue"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAGzD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAA;AACpG,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,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;AAqDF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"GetOpenAPISpecsSummary.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/GetOpenAPISpecsSummary.vue"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAGzD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAA;AACnG,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,GAAG,CACd,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,iCAAiC,CAAC,CAAC,CAClE,CAAA;IACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAC;AAqDF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -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 { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME } from '@/entities/tools/get-openapi-spec-summary'\nimport { type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof GET_OPENAPI_SPECS_SUMMARY_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":[],"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 +1 @@
1
- {"version":3,"file":"GetOpenAPISpecsSummary.vue.script.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 { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME } from '@/entities/tools/get-openapi-spec-summary'\nimport { type Tools } from '@/state/state'\n\nconst { messagePart, message } = defineProps<{\n messagePart: Ref<\n ToolUIPart<Pick<Tools, typeof GET_OPENAPI_SPECS_SUMMARY_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,IAAM,IAAkB,EAAI,GAAK;SAEjC,QACQ,EAAA,eACA;GACJ,IAAM,IAAQ,EAAA,QAAQ;AAQtB,KAAgB,QAAQ,EAAQ,EANlB,EAAM,WACjB,MACC,gBAAgB,KAChB,EAAK,eAAe,EAAA,YAAY,MAAM,WAC1C,GAE8C;IAElD,YAIc,EAAA,QACoB,EAAA,IAAA,GAAA,IADpB,GAAA,EAAZ,EAEM,OAAA,GAAA,CADJ,EAA8B,EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"GetOpenAPISpecsSummary.vue.script.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":";;;;;;;;;;EAeA,IAAM,IAAkB,EAAI,GAAK;SAEjC,QACQ,EAAA,eACA;GACJ,IAAM,IAAQ,EAAA,QAAQ;AAQtB,KAAgB,QAAQ,EAAQ,EANlB,EAAM,WACjB,MACC,gBAAgB,KAChB,EAAK,eAAe,EAAA,YAAY,MAAM,WAC1C,GAE8C;IAElD,YAIc,EAAA,QACoB,EAAA,IAAA,GAAA,IADpB,GAAA,EAAZ,EAEM,OAAA,GAAA,CADJ,EAA8B,EAAA,CAAA,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { type ToolUIPart, type UIMessage } from 'ai';
2
2
  import { type Reactive, type Ref } from 'vue';
3
- import type { GET_MINI_OPENAPI_SPEC_TOOL_NAME } from '../../../entities/tools/get-mini-openapi-spec.js';
3
+ import type { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME } from '../../../entities/tools/search-openapi-operations.js';
4
4
  import { type Tools } from '../../../state/state.js';
5
5
  type __VLS_Props = {
6
- messagePart: Ref<ToolUIPart<Pick<Tools, typeof GET_MINI_OPENAPI_SPEC_TOOL_NAME>>>;
6
+ messagePart: Ref<ToolUIPart<Pick<Tools, typeof SEARCH_OPENAPI_OPERATIONS_TOOL_NAME>>>;
7
7
  message: Reactive<UIMessage>;
8
8
  };
9
9
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
10
  declare const _default: typeof __VLS_export;
11
11
  export default _default;
12
- //# sourceMappingURL=GetMiniOpenAPIDocTool.vue.d.ts.map
12
+ //# sourceMappingURL=SearchOpenAPIOperationsTool.vue.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,9 @@
1
+ import e from "../../../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./SearchOpenAPIOperationsTool.vue.script.js";
3
+ /* empty css */
4
+ //#region src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-43dd2b86"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=SearchOpenAPIOperationsTool.vue.js.map
@@ -0,0 +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'\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":""}
@@ -0,0 +1,57 @@
1
+ import { getOperations as e } from "../../../helpers.js";
2
+ import { useState as t } from "../../../state/state.js";
3
+ import n from "../../../components/ContextItem.vue.js";
4
+ import r from "../../../components/LoadingSearchOpenAPIOperations.vue.js";
5
+ import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, openBlock as p, ref as m, renderList as h, toDisplayString as g, unref as _, watch as v, withCtx as y } from "vue";
6
+ import { ScalarPopover as b } from "@scalar/components";
7
+ //#region src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue?vue&type=script&setup=true&lang.ts
8
+ var x = { key: 0 }, S = {
9
+ key: 1,
10
+ class: "operations"
11
+ }, C = { class: "overflowPopover" }, w = 5, T = /* @__PURE__ */ f({
12
+ __name: "SearchOpenAPIOperationsTool",
13
+ props: {
14
+ messagePart: {},
15
+ message: {}
16
+ },
17
+ setup(f) {
18
+ let T = m(!1);
19
+ v(() => f.message, () => {
20
+ let e = f.message.parts;
21
+ T.value = !!e[e.findIndex((e) => "toolCallId" in e && e.toolCallId === f.messagePart.value.toolCallId) + 1];
22
+ });
23
+ let E = a(() => {
24
+ if (f.messagePart.value.output) return f.messagePart.value.output.flatMap((t) => {
25
+ let n = t.info?.title;
26
+ return e(t).map((e) => `${n ? `${n} - ` : ""}${e.summary ?? ""}`).filter(Boolean);
27
+ });
28
+ }), D = a(() => E.value?.slice(0, w)), O = a(() => E.value?.slice(w) ?? []), k = t();
29
+ return (e, t) => (p(), c(i, null, [f.messagePart.value.state === "input-available" && _(k).chat.status === "streaming" ? (p(), c("div", x, [d(r)])) : s("", !0), E.value ? (p(), c("div", S, [(p(!0), c(i, null, h(D.value, (e) => (p(), o(n, {
30
+ key: e,
31
+ loading: !T.value
32
+ }, {
33
+ default: y(() => [u(g(e), 1)]),
34
+ _: 2
35
+ }, 1032, ["loading"]))), 128)), O.value.length ? (p(), o(_(b), {
36
+ key: 0,
37
+ placement: "bottom-start"
38
+ }, {
39
+ popover: y(() => [l("div", C, [(p(!0), c(i, null, h(O.value, (e) => (p(), o(n, {
40
+ key: e,
41
+ loading: !T.value
42
+ }, {
43
+ default: y(() => [u(g(e), 1)]),
44
+ _: 2
45
+ }, 1032, ["loading"]))), 128))])]),
46
+ default: y(() => [d(n, { loading: !T.value }, {
47
+ default: y(() => [u(" +" + g(O.value.length), 1)]),
48
+ _: 1
49
+ }, 8, ["loading"])]),
50
+ _: 1
51
+ })) : s("", !0)])) : s("", !0)], 64));
52
+ }
53
+ });
54
+ //#endregion
55
+ export { T as default };
56
+
57
+ //# sourceMappingURL=SearchOpenAPIOperationsTool.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchOpenAPIOperationsTool.vue.script.js","names":[],"sources":["../../../../src/views/Chat/Messages/SearchOpenAPIOperationsTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover } from '@scalar/components'\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":";;;;;;;;;;qCAkBM,IAAc;;;;;;;EAEpB,IAAM,IAAkB,EAAI,GAAK;AAEjC,UACQ,EAAA,eACA;GACJ,IAAM,IAAQ,EAAA,QAAQ;AAQtB,KAAgB,QAAQ,EAAQ,EANlB,EAAM,WACjB,MACC,gBAAgB,KAChB,EAAK,eAAe,EAAA,YAAY,MAAM,WAC1C,GAE8C;IAElD;EAEA,IAAM,IAAa,QAAe;AAC3B,SAAA,YAAY,MAAM,OAIvB,QAAO,EAAA,YAAY,MAAM,OAAO,SAAS,MAAS;IAChD,IAAM,IAAQ,EAAK,MAAM;AAIzB,WAF2B,EAAc,EAAI,CAG1C,KACE,MACC,GAAG,IAAQ,GAAG,EAAM,OAAO,KAAK,EAAU,WAAW,KACzD,CACC,OAAO,QAAO;KAClB;IACF,EAEK,IAAoB,QACxB,EAAW,OAAO,MAAM,GAAG,EAAY,CACzC,EACM,IAAmB,QACjB,EAAW,OAAO,MAAM,EAAY,IAAI,EAAE,CAClD,EAEM,IAAQ,GAAS;qCAKN,EAAA,YAAY,MAAM,UAAK,qBAAgC,EAAA,EAAK,CAAC,KAAK,WAAM,eAAA,GAAA,EADvF,EAMM,OAAA,GAAA,CADJ,EAAkC,EAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA,EAG5B,EAAA,SAAA,GAAA,EADR,EA0BM,OA1BN,GA0BM,EAAA,EAAA,GAAA,EAvBJ,EAKc,GAAA,MAAA,EAJQ,EAAA,QAAb,YADT,EAKc,GAAA;GAHX,KAAK;GACL,SAAO,CAAG,EAAA;;oBACI,CAAA,EAAA,EAAZ,EAAS,EAAA,EAAA,CAAA,CAAA;;kCAGN,EAAA,MAAiB,UAAA,GAAA,EADzB,EAgBgB,EAAA,EAAA,EAAA;;GAdd,WAAU;;GAIC,SAAO,QAQV,CAPN,EAOM,OAPN,GAOM,EAAA,EAAA,GAAA,EANJ,EAKc,GAAA,MAAA,EAJQ,EAAA,QAAb,YADT,EAKc,GAAA;IAHX,KAAK;IACL,SAAO,CAAG,EAAA;;qBACI,CAAA,EAAA,EAAZ,EAAS,EAAA,EAAA,CAAA,CAAA;;;oBAPJ,CAFd,EAEc,GAAA,EAFA,SAAO,CAAG,EAAA,OAAA,EAAA;qBACrB,CAAA,EADsC,OACtC,EAAG,EAAA,MAAiB,OAAM,EAAA,EAAA,CAAA,CAAA"}
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "git+https://github.com/scalar/scalar.git",
11
11
  "directory": "packages/agent-chat"
12
12
  },
13
- "version": "0.9.13",
13
+ "version": "0.9.15",
14
14
  "engines": {
15
15
  "node": ">=22"
16
16
  },
@@ -50,19 +50,18 @@
50
50
  "vue": "^3.5.26",
51
51
  "whatwg-mimetype": "4.0.0",
52
52
  "zod": "^4.3.5",
53
- "@scalar/components": "0.21.0",
54
53
  "@scalar/helpers": "0.4.2",
55
- "@scalar/api-client": "2.39.0",
56
- "@scalar/json-magic": "0.12.4",
57
- "@scalar/icons": "0.6.4",
54
+ "@scalar/api-client": "2.39.2",
55
+ "@scalar/icons": "0.7.0",
56
+ "@scalar/components": "0.21.1",
58
57
  "@scalar/openapi-types": "0.6.1",
58
+ "@scalar/json-magic": "0.12.4",
59
59
  "@scalar/themes": "0.15.1",
60
- "@scalar/types": "0.7.4",
61
60
  "@scalar/use-toasts": "0.10.1",
62
- "@scalar/workspace-store": "0.41.0"
61
+ "@scalar/types": "0.7.5",
62
+ "@scalar/workspace-store": "0.41.2"
63
63
  },
64
64
  "devDependencies": {
65
- "@modelcontextprotocol/sdk": "1.26.0",
66
65
  "@tailwindcss/vite": "^4.2.0",
67
66
  "@types/whatwg-mimetype": "3.0.2",
68
67
  "@vitejs/plugin-vue": "^6.0.3",
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingMiniOpenAPIDoc.vue.d.ts","sourceRoot":"","sources":["../../src/components/LoadingMiniOpenAPIDoc.vue"],"names":[],"mappings":"AAyFA,QAAA,MAAM,YAAY,+QAChB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingMiniOpenAPIDoc.vue.js","names":[],"sources":["../../src/components/LoadingMiniOpenAPIDoc.vue"],"sourcesContent":["<template>\n <div class=\"sendingRequest\">\n <div class=\"playIcon\"></div>\n Retrieving relevant information...\n </div>\n</template>\n\n<style scoped>\n.playIcon {\n padding: 4px;\n height: 16px;\n width: 16px;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n background: var(--scalar-background-1);\n border-radius: 50%;\n}\n\n.playIcon::before {\n content: '';\n width: 16px;\n height: 16px;\n display: inline-block;\n box-sizing: border-box;\n position: absolute;\n border-width: 1.5px;\n border-style: solid;\n border-color: currentcolor currentcolor transparent;\n border-image: initial;\n border-radius: 50%;\n background: var(--scalar-background-1);\n animation: 0.42s linear 0s infinite normal none running rotation;\n}\n\n.sendingRequest {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--scalar-color-2);\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n margin-bottom: 10px;\n}\n\n.sendingRequest svg {\n width: 100%;\n height: 100%;\n z-index: 1;\n border-radius: 50%;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n</style>\n"],"mappings":";;;;kBACO,OAAM,kBAAgB;;aAA3B,EAGM,OAHN,GAGM,CAAA,GAAA,AAAA,EAAA,OAAA,CAFJ,EAA4B,OAAA,EAAvB,OAAM,YAAU,EAAA,MAAA,GAAA,EAAA,EAAO,wCAE9B,GAAA,CAAA,CAAA,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const TOOL_NAMESPACE_SLUG_DELIMITER = "---";
2
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,QAAQ,CAAA"}
@@ -1,6 +0,0 @@
1
- //#region src/entities/tools/constants.ts
2
- var e = "---";
3
- //#endregion
4
- export { e as TOOL_NAMESPACE_SLUG_DELIMITER };
5
-
6
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../../../src/entities/tools/constants.ts"],"sourcesContent":["export const TOOL_NAMESPACE_SLUG_DELIMITER = '---'\n"],"mappings":";AAAA,IAAa,IAAgC"}
@@ -1,12 +0,0 @@
1
- import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
2
- import type { OpenAPIV3_1 } from '@scalar/openapi-types';
3
- import { z } from 'zod';
4
- export declare const GET_MINI_OPENAPI_SPEC_TOOL_NAME: "get-mini-openapi-spec";
5
- export declare const getMiniOpenAPIDocToolInputSchema: z.ZodObject<{
6
- question: z.ZodString;
7
- }, z.core.$strip>;
8
- export type GetMiniOpenAPIDocToolInput = z.input<typeof getMiniOpenAPIDocToolInputSchema>;
9
- export type GetMiniOpenAPIDocToolOutput = CallToolResult & {
10
- structuredContent: Partial<OpenAPIV3_1.Document>;
11
- };
12
- //# sourceMappingURL=get-mini-openapi-spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-mini-openapi-spec.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/get-mini-openapi-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,+BAA+B,EAAG,uBAAgC,CAAA;AAE/E,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAEzF,MAAM,MAAM,2BAA2B,GAAG,cAAc,GAAG;IACzD,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;CACjD,CAAA"}
@@ -1,7 +0,0 @@
1
- import { z as e } from "zod";
2
- //#region src/entities/tools/get-mini-openapi-spec.ts
3
- var t = "get-mini-openapi-spec", n = e.object({ question: e.string() });
4
- //#endregion
5
- export { t as GET_MINI_OPENAPI_SPEC_TOOL_NAME, n as getMiniOpenAPIDocToolInputSchema };
6
-
7
- //# sourceMappingURL=get-mini-openapi-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-mini-openapi-spec.js","names":[],"sources":["../../../src/entities/tools/get-mini-openapi-spec.ts"],"sourcesContent":["import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { z } from 'zod'\n\nexport const GET_MINI_OPENAPI_SPEC_TOOL_NAME = 'get-mini-openapi-spec' as const\n\nexport const getMiniOpenAPIDocToolInputSchema = z.object({\n question: z.string(),\n})\n\nexport type GetMiniOpenAPIDocToolInput = z.input<typeof getMiniOpenAPIDocToolInputSchema>\n\nexport type GetMiniOpenAPIDocToolOutput = CallToolResult & {\n structuredContent: Partial<OpenAPIV3_1.Document>\n}\n"],"mappings":";;AAIA,IAAa,IAAkC,yBAElC,IAAmC,EAAE,OAAO,EACvD,UAAU,EAAE,QAAQ,EACrB,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
2
- import type { OpenAPIV3_1 } from '@scalar/openapi-types';
3
- export declare const GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME: "get-openapi-specs-summary";
4
- export type GetOpenAPISpecsSummaryToolOutput = CallToolResult & {
5
- structuredContent: {
6
- info?: OpenAPIV3_1.InfoObject;
7
- paths: string[];
8
- };
9
- };
10
- //# sourceMappingURL=get-openapi-spec-summary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-openapi-spec-summary.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/get-openapi-spec-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,eAAO,MAAM,mCAAmC,EAAG,2BAAoC,CAAA;AAEvF,MAAM,MAAM,gCAAgC,GAAG,cAAc,GAAG;IAC9D,iBAAiB,EAAE;QACjB,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAA;QAC7B,KAAK,EAAE,MAAM,EAAE,CAAA;KAChB,CAAA;CACF,CAAA"}
@@ -1,6 +0,0 @@
1
- //#region src/entities/tools/get-openapi-spec-summary.ts
2
- var e = "get-openapi-specs-summary";
3
- //#endregion
4
- export { e as GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME };
5
-
6
- //# sourceMappingURL=get-openapi-spec-summary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-openapi-spec-summary.js","names":[],"sources":["../../../src/entities/tools/get-openapi-spec-summary.ts"],"sourcesContent":["import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\nexport const GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME = 'get-openapi-specs-summary' as const\n\nexport type GetOpenAPISpecsSummaryToolOutput = CallToolResult & {\n structuredContent: {\n info?: OpenAPIV3_1.InfoObject\n paths: string[]\n }\n}\n"],"mappings":";AAGA,IAAa,IAAsC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GetMiniOpenAPIDocTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/views/Chat/Messages/GetMiniOpenAPIDocTool.vue"],"names":[],"mappings":"AAyFA,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,+BAA+B,EAAE,MAAM,wCAAwC,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,+BAA+B,CAAC,CAAC,CAChE,CAAA;IACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAC;AAuGF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}