@kvman/kvcoder 0.1.11 → 0.1.12

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 (235) hide show
  1. package/dist/api.d.ts +45 -0
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/calls/call-name.d.ts.map +1 -1
  4. package/dist/calls/call-name.js +10 -1
  5. package/dist/calls/call-name.js.map +1 -1
  6. package/dist/calls/run-tool.d.ts.map +1 -1
  7. package/dist/calls/run-tool.js +2 -0
  8. package/dist/calls/run-tool.js.map +1 -1
  9. package/dist/connector-call.d.ts +2 -2
  10. package/dist/connector-call.d.ts.map +1 -1
  11. package/dist/connector-call.js +5 -3
  12. package/dist/connector-call.js.map +1 -1
  13. package/dist/connectors/artifact.d.ts +1 -0
  14. package/dist/connectors/artifact.d.ts.map +1 -1
  15. package/dist/connectors/background.d.ts.map +1 -1
  16. package/dist/connectors/background.js +8 -4
  17. package/dist/connectors/background.js.map +1 -1
  18. package/dist/connectors/builtin-connectors.d.ts +38 -0
  19. package/dist/connectors/builtin-connectors.d.ts.map +1 -1
  20. package/dist/connectors/builtin-connectors.js +4 -1
  21. package/dist/connectors/builtin-connectors.js.map +1 -1
  22. package/dist/connectors/delegate.d.ts.map +1 -1
  23. package/dist/connectors/delegate.js +3 -0
  24. package/dist/connectors/delegate.js.map +1 -1
  25. package/dist/connectors/execution-map.d.ts +1 -1
  26. package/dist/connectors/execution-map.d.ts.map +1 -1
  27. package/dist/connectors/execution-map.js +1 -1
  28. package/dist/connectors/execution-map.js.map +1 -1
  29. package/dist/connectors/fs.d.ts +29 -1
  30. package/dist/connectors/fs.d.ts.map +1 -1
  31. package/dist/connectors/fs.js +46 -9
  32. package/dist/connectors/fs.js.map +1 -1
  33. package/dist/connectors/payload-fields.d.ts +3 -0
  34. package/dist/connectors/payload-fields.d.ts.map +1 -1
  35. package/dist/connectors/payload-fields.js +8 -2
  36. package/dist/connectors/payload-fields.js.map +1 -1
  37. package/dist/connectors/web.d.ts +16 -0
  38. package/dist/connectors/web.d.ts.map +1 -0
  39. package/dist/connectors/web.js +22 -0
  40. package/dist/connectors/web.js.map +1 -0
  41. package/dist/delegate/permission.d.ts +6 -0
  42. package/dist/delegate/permission.d.ts.map +1 -1
  43. package/dist/files/change-diff.d.ts +17 -0
  44. package/dist/files/change-diff.d.ts.map +1 -0
  45. package/dist/files/change-diff.js +59 -0
  46. package/dist/files/change-diff.js.map +1 -0
  47. package/dist/files/edit-places.d.ts +11 -0
  48. package/dist/files/edit-places.d.ts.map +1 -0
  49. package/dist/files/edit-places.js +105 -0
  50. package/dist/files/edit-places.js.map +1 -0
  51. package/dist/files/edit-text.d.ts +1 -0
  52. package/dist/files/edit-text.d.ts.map +1 -1
  53. package/dist/files/edit-text.js +22 -10
  54. package/dist/files/edit-text.js.map +1 -1
  55. package/dist/files/file-change.d.ts.map +1 -1
  56. package/dist/files/file-change.js +12 -0
  57. package/dist/files/file-change.js.map +1 -1
  58. package/dist/files/find-paths.d.ts +9 -0
  59. package/dist/files/find-paths.d.ts.map +1 -0
  60. package/dist/files/find-paths.js +38 -0
  61. package/dist/files/find-paths.js.map +1 -0
  62. package/dist/files/read-file.d.ts +3 -1
  63. package/dist/files/read-file.d.ts.map +1 -1
  64. package/dist/files/read-file.js +7 -6
  65. package/dist/files/read-file.js.map +1 -1
  66. package/dist/files/read-files.d.ts +11 -0
  67. package/dist/files/read-files.d.ts.map +1 -0
  68. package/dist/files/read-files.js +35 -0
  69. package/dist/files/read-files.js.map +1 -0
  70. package/dist/files/read-text.d.ts +63 -0
  71. package/dist/files/read-text.d.ts.map +1 -0
  72. package/dist/files/read-text.js +67 -0
  73. package/dist/files/read-text.js.map +1 -0
  74. package/dist/files/register-changes.d.ts +3 -0
  75. package/dist/files/register-changes.d.ts.map +1 -0
  76. package/dist/files/register-changes.js +78 -0
  77. package/dist/files/register-changes.js.map +1 -0
  78. package/dist/files/search-text.d.ts +10 -1
  79. package/dist/files/search-text.d.ts.map +1 -1
  80. package/dist/files/search-text.js +32 -57
  81. package/dist/files/search-text.js.map +1 -1
  82. package/dist/files/workspace-files.d.ts +5 -0
  83. package/dist/files/workspace-files.d.ts.map +1 -0
  84. package/dist/files/workspace-files.js +66 -0
  85. package/dist/files/workspace-files.js.map +1 -0
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +4 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/prompt/build-prompt.d.ts +4 -0
  90. package/dist/prompt/build-prompt.d.ts.map +1 -1
  91. package/dist/prompt/build-prompt.js +6 -2
  92. package/dist/prompt/build-prompt.js.map +1 -1
  93. package/dist/prompt/person-preferences.d.ts +5 -0
  94. package/dist/prompt/person-preferences.d.ts.map +1 -0
  95. package/dist/prompt/person-preferences.js +14 -0
  96. package/dist/prompt/person-preferences.js.map +1 -0
  97. package/dist/prompt/session-grants.d.ts +4 -0
  98. package/dist/prompt/session-grants.d.ts.map +1 -1
  99. package/dist/prompt/session-grants.js +3 -2
  100. package/dist/prompt/session-grants.js.map +1 -1
  101. package/dist/prompt/session-prompt.d.ts.map +1 -1
  102. package/dist/prompt/session-prompt.js +15 -6
  103. package/dist/prompt/session-prompt.js.map +1 -1
  104. package/dist/prompt/working-method.d.ts +2 -2
  105. package/dist/prompt/working-method.d.ts.map +1 -1
  106. package/dist/prompt/working-method.js +49 -43
  107. package/dist/prompt/working-method.js.map +1 -1
  108. package/dist/register-settings.d.ts +23 -0
  109. package/dist/register-settings.d.ts.map +1 -1
  110. package/dist/register-settings.js +13 -0
  111. package/dist/register-settings.js.map +1 -1
  112. package/dist/schemas/approval-rule.d.ts +9 -0
  113. package/dist/schemas/approval-rule.d.ts.map +1 -0
  114. package/dist/schemas/approval-rule.js +7 -0
  115. package/dist/schemas/approval-rule.js.map +1 -0
  116. package/dist/schemas/check.d.ts +7 -0
  117. package/dist/schemas/check.d.ts.map +1 -0
  118. package/dist/schemas/check.js +9 -0
  119. package/dist/schemas/check.js.map +1 -0
  120. package/dist/schemas/records.d.ts +10 -0
  121. package/dist/schemas/records.d.ts.map +1 -1
  122. package/dist/schemas/records.js +8 -0
  123. package/dist/schemas/records.js.map +1 -1
  124. package/dist/sessions/new-session.d.ts.map +1 -1
  125. package/dist/sessions/new-session.js +4 -1
  126. package/dist/sessions/new-session.js.map +1 -1
  127. package/dist/sessions/register-fork-export.d.ts.map +1 -1
  128. package/dist/sessions/register-fork-export.js +3 -2
  129. package/dist/sessions/register-fork-export.js.map +1 -1
  130. package/dist/sessions/register-sessions.d.ts.map +1 -1
  131. package/dist/sessions/register-sessions.js +17 -9
  132. package/dist/sessions/register-sessions.js.map +1 -1
  133. package/dist/sessions/session-view.d.ts +8 -1
  134. package/dist/sessions/session-view.d.ts.map +1 -1
  135. package/dist/sessions/session-view.js +6 -1
  136. package/dist/sessions/session-view.js.map +1 -1
  137. package/dist/sessions/waiting-on.d.ts +7 -0
  138. package/dist/sessions/waiting-on.d.ts.map +1 -0
  139. package/dist/sessions/waiting-on.js +20 -0
  140. package/dist/sessions/waiting-on.js.map +1 -0
  141. package/dist/store/collections.d.ts +18 -0
  142. package/dist/store/collections.d.ts.map +1 -1
  143. package/dist/store/collections.js +3 -1
  144. package/dist/store/collections.js.map +1 -1
  145. package/dist/turns/answer-extras.d.ts +21 -0
  146. package/dist/turns/answer-extras.d.ts.map +1 -0
  147. package/dist/turns/answer-extras.js +43 -0
  148. package/dist/turns/answer-extras.js.map +1 -0
  149. package/dist/turns/answer-fingerprint.d.ts +6 -2
  150. package/dist/turns/answer-fingerprint.d.ts.map +1 -1
  151. package/dist/turns/answer-fingerprint.js +9 -3
  152. package/dist/turns/answer-fingerprint.js.map +1 -1
  153. package/dist/turns/apply-answer.d.ts +2 -1
  154. package/dist/turns/apply-answer.d.ts.map +1 -1
  155. package/dist/turns/apply-answer.js +10 -4
  156. package/dist/turns/apply-answer.js.map +1 -1
  157. package/dist/turns/approval-rules.d.ts +13 -0
  158. package/dist/turns/approval-rules.d.ts.map +1 -0
  159. package/dist/turns/approval-rules.js +65 -0
  160. package/dist/turns/approval-rules.js.map +1 -0
  161. package/dist/turns/check-after-edits.d.ts +8 -0
  162. package/dist/turns/check-after-edits.d.ts.map +1 -0
  163. package/dist/turns/check-after-edits.js +23 -0
  164. package/dist/turns/check-after-edits.js.map +1 -0
  165. package/dist/turns/clear-results.d.ts +15 -0
  166. package/dist/turns/clear-results.d.ts.map +1 -0
  167. package/dist/turns/clear-results.js +58 -0
  168. package/dist/turns/clear-results.js.map +1 -0
  169. package/dist/turns/cleared-results.d.ts +17 -0
  170. package/dist/turns/cleared-results.d.ts.map +1 -0
  171. package/dist/turns/cleared-results.js +46 -0
  172. package/dist/turns/cleared-results.js.map +1 -0
  173. package/dist/turns/compaction.js +6 -6
  174. package/dist/turns/compaction.js.map +1 -1
  175. package/dist/turns/file-results.d.ts +15 -0
  176. package/dist/turns/file-results.d.ts.map +1 -0
  177. package/dist/turns/file-results.js +39 -0
  178. package/dist/turns/file-results.js.map +1 -0
  179. package/dist/turns/lost-reply.js +2 -2
  180. package/dist/turns/lost-reply.js.map +1 -1
  181. package/dist/turns/model-context.d.ts +2 -0
  182. package/dist/turns/model-context.d.ts.map +1 -1
  183. package/dist/turns/model-context.js +28 -5
  184. package/dist/turns/model-context.js.map +1 -1
  185. package/dist/turns/read-again.d.ts +11 -5
  186. package/dist/turns/read-again.d.ts.map +1 -1
  187. package/dist/turns/read-again.js +39 -10
  188. package/dist/turns/read-again.js.map +1 -1
  189. package/dist/turns/register-turns.d.ts.map +1 -1
  190. package/dist/turns/register-turns.js +12 -4
  191. package/dist/turns/register-turns.js.map +1 -1
  192. package/dist/turns/run-calls.d.ts +4 -0
  193. package/dist/turns/run-calls.d.ts.map +1 -1
  194. package/dist/turns/run-calls.js +35 -5
  195. package/dist/turns/run-calls.js.map +1 -1
  196. package/dist/turns/run-command.d.ts.map +1 -1
  197. package/dist/turns/run-command.js +4 -4
  198. package/dist/turns/run-command.js.map +1 -1
  199. package/dist/turns/step.d.ts.map +1 -1
  200. package/dist/turns/step.js +43 -8
  201. package/dist/turns/step.js.map +1 -1
  202. package/dist/ui/register-ui.js +2 -2
  203. package/dist/ui/register-ui.js.map +1 -1
  204. package/dist/web/components/approval.css +1 -1
  205. package/dist/web/components/approval.js +122 -89
  206. package/dist/web/components/call.css +1 -1
  207. package/dist/web/components/call.js +400 -302
  208. package/dist/web/components/connectors.css +1 -1
  209. package/dist/web/components/connectors.js +440 -427
  210. package/dist/web/components/conversation.css +1 -1
  211. package/dist/web/components/conversation.js +2509 -1500
  212. package/dist/web/components/mcp-sign-in.css +1 -1
  213. package/dist/web/components/model.css +1 -1
  214. package/dist/web/components/model.js +138 -126
  215. package/dist/web/components/preferences.css +2 -0
  216. package/dist/web/components/preferences.js +151 -0
  217. package/dist/web/components/question.css +1 -1
  218. package/dist/web/components/sessions.css +1 -1
  219. package/dist/web/components/sessions.js +44 -21
  220. package/dist/web-fetch/fetch-page.d.ts +28 -0
  221. package/dist/web-fetch/fetch-page.d.ts.map +1 -0
  222. package/dist/web-fetch/fetch-page.js +108 -0
  223. package/dist/web-fetch/fetch-page.js.map +1 -0
  224. package/dist/web-fetch/private-address.d.ts +3 -0
  225. package/dist/web-fetch/private-address.d.ts.map +1 -0
  226. package/dist/web-fetch/private-address.js +69 -0
  227. package/dist/web-fetch/private-address.js.map +1 -0
  228. package/dist/web-fetch/web-hosts.d.ts +7 -0
  229. package/dist/web-fetch/web-hosts.d.ts.map +1 -0
  230. package/dist/web-fetch/web-hosts.js +19 -0
  231. package/dist/web-fetch/web-hosts.js.map +1 -0
  232. package/docs/connectors.md +2 -2
  233. package/locales/ar.json +66 -1
  234. package/locales/en.json +66 -1
  235. package/package.json +17 -3
@@ -0,0 +1,151 @@
1
+ import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, defineComponent as o, inject as s, onMounted as c, openBlock as l, ref as u, renderSlot as d, shallowRef as f, toDisplayString as p, unref as m, vModelText as h, watch as g, withCtx as _, withDirectives as v } from "vue";
2
+ //#region web/src/kvman.ts
3
+ function y() {
4
+ let e = s("kvman");
5
+ if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
6
+ return e;
7
+ }
8
+ function b(e) {
9
+ return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
10
+ }
11
+ function x(e) {
12
+ let t = e.indexOf("/");
13
+ return t < 0 ? `kernel.errors.${e}` : `${e.slice(0, t)}.errors.${e.slice(t + 1)}`;
14
+ }
15
+ function S(e) {
16
+ if (!(e instanceof Error) || !("problem" in e)) return;
17
+ let t = e.problem;
18
+ if (typeof t == "object" && t && "code" in t && typeof t.code == "string") return {
19
+ code: t.code,
20
+ params: C("params" in t ? t.params : void 0)
21
+ };
22
+ }
23
+ function C(e) {
24
+ return Object.fromEntries(Object.entries(b(e)).map(([e, t]) => [e, typeof t == "string" ? t : JSON.stringify(t)]));
25
+ }
26
+ function w(e, t) {
27
+ let n = S(t);
28
+ e.toast(n === void 0 ? "kvcoder.ui.failed" : x(n.code), n?.params ?? {}, "error");
29
+ }
30
+ //#endregion
31
+ //#region web/src/SettingFrame.vue?vue&type=script&setup=true&lang.ts
32
+ var T = ["data-test"], E = { class: "kvc-setting-text" }, D = ["data-test"], O = { class: "kvc-muted" }, k = { class: "kvc-setting-control" }, A = ["data-test"], j = {
33
+ key: 1,
34
+ class: "kvc-connectors-state"
35
+ }, M = ["data-test"], N = ["data-test"], P = ["disabled", "data-test"], F = /* @__PURE__ */ o({
36
+ __name: "SettingFrame",
37
+ props: {
38
+ settingKey: {},
39
+ name: {},
40
+ setting: {},
41
+ saved: { type: Boolean }
42
+ },
43
+ setup(t) {
44
+ let n = t, o = y(), s = (e) => o.t(`${e}.${o.scope.value}`, { name: o.workspace.value.name });
45
+ return (t, c) => (l(), i("div", {
46
+ class: "kvc-setting",
47
+ "data-test": n.name
48
+ }, [a("span", E, [a("span", {
49
+ class: "kvc-setting-title",
50
+ "data-test": `${n.name}-title`
51
+ }, p(m(o).t(`${n.settingKey}.title`)), 9, D), a("span", O, p(m(o).t(`${n.settingKey}.description`)), 1)]), a("span", k, [d(t.$slots, "default", { disabled: n.setting.locked.value || n.setting.saving.value }), n.setting.locked.value ? (l(), i("span", {
52
+ key: 0,
53
+ class: "kvc-muted",
54
+ "data-test": `${n.name}-own-value`
55
+ }, p(m(o).t("kvcoder.config.setting.ownValue", { name: m(o).workspace.value.name })), 9, A)) : n.setting.changed.value || n.saved ? (l(), i("span", j, [n.saved ? (l(), i("span", {
56
+ key: 0,
57
+ class: "kvc-muted",
58
+ role: "status",
59
+ "data-test": `${n.name}-saved`
60
+ }, p(m(o).t("kvcoder.config.setting.saved")), 9, M)) : r("v-if", !0), n.setting.changed.value ? (l(), i(e, { key: 1 }, [a("span", {
61
+ class: "kvc-chip",
62
+ "data-test": `${n.name}-changed`
63
+ }, p(s("kvcoder.config.setting.changed")), 9, N), a("button", {
64
+ type: "button",
65
+ class: "kvc-text-button",
66
+ disabled: n.setting.saving.value,
67
+ "data-test": `${n.name}-reset`,
68
+ onClick: c[0] ||= (...e) => n.setting.reset && n.setting.reset(...e)
69
+ }, p(s("kvcoder.config.setting.reset")), 9, P)], 64)) : r("v-if", !0)])) : r("v-if", !0)])], 8, T));
70
+ }
71
+ });
72
+ //#endregion
73
+ //#region web/src/use-setting.ts
74
+ function I(e, n) {
75
+ let r = f(null), i = u("default"), a = u(!1), o = async () => {
76
+ let t = (await e.exec("kernel.settings.list", {})).find((e) => e.key === n);
77
+ r.value = t?.value ?? null, i.value = t?.source ?? "default";
78
+ }, s = async (t) => {
79
+ a.value = !0;
80
+ try {
81
+ return await t(), await o(), !0;
82
+ } catch (t) {
83
+ return w(e, t), !1;
84
+ } finally {
85
+ a.value = !1;
86
+ }
87
+ };
88
+ return c(o), g(() => [e.scope.value, e.workspace.value.id], o), {
89
+ value: r,
90
+ saving: a,
91
+ locked: t(() => e.scope.value === "global" && i.value === "workspace"),
92
+ changed: t(() => i.value === e.scope.value),
93
+ set: (t) => s(() => e.exec("kernel.settings.set", {
94
+ key: n,
95
+ value: t,
96
+ scope: e.scope.value
97
+ })),
98
+ reset: () => s(() => e.exec("kernel.settings.reset", {
99
+ key: n,
100
+ scope: e.scope.value
101
+ }))
102
+ };
103
+ }
104
+ //#endregion
105
+ //#region web/src/PreferencesSetting.vue?vue&type=script&setup=true&lang.ts
106
+ var L = [
107
+ "disabled",
108
+ "aria-label",
109
+ "placeholder"
110
+ ], R = ["disabled"], z = /* @__PURE__ */ o({
111
+ __name: "PreferencesSetting",
112
+ setup(e) {
113
+ let t = y(), r = I(t, "kvcoder.preferences"), i = u(""), o = u(!1);
114
+ g(() => r.value.value, (e) => i.value = typeof e == "string" ? e : "", { immediate: !0 });
115
+ async function s() {
116
+ o.value = await r.set(i.value);
117
+ }
118
+ return (e, c) => (l(), n(F, {
119
+ "setting-key": "kvcoder.preferences",
120
+ name: "preferences-setting",
121
+ setting: m(r),
122
+ saved: o.value
123
+ }, {
124
+ default: _(({ disabled: e }) => [v(a("textarea", {
125
+ "onUpdate:modelValue": c[0] ||= (e) => i.value = e,
126
+ class: "kvc-field kvc-preferences",
127
+ rows: "5",
128
+ dir: "auto",
129
+ disabled: e,
130
+ "aria-label": m(t).t("kvcoder.preferences.title"),
131
+ placeholder: m(t).t("kvcoder.config.preferences.placeholder"),
132
+ "data-test": "preferences-text",
133
+ onInput: c[1] ||= (e) => o.value = !1
134
+ }, null, 40, L), [[h, i.value]]), a("button", {
135
+ type: "button",
136
+ class: "kvc-button",
137
+ disabled: e || i.value === (m(r).value.value ?? ""),
138
+ "data-test": "preferences-save",
139
+ onClick: s
140
+ }, p(m(t).t("kvcoder.config.preferences.save")), 9, R)]),
141
+ _: 1
142
+ }, 8, ["setting", "saved"]));
143
+ }
144
+ }), B = /* @__PURE__ */ o({
145
+ __name: "preferences",
146
+ setup(e) {
147
+ return (e, t) => (l(), n(z));
148
+ }
149
+ });
150
+ //#endregion
151
+ export { B as default };
@@ -1,2 +1,2 @@
1
- .kvc-workspace{flex-direction:column;flex:1 1 0;align-self:stretch;block-size:100%;min-block-size:24rem;min-inline-size:min(100%,30rem);display:flex;position:relative;container:kvc-workspace/inline-size}.kvc-stage{flex:1 1 0;min-block-size:0;display:flex;position:relative}.kvc-workspace>.kvc-header{background:var(--kv-color-surface);color:var(--kv-color-text)}.kvc-conversation{background:var(--kv-color-surface);min-inline-size:0;color:var(--kv-color-text);flex-direction:column;flex:1 1 0;display:flex}.kvc-artifact-panel{background:var(--kv-color-surface);border-inline-start:1px solid var(--kv-color-border);flex-direction:column;flex:0 0 min(40%,32rem);min-inline-size:0;display:flex;position:relative;container-type:inline-size}.kvc-artifact-panel[data-sized=true]{flex-basis:clamp(20rem, var(--kvc-panel-width), 70%)}.kvc-panel-resizer{z-index:6;cursor:col-resize;touch-action:none;inline-size:8px;position:absolute;inset-block:0;inset-inline-start:-4px}.kvc-panel-resizer:hover,.kvc-panel-resizer:focus-visible,.kvc-panel-resizer[data-dragging=true]{background:color-mix(in srgb, var(--kv-color-primary) 35%, transparent);outline:none}.kvc-artifact-head{align-items:center;gap:var(--kv-space-sm);padding-block:12px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);display:flex}.kvc-artifact-name .kvc-picker{min-inline-size:0}.kvc-artifact-name .kvc-picker>.kvc-button{justify-content:space-between;max-inline-size:100%}.kvc-artifact-name .kvc-picker-label{min-inline-size:0;max-inline-size:none;font-size:15px;font-weight:600}.kvc-artifact-title{font-size:15px;font-weight:600}.kvc-artifact-name{flex-direction:column;flex:1 1 0;gap:2px;min-inline-size:0;display:flex}.kvc-artifact-name>.kvc-muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-tab-icon{display:none}@container (inline-size<=30rem){.kvc-artifact-head{padding-inline:var(--kv-space-md)}.kvc-artifact-actions .kvc-tab{align-items:center;padding-inline:8px;display:flex}.kvc-artifact-actions .kvc-tab-icon{display:block}.kvc-artifact-actions .kvc-tab-text{display:none}}.kvc-artifact-actions{flex:none;align-items:center;gap:6px;margin-inline-start:auto;display:flex}.kvc-button.kvc-icon-button{box-sizing:border-box;flex:none;inline-size:36px;padding-inline:0}.kvc-artifact-body{min-block-size:0;padding-block:var(--kv-space-md);padding-inline:var(--kv-space-lg);flex:auto;overflow:auto}.kvc-artifact-source{font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-artifact-frame{background:#fff;border:0;block-size:100%;inline-size:100%}@container (inline-size<=48rem){.kvc-artifact-panel{z-index:5;inline-size:min(100%,32rem);position:absolute;inset-block:0;inset-inline-end:0;box-shadow:0 12px 32px #00000024}}@container kvc-workspace (inline-size<=48rem){.kvc-panel-resizer{display:none}}.kvc-header{align-items:center;gap:var(--kv-space-sm);padding-block:4px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;display:flex;position:relative}.kvc-title{flex-wrap:wrap;flex:auto;align-items:baseline;column-gap:12px;min-inline-size:0;display:flex}.kvc-header-stats{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.kvc-muted{color:var(--kv-color-muted);font-size:12.5px}.kvc-tabs{border:1px solid var(--kv-color-border);border-radius:10px;gap:2px;padding:3px;display:flex}.kvc-tab{color:var(--kv-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding-block:4px;padding-inline:12px}.kvc-tab[aria-selected=true],.kvc-tab[aria-pressed=true]{background:var(--kv-color-background);color:var(--kv-color-text);font-weight:500}.kvc-scrollport{flex-direction:column;flex:auto;min-block-size:0;display:flex;position:relative}.kvc-scroll{flex:auto;min-block-size:0;position:relative;overflow-y:auto}.kvc-jump{inline-size:max-content;margin-inline:auto;position:absolute;inset-block-end:12px;inset-inline:0;box-shadow:0 4px 16px #00000029}.kvc-column{box-sizing:border-box;inline-size:100%;max-inline-size:800px;padding:var(--kv-space-md) var(--kv-space-lg);gap:var(--kv-space-md);overflow-wrap:anywhere;flex-direction:column;margin-inline:auto;display:flex}.kvc-user{background:var(--kv-color-background);border-radius:16px;white-space:pre-wrap;border-end-end-radius:4px;align-self:flex-end;max-inline-size:80%;padding-block:10px;padding-inline:14px}.kvc-queued{border:1px dashed var(--kv-color-border);background:0 0}.kvc-answer{gap:var(--kv-space-sm);flex-direction:column;display:flex}.kvc-card{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);overflow:hidden}.kvc-card-row{align-items:center;gap:10px;padding-block:9px;padding-inline:12px;display:flex}.kvc-card-body{border-block-start:1px solid var(--kv-color-border);gap:var(--kv-space-sm);flex-direction:column;padding-block:10px;padding-inline:14px;display:flex}.kvc-lines{text-align:start;flex-direction:column;flex:auto;gap:2px;min-inline-size:0;display:flex}.kvc-failed{border-color:var(--kv-color-danger)}.kvc-mono{font-family:var(--kv-font-mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:12.5px}.kvc-card-row>.kvc-muted,.kvc-card-row>.kvc-chip{white-space:nowrap;flex:none}.kvc-card-row>svg{flex:none}.kvc-output{background:var(--kv-color-surface);color:var(--kv-color-text);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;max-block-size:320px;margin:0;padding:10px 14px;font-size:12px;overflow-y:auto}.kvc-output+.kvc-output{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-output{max-block-size:none;overflow-y:visible}.kvc-output .kvc-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.kvc-chip{white-space:nowrap;border:1px solid var(--kv-color-border);border-radius:999px;align-items:center;gap:4px;padding-block:2px;padding-inline:8px;font-size:12px;font-weight:500;display:inline-flex}.kvc-ok{color:var(--kv-color-success)}.kvc-warn{color:var(--kv-color-warning)}.kvc-sign-in-failed,.kvc-danger{color:var(--kv-color-danger)}.kvc-notice{align-items:center;gap:var(--kv-space-sm);color:var(--kv-color-muted);font-size:13px;display:flex}.kvc-notice:before,.kvc-notice:after{content:"";background:var(--kv-color-border);flex:auto;block-size:1px}.kvc-ask{border-color:var(--kv-color-warning)}.kvc-option{border:1px solid var(--kv-color-border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.kvc-option:has(input:checked){border-color:var(--kv-color-primary);background:color-mix(in srgb, var(--kv-color-primary) 8%, var(--kv-color-surface))}.kvc-answered-option{color:var(--kv-color-muted);align-items:flex-start;gap:10px;display:flex}.kvc-answered-option[data-chosen=true]{color:var(--kv-color-text);font-weight:500}.kvc-answered-option>svg{flex:none;margin-block-start:3px}.kvc-answered-gap{flex:0 0 16px}.kvc-sr{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.kvc-button{border:1px solid var(--kv-color-border);background:var(--kv-color-surface);min-block-size:36px;color:var(--kv-color-text);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding-inline:14px;font-weight:500;display:inline-flex}a.kvc-button{color:inherit;text-decoration:none}.kvc-button:disabled{opacity:.5;cursor:default}.kvc-primary{background:var(--kv-color-primary);border-color:var(--kv-color-primary);color:var(--kv-color-on-primary)}.kvc-ghost{background:0 0;border-color:#0000}.kvc-actions{gap:var(--kv-space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.kvc-actions>.kvc-button{white-space:nowrap;flex:none}.kvc-composer{z-index:2;background:var(--kv-color-surface);padding-block:12px 18px;padding-inline:var(--kv-space-lg);position:sticky;inset-block-end:0}.kvc-box{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);gap:var(--kv-space-sm);border-radius:16px;flex-direction:column;max-inline-size:760px;margin-inline:auto;padding:10px 12px;display:flex}.kvc-field{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);inline-size:100%;color:inherit;font:inherit;border-radius:10px;padding-block:8px;padding-inline:12px}.kvc-field:disabled{opacity:.6;cursor:not-allowed}.kvc-box textarea{resize:none;color:inherit;font:inherit;background:0 0;border:0;outline:none;min-block-size:44px}.kvc-start{justify-content:safe center;gap:var(--kv-space-lg);min-height:0;padding:var(--kv-space-lg);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.kvc-start-note{text-align:center;margin:0}.kvc-link-button{color:var(--kv-color-primary);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.kvc-start h1{text-align:center;margin:0;font-size:26px;font-weight:600}.kvc-sessions{box-sizing:border-box;border-inline-end:1px solid var(--kv-color-border);flex-direction:column;flex:none;align-self:stretch;gap:2px;max-block-size:100%;inline-size:272px;padding:14px 12px;display:flex;overflow-y:auto}.kvc-session{min-block-size:44px;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding-inline:10px;display:flex}.kvc-session[aria-current=page]{background:color-mix(in srgb, var(--kv-color-primary) 16%, var(--kv-color-surface));font-weight:600}.kvc-session .kvc-muted,.kvc-session .kvc-chip{white-space:nowrap;flex:none}.kvc-session span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.kvc-group{color:var(--kv-color-muted);padding-block:12px 4px;padding-inline:10px;font-size:12px;font-weight:600}.kvc-spin{border:2px solid var(--kv-color-border);border-block-start-color:var(--kv-color-primary);border-radius:50%;flex:none;block-size:14px;inline-size:14px;animation:.9s linear infinite kvc-spin}.kvc-menu{z-index:10;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;min-inline-size:220px;padding:6px;display:flex;position:absolute;inset-block-start:100%;inset-inline-end:0;box-shadow:0 12px 32px #00000024}.kvc-menu button{text-align:start;justify-content:flex-start}.kvc-prompt{padding:var(--kv-space-md);border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-activity{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);align-items:center;gap:10px;padding-block:8px;padding-inline:12px;font-size:13.5px;display:flex}.kvc-activity-text{flex-direction:column;flex:auto;gap:6px;min-inline-size:0;display:flex}.kvc-activity-call{flex-direction:column;gap:2px;display:flex}.kvc-oneline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-picker{position:relative}.kvc-picker-label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:16rem;overflow:hidden}.kvc-popover{z-index:20;box-sizing:border-box;inline-size:min(26rem, calc(100cqw - 2 * var(--kv-space-lg)));border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;box-shadow:0 12px 32px #00000024}.kvc-choices{inline-size:max-content;min-inline-size:10rem;max-inline-size:min(22rem, calc(100cqw - 2 * var(--kv-space-md)));gap:2px;max-block-size:18rem;overflow-y:auto}.kvc-choices>.kvc-model{flex:none}.kvc-recovery{align-items:center;gap:var(--kv-space-sm);flex-wrap:wrap;display:flex}.kvc-recovery .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-search{border:1px solid var(--kv-color-border);border-radius:10px;align-items:center;gap:8px;padding-inline:10px;display:flex}.kvc-search input{min-inline-size:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:auto;padding-block:8px}.kvc-options{flex-direction:column;max-block-size:18rem;display:flex;overflow-y:auto}.kvc-model{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding-block:7px;padding-inline:10px;display:flex}.kvc-model[data-active=true]{background:var(--kv-color-background)}.kvc-model[aria-selected=true]{font-weight:600}.kvc-model-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-none,.kvc-count{margin:0;padding-inline:10px}@keyframes kvc-spin{to{transform:rotate(360deg)}}.kvc-dot{background:var(--kv-color-success);border-radius:50%;flex:none;block-size:8px;inline-size:8px}.kvc-jobs-panel{max-block-size:70vh;inline-size:min(32rem,100%);inset-inline:auto 0;overflow-y:auto}.kvc-job{border:1px solid var(--kv-color-border);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.kvc-job-head{justify-content:space-between;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-job-title{flex:auto;min-inline-size:0;font-weight:600}.kvc-job-head>.kvc-muted,.kvc-job-head>.kvc-chip{white-space:nowrap;flex:none}.kvc-job-links{flex-wrap:wrap;gap:4px 12px;display:flex}.kvc-job-links .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-job .kvc-output{background:var(--kv-color-background);border-radius:8px}.kvc-connectors{flex-direction:column;display:flex}.kvc-connectors-state{flex-wrap:wrap;align-items:center;gap:10px;padding-block-end:8px;display:flex}.kvc-text-button{color:var(--kv-color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.kvc-text-button:disabled{opacity:.5;cursor:default}.kvc-connector{border-block-end:1px solid var(--kv-color-border);align-items:center;gap:16px;padding-block:12px;display:flex}.kvc-connector:last-child{border-block-end:0}.kvc-connector-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.kvc-connector-name{font-size:13.5px;font-weight:600}.kvc-switch{background:var(--kv-color-border);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;block-size:24px;inline-size:40px;padding:2px;transition:background-color .12s;display:flex}.kvc-switch[aria-checked=true]{background:var(--kv-color-primary)}.kvc-switch:disabled{opacity:.5;cursor:default}.kvc-switch-knob{background:var(--kv-color-surface);border-radius:999px;block-size:20px;inline-size:20px;transition:margin-inline-start .12s}.kvc-switch[aria-checked=true] .kvc-switch-knob{margin-inline-start:16px}.kvc-setting{border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;align-items:flex-start;gap:24px;padding-block:16px;display:flex}.kvc-setting-text{flex-direction:column;flex:20rem;gap:4px;min-inline-size:15rem;display:flex}.kvc-setting-title{font-weight:600}.kvc-setting-control{flex-direction:column;gap:8px;inline-size:22.5rem;max-inline-size:100%;display:flex}.kvc-setting .kvc-picker>.kvc-button{justify-content:space-between;inline-size:100%}.kvc-setting .kvc-picker-label{max-inline-size:none}.kvc-setting .kvc-popover{inline-size:100%}.kvc-setting .kvc-connectors-state{padding-block-end:0}.kvc-connector-actions{flex:none;align-items:center;gap:8px;display:flex}.kvc-dialog-backdrop{z-index:40;padding:var(--kv-space-md);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.kvc-dialog{box-sizing:border-box;gap:var(--kv-space-sm);inline-size:100%;max-inline-size:44rem;max-block-size:calc(100dvh - 2 * var(--kv-space-md));background:var(--kv-color-surface);color:var(--kv-color-text);padding:var(--kv-space-lg);border-radius:16px;outline:none;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 20px 50px #00000040}.kvc-dialog-head{align-items:flex-start;gap:12px;display:flex}.kvc-dialog-title{font-size:16px;font-weight:600}.kvc-dialog-rows{flex-direction:column;display:flex}.kvc-dialog-rows>.kvc-setting:last-child{border-block-end:0;padding-block-end:0}.kvc-server{align-items:flex-start}.kvc-server-state{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.kvc-server-state[data-status=ready]{color:var(--kv-color-success)}.kvc-server-state[data-status=failed],.kvc-server-state[data-status=signInNeeded]{color:var(--kv-color-warning)}.kvc-server-state[data-status=checking]{color:var(--kv-color-muted)}.kvc-server-reason{overflow-wrap:anywhere;white-space:pre-wrap}.kvc-server-sign-in{align-self:flex-start;margin-block-start:6px}.kvc-sign-in{max-inline-size:32rem;padding:var(--kv-space-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-inline:auto;display:flex}.kvc-sign-in-done{color:var(--kv-color-success)}.kvc-sign-in-failed{color:var(--kv-color-danger)}.kvc-danger{background:var(--kv-color-danger);border-color:var(--kv-color-danger);color:var(--kv-color-on-primary)}.kvc-form{gap:var(--kv-space-md);flex-direction:column;padding-block-start:var(--kv-space-sm);display:flex}.kvc-form-field{flex-direction:column;gap:6px;display:flex}.kvc-form-label{padding:0;font-weight:600}.kvc-confirm{border:1px solid var(--kv-color-danger);border-radius:var(--kv-radius);flex-direction:column;gap:8px;padding:12px;display:flex}.kvc-form-error{color:var(--kv-color-danger);font-size:12.5px}.kvc-form-choice{gap:var(--kv-space-md);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.kvc-form-choice>legend{margin-block-end:6px}.kvc-form-radio{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.kvc-form-value{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:center;gap:8px;display:grid}.kvc-form-set{align-items:center;gap:10px;display:flex}.kvc-form-add{align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.kvc-form textarea.kvc-field{resize:vertical}.kvc-box{position:relative}.kvc-composer-row{align-items:center;gap:8px;display:flex}.kvc-composer-hint{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-inline-size:0;overflow:hidden}.kvc-composer-row .kvc-picker{flex:0 auto;min-inline-size:0}.kvc-composer-row .kvc-picker>.kvc-button{max-inline-size:100%}.kvc-composer-row .kvc-picker-label{min-inline-size:0}.kvc-composer .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-slash{z-index:20;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;inset-block-end:calc(100% + 6px);inset-inline:0;box-shadow:0 12px 32px #00000024}.kvc-slash-row{cursor:pointer;border-radius:8px;align-items:baseline;gap:12px;padding-block:7px;padding-inline:10px;display:flex}.kvc-slash-row[data-active=true]{background:var(--kv-color-background)}.kvc-slash-name{flex:0 0 9rem}.kvc-slash-row .kvc-mono{font-size:13px;font-weight:600}.kvc-call-parts{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;padding-inline:14px}.kvc-summary{flex-wrap:wrap;align-items:baseline;column-gap:8px;min-inline-size:0;font-size:13px;display:flex}.kvc-summary>.kvc-mono{min-inline-size:0}.kvc-block{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;font-size:13px}.kvc-block:not(.kvc-code-lines){padding-inline:14px}.kvc-code-lines{font-family:var(--kv-font-mono);font-size:12px;line-height:1.55}.kvc-code-line{gap:8px;min-block-size:1.55em;padding-inline:14px;display:flex}.kvc-code-line[data-kind=removed]{background:color-mix(in srgb, var(--kv-color-danger) 14%, transparent)}.kvc-code-line[data-kind=added]{background:color-mix(in srgb, var(--kv-color-success) 14%, transparent)}.kvc-line-number{text-align:end;min-inline-size:3ch;color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:none}.kvc-line-mark{color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:0 0 1ch}.kvc-line-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:auto;min-inline-size:0}.kvc-code-lines .kvc-link,.kvc-fields .kvc-link,.kvc-error .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-prose-lines{font-family:inherit;font-size:13px}.kvc-fold{margin-block-start:6px;margin-inline:14px;display:block}.kvc-output-block{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-fold{margin-block:6px}.kvc-error{color:var(--kv-color-danger);white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.kvc-entries{flex-direction:column;gap:2px;display:flex}.kvc-entry{align-items:center;gap:8px;display:flex}.kvc-entry>.kvc-mono{flex:auto;min-inline-size:0}.kvc-file-path{padding-block-end:4px;font-weight:600}.kvc-block>.kvc-code-lines>.kvc-code-line{padding-inline:0}.kvc-block>.kvc-code-lines>.kvc-fold{margin-inline:0}.kvc-fields{grid-template-columns:minmax(6rem,max-content) minmax(0,1fr);gap:4px 12px;margin:0;display:grid}.kvc-field-row{display:contents}.kvc-steps{gap:6px;padding-inline-start:0;list-style:none;display:grid}.kvc-step-arguments{padding-block-start:2px;padding-inline-start:1.5rem}.kvc-field-row>dt{font-family:var(--kv-font-mono);font-size:12px}.kvc-field-row>dd{overflow-wrap:anywhere;min-inline-size:0;margin:0}.kvc-field-block>.kvc-code-line,.kvc-field-block>.kvc-fold{margin-inline:0;padding-inline:0}.kvc-field-table{overflow-x:auto}.kvc-field-table table{border-collapse:collapse;font-size:12.5px}.kvc-field-table th,.kvc-field-table td{text-align:start;vertical-align:top;padding-block:3px;padding-inline:0 14px}.kvc-field-table th{color:var(--kv-color-muted);font-weight:500;font-family:var(--kv-font-mono);font-size:12px}.kvc-field-items{flex-direction:column;gap:2px;display:flex}.kvc-approval{border-block-start:1px solid var(--kv-color-border)}.kvc-approval>.kvc-actions{padding-block-start:0}.kvc-run-row{align-items:baseline;gap:10px;display:flex}.kvc-run-row>.kvc-run-call{flex:auto;min-inline-size:0}.kvc-run-row>.kvc-chip,.kvc-run-row>.kvc-muted{white-space:nowrap;flex:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .kvc-flip{transform:scaleX(-1)}.kvc-slash-row[aria-disabled=true]{opacity:.55;cursor:default}.kvc-button:focus-visible,.kvc-text-button:focus-visible,.kvc-link-button:focus-visible,.kvc-session:focus-visible,.kvc-switch:focus-visible,.kvc-chip-remove:focus-visible{outline:2px solid var(--kv-color-primary);outline-offset:2px}.kvc-box:focus-within,.kvc-search:focus-within{outline:2px solid var(--kv-color-primary);outline-offset:1px}.kvc-chip-remove{min-block-size:20px;padding:0}@media (pointer:coarse){.kvc-button{min-block-size:44px}.kvc-button.kvc-icon-button{inline-size:44px}.kvc-text-button,.kvc-link-button{align-items:center;min-block-size:44px;display:inline-flex}.kvc-chip-remove{min-block-size:44px;min-inline-size:44px}.kvc-switch{position:relative}.kvc-switch:after{content:"";position:absolute;inset-block:-10px;inset-inline:-2px}}
1
+ .kvc-workspace{flex-direction:column;flex:1 1 0;align-self:stretch;block-size:100%;min-block-size:24rem;min-inline-size:min(100%,30rem);display:flex;position:relative;container:kvc-workspace/inline-size}.kvc-stage{flex:1 1 0;min-block-size:0;display:flex;position:relative}.kvc-workspace>.kvc-header{background:var(--kv-color-surface);color:var(--kv-color-text)}.kvc-conversation{background:var(--kv-color-surface);min-inline-size:0;color:var(--kv-color-text);flex-direction:column;flex:1 1 0;display:flex}.kvc-artifact-panel{background:var(--kv-color-surface);border-inline-start:1px solid var(--kv-color-border);flex-direction:column;flex:0 0 min(40%,32rem);min-inline-size:0;display:flex;position:relative;container-type:inline-size}.kvc-artifact-panel[data-sized=true]{flex-basis:clamp(20rem, var(--kvc-panel-width), 70%)}.kvc-panel-resizer{z-index:6;cursor:col-resize;touch-action:none;inline-size:8px;position:absolute;inset-block:0;inset-inline-start:-4px}.kvc-panel-resizer:hover,.kvc-panel-resizer:focus-visible,.kvc-panel-resizer[data-dragging=true]{background:color-mix(in srgb, var(--kv-color-primary) 35%, transparent);outline:none}.kvc-artifact-head{align-items:center;gap:var(--kv-space-sm);padding-block:12px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);display:flex}.kvc-artifact-name .kvc-picker{min-inline-size:0}.kvc-artifact-name .kvc-picker>.kvc-button{justify-content:space-between;max-inline-size:100%}.kvc-artifact-name .kvc-picker-label{min-inline-size:0;max-inline-size:none;font-size:15px;font-weight:600}.kvc-artifact-title{font-size:15px;font-weight:600}.kvc-artifact-name{flex-direction:column;flex:1 1 0;gap:2px;min-inline-size:0;display:flex}.kvc-artifact-name>.kvc-muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-tab-icon{display:none}@container (inline-size<=30rem){.kvc-artifact-head{padding-inline:var(--kv-space-md)}.kvc-artifact-actions .kvc-tab{align-items:center;padding-inline:8px;display:flex}.kvc-artifact-actions .kvc-tab-icon{display:block}.kvc-artifact-actions .kvc-tab-text{display:none}}.kvc-artifact-actions{flex:none;align-items:center;gap:6px;margin-inline-start:auto;display:flex}.kvc-button.kvc-icon-button{box-sizing:border-box;flex:none;inline-size:36px;padding-inline:0}.kvc-artifact-body{min-block-size:0;padding-block:var(--kv-space-md);padding-inline:var(--kv-space-lg);flex:auto;overflow:auto}.kvc-artifact-source{font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-artifact-frame{background:#fff;border:0;block-size:100%;inline-size:100%}@container (inline-size<=48rem){.kvc-artifact-panel{z-index:5;inline-size:min(100%,32rem);position:absolute;inset-block:0;inset-inline-end:0;box-shadow:0 12px 32px #00000024}}@container kvc-workspace (inline-size<=48rem){.kvc-panel-resizer{display:none}}.kvc-header{align-items:center;gap:var(--kv-space-sm);padding-block:4px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;display:flex;position:relative}.kvc-title{flex-wrap:wrap;flex:auto;align-items:baseline;column-gap:12px;min-inline-size:0;display:flex}.kvc-header-stats{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.kvc-muted{color:var(--kv-color-muted);font-size:12.5px}.kvc-tabs{border:1px solid var(--kv-color-border);border-radius:10px;gap:2px;padding:3px;display:flex}.kvc-tab{color:var(--kv-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding-block:4px;padding-inline:12px}.kvc-tab[aria-selected=true],.kvc-tab[aria-pressed=true]{background:var(--kv-color-background);color:var(--kv-color-text);font-weight:500}.kvc-scrollport{flex-direction:column;flex:auto;min-block-size:0;display:flex;position:relative}.kvc-scroll{flex:auto;min-block-size:0;position:relative;overflow-y:auto}.kvc-jump{inline-size:max-content;margin-inline:auto;position:absolute;inset-block-end:12px;inset-inline:0;box-shadow:0 4px 16px #00000029}.kvc-column{box-sizing:border-box;inline-size:100%;max-inline-size:800px;padding:var(--kv-space-md) var(--kv-space-lg);gap:var(--kv-space-md);overflow-wrap:anywhere;flex-direction:column;margin-inline:auto;display:flex}.kvc-user{background:var(--kv-color-background);border-radius:16px;white-space:pre-wrap;border-end-end-radius:4px;align-self:flex-end;max-inline-size:80%;padding-block:10px;padding-inline:14px}.kvc-queued{border:1px dashed var(--kv-color-border);background:0 0}.kvc-answer{gap:var(--kv-space-sm);flex-direction:column;display:flex}.kvc-card{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);overflow:hidden}.kvc-card-row{align-items:center;gap:10px;padding-block:9px;padding-inline:12px;display:flex}.kvc-card-body{border-block-start:1px solid var(--kv-color-border);gap:var(--kv-space-sm);flex-direction:column;padding-block:10px;padding-inline:14px;display:flex}.kvc-lines{text-align:start;flex-direction:column;flex:auto;gap:2px;min-inline-size:0;display:flex}.kvc-failed{border-color:var(--kv-color-danger)}.kvc-mono{font-family:var(--kv-font-mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:12.5px}.kvc-card-row>.kvc-muted,.kvc-card-row>.kvc-chip{white-space:nowrap;flex:none}.kvc-card-row>svg{flex:none}.kvc-output{background:var(--kv-color-surface);color:var(--kv-color-text);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;max-block-size:320px;margin:0;padding:10px 14px;font-size:12px;overflow-y:auto}.kvc-output+.kvc-output{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-output{max-block-size:none;overflow-y:visible}.kvc-output .kvc-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.kvc-chip{white-space:nowrap;border:1px solid var(--kv-color-border);border-radius:999px;align-items:center;gap:4px;padding-block:2px;padding-inline:8px;font-size:12px;font-weight:500;display:inline-flex}.kvc-ok{color:var(--kv-color-success)}.kvc-warn{color:var(--kv-color-warning)}.kvc-sign-in-failed,.kvc-danger{color:var(--kv-color-danger)}.kvc-notice{align-items:center;gap:var(--kv-space-sm);color:var(--kv-color-muted);font-size:13px;display:flex}.kvc-notice:before,.kvc-notice:after{content:"";background:var(--kv-color-border);flex:auto;block-size:1px}.kvc-ask{border-color:var(--kv-color-warning)}.kvc-option{border:1px solid var(--kv-color-border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.kvc-option:has(input:checked){border-color:var(--kv-color-primary);background:color-mix(in srgb, var(--kv-color-primary) 8%, var(--kv-color-surface))}.kvc-answered-option{color:var(--kv-color-muted);align-items:flex-start;gap:10px;display:flex}.kvc-answered-option[data-chosen=true]{color:var(--kv-color-text);font-weight:500}.kvc-answered-option>svg{flex:none;margin-block-start:3px}.kvc-answered-gap{flex:0 0 16px}.kvc-sr{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.kvc-button{border:1px solid var(--kv-color-border);background:var(--kv-color-surface);min-block-size:36px;color:var(--kv-color-text);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding-inline:14px;font-weight:500;display:inline-flex}a.kvc-button{color:inherit;text-decoration:none}.kvc-button:disabled{opacity:.5;cursor:default}.kvc-primary,.kvc-decide[aria-pressed=true]{background:var(--kv-color-primary);border-color:var(--kv-color-primary);color:var(--kv-color-on-primary)}.kvc-ghost{background:0 0;border-color:#0000}.kvc-actions{gap:var(--kv-space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.kvc-actions>.kvc-button{white-space:nowrap;flex:none}.kvc-composer{z-index:2;background:var(--kv-color-surface);padding-block:12px 18px;padding-inline:var(--kv-space-lg);position:sticky;inset-block-end:0}.kvc-box{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);gap:var(--kv-space-sm);border-radius:16px;flex-direction:column;max-inline-size:760px;margin-inline:auto;padding:10px 12px;display:flex}.kvc-field{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);inline-size:100%;color:inherit;font:inherit;border-radius:10px;padding-block:8px;padding-inline:12px}.kvc-field:disabled{opacity:.6;cursor:not-allowed}.kvc-box textarea{resize:none;color:inherit;font:inherit;background:0 0;border:0;outline:none;min-block-size:44px}.kvc-start{justify-content:safe center;gap:var(--kv-space-lg);min-height:0;padding:var(--kv-space-lg);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.kvc-start-note{text-align:center;margin:0}.kvc-link-button{color:var(--kv-color-primary);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.kvc-start h1{text-align:center;margin:0;font-size:26px;font-weight:600}.kvc-sessions{box-sizing:border-box;border-inline-end:1px solid var(--kv-color-border);flex-direction:column;flex:none;align-self:stretch;gap:2px;max-block-size:100%;inline-size:272px;padding:14px 12px;display:flex;overflow-y:auto}.kvc-session{min-block-size:44px;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding-inline:10px;display:flex}.kvc-session[aria-current=page]{background:color-mix(in srgb, var(--kv-color-primary) 16%, var(--kv-color-surface));font-weight:600}.kvc-session .kvc-muted,.kvc-session .kvc-chip{white-space:nowrap;flex:none}.kvc-session span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.kvc-group{color:var(--kv-color-muted);padding-block:12px 4px;padding-inline:10px;font-size:12px;font-weight:600}.kvc-spin{border:2px solid var(--kv-color-border);border-block-start-color:var(--kv-color-primary);border-radius:50%;flex:none;block-size:14px;inline-size:14px;animation:.9s linear infinite kvc-spin}.kvc-menu{z-index:10;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;min-inline-size:220px;padding:6px;display:flex;position:absolute;inset-block-start:100%;inset-inline-end:0;box-shadow:0 12px 32px #00000024}.kvc-menu button{text-align:start;justify-content:flex-start}.kvc-prompt{padding:var(--kv-space-md);border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-activity{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);align-items:center;gap:10px;padding-block:8px;padding-inline:12px;font-size:13.5px;display:flex}.kvc-activity-text{flex-direction:column;flex:auto;gap:6px;min-inline-size:0;display:flex}.kvc-activity-call{flex-direction:column;gap:2px;display:flex}.kvc-oneline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-picker{position:relative}.kvc-picker-label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:16rem;overflow:hidden}.kvc-popover{z-index:20;box-sizing:border-box;inline-size:min(26rem, calc(100cqw - 2 * var(--kv-space-lg)));border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;box-shadow:0 12px 32px #00000024}.kvc-choices{inline-size:max-content;min-inline-size:10rem;max-inline-size:min(22rem, calc(100cqw - 2 * var(--kv-space-md)));gap:2px;max-block-size:18rem;overflow-y:auto}.kvc-choices>.kvc-model{flex:none}.kvc-recovery{align-items:center;gap:var(--kv-space-sm);flex-wrap:wrap;display:flex}.kvc-recovery .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-search{border:1px solid var(--kv-color-border);border-radius:10px;align-items:center;gap:8px;padding-inline:10px;display:flex}.kvc-search input{min-inline-size:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:auto;padding-block:8px}.kvc-options{flex-direction:column;max-block-size:18rem;display:flex;overflow-y:auto}.kvc-model{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding-block:7px;padding-inline:10px;display:flex}.kvc-model[data-active=true]{background:var(--kv-color-background)}.kvc-model[aria-selected=true]{font-weight:600}.kvc-model-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-none,.kvc-count{margin:0;padding-inline:10px}@keyframes kvc-spin{to{transform:rotate(360deg)}}.kvc-dot{background:var(--kv-color-success);border-radius:50%;flex:none;block-size:8px;inline-size:8px}.kvc-jobs-panel{max-block-size:70vh;inline-size:min(32rem,100%);inset-inline:auto 0;overflow-y:auto}.kvc-job{border:1px solid var(--kv-color-border);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.kvc-job-head{justify-content:space-between;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-job-title{flex:auto;min-inline-size:0;font-weight:600}.kvc-job-head>.kvc-muted,.kvc-job-head>.kvc-chip{white-space:nowrap;flex:none}.kvc-job-links{flex-wrap:wrap;gap:4px 12px;display:flex}.kvc-job-links .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-job .kvc-output{background:var(--kv-color-background);border-radius:8px}.kvc-connectors{flex-direction:column;display:flex}.kvc-connectors-state{flex-wrap:wrap;align-items:center;gap:10px;padding-block-end:8px;display:flex}.kvc-text-button{color:var(--kv-color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.kvc-text-button:disabled{opacity:.5;cursor:default}.kvc-connector{border-block-end:1px solid var(--kv-color-border);align-items:center;gap:16px;padding-block:12px;display:flex}.kvc-connector:last-child{border-block-end:0}.kvc-connector-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.kvc-connector-name{font-size:13.5px;font-weight:600}.kvc-switch{background:var(--kv-color-border);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;block-size:24px;inline-size:40px;padding:2px;transition:background-color .12s;display:flex}.kvc-switch[aria-checked=true]{background:var(--kv-color-primary)}.kvc-switch:disabled{opacity:.5;cursor:default}.kvc-switch-knob{background:var(--kv-color-surface);border-radius:999px;block-size:20px;inline-size:20px;transition:margin-inline-start .12s}.kvc-switch[aria-checked=true] .kvc-switch-knob{margin-inline-start:16px}.kvc-setting{border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;align-items:flex-start;gap:24px;padding-block:16px;display:flex}.kvc-setting-text{flex-direction:column;flex:20rem;gap:4px;min-inline-size:15rem;display:flex}.kvc-setting-title{font-weight:600}.kvc-setting-control{flex-direction:column;gap:8px;inline-size:22.5rem;max-inline-size:100%;display:flex}.kvc-setting .kvc-picker>.kvc-button{justify-content:space-between;inline-size:100%}.kvc-setting .kvc-picker-label{max-inline-size:none}.kvc-setting .kvc-popover{inline-size:100%}.kvc-setting .kvc-connectors-state{padding-block-end:0}.kvc-connector-actions{flex:none;align-items:center;gap:8px;display:flex}.kvc-dialog-backdrop{z-index:40;padding:var(--kv-space-md);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.kvc-dialog{box-sizing:border-box;gap:var(--kv-space-sm);inline-size:100%;max-inline-size:44rem;max-block-size:calc(100dvh - 2 * var(--kv-space-md));background:var(--kv-color-surface);color:var(--kv-color-text);padding:var(--kv-space-lg);border-radius:16px;outline:none;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 20px 50px #00000040}.kvc-dialog-head{align-items:flex-start;gap:12px;display:flex}.kvc-dialog-title{font-size:16px;font-weight:600}.kvc-dialog-rows{flex-direction:column;display:flex}.kvc-dialog-rows>.kvc-setting:last-child{border-block-end:0;padding-block-end:0}.kvc-server{align-items:flex-start}.kvc-server-state{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.kvc-server-state[data-status=ready]{color:var(--kv-color-success)}.kvc-server-state[data-status=failed],.kvc-server-state[data-status=signInNeeded]{color:var(--kv-color-warning)}.kvc-server-state[data-status=checking]{color:var(--kv-color-muted)}.kvc-server-reason{overflow-wrap:anywhere;white-space:pre-wrap}.kvc-server-sign-in{align-self:flex-start;margin-block-start:6px}.kvc-sign-in{max-inline-size:32rem;padding:var(--kv-space-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-inline:auto;display:flex}.kvc-sign-in-done{color:var(--kv-color-success)}.kvc-sign-in-failed{color:var(--kv-color-danger)}.kvc-danger{background:var(--kv-color-danger);border-color:var(--kv-color-danger);color:var(--kv-color-on-primary)}.kvc-form{gap:var(--kv-space-md);flex-direction:column;padding-block-start:var(--kv-space-sm);display:flex}.kvc-form-field{flex-direction:column;gap:6px;display:flex}.kvc-form-label{padding:0;font-weight:600}.kvc-confirm{border:1px solid var(--kv-color-danger);border-radius:var(--kv-radius);flex-direction:column;gap:8px;padding:12px;display:flex}.kvc-preferences{resize:vertical;min-block-size:6rem;inline-size:100%}.kvc-remember{margin-block-start:4px;display:block}.kvc-fold-body{border-block-start:1px solid var(--kv-color-border);flex-direction:column;gap:6px;padding:6px 8px 8px;display:flex}.kvc-final{border-inline-start:3px solid var(--kv-color-primary);padding-inline-start:12px}.kvc-changes{flex-direction:column;gap:8px;display:flex}.kvc-change-head{text-align:start;flex:auto;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-diff>[data-kind=added]{color:var(--kv-color-success,inherit);background:color-mix(in srgb, var(--kv-color-success,green) 12%, transparent)}.kvc-diff>[data-kind=removed]{color:var(--kv-color-danger);background:color-mix(in srgb, var(--kv-color-danger) 12%, transparent)}.kvc-diff>[data-kind=hunk],.kvc-diff>[data-kind=head]{color:var(--kv-color-muted,inherit)}.kvc-picker-icon{flex:none;display:none}.kvc-artifact-name .kvc-picker>.kvc-button{min-block-size:0;padding-block:2px}.kvc-decide{white-space:nowrap}@container kvc-workspace (inline-size<=30rem){.kvc-composer-row .kvc-picker-icon{display:block}.kvc-composer-row .kvc-picker-label{display:none}}.kvc-chats-bar{display:none}@media (width<=60rem){.kvc-sessions{display:none}.kvc-drawer .kvc-sessions{border-inline-end:0;inline-size:100%;display:flex}.kvc-chats-bar{padding-block:4px;padding-inline:var(--kv-space-md);border-block-end:1px solid var(--kv-color-border);display:flex}}.kvc-drawer-backdrop{z-index:40;background:#00000059;position:fixed;inset:0}.kvc-drawer{background:var(--kv-color-surface);inline-size:min(85vw,20rem);position:absolute;inset-block:0;inset-inline-start:0;overflow-y:auto;box-shadow:0 12px 32px #0003}.kvc-rules{flex-direction:column;gap:6px;margin-block-start:8px;display:flex}.kvc-rule{justify-content:space-between;align-items:center;gap:12px;display:flex}.kvc-form-error{color:var(--kv-color-danger);font-size:12.5px}.kvc-form-choice{gap:var(--kv-space-md);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.kvc-form-choice>legend{margin-block-end:6px}.kvc-form-radio{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.kvc-form-value{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:center;gap:8px;display:grid}.kvc-form-set{align-items:center;gap:10px;display:flex}.kvc-form-add{align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.kvc-form textarea.kvc-field{resize:vertical}.kvc-box{position:relative}.kvc-composer-row{align-items:center;gap:8px;display:flex}.kvc-composer-hint{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-inline-size:0;overflow:hidden}.kvc-composer-row .kvc-picker{flex:0 auto;min-inline-size:0}.kvc-composer-row .kvc-picker>.kvc-button{max-inline-size:100%}.kvc-composer-row .kvc-picker-label{min-inline-size:0}.kvc-composer .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-slash{z-index:20;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;inset-block-end:calc(100% + 6px);inset-inline:0;box-shadow:0 12px 32px #00000024}.kvc-slash-row{cursor:pointer;border-radius:8px;align-items:baseline;gap:12px;padding-block:7px;padding-inline:10px;display:flex}.kvc-slash-row[data-active=true]{background:var(--kv-color-background)}.kvc-slash-name{flex:0 0 9rem}.kvc-slash-row .kvc-mono{font-size:13px;font-weight:600}.kvc-call-parts{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;padding-inline:14px}.kvc-summary{flex-wrap:wrap;align-items:baseline;column-gap:8px;min-inline-size:0;font-size:13px;display:flex}.kvc-summary>.kvc-mono{min-inline-size:0}.kvc-block{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;font-size:13px}.kvc-block:not(.kvc-code-lines){padding-inline:14px}.kvc-code-lines{font-family:var(--kv-font-mono);font-size:12px;line-height:1.55}.kvc-code-line{gap:8px;min-block-size:1.55em;padding-inline:14px;display:flex}.kvc-code-line[data-kind=removed]{background:color-mix(in srgb, var(--kv-color-danger) 14%, transparent)}.kvc-code-line[data-kind=added]{background:color-mix(in srgb, var(--kv-color-success) 14%, transparent)}.kvc-line-number{text-align:end;min-inline-size:3ch;color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:none}.kvc-line-mark{color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:0 0 1ch}.kvc-line-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:auto;min-inline-size:0}.kvc-code-lines .kvc-link,.kvc-fields .kvc-link,.kvc-error .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-prose-lines{font-family:inherit;font-size:13px}.kvc-fold{margin-block-start:6px;margin-inline:14px;display:block}.kvc-output-block{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-fold{margin-block:6px}.kvc-error{color:var(--kv-color-danger);white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.kvc-entries{flex-direction:column;gap:2px;display:flex}.kvc-entry{align-items:center;gap:8px;display:flex}.kvc-entry>.kvc-mono{flex:auto;min-inline-size:0}.kvc-file-path{padding-block-end:4px;font-weight:600}.kvc-block>.kvc-code-lines>.kvc-code-line{padding-inline:0}.kvc-block>.kvc-code-lines>.kvc-fold{margin-inline:0}.kvc-fields{grid-template-columns:minmax(6rem,max-content) minmax(0,1fr);gap:4px 12px;margin:0;display:grid}.kvc-field-row{display:contents}.kvc-steps{gap:6px;padding-inline-start:0;list-style:none;display:grid}.kvc-step-arguments{padding-block-start:2px;padding-inline-start:1.5rem}.kvc-field-row>dt{font-family:var(--kv-font-mono);font-size:12px}.kvc-field-row>dd{overflow-wrap:anywhere;min-inline-size:0;margin:0}.kvc-field-block>.kvc-code-line,.kvc-field-block>.kvc-fold{margin-inline:0;padding-inline:0}.kvc-field-table{overflow-x:auto}.kvc-field-table table{border-collapse:collapse;font-size:12.5px}.kvc-field-table th,.kvc-field-table td{text-align:start;vertical-align:top;padding-block:3px;padding-inline:0 14px}.kvc-field-table th{color:var(--kv-color-muted);font-weight:500;font-family:var(--kv-font-mono);font-size:12px}.kvc-field-items{flex-direction:column;gap:2px;display:flex}.kvc-approval{border-block-start:1px solid var(--kv-color-border)}.kvc-approval>.kvc-actions{padding-block-start:0}.kvc-always>.kvc-link-button{margin-inline-end:auto}.kvc-reason,.kvc-always{flex-wrap:wrap;align-items:center;padding-block-start:0}.kvc-reason>textarea{flex:16rem}.kvc-always>input{flex:0 14rem;min-inline-size:8rem}.kvc-run-row{align-items:baseline;gap:10px;display:flex}.kvc-run-row>.kvc-run-call{flex:auto;min-inline-size:0}.kvc-run-row>.kvc-chip,.kvc-run-row>.kvc-muted{white-space:nowrap;flex:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .kvc-flip{transform:scaleX(-1)}.kvc-slash-row[aria-disabled=true]{opacity:.55;cursor:default}.kvc-button:focus-visible,.kvc-text-button:focus-visible,.kvc-link-button:focus-visible,.kvc-session:focus-visible,.kvc-switch:focus-visible,.kvc-chip-remove:focus-visible{outline:2px solid var(--kv-color-primary);outline-offset:2px}.kvc-box:focus-within,.kvc-search:focus-within{outline:2px solid var(--kv-color-primary);outline-offset:1px}.kvc-chip-remove{min-block-size:20px;padding:0}@media (pointer:coarse){.kvc-button{min-block-size:44px}.kvc-button.kvc-icon-button{inline-size:44px}.kvc-text-button,.kvc-link-button{align-items:center;min-block-size:44px;display:inline-flex}.kvc-chip-remove{min-block-size:44px;min-inline-size:44px}.kvc-switch{position:relative}.kvc-switch:after{content:"";position:absolute;inset-block:-10px;inset-inline:-2px}}
2
2
  /*$vite$:1*/
@@ -1,2 +1,2 @@
1
- .kvc-workspace{flex-direction:column;flex:1 1 0;align-self:stretch;block-size:100%;min-block-size:24rem;min-inline-size:min(100%,30rem);display:flex;position:relative;container:kvc-workspace/inline-size}.kvc-stage{flex:1 1 0;min-block-size:0;display:flex;position:relative}.kvc-workspace>.kvc-header{background:var(--kv-color-surface);color:var(--kv-color-text)}.kvc-conversation{background:var(--kv-color-surface);min-inline-size:0;color:var(--kv-color-text);flex-direction:column;flex:1 1 0;display:flex}.kvc-artifact-panel{background:var(--kv-color-surface);border-inline-start:1px solid var(--kv-color-border);flex-direction:column;flex:0 0 min(40%,32rem);min-inline-size:0;display:flex;position:relative;container-type:inline-size}.kvc-artifact-panel[data-sized=true]{flex-basis:clamp(20rem, var(--kvc-panel-width), 70%)}.kvc-panel-resizer{z-index:6;cursor:col-resize;touch-action:none;inline-size:8px;position:absolute;inset-block:0;inset-inline-start:-4px}.kvc-panel-resizer:hover,.kvc-panel-resizer:focus-visible,.kvc-panel-resizer[data-dragging=true]{background:color-mix(in srgb, var(--kv-color-primary) 35%, transparent);outline:none}.kvc-artifact-head{align-items:center;gap:var(--kv-space-sm);padding-block:12px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);display:flex}.kvc-artifact-name .kvc-picker{min-inline-size:0}.kvc-artifact-name .kvc-picker>.kvc-button{justify-content:space-between;max-inline-size:100%}.kvc-artifact-name .kvc-picker-label{min-inline-size:0;max-inline-size:none;font-size:15px;font-weight:600}.kvc-artifact-title{font-size:15px;font-weight:600}.kvc-artifact-name{flex-direction:column;flex:1 1 0;gap:2px;min-inline-size:0;display:flex}.kvc-artifact-name>.kvc-muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-tab-icon{display:none}@container (inline-size<=30rem){.kvc-artifact-head{padding-inline:var(--kv-space-md)}.kvc-artifact-actions .kvc-tab{align-items:center;padding-inline:8px;display:flex}.kvc-artifact-actions .kvc-tab-icon{display:block}.kvc-artifact-actions .kvc-tab-text{display:none}}.kvc-artifact-actions{flex:none;align-items:center;gap:6px;margin-inline-start:auto;display:flex}.kvc-button.kvc-icon-button{box-sizing:border-box;flex:none;inline-size:36px;padding-inline:0}.kvc-artifact-body{min-block-size:0;padding-block:var(--kv-space-md);padding-inline:var(--kv-space-lg);flex:auto;overflow:auto}.kvc-artifact-source{font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-artifact-frame{background:#fff;border:0;block-size:100%;inline-size:100%}@container (inline-size<=48rem){.kvc-artifact-panel{z-index:5;inline-size:min(100%,32rem);position:absolute;inset-block:0;inset-inline-end:0;box-shadow:0 12px 32px #00000024}}@container kvc-workspace (inline-size<=48rem){.kvc-panel-resizer{display:none}}.kvc-header{align-items:center;gap:var(--kv-space-sm);padding-block:4px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;display:flex;position:relative}.kvc-title{flex-wrap:wrap;flex:auto;align-items:baseline;column-gap:12px;min-inline-size:0;display:flex}.kvc-header-stats{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.kvc-muted{color:var(--kv-color-muted);font-size:12.5px}.kvc-tabs{border:1px solid var(--kv-color-border);border-radius:10px;gap:2px;padding:3px;display:flex}.kvc-tab{color:var(--kv-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding-block:4px;padding-inline:12px}.kvc-tab[aria-selected=true],.kvc-tab[aria-pressed=true]{background:var(--kv-color-background);color:var(--kv-color-text);font-weight:500}.kvc-scrollport{flex-direction:column;flex:auto;min-block-size:0;display:flex;position:relative}.kvc-scroll{flex:auto;min-block-size:0;position:relative;overflow-y:auto}.kvc-jump{inline-size:max-content;margin-inline:auto;position:absolute;inset-block-end:12px;inset-inline:0;box-shadow:0 4px 16px #00000029}.kvc-column{box-sizing:border-box;inline-size:100%;max-inline-size:800px;padding:var(--kv-space-md) var(--kv-space-lg);gap:var(--kv-space-md);overflow-wrap:anywhere;flex-direction:column;margin-inline:auto;display:flex}.kvc-user{background:var(--kv-color-background);border-radius:16px;white-space:pre-wrap;border-end-end-radius:4px;align-self:flex-end;max-inline-size:80%;padding-block:10px;padding-inline:14px}.kvc-queued{border:1px dashed var(--kv-color-border);background:0 0}.kvc-answer{gap:var(--kv-space-sm);flex-direction:column;display:flex}.kvc-card{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);overflow:hidden}.kvc-card-row{align-items:center;gap:10px;padding-block:9px;padding-inline:12px;display:flex}.kvc-card-body{border-block-start:1px solid var(--kv-color-border);gap:var(--kv-space-sm);flex-direction:column;padding-block:10px;padding-inline:14px;display:flex}.kvc-lines{text-align:start;flex-direction:column;flex:auto;gap:2px;min-inline-size:0;display:flex}.kvc-failed{border-color:var(--kv-color-danger)}.kvc-mono{font-family:var(--kv-font-mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:12.5px}.kvc-card-row>.kvc-muted,.kvc-card-row>.kvc-chip{white-space:nowrap;flex:none}.kvc-card-row>svg{flex:none}.kvc-output{background:var(--kv-color-surface);color:var(--kv-color-text);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;max-block-size:320px;margin:0;padding:10px 14px;font-size:12px;overflow-y:auto}.kvc-output+.kvc-output{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-output{max-block-size:none;overflow-y:visible}.kvc-output .kvc-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.kvc-chip{white-space:nowrap;border:1px solid var(--kv-color-border);border-radius:999px;align-items:center;gap:4px;padding-block:2px;padding-inline:8px;font-size:12px;font-weight:500;display:inline-flex}.kvc-ok{color:var(--kv-color-success)}.kvc-warn{color:var(--kv-color-warning)}.kvc-sign-in-failed,.kvc-danger{color:var(--kv-color-danger)}.kvc-notice{align-items:center;gap:var(--kv-space-sm);color:var(--kv-color-muted);font-size:13px;display:flex}.kvc-notice:before,.kvc-notice:after{content:"";background:var(--kv-color-border);flex:auto;block-size:1px}.kvc-ask{border-color:var(--kv-color-warning)}.kvc-option{border:1px solid var(--kv-color-border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.kvc-option:has(input:checked){border-color:var(--kv-color-primary);background:color-mix(in srgb, var(--kv-color-primary) 8%, var(--kv-color-surface))}.kvc-answered-option{color:var(--kv-color-muted);align-items:flex-start;gap:10px;display:flex}.kvc-answered-option[data-chosen=true]{color:var(--kv-color-text);font-weight:500}.kvc-answered-option>svg{flex:none;margin-block-start:3px}.kvc-answered-gap{flex:0 0 16px}.kvc-sr{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.kvc-button{border:1px solid var(--kv-color-border);background:var(--kv-color-surface);min-block-size:36px;color:var(--kv-color-text);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding-inline:14px;font-weight:500;display:inline-flex}a.kvc-button{color:inherit;text-decoration:none}.kvc-button:disabled{opacity:.5;cursor:default}.kvc-primary{background:var(--kv-color-primary);border-color:var(--kv-color-primary);color:var(--kv-color-on-primary)}.kvc-ghost{background:0 0;border-color:#0000}.kvc-actions{gap:var(--kv-space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.kvc-actions>.kvc-button{white-space:nowrap;flex:none}.kvc-composer{z-index:2;background:var(--kv-color-surface);padding-block:12px 18px;padding-inline:var(--kv-space-lg);position:sticky;inset-block-end:0}.kvc-box{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);gap:var(--kv-space-sm);border-radius:16px;flex-direction:column;max-inline-size:760px;margin-inline:auto;padding:10px 12px;display:flex}.kvc-field{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);inline-size:100%;color:inherit;font:inherit;border-radius:10px;padding-block:8px;padding-inline:12px}.kvc-field:disabled{opacity:.6;cursor:not-allowed}.kvc-box textarea{resize:none;color:inherit;font:inherit;background:0 0;border:0;outline:none;min-block-size:44px}.kvc-start{justify-content:safe center;gap:var(--kv-space-lg);min-height:0;padding:var(--kv-space-lg);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.kvc-start-note{text-align:center;margin:0}.kvc-link-button{color:var(--kv-color-primary);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.kvc-start h1{text-align:center;margin:0;font-size:26px;font-weight:600}.kvc-sessions{box-sizing:border-box;border-inline-end:1px solid var(--kv-color-border);flex-direction:column;flex:none;align-self:stretch;gap:2px;max-block-size:100%;inline-size:272px;padding:14px 12px;display:flex;overflow-y:auto}.kvc-session{min-block-size:44px;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding-inline:10px;display:flex}.kvc-session[aria-current=page]{background:color-mix(in srgb, var(--kv-color-primary) 16%, var(--kv-color-surface));font-weight:600}.kvc-session .kvc-muted,.kvc-session .kvc-chip{white-space:nowrap;flex:none}.kvc-session span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.kvc-group{color:var(--kv-color-muted);padding-block:12px 4px;padding-inline:10px;font-size:12px;font-weight:600}.kvc-spin{border:2px solid var(--kv-color-border);border-block-start-color:var(--kv-color-primary);border-radius:50%;flex:none;block-size:14px;inline-size:14px;animation:.9s linear infinite kvc-spin}.kvc-menu{z-index:10;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;min-inline-size:220px;padding:6px;display:flex;position:absolute;inset-block-start:100%;inset-inline-end:0;box-shadow:0 12px 32px #00000024}.kvc-menu button{text-align:start;justify-content:flex-start}.kvc-prompt{padding:var(--kv-space-md);border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-activity{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);align-items:center;gap:10px;padding-block:8px;padding-inline:12px;font-size:13.5px;display:flex}.kvc-activity-text{flex-direction:column;flex:auto;gap:6px;min-inline-size:0;display:flex}.kvc-activity-call{flex-direction:column;gap:2px;display:flex}.kvc-oneline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-picker{position:relative}.kvc-picker-label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:16rem;overflow:hidden}.kvc-popover{z-index:20;box-sizing:border-box;inline-size:min(26rem, calc(100cqw - 2 * var(--kv-space-lg)));border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;box-shadow:0 12px 32px #00000024}.kvc-choices{inline-size:max-content;min-inline-size:10rem;max-inline-size:min(22rem, calc(100cqw - 2 * var(--kv-space-md)));gap:2px;max-block-size:18rem;overflow-y:auto}.kvc-choices>.kvc-model{flex:none}.kvc-recovery{align-items:center;gap:var(--kv-space-sm);flex-wrap:wrap;display:flex}.kvc-recovery .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-search{border:1px solid var(--kv-color-border);border-radius:10px;align-items:center;gap:8px;padding-inline:10px;display:flex}.kvc-search input{min-inline-size:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:auto;padding-block:8px}.kvc-options{flex-direction:column;max-block-size:18rem;display:flex;overflow-y:auto}.kvc-model{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding-block:7px;padding-inline:10px;display:flex}.kvc-model[data-active=true]{background:var(--kv-color-background)}.kvc-model[aria-selected=true]{font-weight:600}.kvc-model-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-none,.kvc-count{margin:0;padding-inline:10px}@keyframes kvc-spin{to{transform:rotate(360deg)}}.kvc-dot{background:var(--kv-color-success);border-radius:50%;flex:none;block-size:8px;inline-size:8px}.kvc-jobs-panel{max-block-size:70vh;inline-size:min(32rem,100%);inset-inline:auto 0;overflow-y:auto}.kvc-job{border:1px solid var(--kv-color-border);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.kvc-job-head{justify-content:space-between;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-job-title{flex:auto;min-inline-size:0;font-weight:600}.kvc-job-head>.kvc-muted,.kvc-job-head>.kvc-chip{white-space:nowrap;flex:none}.kvc-job-links{flex-wrap:wrap;gap:4px 12px;display:flex}.kvc-job-links .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-job .kvc-output{background:var(--kv-color-background);border-radius:8px}.kvc-connectors{flex-direction:column;display:flex}.kvc-connectors-state{flex-wrap:wrap;align-items:center;gap:10px;padding-block-end:8px;display:flex}.kvc-text-button{color:var(--kv-color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.kvc-text-button:disabled{opacity:.5;cursor:default}.kvc-connector{border-block-end:1px solid var(--kv-color-border);align-items:center;gap:16px;padding-block:12px;display:flex}.kvc-connector:last-child{border-block-end:0}.kvc-connector-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.kvc-connector-name{font-size:13.5px;font-weight:600}.kvc-switch{background:var(--kv-color-border);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;block-size:24px;inline-size:40px;padding:2px;transition:background-color .12s;display:flex}.kvc-switch[aria-checked=true]{background:var(--kv-color-primary)}.kvc-switch:disabled{opacity:.5;cursor:default}.kvc-switch-knob{background:var(--kv-color-surface);border-radius:999px;block-size:20px;inline-size:20px;transition:margin-inline-start .12s}.kvc-switch[aria-checked=true] .kvc-switch-knob{margin-inline-start:16px}.kvc-setting{border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;align-items:flex-start;gap:24px;padding-block:16px;display:flex}.kvc-setting-text{flex-direction:column;flex:20rem;gap:4px;min-inline-size:15rem;display:flex}.kvc-setting-title{font-weight:600}.kvc-setting-control{flex-direction:column;gap:8px;inline-size:22.5rem;max-inline-size:100%;display:flex}.kvc-setting .kvc-picker>.kvc-button{justify-content:space-between;inline-size:100%}.kvc-setting .kvc-picker-label{max-inline-size:none}.kvc-setting .kvc-popover{inline-size:100%}.kvc-setting .kvc-connectors-state{padding-block-end:0}.kvc-connector-actions{flex:none;align-items:center;gap:8px;display:flex}.kvc-dialog-backdrop{z-index:40;padding:var(--kv-space-md);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.kvc-dialog{box-sizing:border-box;gap:var(--kv-space-sm);inline-size:100%;max-inline-size:44rem;max-block-size:calc(100dvh - 2 * var(--kv-space-md));background:var(--kv-color-surface);color:var(--kv-color-text);padding:var(--kv-space-lg);border-radius:16px;outline:none;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 20px 50px #00000040}.kvc-dialog-head{align-items:flex-start;gap:12px;display:flex}.kvc-dialog-title{font-size:16px;font-weight:600}.kvc-dialog-rows{flex-direction:column;display:flex}.kvc-dialog-rows>.kvc-setting:last-child{border-block-end:0;padding-block-end:0}.kvc-server{align-items:flex-start}.kvc-server-state{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.kvc-server-state[data-status=ready]{color:var(--kv-color-success)}.kvc-server-state[data-status=failed],.kvc-server-state[data-status=signInNeeded]{color:var(--kv-color-warning)}.kvc-server-state[data-status=checking]{color:var(--kv-color-muted)}.kvc-server-reason{overflow-wrap:anywhere;white-space:pre-wrap}.kvc-server-sign-in{align-self:flex-start;margin-block-start:6px}.kvc-sign-in{max-inline-size:32rem;padding:var(--kv-space-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-inline:auto;display:flex}.kvc-sign-in-done{color:var(--kv-color-success)}.kvc-sign-in-failed{color:var(--kv-color-danger)}.kvc-danger{background:var(--kv-color-danger);border-color:var(--kv-color-danger);color:var(--kv-color-on-primary)}.kvc-form{gap:var(--kv-space-md);flex-direction:column;padding-block-start:var(--kv-space-sm);display:flex}.kvc-form-field{flex-direction:column;gap:6px;display:flex}.kvc-form-label{padding:0;font-weight:600}.kvc-confirm{border:1px solid var(--kv-color-danger);border-radius:var(--kv-radius);flex-direction:column;gap:8px;padding:12px;display:flex}.kvc-form-error{color:var(--kv-color-danger);font-size:12.5px}.kvc-form-choice{gap:var(--kv-space-md);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.kvc-form-choice>legend{margin-block-end:6px}.kvc-form-radio{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.kvc-form-value{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:center;gap:8px;display:grid}.kvc-form-set{align-items:center;gap:10px;display:flex}.kvc-form-add{align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.kvc-form textarea.kvc-field{resize:vertical}.kvc-box{position:relative}.kvc-composer-row{align-items:center;gap:8px;display:flex}.kvc-composer-hint{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-inline-size:0;overflow:hidden}.kvc-composer-row .kvc-picker{flex:0 auto;min-inline-size:0}.kvc-composer-row .kvc-picker>.kvc-button{max-inline-size:100%}.kvc-composer-row .kvc-picker-label{min-inline-size:0}.kvc-composer .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-slash{z-index:20;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;inset-block-end:calc(100% + 6px);inset-inline:0;box-shadow:0 12px 32px #00000024}.kvc-slash-row{cursor:pointer;border-radius:8px;align-items:baseline;gap:12px;padding-block:7px;padding-inline:10px;display:flex}.kvc-slash-row[data-active=true]{background:var(--kv-color-background)}.kvc-slash-name{flex:0 0 9rem}.kvc-slash-row .kvc-mono{font-size:13px;font-weight:600}.kvc-call-parts{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;padding-inline:14px}.kvc-summary{flex-wrap:wrap;align-items:baseline;column-gap:8px;min-inline-size:0;font-size:13px;display:flex}.kvc-summary>.kvc-mono{min-inline-size:0}.kvc-block{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;font-size:13px}.kvc-block:not(.kvc-code-lines){padding-inline:14px}.kvc-code-lines{font-family:var(--kv-font-mono);font-size:12px;line-height:1.55}.kvc-code-line{gap:8px;min-block-size:1.55em;padding-inline:14px;display:flex}.kvc-code-line[data-kind=removed]{background:color-mix(in srgb, var(--kv-color-danger) 14%, transparent)}.kvc-code-line[data-kind=added]{background:color-mix(in srgb, var(--kv-color-success) 14%, transparent)}.kvc-line-number{text-align:end;min-inline-size:3ch;color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:none}.kvc-line-mark{color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:0 0 1ch}.kvc-line-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:auto;min-inline-size:0}.kvc-code-lines .kvc-link,.kvc-fields .kvc-link,.kvc-error .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-prose-lines{font-family:inherit;font-size:13px}.kvc-fold{margin-block-start:6px;margin-inline:14px;display:block}.kvc-output-block{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-fold{margin-block:6px}.kvc-error{color:var(--kv-color-danger);white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.kvc-entries{flex-direction:column;gap:2px;display:flex}.kvc-entry{align-items:center;gap:8px;display:flex}.kvc-entry>.kvc-mono{flex:auto;min-inline-size:0}.kvc-file-path{padding-block-end:4px;font-weight:600}.kvc-block>.kvc-code-lines>.kvc-code-line{padding-inline:0}.kvc-block>.kvc-code-lines>.kvc-fold{margin-inline:0}.kvc-fields{grid-template-columns:minmax(6rem,max-content) minmax(0,1fr);gap:4px 12px;margin:0;display:grid}.kvc-field-row{display:contents}.kvc-steps{gap:6px;padding-inline-start:0;list-style:none;display:grid}.kvc-step-arguments{padding-block-start:2px;padding-inline-start:1.5rem}.kvc-field-row>dt{font-family:var(--kv-font-mono);font-size:12px}.kvc-field-row>dd{overflow-wrap:anywhere;min-inline-size:0;margin:0}.kvc-field-block>.kvc-code-line,.kvc-field-block>.kvc-fold{margin-inline:0;padding-inline:0}.kvc-field-table{overflow-x:auto}.kvc-field-table table{border-collapse:collapse;font-size:12.5px}.kvc-field-table th,.kvc-field-table td{text-align:start;vertical-align:top;padding-block:3px;padding-inline:0 14px}.kvc-field-table th{color:var(--kv-color-muted);font-weight:500;font-family:var(--kv-font-mono);font-size:12px}.kvc-field-items{flex-direction:column;gap:2px;display:flex}.kvc-approval{border-block-start:1px solid var(--kv-color-border)}.kvc-approval>.kvc-actions{padding-block-start:0}.kvc-run-row{align-items:baseline;gap:10px;display:flex}.kvc-run-row>.kvc-run-call{flex:auto;min-inline-size:0}.kvc-run-row>.kvc-chip,.kvc-run-row>.kvc-muted{white-space:nowrap;flex:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .kvc-flip{transform:scaleX(-1)}.kvc-slash-row[aria-disabled=true]{opacity:.55;cursor:default}.kvc-button:focus-visible,.kvc-text-button:focus-visible,.kvc-link-button:focus-visible,.kvc-session:focus-visible,.kvc-switch:focus-visible,.kvc-chip-remove:focus-visible{outline:2px solid var(--kv-color-primary);outline-offset:2px}.kvc-box:focus-within,.kvc-search:focus-within{outline:2px solid var(--kv-color-primary);outline-offset:1px}.kvc-chip-remove{min-block-size:20px;padding:0}@media (pointer:coarse){.kvc-button{min-block-size:44px}.kvc-button.kvc-icon-button{inline-size:44px}.kvc-text-button,.kvc-link-button{align-items:center;min-block-size:44px;display:inline-flex}.kvc-chip-remove{min-block-size:44px;min-inline-size:44px}.kvc-switch{position:relative}.kvc-switch:after{content:"";position:absolute;inset-block:-10px;inset-inline:-2px}}
1
+ .kvc-workspace{flex-direction:column;flex:1 1 0;align-self:stretch;block-size:100%;min-block-size:24rem;min-inline-size:min(100%,30rem);display:flex;position:relative;container:kvc-workspace/inline-size}.kvc-stage{flex:1 1 0;min-block-size:0;display:flex;position:relative}.kvc-workspace>.kvc-header{background:var(--kv-color-surface);color:var(--kv-color-text)}.kvc-conversation{background:var(--kv-color-surface);min-inline-size:0;color:var(--kv-color-text);flex-direction:column;flex:1 1 0;display:flex}.kvc-artifact-panel{background:var(--kv-color-surface);border-inline-start:1px solid var(--kv-color-border);flex-direction:column;flex:0 0 min(40%,32rem);min-inline-size:0;display:flex;position:relative;container-type:inline-size}.kvc-artifact-panel[data-sized=true]{flex-basis:clamp(20rem, var(--kvc-panel-width), 70%)}.kvc-panel-resizer{z-index:6;cursor:col-resize;touch-action:none;inline-size:8px;position:absolute;inset-block:0;inset-inline-start:-4px}.kvc-panel-resizer:hover,.kvc-panel-resizer:focus-visible,.kvc-panel-resizer[data-dragging=true]{background:color-mix(in srgb, var(--kv-color-primary) 35%, transparent);outline:none}.kvc-artifact-head{align-items:center;gap:var(--kv-space-sm);padding-block:12px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);display:flex}.kvc-artifact-name .kvc-picker{min-inline-size:0}.kvc-artifact-name .kvc-picker>.kvc-button{justify-content:space-between;max-inline-size:100%}.kvc-artifact-name .kvc-picker-label{min-inline-size:0;max-inline-size:none;font-size:15px;font-weight:600}.kvc-artifact-title{font-size:15px;font-weight:600}.kvc-artifact-name{flex-direction:column;flex:1 1 0;gap:2px;min-inline-size:0;display:flex}.kvc-artifact-name>.kvc-muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-tab-icon{display:none}@container (inline-size<=30rem){.kvc-artifact-head{padding-inline:var(--kv-space-md)}.kvc-artifact-actions .kvc-tab{align-items:center;padding-inline:8px;display:flex}.kvc-artifact-actions .kvc-tab-icon{display:block}.kvc-artifact-actions .kvc-tab-text{display:none}}.kvc-artifact-actions{flex:none;align-items:center;gap:6px;margin-inline-start:auto;display:flex}.kvc-button.kvc-icon-button{box-sizing:border-box;flex:none;inline-size:36px;padding-inline:0}.kvc-artifact-body{min-block-size:0;padding-block:var(--kv-space-md);padding-inline:var(--kv-space-lg);flex:auto;overflow:auto}.kvc-artifact-source{font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-artifact-frame{background:#fff;border:0;block-size:100%;inline-size:100%}@container (inline-size<=48rem){.kvc-artifact-panel{z-index:5;inline-size:min(100%,32rem);position:absolute;inset-block:0;inset-inline-end:0;box-shadow:0 12px 32px #00000024}}@container kvc-workspace (inline-size<=48rem){.kvc-panel-resizer{display:none}}.kvc-header{align-items:center;gap:var(--kv-space-sm);padding-block:4px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;display:flex;position:relative}.kvc-title{flex-wrap:wrap;flex:auto;align-items:baseline;column-gap:12px;min-inline-size:0;display:flex}.kvc-header-stats{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.kvc-muted{color:var(--kv-color-muted);font-size:12.5px}.kvc-tabs{border:1px solid var(--kv-color-border);border-radius:10px;gap:2px;padding:3px;display:flex}.kvc-tab{color:var(--kv-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding-block:4px;padding-inline:12px}.kvc-tab[aria-selected=true],.kvc-tab[aria-pressed=true]{background:var(--kv-color-background);color:var(--kv-color-text);font-weight:500}.kvc-scrollport{flex-direction:column;flex:auto;min-block-size:0;display:flex;position:relative}.kvc-scroll{flex:auto;min-block-size:0;position:relative;overflow-y:auto}.kvc-jump{inline-size:max-content;margin-inline:auto;position:absolute;inset-block-end:12px;inset-inline:0;box-shadow:0 4px 16px #00000029}.kvc-column{box-sizing:border-box;inline-size:100%;max-inline-size:800px;padding:var(--kv-space-md) var(--kv-space-lg);gap:var(--kv-space-md);overflow-wrap:anywhere;flex-direction:column;margin-inline:auto;display:flex}.kvc-user{background:var(--kv-color-background);border-radius:16px;white-space:pre-wrap;border-end-end-radius:4px;align-self:flex-end;max-inline-size:80%;padding-block:10px;padding-inline:14px}.kvc-queued{border:1px dashed var(--kv-color-border);background:0 0}.kvc-answer{gap:var(--kv-space-sm);flex-direction:column;display:flex}.kvc-card{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);overflow:hidden}.kvc-card-row{align-items:center;gap:10px;padding-block:9px;padding-inline:12px;display:flex}.kvc-card-body{border-block-start:1px solid var(--kv-color-border);gap:var(--kv-space-sm);flex-direction:column;padding-block:10px;padding-inline:14px;display:flex}.kvc-lines{text-align:start;flex-direction:column;flex:auto;gap:2px;min-inline-size:0;display:flex}.kvc-failed{border-color:var(--kv-color-danger)}.kvc-mono{font-family:var(--kv-font-mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:12.5px}.kvc-card-row>.kvc-muted,.kvc-card-row>.kvc-chip{white-space:nowrap;flex:none}.kvc-card-row>svg{flex:none}.kvc-output{background:var(--kv-color-surface);color:var(--kv-color-text);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;max-block-size:320px;margin:0;padding:10px 14px;font-size:12px;overflow-y:auto}.kvc-output+.kvc-output{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-output{max-block-size:none;overflow-y:visible}.kvc-output .kvc-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.kvc-chip{white-space:nowrap;border:1px solid var(--kv-color-border);border-radius:999px;align-items:center;gap:4px;padding-block:2px;padding-inline:8px;font-size:12px;font-weight:500;display:inline-flex}.kvc-ok{color:var(--kv-color-success)}.kvc-warn{color:var(--kv-color-warning)}.kvc-sign-in-failed,.kvc-danger{color:var(--kv-color-danger)}.kvc-notice{align-items:center;gap:var(--kv-space-sm);color:var(--kv-color-muted);font-size:13px;display:flex}.kvc-notice:before,.kvc-notice:after{content:"";background:var(--kv-color-border);flex:auto;block-size:1px}.kvc-ask{border-color:var(--kv-color-warning)}.kvc-option{border:1px solid var(--kv-color-border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.kvc-option:has(input:checked){border-color:var(--kv-color-primary);background:color-mix(in srgb, var(--kv-color-primary) 8%, var(--kv-color-surface))}.kvc-answered-option{color:var(--kv-color-muted);align-items:flex-start;gap:10px;display:flex}.kvc-answered-option[data-chosen=true]{color:var(--kv-color-text);font-weight:500}.kvc-answered-option>svg{flex:none;margin-block-start:3px}.kvc-answered-gap{flex:0 0 16px}.kvc-sr{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.kvc-button{border:1px solid var(--kv-color-border);background:var(--kv-color-surface);min-block-size:36px;color:var(--kv-color-text);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding-inline:14px;font-weight:500;display:inline-flex}a.kvc-button{color:inherit;text-decoration:none}.kvc-button:disabled{opacity:.5;cursor:default}.kvc-primary,.kvc-decide[aria-pressed=true]{background:var(--kv-color-primary);border-color:var(--kv-color-primary);color:var(--kv-color-on-primary)}.kvc-ghost{background:0 0;border-color:#0000}.kvc-actions{gap:var(--kv-space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.kvc-actions>.kvc-button{white-space:nowrap;flex:none}.kvc-composer{z-index:2;background:var(--kv-color-surface);padding-block:12px 18px;padding-inline:var(--kv-space-lg);position:sticky;inset-block-end:0}.kvc-box{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);gap:var(--kv-space-sm);border-radius:16px;flex-direction:column;max-inline-size:760px;margin-inline:auto;padding:10px 12px;display:flex}.kvc-field{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);inline-size:100%;color:inherit;font:inherit;border-radius:10px;padding-block:8px;padding-inline:12px}.kvc-field:disabled{opacity:.6;cursor:not-allowed}.kvc-box textarea{resize:none;color:inherit;font:inherit;background:0 0;border:0;outline:none;min-block-size:44px}.kvc-start{justify-content:safe center;gap:var(--kv-space-lg);min-height:0;padding:var(--kv-space-lg);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.kvc-start-note{text-align:center;margin:0}.kvc-link-button{color:var(--kv-color-primary);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.kvc-start h1{text-align:center;margin:0;font-size:26px;font-weight:600}.kvc-sessions{box-sizing:border-box;border-inline-end:1px solid var(--kv-color-border);flex-direction:column;flex:none;align-self:stretch;gap:2px;max-block-size:100%;inline-size:272px;padding:14px 12px;display:flex;overflow-y:auto}.kvc-session{min-block-size:44px;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding-inline:10px;display:flex}.kvc-session[aria-current=page]{background:color-mix(in srgb, var(--kv-color-primary) 16%, var(--kv-color-surface));font-weight:600}.kvc-session .kvc-muted,.kvc-session .kvc-chip{white-space:nowrap;flex:none}.kvc-session span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.kvc-group{color:var(--kv-color-muted);padding-block:12px 4px;padding-inline:10px;font-size:12px;font-weight:600}.kvc-spin{border:2px solid var(--kv-color-border);border-block-start-color:var(--kv-color-primary);border-radius:50%;flex:none;block-size:14px;inline-size:14px;animation:.9s linear infinite kvc-spin}.kvc-menu{z-index:10;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;min-inline-size:220px;padding:6px;display:flex;position:absolute;inset-block-start:100%;inset-inline-end:0;box-shadow:0 12px 32px #00000024}.kvc-menu button{text-align:start;justify-content:flex-start}.kvc-prompt{padding:var(--kv-space-md);border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-activity{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);align-items:center;gap:10px;padding-block:8px;padding-inline:12px;font-size:13.5px;display:flex}.kvc-activity-text{flex-direction:column;flex:auto;gap:6px;min-inline-size:0;display:flex}.kvc-activity-call{flex-direction:column;gap:2px;display:flex}.kvc-oneline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-picker{position:relative}.kvc-picker-label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:16rem;overflow:hidden}.kvc-popover{z-index:20;box-sizing:border-box;inline-size:min(26rem, calc(100cqw - 2 * var(--kv-space-lg)));border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;box-shadow:0 12px 32px #00000024}.kvc-choices{inline-size:max-content;min-inline-size:10rem;max-inline-size:min(22rem, calc(100cqw - 2 * var(--kv-space-md)));gap:2px;max-block-size:18rem;overflow-y:auto}.kvc-choices>.kvc-model{flex:none}.kvc-recovery{align-items:center;gap:var(--kv-space-sm);flex-wrap:wrap;display:flex}.kvc-recovery .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-search{border:1px solid var(--kv-color-border);border-radius:10px;align-items:center;gap:8px;padding-inline:10px;display:flex}.kvc-search input{min-inline-size:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:auto;padding-block:8px}.kvc-options{flex-direction:column;max-block-size:18rem;display:flex;overflow-y:auto}.kvc-model{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding-block:7px;padding-inline:10px;display:flex}.kvc-model[data-active=true]{background:var(--kv-color-background)}.kvc-model[aria-selected=true]{font-weight:600}.kvc-model-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-none,.kvc-count{margin:0;padding-inline:10px}@keyframes kvc-spin{to{transform:rotate(360deg)}}.kvc-dot{background:var(--kv-color-success);border-radius:50%;flex:none;block-size:8px;inline-size:8px}.kvc-jobs-panel{max-block-size:70vh;inline-size:min(32rem,100%);inset-inline:auto 0;overflow-y:auto}.kvc-job{border:1px solid var(--kv-color-border);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.kvc-job-head{justify-content:space-between;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-job-title{flex:auto;min-inline-size:0;font-weight:600}.kvc-job-head>.kvc-muted,.kvc-job-head>.kvc-chip{white-space:nowrap;flex:none}.kvc-job-links{flex-wrap:wrap;gap:4px 12px;display:flex}.kvc-job-links .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-job .kvc-output{background:var(--kv-color-background);border-radius:8px}.kvc-connectors{flex-direction:column;display:flex}.kvc-connectors-state{flex-wrap:wrap;align-items:center;gap:10px;padding-block-end:8px;display:flex}.kvc-text-button{color:var(--kv-color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.kvc-text-button:disabled{opacity:.5;cursor:default}.kvc-connector{border-block-end:1px solid var(--kv-color-border);align-items:center;gap:16px;padding-block:12px;display:flex}.kvc-connector:last-child{border-block-end:0}.kvc-connector-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.kvc-connector-name{font-size:13.5px;font-weight:600}.kvc-switch{background:var(--kv-color-border);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;block-size:24px;inline-size:40px;padding:2px;transition:background-color .12s;display:flex}.kvc-switch[aria-checked=true]{background:var(--kv-color-primary)}.kvc-switch:disabled{opacity:.5;cursor:default}.kvc-switch-knob{background:var(--kv-color-surface);border-radius:999px;block-size:20px;inline-size:20px;transition:margin-inline-start .12s}.kvc-switch[aria-checked=true] .kvc-switch-knob{margin-inline-start:16px}.kvc-setting{border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;align-items:flex-start;gap:24px;padding-block:16px;display:flex}.kvc-setting-text{flex-direction:column;flex:20rem;gap:4px;min-inline-size:15rem;display:flex}.kvc-setting-title{font-weight:600}.kvc-setting-control{flex-direction:column;gap:8px;inline-size:22.5rem;max-inline-size:100%;display:flex}.kvc-setting .kvc-picker>.kvc-button{justify-content:space-between;inline-size:100%}.kvc-setting .kvc-picker-label{max-inline-size:none}.kvc-setting .kvc-popover{inline-size:100%}.kvc-setting .kvc-connectors-state{padding-block-end:0}.kvc-connector-actions{flex:none;align-items:center;gap:8px;display:flex}.kvc-dialog-backdrop{z-index:40;padding:var(--kv-space-md);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.kvc-dialog{box-sizing:border-box;gap:var(--kv-space-sm);inline-size:100%;max-inline-size:44rem;max-block-size:calc(100dvh - 2 * var(--kv-space-md));background:var(--kv-color-surface);color:var(--kv-color-text);padding:var(--kv-space-lg);border-radius:16px;outline:none;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 20px 50px #00000040}.kvc-dialog-head{align-items:flex-start;gap:12px;display:flex}.kvc-dialog-title{font-size:16px;font-weight:600}.kvc-dialog-rows{flex-direction:column;display:flex}.kvc-dialog-rows>.kvc-setting:last-child{border-block-end:0;padding-block-end:0}.kvc-server{align-items:flex-start}.kvc-server-state{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.kvc-server-state[data-status=ready]{color:var(--kv-color-success)}.kvc-server-state[data-status=failed],.kvc-server-state[data-status=signInNeeded]{color:var(--kv-color-warning)}.kvc-server-state[data-status=checking]{color:var(--kv-color-muted)}.kvc-server-reason{overflow-wrap:anywhere;white-space:pre-wrap}.kvc-server-sign-in{align-self:flex-start;margin-block-start:6px}.kvc-sign-in{max-inline-size:32rem;padding:var(--kv-space-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-inline:auto;display:flex}.kvc-sign-in-done{color:var(--kv-color-success)}.kvc-sign-in-failed{color:var(--kv-color-danger)}.kvc-danger{background:var(--kv-color-danger);border-color:var(--kv-color-danger);color:var(--kv-color-on-primary)}.kvc-form{gap:var(--kv-space-md);flex-direction:column;padding-block-start:var(--kv-space-sm);display:flex}.kvc-form-field{flex-direction:column;gap:6px;display:flex}.kvc-form-label{padding:0;font-weight:600}.kvc-confirm{border:1px solid var(--kv-color-danger);border-radius:var(--kv-radius);flex-direction:column;gap:8px;padding:12px;display:flex}.kvc-preferences{resize:vertical;min-block-size:6rem;inline-size:100%}.kvc-remember{margin-block-start:4px;display:block}.kvc-fold-body{border-block-start:1px solid var(--kv-color-border);flex-direction:column;gap:6px;padding:6px 8px 8px;display:flex}.kvc-final{border-inline-start:3px solid var(--kv-color-primary);padding-inline-start:12px}.kvc-changes{flex-direction:column;gap:8px;display:flex}.kvc-change-head{text-align:start;flex:auto;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-diff>[data-kind=added]{color:var(--kv-color-success,inherit);background:color-mix(in srgb, var(--kv-color-success,green) 12%, transparent)}.kvc-diff>[data-kind=removed]{color:var(--kv-color-danger);background:color-mix(in srgb, var(--kv-color-danger) 12%, transparent)}.kvc-diff>[data-kind=hunk],.kvc-diff>[data-kind=head]{color:var(--kv-color-muted,inherit)}.kvc-picker-icon{flex:none;display:none}.kvc-artifact-name .kvc-picker>.kvc-button{min-block-size:0;padding-block:2px}.kvc-decide{white-space:nowrap}@container kvc-workspace (inline-size<=30rem){.kvc-composer-row .kvc-picker-icon{display:block}.kvc-composer-row .kvc-picker-label{display:none}}.kvc-chats-bar{display:none}@media (width<=60rem){.kvc-sessions{display:none}.kvc-drawer .kvc-sessions{border-inline-end:0;inline-size:100%;display:flex}.kvc-chats-bar{padding-block:4px;padding-inline:var(--kv-space-md);border-block-end:1px solid var(--kv-color-border);display:flex}}.kvc-drawer-backdrop{z-index:40;background:#00000059;position:fixed;inset:0}.kvc-drawer{background:var(--kv-color-surface);inline-size:min(85vw,20rem);position:absolute;inset-block:0;inset-inline-start:0;overflow-y:auto;box-shadow:0 12px 32px #0003}.kvc-rules{flex-direction:column;gap:6px;margin-block-start:8px;display:flex}.kvc-rule{justify-content:space-between;align-items:center;gap:12px;display:flex}.kvc-form-error{color:var(--kv-color-danger);font-size:12.5px}.kvc-form-choice{gap:var(--kv-space-md);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.kvc-form-choice>legend{margin-block-end:6px}.kvc-form-radio{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.kvc-form-value{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:center;gap:8px;display:grid}.kvc-form-set{align-items:center;gap:10px;display:flex}.kvc-form-add{align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.kvc-form textarea.kvc-field{resize:vertical}.kvc-box{position:relative}.kvc-composer-row{align-items:center;gap:8px;display:flex}.kvc-composer-hint{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-inline-size:0;overflow:hidden}.kvc-composer-row .kvc-picker{flex:0 auto;min-inline-size:0}.kvc-composer-row .kvc-picker>.kvc-button{max-inline-size:100%}.kvc-composer-row .kvc-picker-label{min-inline-size:0}.kvc-composer .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-slash{z-index:20;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;inset-block-end:calc(100% + 6px);inset-inline:0;box-shadow:0 12px 32px #00000024}.kvc-slash-row{cursor:pointer;border-radius:8px;align-items:baseline;gap:12px;padding-block:7px;padding-inline:10px;display:flex}.kvc-slash-row[data-active=true]{background:var(--kv-color-background)}.kvc-slash-name{flex:0 0 9rem}.kvc-slash-row .kvc-mono{font-size:13px;font-weight:600}.kvc-call-parts{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;padding-inline:14px}.kvc-summary{flex-wrap:wrap;align-items:baseline;column-gap:8px;min-inline-size:0;font-size:13px;display:flex}.kvc-summary>.kvc-mono{min-inline-size:0}.kvc-block{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;font-size:13px}.kvc-block:not(.kvc-code-lines){padding-inline:14px}.kvc-code-lines{font-family:var(--kv-font-mono);font-size:12px;line-height:1.55}.kvc-code-line{gap:8px;min-block-size:1.55em;padding-inline:14px;display:flex}.kvc-code-line[data-kind=removed]{background:color-mix(in srgb, var(--kv-color-danger) 14%, transparent)}.kvc-code-line[data-kind=added]{background:color-mix(in srgb, var(--kv-color-success) 14%, transparent)}.kvc-line-number{text-align:end;min-inline-size:3ch;color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:none}.kvc-line-mark{color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:0 0 1ch}.kvc-line-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:auto;min-inline-size:0}.kvc-code-lines .kvc-link,.kvc-fields .kvc-link,.kvc-error .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-prose-lines{font-family:inherit;font-size:13px}.kvc-fold{margin-block-start:6px;margin-inline:14px;display:block}.kvc-output-block{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-fold{margin-block:6px}.kvc-error{color:var(--kv-color-danger);white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.kvc-entries{flex-direction:column;gap:2px;display:flex}.kvc-entry{align-items:center;gap:8px;display:flex}.kvc-entry>.kvc-mono{flex:auto;min-inline-size:0}.kvc-file-path{padding-block-end:4px;font-weight:600}.kvc-block>.kvc-code-lines>.kvc-code-line{padding-inline:0}.kvc-block>.kvc-code-lines>.kvc-fold{margin-inline:0}.kvc-fields{grid-template-columns:minmax(6rem,max-content) minmax(0,1fr);gap:4px 12px;margin:0;display:grid}.kvc-field-row{display:contents}.kvc-steps{gap:6px;padding-inline-start:0;list-style:none;display:grid}.kvc-step-arguments{padding-block-start:2px;padding-inline-start:1.5rem}.kvc-field-row>dt{font-family:var(--kv-font-mono);font-size:12px}.kvc-field-row>dd{overflow-wrap:anywhere;min-inline-size:0;margin:0}.kvc-field-block>.kvc-code-line,.kvc-field-block>.kvc-fold{margin-inline:0;padding-inline:0}.kvc-field-table{overflow-x:auto}.kvc-field-table table{border-collapse:collapse;font-size:12.5px}.kvc-field-table th,.kvc-field-table td{text-align:start;vertical-align:top;padding-block:3px;padding-inline:0 14px}.kvc-field-table th{color:var(--kv-color-muted);font-weight:500;font-family:var(--kv-font-mono);font-size:12px}.kvc-field-items{flex-direction:column;gap:2px;display:flex}.kvc-approval{border-block-start:1px solid var(--kv-color-border)}.kvc-approval>.kvc-actions{padding-block-start:0}.kvc-always>.kvc-link-button{margin-inline-end:auto}.kvc-reason,.kvc-always{flex-wrap:wrap;align-items:center;padding-block-start:0}.kvc-reason>textarea{flex:16rem}.kvc-always>input{flex:0 14rem;min-inline-size:8rem}.kvc-run-row{align-items:baseline;gap:10px;display:flex}.kvc-run-row>.kvc-run-call{flex:auto;min-inline-size:0}.kvc-run-row>.kvc-chip,.kvc-run-row>.kvc-muted{white-space:nowrap;flex:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .kvc-flip{transform:scaleX(-1)}.kvc-slash-row[aria-disabled=true]{opacity:.55;cursor:default}.kvc-button:focus-visible,.kvc-text-button:focus-visible,.kvc-link-button:focus-visible,.kvc-session:focus-visible,.kvc-switch:focus-visible,.kvc-chip-remove:focus-visible{outline:2px solid var(--kv-color-primary);outline-offset:2px}.kvc-box:focus-within,.kvc-search:focus-within{outline:2px solid var(--kv-color-primary);outline-offset:1px}.kvc-chip-remove{min-block-size:20px;padding:0}@media (pointer:coarse){.kvc-button{min-block-size:44px}.kvc-button.kvc-icon-button{inline-size:44px}.kvc-text-button,.kvc-link-button{align-items:center;min-block-size:44px;display:inline-flex}.kvc-chip-remove{min-block-size:44px;min-inline-size:44px}.kvc-switch{position:relative}.kvc-switch:after{content:"";position:absolute;inset-block:-10px;inset-inline:-2px}}
2
2
  /*$vite$:1*/
@@ -137,32 +137,55 @@ function I(e, t) {
137
137
  e.toast(n === void 0 ? "kvcoder.ui.failed" : N(n.code), n?.params ?? {}, "error");
138
138
  }
139
139
  //#endregion
140
+ //#region web/src/needs-you-notices.ts
141
+ var L = () => typeof Notification < "u";
142
+ function R(e, t) {
143
+ let n = new Notification(e.t("kvcoder.ui.notify.title"), {
144
+ body: M(e.t, t.title),
145
+ tag: `kvcoder-${t.id}`
146
+ });
147
+ n.onclick = () => {
148
+ window.focus(), e.navigate("kvcoder.session", { sessionId: t.id }), n.close();
149
+ };
150
+ }
151
+ function z(e) {
152
+ let t;
153
+ return (n, r) => {
154
+ let i = new Set(r.filter((e) => e.waitingOn === "person").map((e) => e.id)), a = t?.workspaceId === n ? t.ids : void 0;
155
+ if (t = {
156
+ workspaceId: n,
157
+ ids: i
158
+ }, a !== void 0 && L() && Notification.permission === "granted" && document.visibilityState === "hidden") for (let t of r) i.has(t.id) && !a.has(t.id) && R(e, t);
159
+ };
160
+ }
161
+ //#endregion
140
162
  //#region web/src/SessionList.vue?vue&type=script&setup=true&lang.ts
141
- var L = ["aria-label"], R = { class: "kvc-group" }, z = [
163
+ var B = ["aria-label"], V = { class: "kvc-group" }, H = [
142
164
  "aria-current",
143
165
  "data-test",
144
166
  "onClick"
145
- ], B = ["aria-label"], V = {
146
- key: 1,
167
+ ], U = {
168
+ key: 0,
147
169
  class: "kvc-chip kvc-warn",
148
170
  "data-test": "needs-you"
149
- }, H = {
171
+ }, W = ["aria-label"], G = {
150
172
  key: 2,
151
173
  class: "kvc-muted"
152
- }, U = /* @__PURE__ */ s({
174
+ }, K = /* @__PURE__ */ s({
153
175
  __name: "SessionList",
154
176
  props: { sessionId: {} },
155
177
  setup(n) {
156
- let s = n, c = k(), l = p([]);
157
- async function _() {
178
+ let s = n, c = k(), l = p([]), _ = z(c);
179
+ async function v() {
158
180
  try {
159
- l.value = await c.exec("kvcoder.session.list", { limit: 200 });
181
+ let e = c.workspace.value.id;
182
+ l.value = await c.exec("kvcoder.session.list", { limit: 200 }), _(e, l.value);
160
183
  } catch (e) {
161
184
  I(c, e);
162
185
  }
163
186
  }
164
- let v = () => new Date((/* @__PURE__ */ new Date()).toDateString()).getTime(), y = t(() => {
165
- let e = v();
187
+ let y = () => new Date((/* @__PURE__ */ new Date()).toDateString()).getTime(), b = t(() => {
188
+ let e = y();
166
189
  return [{
167
190
  key: "today",
168
191
  items: l.value.filter((t) => Date.parse(t.updatedAt) >= e)
@@ -170,17 +193,17 @@ var L = ["aria-label"], R = { class: "kvc-group" }, z = [
170
193
  key: "earlier",
171
194
  items: l.value.filter((t) => Date.parse(t.updatedAt) < e)
172
195
  }].filter((e) => e.items.length > 0);
173
- }), b = (e) => {
196
+ }), x = (e) => {
174
197
  let t = new Date(e.updatedAt);
175
- return t.getTime() >= v() ? t.toLocaleTimeString(A(), {
198
+ return t.getTime() >= y() ? t.toLocaleTimeString(A(), {
176
199
  hour: "2-digit",
177
200
  minute: "2-digit"
178
201
  }) : t.toLocaleDateString(A(), {
179
202
  month: "short",
180
203
  day: "numeric"
181
204
  });
182
- }, x = setInterval(() => void _(), 5e3);
183
- return u(() => clearInterval(x)), g([() => s.sessionId, () => c.workspace.value.id], () => void _(), { immediate: !0 }), (t, n) => (d(), r("nav", {
205
+ }, S = setInterval(() => void v(), 5e3);
206
+ return u(() => clearInterval(S)), g([() => s.sessionId, () => c.workspace.value.id], () => void v(), { immediate: !0 }), (t, n) => (d(), r("nav", {
184
207
  class: "kvc-sessions",
185
208
  "aria-label": h(c).t("kvcoder.ui.chats"),
186
209
  "data-test": "sessions"
@@ -190,27 +213,27 @@ var L = ["aria-label"], R = { class: "kvc-group" }, z = [
190
213
  style: { "margin-block-end": "6px" },
191
214
  "data-test": "new-chat",
192
215
  onClick: n[0] ||= (e) => h(c).navigate("kvcoder.chat")
193
- }, [o(h(O), { size: 16 }), a(m(h(c).t("kvcoder.ui.newChat")), 1)]), (d(!0), r(e, null, f(y.value, (t) => (d(), r(e, { key: t.key }, [i("span", R, m(h(c).t(`kvcoder.ui.${t.key}`)), 1), (d(!0), r(e, null, f(t.items, (e) => (d(), r("button", {
216
+ }, [o(h(O), { size: 16 }), a(m(h(c).t("kvcoder.ui.newChat")), 1)]), (d(!0), r(e, null, f(b.value, (t) => (d(), r(e, { key: t.key }, [i("span", V, m(h(c).t(`kvcoder.ui.${t.key}`)), 1), (d(!0), r(e, null, f(t.items, (e) => (d(), r("button", {
194
217
  key: e.id,
195
218
  type: "button",
196
219
  class: "kvc-session",
197
220
  "aria-current": e.id === s.sessionId ? "page" : void 0,
198
221
  "data-test": `session-${e.id}`,
199
222
  onClick: (t) => h(c).navigate("kvcoder.session", { sessionId: e.id })
200
- }, [i("span", null, m(h(M)(h(c).t, e.title)), 1), e.status === "running" ? (d(), r("span", {
201
- key: 0,
223
+ }, [i("span", null, m(h(M)(h(c).t, e.title)), 1), e.waitingOn === "person" ? (d(), r("span", U, m(h(c).t("kvcoder.ui.needsYou")), 1)) : e.status === "running" || e.waitingOn === "helpers" ? (d(), r("span", {
224
+ key: 1,
202
225
  class: "kvc-spin",
203
226
  "aria-label": h(c).t("kvcoder.ui.status.running"),
204
227
  "data-test": "running"
205
- }, null, 8, B)) : e.status === "waiting" ? (d(), r("span", V, m(h(c).t("kvcoder.ui.needsYou")), 1)) : (d(), r("span", H, m(b(e)), 1))], 8, z))), 128))], 64))), 128))], 8, L));
228
+ }, null, 8, W)) : (d(), r("span", G, m(x(e)), 1))], 8, H))), 128))], 64))), 128))], 8, B));
206
229
  }
207
- }), W = /* @__PURE__ */ s({
230
+ }), q = /* @__PURE__ */ s({
208
231
  __name: "sessions",
209
232
  props: { sessionId: {} },
210
233
  setup(e) {
211
234
  let t = e;
212
- return (e, r) => (d(), n(U, { "session-id": t.sessionId }, null, 8, ["session-id"]));
235
+ return (e, r) => (d(), n(K, { "session-id": t.sessionId }, null, 8, ["session-id"]));
213
236
  }
214
237
  });
215
238
  //#endregion
216
- export { W as default };
239
+ export { q as default };
@@ -0,0 +1,28 @@
1
+ import { ProblemError } from '@kvman/sdk';
2
+ export declare const bodyLimit: number;
3
+ export type PageResponse = {
4
+ status: number;
5
+ type: string;
6
+ location: string | undefined;
7
+ body: Buffer;
8
+ };
9
+ /** How pages are reached: the real network, or what a test puts in its place. */
10
+ export type WebTransport = {
11
+ resolve(host: string): Promise<string[]>;
12
+ request(url: URL, address: string, signal: AbortSignal): Promise<PageResponse>;
13
+ };
14
+ export type WebPage = {
15
+ url: string;
16
+ status: number;
17
+ type: string;
18
+ content: string;
19
+ };
20
+ export declare const webFailed: (url: string, fields: {
21
+ status?: number;
22
+ reason?: string;
23
+ }) => ProblemError;
24
+ /** The network: Node's resolver, and a request pinned to the checked address. */
25
+ export declare const networkTransport: WebTransport;
26
+ /** Fetches a page, following redirects, each checked again. */
27
+ export declare function fetchPage(given: string, transport: WebTransport, signal: AbortSignal): Promise<WebPage>;
28
+ //# sourceMappingURL=fetch-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-page.d.ts","sourceRoot":"","sources":["../../src/web-fetch/fetch-page.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ1C,eAAO,MAAM,SAAS,QAAkB,CAAC;AAKzC,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExG,iFAAiF;AACjF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAChF,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,YACgI,CAAC;AAiBvN,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,YAgB9B,CAAC;AAiCF,+DAA+D;AAC/D,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB7G"}