@scalar/agent-chat 0.4.4 → 0.4.5

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 (34) 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 +9 -7
  4. package/dist/components/ApprovalSection.vue.d.ts.map +1 -1
  5. package/dist/components/ApprovalSection.vue.js +1 -1
  6. package/dist/components/ErrorMessage.vue.d.ts.map +1 -1
  7. package/dist/components/ErrorMessage.vue.js +2 -2
  8. package/dist/components/ErrorMessage.vue2.js +12 -9
  9. package/dist/components/FreeMessagesInfoSection.vue.d.ts +3 -0
  10. package/dist/components/FreeMessagesInfoSection.vue.d.ts.map +1 -0
  11. package/dist/components/FreeMessagesInfoSection.vue.js +7 -0
  12. package/dist/components/FreeMessagesInfoSection.vue2.js +49 -0
  13. package/dist/components/PaymentSection.vue.d.ts.map +1 -1
  14. package/dist/components/PaymentSection.vue.js +2 -2
  15. package/dist/components/PaymentSection.vue2.js +13 -13
  16. package/dist/components/UploadSection.vue.d.ts.map +1 -1
  17. package/dist/components/UploadSection.vue.js +2 -2
  18. package/dist/components/UploadSection.vue2.js +31 -37
  19. package/dist/hooks/use-upload-tmp-document.d.ts +1 -1
  20. package/dist/hooks/use-upload-tmp-document.js +21 -21
  21. package/dist/package.json +1 -1
  22. package/dist/state/state.d.ts +2 -1
  23. package/dist/state/state.d.ts.map +1 -1
  24. package/dist/state/state.js +94 -91
  25. package/dist/style.css +1 -1
  26. package/dist/views/Chat/Chat.vue.js +1 -1
  27. package/dist/views/PromptForm.vue.d.ts.map +1 -1
  28. package/dist/views/PromptForm.vue.js +1 -1
  29. package/dist/views/PromptForm.vue2.js +189 -187
  30. package/dist/views/Settings/DocSettings.vue.js +2 -2
  31. package/dist/views/Settings/DocSettings.vue2.js +7 -7
  32. package/dist/views/Start.vue.d.ts.map +1 -1
  33. package/dist/views/Start.vue.js +2 -2
  34. package/package.json +8 -8
@@ -1,227 +1,229 @@
1
- import { defineComponent as $, useTemplateRef as V, computed as f, watch as C, createElementBlock as a, openBlock as s, Fragment as h, createBlock as c, createCommentVNode as i, createElementVNode as n, unref as e, withDirectives as S, withModifiers as N, vModelText as H, createVNode as m, withCtx as F, renderList as w, createTextVNode as T, toDisplayString as K, vShow as j } from "vue";
2
- import { ScalarIconButton as _, ScalarLoading as q } from "@scalar/components";
3
- import { ScalarIconPlus as J, ScalarIconX as X, ScalarIconLockSimple as O, ScalarIconCheck as Z, ScalarIconArrowUp as G } from "@scalar/icons";
4
- import Q from "../components/ApprovalSection.vue.js";
5
- import W from "../components/ErrorMessage.vue.js";
6
- import Y from "../components/PaymentSection.vue.js";
7
- import ee from "../components/SearchPopover.vue.js";
8
- import te from "../components/UploadSection.vue.js";
9
- import { AgentErrorCodes as oe } from "../entities/error/constants.js";
10
- import { MAX_PROMPT_SIZE as le } from "../entities/prompt/constants.js";
11
- import { useChatApprovals as se } from "../hooks/use-chat-approvals.js";
12
- import { useChatError as ne } from "../hooks/use-chat-error.js";
13
- import { useChatPendingClientToolParts as re } from "../hooks/use-chat-pending-client-tool-parts.js";
14
- import { useUploadTmpDocument as ae } from "../hooks/use-upload-tmp-document.js";
15
- import { useState as ie } from "../state/state.js";
16
- const ue = { class: "actionContainer" }, ce = ["disabled"], pe = { class: "inputActionsContainer" }, de = { class: "inputActionsLeft" }, me = {
1
+ import { defineComponent as F, useTemplateRef as H, computed as g, watch as A, createElementBlock as i, openBlock as l, createBlock as u, createCommentVNode as r, createElementVNode as n, withDirectives as C, unref as e, withModifiers as N, vModelText as K, createVNode as v, withCtx as j, Fragment as S, renderList as w, createTextVNode as T, toDisplayString as q, vShow as J } from "vue";
2
+ import { ScalarIconButton as _, ScalarLoading as X } from "@scalar/components";
3
+ import { ScalarIconPlus as O, ScalarIconX as Z, ScalarIconLockSimple as G, ScalarIconCheck as Q, ScalarIconArrowUp as W } from "@scalar/icons";
4
+ import Y from "../components/ApprovalSection.vue.js";
5
+ import ee from "../components/ErrorMessage.vue.js";
6
+ import te from "../components/FreeMessagesInfoSection.vue.js";
7
+ import oe from "../components/PaymentSection.vue.js";
8
+ import se from "../components/SearchPopover.vue.js";
9
+ import le from "../components/UploadSection.vue.js";
10
+ import { AgentErrorCodes as P } from "../entities/error/constants.js";
11
+ import { MAX_PROMPT_SIZE as ne } from "../entities/prompt/constants.js";
12
+ import { useChatApprovals as re } from "../hooks/use-chat-approvals.js";
13
+ import { useChatError as ae } from "../hooks/use-chat-error.js";
14
+ import { useChatPendingClientToolParts as ie } from "../hooks/use-chat-pending-client-tool-parts.js";
15
+ import { useUploadTmpDocument as ue } from "../hooks/use-upload-tmp-document.js";
16
+ import { useState as ce } from "../state/state.js";
17
+ const pe = { class: "actionContainer" }, me = ["disabled"], de = { class: "inputActionsContainer" }, ge = { class: "inputActionsLeft" }, ve = {
17
18
  class: "addAPIButton",
18
19
  type: "button"
19
- }, ve = ["src"], ge = ["onClick"], fe = { class: "inputActionsRight" }, he = { class: "sendCheckboxContinue" }, ye = {
20
+ }, fe = ["src"], he = ["onClick"], ye = { class: "inputActionsRight" }, be = { class: "sendCheckboxContinue" }, ke = {
20
21
  key: 0,
21
22
  class: "relative flex items-center gap-1.5"
22
- }, be = {
23
+ }, Ae = {
23
24
  class: "termsAgree",
24
25
  for: "agentTermsAgree"
25
- }, ke = { class: "addMoreContext" }, Ae = { class: "ml-auto flex items-center gap-1" }, Ce = ["onClick"], Se = ["alt", "src"], Ne = /* @__PURE__ */ $({
26
+ }, Ce = { class: "addMoreContext" }, Se = { class: "ml-auto flex items-center gap-1" }, we = ["onClick"], Te = ["alt", "src"], Ke = /* @__PURE__ */ F({
26
27
  __name: "PromptForm",
27
28
  emits: ["submit"],
28
- setup(we, { expose: P, emit: x }) {
29
- const D = x;
30
- P({ focusPrompt: R });
31
- const u = V("agentPrompt"), t = ie(), I = f(() => t.prompt.value.trim().length > 0), E = f(
32
- () => t.prompt.value.trim().length > le
29
+ setup(_e, { expose: x, emit: I }) {
30
+ const D = I;
31
+ x({ focusPrompt: U });
32
+ const c = H("agentPrompt"), t = ce(), E = g(() => t.prompt.value.trim().length > 0), M = g(
33
+ () => t.prompt.value.trim().length > ne
34
+ ), L = g(
35
+ () => t.chat.messages.length > 1 && !t.getAgentKey?.() && d?.value?.code !== P.LIMIT_REACHED
33
36
  );
34
- C(t.prompt, () => {
35
- if (u?.value) {
37
+ A(t.prompt, () => {
38
+ if (c?.value) {
36
39
  if (!t.prompt.value.length) {
37
- u.value.style.height = "0px";
40
+ c.value.style.height = "0px";
38
41
  return;
39
42
  }
40
- u.value.style.height = "auto", u.value.style.height = u.value.scrollHeight + "px";
43
+ c.value.style.height = "auto", c.value.style.height = c.value.scrollHeight + "px";
41
44
  }
42
45
  });
43
- function L(r) {
44
- t.loading.value || r.key === "Enter" && !r.shiftKey && (r.preventDefault(), k(), window.scrollTo(0, document.body.scrollHeight));
46
+ function R(a) {
47
+ t.loading.value || a.key === "Enter" && !a.shiftKey && (a.preventDefault(), b(), window.scrollTo(0, document.body.scrollHeight));
45
48
  }
46
- function R() {
47
- u.value?.focus();
49
+ function U() {
50
+ c.value?.focus();
48
51
  }
49
- C(
52
+ A(
50
53
  () => t.chat.status,
51
- (r) => {
52
- (r === "ready" || r === "error") && u.value?.focus();
54
+ (a) => {
55
+ (a === "ready" || a === "error") && c.value?.focus();
53
56
  }
54
57
  );
55
- const { respondToToolCalls: p, approvalRequestedParts: y } = se(), { pendingClientToolParts: M } = re(), d = ae();
56
- function U() {
57
- t.terms.accept(), t.mode === "preview" && t.getActiveDocumentJson && d.uploadTempDocument(t.getActiveDocumentJson());
58
+ const { respondToToolCalls: p, approvalRequestedParts: h } = re(), { pendingClientToolParts: z } = ie(), m = ue();
59
+ function B() {
60
+ t.terms.accept(), t.mode === "preview" && t.getActiveDocumentJson && m.uploadTempDocument(t.getActiveDocumentJson(), !0);
58
61
  }
59
- const b = f(() => {
60
- const r = E.value, l = !I.value, o = y.value.length > 0, g = M.value.length > 0, A = t.mode === "preview", z = A && !t.terms.accepted.value, B = A && !!d.uploadState.value;
61
- return r || l || o || g || z || B;
62
+ const y = g(() => {
63
+ const a = M.value, s = !E.value, o = h.value.length > 0, f = z.value.length > 0, k = t.mode === "preview", $ = k && !t.terms.accepted.value, V = k && !!m.uploadState.value;
64
+ return a || s || o || f || $ || V;
62
65
  });
63
- function k() {
64
- b.value || D("submit");
66
+ function b() {
67
+ y.value || D("submit");
65
68
  }
66
- const v = ne();
67
- return (r, l) => (s(), a(h, null, [
68
- e(d).uploadState.value ? (s(), c(te, {
69
+ const d = ae();
70
+ return (a, s) => (l(), i("div", pe, [
71
+ e(m).uploadState.value ? (l(), u(le, {
69
72
  key: 0,
70
- uploadState: e(d).uploadState.value
71
- }, null, 8, ["uploadState"])) : i("", !0),
72
- e(v) ? (s(), c(W, {
73
+ uploadState: e(m).uploadState.value
74
+ }, null, 8, ["uploadState"])) : r("", !0),
75
+ e(d) ? (l(), u(ee, {
73
76
  key: 1,
74
- error: e(v)
75
- }, null, 8, ["error"])) : i("", !0),
76
- e(y).length ? (s(), c(Q, {
77
+ error: e(d)
78
+ }, null, 8, ["error"])) : r("", !0),
79
+ e(h).length ? (l(), u(Y, {
77
80
  key: 2,
78
- onApprove: l[0] || (l[0] = (o) => e(p)(!0)),
79
- onReject: l[1] || (l[1] = (o) => e(p)(!1))
80
- })) : i("", !0),
81
- e(v)?.code === e(oe).LIMIT_REACHED ? (s(), c(Y, {
81
+ onApprove: s[0] || (s[0] = (o) => e(p)(!0)),
82
+ onReject: s[1] || (s[1] = (o) => e(p)(!1))
83
+ })) : r("", !0),
84
+ e(d)?.code === e(P).LIMIT_REACHED ? (l(), u(oe, {
82
85
  key: 3,
83
- onApprove: l[2] || (l[2] = (o) => e(p)(!0)),
84
- onReject: l[3] || (l[3] = (o) => e(p)(!1))
85
- })) : i("", !0),
86
- n("div", ue, [
87
- n("form", {
88
- class: "promptForm",
89
- onSubmit: N(k, ["prevent"])
90
- }, [
91
- l[7] || (l[7] = n("label", {
92
- class: "agentLabel",
93
- for: "agentTextarea"
94
- }, " Type a Request To get Started ", -1)),
95
- S(n("textarea", {
96
- id: "agentTextarea",
97
- ref: "agentPrompt",
98
- "onUpdate:modelValue": l[4] || (l[4] = (o) => e(t).prompt.value = o),
99
- class: "prompt custom-scroll",
100
- disabled: e(t).loading.value,
101
- name: "prompt",
102
- placeholder: "Ask me anything...",
103
- onKeydown: L
104
- }, null, 40, ce), [
105
- [H, e(t).prompt.value]
106
- ]),
107
- n("div", pe, [
108
- n("div", de, [
109
- m(ee, null, {
110
- default: F(() => [
111
- n("button", me, [
112
- m(e(J), {
113
- class: "size-4",
114
- weight: "bold"
115
- })
116
- ])
117
- ]),
118
- _: 1
119
- }),
120
- (s(!0), a(h, null, w(e(t).registryDocuments.value, (o) => (s(), a("div", {
121
- key: o.id,
122
- class: "apiPill"
123
- }, [
124
- o.logoUrl ? (s(), a("img", {
125
- key: 0,
126
- class: "apiPillLogo",
127
- src: o.logoUrl
128
- }, null, 8, ve)) : i("", !0),
129
- T(" " + K(o.title) + " ", 1),
130
- o.removable ? (s(), a("button", {
131
- key: 1,
132
- class: "apiPillRemove",
133
- type: "button",
134
- onClick: (g) => e(t).removeDocument(o)
135
- }, [
136
- m(e(X), {
86
+ onApprove: s[2] || (s[2] = (o) => e(p)(!0)),
87
+ onReject: s[3] || (s[3] = (o) => e(p)(!1))
88
+ })) : r("", !0),
89
+ L.value ? (l(), u(te, { key: 4 })) : r("", !0),
90
+ n("form", {
91
+ class: "promptForm",
92
+ onSubmit: N(b, ["prevent"])
93
+ }, [
94
+ s[7] || (s[7] = n("label", {
95
+ class: "agentLabel",
96
+ for: "agentTextarea"
97
+ }, " Type a Request To get Started ", -1)),
98
+ C(n("textarea", {
99
+ id: "agentTextarea",
100
+ ref: "agentPrompt",
101
+ "onUpdate:modelValue": s[4] || (s[4] = (o) => e(t).prompt.value = o),
102
+ class: "prompt custom-scroll",
103
+ disabled: e(t).loading.value,
104
+ name: "prompt",
105
+ placeholder: "Ask me anything...",
106
+ onKeydown: R
107
+ }, null, 40, me), [
108
+ [K, e(t).prompt.value]
109
+ ]),
110
+ n("div", de, [
111
+ n("div", ge, [
112
+ v(se, null, {
113
+ default: j(() => [
114
+ n("button", ve, [
115
+ v(e(O), {
137
116
  class: "size-4",
138
117
  weight: "bold"
139
118
  })
140
- ], 8, ge)) : i("", !0)
141
- ]))), 128))
142
- ]),
143
- n("div", fe, [
144
- e(t).loading.value ? i("", !0) : (s(), c(e(_), {
145
- key: 0,
146
- class: "settingsButton h-7 w-7 p-1.5",
147
- icon: e(O),
148
- label: "Scalar",
149
- size: "md",
150
- weight: "bold",
151
- onClick: l[5] || (l[5] = (o) => e(t).settingsModal.show())
152
- }, null, 8, ["icon"])),
153
- n("div", he, [
154
- !e(t).terms.accepted.value && e(t).mode === "preview" ? (s(), a("div", ye, [
155
- n("input", {
156
- id: "agentTermsAgree",
157
- class: "sr-only",
158
- type: "checkbox",
159
- onChange: U
160
- }, null, 32),
161
- n("label", be, [
162
- m(e(Z), {
163
- class: "termsAgreeIcon",
164
- weight: "bold"
165
- }),
166
- l[6] || (l[6] = T(" Agree to Terms & Conditions ", -1))
167
- ])
168
- ])) : i("", !0),
169
- e(t).loading.value ? (s(), c(e(q), {
170
- key: 2,
171
- class: "loader h-7 w-7",
172
- loader: {
173
- isLoading: e(t).loading.value,
174
- isValid: !1,
175
- clear: async () => {
176
- },
177
- invalidate: async () => {
178
- },
179
- isInvalid: !1,
180
- isActive: !1,
181
- validate: async () => {
182
- },
183
- start: () => {
184
- }
185
- },
186
- size: "2xl"
187
- }, null, 8, ["loader"])) : (s(), c(e(_), {
188
- key: 1,
189
- class: "sendButton h-7 w-7 p-1.5",
190
- disabled: b.value,
191
- icon: e(G),
192
- label: "Scalar",
193
- size: "md",
194
- type: "submit",
195
- weight: "bold"
196
- }, null, 8, ["disabled", "icon"]))
197
- ])
198
- ])
199
- ])
200
- ], 32),
201
- S(n("div", ke, [
202
- l[8] || (l[8] = n("span", null, "Add context from dozens of API's", -1)),
203
- n("div", Ae, [
204
- (s(!0), a(h, null, w(e(t).curatedDocuments.value, (o) => (s(), a("button", {
119
+ ])
120
+ ]),
121
+ _: 1
122
+ }),
123
+ (l(!0), i(S, null, w(e(t).registryDocuments.value, (o) => (l(), i("div", {
205
124
  key: o.id,
206
- class: "addAPIContext",
207
- type: "button",
208
- onClick: (g) => e(t).addDocument(o)
125
+ class: "apiPill"
209
126
  }, [
210
- o.logoUrl ? (s(), a("img", {
127
+ o.logoUrl ? (l(), i("img", {
211
128
  key: 0,
212
- alt: o.title,
213
- class: "size-4",
129
+ class: "apiPillLogo",
214
130
  src: o.logoUrl
215
- }, null, 8, Se)) : i("", !0)
216
- ], 8, Ce))), 128))
131
+ }, null, 8, fe)) : r("", !0),
132
+ T(" " + q(o.title) + " ", 1),
133
+ o.removable ? (l(), i("button", {
134
+ key: 1,
135
+ class: "apiPillRemove",
136
+ type: "button",
137
+ onClick: (f) => e(t).removeDocument(o)
138
+ }, [
139
+ v(e(Z), {
140
+ class: "size-4",
141
+ weight: "bold"
142
+ })
143
+ ], 8, he)) : r("", !0)
144
+ ]))), 128))
145
+ ]),
146
+ n("div", ye, [
147
+ e(t).loading.value ? r("", !0) : (l(), u(e(_), {
148
+ key: 0,
149
+ class: "settingsButton h-7 w-7 p-1.5",
150
+ icon: e(G),
151
+ label: "Scalar",
152
+ size: "md",
153
+ weight: "bold",
154
+ onClick: s[5] || (s[5] = (o) => e(t).settingsModal.show())
155
+ }, null, 8, ["icon"])),
156
+ n("div", be, [
157
+ !e(t).terms.accepted.value && e(t).mode === "preview" ? (l(), i("div", ke, [
158
+ n("input", {
159
+ id: "agentTermsAgree",
160
+ class: "sr-only",
161
+ type: "checkbox",
162
+ onChange: B
163
+ }, null, 32),
164
+ n("label", Ae, [
165
+ v(e(Q), {
166
+ class: "termsAgreeIcon",
167
+ weight: "bold"
168
+ }),
169
+ s[6] || (s[6] = T(" Agree to Terms & Conditions ", -1))
170
+ ])
171
+ ])) : r("", !0),
172
+ e(t).loading.value ? (l(), u(e(X), {
173
+ key: 2,
174
+ class: "loader h-7 w-7",
175
+ loader: {
176
+ isLoading: e(t).loading.value,
177
+ isValid: !1,
178
+ clear: async () => {
179
+ },
180
+ invalidate: async () => {
181
+ },
182
+ isInvalid: !1,
183
+ isActive: !1,
184
+ validate: async () => {
185
+ },
186
+ start: () => {
187
+ }
188
+ },
189
+ size: "2xl"
190
+ }, null, 8, ["loader"])) : (l(), u(e(_), {
191
+ key: 1,
192
+ class: "sendButton h-7 w-7 p-1.5",
193
+ disabled: y.value,
194
+ icon: e(W),
195
+ label: "Scalar",
196
+ size: "md",
197
+ type: "submit",
198
+ weight: "bold"
199
+ }, null, 8, ["disabled", "icon"]))
200
+ ])
217
201
  ])
218
- ], 512), [
219
- [j, e(t).chat.messages.length <= 1]
220
202
  ])
203
+ ], 32),
204
+ C(n("div", Ce, [
205
+ s[8] || (s[8] = n("span", null, "Add context from dozens of API's", -1)),
206
+ n("div", Se, [
207
+ (l(!0), i(S, null, w(e(t).curatedDocuments.value, (o) => (l(), i("button", {
208
+ key: o.id,
209
+ class: "addAPIContext",
210
+ type: "button",
211
+ onClick: (f) => e(t).addDocument(o)
212
+ }, [
213
+ o.logoUrl ? (l(), i("img", {
214
+ key: 0,
215
+ alt: o.title,
216
+ class: "size-4",
217
+ src: o.logoUrl
218
+ }, null, 8, Te)) : r("", !0)
219
+ ], 8, we))), 128))
220
+ ])
221
+ ], 512), [
222
+ [J, e(t).chat.messages.length <= 1]
221
223
  ])
222
- ], 64));
224
+ ]));
223
225
  }
224
226
  });
225
227
  export {
226
- Ne as default
228
+ Ke as default
227
229
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./DocSettings.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../../_virtual/_plugin-vue_export-helper.js";
4
- const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-0cf7195a"]]);
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-e2db54a7"]]);
5
5
  export {
6
- f as default
6
+ m as default
7
7
  };
@@ -22,13 +22,6 @@ const p = { class: "docSettings" }, C = /* @__PURE__ */ d({
22
22
  () => e.document.components?.securitySchemes ?? {}
23
23
  );
24
24
  return (o, x) => (S(), a("div", p, [
25
- s("div", null, [
26
- m(h, {
27
- eventBus: n(r),
28
- selectedServer: c.value,
29
- servers: e.document.servers ?? []
30
- }, null, 8, ["eventBus", "selectedServer", "servers"])
31
- ]),
32
25
  s("div", null, [
33
26
  m(k, {
34
27
  document: e.document,
@@ -39,6 +32,13 @@ const p = { class: "docSettings" }, C = /* @__PURE__ */ d({
39
32
  securitySchemes: l.value,
40
33
  selectedServer: c.value
41
34
  }, null, 8, ["document", "environment", "eventBus", "name", "options", "securitySchemes", "selectedServer"])
35
+ ]),
36
+ s("div", null, [
37
+ m(h, {
38
+ eventBus: n(r),
39
+ selectedServer: c.value,
40
+ servers: e.document.servers ?? []
41
+ }, null, 8, ["eventBus", "selectedServer", "servers"])
42
42
  ])
43
43
  ]));
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Start.vue.d.ts","sourceRoot":"","sources":["../../src/views/Start.vue"],"names":[],"mappings":";;;;;AAqMA,wBAMG"}
1
+ {"version":3,"file":"Start.vue.d.ts","sourceRoot":"","sources":["../../src/views/Start.vue"],"names":[],"mappings":";;;;;AAsMA,wBAMG"}
@@ -1,7 +1,7 @@
1
1
  import t from "./Start.vue2.js";
2
2
  /* empty css */
3
3
  import o from "../_virtual/_plugin-vue_export-helper.js";
4
- const m = /* @__PURE__ */ o(t, [["__scopeId", "data-v-eafdfb78"]]);
4
+ const p = /* @__PURE__ */ o(t, [["__scopeId", "data-v-2030a05b"]]);
5
5
  export {
6
- m as default
6
+ p as default
7
7
  };
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.4.4",
13
+ "version": "0.4.5",
14
14
  "engines": {
15
15
  "node": ">=20"
16
16
  },
@@ -49,15 +49,15 @@
49
49
  "vue": "^3.5.26",
50
50
  "whatwg-mimetype": "4.0.0",
51
51
  "zod": "^4.3.5",
52
- "@scalar/components": "0.16.32",
53
- "@scalar/api-client": "2.21.1",
54
- "@scalar/json-magic": "0.9.4",
55
- "@scalar/helpers": "0.2.9",
52
+ "@scalar/api-client": "2.22.2",
53
+ "@scalar/components": "0.17.1",
54
+ "@scalar/helpers": "0.2.10",
56
55
  "@scalar/icons": "0.5.2",
57
56
  "@scalar/openapi-types": "0.5.3",
58
- "@scalar/themes": "0.13.26",
59
- "@scalar/workspace-store": "0.27.1",
60
- "@scalar/types": "0.5.10"
57
+ "@scalar/json-magic": "0.9.5",
58
+ "@scalar/workspace-store": "0.28.0",
59
+ "@scalar/types": "0.6.1",
60
+ "@scalar/themes": "0.14.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@modelcontextprotocol/sdk": "1.25.2",