@scalar/agent-chat 0.1.2

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 (157) hide show
  1. package/dist/App.vue.d.ts +10 -0
  2. package/dist/App.vue.d.ts.map +1 -0
  3. package/dist/App.vue.js +23 -0
  4. package/dist/App.vue.js.map +1 -0
  5. package/dist/App.vue2.js +5 -0
  6. package/dist/App.vue2.js.map +1 -0
  7. package/dist/Chat.vue.d.ts +3 -0
  8. package/dist/Chat.vue.d.ts.map +1 -0
  9. package/dist/Chat.vue.js +55 -0
  10. package/dist/Chat.vue.js.map +1 -0
  11. package/dist/Chat.vue2.js +5 -0
  12. package/dist/Chat.vue2.js.map +1 -0
  13. package/dist/_virtual/_plugin-vue_export-helper.js +11 -0
  14. package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
  15. package/dist/components/ContextItem.vue.d.ts +16 -0
  16. package/dist/components/ContextItem.vue.d.ts.map +1 -0
  17. package/dist/components/ContextItem.vue.js +8 -0
  18. package/dist/components/ContextItem.vue.js.map +1 -0
  19. package/dist/components/ContextItem.vue2.js +22 -0
  20. package/dist/components/ContextItem.vue2.js.map +1 -0
  21. package/dist/components/Endpoint.vue.d.ts +9 -0
  22. package/dist/components/Endpoint.vue.d.ts.map +1 -0
  23. package/dist/components/Endpoint.vue.js +8 -0
  24. package/dist/components/Endpoint.vue.js.map +1 -0
  25. package/dist/components/Endpoint.vue2.js +98 -0
  26. package/dist/components/Endpoint.vue2.js.map +1 -0
  27. package/dist/components/LoadingMiniOpenAPIDoc.vue.d.ts +3 -0
  28. package/dist/components/LoadingMiniOpenAPIDoc.vue.d.ts.map +1 -0
  29. package/dist/components/LoadingMiniOpenAPIDoc.vue.js +32 -0
  30. package/dist/components/LoadingMiniOpenAPIDoc.vue.js.map +1 -0
  31. package/dist/components/Logo.vue.d.ts +3 -0
  32. package/dist/components/Logo.vue.d.ts.map +1 -0
  33. package/dist/components/Logo.vue.js +25 -0
  34. package/dist/components/Logo.vue.js.map +1 -0
  35. package/dist/components/SendingRequest.vue.d.ts +3 -0
  36. package/dist/components/SendingRequest.vue.d.ts.map +1 -0
  37. package/dist/components/SendingRequest.vue.js +26 -0
  38. package/dist/components/SendingRequest.vue.js.map +1 -0
  39. package/dist/components/Suggestion.vue.d.ts +10 -0
  40. package/dist/components/Suggestion.vue.d.ts.map +1 -0
  41. package/dist/components/Suggestion.vue.js +8 -0
  42. package/dist/components/Suggestion.vue.js.map +1 -0
  43. package/dist/components/Suggestion.vue2.js +28 -0
  44. package/dist/components/Suggestion.vue2.js.map +1 -0
  45. package/dist/components/TestRequestButton.vue.d.ts +8 -0
  46. package/dist/components/TestRequestButton.vue.d.ts.map +1 -0
  47. package/dist/components/TestRequestButton.vue.js +8 -0
  48. package/dist/components/TestRequestButton.vue.js.map +1 -0
  49. package/dist/components/TestRequestButton.vue2.js +37 -0
  50. package/dist/components/TestRequestButton.vue2.js.map +1 -0
  51. package/dist/helpers.d.ts +39 -0
  52. package/dist/helpers.d.ts.map +1 -0
  53. package/dist/helpers.js +111 -0
  54. package/dist/helpers.js.map +1 -0
  55. package/dist/hooks/useActiveServer.d.ts +2 -0
  56. package/dist/hooks/useActiveServer.d.ts.map +1 -0
  57. package/dist/hooks/useActiveServer.js +20 -0
  58. package/dist/hooks/useActiveServer.js.map +1 -0
  59. package/dist/hooks/useChatOperationBlocks.d.ts +3 -0
  60. package/dist/hooks/useChatOperationBlocks.d.ts.map +1 -0
  61. package/dist/hooks/useChatOperationBlocks.js +29 -0
  62. package/dist/hooks/useChatOperationBlocks.js.map +1 -0
  63. package/dist/hooks/useChatScroll.d.ts +2 -0
  64. package/dist/hooks/useChatScroll.d.ts.map +1 -0
  65. package/dist/hooks/useChatScroll.js +22 -0
  66. package/dist/hooks/useChatScroll.js.map +1 -0
  67. package/dist/hooks/useSecuritySchemes.d.ts +2 -0
  68. package/dist/hooks/useSecuritySchemes.d.ts.map +1 -0
  69. package/dist/hooks/useSecuritySchemes.js +29 -0
  70. package/dist/hooks/useSecuritySchemes.js.map +1 -0
  71. package/dist/index.d.ts +2 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/api.js +11 -0
  76. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/api.js.map +1 -0
  77. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/core.js +58 -0
  78. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/core.js.map +1 -0
  79. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/errors.js +25 -0
  80. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/errors.js.map +1 -0
  81. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/parse.js +64 -0
  82. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/parse.js.map +1 -0
  83. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/regexes.js +8 -0
  84. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/regexes.js.map +1 -0
  85. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/schemas.js +181 -0
  86. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/schemas.js.map +1 -0
  87. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/util.js +61 -0
  88. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/util.js.map +1 -0
  89. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/versions.js +9 -0
  90. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/core/versions.js.map +1 -0
  91. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/mini/schemas.js +60 -0
  92. package/dist/node_modules/.pnpm/zod@4.1.11/node_modules/zod/v4/mini/schemas.js.map +1 -0
  93. package/dist/package.json +63 -0
  94. package/dist/registry/get-document.d.ts +4 -0
  95. package/dist/registry/get-document.d.ts.map +1 -0
  96. package/dist/registry/get-document.js +23 -0
  97. package/dist/registry/get-document.js.map +1 -0
  98. package/dist/state/state.d.ts +47 -0
  99. package/dist/state/state.d.ts.map +1 -0
  100. package/dist/state/state.js +107 -0
  101. package/dist/state/state.js.map +1 -0
  102. package/dist/style.css +12261 -0
  103. package/dist/views/Auth.vue.d.ts +17 -0
  104. package/dist/views/Auth.vue.d.ts.map +1 -0
  105. package/dist/views/Auth.vue.js +71 -0
  106. package/dist/views/Auth.vue.js.map +1 -0
  107. package/dist/views/Auth.vue2.js +5 -0
  108. package/dist/views/Auth.vue2.js.map +1 -0
  109. package/dist/views/Chat/Chat.vue.d.ts +7 -0
  110. package/dist/views/Chat/Chat.vue.d.ts.map +1 -0
  111. package/dist/views/Chat/Chat.vue.js +8 -0
  112. package/dist/views/Chat/Chat.vue.js.map +1 -0
  113. package/dist/views/Chat/Chat.vue2.js +72 -0
  114. package/dist/views/Chat/Chat.vue2.js.map +1 -0
  115. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts +10 -0
  116. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts.map +1 -0
  117. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +8 -0
  118. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js.map +1 -0
  119. package/dist/views/Chat/Messages/ExecuteRequestTool.vue2.js +62 -0
  120. package/dist/views/Chat/Messages/ExecuteRequestTool.vue2.js.map +1 -0
  121. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts +11 -0
  122. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts.map +1 -0
  123. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js +8 -0
  124. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js.map +1 -0
  125. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue2.js +66 -0
  126. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue2.js.map +1 -0
  127. package/dist/views/Chat/Messages/Text.vue.d.ts +8 -0
  128. package/dist/views/Chat/Messages/Text.vue.d.ts.map +1 -0
  129. package/dist/views/Chat/Messages/Text.vue.js +21 -0
  130. package/dist/views/Chat/Messages/Text.vue.js.map +1 -0
  131. package/dist/views/Chat/Messages/Text.vue2.js +5 -0
  132. package/dist/views/Chat/Messages/Text.vue2.js.map +1 -0
  133. package/dist/views/Layout.vue.d.ts +7 -0
  134. package/dist/views/Layout.vue.d.ts.map +1 -0
  135. package/dist/views/Layout.vue.js +8 -0
  136. package/dist/views/Layout.vue.js.map +1 -0
  137. package/dist/views/Layout.vue2.js +32 -0
  138. package/dist/views/Layout.vue2.js.map +1 -0
  139. package/dist/views/PromptForm.vue.d.ts +10 -0
  140. package/dist/views/PromptForm.vue.d.ts.map +1 -0
  141. package/dist/views/PromptForm.vue.js +8 -0
  142. package/dist/views/PromptForm.vue.js.map +1 -0
  143. package/dist/views/PromptForm.vue2.js +125 -0
  144. package/dist/views/PromptForm.vue2.js.map +1 -0
  145. package/dist/views/Settings.vue.d.ts +7 -0
  146. package/dist/views/Settings.vue.d.ts.map +1 -0
  147. package/dist/views/Settings.vue.js +9 -0
  148. package/dist/views/Settings.vue.js.map +1 -0
  149. package/dist/views/Settings.vue2.js +81 -0
  150. package/dist/views/Settings.vue2.js.map +1 -0
  151. package/dist/views/Start.vue.d.ts +7 -0
  152. package/dist/views/Start.vue.d.ts.map +1 -0
  153. package/dist/views/Start.vue.js +8 -0
  154. package/dist/views/Start.vue.js.map +1 -0
  155. package/dist/views/Start.vue2.js +57 -0
  156. package/dist/views/Start.vue2.js.map +1 -0
  157. package/package.json +63 -0
@@ -0,0 +1,125 @@
1
+ import { defineComponent, useTemplateRef, computed, watch, createElementBlock, openBlock, createElementVNode, withModifiers, withDirectives, unref, vModelText, createBlock, normalizeClass, createVNode, createTextVNode } from "vue";
2
+ import { ScalarIconButton, ScalarLoading } from "@scalar/components";
3
+ import { ScalarIconPlay, ScalarIconArrowUp } from "@scalar/icons";
4
+ import { useState } from "../state/state.js";
5
+ const _hoisted_1 = { class: "actionContainer" };
6
+ const _hoisted_2 = ["disabled"];
7
+ const _hoisted_3 = { class: "inputActionsContainer" };
8
+ const _hoisted_4 = { class: "contextContainer" };
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "PromptForm",
11
+ emits: ["submit"],
12
+ setup(__props, { expose: __expose, emit: __emit }) {
13
+ const emit = __emit;
14
+ __expose({ focusPrompt });
15
+ const promptRef = useTemplateRef("prompt");
16
+ const state = useState();
17
+ const inputHasContent = computed(() => state.prompt.value.trim().length > 0);
18
+ watch(state.prompt, () => {
19
+ if (!promptRef?.value) return;
20
+ if (!state.prompt.value.length) {
21
+ promptRef.value.style.height = "0px";
22
+ return;
23
+ }
24
+ promptRef.value.style.height = "auto";
25
+ promptRef.value.style.height = promptRef.value.scrollHeight + "px";
26
+ });
27
+ function onAutoSendClick() {
28
+ state.mode.value = state.mode.value === "agent" ? "search" : "agent";
29
+ }
30
+ function handleSubmit() {
31
+ if (!inputHasContent.value) return;
32
+ emit("submit");
33
+ }
34
+ function handlePromptKeydown(e) {
35
+ if (state.loading.value) return;
36
+ if (e.key === "Enter" && !e.shiftKey) {
37
+ e.preventDefault();
38
+ handleSubmit();
39
+ window.scrollTo(0, document.body.scrollHeight);
40
+ }
41
+ }
42
+ function focusPrompt() {
43
+ promptRef.value?.focus();
44
+ }
45
+ watch(
46
+ () => state.chat.status,
47
+ (status) => {
48
+ if (status === "ready" || status === "error") promptRef.value?.focus();
49
+ }
50
+ );
51
+ return (_ctx, _cache) => {
52
+ return openBlock(), createElementBlock("div", _hoisted_1, [
53
+ createElementVNode("form", {
54
+ class: "promptForm",
55
+ onSubmit: withModifiers(handleSubmit, ["prevent"])
56
+ }, [
57
+ withDirectives(createElementVNode("textarea", {
58
+ ref: "prompt",
59
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(state).prompt.value = $event),
60
+ class: "prompt",
61
+ disabled: unref(state).loading.value,
62
+ name: "prompt",
63
+ placeholder: "Ask me anything...",
64
+ onKeydown: handlePromptKeydown
65
+ }, null, 40, _hoisted_2), [
66
+ [vModelText, unref(state).prompt.value]
67
+ ]),
68
+ createElementVNode("div", _hoisted_3, [
69
+ createElementVNode("button", {
70
+ class: normalizeClass(["autoSendButton", {
71
+ "autoSendButton-enabled": unref(state).mode.value === "agent"
72
+ }]),
73
+ type: "button",
74
+ onClick: onAutoSendClick
75
+ }, [
76
+ createVNode(unref(ScalarIconPlay), { weight: "bold" }),
77
+ _cache[2] || (_cache[2] = createTextVNode(" Agent Mode ", -1))
78
+ ], 2),
79
+ !unref(state).loading.value ? (openBlock(), createBlock(unref(ScalarIconButton), {
80
+ key: 0,
81
+ class: "sendButton",
82
+ disabled: !inputHasContent.value,
83
+ icon: unref(ScalarIconArrowUp),
84
+ label: "Scalar",
85
+ size: "md",
86
+ type: "submit",
87
+ weight: "bold"
88
+ }, null, 8, ["disabled", "icon"])) : (openBlock(), createBlock(unref(ScalarLoading), {
89
+ key: 1,
90
+ class: "loader",
91
+ loader: {
92
+ isLoading: unref(state).loading.value,
93
+ isValid: false,
94
+ clear: async () => {
95
+ },
96
+ invalidate: async () => {
97
+ },
98
+ isInvalid: false,
99
+ isActive: false,
100
+ validate: async () => {
101
+ },
102
+ start: () => {
103
+ }
104
+ },
105
+ size: "2xl"
106
+ }, null, 8, ["loader"]))
107
+ ])
108
+ ], 32),
109
+ createElementVNode("div", _hoisted_4, [
110
+ _cache[3] || (_cache[3] = createElementVNode("span", null, "Type @ to add context from other API's", -1)),
111
+ createElementVNode("button", {
112
+ class: "settingsButton",
113
+ label: "Settings",
114
+ type: "button",
115
+ onClick: _cache[1] || (_cache[1] = ($event) => unref(state).settingsModal.show())
116
+ }, " Settings ")
117
+ ])
118
+ ]);
119
+ };
120
+ }
121
+ });
122
+ export {
123
+ _sfc_main as default
124
+ };
125
+ //# sourceMappingURL=PromptForm.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptForm.vue2.js","sources":["../../src/views/PromptForm.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useTemplateRef, watch } from 'vue'\n\nimport { ScalarIconButton, ScalarLoading } from '@scalar/components'\nimport { ScalarIconArrowUp, ScalarIconPlay } from '@scalar/icons'\n\nimport { useState } from '@/state/state'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n}>()\n\ndefineExpose({ focusPrompt })\n\nconst promptRef = useTemplateRef<HTMLTextAreaElement>('prompt')\n\nconst state = useState()\nconst inputHasContent = computed(() => state.prompt.value.trim().length > 0)\n\nwatch(state.prompt, () => {\n if (!promptRef?.value) return\n\n if (!state.prompt.value.length) {\n promptRef.value.style.height = '0px'\n return\n }\n\n promptRef.value.style.height = 'auto'\n promptRef.value.style.height = promptRef.value.scrollHeight + 'px'\n})\n\nfunction onAutoSendClick() {\n state.mode.value = state.mode.value === 'agent' ? 'search' : 'agent'\n}\n\nfunction handleSubmit() {\n if (!inputHasContent.value) return\n\n emit('submit')\n}\n\nfunction handlePromptKeydown(e: KeyboardEvent) {\n if (state.loading.value) return\n\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n handleSubmit()\n window.scrollTo(0, document.body.scrollHeight)\n }\n}\n\nfunction focusPrompt() {\n promptRef.value?.focus()\n}\n\nwatch(\n () => state.chat.status,\n (status) => {\n if (status === 'ready' || status === 'error') promptRef.value?.focus()\n },\n)\n</script>\n\n<template>\n <div class=\"actionContainer\">\n <form\n class=\"promptForm\"\n @submit.prevent=\"handleSubmit\">\n <textarea\n ref=\"prompt\"\n v-model=\"state.prompt.value\"\n class=\"prompt\"\n :disabled=\"state.loading.value\"\n name=\"prompt\"\n placeholder=\"Ask me anything...\"\n @keydown=\"handlePromptKeydown\" />\n <div class=\"inputActionsContainer\">\n <button\n class=\"autoSendButton\"\n :class=\"{\n 'autoSendButton-enabled': state.mode.value === 'agent',\n }\"\n type=\"button\"\n @click=\"onAutoSendClick\">\n <ScalarIconPlay weight=\"bold\" />\n Agent Mode\n </button>\n <ScalarIconButton\n v-if=\"!state.loading.value\"\n class=\"sendButton\"\n :disabled=\"!inputHasContent\"\n :icon=\"ScalarIconArrowUp\"\n label=\"Scalar\"\n size=\"md\"\n type=\"submit\"\n weight=\"bold\" />\n <ScalarLoading\n v-else\n class=\"loader\"\n :loader=\"{\n isLoading: state.loading.value,\n isValid: false,\n clear: async () => {},\n invalidate: async () => {},\n isInvalid: false,\n isActive: false,\n validate: async () => {},\n start: () => {},\n }\"\n size=\"2xl\" />\n </div>\n </form>\n <div class=\"contextContainer\">\n <span>Type @ to add context from other API's</span>\n <button\n class=\"settingsButton\"\n label=\"Settings\"\n type=\"button\"\n @click=\"state.settingsModal.show()\">\n Settings\n </button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.actionContainer {\n background: color-mix(\n in srgb,\n var(--scalar-background-2),\n var(--scalar-background-1)\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 22px 22px 12px 12px;\n width: 100%;\n /* visually hides overflowing text below */\n box-shadow: 0 50px 0 2px var(--scalar-background-1);\n}\n.promptForm {\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.inputActionsContainer {\n display: flex;\n justify-content: space-between;\n position: absolute;\n bottom: 0;\n width: 100%;\n padding: 0 8px 8px 8px;\n pointer-events: none;\n}\n\n.prompt {\n width: 100%;\n resize: none;\n background: var(--scalar-background-1);\n border-radius: 22px;\n box-shadow: var(--scalar-shadow-1);\n outline: none;\n border: none;\n font-family: var(--scalar-font);\n font-size: 16px;\n padding: 12px;\n min-height: 92px;\n field-sizing: content;\n padding-bottom: 48px;\n word-wrap: break-word;\n}\n.dark-mode .prompt {\n background: var(--scalar-background-2);\n box-shadow: 0 0 0 var(--scalar-border-width) var(--scalar-border-color);\n}\n.prompt:focus-within {\n box-shadow: 0 0 0 1.5px var(--scalar-color-blue);\n}\n.prompt:disabled {\n color: var(--scalar-color-3);\n}\n\n.autoSendButton {\n color: var(--scalar-color-3);\n font-size: var(--scalar-font-size-3);\n padding: 0 8px;\n height: 28px;\n font-weight: var(--scalar-bold);\n border-radius: 20px;\n display: flex;\n align-items: center;\n gap: 4px;\n pointer-events: all;\n}\n.autoSendButton:hover {\n background: color-mix(\n in srgb,\n var(--scalar-background-2),\n var(--scalar-background-1)\n );\n box-shadow: 0 0 0 var(--scalar-border-width) var(--scalar-border-color);\n}\n.dark-mode .autoSendButton:hover {\n background: var(--scalar-background-3);\n}\n.autoSendButton:active {\n background: var(--scalar-background-2);\n}\n.autoSendButton-enabled,\n.autoSendButton-enabled:hover,\n.dark-mode .autoSendButton-enabled:hover {\n background: color-mix(in srgb, var(--scalar-color-blue), transparent 90%);\n color: var(--scalar-color-blue);\n}\n\n.sendButton {\n background: var(--scalar-agent-blue) !important;\n color: white;\n border-radius: 50% !important;\n margin: 0 !important;\n pointer-events: all;\n width: 28px;\n height: 28px;\n padding: 6px;\n}\n\n.sendButton[aria-disabled='true'] {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-3);\n}\n\n.contextContainer {\n display: flex;\n width: 100%;\n padding: 10px 12px 12px 12px;\n color: var(--scalar-color-2);\n font-size: var(--scalar-font-size-3);\n user-select: none;\n justify-content: space-between;\n}\n\n.settingsButton {\n font-weight: var(--scalar-semibold);\n border-radius: var(--scalar-radius-lg);\n padding: 4px 6px;\n margin: -4px -6px;\n}\n.settingsButton:hover {\n background: var(--scalar-background-2);\n box-shadow: 0 0 var(--scalar-border-width) 0 var(--scalar-border-color);\n cursor: pointer;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_unref","_createVNode","_createBlock"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type ModalState } from '@scalar/components';
2
+ type __VLS_Props = {
3
+ modalState: ModalState;
4
+ };
5
+ declare const _default: 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>;
6
+ export default _default;
7
+ //# sourceMappingURL=Settings.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.vue.d.ts","sourceRoot":"","sources":["../../src/views/Settings.vue"],"names":[],"mappings":"AAkHA,OAAO,EACL,KAAK,UAAU,EAGhB,MAAM,oBAAoB,CAAA;AAM3B,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAC;;AA2KF,wBAEG"}
@@ -0,0 +1,9 @@
1
+ import _sfc_main from "./Settings.vue2.js";
2
+ /* empty css */
3
+ /* empty css */
4
+ import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
5
+ const Settings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-87a83fbb"]]);
6
+ export {
7
+ Settings as default
8
+ };
9
+ //# sourceMappingURL=Settings.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,81 @@
1
+ import { defineComponent, computed, createBlock, openBlock, unref, withCtx, createElementVNode, createElementBlock, createCommentVNode, createVNode, isRef } from "vue";
2
+ import { mergeAuthConfig } from "@scalar/api-client/v2/blocks/scalar-auth-selector-block";
3
+ import { getSelectedServer } from "@scalar/api-client/v2/features/operation";
4
+ import { getActiveEnvironment } from "@scalar/api-client/v2/helpers";
5
+ import { ServerSelector } from "@scalar/api-reference/blocks";
6
+ import { ScalarModal, ScalarTextInput } from "@scalar/components";
7
+ import { ScalarIconGear } from "@scalar/icons";
8
+ import { useState } from "../state/state.js";
9
+ import _sfc_main$1 from "./Auth.vue.js";
10
+ const _hoisted_1 = { class: "settingsHeading" };
11
+ const _hoisted_2 = {
12
+ key: 0,
13
+ class: "serverSettings"
14
+ };
15
+ const _hoisted_3 = { class: "proxyUrlContainer" };
16
+ const _sfc_main = /* @__PURE__ */ defineComponent({
17
+ __name: "Settings",
18
+ props: {
19
+ modalState: {}
20
+ },
21
+ setup(__props) {
22
+ const { proxyUrl, workspaceStore, config, eventBus } = useState();
23
+ const doc = computed(() => workspaceStore.workspace.activeDocument);
24
+ const environment = computed(
25
+ () => getActiveEnvironment(
26
+ workspaceStore,
27
+ workspaceStore.workspace.activeDocument ?? null
28
+ )
29
+ );
30
+ const selectedServer = computed(() => getSelectedServer(doc.value ?? null));
31
+ const securitySchemes = computed(
32
+ () => mergeAuthConfig(
33
+ doc.value?.components?.securitySchemes,
34
+ config.value.authentication?.securitySchemes
35
+ )
36
+ );
37
+ return (_ctx, _cache) => {
38
+ return openBlock(), createBlock(unref(ScalarModal), { state: _ctx.modalState }, {
39
+ default: withCtx(() => [
40
+ createElementVNode("div", _hoisted_1, [
41
+ createVNode(unref(ScalarIconGear)),
42
+ _cache[1] || (_cache[1] = createElementVNode("h1", null, "Settings", -1))
43
+ ]),
44
+ doc.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
45
+ createElementVNode("div", null, [
46
+ createVNode(unref(ServerSelector), {
47
+ eventBus: unref(eventBus),
48
+ selectedServer: selectedServer.value,
49
+ servers: doc.value?.servers ?? []
50
+ }, null, 8, ["eventBus", "selectedServer", "servers"])
51
+ ]),
52
+ createElementVNode("div", null, [
53
+ createVNode(_sfc_main$1, {
54
+ document: doc.value,
55
+ environment: environment.value,
56
+ eventBus: unref(eventBus),
57
+ options: unref(config),
58
+ securitySchemes: securitySchemes.value,
59
+ selectedServer: selectedServer.value
60
+ }, null, 8, ["document", "environment", "eventBus", "options", "securitySchemes", "selectedServer"])
61
+ ]),
62
+ createElementVNode("div", _hoisted_3, [
63
+ _cache[2] || (_cache[2] = createElementVNode("label", { for: "proxyUrl" }, "Proxy URL", -1)),
64
+ createVNode(unref(ScalarTextInput), {
65
+ id: "proxyUrl",
66
+ modelValue: unref(proxyUrl),
67
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(proxyUrl) ? proxyUrl.value = $event : null),
68
+ placeholder: "https://proxy.scalar.com"
69
+ }, null, 8, ["modelValue"])
70
+ ])
71
+ ])) : createCommentVNode("", true)
72
+ ]),
73
+ _: 1
74
+ }, 8, ["state"]);
75
+ };
76
+ }
77
+ });
78
+ export {
79
+ _sfc_main as default
80
+ };
81
+ //# sourceMappingURL=Settings.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.vue2.js","sources":["../../src/views/Settings.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { mergeAuthConfig } from '@scalar/api-client/v2/blocks/scalar-auth-selector-block'\nimport { getSelectedServer } from '@scalar/api-client/v2/features/operation'\nimport { getActiveEnvironment } from '@scalar/api-client/v2/helpers'\nimport { ServerSelector } from '@scalar/api-reference/blocks'\nimport {\n type ModalState,\n ScalarModal,\n ScalarTextInput,\n} from '@scalar/components'\nimport { ScalarIconGear } from '@scalar/icons'\n\nimport { useState } from '@/state/state'\nimport Auth from '@/views/Auth.vue'\n\ndefineProps<{\n modalState: ModalState\n}>()\n\nconst { proxyUrl, workspaceStore, config, eventBus } = useState()\n\nconst doc = computed(() => workspaceStore.workspace.activeDocument)\n\nconst environment = computed(() =>\n getActiveEnvironment(\n workspaceStore,\n workspaceStore.workspace.activeDocument ?? null,\n ),\n)\n\nconst selectedServer = computed(() => getSelectedServer(doc.value ?? null))\n\n/** Merge authentication config with the document security schemes */\nconst securitySchemes = computed(() =>\n mergeAuthConfig(\n doc.value?.components?.securitySchemes,\n config.value.authentication?.securitySchemes,\n ),\n)\n</script>\n\n<template>\n <ScalarModal :state=\"modalState\">\n <div class=\"settingsHeading\">\n <ScalarIconGear />\n <h1>Settings</h1>\n </div>\n <div\n v-if=\"doc\"\n class=\"serverSettings\">\n <div>\n <ServerSelector\n :eventBus\n :selectedServer\n :servers=\"doc?.servers ?? []\" />\n </div>\n <div>\n <Auth\n :document=\"doc\"\n :environment\n :eventBus\n :options=\"config\"\n :securitySchemes\n :selectedServer />\n </div>\n <div class=\"proxyUrlContainer\">\n <label for=\"proxyUrl\">Proxy URL</label>\n <ScalarTextInput\n id=\"proxyUrl\"\n v-model=\"proxyUrl\"\n placeholder=\"https://proxy.scalar.com\" />\n </div>\n </div>\n </ScalarModal>\n</template>\n\n<style>\n.scalar-modal-layout {\n z-index: 1000 !important;\n}\n</style>\n\n<style scoped>\n.settingsHeading {\n font-size: var(--scalar-font-size-1);\n margin-bottom: 15px;\n display: flex;\n gap: 5px;\n align-items: center;\n}\n\n.serverSettings {\n display: flex;\n flex-direction: column;\n gap: 15px;\n}\n\n.proxyUrlContainer {\n font-size: var(--scalar-font-size-3);\n display: flex;\n gap: 5px;\n flex-direction: column;\n}\n</style>\n"],"names":["_createBlock","_unref","modalState","_createElementVNode","_createVNode","_openBlock","_createElementBlock","Auth"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,UAAM,EAAE,UAAU,gBAAgB,QAAQ,SAAA,IAAa,SAAA;AAEvD,UAAM,MAAM,SAAS,MAAM,eAAe,UAAU,cAAc;AAElE,UAAM,cAAc;AAAA,MAAS,MAC3B;AAAA,QACE;AAAA,QACA,eAAe,UAAU,kBAAkB;AAAA,MAAA;AAAA,IAC7C;AAGF,UAAM,iBAAiB,SAAS,MAAM,kBAAkB,IAAI,SAAS,IAAI,CAAC;AAG1E,UAAM,kBAAkB;AAAA,MAAS,MAC/B;AAAA,QACE,IAAI,OAAO,YAAY;AAAA,QACvB,OAAO,MAAM,gBAAgB;AAAA,MAAA;AAAA,IAC/B;;0BAKAA,YA+BcC,MAAA,WAAA,GAAA,EA/BA,OAAOC,KAAAA,cAAU;AAAA,yBAC7B,MAGM;AAAA,UAHNC,mBAGM,OAHN,YAGM;AAAA,YAFJC,YAAkBH,MAAA,cAAA,CAAA;AAAA,YAClB,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAE,mBAAiB,YAAb,YAAQ,EAAA;AAAA,UAAA;UAGN,IAAA,SADRE,UAAA,GAAAC,mBAyBM,OAzBN,YAyBM;AAAA,YAtBJH,mBAKM,OAAA,MAAA;AAAA,cAJJC,YAGkCH,MAAA,cAAA,GAAA;AAAA,gBAF/B,UAAAA,MAAA,QAAA;AAAA,gBACA,gBAAA,eAAA;AAAA,gBACA,SAAS,IAAA,OAAK,WAAO,CAAA;AAAA,cAAA;;YAE1BE,mBAQM,OAAA,MAAA;AAAA,cAPJC,YAMoBG,aAAA;AAAA,gBALjB,UAAU,IAAA;AAAA,gBACV,aAAA,YAAA;AAAA,gBACA,UAAAN,MAAA,QAAA;AAAA,gBACA,SAASA,MAAA,MAAA;AAAA,gBACT,iBAAA,gBAAA;AAAA,gBACA,gBAAA,eAAA;AAAA,cAAA;;YAELE,mBAMM,OANN,YAMM;AAAA,cALJ,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAA,mBAAuC,SAAA,EAAhC,KAAI,WAAA,GAAW,aAAS,EAAA;AAAA,cAC/BC,YAG2CH,MAAA,eAAA,GAAA;AAAA,gBAFzC,IAAG;AAAA,4BACMA,MAAA,QAAA;AAAA,+FAAA,SAAQ,QAAA,SAAA;AAAA,gBACjB,aAAY;AAAA,cAAA;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
2
+ submit: () => any;
3
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
4
+ onSubmit?: (() => any) | undefined;
5
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
7
+ //# sourceMappingURL=Start.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Start.vue.d.ts","sourceRoot":"","sources":["../../src/views/Start.vue"],"names":[],"mappings":";;;;;AAiRA,wBAEG"}
@@ -0,0 +1,8 @@
1
+ import _sfc_main from "./Start.vue2.js";
2
+ /* empty css */
3
+ import _export_sfc from "../_virtual/_plugin-vue_export-helper.js";
4
+ const Start = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-824d38a8"]]);
5
+ export {
6
+ Start as default
7
+ };
8
+ //# sourceMappingURL=Start.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Start.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,57 @@
1
+ import { defineComponent, useTemplateRef, createElementBlock, openBlock, createVNode, createElementVNode, createTextVNode } from "vue";
2
+ import Logo from "../components/Logo.vue.js";
3
+ import Suggestion from "../components/Suggestion.vue.js";
4
+ import PromptForm from "./PromptForm.vue.js";
5
+ const _hoisted_1 = { class: "startContainer" };
6
+ const _hoisted_2 = { class: "suggestionsContainer" };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "Start",
9
+ emits: ["submit"],
10
+ setup(__props, { emit: __emit }) {
11
+ const emit = __emit;
12
+ const textFieldRef = useTemplateRef("promptRef");
13
+ return (_ctx, _cache) => {
14
+ return openBlock(), createElementBlock("div", _hoisted_1, [
15
+ createVNode(Logo, { class: "agentLogo" }),
16
+ _cache[4] || (_cache[4] = createElementVNode("h1", { class: "heading" }, "How can I help you today?", -1)),
17
+ createVNode(PromptForm, {
18
+ ref: "promptRef",
19
+ loading: false,
20
+ onSubmit: _cache[0] || (_cache[0] = ($event) => emit("submit"))
21
+ }, null, 512),
22
+ createElementVNode("div", _hoisted_2, [
23
+ createVNode(Suggestion, {
24
+ text: "Can you generate an example OpenAPI spec for me?",
25
+ onClick: _cache[1] || (_cache[1] = ($event) => textFieldRef.value?.focusPrompt())
26
+ }),
27
+ createVNode(Suggestion, {
28
+ text: "What are the most popular APIs this week?",
29
+ onClick: _cache[2] || (_cache[2] = ($event) => textFieldRef.value?.focusPrompt())
30
+ }),
31
+ createVNode(Suggestion, {
32
+ text: "Explain to me how Agent Scalar works",
33
+ onClick: _cache[3] || (_cache[3] = ($event) => textFieldRef.value?.focusPrompt())
34
+ })
35
+ ]),
36
+ _cache[5] || (_cache[5] = createElementVNode("p", { class: "disclaimerText" }, [
37
+ createTextVNode(" By messaging Agent Scalar, you agree to our "),
38
+ createElementVNode("a", {
39
+ class: "disclaimerLink",
40
+ href: "https://scalar.com/legal/terms-and-conditions",
41
+ target: "_blank"
42
+ }, "Terms"),
43
+ createTextVNode(" and "),
44
+ createElementVNode("a", {
45
+ class: "disclaimerLink",
46
+ href: "https://scalar.com/legal/privacy-policy",
47
+ target: "_blank"
48
+ }, "Privacy Policy")
49
+ ], -1))
50
+ ]);
51
+ };
52
+ }
53
+ });
54
+ export {
55
+ _sfc_main as default
56
+ };
57
+ //# sourceMappingURL=Start.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Start.vue2.js","sources":["../../src/views/Start.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useTemplateRef } from 'vue'\n\nimport Logo from '@/components/Logo.vue'\nimport Suggestion from '@/components/Suggestion.vue'\nimport PromptForm from '@/views/PromptForm.vue'\n\nconst emit = defineEmits<{\n (e: 'submit'): void\n}>()\n\nconst textFieldRef =\n useTemplateRef<InstanceType<typeof PromptForm>>('promptRef')\n</script>\n\n<template>\n <div class=\"startContainer\">\n <Logo class=\"agentLogo\" />\n <h1 class=\"heading\">How can I help you today?</h1>\n <PromptForm\n ref=\"promptRef\"\n :loading=\"false\"\n @submit=\"emit('submit')\" />\n <div class=\"suggestionsContainer\">\n <Suggestion\n text=\"Can you generate an example OpenAPI spec for me?\"\n @click=\"textFieldRef?.focusPrompt()\" />\n <Suggestion\n text=\"What are the most popular APIs this week?\"\n @click=\"textFieldRef?.focusPrompt()\" />\n <Suggestion\n text=\"Explain to me how Agent Scalar works\"\n @click=\"textFieldRef?.focusPrompt()\" />\n </div>\n <p class=\"disclaimerText\">\n By messaging Agent Scalar, you agree to our\n <a\n class=\"disclaimerLink\"\n href=\"https://scalar.com/legal/terms-and-conditions\"\n target=\"_blank\"\n >Terms</a\n >\n and\n <a\n class=\"disclaimerLink\"\n href=\"https://scalar.com/legal/privacy-policy\"\n target=\"_blank\"\n >Privacy Policy</a\n >\n </p>\n </div>\n</template>\n\n<style scoped>\n.agentLogo {\n margin-bottom: 15px;\n}\n\n.startContainer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 720px;\n}\n\n.heading {\n font-size: 1.5rem;\n font-weight: var(--scalar-font-bold);\n margin-bottom: 30px;\n}\n\n.suggestionsContainer {\n display: flex;\n justify-content: center;\n gap: 10px;\n flex-wrap: wrap;\n margin: 25px 0;\n}\n\n.disclaimerText {\n text-align: center;\n color: var(--scalar-color-3);\n font-size: var(--scalar-font-size-3);\n}\n\n.disclaimerLink {\n text-decoration: underline;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_createVNode","_createElementVNode"],"mappings":";;;;;;;;;;AAOA,UAAM,OAAO;AAIb,UAAM,eACJ,eAAgD,WAAW;;AAI3D,aAAAA,UAAA,GAAAC,mBAkCM,OAlCN,YAkCM;AAAA,QAjCJC,YAA0B,MAAA,EAApB,OAAM,aAAW;AAAA,QACvB,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAC,mBAAkD,MAAA,EAA9C,OAAM,UAAA,GAAU,6BAAyB,EAAA;AAAA,QAC7CD,YAG6B,YAAA;AAAA,UAF3B,KAAI;AAAA,UACH,SAAS;AAAA,UACT,gDAAQ,KAAI,QAAA;AAAA,QAAA;QACfC,mBAUM,OAVN,YAUM;AAAA,UATJD,YAEyC,YAAA;AAAA,YADvC,MAAK;AAAA,YACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAE,aAAA,OAAc,YAAA;AAAA,UAAW;UACnCA,YAEyC,YAAA;AAAA,YADvC,MAAK;AAAA,YACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAE,aAAA,OAAc,YAAA;AAAA,UAAW;UACnCA,YAEyC,YAAA;AAAA,YADvC,MAAK;AAAA,YACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAE,aAAA,OAAc,YAAA;AAAA,UAAW;;kCAErCC,mBAeI,KAAA,EAfD,OAAM,oBAAgB;AAAA,0BAAC,+CAExB;AAAA,UAAAA,mBAKC,KAAA;AAAA,YAJC,OAAM;AAAA,YACN,MAAK;AAAA,YACL,QAAO;AAAA,UAAA,GACN,OAAK;AAAA,0BACP,OAED;AAAA,UAAAA,mBAKC,KAAA;AAAA,YAJC,OAAM;AAAA,YACN,MAAK;AAAA,YACL,QAAO;AAAA,UAAA,GACN,gBAAc;AAAA,QAAA;;;;;"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@scalar/agent-chat",
3
+ "description": "Agent chat components",
4
+ "version": "0.1.2",
5
+ "author": "Copyright API Documentation Inc. 2026",
6
+ "license": "UNLICENSED",
7
+ "private": false,
8
+ "engines": {
9
+ "node": ">=24"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "type": "module",
15
+ "types": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "import": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "default": "./dist/index.js"
21
+ },
22
+ "./*.css": {
23
+ "import": "./dist/*.css",
24
+ "require": "./dist/*.css",
25
+ "default": "./dist/*.css"
26
+ },
27
+ "./css/*.css": {
28
+ "import": "./dist/css/*.css",
29
+ "require": "./dist/css/*.css",
30
+ "default": "./dist/css/*.css"
31
+ }
32
+ },
33
+ "dependencies": {
34
+ "@ai-sdk/vue": "3.0.33",
35
+ "@scalar/api-client": "2.18.0",
36
+ "@scalar/api-reference": "1.43.4",
37
+ "@scalar/components": "0.16.19",
38
+ "@scalar/helpers": "0.2.7",
39
+ "@scalar/icons": "0.5.2",
40
+ "@scalar/json-magic": "0.9.0",
41
+ "@scalar/openapi-parser": "0.23.13",
42
+ "@scalar/openapi-types": "0.5.3",
43
+ "@scalar/types": "0.5.7",
44
+ "@scalar/workspace-store": "0.24.6",
45
+ "ai": "6.0.33",
46
+ "markstream-vue": "0.0.6-beta.0",
47
+ "vue": "3.5.21",
48
+ "@scalar-org/css": "0.0.0",
49
+ "@scalar-org/entities": "0.0.3"
50
+ },
51
+ "devDependencies": {
52
+ "@scalar/build-tooling": "0.4.1",
53
+ "@vitejs/plugin-vue": "6.0.1",
54
+ "vite": "7.1.12"
55
+ },
56
+ "scripts": {
57
+ "build": "scalar-build-vite && cp package.json dist",
58
+ "build:watch": "vite build --watch",
59
+ "playground": "cd playground && vite",
60
+ "types:build": "scalar-types-build-vue",
61
+ "types:check": "scalar-types-check-vue"
62
+ }
63
+ }